Byte Magazine Volume 04 Number 08 - LISP

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

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 onone RAM card. Yes, we mean 512Kbits of read/write memory on thissingle card.

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

EXPANDABLE ON TWO LEVELS

Not only does the new Model64KZ give you a large, fast RAMbut it is expandable on two levels.

First, through our Cromemco BankSelect feature, you can expand to512 kilobytes in eight 64K banks.

Or, with our Extended Bank Selectfeature, you can expand memoryspace to as much as 16 megabytes.

This expandability we call yourobsolescence insurance.

The legend on the card's heat sinkis an easy reference for address andbank selection.

BENCHMARK IT

Obviously, the speed and memorycapacity of this new card give you alot of power.

You can see that for yourself inour new 7-station Multi-User Com-puter System which uses these Model64KZ cards. This S100-bus systemoutperforms the speed of many ifnot most timesharing systems of upto 10 times the Cromemco price.

And yet where some of these muchmore expensive and cumbersomesystems clearly slow to a snail's pacewhen timesharing, the Cromemcosystem using Bank Select switchingruns surprisingly fast.

SEE IT NOW

See the new Model 64KZ at yourcomputer dealer now. Study the lit-erature on it. See how for only $1785you can get around that ever-presentbarrier of memory that's too littleand too slow.

For high reliability all Cromemco memory

cards are burned in at the factory in these

temperature-controlled ovens.

Cromemco Multi-User Systemshown with 7 stations

rjl Cromemco

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

Tomorrow's computers now

Sfii

50

66

94

132

206

220

10

18

26

34

82

162

170

176

In the Oueue

Foreground

ANYONE KNOW THE REAL TIME?, by Steve CiarciaSimple methods of telling time

MODEL OF THE BRAIN, Part 3: Comparison of Brain and Model, by James AlbusDoes CMAC accurately represent human brain function?

NATURE OF ROBOTS, Part 3: A Closer Look at Human Behavior, by William T PowersSimulating a 3-muscle system

THE DESIGN OF AN M6800 LISP INTERPRETER, by S Tucker TaftThe theory behind one implementation

LISP APPLICATIONS IN BOOLEAN LOGIC, by Richard Weyhrauch and Henson GravesPerform Boolean logical operations with LISP

AN OVERVIEW OF LONG DIVISION, by Geoffrey GassProviding real answers to division problems

EMf August 1979Volume 4, Number 8

l^H A -' UHUMj

^ • #'

Background

AN OVERVIEW OF LISP, by John AllenDeveloping a feel for LISP

LISP BASED SYSTEMS FOR EDUCATION, by J Laubsch, G Fischer, and H D BockerUsing computers as learning tools

THE LAMBDINO STORAGE MANAGEMENT SYSTEM, by G Prini and M RudalicsData storage techniques represent major design considerations

PATTERN-DIRECTED INVOCATION LANGUAGES, by William A KornfeldA data base development tool

EXPLORING TRS-80 GRAPHICS, by George H YeagerMachine language access to graphic display characters

A MATHEMATICIAN'S VIEW OF LISP, by Vaughan R PrattA look at LISP as a vehicle for expressing ideas

A PREVIEW OF THE MOTOROLA 68000, by A I HalsemaA look at another 16-bit processor

LISP BASED SYMBOLIC MATH SYSTEMS, by David R StoutemyerThe computer as an algebraic manipulator

Nucleus

Letters, 6

Editorial: Returning to the Tower of Babel or

LISP Notes, 62

BYTE News, 89

Technical Forum, 126

BYTE's Bugs, 194

Event Queue, 196

Clubs and Newsletters, 200BYTE's Bits, 204Programming Quickies, 212Book Reviews, 218What's New?, 225Unclassified Ads, 263Reader Service, BOMB, 264

Cover Art: New Worlds of LISP, by Ken Lodding

page 18

1 NAME

■

1 1

1

1 is 1

f~

aooncss

1 .1

1 T

1

STRCET

r

page 50

(DE TAUT (WFF) (TAUT I iSIMPWFF|,l

(DE IAUT1 (Wl(COND(lISCONST W) W)IT (TAUT

({LAMBDA (X) IWKAND (SUBST(SUBST(FIRSTVAB W» »)>

IDF SIMP l*i

ICOND ((OR (ISCONST W) (ISVAR W»

(CISNOT W> (SIMPNOT ISIMP (

((ISOR W> (SIMPOR (SIMP (Ih

(SIMFVm

I0SAND W) (SIMPANO (SIMP

(SIMPl

((ISlMPLlES Wl (SIMPIMP (Sill

(SI I.

WSEOUIV W> (SIMPEOUIV (S

IS

(DE SIMPNOT (W) (COND ((ISFALSE WlKISTBOE W) ti(T (MKNOT W

(DE SIMPOP, IW1 W2> (SIMPANDOR

(DE SIMPANO (Wl W2) (SIMPANDOR

IDE SIMPIMP (Wl W2)ISIMPOR (SIMP

(DE SIMPEOUIV (Wl W2I

ISIMPAND (SIMPIMP WI W2XS1MPI

(0E SIMPANDOR (OP Wl W2 VI V2)

(COND (IISTRUE V

page 206

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 subscrip-tions to above address: phone (603) 924-7217. Address subscriptions, change of address, USPS Form 3579, and fulfillment questions to BYTE Subscriptions, PO Box 590, Martins-ville NJ 08836. Second class postage paid at Peterborough NH 03458 and at additional mailing offices—USPS Publication No. 102410 (ISSN 0360-5280). Subscriptions are $18 forone 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 yearair 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.40in 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 Statesof America.

Address all editorial correspondence to the editor at the above address. Unacceptable manuscripts will be returned if accompanied by sufficient first class postage. Notresponsible for lost manuscripts or photos. Opinions expressed by the authors are not necessarily those of BYTE. Entire contents copyright © 1979 by BYTE Publications Inc. Allrights reserved.

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

Subscription WATS Line: (800) 258-5485

Office hours: Mon-Thur 8:30 AM — 4:30 PMFriday 8:30 AM — Noon

August 1979 © BYTE Publications Inc 3

In This BYTE

About the Cover

This month, Ken Lodding hascreated a fantasy on far-outapplications with a LISP theme.The surface of some asteroidhas been discovered. Amonolith engraved with theS-expression form of a LISPprogram is gazed upon by someastronauts. We presume somearcheology of this monolith willhave to be done to uncover thebalance of the program. Weleave it to readers familiar withLISP to identify the textbookfrom which these S-expressionfragments were taken, and thepurpose of the program.

LISP is often described asa special-purpose, list-processing language.However, there is muchmore to the language thanlist manipulation. As anintroduction to this lan-guage, guest editor JohnAllen provides An Overviewof LISP. Page 10

In LISP Based Systems forEducation, J Laubsch, GFischer, and H D Bockerdiscuss the evolving com-puter culture and they arguethat the basic concepts andapproach to computationthat LISP represents offerssignificant advantages withinthe contemporary educa-tional framework.Page 18

The management ofmemory space is veryimportant in any computerlanguage. To the user of aLISP system, memory seemsto magically appear out ofthe "ether" as needed. LISP

systems contain a storagereclamation package thatscavenges new storage fromdiscarded computations.Authors Gianfranco Priniand Martin Rudalicsdescribe the LambdinoStorage ManagementSystem. Page 26

William A Kornfeld showsan application of LISP ideasin the artificial intelligencedomain. Pattern-DirectedInvocation Languages arepowerful tools for repre-senting and manipulatingfacts in data bases. Theimplementation of theseideas involves 2 facets ofLISP: the generalized recordstructures, called propertylists; and the ability to storeprocedures as data struc-tures. Page 34

The addition of a real-time clock to your computersystem expands the dimen-sions you can explore. Areal-time clock is also the

basis of any multiprogram-ming system. Steve Ciarciaprovides several differentreal-time clocks in AnyoneKnow the Real Time?Page 50

In parts 1 and 2 of AModel of the Brain forRobot Control, James Albusdescribed a neurologicalbrain model. Part 3 showshow this structure might beused to produce perceptualand cognitive phenomena.Page 66

The mystery of graphicson the Radio Shack TRS-80is now dispelled. George HYeager reveals the details inExploring TRS-80 Graphics.Page 82

In the third part of TheNature of Robots, William TPowers describes the howand whys of his particularmodel of human behavior.Mr Powers develops a2-level control-loop simu-lation of a 3-muscle systemto further the understandingof how our own controlsystem works.

Page 94

Other articles this monthdiscuss many of the applica-tions for LISP. It is onlyfitting that S Tucker Taftdiscusses The Design of anM6800 LISP Interpreter.Page 132

Several LISP articles havecentered on some of theunique features of LISP toaid solution of nontrivialproblems. Mathematicianand computer scientistVaughan Pratt viewslanguages from a moredistant perspective. He

shows that features foundto be attractive in specialcases are instances of generalprinciples that a program-ming language must observeif generality and expressi-bility are not to be com-promised. Vaughan Prattgives us A Mathematician'sView of LISP.

Page 162

A I Halsema provides uswith a quick description ofthe M68000 and some pos-sible applications of the newprocessor in A Preview ofthe Motorola 68000.Page 170

Are you interested inworking with symbolicmathematics? Perhaps youmanipulate many algebraicformulae. David Stoutemyerdiscusses several LISP BasedSymbolic Math Systems thathelp perform these func-tions. Page 176

The actions of digitalcircuits may be described byBoolean expressions. Theseexpressions can be mani-pulated by a program to testfor correctness, simplify theequation, and many otherlogical manipulations.Richard Weyhrauch andHenson Graves discuss someLISP Applications inBoolean Logic.

Page 206

Most processors do nothave division instructions.Therefore, if you wish toperform division, you willhave to write your own. InAn Overview of Long Divi-sion, Geoffrey Gass providesthe background needed towrite a division routine.Page 220

Publishers

Production Editors

Circulation Manager

National Advertising

Virginia Londoner

David William Hayward

Gregory Spitzfaden

Sales Representatives:

Gordon R Williamson

Ann Graves

Assistants

Hajar Associates Inc

Officers of McGraw-Hill

Faith Hanson

Pamela R Heaslip

East

John E Hayes

Warren Williamson

Agnes E Perry

280 Hillside Av

Publications Company: Gordon

Assistant

Art Director

Melanie Bertonl

Needham Heights MA 02194

L. Jones, President; Group Vice

Jiil E Callihan

Ellen Bingham

Barbara Ellis

(617) 444-3946

Presidents: Daniel A. McMillan,

Production Art

Dealer Sales

521 Fifth Av

Editorial Director

Wai Chiu Li

Ginnie F Boudrieau

New York NY 10017

Executive Editor

Christine Dixon

Holly Carmen LaBossiere

Anne M BaldwinReceptionist

(212) 682-5844Midwest

Ralph R. Schulz, Editorial; Vice

Christopher P Morgan

Jacqueline Earnshaw

664 N Michigan Av

Presidents: James E. Hackett,

Editor In Chief

Suite 1010

Controller; Thomas H. King,

Raymond G A Cote

Advertising Director

Patricia E Burgess

Typographers

Chicago IL 60611

Manufacturing; Robert L.

Senior Editor

Cheryl A Hurd

(312) 337-8008

Blaise W Liffick

Assistants

Stephen Kruse

West, Southwest

Patten, Sales; Edward E.

Editor

Ruth M Walsh

Debe L Wheeler

1000 Elwell Ct

Richard Shuford

Marion Gagnon

Photostat Technician

Suite 227

Assistant Editor

Janet Ames

Tully Londner

Palo Alto CA 94303

Officers of the Corporation:

Kent Richard

Adv/Prod Coordinator

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

Harold W. McGraw Jr., President,

Editorial Assistants

Thomas Harvey

Comptroller

Chief Executive Officer and

Gale Button

Advertising Billing

Kevin Maguire

Chairman of the Board; Robert F.

New Products EditorClubs, Newsletters

Noreen BardsleyDon Bardsley

Assistant

Mary E Fluhr

Landes, Senior Vice Presidentand Secretary; Ralph J. Webb,

Laura A Hanson

Traffic Department

Treasurer.

Drafting

Mark Sandagata

Jon Swanson

Thomas Yanni

4 August 1979 © BYTE Publications Inc

Circle 220 on inquiry card.

Jlsiis

(w ■ » . ,

,:,»

&si»

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 firmware

Fully S-100 compatible(including 8080 type I/O)

A complete system, ready to use.

6809

16 bit internal arithmetic

Hardware multiplication

Two stack pointers

Two index registers

18 addressing modes

Fully relocatable code ^*

Five interrupts 9 #

Up to three times the ^.^V '

throughput of a 4MHz Z-80 • X5S a'

$■

ripi

MD-690 b Single Board Computer

$239 Kit $299 Assembled V#

<<?y

MicroDaSys

migz)

I

n /"< n<-w -tmn—i ge AM^-t-i i-r- /~a rwv>^- i i<-»

£

*V rP rS> f> CO

c?

Look for

Shu gar t drives

in personal

computer systems

made h> these

companies.

Altos Computer Systems

2378-B Walsh AvenueSanta 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 LOrange, CA 92667

North Star Computer

2547 9th StreetBerkeley, CA 94710

Percom Data

318 BarnesGarland, TX 75042

Polymorphic Systems

460 Ward Dr.

Santa Barbara, CA 93111

Problem Solver Systems

20834 Lassen StreetChatsworth, CA 91311

Processor Applications Limited

2801 E. Valley View AvenueWest Covina, CA 91792

SD Sales

3401 W. KingsleyGarland, TX 75040

Smoke Signal Broadcasting

6304 YuccaHollywood, CA 90028

Technico Inc.

9130 Red Branch RoadColumbia, MD 21045

Texas Electronic Instruments

5636 EtheridgeHouston, TX 77087

Thinker Toys

1201 10th StreetBerkeley, CA 94710

Vista Computer Company

2807 Oregon CourtTorrance, CA 90503

^.Shugart

6 August 1979 © BYTE Publications Inc

Editorial

Returning to the Tower of Babel,or... Some Notes About LISP,Languages and Other Topics...

by Carl Helmers

This is the August issue of BYTE. It is also the third consecutive year thatwe've chosen to have a computer language as an issue content theme—a choicewhich is reflected in a number of articles, as well as the cover painting by KenLodding.

In the past two years, the August issues have had themes of APL (1977) andPascal (1978). This year, we continue the August emphasis on languages witha special issue devoted to the language LISP. An experiment in editorial policyis also reflected in this issue. John Allen was responsible for the solicitation andtechnical reviewing of the articles concerning LISP in this issue, truly function-ing in the capacity of "Guest Editor" of BYTE. John has been involved withcomputation research involving LISP for some time, and he is in touch withmany of the members of the artificial intelligence community. Some of hiscomments on LISP appeared in the March 1979 issue of BYTE in the form of aguest editorial. As a result of his earlier writings about LISP as an appropriatetool of expression for personal computing, we asked him to take charge of theLISP oriented technical content of this issue and several issues to follow.Readers will find a wealth of information as a result of John's efforts.

By making LISP a feature of this issue of BYTE, we are emphasizing thehistory of LISP's utility in artificial intelligence and computation research. Thelanguage is derived from the work of John McCarthy in the early 1960's. LISPwill have its place in personal computing, alongside a number of other styles ofexpression. For lack of appropriate systems software, I have not personallyused LISP to any extent, but I believe that I have the beginnings of an abstractappreciation of its potential. This perspective comes from personal contactwith individuals who use LISP regularly, as well as reading which includes thearticles in this issue as collected by John Allen.

In a recent (May 24 1979) conversation with Gary Kildall on the occasion ofthe fifth IEEE Computer Society Asilomar Conference on Microcomputing, Imentioned the LISP issue. Gary has a background in computer systems soft-ware work with special emphasis on small scale computer systems of the kindused by BYTE readers. He is the first implementor of the PL/M compilers forIntel's 8080 microprocessors, and he and his firm, Digital Research, areresponsible for one of the most widely used 8080 and Z-80 oriented softwareproducts, the CP/M operating system. I learned some interesting points fromGary about LISP and its significance to the use of computers, viewpointswhich are worth repeating for readers.

Gary made the statement that LISP is basically his preferred language. Heexplained that LISP has a certain natural elegance, but that people often tendto write FORTRAN or BASIC-like sequential "PROGs" as opposed to the im-plicitly parallel and recursive tree structures natural to LISP. He emphasizedthat this is a mistake. LISP represents a different point of view from which toanalyze problems.

Text continued on page 154

"My 8 to S minifloppy "nowworks nights and weekends!

"I own a fast-growing business and before Ibought my computer system I put in a lot of latehours keeping up with my accounting andinventory control. Now the computer does mynumber crunching quickly, so I have time afterhours to have some fun with the system. My sonand I started out playing Star Trek on the system,and now we're learning to play chess.

"When I was shopping around for my system,the guys in the computer stores demonstrated allthe unique features of the minifloppy. I've got toadmit that at first I didn't really understand all thetechnical details. But now that I use the systemevery day, I really appreciate the minifloppy's fastrandom access and data transfer. I like thereliability, too.

"I'm glad I went with Shugart drives. Look,when you lay out your own money for a system,you want dependable performance and goodvalue. Do what I did. Ask for the system with theminifloppy."

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

£3® Shugart Associates

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 August 1979

Letters

More Puzzling

Puzzling RotationExplained

Ken Barbier poses a question in"Puzzling Rotation" (May 1979 BYTE,page 216) which is intimately related tomy comments on periodic decimal ex-pansions in that same issue (page 210).

Any number N which has a repeating,periodic decimal expansion of 1/N withmaximum period length (N —1) givesrise to a magic number X =INT((1/N)*10(N-1)). As he pointedout, any multiple of X such as KxX(with K less than N) contains the samedigits as does X, but cyclically rotated.N = 7 is the only example in base 10arithmetic less than 10; larger values ofN are, for example, 17 (yieldingX =0588235294117647) and 19 (whichgives X = 052631578947368421). In base8, some interesting numbers are given byN = 5 (X = 1463, base 8) and N = ll (base10) (X = 0564272135 base 8); in base 15,a magic X is 124936DCA5B8.

I have not been able to find any magicnumbers in base 4, base 16, or base 64;perhaps some reader can prove thatnpne exists for bases which are powersof 4.

If the length of the repetition periodof 1/N is shorter than the maximum,then the magic number X generated bythe above algorithm will still re-appearwith digits cyclically permuted, butother numbers also appear in the courseof the multiplication. Try,for example, N = 13, X = 076923, in base10.

For some insight into why thesenumbers are magic, you might want totry calculating by hand, long-division-style, some examples like 1/7, 2/7, 3/7,etc. According to E T Bell's biographicalbook Men of Mathematics (page 225),one of the greatest mathematicians of alltime, Carl Friedrich Gauss, worked outthe decimal expansions of 1/N for all Nup to 1000 while he was a teen-ager.(And in the 1790's, he didn't have ahome computer!) The results of hiscalculations inspired him to discover andprove one of the most beautifultheorems of number theory, "quadraticreciprocity." Playing games withnumbers is still a fine route toinspiration. Good luck!

Mark ZimmermannCaltech 130-33Pasadena CA 91125

Regarding "An Added Attraction"(Machine Language Puzzler May 1979BYTE, page 209), I would like to sharea twist on the problem of adding two 8bit values in registers B and C and mysolution.

First, let me admit that when I glancedthrough the puzzle rules, I mistakenlyassumed that all subtraction operations,as well as the addition operations, wereprohibited in the solution. The reason Imade this slip is that the problem nowbecomes a little harder (something akinto the business of multiplying usingaddition instructions only).

Anyway, my first brute force attemptat this different problem required 12bytes:

XRA A

L00P1 INR A

DCR B

JNZ LOOP1

LOOP2 INR A

DCR A

JNZ LOOP2

HLT

This works by initializing a counterusing the byte-saving exclusive-or opera-tion. The counter is then incrementedonce for each time that register B mustbe decremented, until the registerreaches zero. Repeating this sequenceusing register C results with the sum inthe accumulator. Of course, thisapproach ignores overflow detection, asdid the original solutions published inBYTE.

Being dissatisfied with the above, Inoticed a much simpler solution in 7bytes:

A,BACLOOP

MOVLOOP INRDCRJNZHLT

Interestingly, this is only 2 bytes morethan the optimum solution presented inthe Puzzler, where subtraction ispermitted.

Steve DuerksenMicrocomputer Consultant15 Dearborn StWellesley MA 02181

Attention: Gamblers

A newsletter is being started for com-puter enthusiasts interested in analyzinggambling systems, the Stock and FuturesMarkets, etc. The first issue will bepriced at $1 and those interested shouldindicate preference for form, content,and subscription rate. Contact MichaelR Downing, c/o Joe Computer, 22713Ventura Blvd, Suite F, Woodland HillsCA 91364."

ComputerLand

Huntsville, AL

(205) 539-1200

Phoenix, AZ

<602) 956-5727

Little Rock, AR

(5011 224-4508

Belmont, CA

(415) 595-4232

Dublin. CA

(4151 828-8090

El Cerrito, CA

(415) 233-5010

Hayward, CA

(415) 538-8080

Lawndale, CA

(213) 371-7144

Los Altos, CA

(415) 941-8154

Los Angeles, CA

(213) 776-8080

Mann, CA

(415) 459-1767

Pasadena, CA

(213)449-3205

Sacramento, CA

Call Directory Information

Saddleback Valley, CA

1714) 770-0131

San Bernardino, CA

(714) 886-6838

San Diego, CA

(714) 560-9912

San Diego East, CA

(714)464-5656

San Francisco, CA

(415) 546-1592

San Jose, CA

(408) 253-8080

Santa Maria, CA

(805) 928-1919

Santa Rosa, CA

(707) 528-1775

Thousand Oaks, CA

(805) 495-3554

Tustin, CA

(714) 544-0542

Walnut Creek, CA

(415) 935-6502

Colorado Springs, CO

(303) 574-4150

Denver, CO

(303) 759-4685

Fairfield, CT

(203) 255-9252

Hartford, CT

Call Directory Information

Newark, DE

(302) 738-9656

Boca Raton, FL

(305) 368-1122

Ft. Lauderdale, FL

(305) 566-0776

Jacksonville, FL

(904) 731-2471

Atlanta, GA

(404) 953-0406

Honolulu, HI

(808) 521-8002

Arlington Heights, IL

1312) 255-6488

Downers Grove, 1 L

(312) 964-7762

Mundelein, IL

(312) 949 1300

Niles, IL

(312) 967-1714

Oak Lawn, IL

(312) 422-8080

Peoria, IL

(309) 688-6252

Indianapolis, IN

Call Directory Information

Overland Park, KS

(913) 492-8882

Louisville, KY

(502) 425-8308

Boston, MA

(617) 235-6252

Rockville, MD

(301) 948-7676

Grand Rapids, Ml

(616) 942 2931

Rochester, Ml

(313) 6529000

Southfield, Ml

(313) 356-8111

Bloomington, MN

(612) 884-1474

Hopkins, MN

Call Directory Information

Springfield, MO

(417) 883 7085

St. Louis, MO

Call Directory Information

Nashua, NH

(603) 889-5238

Cherry Hill, NJ

(609) 795 5900

Bergen County, NJ

(201) 845-9303

Mornstown, NJ

(201) 539-4077

Buffalo. NY

(7161 836-6511

Ithaca, NY

(607) 277-4888

Nassau County, NY

(516) 742 2262

Charlotte, NC

(704) 536-8500

Cleveland East, OH

(216) 461-1200

Cleveland West, OH

Call Directory Information

Columbus, OH

(614) 888-2215

Oklahoma City, OK

Call Directory Information

Portland. OR

(503) 620-6170

Harnsburg, PA

(717) 763-1116

Paoli, PA

Call Directory Information

Austin, TX

(512) 452-5701

Dallas, TX

(214) 363 2223

South West Houston, TX

(713) 977-0909

Houston Bay Area, TX

(713) 488-8153

Salt Lake City, UT

(801) 364-4416

Tyson's Corners, VA

(703) 893-0424

Bellevue, WA

(206) 746-2070

Federal Way, WA

(206I 838 9363

Tacoma, WA

(206) 5810388

Madison, Wl

(608) 273-2020

Milwaukee, Wl

(414) 4668990

INTERNATIONAL

Adelaide, Australia

22 35 083

Brisbane, Australia

07 221 9777

Melbourne, Australia

62 55 81

Perth, Australia

Call Directory Information

Sydney, NSW Australia

29-3753

Brussels, Belgium

(02) 511-34-45

Burlington, Canada

(416) 632-5722

Calgary, Alberta Canada

Call Directory Information

Toronto, Canada

1416) 485-6700

Winnipeg, Canada

(204) 772-9519

Manila, Philippines

58-36-66

8 August 1979 @ BYTE Publications Inc

Circle 75 on inquiry card.

If the truth is that you want acomputer . . . then we want to be yourcomputer store.

We re ComputerLand, the #1computer store chain in the U.S. What'smeaningful about that fact is, thatComputerLand has been chosen by morepeople as having what they've beenlooking for. And, since you're looking, letus tell you what you'll find, when you visita ComputerLand store.

You'll find a product line that'scontinually evaluated to provide you withthe widest and best selection in quality,brand name microcomputers anywhere.You II find an enthusiastic andknowledgeable staff able to interpret allthe equipment specifications, in terms ofhow they apply to you, and in a wayyou'll understand. You'll find demonstrationareas where you can get a firsthandexperience of running a computer yourself.

You II find educational materials to giveyou a total insight into the world ofmicrocomputers.

You'll find a fully equipped servicedepartment to provide whatever assistanceis required to keep your computer runningin top-notch condition. You'll find computeruser s clubs to join, where you can shareideas with people as enthusiastic asyourself. And, with each new visit, you IIfind excitement—from the people you dealwith, the equipment they offer, and fromyour own ever-growing personalinvolvement.

Enough about us. How about whatcomputers do.To attempt to describe allthe things your computer might do, wouldbe to describe your imagination. Soinstead, we'll briefly list some of the manythings for which small computers arealready being used.

In business, the advent of theversatile and compact microcomputer hasput the benefits of computing within reachof small companies. With systems startingat less than $6000, the businessman can

ComputerLand Corp.

14400 Catalina St.

San Leandro, CA 94577

(415) 895-9363

Franchise Opportunities Worldwide.

1

1

computerize things like accounting,inventory control, record keeping, wordprocessing and more. The net result is thereduction of administrative overhead andthe improvement of efficiency which allowsthe business to be managed moreeffectively.

In the home, a computer can be usedfor personal budgeting, tracking the stockmarket, evaluating investment opportunities,controlling heating to conserve energy,running security alarm systems, automatingthe garden's watering, storing recipes,designing challenging games, tutoring thechildren . . . and the list goes on.

In industry, the basic applications arein engineering development, processcontrol, and scientific and analytical work.Users of microcomputers in industryhave found them to be reliable, cost-effective tools which provide computingcapability to many who would otherwisehave to wait for time on a big computer,or work with no computer at all.

And now we come to you, which leadsus right back to where we started: If youwant a computer, then we want to beyour computer store.

Whether you want a computer for thehome, business or industry, come toComputerLand first. We'll make it easy foryou to own your first computer. Because,simply put, we really want your business.When you come right down to it, that'swhat makes us #1.

ComputerLand

WE KNOW SMALL COMPUTERS

®

ComputerLand EuropeEuropa Terrassen8 Rue Jean EnglingDommeldange, LuxembourgPhone 43 29 05 Telex 2423

© ComputerLand Corp., 1978

BYTE August 1979

An Overview of LISP

John Allen

Signetics

811 E Acques Ave

Mail Stop 38

Sunnyvale CA 94086

LISP is a higher level machine language.

LISP is simple and difficult, elegant and ad hoc; it is abeautiful blend of foresight and fortuity. LISP is a pro-gramming language, often characterized as a special pur-pose list-processing language. But LISP is no more aspecial purpose programming language than mathematicsis a special purpose language for floating-point computa-tions. Just as there's more to mathematics than theaccounting and bookkeeping properties present in"general purpose" programming languages, there's muchmore to LISP than "just another programming language."

The best description of the LISP programming lan-guage is that it is a high level machine language. That is,it shares many of the facets of contemporary machinelanguage —the necessity for attention to detail and thefreedom to manipulate the machine's data and programswithout restriction— yet LISP is high level in that thelanguage contains the expressive power and convenienceof traditional high level languages. The contradiction isresolvable: a LISP machine is just a higher level machinewhose data items are organized differently from thebinary bit patterns of most machines, and the LISP pro-gramming language is the assembly language for thismachine.

LISP Data Structures

Before introducing the constructs of the language, wemust discuss the data items of the language. In a tradi-tional language we would find numeric constants. InLISP, the analogous constants are called atoms. An atomis either a numeral or a literal atom —a string of uppercase alphanumeric characters such that the first characterin the string is an alphabetic character. For example,ABC123, 12, and NIL are atoms, but 1A2 and (A B) arenot.

LISP also has composite constants called lists. Lists arebuilt out of atoms and other lists as follows:

• Any atom or list can be an element of a list.

• Given any collection it, ..., e„ of list elements, then(e, ... e„) is also a list.

So, (A B) is a list; as is (A B C), and (A 1 (ABC 23)). The

About the Author

John Allen, our guest editor for this special LISP theme issue, is theauthor of the book Anatomy of LISP and currently product engineer atSignetics Corporation. He is also founder of The LISP Company, anorganization to produce LISP related products.

last example is a list of three elements; its third element isalso a list — of two elements: the atom ABC and thenumeral 23.

Atoms and lists are the basic LISP data structures.However, a robust production version of LISP includesmany more data objects including arrays, arbitrary preci-sion numbers, strings, and representation of functions asdata objects. Regardless of the scope of the data represen-tations in a specific LISP implementation, it is a fund-amental property that all data objects are "first class ob-jects," constructible, testable and available withoutrestriction. This uniform behavior of data is a propertyshared by few other languages.

First

We need some operations on these data structures. Justas we should have a subtraction operation in arithmeticmachines to decompose numbers, we have LISP instruc-tions to decompose lists. One such operation is first; it ex-tracts the first element of a list. For example:

firstKA B C)j gives: A

This example is written in LISP's external syntax calledmeta-LISP or M-LISP; it is an instance of prefix notation.The programming language, the internal notation, iscalled S-expression LISP or S-LISP. Initially, we will pre-sent algorithms in M-LISP since it is closer to traditionalprogramming notation. However, since S-LISP is ourmachine language we will insist on developing facilitywith that notation.

In a traditional architecture, both instructions and dataare stored in memory. The processor usually has com-plete freedom to manipulate any of these objects as eitherdata or instructions. An object accessed by the instruc-tion counter is interpreted as an instruction; other ac-cesses to items usually imply a data interpretation. Onegoal is the representation of LISP instructions as dataitems in the LISP machine such that the processing unit ofthe LISP machine will have equal flexibility in inter-preting the encoded information. An object may some-times play the role of program, and sometimes of data.

To represent program as data we must specify atranslation of each M-LISP instruction into a listrepresentation:

External Notation

< operation>/< operand> ,; ... ;< operand> „/

List Notation(<operation> r< operand> J... < operand>nT)

10 August 1979 © BYTE Publications Inc

Circle 255 on inquiry card..

DOUBLE DENSITY

# i <

■ .,

Witt

SOLID SAVINGS!

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

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

DISCUS/2D™ is a second generation diskmemory system that's compatible with the new IBMSystem 34 format. The disk drive is a full-size Shugart800R, the standard of reliability and performance indisk drives. It's delivered in a handsome cabinet withbuilt-in power supply.

The S-100 controller utilizes the amazing WesternDigital 1791 dual-density controller chip,.. pluspower-on jump circuitry, 1K of RAM, 1K of ROM withbuilt-in monitor, and a hardware UART to make I/Ointerfacing a snap.

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

DOS, and DISK-ATE™ assembler/editor. Patches forCP/M* are also included. CP/M? Microsoft DiskBASIC and FORTRAN are also available at extra cost.

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

Ask your local computer store to order theDISCUS/2D™ for you. Or, if unavailable locally, writeThinker Toys,™ 5221 Central Ave., Richmond, CA94804. Or call (415) 524-2101 weekdays, 10-5 PacificTime. (FOB Berkeley. Cal. res. add tax.)

*CP/M is a trademark of Digital Research.

C7)Morrow makes disk memory for

Thinker Toys

The raised T means perform the translation processrecursively.

For this translation to be meaningful, we must alsodescribe how the recursion process is to terminate:

An operation in external notation is something likefirst or + , whereas an operation? must be an atomor a list. We translate the operation name to anappropriate atom: first translates to FIRST, and 4-to PLUS.

The operand of first[(A B C)j is the constant (A BC). We will translate a constant a to the construct(QUOTE a). For example, we represent the con-stant (A B) as (QUOTE(A B)). This solution issimilar to the quoting convention of naturallanguage: Cleveland is a city, but "Cleveland" is a9-letter word. The QUOTE operator is more thansimple pedantry; it will play a critical role in thefetch operation of the LISP machine.

To summarize, our list notation consists of a represen-tation of the operation followed by the representations ofthe operands. Those operands themselves may specifyoperations, or they may specify constant operands byusing the quote operation. For example, we representfirst[(A B C)l as (FIRST (QUOTE (A B C))) and (FIRST(FIRST (QUOTE ((A B) C)))) represents first[first[((A B)

cm.

Values are obtained on a LISP machine in much the

computer mart of new jerseycomputer mort of Pennsylvania

the^Tj U microcomputerpeople

Computers don't moke ocomputer store, PEOPLE do. Ourpeople hove been involved withmicrocomputers since doy one.We offer experience andexpertise unparalleled in themicrocomputer industry. Whetheryou are in the market for ocomplete system, peripherals,custom software, service, or justsome friendly advice; there simplyis no other place to go.

Computer Mort of Now Jersey

SOI ftouto 27Iselln. NJ 0(830(201) 263-0600

STORE HOWLSTuot.-Sot. 10am-6pmToes. 6 Thurt. 'tin OpmCLOSED MONDAYS

Computer Mort of Pennsylvania

350 DeKolb Pike

Klna of Prussia. PA 19406

(216)265-2360

same manner as one obtains values from a pocketcalculator. We type in an S-LISP expression, and thecalculator displays the result. The evaluation of an ex-pression can be quite involved. If an operand specifies afurther operation, then the current instruction must besuspended while that subsidiary computation is per-formed. So, evaluating (FIRST (FIRST (QUOTE ((A B)C)))) would involve the following:

The leftmost FIRST must wait since its operand re-quires evaluation; similarly the next FIRST mustwait to take care of its argument. But its argumentis a quoted expression. QUOTE is kind, requiringno further computation, but it always returns itsargument as value. Here it returns the list ((A B) C).The inner FIRST completes now, returning (A B) tothe outermost FIRST; it is nudged into activity andfinally returns A.

Consider (FIRST (QUOTE (FIRST (QUOTE (A B))))).Notice that the embedded expression (FIRST (QUOTE (A

B))) has the appearance of a LISP instruction. However,that expression is surrounded by (QUOTE ... ), thereforeit is simply a list; ie, a constant. The final result of theevaluation will be the atom FIRST (since the computationencodes the M-expression first[(FIRST (QUOTE (A

B)))l).Since quoted expressions appear so frequently, we willintroduce an abbreviation. We write (QUOTE a) as 'a.So, the previous example (FIRST (QUOTE (FIRST

(QUOTE (A B))))) could be expressed as: (FIRST'(FIRST (QUOTE (A B)))); or as (FIRST '(FIRST '(A

B))). This abbreviation will appear many timesthroughout the LISP articles in this and following issues.

Rest

We also have an instruction named REST. You maythink of the instruction as either a machine operation oras the translation of an M-LISP expression. REST, likeFIRST, expects a list as its argument. However, RESTreturns a value representing the list with the first elementremoved. The expression:

(REST '(A B Q)yields:

(BC).Similarly, the expression:

(REST '(B C))yields:

(O

What about (REST '(CD? When we remove the lastelement from a list we get the empty list. Its representa-tion in LISP is ( ).

The operations first and rest are called selector func-tions since they are used to select components from acomposite data object.

12 August 1979 © BYTE Publications Inc

Circle 66 on inquiry card.

The Intecolor 8070 business system.At twice the price, it would still be inexpensive.

Because ISC is the world's leading manufacturerof color terminals, we're able to offer unparalleledcolor performance—at phenomenal prices.

Our 8070 Series I Business System is a perfectexample of reliable, yet extremely reasonable prod-ucts. It's a complete 8080A microcomputer systemthat includes the following standard fea-tures: A dual floppy disk drive with 591Kbytes of storage; a 19" color data displaywith an easily readable 80 characters x48 line format: and a 60 CPS ImpactMatrix printer. All for a remark-able :$7000. single unit price.

And that price doesn't v

stop at hardware. Intecolor's18K Business BASIC in ROMhas 16 digit accuracy and a

PRI NT USING feature that tailors output to anyspecifications.

If you need greater storage capabi I ities, choosethe 8071 —same system, but with a dual double-headed floppy disk drive. Giving you 1182K bytesof storage, for only $800 more, single unit.

Either way. the Intecolor Series I can relieveyour business of a considerable amount of paper-work, without costing you a great deal of money.(Terms—5% discount for prepay-ment, or net 20 days.)

For more information anda complete demonstration,see your nearest computerstore, or contact your ISCsales representative.Color Communicates Better

<*^

Unretouched photo of screen

Furniture not included

US. domestic prices

ISC SALES REPRESENTATIVES: AL: 205/883-8660, AK: (GA) 404/449-5961. AZ: 602/994-5400, AH: (TX) 214/840-2169. CA: Alhambra 213/281-2280, Goleta 805/964-8751. Irvine 714/557-4460. Los

Angeles 213/476-1241. Mountain View 415/964-9300, San Diego 714/292-8525. CO: 303/759-0809, CT: {GA) 404/449-5961. DE: (GA) 404/449-5961, DC: (VA) 703/569-1502, FL: Orlando 305/425-5505,

Ft Lauderdale 305/776-4800, Melbourne 305/723-0766, Tallahassee 904/878-6642, GA: 404/455-1035, HI: 808/524-8633. ID: (UT) 801/973-7969, IL: (No.) 312/564-5440. (So ) (MO) 816/765-3337,

IN: (ID 312/564-5440. IA: (MO) 816/765-3337, KS: (MO) 816/765-3337, KY: 606/273-3771, LA: 504/626-9701, ME: (GA) 404/449-5961. MD: (VA) 703/569-1502. MA: (GA) 404/449-5961.

Ml: 313/227-7067, MN: 612/822-2119. MS: (AL) 205/883-8660, MO: 816/765-3337, MT: (CO) 303/759-0809, NB: (MO) 816/765-3337, NH: (GA) 404/449-5961, NJ: (GA) 404/449-5961.

NV: (AZ) 602/994-5400, NM: 505/292-1212. NY: (GA) 404/449-5961. NC: 919/682-2383, ND: (MN) 612/822-2119.OH: Dayton 513/429-9040. Cleveland 216/464-8113, Columbus614/436-2051.

OK: (TX) 214/840-2169, OR: 503/620-5800. PA: 412/922-5110. Rl: (GA) 404/449-5961. SC: 803/798-8070. SD: (MN) 612/822-2119. TN: 615/482-5761. TX: 214/840-2169, El Paso Area (Las Cruces. NM)

505/523-0601, Houston Only 713/780-2511, UT: 801/973-7969, VT: (GA) 404/449-5961, VA: 703/569-1502. WA: 206/455-9180. WV:412/922-5110. Wl: (IL) 312/564-5440. WY: (CO) 303/759-0809.

EUROPEAN EXPORT SALES. EUROPE: (MA) 617/661-9424. BELGIUM: Brussels 02-242 36-04, FRANCE: Rueil Malmaison 749-40-37, GREECE: Athens 642-1368, ITALY: Roma 805-647/872-457,

THE NETHERLANDS: Poeldijk 01749-7640, SPAIN: Barcelona 204 17 43, SWEDEN: Vallingby 08-380-370, SWITZERLAND: Mutschellen 057-54655. UNITED KINGDOM: Bournemouth 0202-293-115,

WEST GERMANY: Munchen 089-31881, AUSTRALIA & NEW ZEALAND: Melbourne 543-2077, Meadowbank 808-1444. Chermside 59-6436. Wellington 64-4585, Auckland 876-570, CANADA:

Datamex. Ltd (Distributor) Dorval 514/636-9774, Ottawa 613/224-1391, Toronto 416/787-1208. Vancouver 604/684-8625. CENTRAL & SOUTH AMERICA & CARIBBEAN: (GA) 404/394-9603, MEXICO:

Monterrey 564-876, FAR EAST: (CA) 213/382-1107, HONG KONG: 5-742211. JAPAN: Tokyo 402-8596, TAIWAN: Taipei 02-7026284, MIDDLE EAST: IRAN: Tehran 891148. ISRAEL: Tel Aviv 266-291.

KUWAIT: Kuwait 438 180/1/2, LEBANON Beirut 221731 260110. SAUDI ARABIA: Jeddah 27790. Ryadh 25083-39732, UNITED ARAB EMIRATES: Sharjah 24068

For sales and service in other countries contact ISC headquarters in Norcross. GA,, U.S.A

Intelligent SyStemS Corp. □ 5965 Peachtree Corners East D Norcross, GA 30071 D Telephone 404^49-5961 □ TWX 810-766-1581Circle 176 on inquiry card. BYTE August 1979 13

An operation which builds new objects isa constructor.

List

Besides decomposing objects, we must be able to buildnew objects. The general name for an operation whichbuilds new objects is a constructor. One LISP constructoris LIST. Here are some examples of usage:

yields:

yields:

(LIST 'A 'B 'Q

(A B C).(LIST 2 'B)

(2B)

Note that we did not quote the 2. LISP understandsthat numbers are constants. Also, the LIST operation willtake an arbitrary number of operands; three in our firstexample, two in this one, and none in the next:

yields:

(LIST)

().

At last...the mechanical interface

Turn your electric typewriter into a lowcost, high quality hard copy printer.

30 Day DeliveryUser list

*395°°

Price increaseSeptember 1st.Dealer InquiriesInvited.

.V-

The all new

I/O Pak from

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.

Incorporated3100 Monroe Avenue, Rochester, New York 14618

J

As with the other instructions, except QUOTE, LISTcan handle instructions as operands.Try to determine the result of:

(LIST (FIRST (QUOTE (A)))(REST (QUOTE (A B))) (QUOTE C)).

Diligence may have been rewarded and you may haveresponded (A (B) C). There's an equal probability thatyou got mired in parenthesis-counting and responded( ? $ f i). One solution is to resort to M-LISP and recastthe expression as: list[first[(A)];rest[(A B)];C]

Since we should develop our S-LISP expertise, wemight also use our abbreviation: (LIST (FIRST '(A))(REST '(A B)) 'C).

A more general technique is pretty-printing. Pretty-printing exploits additional lines and spaces to highlightthe structure in complex expressions. For example:

(LIST (FIRST (QUOTE (A)))(REST (QUOTE (A B)))(QUOTE C))

or:

(LIST (FIRST '(A))(REST '(A B))'Q

In a modern LISP implementation we would find furtheraids for locating matching parentheses, just as an interac-tive Algol-like language should have aids for locatingmatching begin-end pairs.

Concat

Another S-LISP operation for building lists isCONCAT. It is a two-operand instruction; its firstoperand can either be an atom or a list, but its secondoperand must reference a list. The effect of CONCAT isto build a new list whose first element is the firstargument of the CONCA T and the remainder of the newlist is the second operand of CONCAT. For example(CONCAT 'A '(B)) would evaluate to (A B).

Note that LIST takes an arbitrary number ofarguments and builds a list whose elements are thosearguments. On the other hand, CONCAT takes only twoarguments, an element and a list, and adds the element tothe front of the list. For example:

(LIST '(A) '(C))

gives:

while:

gives:

((A) (C))

(CONCAT '(A) '(C))

((A) C)

14 August 1979 © BYT"; Publications lnc

Circle 326 on inquiry card.

What makes the Microtek Printerso different? Nothing!

EXCEPT....

THE PRICE: $750 (with parallel interface)THE PERFORMANCE:

• 80 or 1 20 columns (software selectable)

• Plain paper

• Pin Feed

• Double width printing

• 1 25 characters per second, 70 lines per minutenominal throughput

• 9x7 Matrix (80 columns/line), 7x7 Matrix (120columns/line)

• Vertical Format Unit

• 96-character ASCII (upper and lower case)

• Forms width continuously adjustable between4.5 inches and 9.5 inches (including sprocketmargins)

• Parallel (Centronics type) interface standard.Serial (RS-232) and IEEE-488 interfacesavailable

(714) 278-0633

To: MICROTEK, Inc., 7844 Convoy Court, San Diego, California 92111

D Send me more information.D Send me a printer with:

□ Parallel interface @ $750. □ Serial interface ® $835. □ IEEE-488 interface @ $895

□ Check or Money Order enclosed. □ Charge my VISA card. □ Charge my Master Charge card.

name (please print)

card number

address

cardholder's signature

city

state

zip

exp date

phone

Add $15.00 for packaging & shipping.

Dealer inquiries invited.

California residents add 6% sales tax.

Circle 209 on inquiry card.

BYTE August 1979 15

hy notkill two birdswith one stone?

If you have an Apple* and you want to interface it withparallel and serial devices, we have a board foryou that will do both. It's the AIO.™

Serial Interface.

The RS-232 standard assures maximum compat-ibility with a variety of serial devices. For ex-ample, with the AIO you can connect your Apple*to a video terminal to get 80 characters per lineinstead of 40, a modem to use time-sharingservices, or a printer for hard copy. Theserial interface is software programmable,features three handshaking lines, andincludes a rotary switch to select from7 standard baud rates. On-board firm-ware provides a powerful driverroutine so you won't need to write anysoftware to utilize the interface.

Parallel Interface.

This interface can be used to connect yourApple* to a variety of parallel printers. Theprogrammable I/O ports have enough linesto handle two printers simultaneously withhandshaking control. The users manualincludes a software listing for controllingparallel printers or, if you prefer, a par-allel driver routine is available in firm-ware as an option. And printing isonly one application for this generalpurpose parallel interface.

Two boards in one.

The AIO is the only board on the market that can interface the Appleto both serial and parallel devices. It can even do both at the sametime. That's the kind of innovative design and solid value that's beengoing into SSM products since the beginning of personal computing.The price, including PROMs and cables, is $135 in kit form, or $175assembled and tested. See the AIO at your local computerstore or contact us for more information.

J3557

2U6 Walsh Avenue

Santa Clara, California 95050

(408) 246-2707

•Apple is aTM of AppleComputeis,Inc.

These constructors can be used at anytime to com-pose new data objects. Now we can decompose listsand make new ones. We can perform evaluation ofsimple expressions, much like the facilities of a handcalculator. Soon we will show how to add newoperations to the LISP calculator.

Recognizers and Predicates

In traditional assembly language programmingwe find instructions which test for zero or comparetwo numbers. In LISP we manipulate data objectsbuilt from atoms and lists. The "zero" of lists is theempty list, (); and so we include a test for (), Sinceelements of a list can either be atomic or liststhemselves we include a test for "atomness", atom.Finally, we must be able to distinguish between twononidentical atoms using an equality test.

All LISP operations compute values. The valueswhich our previous operations produced wereatoms or lists; these new operations calledpredicates produce "truth values" —true or false. InM-LISP, we represent true and false as f and /;however, in S-LISP, these truth values must berepresented as data items, so we pick the atoms Tand ML as their representations:

EQ: Compare two atoms. That is, EQ is a

two-operand instruction which gives

value T just in case those operands

represent the same atom.ATOM: This single-operand instruction gives T

if its operand is an atom, and gives NIL

otherwise.NULL: This single-operand instruction gives T

just in case its operand is the empty list,

().

For example:

S-LISP

(ATOM A) gives T(ATOM '(A)) gives NIL(EQ A 'B) gives ML(NULL '(A B)) gives ML

M-LISP

atom[Aj gives tatom I (A) j gives feq[A;B] gives /nullKA B)l gives /

Since the predicates are value-producing they canbe used with the other list-manipulating operations:

(CONCAT (ATOM A)

(LIST 1 A)) gives (T 1 A)

Notice that the atom predicate is of slightly dif-ferent character than eq and null. Namely, atom isperforming a "type test" on a data structure; suchpredicates are called recognizers.

Text continued on page 118

Circle 335 on inquiry card.

Circle 9 on inquiry card.1

How to buypersonal compu

In California, a store owner charts sales on his AppleComputer. On weekends though, he totes Apple home to helpplan family finances with his wife. And for the kids to explorethe new world of personal computers.

A hobbyist in Michigan starts a local Apple, Computer Club, to challenge other membersYj, to computer games of skill and to^&^ trade programs.

■\ Innovative folks everywherehave discovered that the era of thepersonal computer has alreadybegun—with Apple.Educators and students use Applein the classroom. Businessmen trustApple with the books. Parents aremaking Apple the newest family pastime. And kids of allages are learning how much fun computers can be.Circle 9 on inquiry card.

Visit your local computer store

The excitement starts in your local computer store. It's

a friendly place, owned by one of your neighbors. He'll showyou exactly what you can use a personal computer for.

What to look for

Your neighborhood computer store has severaldifferent brands to show you. Chances are the salesman willrecommend an Apple Computer. Apple's the one you canprogram yourself. So there's no limit to the things you cando. The more you use your Apple the more uses you'lldiscover. So it's important that Apple is the computer withmore expansion capability. You can't outgrow Apple.

It's your move

Grab a piece of the future for yourself—we'll giveyou the address of the Apple dealer nearest you whenyou call our toll-free number. Then drop byand sink your teeth into an Apple. Jjp/j.1

(800)538-9696. _-%OV

In California,(800) 662-9238.

*****

(L

LISP Based Systems for Education

J Laubsch, G Fischer, and H D Bocker

Institute for Information

University of Stuttgart

Stuttgart, GERMANY

Future Computer Culture

There is sufficient evidence that personal computersystems will become as powerful as today's computersystems used in artificial intelligence research. Within theartificial intelligence community people are concernedabout possible uses of computers in an evolving com-puter culture. The basic goals of artificial intelligence areto:

• synthesize systems that behave intelligently;

• understand intelligence in terms of computationalconcepts.

The human needs a personal computer system will oneday help to satisfy cover the range of playing, learning,recreation, artistic creation, and personal assistance toexpand one's own memory and reasoning power. Using acomputer to build an intelligent tutor and an educationalenvironment that stimulates learning by discovery (ie:through simulation, exploratory problem solving) are ofcentral importance to artificial intelligence. Althoughcanned software for educational applications will bewidely available there remains a need for programmingto tailor the system to the user's individual needs andrequirements.

Our notion of what programming is all about willdrastically change: it will cover a wide range of possiblerelationships between man and machine where a personcreates and manipulates dynamic information structuresaccording to personal tasks and taste. Program writing,in the historical sense of writing individual statements, isjust one aspect of using a computer and will become lessrelevant, if not obsolete, compared to the understandingand modification of prefabricated software components.

LISP Based Systems

Historically, LISP has been used as the basic tool of ar-tificial intelligence since the computational ideas embed-ded in it, together with the program development systembuilt around the language, lend themselves most natural-ly to the design of complex systems.

The design of LISP systems has been guided by an em-

phasis on supporting the user to solve complex, ill-structured, poorly understood problems at already earlystages (eg: problem formulation, approximations to thefinal solution, support of debugging and program modi-fication), rather than only the final step of coding a wellunderstood problem or an already known algorithm in agiven programming language. Program constructs andprogramming methodology in the LISP culture were par-ticularly concerned with cognitive efficiency (ie: to makeprograms understandable by humans). It was one of thegratifying results of this work that these programs, withthe help of program transformation systems, can also beproved correct and run efficiently.

Designing a Personal Information System

Suppose you want to design a personal notebook con-taining people's names, addresses, interests, programsthey use, messages you are sending them, appointmentsyou make with them, etc. Such a system will consist offrequently changing information structures. As a per-sonal information system it should model and extend thatinformation system in our head. By using the system, wewill feel the need for new features that should be incor-porated (ie: an easy to learn command language or an in-structional help facility to introduce a new user). A moreadvanced version of the system should be able to performsimple deductions. For instance, if we tell the system atsome point of time, "My friend Jim has moved to SanFrancisco" and later ask it to, "List all friends in Cali-fornia," Jim should be included in the set. Eventually thissystem could "grow up" to become a personal assistant.

We will show that the computational ideas of LISP, asdeveloped in the artificial intelligence community, areparticularly well-suited for this kind of application.

Basic Computational Ideas

We list those ideas which are relevant to the design ofcomplex programs and transcend the capabilities of otherlanguages and systems. In almost all interesting educa-tional applications of computers, complex programs willbe involved:

18 August 1979 © BYTE Publications Inc

Incremental design. E Sandewall feels that inter-active middle-out programming (besides top-downand bottom-up approaches) is a natural way tobuild a complex system in a process of structuredgrowth. We construct a simple version of thesystem, try it out, identify our misunderstandingsand debug it. This knowledge, and our critique, willlead to modified specifications, and a new cycle ofexploratory programming begins. Since LISP sys-tems are incremental, old modules may be modifiedand new building blocks can be added with an im-mediate effect. The compilation of fully debuggedcode is available as an optional feature.

1 Complex dynamic data-structures. Most informa-tion processing models and problems to be solvedwith the computer will deal with complex dynamicstructures like lists, trees, nets, property lists, etc,and will not be based only on numbers and strings.In our above example, the information associatedwith a person could be represented in a natural wayas the linked structure in figure 1. It should be easyto include new attributes or provide for a businessas well as a home address.

We define data structures abstractly throughfunctions: constructors to build a datum; selectorsto extract an attribute, and predicates to examinethe type of a data structure. Including otherrepresentations, such as graphics, is easy since mostLISP systems contain a higher level assemblylanguage that gives access to the machine level.

1 Data-program equivalence. A typical strategy toattack problems in artificial intelligence is to definelayers of languages, each suited to a particularlevel of abstraction (eg: <user interfacelanguage> — <interim language 1> — . . . —LISP).The definition of LISP itself, as stated by John

List All Friends in California

(FOR ALL X IN (GET/FILE FRIENDS)(IF (GET/STATE X):CALIFORNIA

THEN (PRINTOUT (GET/NAME X))))

User InputTranslation

EvaluationSystem Output

List ofAddresses

Table 1: A typical problem approach may be to take a user com-mand and translate it into program instructions. These programinstructions are then executed by the computer. This is an exam-ple of taking a high level user language and converting it intoefficient machine language.

McCarthy, provides a good model for this ap-proach, since most of a LISP system is itself writtenin LISP, except for a handful of primitive functions.For example, the user's command is translated intoa program and then evaluated as in table 1.

LISP facilitates this approach since the functionEVAL lets the user evaluate any data as a program!The inverse is also true; it is quite easy to write pro-grams which manipulate other programs as if theywere data.

• Pattern matching and data driven programming.The system should respond to situations where theorder in which certain actions are to be taken is notspecified in advance. Furthermore, in many situa-tions it will be impractical to specify a questionliterally: we might have to leave slots open whichcan be filled in by the system, using the knowledgecontained in its data base. In our example, manyother types of requests are possible. To translatethem, patterns to decompose and recompose themcan be defined.

NAME

ADDRESS

'

INTERESTS

LISP

CAI

CHESS

—=^

=-=

Figure 1: An example of a linked list. This form of linked list is called a singly linked list. In a singly linked list, the user can onlymove in one direction, forward in the direction of the arrow. In a doubly linked list, the user can retrace the steps taken to arrive atthe present location.

August 1979 © BYTE Publications Inc 19

Pattern languages like these are easy to imple-ment in LISP (see Winston, Bocker and Fischer, andKornfeld's article in this issue). Constructs con-sisting of condition action pairs form the basis ofproduction systems as described by Newell andSimon. Procedure calls are triggered (and thus, datastructures are manipulated) by the global state of aworld (ie: the data/knowledge available) and notaccording to a predefined calling structure.

Property lists. Property list-like structures form thebasis of an associative memory. They were deve-loped in list processing languages (eg: IPL-V andLISP) and have been generally (ie: in many pro-gramming languages) accepted as constructs whichare conceptually easy to handle.

They allow procedures to be linked to data itemsand evaluated depending on the current state of thesystem. For example, to update the address of Jimwe may write:

(APPLY (GET JIM UPDATE/ADDRESS) (READ))

The first argument of APPLY is an address updatingfunction, which is stored on the property list of JIMunder the property UPDATE/ADDRESS. The se-cond argument of APPLY is the argument the up-date function will become applied to. In our exam-ple these data will be requested from the userthrough the function READ.

The educational value of these ideas is that theyprovide powerful ideas for the personal computeruser who wants to shape a reactive environment tohis needs.

LOGO Based Learning Environments

LOGO is, up to surface structure, more or lessequivalent to LISP. LOGO as a programming language(developed by W Feurzeig and S Papert) was designedand developed to form the basis for learning environ-ments in which the student taking an active role can learnabout computers and use them to investigate issues ineducation and cognitive psychology. The LOGO systemsupports two different (by no means disjoint) environ-ments: the Turtle, Graphics and Musicbox world (ie:peripheral devices which are controlled by a commandlanguage) and the LISP world. A well-engineered pro-gramming environment, based on an LSI-11, is commer-cially available as a stand alone, personal computingsystem. It integrates the language processor, editor,tracer, debugger, file management, document facilitiesand text processing into one system (comparable effortsto build similar systems around Pascal are still in theirinfancy).

LOGO projects working on computers and educationcan be found in many places around the world. We brief-ly summarize the experiences we gathered in our projectin Darmstadt (see also Fischer):

• Basic computational ideas like recursion, the con-

r

%

v

G. W. COMPUTERS LTD.

This is how your business appears on the screen

Approximately 60-100 entries/inputs require only 2-4 hoursweekly and your entire business is under control.

•PROGRAMS ARE INTEGRATED - SELECT FUNCTION BY NUMBER

13 = PRINT CUSTOMER STATEMENT14=PRINT SUPPLIER STATEMENTS

15 = PRINT AGENT STATEMENTS

16 = PRINT TAX STATEMENTS17= PRINT WEEK/MONTH SALES

18 = PRINT WEEK/MONTH PURCHASES

19 = PRINT YEAR AUDIT20= PRINT PROFIT/LOSS ACCOUNT

21 = UPDATE END MONTH FILES

22 = PRINT CASH FLOW FORECAST23= ENTER/UPDATE PAYROLL (NOT YET AVAILABLE)24= RETURN TO BASIC

01=ENTER NAMES/ADDRESS, ETC

02 = *ENTER/PRINT INVOICES

03 = *ENTER PURCHASES04='ENTER A/C RECEIVABLES05 ='ENTER A/C PAYABLES06= ENTER/UPDATE INVENTORY07= ENTER/UPDATE ORDERS

08 = ENTER/UPDATE BANKS

09 = EXAMINE/MONITOR SALES LEDGER10=EXAMINE/MONITOR PURCHASE LEDGER

11 =EXAMINE/PRINT INCOMPLETE RECORDS

12 = EXAMINE PRODUCT SALES

WHICH ONE? (ENTER 1-24)

Each program goes to sub menu, e.g.:(9) allows: A, LIST ALL SALES; B. MONITOR SALES BY STOCK CODES;C, RETRIEVE INVOICE DETAILS; D. AMEND LEDGER FILES;E, LIST TOTAL ALL SALES

Think of the possibilities and add to those here if you wish.

Price for current package Version 1 is $550, or Version 2 (including aged debtors analysis, etc.) is $750, or full listing, $300

All programs in BASIC for SWTP 6800 and Pet 16/32K Systems Package includes 31 programs

contact Tony Winter on 01-636-821021 B Dryden Chambers119 Oxford StreetLondonW1, UK

Circle 153 on inquiry card

J

20 August 1979 © BYlE Publications Inc

Circle 285 on inquiry card.

Both sides now

North Star Announces —

Double Density x 2 Sides = Quad Capacity!

The North Star Horizon now delivers auad capacity by using two-sidedrecording on our new mini drives! That's 360,000 bytes per diskette! A fourdrive North Star system accesses over 1.4 megabytes of information on-line!Think of the application flexibility that so much information storage cangive you!

North Star has quadrupled the disk capacity of the Horizon computer butprices 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 toaccommodate the two-sided drives. North Star DOS and BASIC areupgraded to handle the new capacity, yet still run existing programs withlittle or no change. Of course, single sided diskettes are compatible with thenew disk system.

3th sides now! Quad ccis available from your North Stardealer.

NormStar^

North Star Computers

1440 Fourth Street

Berkeley, CA 94710

(415) 527-6950 TWX/Telex 910-366-7001

TRADITIONAL APPROACH

LOGO APPROACH

NATURAL LANGUAGE

MATHEMATICS

Figure 2: Two different approaches to bridging the gap between natural language and the formal symbols of programminglanguages are represented. The traditional approach links everything closely with mathematics and uses mathematics as the bridge,In the authors' approach, the LOGO language is used as the bridge since it can be used to develop reasoning powers without havingto become involved with the language of mathematics.

cept of an interpreter, list processing and thosementioned above can be naturally integrated intointeresting projects, caused no difficulties forstudents to understand, and can be considered aspowerful in the sense that they are widely appli-cable (even in problem solving situations withoutthe computer).

• Graphic devices, music box, etc, provide strongmotivational support, excellent entry points to ex-plore the world of computation because early suc-cess is possible and interaction with the machine isbased on observable and intuitively understandableevents.

• Our experiences, especially with young students,indicate that programming in LOGO may serve as abridge between natural language communicationand reasoning and the formal and abstract symbolsand reasoning in mathematics and programminglanguages. The findings differ greatly from thetraditional approaches where computer scientiststry to keep things linked as closely as possible tomathematics, assuming that mathematics couldserve as a bridge to programming (which we allknow is questionable because most people are morealienated by mathematics than attracted). Figure 2illustrates the two different approaches.

Our findings can at least be partly explained bythe cleanliness by which the basic computationalideas are embodied in LISP/LOGO.

medium to test one's own understanding of con-cepts and of poorly understood systems (ie: if wereally understand something, we can write a com-puter program that will do it).

Group projects are easy to realize since the programdevelopment system supports the organization ofmodules as building blocks. In our example of apersonal information system, one person couldwrite the module to translate inputs into an internalrepresentation, another person may write a deduc-tive component and a third person could deal withthe problem of how to answer requests or questionsfrom the user.

Our programming methodology differed in anessential way from other approaches. Procedures,including parameters and recursion as basic controlstructures, were introduced long before the conceptof a variable was mentioned. These two aspects arenot independent of each other. They basically intro-duce the learner to "pure LISP" (ie: a version ofLISP without variables) and avoid the problemsassociated with side-effects and global variables.

Our empirical evidence indicates that learning otherprogramming languages (eg: BASIC, Pascal) afterhaving learned LOGO was easy because constructsin these languages could be easily mapped intoknown concepts, whereas this statement does nothold in the other direction.

• Our programming environment stimulates learningby discovery. New concepts are discovered by solv-ing a problem through incremental writing anddebugging of programs. The computer serves as a

Intelligent Computer Assisted Instruction

Despite our belief that the most important impact ofcomputers for educational applications will be the activeindependent use described in the previous section (the

22 August 1979 © BYTE Publications Inc

Graphics for small systemswere too expensive...

" Until Now

digital plotters

The perfect small system output device

• Displays data In easy to read graphicalformat

• Both serial and parallel inputs built-in

• Uses standard 8Vi" x 11" paper

• Plotting speed up to 2.4 ips

• Resolution of both 0.01 and 0.005 in.

• Baud rate and step size easily changed

• Completely assembled and ready to use

• Priced at $1085*

'J)

TM

digitizers

The perfect small system input device

• Resolution and repeatability of 0.005 in.

• Origin is completely relocatable

• RS232C and 8 bit parallel interface se-lectable at the connector

• Accuracies of ±0.015 in. (0.4mm)

• Optional LC display shows

actual values being inputted

• Digitizing surface 11" x 11"

• Priced at $795*

I

llVUliui

ft

r'S;

"U.S. Domestic Price Only

TM Trademark of Houston Instrument

For rush literature requests

or local sales office information only,

persons outside Texas call toll free 1 -800-531 -5205.

luston

iirumenf

DIVISION OF MUSCH&

o

ONE HOUSTON SQUARE(512) 837-2820

"the graphics - recorder company"

AUSTIN, TEXAS 78753TWX 910-881-2022

ei idadc a ki nccirc Rochesterlaan 6 8240 Glstel BelgiumEUROPfcAN OPMOt p^g 059/277445 Telex Bausch 81399

Circle 172 on inquiry card.

BYTE August 1979 23

student teaches the computer), we do not overlook therich potential of using intelligent programs to teach thestudent certain subjects, to involve and tutor him in gameplaying situations, and to diagnose his difficulties.

The traditional computer aided instruction wasmodelled on a reduced view of learning: present astimulus item to the learner, receive a response and give areinforcement. More advanced programs select thematerial to be presented according to how well the stu-dent is doing, or give him a possibility to select the parti-cular topic he wants to study or practice. From a morecomprehensive view of learning, it is essential to diagnosethe learner's cognitive development and support himthrough a tutor who is himself an expert in the problemand can infer the conceptual difficulties this learner mayencounter. A prototype is the Buggy program written byartificial intelligence researchers J Brown and R Burton,which goes far beyond traditional computer aided in-struction programs by integrating artificial intelligencetechniques and cognitive theories about learning,teaching and debugging.

Buggy relies on the basic pedagogical assumption,which was verified through extensive empirical findings,that students give wrong and arbitrary answers in only afew cases but tend, rather, to answer a different questionor compute a result according to a different algorithm.They behave, in many cases, with absolute consistencywith respect to their own theories. To provide real help,the teachers have to deduce the underlying misunderstan-ding (ie: the deep structure) from scarce observations onthe surface. Buggy is a program which does this for sim-ple arithmetic skills. The knowledge to draw an inductiveinference is stored in a diagnostic model, which tries tocapture possible deviations from the correct way of doingthe task.

Another example that uses a diagnostic model is theWumpus advisor (called Wusor II), which teaches in-ference strategies in the Wumpus game created byGregory Yob. The program teaches the knowledge of anexpert player by tailoring its advice and explanations toits current estimation of the player's knowledge. Theseprograms may serve as prototypes of intelligent tutoringprograms to teach the playing of games.

A different approach in intelligent computer aided in-struction does not include an expert tutor, but is guidedby the philosophy of creating a simulated environmentwhich the user is free to explore at will. The discovery ofthis environment leads to the acquisition of new skillsand knowledge. Prototypes of such systems are: Scholar,a question answering system to learn about geography ina mixed initiative dialogue (Carbonell); Sophie, a systemto teach electronic trouble-shooting (Brown, Burton,Bell); and the Logic program developed at Stanford (Sup-pes). What makes these programs appear to behave in-telligently is the fact that the knowledge they teach is us-ed by these systems in many ways to carry out dialogues(for an overview see Laubsch).

A crucial component of friendly, intelligent, computeraided instruction systems is natural language (eg: theSophie system). Rapid advances in artificial intelligencemake it seem likely that natural language interfaces willbe available for many applications of interest to thegeneral public.

It is not possible to explain the details of these pro-grams here down to an implementation level, becausethese systems are large and complex as compared to cur-rent standards. The historical evidence may suffice toshow that all these systems have been implemented inlarge sophisticated LISP systems (eg: InterLISP) whichhave matured over more than a decade to support thedevelopment of systems of this size.

Conclusions

LISP remains a tool in artificial intelligence and educa-tional research, even though it has contributed greatly toour understanding of computational issues and theirrelevance to intelligent behavior.

We do not want to give the impression that all inter-esting uses of computers are centered around LISP. Someof the most innovative work was done by the LearningResearch Group at Xerox Research Center in theirdevelopment of the Dynabook and the Smalltalklanguage.

The real issues remain and pose many research pro-blems for the years to come: to create cognitive theories;to create a science of intelligence, and to apply it suc-cessfully to the problems of education. ■

Bibliography

1. BOCKER, H D, and FISCHER, G, Interaktives Problemlosen mitComputerhilfe: Problemaufgaben, Forschungsgruppe CUU,Darmstadt, 1978.

2. BROWN, J S, BURTON, R R, and BELL, A G, "Sophie: A StepToward Creating a Reactive Learning Environment," Interna-tional Journal of Man-Machine Studies, volume 7, 1975, pages675 thru 696.

3. BROWN, J, and BURTON, R, "Diagnostic Models for ProceduralBugs in Basic Mathematical Skills," Cognitive Science, volume2, 1978, pages 155 thru 191.

4. CARBONELL, J R, "Al in CAI: An Artificial Approach toComputer-aided Instruction," IEEE Transactions on Man-Machine Systems, volume MMS-II, number 4, 1970.

5. CARR, B, WUSOR II: A Computer Aided Instruction Programwith Student Modelling Capabilities, Al-Memo 417, MIT ArtificialIntelligence Lab, Cambridge MA, 1977.

6. FISCHER, G, "Das Losen komplexer Problemaufgaben durchnaive Benutzer mit Hilfe des interaktiven Programmierens,"Forschungsgruppe CUU, Darmstadt, 1977.

7. FEUERZEIG, W (editor), Programming Languages as a Concep-tual Framework for Teaching Mathematics, BBN ReportNumber 2165, Cambridge MA, 1971.

8. General Turtle Corporation, 120 Boulevard Industriel, Boucher-ville Quebec, 34B 2X2 CANADA.

9. KAY, A, "Microelectronics and the Personal Computer," Scien-tific American, September 1977, pages 231 thru 244.

10. LAUBSCH, J, "Artificial Intelligence Methoden im CUU," KBrunnstein et al (editors), Lecture Notes in Computer Science,volume 17, Springer Verlag, Berlin, 1974, pages 385 thru 393.

11. MCCARTHY, J, "A Micromanual for LISP—not the WholeTruth," SIGPLAN Notices, volume 13, number 8, August 1978,pages 215 thru 216.

12. PAPERT, S, "Uses of Technology to Enhance Education," LogoMemo 8, MIT Artificial Intelligence Lab, Cambridge MA, 1973.

13. SANDEWALL, E, "Programming in the Interactive Environment:The LISP Experience," ACM Computing Survey, volume 10,number 1, 1978, pages 35 thru 72.

14. SUPPES, P, SMITH, R, and BEARD, M, University Level Com-puter assisted Instruction at Stanford, TR number 265, IMSS,Stanford University, Stanford CA, 1975.

15. WINSTON, P, Artificial Intelligence, Addison Wesley, ReadingMA, 1977.

16. YOB, G, "Hunt the Wumpus," Creative Computing, Septemberand October, 1975, pages 51 thru 54.

24 August 1979 © BYTE Publications Inc

SYBEX

LEADER

COMPUTER EDUCATION

BEX. INC.

Milvia Street

ey, California

94704

MICR0PR0CESS0RINTERFACING

TECHNIQUES

««« «HTW«I

AUSTIN L£SEARODNAYZAKS

D PROGRAMMING THE Z80, ref C280, by Rodnay Zaks, 330 pp $11.95

D PROGRAMMING THE 6502, ref C202, by Rodnay Zaks, 350 pp. (2nd Edition) $11.95

U 6502 APPLICATIONS BOOK, ref 03O2, by Rodnay Zaks, 288 pp $12.95

U MICROPROCESSOR INTERFACING TECHNIQUES, ref C207, by Rodnay Zaks, 420 pp $14.95

D AN INTRODUCTION TO PERSONAL AND BUSINESS COMPUTING, ref C200, by Rodnay Zaks, 250 pp.. $6.95

□ MICROPROCESSORS-FROM CHIPS TO SYSTEMS, ref C201, by Rodnay Zaks, 420 pp $9.95

D FREE DETAILED CATALOGUE

TO ORDER:

By Phone:(415) 848-8233. Visa, Mastercharge,

American Express.By Mail: Check books above. Include payment.Shipping: Add $1.50 per book (UPS), or 75c

(4th class- allow 4 weeks).Tax: In California, add tax.

NAME

COMPANYADDRESS _CITY

.STATE.

.ZIP.

□ Charge my: □ Visa □ Mastercharge □ American Express

Number Exp. Date

Signature

Circle 358 on inquiry card.

BYTE August 1979 25

The Lambdino StorageManagement System

Gianfranco Prim

Instituto di Scienze dell'Informazione

Universita' di Pisa

Corsa Italia 40-1-56100 Pisa ITALY

Martin Rudalics

Institut flier Mathematik

Johannes Kepler Universitaet Linz

A-4045 Linz/Auhof AUSTRIA

Lambdino is a statically scoped dialect of LISP (seeglossary for definitions). The name Lambdino is a com-bination of lambda, Landin, and ino, where lambdastands for itself, Landin refers to a person, and ino is anItalian suffix for small. The reference to Peter Landin isdue to the fact that he designed the first statically scopedapplicative language based on the interpretive philo-sophy of LISP (as described in his paper entitled "TheMechanical Evaluation of Expressions"). Otherpredecessors of Lambdino include the anonymous lan-guage used by Reynolds in his work Definitional Inter-preters for Higher-Order Programming Languages and inScheme as described by G Sussman and G Steele.

A detailed description of Lambdino and the problemsposed by its implementation are beyond the scope of thispaper. Here we only want to sketch some ideas on whichwe have based its storage management system. ThusLISP or Scheme may be substituted for Lambdinothroughout this paper.

An explicit design goal of Lambdino is its transport-ability onto a wide class of computers, includingmicrocomputers. Particular care has been put into thedevelopment of the Lambdino storage managementsystem in order to fit the space and time constraints ofmicrocomputers. A machine independent version ofLambdino, implemented in MagmaLISP, has been rea-lized and will be bootstrapped in the near future onseveral machines, including an IBM System/370 Model168 (IBM 74) and a Zilog Z-80 Development System. Theonly assumption made in this implementation is that thememory of the host machine is structured into directlyaddressable bytes.

Storage Management in LISP

Implementors of LISP systems have developed varioustechniques to make efficient use of free storage (ie: thatpart of the memory not occupied by the operating systemand the LISP kernel including the data structure manipu-lating primitives and the garbage collector). In all thesetechniques, objects are manipulated via pointers, andarbitrary run time type checking is possible in bothsystem programs and user defined functions. This is nor-mally achieved by using typed pointers in a more or lessexplicit way. A typed pointer is a pair <T,A> whichidentifies an object type T located at address A. Thelength of A usually coincides with the address length ofthe host machine (eg: 18 bits in the PDP-10, 24 bits in theIBM System/370). In this way, the hardware addressingmechanism may be efficiently used for the implementa-tion of most data structure manipulating primitives. Therepresentation of T usually requires only a few bits(typically 2 or 3 in small systems with a limited numberof data types, 7 or 8 in large ones).

Although it is possible to implement a typed pointer<T,A> as the concatenation of the bit strings repre-senting T and A, in some systems only A is representedexplicitly, while T is implied by (ie: is a function of) A.

Acknowledgements

The work reported in this article has been partly supported byCNR during a period of four months spent by Martin Rudalicsat the Instituto di Elaborazione dell' Informazione with ascholarship of the Italian Foreign Office.

26 August 1979 © BYTE Publications Inc

"Our inventory is our existence*

Hunk we'd trust it to anything less

than Scotch Brand Diskettes?"

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

Scotch Diskettes are thediskettes you can depend uponwith the information yourbusiness depends upon.

Each one is tested andcertified error-free before itleaves our factory. Because weknow nothing less thanperfection is acceptable foryour vital business data.

Scotch Diskettes areavailable in regular or minisizes, compatible with almostany system.

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

If it's worth remembering,

it's worth Scotch

Data Recording Products.

3M

Circle 368 on inquiry card.

BYTE August 1979 27

A one-to-one correspondence betweenpartitions and data types is implicitlyestablished.

There are basically three ways of implementing typedpointers.

Contiguous Partitions

Free storage is divided into a number of areas calledpartitions which consist of contiguous memory cells (ie:bytes or words). Each partition is allowed to contain onlydata belonging to the same type (also referred to as thetype of the partition, see figure 1). A one-to-one corres-pondence between partitions and data types is implicitlyestablished by the implementation of the data structuremanipulating primitives. The type T of an object is ob-tained by comparing its address A with the boundaries ofthe partitions.

This technique has been adopted by the PDP-10 imple-mentation of LISP 1.6 and some early versions ofMacLISP. In fact it is particularly suited to those com-puters in which typed pointers are not allowed to containan explicit representation of T without a considerablewaste of space. As an example, one word in the PDP-10 is36 bits long and may contain exactly two addresses. Ifone half word were reserved for representing T, severalbits would remain unused.

Contiguous partitions may be disadvantageous whenthe partition associated with a type T becomes full andthe allocation of a new object of type T is requested. Thegarbage collector may then fail to recover sufficient spacefor allocating the new object, even though other parti-tions are nearly empty. This drawback may be eliminatedby enlarging the overpopulated partition and contractingthe underpopulated ones. A compacting garbage collec-tor with additional phases is required for this purpose.After the compaction phase, the boundaries of the parti-tion are redefined, data is moved to fit the new boun-

daries and all pointers to moved data are updated accord-ingly.

Paged Partitions

Free storage is divided into pages of equal length(usually a power of 2, eg: 1 or 2 K bytes or 256 or 512words). A page is referred to as busy or free, according towhether or not it currently contains data. Like conti-guous partitions, each busy page may contain only databelonging to the same type, further referred to as the typeof the page. The correspondence (usually many-to-one)between busy pages and their respective types is dyna-mically realized by a type table, which also keeps track ofthe free pages (see figure 2).

The type T of an object located at address A may beretrieved by accessing the type table using the most signi-ficant bits of A as an index (this is possible if the pagelength is a power of 2). When a object of type T is to beallocated and no more space is available in pages of typeT, a new free page is used and its type is set to T. Thus,the partition associated with a given type is distributedover several pages. The garbage collector compacts alldata of a given type into as few pages as possible.

This technique, which has been developed as an alter-native to contiguous partition for the same class of com-puter architectures, has been empleyed in the PDP-10 im-plementation of INTERLISP and recent versions ofMacLISP (as described by G Steele in Data Representa-tion in MacLISP).

As for the efficiency, paged partitions and contiguouspartitions with variable boundaries are comparable: thenecessity of accessing the type table may lead to a slowertype checking, but the garbage collector need not recom-pute boundaries and move data accordingly. A nice pro-perty of this technique is its compatibility and smooth in-teraction with timesharing operating systems that havepaged virtual memories. In fact, the page table used bythe operating system and the type table may be easilycombined.

Paged Partitions with Tagged Pointers

This technique is identical to the preceding one, except

PI

(Tl)

P2(T2)

P3(T3)

• • •

• • •

Pn(Tn)

i

i

Figure 1: Contiguous partitions: a pointer to an object of type72.

PI

P2

P3

P4

P5

• • •

Pn

i

i

i

Tl

T2

1

1

Tl

i

<

• 9 •

T3

... 1

i

Figure 2: Paged partitions: a pointer to an object of type T2.

28 August 1979 © BYTE Publications Ire

Tinker, Tailor, Soldier, Sailor . . .Doctor, Lawyer .. . the Chieftain's here.

No matter whether you're a serioushobbyist or a serious businessman, theChieftain 6800 microcomputer with ca-pabilities that surpass the Z-80 is madefor you.

Smoke Signal's quality-packedChieftain I features two 5.25-inch mini-floppy drives and Chieftain II fea-tures two 8-inch floppy drives. "v*"^ ■!?'**

Both microcomputers ^Tsfi**'provide 32K static memory, ^"^two serial I/O ports, a 2 j.'-^1MHz processor board, a 2KRAM monitor, a nine-slotmotherboard with built-in baud rate generatorand gold connectors forhigh reliability. TheChieftain's stylish leath-er-grained cabinet housesthe above with its owncooling fan and regulatedpower supply.

Every Chieftain is complete withsystem software and is totally burned-inas well as tested to further insure highreliability.

And it's expandable to 64K memorywith up to 2 megabytes floppy diskstorage.

So see your nearest Smoke Signaldealer, he'll be glad to show you how toget your wampum's worth. Systemsstart at $2,595.

□ Send information on your Chieftainmicrocomputer□ Send name of nearest dealer

Name

Address

Company

City

SMOKE SIGNALBR01DMST1NG

31336 Via Colinas. Westlake Village.California 91361. (213) 889-9340

Dealer inquiries invited.

Hail to the Chieftain

Smoke Signal Broadcasting, 31336 Via Colinas, Westlake Village, CA 91361, (213) 889-9340

Circle 328 on inquiry card. byte August 1979 29

:

PI

P2

P3

P4

P5

• • •

Pn

T2

•

INT

347

LISP does not contain primitives fordeclaring new data types.

Tl

T2

i

i

Tl

«

1

• • •

T3

i

i

i

i

Figure 3: Paged partitions with tagged pointers: a pointer to anobject of the type T2 and the representation of the integer 347.

}

—-

I

T

/

\

1

■

|

<FIE>

<FOE>

<FUE>

Figure 4: Storage representation of an object created by MK-FOO.

ii

F00

<FIE>

<FOE> <FUE>

Figure 5: Storage representation of an object created byMK=FOO.

for the fact that all pointers to an object also contain anexplicit representation of its type T (see figure 3).

Tagged pointers have been adopted in MagmaLISP andthe IBM version of InterLISP. They are convenient incomputers whose word size exceeds the address length bya few bits, which may comfortably contain the represen-tation of T type. As an example, a typed pointer <T,A>may be represented with a full word in the IBMSystem/370 by reserving 24 bits for A and the remaining8 bits for T. It is interesting to note that the LISP machine(described by A Bawden, et al, in the LISP Machine Pro-gress Report) implements typed pointers in this way.

Tagged pointers allow for a quick retrieval of the typeof an object. Moreover, short constants such as char-acters, small integers, etc, may be directly represented inthe address part of a typed pointer (see figure 3). The typeT identifies them as immediate data not to be manipu-lated as pointers (note that no private pages are needed tostore immediate data). The main drawback of this techni-que is that information is somehow duplicated: in fact, a

type table is still needed by the garbage collector duringthe compaction phase.

How To Get Rid of Most Terminating NILs

LISP (unlike ALGOL 68 and Pascal) does not containprimitives for declaring new data types. However, Sexpressions are an effective tool allowing the user to pro-gram new data types explicitly.

As an example, consider a record class named FOOwhose instances contain the fields FIE, FOE, and FUE.The data type FOO may be programmed in LISP usingproper lists (ie: lists ending with NIL) as follows:

(DEFINE MK-FOO (FIE FOE FUE)

(LIST ' FOO FIE FOE FUE))(DEFINE IS-FOO (X) (EQ (CAR X) ' FOO))(DEFINE FIE-OF (X) (CADR X))(DEFINE FOE-OF (X) (CADDR X))(DEFINE FUE-OF (X) (CADDDR X))

The storage representation of an object of type FOO isshown in figure 4. It is immediately evident that thisrepresentation is space consuming: in fact, the last cellmay be eliminated, and the pointer turned into a pointerto <FUE> (see figure 5). To this purpose, MK-FOO andthe other functions may be redefined as follows:

(DEFINE MK=FOO (FIE FOE FUE)

(CONS ' FOO (CONS FIE (CONS FOE FUE))))(DEFINE IS=FOO (X) (EQ (CAR X) ' FOO))(DEFINE FIE =OF (X) (CADR X))(DEFINE FOE=OF (X) (CADDR X))(DEFINE FUE=OF (X) (CDDDR X))

Unfortunately, when the structures created byMK = FOO are printed by the standard output routines ofLISP (eg: for debugging purposes), their readabilitydecreases considerably. For instance, (MK-FOO 1 2 (MK-FOO 3 4 5)) is printed as (FOO 1 2 (FOO 3 4 5)), whereas(MK = FOO 1 2 (MK = FOO 3 4 5)) yields (FOO 1 2 FOO3 4.5), thus introducing an irritating extra dot whileomitting one pair of significant parentheses.

It is possible to both maintain the clean formalism ofproper lists, and represent them efficiently (as indicatedin figure 5) by introducing the concept of NULLCDRcells. To this purpose an additional bit, B, is associatedwith each typed pointer, thus yielding a triple<T,B,A>. When B is clear, <T,B A> represents atyped pointer as usual. When B is set, <T,B,A>represents a LISP cell whose CDR is NIL (ie: a NULLCDRcell) and whose CAR has type T and is located at addressA. NIL must be used explicitly in only a very few cases(see figure 6).

With the introduction of NULLCDR cells, only proper

30 August 1979 © BYTE Publications Inc

lists are allowed in Lambdino. This fact has several con-sequences:

• Space is not only saved in the implementa-tion of user defined data structures, but alsoin the list representation of interpreted func-tions. Most lists in purely applicative pro-grams contain less than 3 or 4 elements,hence the introduction of NULLCDR cellsallows a save of 25 to 33% in space.

• The absence of the LISP dot notation slightlysimplifies the I/O (input/output) routines.

• The time required by CONS for checking thetype of its second argument is largely com-pensated by the time saved using NULL (or,better, NULLCDR) instead of NLISTP as apredicate for terminating recursions. Also,the functions CAR, CDR and NULLCDRneed not make a storage access when theirargument is a NULLCDR cell. This may leadto a significant save of time. As an example,the function:

(DEFINE EVLIS (X A)(COND ((NULL X) NIL)

(T (CONS (EVAL (CAR X) A)

(EVLIS (CDR X) A)))))

may be written more efficiently as:

(DEFINE EVLIS (X A)(COND ((NULL X) NIL)

(T (EVLIS1 X A))))

(DEFINE EVLIS1 (X A)

(CONS (EVAL (CAR X) A)

(COND ((NULLCDR X) NIL)

(T (EVLIS1 (CDR X) A)))))

This improved version saves some storage accesses andone recursive call to (and return from) EVLIS.

RPLACA and RPLACD (if they are implemented atall!) generate an error when applied to NULLCDR cells.

Standard garbage collectors (including the Schorr-Waite algorithm) are unaffected by the presence ofNULLCDR cells (pointers having the NULLCDR bit setare treated exactly as usual pointers).

Lambdino Design Issues

The Lambdino storage management system is a mix-ture of contiguous partitions and tagged pointers withNULLCDR bits. More precisely, the free storage is di-vided into two variable partitions FIXLEN and VARLEN(see figure 7).

FIXLEN may contain only fixed length data (ie: datawhose memory occupation depends only on their type).There are three FIXLEN data types in Lambdino, namelyatoms, cells and interpreted closures. They are recordswith two fields with the following characteristics:

• Atoms have a TOPVAL field which may beany datum (eg: a function definition) and aPNAME field, which must be a string (pro-perty list lovers will be allowed to use thisfield for holding property lists in special ver-

o T

Figure 6: Tagged pointers with NULLCDR bit: the examplerepresents (A ((B) Q) and ((A)).

VARLEN

• • •

FIXLEN

it i

i

VARALL

FIXALL

Figure 7: Overall organization of the free storage in the Lamb-dino storage management system.

b3

b2

bl

bO

ADDRESS

Figure 8: Tagged pointers in the Lambdino storage managementsystem.

sions of Lambdino).

• Cells have a CAR field which may be anydatum and a CDR field which must be a list,though possibly empty.

• Interpreted closures have a FUN field whichmust contain a LAMBDA and an ENV fieldwhich contains an ALIST (they are similar toFUNARG objects in LISP).

VARLEN is reserved for variable length data, ie: datawhich must contain explicit information on their memoryoccupation. There are three variable length data types inLambdino, namely strings, compiled functions and com-piled closures:

• Strings are mainly used for representingatom print-names.

• Compiled functions are binary code produc-ed by the Lambdino compiler.

• Compiled closures contain a pointer to acompiled function (which corresponds to theFUN field of interpreted closures) andpointers to the values of its free variables(they correspond to the ENV field of inter-preted closures).

A new datum is allocated by moving FIXALL to the leftor VARALL to the right according to whether it is aFIXLEN or a VARLEN datum. When FIXALL andVARALL collide, a standard compacting garbage collec-tor is invoked to contract VARLEN to the left and FIX-LEN to the right. The common length of FIXLEN data

August 1979 © BYTE Publications Inc 31

TAG 1

TAG 2

ADDRESS 1

ADDRESS 2

*— 1 BYTE —•-

«• 4 BYTES *

Figure 9: Representation of a cell in the Zilog Z-80 DevelopmentSystem.

TAG 1

ADDRESS 1

TAG 2

ADDRESS 2

«• 4 BYTES *

- 4 BYTES *

Figure 10: Representation of a cell in the IBM System 370.

allows the garbage collector to operate properly duringthe compaction phase without knowing the type of theobjects. This guarantees an optimal use of the limitedmemory of the host microcomputer.

Data are referenced by a special kind of tagged pointers(see figure 8). The tag consists of four bits:

• b3 is used during the mark phase of the gar-bage collector.

• b2 is the NULLCDR bit: when it is set, thetagged pointer represents a NULLCDR cell.

• bl and bO are used together with A to deter-mine the type of a datum.

The datum type is determined by bits bl and bO asfollows:

• When either bl or bO is set, A is interpretedas the address of a fixed or variable lengthdatum, according to whether A points intoFIXLEN or VARLEN. In this case the threepossible configurations of bl and bO are suf-ficient to cover the three types of FIXLENand VARLEN data, respectively.

• When bl and bO are both clear, A is to be in-terpreted as an integer number. Integers con-stitute the seventh data type of Lambdinoand are always represented as immediatedata.

Implementation Details

Our inplementation of Lambdino is supported by anabstract stack machine SM which contains the followingprimitives, in addition to standard arithmetic and controlroutines (we assume that A is a nonnegative Lambdinointeger, V a nonnegative Lambdino integer less than 256,P an arbitrary Lambdino tagged pointer).

(CETBYTE A) returns an integer representing the con-tents of the byte located at address A.

(PUTBYTE A V) stores V into the byte located at ad-dress A.

(GETCHAR) reads the next character from the input

stream and returns its integer representation.

(PUTCHAR V) writes the character represented by Vinto the output stream.

(GETTYPE P) returns the integer representation of thetag of P.

(PUTTYPE P V) returns a new pointer having tag Vand the same address part as P.

The Lambdino storage management system, which isentirely written in terms of these primitives, containsparameters to define the size of addresses and to specifywhether or not two tags have to be packed into one byte.When bootstrapping the system on a Zilog Z-80 Develop-ment System, 16 bits for the representation of addressesand the packed version of tags are recommended (seefigure 9), while 24 bit addresses and unpacked tagsshould be used on an IBM System/370 (see figure 10).

Concluding Remarks

We have developed an experimental implementation ofLambdino written in Lambdino itself. It includes aLambdino interpreter, an interpreter for the stackmachine SM and a compiler which translates Lambdinofunctions into SM programs. All these Lambdino func-tions have been debugged using a simple Lambdino inter-preter written in MagmaLISP. As all functions of thesystem eventually call the previously defined primitives,the system can be (and will be soon) bootstrapped bycompiling it to the machine code of SM using it own com-piler, and by macroexpanding the resulting code to themachine language of the host computer. ■

BIBLIOGRAPHY

1. Allen, J, Anatomy of LISP, McGraw-Hill, 1978.

2. Bawden, A, Greenblatt, R, Holloway, J, Knight, T, Moon, D,Weinreb, D, LISP Machine Progress Report, Memo Number 444,Laboratory for Artificial Intelligence, Massachusetts Institute ofTechnology, 1977.

3. IBM System/370 Model 168 Theory of Operation, Form NumbersSY22-6931/2/3/4/5/6, IBM Corporation, Poughkeepsie NY, 1974.

4. Landin, P, "The Mechanical Evaluation of Expressions," Com-puter Journal, volume 6, number 4, 1964, pages 308 thru 320.

5. Montangero, C, Pacini, G, Turini, F, "MAGMA-LISP: a MachineLanguage, for Artificial Intelligence," Proceedings of the FourthInternational Joint Conference on Artificial Intelligence, Tbilisi,1975, pages 556 thru 561.

6. Moon, D, MacLISP Reference Manual, Laboratory for ComputerScience, Massachusetts Institute of Technology, 1974.

7. Quam, L, Diffie, W, Stanford LISP 1.6 Manual, Artificial Intel-ligence Laboratory, Stanford University, 1972.

8. Reynolds, J, "Definitional Interpreters for Higher-OrderProgramming Languages," Proceedings of the ACM NationalConvention, 1972, pages 717 thru 740.

9. Steele, G, "Data Representation in MacLISP," Memo Number420, Laboratory for Artificial Intelligence, Massachusetts Insti-tute of Technology, 1977.

10. Sussman, G, Steele, G, "SCHEME: an Interpreter for ExtendedLAMBDA Calculus," Memo Number 349, Laboratory for Arti-ficial Intelligence, Massachusetts Institute of Technology, 1975.

11. Teitelman, W, INTERLISP Reference Manual, Xerox Palo AltoResearch Center, 1975.

12. Urmi, J, INTERLISP/370 Reference Manual, Department ofMathematics, Linkoeping University, 1976.

13. Z-80 Development System Hardware User's Manual, Zilog In-corporated, Cupertino CA, 1977.

32 August 1979 © BYTE Publications Inc

no loose ends

All-ln-One: computer, floppy, l/Q 16K RAM. *1595*

i i

t> i i

CNl Tm ZM •icroproctsiort

tl«i> 2.WXK:

»"«j[ UK buWi BRfl »xp»ndjblt to 48K

>H»l»yi 23 linti by 81 chincWrt

Krtphfcii SJ lptciil grtphict chincttri

ttyboirdi 72 Ktyi, 61 alphinuitric I 12 functioncontrol (8 uttr-difinibli)

Nutrlc )Mf#*di 12 ktff

tsritr Mlroiiiflfi rtlitivf i dinct for full cyrior control

{lit Function!'

ehinetor or lint

U4*9t Noriil ml rtvorio by chapictir for hlfhlifht-inf .

New Heathkit® H89All-ln-One Computer

Heath takes the risk out of selecting abalanced computer system. Now, videoterminal, floppy, keyboard and 8-bitcomputer are brought together in oneself-contained, compact unit. Nothinghangs out.

Two Z80's

The personal computer has never beensimpler. Or smarter. Two Z80 microproc-essors mean terminal never shares pow-er with computer, as do most desk-topunits. So this terminal is capable of amultitude of high-speed functions, allcontrollable by keyboard or software.

102Kbytes storage

Built-in floppy disk system gives you fastaccess to programs and data. Each 51A-inch diskette has more than 102K bytesof storage area, enough to hold entirefiles. The All-ln-One comes with 16KRAM, expandable to 48K.

Hundreds of uses athome or work

The All-ln-One Computer runs programswritten in MICROSOFT™' BASIC andASSEMBLER Languages. And it accepts allcurrent software written for the popularHeathkit H8 computer. You can choosefrom scores of practical programs forhome and business.

Learn by building

What better way to learn about comput-ers than to build one yourself? The All-ln-One is available in easy-to-build kitform, as well as completely assembled.Like all Heath electronic kits, it comes toyou with its own easy-to-follow assem-bly manual and a nationwide network ofservice centers to assure smooth sailing.

FREE CATALOG

For complete details on theHeathkit H89 All-ln-OneComputer and nearly 400other electronic kits for yourhome, work or pleasure, sendtoday for the latest HeathkitCatalog of values.

*$1195 without floppy. Mail order kit price, F.O.B. Benton Harbor, Ml. Also available at Heathkit Electronic Centers at slightly higher prices. Prices subject to change

without notice.

Heathkit

HEATH COMPANY, DEPT. 334-560, BENTON HARBOR, Ml 49022

CP-165

Circle 162 on inquiry card.

BYTE August 1979 33

Pattern-DirectedInvocation Languages

William A Kornfeld

MIT Artificial Intelligence Laboratory

545 Technology Sq

Cambridge MA 02139

LISP was first developed for use in artificial intelligenceresearch, the branch of computer science concerned withunderstanding the nature of intelligent activity bysimulating it on a computer. LISP has proved so suc-cessful that it is the only high level language currentlysupported at the MIT Artificial Intelligence Laboratory.Much of its success is due to its syntax and data structureswhich make it a convenient base upon which to imple-ment very high level special purpose languages.

One very important class of these high level languagesis the so-called pattern-directed invocation languages.They made their first appearance in about 1970 with thePlanner system at MIT. Since then, dozens of theselanguages have been built at sites around the world withdifferent sets of features. The basic concepts involved canbe traced back to the work of such logicians andphilosophers as Frege, Russell, and Carnap in the earlierpart of this century. They were concerned with represen-ting and manipulating facts about the world. They beganwith atomic facts and described methods that could beused to deduce new facts from old. Pattern-directed invo-cation languages treat facts, represented as LISP lists, aselementary data types and usually collect them togetherinto one or more data bases. Procedures can be written toderive new facts (or to decide if it is possible to derive agiven fact) from those already in the data base.

In this article we will be mostly concerned with thebasic concepts involved in pattern-directed invocationlanguages. Toward the end, a brief summary is given ofsome of the more advanced ideas that have found theirway into these languages. Special attention is given to theproblem of implementing these languages in a LISPsystem. Much of this implementation is surprisingly

About the Author:

William Kornfeld is a graduate student at the MIT Artificial Intelli-gence Laboratory. He is currently doing research in the semantics ofpattern-directed invocation and extensions of these ideas to parallelprocessing.

straightforward, once the basic concepts of LISP areunderstood. In fact, the task of implementing a systemalmost identical to the one described here was given tostudents in a beginning programming course at MIT. Thestudents had had only a few weeks experience with LISP,and a total programming experience of a couple ofmonths, but they had little problem with the assignment.

Retrieval of Information by Pattern

Suppose we wanted to represent the knowledge, insideof our computer, that Lena is the mother of Paul. Thissentence contains three important items; the two people,Lena and Paul, and the relationship — one being themother of the other. This fact can be represented usingthe data structures of LISP as a list with three elements.We are free to choose any arrangement of the items in thelist; placing the relation (mother-of) in the first, second,or third position of the list. I prefer to keep to the LISP(and mathematical) conventions of putting the relation-ship first, and having the arguments follow. This fact willbe represented as:

(MOTHER-OF LENA PAUL)

We could have many such facts similarly represented bylist structure inside of our machine. Some examples are:

(MOTHER-OF LENA FAY)

(WIFE-OF LENA SAM)

(MOTHER-OF FAY ROBERT)

(MOTHER-OF FAY ARLENE)

(FEMALE LENA)

(FEMALE FAY)

(MALE ROBERT)

(MALE SAM)

We call each of these facts an assertion. Assertions arepieces of arbitrary list structure (as far as the LISP inter-preter is concerned). So that they may be used in our pro-

34 August 1979 © BYTE Publications Inc

THE INTELLIGENTOR GRAPHICS BOARDCGS-808

in Features

Motorola MC6847 video display

generator.Eight colors — green, yellow, blue, red,

buff, cyan, magenta, orange.11 programmable modes

• 1 alphanumeric mode with 32 x 16

character and inverse video.

• 2 semlgruphic modes with 8 colors

in 64 x 32 and 64 x 48.

• 8 fvdl graphic modes with 2 sets of

128 x 192, and 2 sets of 1 color in

256 x 192.On-board 8085 microprocessor.7VsK bytes of on board static RAM,Up to 4K bytes of EPROM.True S-100 compatibility.

ss are as

photographed, unreiouehed.

Biotech Electronics proudly announcesthe CGS-808, a highly sophisticated colorgraphics board for the S-100 bus.

The CGS-808 is a single board graphicsprocessor which is incredibly simple to use.It is I/O mapped and requires no memoryspace. It will operate in any S-100 systemor as a stand-alone graphics processor. Bychanging the firmware pack, the CGS-808can be upgraded to perform additionalcomplex or custom graphic functions, Italso provides a parallel I/O port tointerface with digitizers, joysticks, lightpens, or directly into a keyboard.

The CGS-808 is designed for a low-cost, high quality, professional display forapplications in medicine, business,education, science, industry, and videogames.

Circle 31 on Inquiry card.

immediate Availability

The CGS-808 is available assembledand tested for #385.00, or the bare "kit"with the MOS chip set for 899.00 (Chip setincludes the MC6847, MCI372, 8085 and2708 EPROM with graphics driversubroutines). Color monitors are availablefor 3495.00. Delivery is from stock.

Dealer inquiries are invited.

For more information, call or write

otech ElectronicsJ. (). Box 485I Jen Lomond, CA 95005(408) W8-a(>8()

BYTE August 19T

Simple Pattern Matcher

A simple pattern matcher can be implemented as aLISP function of two arguments, an assertion and a pat-tern. Here are some examples of assertions and patternsthat match:

(abed) matches (a ? ? d)(a (b c) (d e)) matches (a ? (d ?))(a ((b c) d) (e f g)) matches (? ((b c) ?) ?)

Examples of assertions and patterns that don't match are:

(abed) doesn't match (e ? ? d)(abed) doesn't match (a ? d)(a b (c d) e) doesn't match (a b (c d) ? ?)

Recursive procedures, such as this pattern matcher, areoften thought of as procedures that take complex pro-blems and convert them into simpler problems. Eventual-ly this will reduce the calls to procedures that are suffi-ciently simple that they can be solved using already ex-isting LISP functions.

The simple cases for this pattern matcher occur wheneither the pattern or the assertion is an atom. If the pat-tern is the atom ?, then the match should succeed because?, by definition, matches anything. If the pattern is someother atom then the match should only succeed if theassertion is an atom, and the same atom. If the pattern isnot an atom but the assertion is, the match should fail.These rules cover all cases where either the pattern or theassertion is an atom.

Now, suppose that neither is an atom. One way of con-verting the matching problem into a simpler problem isby decomposing both the pattern and the assertion intosubstructures and checking corresponding parts for amatch. The LISP primitives FIRST and REST provide aneasy way of doing this. Suppose we tried matching thepattern:

((a ? b) ? (c d))

against:

((a a b) (x y) (c d))

The pattern does match the assertion; we would like thematching function to decompose it correctly. When ap-plied to a list, the function FIRST selects the first element,and the function REST selects everything but the first ele-ment. We can think of the subparts of the patterns (andassertions) selected by FIRST and REST as patternsthemselves. A pattern matches an assertion if and only ifthe FIRST of the pattern matches the FIRST of the asser-tion and the REST of the pattern matches the REST of theassertion. The FIRST of the pattern in the example is (A ?B) and the FIRST of the assertion is (A A B). Thesematch. Similarly, the REST of the pattern is (?(C D)) andthe rest of the assertion ((X Y)(C D)). These also match.By successively taking FIRST and REST of patterns andassertions, atomic elements must eventually be reached.We already know how to handle all forms of atomicarguments to the matching function. No other cases canoccur. Let us list the various cases discussed:

• If the pattern is the atom ? then the match shouldsucceed.

• If the pattern is another atom and is equal to theassertion, then the match should succeed.

• Otherwise, if the pattern is an atom the matchshould fail.

• If the pattern is not an atom but the assertion is, thematch should fail.

• If neither the pattern nor the assertion is an atom,then the match should succeed if and only if theFIRST of the pattern and assertion match and theREST of the pattern and assertion match.

These conditions can be coded fairly directly into aLISP function to do this. Each of the above conditionsbecomes one clause in the conditional COND expression:

(DEF MATCH (PATTERN ASSERTION)(COND ((EQUAL PATTERN ' ?) T)((AND (ATOM PATTERN)

(EQUAL PATTERN ASSERTION)) T)((ATOM PATTERN) NIL)((ATOM ASSERTION) NIL)(T (AND (MATCH (FIRST PATTERN)(FIRST ASSERTION))(MATCH (REST PATTERN) (REST ASSERTION))))))

grams, these assertions should be collected together into adata base. In LISP, the easiest way of making a data baseof objects is to make a list of them and let this list be thevalue of some variable. (There are more efficient ways ofcollecting assertions into a data base. These are describedin the box.) As we discover more assertions that wewould like to include in the program, they can be addedto the list. Assertions can be just as easily removed if wedetermine the fact to be no longer valid. Two LISP func-tions, ADD and REMOVE, can be written to add asser-tions to and remove assertions from the data base. Anyprogram that wanted to change the contents of the database would make use of these two functions. A function

would add that one assertion to the data base. A functioncall of:

(REMOVE ' (MOTHER-OF LENA ARTHUR))

would remove that assertion from the data base.

Next we will need some way to retrieve informationstored in the data base. If we want to know whether ornot Fay is the mother of Robert, the data base (really justa list) can be searched for the assertion:

(MOTHER-OF FAY ROBERT)

call of:

A function called RETRIEVE can do this easily.

RETRIEVE takes one argument, an assertion, and returns

(ADD ' (MOTHER-OF LENA HAROLD))

T or NIL (yes or no) depending on whether or not the

36 August 1979 © BYTE Publications Inc

Circle 256 on inquiry card. (

2cab\

rte!

1

ft

■."-' - '-w ■

^JUMk^^ ^^^^^^^^^^^^^^H

r »■»»••»»! ■-iiMHir ,tt;tt?t

TM*ink**r ... U,i i j(« -I .J U L

7Khw - * -7"-* /. 5; tA B ^-4 LS2AA 74 L SVftft

ilMI'i!^- .Wf-*

„_-.., c;^ joist nvfAih <;Ai'ff * «_opyruii-t r/yn <^ wotcw.

Ojluummmjummmmmmmm mamjjuulu jji .ujuuiuuu^iiMiit

iiiiiiii iiiiiiii 11111111

!..//..« ■MfMil flf#*«ll

-^ wt

I-- Oi -~r~~ W - ■ - i'4 IIIIIIII IIIIIIII IIIIIIII

. . as __ . m

—

j., .

Pt iiiiiiii iiimii iiiiiiii

1 _

Ji ax inuiM M ;■>;

IIIIIIIIIIIIIIII

■ .!. . iiiiiiii

■■

k II

/

/

.

lL ' HmimitmnHtlilHIMI'MII"""""""'"

^^ '"- 'iiiuiiiiiiiiiiiiiiiiiiiiiiuiiiiiiitiiiiiiiiiiiiL m\

MM16K/$349=2.K

MM2

4K

/$

499= 2C

SR16K/$299=1.8C

SR32K/$649=2C

Now you can afford to sink your teeth intosome big, feature-packed static memories.Because George Morrows ultra-efficientdesigns have brought S-100 memory down to 2Ca byte.

Introducing Morrow's new "MemoryMaster"Bank Select Logic memories, the top of theSuperRam™ line.

The SuperRam™ MemoryMaster 16K Static maybe the most sophisticated S-100 memory at any price.The MM16K is switch-programmable to write-protectany of the four 4K blocks... or to open invisible IK"windows" to accommodate VDM's or diskcontrollers. An onboard I/O device and jumper blockallow you to use the memory-extending BankSelect Logic features of your software.

Yet, the SuperRam™ MemoryMaster 16K kit isjust 21C a byte at $349. Assembled and tested, $399.The SuperRam™ MemoryMaster is also availablein 24K configuration: 3 individually write-protectableI blocks with Bank Select Logic capability.I24K Kit, $499. Assembled and tested, $549

Or, get your memory at a rock-bottom 1.8C abyte with the SuperRam™ 16K Static. It gives you 4individual 4K blocks... plus the ability to switch-enable the Phantom Line for power-up sequencing.Kit, $299. Assembled and tested, $349.

But if you really need a big helping of memory,the SuperRam™ 32K Static serves up two individual16K blocks for 2C a byte.- $649 in kit. Assembled andtested, $699.

Whichever Morrow memory suits your taste, itwill run perfectly in 2 MHz 8080.4 MHz Z-80 or5 MHz 8085 systems. And meets the ProposedIEEE S-100 Standard.

2C a byte! That's food for thought. And they'reready to take out at your local computer shop. Or ifnot, we deliver. Write Thinker Toys™ 5221 CentralAve., Richmond CA 94804. Or call 415-524-2101(10-4 PacificTime any weekday).

9

Morrow Designs

Thinker

,^^___^_

assertion is in the data base. To check for the existence ofthis particular assertion, we would execute:

(RETRIEVE ' (MOTHER-OF FAY ROBERT))

One of the nice features of LISP is that it is so easilyextensible. It is possible to build languages on top of thebasic LISP system that deal with higher level concepts asif they were primitives. The functions ADD, REMOVE,and RETRIEVE are three operations in a language we arebuilding to manipulate assertions. So far, the language isvery simple. The function RETRIEVE, for example, canonly ask about specific assertions.

There are many more interesting questions that wewould like the system to be able to answer, such as "Whois the mother of Robert?" In terms of these assertions thisquestion could be answered by finding an assertion thathas three elements, the first and third being the atomsMOTHER-OF and ROBERT, and the second elementbeing anything at all. One way of saying this to themachine is by using a pattern such as:

(MOTHER-OF ? ROBERT)

where the ?s represent place holders, meaning that wewill take anything in their positions.

One function, RETRIEVE, is modified to go down thelist of assertions in our data base and compare the patternwith the individual assertions. If an assertion and a pat-tern match, the assertion will be returned as the value ofRETRIEVE. Matching means that atoms in correspondingpositions are the same, except for ?s in the pattern that re-quire only that something be in the corresponding posi-tion in the assertion. Using our data base, the patterngiven above will only match one assertion:

(MOTHER-OF FAY ROBERT)

By taking the second element of this list we will havefound the mother of Robert. In general, more than oneassertion in the data base can match a given pattern; itjust happens that a person has only one mother, so wewould not expect more than one assertion to tell us themother of Robert. Suppose our question is "Who are thechildren of Fay?" We can make a pattern that representsthis question by specifying a MOTHER-OF assertionwith FAY in the mother position, and a ? in the childposition:

(MOTHER-OF FAY ?)

The function RETRIEVE actually returns a list of all theassertions that match the given pattern so that it canaccomodate the case where there is more than one match.Evaluation of the form:

(RETRIEVE ' (MOTHER-OF FAY ?))

should return:

((MOTHER-OF FAY ROBERT)(MOTHER-OF FAY ARLENE))

and can be further analyzed by a LISP function to extractthe names of Fay's children.

The examples of assertions presented thus far havebeen in the form of a list of atoms. Assertions can be arbi-trary pieces of list structure. The use of nested lists is animportant tool for representing the structure inherent inthe knowledge being represented. For example, we maywish to represent facts about the courses students havetaken at a university. There might be one assertion foreach student for each term he or she is registered. A pos-sible record would be:

(COURSES BARBARA (SPRING 1978)(PHYSICS-2

ALGEBRAIC-TOPOLOGYAESTHETICS))

The first element of the list designates it as a record ofcourses taken by a given student for a given term. Thisassertion expresses the fact that Barbara was registerd forthe Spring term of 1978 and took three courses: PhysicsII, Algebraic Topology, and Aesthetics. With records ofthis kind and our pattern matcher we can ask variouskinds of questions and have RETRIEVE return the list ofassertions that pertain to the problem. Here are someexamples:

"Who was registered for courses in 1976?"(RETRIEVE ' (COURSES ? (? 1976) ?))

"What courses did Sam take during his college career?"(RETRIEVE ' (COURSES SAM ? ?))

"What courses did Barbara take in Spring of 1978?"(RETRIEVE ' (COURSES BARBARA (SPRING 1978)?))

There are certain questions that the simple pattern mat-cher we have described cannot address, such as "Whowas registered for Algebraic Topology in the Spring of1978?". More sophisticated schemes for pattern matchingwill be described later. A simple pattern matcher that canhandle ?'s in patterns is very easy to write using the recur-sive control structures of LISP. It is described in the"Discrimination Networks" textbox.

Simple Deductions

There are a number of facts that are not explicitly con-tained in the data base of family relations describedabove that people can easily deduce. We might want tobe able to answer the question "Who is the grandmotherof Robert?". This question is posed to the system by thefunction call:

(RETRIEVE ' (GRANDMOTHER-OF ? ROBERT))

The data base contains no explicit GRANDMOTHER-OF assertions, so the function RETRIEVE, as defined thusfar, would fail. The data base does contain enough factsthat it is capable of answering this question. Looking atthe assertions given earlier it is obvious that the answer isLena. How do we arrive at this? First we find a

Text continued on page 42

38 August 1979 © BYTE Publications Inc

:V\e

xaO*

CO'

,*«P*'

.-vx^

Sp*&

-V^A

*«**-

^V2-

co

«fcV

*o<

ex

w^«*

x>©

tfN**

/Y*°

..V'.

Xs^

O"

<,«*"

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 8V2" wide paper

■ Quiet, non-impact operation

■ 6 month warranty

Available now at computer stores and industrial distributors.

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

Circle 48 on inquiry card.

BYTE August 1979 39

\

iyBTEREO

Figure 1: A group of connected assertions can berepresented by a tree structure where the nodes of the treerepresent locations within an assertion.

NIL

Discrimination Networks

Simple data bases can be represented as lists of theassertions contained in them. Each time we want to deter-mine whether or not a pattern matches any of the asser-tions in the data base, the entire list must be scanned andthe pattern matcher applied to each of its elements. For alarge data base this may take too long. We would like torepresent the data base in such a way that the averagesearch through the data base will take much less timethan a linear scan of all the assertions. One way of doingthis is to arrange the assertions into groups so that a par-tial test of the pattern can eliminate a number of thegroups from consideration. Let's suppose that we have adata base consisting of the following assertions:

(MOTHER-OF LENA PAUL)(MOTHER-OF LENA ALVIN)

(MOTHER-OF LENA FAY)

(MOTHER-OF FAY ROBERT)

(MOTHER-OF FAY ARLENE)

(LIVES SHIRLEY TUCSON)

(LIVES FAY CANARSIE)

(LIVES HARVEY MANHATTAN)

(MALE ALVIN)

(MALE PAUL)

(FEMALE SHIRLEY)

(FEMALE LENA)

(HAS ROBERT GUITAR)

(HAS ROBERT BICYCLE)

(HAS PAUL STEREO)

(HAS PAUL CAR)

One way of grouping these assertions, suggested by thegiven list, is by the first elements of the assertions. Thus,

all the MOTHER-OF assertions would be together, aswould the LIVES, MALE, FEMALE, and HAS assertions.If the first element of the pattern was the atom LIVES,then only one group of three assertions need be exa-mined. Some of these groups can be further subdivided;the MOTHER-OF assertions can be divided into threegroups depending upon the second element of the list (themother). The group of assertions can be represented as atree structure where the nodes of the tree represent loca-tions within the assertion. The above assertions wouldappear as in figure 1.

This tree can be easily constructed using the pointers ofLISP. When an attempt is made to check if the assertion:

(MOTHER-OF LENA FAY)

is in the data base, the root node is searched for a sub-node marked with MOTHER-OF. If this is found, thesearch continues, otherwise a failure is reported. Thepointer is followed to the MOTHER-OF node. This isthen searched for a LENA subnode. This is found, thepointer followed, and a search is made for a FAY sub-node. This also is found, and it contains a NIL subnodeindicating that the assertion ends there. Tracing the pathleading to this point gives the assertion. By representingthe knowledge in this way, much of the data base nolonger has to be searched to find what we want.

This can be extended to ? variables in patterns.Whenever we try to compare a ? against a node, all pathsmust be taken. And this example deals only with flat liststructure (ie: lists of atoms). The concept can be extendedto arbitrary list structure. The result is less intuitive andbeyond the scope of this article. It is an interesting pro-blem to think about.

40 August 1979 © BYTE Publications Inc

•

■r<

ii

'^Er

ALTOS presents a new standardin quality and reliability

fS %€t %

WERE ALTOS COMPUTER SYSTEMS. Our SUN-SERIES A CS8000 business/scientificcomputer creates a new standard in quality and reliability in high technology computers.

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

ALiCU

COMPUTER SYSTEMS

BUILT-IN RELIABILITY The ACS8000 is a true singleboard computer. This makes it inherently reliable and main-tainable. The board and the two Shugart drives are easily ac-cessible and can be removed in less than five minutes. All elec-tronics are socketed for quick replacement. Altos providescomplete diagnostic utility software for drives and memory.

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

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

*Z80 is a trademark of Zilog. Inc. n '

**CP; M is a trademark of Digital Research. Inc.

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

Text continued from page 38:

MOTHER-OF or FATHER-OF assertion that gives aparent for Robert. Here we end up with:

(MOTHER-OF FAY ROBERT)

Then we take that parent (eg: FAY) and find a MOTHER-OF assertion with that parent in the child position,giving:

(MOTHER-OF LENA FAY)

The individual in the mother position of that assertionis the desired grandmother. To incorporate this kind ofknowledge in the system, the language is augmented withprocedures that explain how to derive certain facts if theyare not in the data base. There are two GRAND-MOTHER-OF derivation procedures; one that checks formothers of fathers, and one that checks for mothers ofmothers. They might be expressed as:

(TO-DERIVE (GRANDMOTHER-OF ?X ?Y)(FIND (MOTHER-OF ?Z Y))(FIND (MOTHER-OF X Z)))

cedure to know who these people are, it must bind thenames to variables. RETRIEVE has to be extended again.In addition to checking the data base for already knownfacts, it checks a library of procedures for those whosepatterns match the request, trying them one at a time.When we execute the RETRIEVE function, trying to findthe grandmother of Robert, the pattern:

(GRANDMOTHER-OF 7 ROBERT)

is matched against the head pattern in the TO-DERIVEconstruct:

(GRANDMOTHER-OF ?X 7Y)

The match is successful. Y will get the value ROBERT,and X the value 7 (really no value at all, just a placeholder). The first line causes the system to find an asser-tion that has MOTHER-OF in the first position andROBERT, the value of Y, in the last line. Whatever isfound in the second position is assigned to the variable Z.For our particular data base, the assertion:

(MOTHER-OF FAY ROBERT)

(TO-DERIVE (GRANDMOTHER-OF 7X ?Y)(FIND (FATHER-OF ?Z Y))(FIND (MOTHER-OF X Z)))

The first procedure looks for the mother of the personin the third slot (eg: the grandchild), and then hermother; the second procedure for the father of that per-son, and then his mother. We have added a little morecomplexity to the simple patterns described earlier. Thesepatterns have variables associated with the questionmarks. The first pattern in these procedures expresses, ineffect, what the procedure can do. It says "If you want todetermine if someone is the grandmother of someoneelse, try the following." In order for the rest of the pro-

will be found and Z will get the value FAY. When thenext line is executed, a MOTHER-OF assertion is lookedfor with FAY in the third position, and anything at all inthe middle. (Remember X has the value 7.) The assertionit will find is:

(MOTHER-OF LENA FAY)

What we have just done is derived the fact:

(GRANDMOTHER-OF LENA ROBERT)

Here is a procedure to determine whether or not one in-dividual is the uncle of another:

THE

mms

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 asafety switch with an LED Indicator. An Industrial quality Textool socket and extended board height allow effortless EPROM Insertion andretrieval. 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 neverhad 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 EPROMsand 1K of high-speed scratchpad RAM. The EPROMs are dip-switch addressable for convenience. An exclusive I/O select option permits theuser 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 just the thing for custom Interfaces. UIO has space for a 40-pln wire wrap socket Into whichyou can plug any of Motorola's 40 or 24-pln Interface chips. The data and control lines are connected to the appropriate edge connector pinswith 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 electricalengineering 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 usnow; 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 forthe 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 justthe video people.

P.O. BOX 1110 DEL MAR, CA 92014 714-756-2687

42 Augusi 1979 © BYTE Publications lnc

Circle 231 on inquiry card.

A Beautiful

Way To Interface

140

SOROC's first 'and foremostconcern, todesign outstandingremote video displays, hasresulted in the developmentof the IQ 140. This unitreflects exquisite appearanceand performance capabilitiesunequaled by others on the market.

With the IQ 140, the operator

is given full command over data

being processed by means of a wide variety

of edit, video, and mode control keys, etc.

The detachable keyboard, with its

complement of 117 keys, is logically

arranged into 6 sections plus main keyboard

to aid in the overall convenience of operation.

For example, a group of 8 keys for cursor control /

14 keys accommodate numeric entry / 16 special function keys

allow access to 32 pre-programmed commands / 8 keys make

up the extensive edit and clear section / 8 keys for video set

up and mode control / and 8 keys control message and print

Two Polling options available: 1) Polling compatible with Learbieglers ADM-2. 2) Polling discipline compatible with Burroughs.

I The SOROC

IQ 120 is the resultof an industry-wide demandfor a capableremote videodisplay terminalwhich provides amultiple of featuresat a low affordable price.The IQ 120 terminal is a simpleself-contained, operator/ computer unit.

The IQ 120 offers such features as: 1920 character

screen memory, lower case. RS232C extension,

switch selectable transmission rates from 75 to

19,200 bps, cursor control, addressable cursor, erase

functions and protect mode. Expansion options presently

available are: block mode and hard copy capability with

printer interface. The IQ 120 terminal incorporates a 12-inch

CRT formatted to display 24 lines with 80 eharartare rww line

341 on inquiry card.

165 FREEDOM AVE., ANAHEIM, CALIF. 9SBO!

'-28BO / [BOOJ854-D117

(Computer'Professionals

A major division of a Fortune 50 company hasseveral openings in its Software Department.These openings are a result of expansionwithin our modern Midwest facility. We arecurrently seeking professionals in the areasof programming, systems analysis, computerdesign, software engineering and computersystem engineering. A background orknowledge or interest in any of the followingareas may qualify you to become a memberof our industry-leading team:

Mini ComputersMicro ProcessorsReal-time Control SystemsPerformance ModelingOperating SystemsQueuing TheoryStructured Software DesignLarge Systems DevelopmentCustom Software DesignSoftware UtilitiesHardware/Software Trade-OffsData Base ManagementSoftware Maintenance5 Distributive ProcessingLanguage Development

This is an excellent opportunity for you to joina company using state-of-the-art technologyin a total system development environment.

Our benefit package including group in-surance, company paid dental plan, tuitionaid, liberal vacation and holiday schedules,stock-option plan, relocation plan, etc. isamong the best in the industry, and the salarystructure we have to offer is an incentive foryou to explore our opportunities.

Our working environment is conducive to pro-fessional growth and it is geared to the resultsoriented individual. Candidates interested inany of these exciting areas, please rush aresume to:

Dept. R W 0801

500 N. Michigan Ave., Suite 544

Chicago IL 60611

Equal Opportunity Employer M/F

The system chains backwards throughfacts until it finds some simple ones itknows.

(TO-DERIVE (UNCLE-OF 7X ?Y)

(FIND (SIBLING ?Z X))(FIND (CHILD-OF Y Z)))

"To show one person is the uncle of another, find a per-son that is a sibling of the first and a parent of thesecond."

This procedure would work if we had SIBLING andCHILD-OF assertions in the data base. Since we don't,we must specify procedures that can determine thesethings from the information that is in the data base:

(TO-DERIVE (SIBLING ?X ?Y)

(FIND (MOTHER-OF ?Z X))(FIND (MOTHER-OF Z Y)))

"To determine if one person is the sibling of another, seeif they have the same mother." ,

(TO-DERIVE (CHILD-OF ?X ?Y)

(FIND (MOTHER-OF Y X)))

"To determine if one person is the child of another, see ifthe second is known to be the mother of the first."

(TO-DERIVE (CHILD-OF ?X ?Y)

(FIND (FATHER-OF Y X)))

"To determine if one person is the child of another, see ifthe second is known to be the father of the first."

There are now two different procedures for decidingCHILD-OF relations as was the case with the earlierGRANDMOTHER-OF relation. If the system doesn'talready have the answer to the question in its data base, itwill try one, and if that fails, it will try the other.

Our set of assertions does not happen to containFATHER-OF assertions, so they too should be specifiedby procedures. We do have MOTHER-OF andHUSBAND-OF assertions. These are sufficient:

(TO-DERIVE (FATHER-OF ?X ?Y)

(FIND (MOTHER-OF 7Z Y))(FIND (HUSBAND-OF X Z)))

"To determine if one person is the father of another see ifthe second person's mother is the husband of the first."

The control used by this system is often referred to asbackward chaining. Determining if someone is the uncleof someone else may result in attempts to determineCHILD-OF relations that may then result in determiningFATHER-OF and then HUSBAND-OF relations. The sys-

44 August 1979 © BYTE Publications Inc

MOVING DATA AT A SNAIL'S PAGEBECAUSE YOU'RE FIOPPY BOUND?

Let Corvus Systems put you back in the race!

■■Hi

C 0 R U u S 110 CftlBLOC

W« DIRECTORY ORIUE HUBBER 1

iil?B«5f l8^fEHG S0URCtL

Ml

For TRS-80t, Apple*, S-100 Bus*.Fully compatible hardware/software.10-million byte disk: IM1-7710.Proven Winchester technology.Z-80 based Corvus disk controller.Comprehensive disk diagnostics.Up to 4 disks per system.System $5350, add-on disk $2990.30 day delivery

Corvus offers a complete systems solutionto the mass storage problem of microcomputers. In a package smaller than abriefcase, we provide an intelligentcontroller, disk, and personality module.Call or write today for additional information.

Get up to speed with Corvus.

tTRS-60 is a registered trademark of Radio Shack, a Tandy Co.t Apple is a registered trademark of APPLE Computers, Inc.* S-100 pricing slightly higher.

Clrc

CORVUS SYSTEMS, Inc.

900 S. Winchester BoulevardSan Jose, California 95128408/725-0920

Circle 83 on inquiry card.

BYTE August 1979 45

tern chains backward through facts until it finds somesimple ones that it knows.

The TO-DERIVE procedures are similar in concept tosubroutines in many other computer languages. The dif-ference is that subroutines are usually called by name. If Iwant to compute a cosine I call the subroutine COS. Pro-cedures in these languages are invoked by a pattern thatindicates what they can accomplish. The procedure thatdetermines if one person is the uncle of another has noname; it indicates by its pattern (UNCLE-OF 7X ?Y) thatit is capable of determining whether or not one person isthe uncle of another. This distinction is an important one.As shown, more than one procedure may have the samepattern. This will not disturb the system. It will try one,and if that fails, it will try others until it finds one thatworks. One TO-DERIVE procedure can serve severalpurposes. The UNCLE-OF procedure is capable ofanswering three different kinds of questions:

'7s Harold the uncle of Robert?"

"Who are the nephews of Harold?"

"Who are the uncles of Robert?"

Better Pattern Matchers

The ease with which concepts can be expressed in thelanguage depends significantly on the sophistication ofthe pattern matcher. The pattern matcher described so faris of the simplest kind. Many things we would like to sayare difficult or impossible to do with it. There is no suchthing as an "ideal pattern matcher." One can alwayscome up with more sophisticated ways to create patterns.This section is devoted to discussing two fairly wellknown extensions known as unpack and multisets.

Earlier we were concerned with a data base of asser-tions representing information about students takingcourses at a school. The assertions were of the form:

(COURSES BARBARA (SPRING 1978)(PHYSICS-2

ALGEBRAIC-TOPOLOGYAESTHETICS))

and it was impossible to phrase questions of the formWho took Algebraic Topology in the Spring of 19787"The reason that this is impossible to indicate is that theatom ALGEBRAIC-TOPOLOGY can occur as any ele-ment of a list with zero or more atoms in this list, beforeand after it. The problem can be dealt with by the intro-duction of the unpack operator. This operator,represented by an exclamation point !, is placed beforethe question mark variable. A 7 without a ! matches ex-actly one object. A !7 combination will match zero ormore objects. Here are some examples of patterns:

(FOO !? BAR) matches any list that begins with the atomFOO and ends with the atom BAR:

(FOO BLATZ BAR)

(FOO TOM LARRY BAR)

(FOO BAR)

(FOO !?) matches any list with FOO as the first element:

(FOO)

(FOO BAR)

(FOO BAR BLATZ)

(7 !7 FOO !?) matches any list that contains the atomFOO as the second or later member:

(XYZ FOO)(XYZ ABC FOO TOM LARRY)

With the unpack operator the question "Who tookAlgebraic Topology in the Spring of 1978?" can be phra-sed:

(RETRIEVE ' (COURSES 7 (SPRING 1978)

(17ALGEBRAIC-TOPOLOGY !7)))

Of course, if we were using the unpack operator insideTO DERIVE procedures, the !? would be followed by avariable that gets bound to what it matches, just as the 7variables.

Another question we cannot ask with the simple pat-tern matcher is "Who took Algebraic Topology andAesthetics in the Spring of 1978?" We cannot ask thisquestion because whenever we have a list there is an in-trinsic order to its elements. To be sure of covering allcases we would need two patterns:

(COURSES 7 (SPRING 1978)

(!? ALGEBRAIC-TOPOLOGY !?AESTHETICS !?))

as well as:

(COURSES ? (SPRING 1978)

(!? AESTHETICS !?ALGEBRAIC-TOPOLOGY !?))

If there were three courses then six different patternswould be necessary. We need a more general solution. Tohandle the case where matches should be made regardlessof the order of the elements, multisets are introduced. Amultiset will be denoted by curly brackets { and }. Amultiset is said to match a list if each of its elementsmatch a corresponding element of the list (7s and !?s areallowed). Here are some examples of multisets:

{ABC} will match any list containing exactly the threeelements A, B, C:

(ABC)

(CAB)

(BCA)

{A B 7} will match any three element list containing Aand B:

(BCA)(BAR A B)

(AXB)

{A B 17} will match any list containing A and B:

(BA)(X B Y Z A V)

46 August 1979 © BYTE Publications Inc

VISUAUZE

PRHEM8 OFAPHGALLY

Y=SQR(<-2*XA2-3*X)/4+SQR<XA3-XA4+(<2«XA2+3«X)A2)/4))

A2FP GIVES YOU EXTENSIVEPLOTTING CAPABILITIES

Whether you're a businessman, en-gineer, student, researcher or doc-tor, A2FP con plot for you 2-dimensional functions in HIRESgraphics. And on Cartesian coordi-nates.

You tell A2FP the domain of defini-tion and it plots the rest giving com-plete parameters of plotted curves.You can even superimpose differ-ent function graphs. A whole arrayof disk commands is included in thedisk version. Whatever your plot,you utilize the full screen (280 x192 points).

POWERFUL CODE FULLY TESTEDA2FP is engineered to think human.To ask the questions newcomers,non-mathematicians and non-pro-grammers need. Then every testimaginable is used to moke surethe program performs flawlessly.

CLEAR, COMPLETE AND LOGICALDOCUMENTATION

The Electronic Field Engineer recent-ly wrote: "What was particularlypleasing about the information wereceived on the A2FP is the docu-mentation. It is attractively pre-

DAMPED FUNCTION; SIN<X)/X C-25,233

Y=(SIN(X>>A(1/X> C-10,103

WithA2FPThe Apple It Function Molten

sented, highly legible, clearlyorganized, and thorough. Thequality of the documentation tendsto support the claims PRS makes inother areas."

DISK VERSION (4SK REQ.) NOWAVAILABLE

VISIT YOUR NEAREST DEALER

Let your dealer demonstrate theexcellence of A2FP. Only $34.95per cassette. $54.95 per disk. Lethim show you the new concept inPRS documentation. Use the cou-pon to obtain the names of dealersin your area.

r

ii

PRS—THE PROGRAM OF THEMONTH CORPORATION

257 Central Park West, New York, N.Y. 10024

Send me A2FP TheApple ][ Function Plotter

□

D□D

Cord*

Dank 6# .

SignatureName

Cassettes ($34.95 ea.)

Floppy Disks ($54.95 ea.)

Documentation only ($10 ea.)

Send me list of dealers in my area

Check enclosed (5% discount for payment with order)

Visa □ Master Charge D U.P.S. COD

_ Exp. Date

Your cassette (or disk) and manualare protected in this beautiful gold-imprinted folder.

Circle 317 on inquiry card.

III

L,

Corporation

Address (no P.O. Box)City

Telephone.

State.

Reference 809

Zip-

— — J

BYTE August 1979 47

{B B !?} will match any list containing two or moreoccurrence of B:

(X B A B)(B W S FOO B BAR)

The question "Who took Algebraic Topology andAesthestics in the Spring of 1978?" can now be phrased:

(RETRIEVE ' (COURSES ? (SPRING 1978){ALGEBRAIC-TOPOLOGYAESTHETICS !?})

History

The basic concepts of pattern-directed invocationoriginated in the PhD thesis of Carl Hewitt at MIT in1969. The original Planner language that was the subjectof his thesis was never implemented. A cut down versionof Planner, roughly equivalent to our language withADD, REMOVE, and RETRIEVE, was implemented in1970 and called Microplanner.

Microplanner was used as a tool in subsequent researchin artificial intelligence at MIT. The best known systemto make use of Microplanner was the SHRDLU programof Terry Winograd. SHRDLU was a program about asimulated world consisting of a table, variously coloredtoy blocks, and a box. A person could type in Englishlanguage questions and imperatives to which the systemwould take an appropriate action, such as: "What blocksare in the box?" or "Pick up the big red block." Assertionswere used to store knowledge about the current state ofthe world, such as:

Main/Frames „,,, $200

Main/Frames $200

' 14 Basic Models Available

■ Assembled & Tested

■ Power Supply:8v@15A, ± 16v@3A

• 15 Slot Motherboard 4(connectors optional) ^

i Card cage & guides

• Fan, line cord, fuse, power& reset switches, EMI filter

' 8v@30A, ± 16v@10Aoption on some models

Rackmountedtrorn $200

8" Floppy Main/Frame(includes power for drivesand mainframe) from $365

Write or call for ourbrochure which includes our

application note:'Building Cheap Computers'

INTEGRAND

8474 Ave. 296 • Visalia, CA 93277 • (209) 733-9288We accept BankAmericard/Visa and MasterCharge

(IN PYRAMID BOX)

Procedures implemented simple reasoning involvedwith answering questions and constructing plans to carryout commands. Microplanner proved to be quite limitedin its capabilities and spawned several immediate suc-cessors that embodied sophisticated improvements.

QA4, developed by Rulifson and associates at theStanford Research Institute, introduced the notion ofmultiple contexts. Contexts are a way of having morethan one data base inside the machine, each representinga different aspect of the problem at hand. One contextmight model (ie: contain assertions pertaining to) thestate of the world at some point of time in the past, whileanother might model the current state of the world.Another common use of the context mechanism is toreason about hypothetical worlds, collections of asser-tions similar but not identical to the current one. Ahypothetical world might represent what would happenif the machine took some action.

Conniver, developed by Sussman at MIT, introducedcertain notions of control structure that seemed lacking inthe original Microplanner. The system has a data base offacts and procedures that are capable of deducing factsthat are not explicitly in the data base. When a call ismade to RETRIEVE, it is entirely up to the system tochoose which procedures to try, and in what order to trythem. The simple minded scheme picks one procedureand tries it. If this does not work it picks another. Thereis no way in Microplanner that a program can have con-trol over the order in which procedures are chosen. Con-niver supplies facilities that allow the program to haveaccess to possible choices and then order or otherwiseprocess them.

AMORD, developed by deKleer and associates atMIT, keeps a trace, by means of justifications, of howeach fact in the data base was derived. If a fact is deter-mined to be no longer valid, all facts that derived from it,as determined from the justifications, are automaticallyremoved by the system. This facility allows a program toconveniently change certain premises and automaticallyupdate the rest of the data base to reflect this change.

ETHER, developed by the author, allows the programwriter to let many operations in the program be done inparallel. The program can maintain conflicting worldmodels (ie: collections of assertions) that can be reasonedabout concurrently.

A General Information Storing Tool

These languages have been developed explicitly as arti-ficial intelligence research tools. We have not discussed inany detail the issues involved in modeling a situation inthe world and reasoning about it. The examples given aremeant to suggest the possibilities for pattern directed in-vocation as a more general tool for storing facts. Theneed to store facts (ie: to create data bases) comes up inall sorts of situations. As computation becomes cheaper,more and more stores of information will move frompaper to electronic storage media. There are, of course,more efficient ways to store information than byrepresenting them in list structure in a LISP environment.The disadvantage of some loss of efficiency seems to befar outweighed by the increased flexibility in accessingthe information. ■

48

August 1979 © byte Publications inc Circle 177 on inquiry card.

Solve Problems By Simulation

with simulationsof many con-cepts, including

• wave motion

• flying objects

• artificialintelligence

• electroniccircuits

• and robotmotion!

^LlIetimIjW

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 serieson the art and science of computer programming from BYTE BOOKS.Editor Blaise w. Liffick's selection of material furnishes not only backgroundinformation from which the personal computer user is able to writeand maintain simulation programs, but also actual programs forsimulating many situations. Theoretical and practical applications ofthis technique are explored in articles dealing with specific aspectsof simulation.

Learn how to find solutions to your problems through simulation.

ISBN 0-931718-13-9

I •

Buy this book at your favorite computer book-store or order direct from BYTE BOOKS.Add 60* per book for postage and handling

BITII

BlllNS

"BOOKS OF INTEREST TO COMPUTER PEOPLE"

70 Main Street, Peterborough, New Hampshire 03458

Circle 36 on inquiry card.

BYTE August 1979

Siapcia's Circuit Cellar

Anyone Know the Real Time?

Steve Ciarcia

POB 582

Glastonbury CT 06033

Copyright © 1979 by StevenA Ciarcia. All rights reserved.

I'm sure you've all heard the termreal-time, such as a real-timeoperating system. But, how manyreally understand its meaning? A sim-ple definition of a real-time system is:a system that operates in real time,that is, it responds to the need foraction in a period of time propor-tional to the urgency of the need; firstthings are done first. In control appli-cations the system can be dependedon to provide the informationnecessary to base time-dependentdecisions on information that is up todate as of the minute or the hour.Real time describes the processing of

information in a sufficiently rapidmanner that the results of the process-ing are immediately available to in-fluence control of the process beingmonitored.

While there are particular architec-tural enhancements in high-speedprocess monitoring and control sys-tems, basically any computer can beconfigured to perform some semb-lance of real-time operations. Theessential criterion is that the com-puter be capable of performing aspecific action at a particular time.The extent of real-time operation thenbecomes dependent upon execution

***•:...• . I

Photo 1: A prototype board of real-time clock mounted on the back of an existingparallel I/O (input/output) board. Two reed switches on the left side of the board arefor manual setting of the clock. The empty sockets are used for the particular applica-tion for which this board was designed, a home security system.

speed. If a program that takes 1second to analyze a data input anddisplay it on the video display is torun in real time, it can only be calledonce per second. For continuoussampling this also means that thecomputer cannot be tied up doing anyother task without provision beingmade for that program to be inter-rupted so that the analysis programcan run. Most often, computers uti-lize hardware priority interrupts toprovide this capability. A directbenefit of this approach is that allprograms can execute asynchronous-ly, since interrupt logic synchronizesthe computer's action upon the occur-rence of a real-time event. Furtherdiscussion of interrupts will continuelater in this article.

A second, slightly less complexmethod of synchronizing computersto real-time events is through atechnique of status scanning (ordevice polling). This software-intensive situation requires that alldevices demanding real-time interac-tion set status flags to indicate readyconditions. The computer scans theseflags periodically and performs theappropriate action. The flags are resetwhen the devices have been serviced.It is important to keep in mind that allthe programs that the computer nor-mally executes must be short enoughto allow the computer to serviceevery device. Also, care must betaken to design the system so that asecond event cannot occur on an in-dividual device before the computerhas acknowledged the first event.

Most sophisticated real-time sys-

50 August 1979 © BYTE Publications Inc

o-

IN4002

-w-

II5VAC

o-

Number

Type

+ 5 V

GND

IC1

7414

14

7

IC2

7492

5

10

IC3

7490

5

10

QA BD

60HJ

IC3

7490

HO

■<0(l) "0(2) "9(1) "9(2) UD

rh

0

10Hz

TTL LEVEL INTERRUPTSTO COMPUTER

Figure 1: A simple time-base generator for an interrupt-driven real-time clock.

terns use a combination of these twomethods. A clock circuit, such as thatin figure 1, provides a time "tick" tothe processor's nonmaskable inter-rupt line. This can be every 60th,10th, or 1 second, as suggested in thisschematic. When the computer ack-nowledges the interrupt, it first savesall registers from the program it wasexecuting, and then services the real-time interrupt. Frequently the firstaction is to increment an internalcounter which keeps track of elapsedtime. Usually it will be a value equi-valent to the total number of clockticks, whether in seconds or milli-seconds. Once this regular intervalhas been established, it is easy for thecomputer to scan all status flags fromreal-time devices. The addition ofmore real-time activities for the pro-cessor does not entail multiplying thenumber of interrupt lines, but ratherit simply entails placing anotherstatus flag on the list of those to bechecked on each clock tick.

The choice of a totally interrupt-driven real-time system, a combination scan and interrupt type, or atotal scanning system is dependentupon the quantity of real-time opera-tions and their frequency. An inter-rupt-driven system can process infor-mation faster than the same systemconfigured for real-time scanning.

Real Time Applications forPersonal Computers

So far I have emphasized thesystem attributes, but nowhere have Idiscussed applications, particularly

personal computing applications.Clock divisions down to millisecondssound great and make interval timingextremely accurate, but I doubt thatthe majority of home computeristswould want something that complexto integrate into their system. If mymail is any indication of this, theywould prefer the design of a real-timeclock which can be directly applied inhome control applications. Automa-tically turning on the percolator at6:45 AM would be far more stimu-lating than a high-speed data acquisi-tion system which few would need.

Build a Real-Time Clock

Essentially, the kind of real-timesystem which might appeal to per-sonal computer users is one with aresolution of perhaps 1 minute ratherthan 1 ms. It should be read directlyin hours and minutes like a 4- or6-digit clock and not just total counts.A direct benefit of low resolution isreduced overhead. The computerdoes not have to acknowledge theclock update or scan status flags asoften. It may not seem like much of atime savings, considering instructionexecution speeds of 1 ps. However,

DEUICE

ACTUATION

EErCTIUftTICN

PRESENT STfiTE

1.Night Light

2008

0138

OH

2.Driveway flood

1338

2238

OF

3.Coffee Perk

0645

0738

OFF

4. Water Softener

0230

0438

OFF

5.Outside Lights

2000

2330

OFF

6. Thermostat Dn

2300

0530

ON

7BedrooinTU

0700

0900

OFF

8.Dehumidifier

0300

1806

OFF

PRESENT TIr€

—23 Hours 47 Minutes—

SYSTEM STATUS

GREEN mWhW

Photo 2: A typical application of a real-time clock. This display is from my computer-controlled security system.

August 1979 © BYTE Publications Inc 51

50 Hi OR60Hz

C^

FAST/SLOW i—..SET I *~

MULTIPLEXERCLOCK r~>-

5 OR -6

10

TIME PRESET LOGIC

+ 12 OR "24

j MINUTES

SECONDS

-60

-60

HOURS, MINUTES, AND SECONDS MULTIPLEXER

MULTIPLEXTIMING

*. DECODER

-O BCD OUTPUT

_|—-> 7-SEGMENT' OUTPUTS

-O 0IGIT ENABLE

Figure 2: The block diagram for a typical clock chip.

u

(_

u

3

io

~l

I

n

n3

TYPICAL 7-SEGMENTCLOCK DISPLAY

SEGMENTS

a

b

c

d

e

f

g

X

X

X

XX

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

8

4

2

1

0

0

0

0

0

0

0

1

0

0

1

0

0

0

1

1

0

1

0

0

0

1

0

1

0

1

1

0

0

1

1

1

1

0

0

0

1

0

0

1

Figure 3decimal)

A comparison of output codes from 7-segment and BCD (binary codedclock chips.

the interrupt routine could be 30bytes and 100 us long. If called everymillisecond it would eat up 10% ofthe total cycle time—just to incre-ment a counter! When it comes to realtime, be careful not to byte (sic) offmore than you can process.

The easiest way to provide anhourly and minute by minute input isto interface the computer to anMOS/LSI (metal oxide semiconduc-tor/large scale integrated) clockdevice such as that found in mostdigital clocks or watches. The blockdiagram of a typical clock chip isshown in figure 2. This LSI devicereplaces about 22 TTL (transistor-transistor logic) chips once necessaryto perform the same function, andconsumes very little power, allowingbattery standby operation. The cir-cuit of figure 1 uses inexpensive TTLrather than CMOS (complementarymetal oxide semiconductor) becausebattery backup is irrelevant if thecomputer cannot acknowledge inter-rupts in a powered down state. Figure3 illustrates the logic of the BCD(binary coded decimal) and7-segment output lines.

There are two approaches to thedesign of a clock interface. One ap-proach is to let the clock circuitoperate independently from the com-puter, attached in such a way that thecomputer is able to monitor this acti-

52 August 1979 © BYTE Publications lnc

A New, Easy to LearnMicrocomputer p~Language

BA5EX

ICDM r» CLT4-IAO O ^^.J

ISBN 0-931718-8

• it

Buy this book at your favoritecomputer bookstore ororder direct fromBYTE BOOKS.

Add 60$ for postageand handling.

^~.. AND

sm®!'

PA* WARME

basex is a fast andcompact language which im-proves on some of the best featuresof both BASIC and the 8080 Assembly language.basex programs typically execute five times fasterthan equivalent BASIC programs, while requiring less thanhalf the memory.

The basex compiler is written in the basex language andcombines the functions of editing, compiling, andinitiating the execution of programs to improvememory efficiency. Author Paul Warme haseven included a basex loader program iw»* ™

to relocate programs anywhere * iRILi] w[ \

in memory.

"BOOKS OF INTEREST TO COMPUTER PEOPLE"

70 Main street, Peterborough, New Hampshire 03458

Circle 36 on inquiry card.

BYTE Augusl 1979 S3

CLOCK GENERATOR

—i CRYSTAL

T

60 Mz

SEGMENTS<

TYPICALMOSCLOCK CHIP

CD405O

CMOS/MOSTO TTLCONVERSION

Figure 4: A real-time interface im-plemented using a typical clock chip.

6 DIGIT DISPLAY

V

V

V

ID'UQ-DC

i /_ • i u • _i O

V

V

+ 5V

A

V

V

V

V

V

13

14 CD4050

V

I 2 3 4 5 6t

, 74147

1 C B A

PRIORITYENCODER

t t $ I t t ta b c d e f gb7 b6 b5 b4 b3

00

b-> bi bf

PARALLEL INPUT PORT

DIGITAL LOGIC DESIGN ENGINEERS - MARKETING PRODUCT SPECIALISTS

CO

>

m

KUiUi

o

z

UJCO

<o

_Jaa.<

CO

I-co

>

tc

UJ

<

aocc

a.■

CO

oc

UJ

K_l

<o

z

X

o

UJ

GET TO KNOW CODEX

Were Codex, producers of high speed state-of-the-art data communicationsequipment, and we're known as the best in the industry. Because we're growing ata phenomenal rate, we need individuals with all kinds of backgrounds, experience,and interests who'd like the challenge and excitement of working with the leaderin its field.

GET TO KNOW CODEXEVEN GETTER

If Codex sounds good to you, clip out the coupon and send it to me, Gary Davis,Corporate Employment Manager. I'll send you a package of information aboutCodex so you can get to know us even better. Then if you think we've got what ittakes to improve your career, send us the enclosed application.

Name-

Address.

Street

My current job title is.

City

State

code*

coOorOTon

m

CO30

m

■o

3D

m

CO

m

z

<m

CO

m

YOU WILL NOT BE CALLED unless you indicate interest in Codex by returning Oan application or resume to us. co

___ _, m

, 30

Clip out this coupon and send to: Gary Davis, Corporate Employment Mana- I —ger, CODEX CORPORATION, 20 Cabot Boulevard, Mansfield, MA 02048. | O

■ m

Dear Mr. Davis: j W

Please send me information about career opportunities at Codex Corporation. _

i 1

Im3DZip Code P

BY I m

m

za

A Subsidiary of MOTOROLA INC I"

20 Cabot Boulevard, Mansfield, MA 02048 !£

An Equal Opportunity Employer M/F CO

SOFTWARE DESIGN ENGINEERS - MICROPROCESSOR DESIGN ENGINEERS

vity and extract a time value. The se-cond approach, which I prefer, is togive the computer complete controlover the information flow of theclock in a synchronous manner. Thisdesign makes the interface speed inde-pendent and allows it to be useddirectly with high-level languages.

Figure 4 shows the typical real-timeclock interface. In this design theclock is configured in the usual man-ner to drive a 6-digit light emittingdiode display. The clock runs inde-pendently with the display multiplex-ing rate (about 1 kHz) set by aresistor/capacitor combination at-tached to the chip. Five of the7-segment drive lines are level shiftedand buffered for TTL through a CD4050, and the 6 digit lines are priorityencoded to produce a 3-bit binaryvalue for transmission to the com-puter of the energized digit-enableline. The 3-bit digit and 5-bit segmentcodes are combined to produce asingle 8-bit byte interfaced to aparallel input port.

In operation, the computer pro-gram first looks at bits b0 thru b2 todetermine which digit of the displayto activate. Then it reads bits b3 thrub7 and compares them to a table to

54 August 1979 © BYTE Publications Inc

Circle 44 on inquiry card.

September 1977

March 1979

Byte Cover Prints—Limited Editions.

The September '77 and March '79 covers of BYTEare 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 750for 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 andnumbered in pencil at bottom.

The price of each print is $25. This includes 1) asigned and numbered print; 2) a Certificate ofAuthenticity, also signed personally by the artistand witnessed, attesting to the number of the edi-tion (750), and the destruction of the printing plates;and 3) first class shipment in a heavy-duty mailingtube.

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

out and

Send me "Breaking the Sound Barrier"

prints at $25 each, and "Trap Door"

prints at $25 each. I understand this price in-cludes Certificate of Authenticity and first classshipment.

□ I have enclosed check or money orderto Robert Tinney Graphics.

□ Charge this to my Master Charge or Visa

Card #_

Expires:,

Ship my print(s) to:Name

Address.City

State-

Zip.

Send order to:

robert tinney graphics

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

o

Circle 369 on inquiry card.

BYTE August 1979 55

+ I2VA

-i- 100/iF

"^ 25V

rt7

5-36pF-#-1

CRYSTAL3.579545MHz

20pF33pF

CRYSTAL

OSCILLATORIN

IC2MM5369

OUTPUT

OSCILLATOROUT

6OH1

H2V

H2V

A IOK A IOK ♦ IOK

I—VW-O I—WV—II I—W\^Hl

6 4 ;

A 6 6 IC5

A A740

IOK 22

C_ INPUT

BCDIBCD2BCD4BCD8

ICIMM53I2

I PPS

FAST SETSLOW SET

Ml

MIOHI

MULTIPLEX HIO50/60H2

1I

6 II

.J

1'

r"

24

lj>>

U>i

"1

^x

^^

L.

r

IC3CD4049

IC4CD4049

.J"1

20 I 5

I19 I

o>

^

I

18 I 9

z|>s

o^

5«

OPTIONALINTERRUPT INPUTS

FROM PARALLELOUTPUT PORT

.J

00000000

b7 b6 bs b4 b3 b2 b| b0v v /\ ^ J

0I6IT ENABLE BCD VALUEOUTPUTS

TO PARALLELINPUT PORT

5c

5b

HIO HI MIO Ml SIO SI

g g g g u g

n

V

IC7CD4050

0

V

V

V

Y

10

Y

15

J

8 } INPUTS9^

INPUTS

IC674147

OUTPUTSB

—^A

NX.

b7

0 0 0

H

b5

t>4

+ 12 TO 15VFROM

COMPUTERA

IN4002

IN4002

CLOCKINTERFACE

GND

T

5?" BATTERY

rh

Num

ber

Type

+ 5 V

GND

+ 12 V

IC1

MM5312

—

23

13

IC2

MM5369

—

8

2

IC3

CD4049

1

8

—

IC4

CD4049

1

8

—

IC5

7406

14

7

—

IC6

74147

16

8

—

IC7

CD4050

1

8

—

Figure 5: Design for a real-time clock which can be syn-chronously controlled by aBASIC or machine languageroutine. 5a shows the sche-matic diagram; asterisks in-dicate lines which should beopened to prevent loss oftime data when the computeris powered down and theinterface is used with batterybackup. 5b shows an alter-nate configuration for a6-digit clock when using anMM5311 integrated circuit.5c shows the circuit for bat-tery backup operation. Theclock interface requires 12mA from the battery duringstandby (indicated by thearrow).

56 August 1979 © BYTE Publications lnc

jV^O/TCUS

(

determine which character is beingdisplayed. (Only 5 of the 7 segmentsare necessary to perform this com-parison.) This process is repeated 5more times as the chip sequencesthrough the other digits. The finalresult is formatted into hours,minutes, and seconds. The entireoperation takes about 10 ms and re-quires that the program be written inmachine language.

If you can believe the claims of themanufacturers, there are now morecomputers in use that run BASICrather than machine language as theirprimary mode of interactive com-munication. While it is still possibleto manipulate individual bits andwrite machine language device con-trol subroutines for these computers,their owners are obviously morefamiliar with high-level languagesand would necessarily feel more com-fortable with a clock design whichcould be controlled in BASIC as wellas machine code. Figure 5 demon-strates such a design.

This circuit, which can be man-

MULTIPLEX TIMING INPUT

I] TL^LJLJl

MINUTES (UNITS)

MINUTES (TENS)

HOURS (UNITS)

HOURS (TENS)

. INDICATES THAT BCD LINES CONTAIN VALID DATA FORRESPECTIVE DIGIT DURING THIS PERIOD (AFTER^APPROXIMATELY 200,i.SEC SETTLING TIME )

Figure 6: Display multiplex timing sequence for the circuit in figure 5.

ually or automatically preset, is fullystatic and allows the display outputlines to be completely under programcontrol. The basic 5-chip interfaceconsists of a 4-digit BCD/7-segmentoutput clock type MM5312, an

MM5369 time-base generator, 2MOS to TTL buffers to send data tothe microprocessor, and 1 TTL-to-CMOS converter for processor con-trol over the clock chip. Time is readby the computer as 4 binary coded

^NALOG FUNCTIONS

in kit form

for microcomputers

SENSORS

ISDUCERS

|10G MEMORIES

^NALOG FUNCTIONS

TIERS • CONVERTERS

AND OTHER INTERFACE FUNCTIONS

FOR INDUSTRY • BUSINESS • EDUCATION• COMPUTER HOBBIESTS •

■>" most kits offer stand-alone application abilityP.O. BOX 35879 TUCSON, ARIZONA 85740

^ AVAILABLE NOW!

MP "Q = QUALITY"

QK-100 TRIPLE A-> D CONVERTERS $36.95

QK-101 DUAL AIR TEMPERATURE SENSORS 26.95

QK-103 POWER SUPPLY & DUAL SOCKETS 29.95

QK-105 DUAL PHOTO DETECTORS 27,95

QK-110 MULTIPLIER, VOLTAGE-CONTROLLED

AMPLIFIER COMBINATION.„ 43.95

QK-112 PEAK-SENSE & HOLD/SAMPLE

AND HOLD 28.95

QK-122 DUAL INSTRUMENTATION

AMPLIFIERS 24.96

QK-124 LOG & ANTI-LOG COMBINATION .... 40.95

QK-900 SOCKET/MOUNTING BOARD 8.95

Q

fc. ^^.

naster charge]

^" *

VISA*

dealerinquirieswelcome

(602) 299-9831

a division of j.r. conwell corporation

Circle 81 on inquiry card.

August 1979 © BYTE Publications Inc 57

Listing 1: Program for the real-time clock.LIST

1001.1.01201301401501.60170180190

200210220230240250

REM REALREM COF'YRREM THISREM INTERREM THE DREM IT ISOUT 8,1 :IF' D"=16 TREM ONCEREM THE IDECIMAL)M1=T ANDM2-T ANDH1=T ANDH2=T ANDPRINT HOUT 8rl

TIME CLOCK

IGHT 1979 STEVEN CIARCIA

SIMPLE PROGRAM ALLOWS A COMPUTER TO TELL TIME BY

FACING A DIGITAL CLOCK CHIP TO AN I/O PORT. (PORT 8 IN THIS EXAMPLE)

ISPLAY MUX LINE IS CONTROLLED BY THE COMPUTER. FIRST IT IS PULSED UNTIL

SET ON THE LEAST SIGNIFICANT DIGITOUT 8r0 I T-INP(8) !D=T AND 16HEN 200 ELSE 160

THE LSD POSITION IS SET THE 4 SUCESSIVE READINGS ARE TAKENNPUT PORT DATA IS ANDED WITH 15 TO OBTAIN THE BCD VALUE (REMEMBER.BASIC USES

15 IGOSUB 250 iREM

is :gosub 250 :rem

15 :gosub 250 :rem

15 jgosub 250 jrem

MINUTES (UNITS)MINUTES (TENS)HOURS (UNITS)HOURS (TENS)

;ni:

;m2»mi :goto 160

!OUT 8r() !T~INP<8)IRETURN :REM ADVANCE DISPLAY MUX

READY

decimal numbers. In a 4-digit clocklike the one in figure 5, the data ap-pears as a digit-enable output and an

associated BCD value. The tens ofminutes data is available when bit b5is high (bits b4, b6, and b7 are low). It

NOW, FROM MOUNTAIN HARDWARE.

THE 1OO0OO DAY CLOCK.

Put your S-100 Computeron the clock.

A real time clock could double theutility of your computer. Time eventsin 100/xS increments for up to 100,000days (over 273 years). Program eventsfor the same period with real timeinterrupts that permit pre-programmed activities to takeplace...without derailing on-goingprograms. Maintain a log of computerusage. Call up lists or appointments.Time and date printouts. Time events. Anon-board battery keeps the clock running inthe event of power outage.

Mountain Hardware also offers a complete lineof peripheral products for many fine computers.

23

Available at your dealer's. Now.

Mountain Hardware, Inc.

300 Harvey West Blvd.Santa Cruz, CA 95060 (408) 429-8600

will appear as a BCD quantity in bitsb0 thru b3. Unlike the circuit of figure4, this unit is static and has no displayto drive. It will stay on a particulardigit until it is instructed to sequenceto the next digit. This is accomplishedby controlling the display-multiplexerinput line of the clock.

Figure 6 shows how the multiplexerline is controlled in this application.Bit 0 of an output port (port 8 in myexample) is used to pulse multiplexerinput pin 22. At any time, 1 of the 4digit-enable output lines will be low(at the chip), indicating that themultiplexer is set on that digit. Thedata on the BCD lines is for that digit.Reading the next digit is simply a caseof pulsing bit b0 again. There is notime constraint either. You can wait10 minutes between digits if you wish(but the data won't mean much). It isbest to read the 4 digits sequentially.The circuit is easily interfaced andexercised in BASIC as demonstratedin listing 1. The flow diagram of thisprogram is shown in figure 7.

The addition of 2 more gates con-nected to output bits bi and b2facilitate automatic time preset.Figure 8 follows the logic of how sucha program could be written. Twomagnetic reed switches shown inphoto 1 can be attached between pins14 and 15, respectively, and groundto allow manual preset as well. I findthat it is easier to just turn on the

58 August 1979 © BYTE Publications Inc

Circle 257 on inquiry card.

c

3

PULSE

DISPLAY MULTIPLEX

INPUT

r-

L

IS DISPLAYMULTIPLEX INMl POSITION

"~l

h —

Ml = MINUTES ( UNITS)MZ= MINUTES (TENS)

H I -- HOURS (UNITS)H2 = HOURS (TENS)

READ Ml IN BINARYCODED DECIMAL

PULSE

DISPLAY MULTIPLEX

INPUT

READ M2 IN BINARYCODED DECIMAL

PULSE

DISPLAY MULTIPLEX

INPUT

READ HI IN BINARYCODED DECIMAL

PULSE

DISPLAY MULTIPLEX

INPUT

READ H2 IN BINARYCODED DECIMAL

PRINT HOURSAND MINUTES

(RETURN OR^^ REPEAT J

( START J

♦DESIGNATES LOGICBOXES WHICH MAYREQUIRE INTERNALTIME DELAYS DEPENDINGUPON PROGRAMEXECUTION SPEED

DESIGNATE DESIREDPRESET TIMEH•HOURSM =MINUTES

TURN ON SLOWSPEED SET

READ MINUTES

I 1

I IS DESIRED PRESET

GREATER THAN \— ■

I CURRENT READING

I IS CURRENT

READING EQUALI TO PRESET HI I

h —

\ ? /

YES

LET DESIGNATEDPRESET H BEH = H-l

Tno

'L,

1 1

II

READ HOURS

<v P _^

NO

TURN ON *

FAST

SET

I 1

I IS CURRENT

i READING EQUAL |

TO PRESET M i

YES

READ MINUTES

\ NO

TURN ON

*

SLOW

SET

f RETURN J

Figure 7: Flowchart of the program givenin listing 1.

Figure 8: Flowchart for the automaticreset routine.

clock program in continuous displaymode and adjust the clock as I read it.If a battery back-up capability is add-ed, the 2 TTL automatic set gatesshould be disconnected. When thecomputer is powered up, randomdata can appear on bits bi and b2,accidently causing it to enter the setmode. This is not a problem on theinput. While a 4-digit, 24-hour clockis quite enough in my application (anexample is shown in photo 2), thereare those who need a second designa-tion. Substituting an MM5311, the Si

and s10 digit-enable line can be addedas 2 more parallel input bits andtreated exactly as the present circuit,or binary encoded to reduce inputbits, as shown in figure 5b. Thismethod will require a slight softwarechange but should be an equallyviable approach. The present pro-gram in listing 1 executes in approxi-mately 50 ms when used with MicroCom 8 K Zapple BASIC, but it worksequally well with a machine languageroutine.

Whatever your final configuration,

I am sure you will find that accuratelytimed control outputs are a definiteadvantage on any system. And thereis no reason for the hardware of anyinterface to constrain the operator'schoice of software interaction if it isnot dictated by the frequency ofevents themselves. ■

Next month the topic of "Ciarcia's Cir-cuit Cellar" will be various joystick inter-faces.

August 1979 © BYTE Publications Inc 59

From PEOM

One-Drive System:

$399. (40-track) & $675. (77-track)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™ drivesor 77-track TFD-200™ drives.

• One-, two- and three-drive systems im-mediately available.

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

« TFD-100™ drives accommodate "flippydisks." Store 205K bytes per mini-disk.

• Low prices. A single-drive TFD-100TMcosts just $399. Price includes PATCHPAK #1™ disk.

• Enclosures are finished in system-compatible "Tandy-silver" enamel.

Whether you need a single, 40-track TFD-100™ add-on or a three-driveadd-on with 77-track TFD-200™s, youget more data storage for less moneyfrom Percom.

Our TFD-100™ drive, for example,lets you store 102.4K bytes of data onone side of a disk — compared to 80Kbytes 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 permini-disk.

And the TFD-200™ drives provide197K bytes of on-line storage per drive

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

PATCH PAK #1™, our upgradeprogram for your TRSDOS*, not onlyextends TRSDOS* to accommodate 40-and 77-track drives, it enhancesTRSDOS* in other ways as well. PATCHPAK #1™ is supplied with each drivesystem at no additional charge.

The reason you get more for lessfrom Percom is simple. Peripherals arenot a sideline at Percom. Selling disksystems and other peripherals is ourmain business — the reason you getmore engineering, more reliability andmore back up support for less money.

In the Product Development Queue ... a printer interface for using your TRS-80* with anyserial printer, and ... the Electric Crayon™ to map your computer memory onto your color TVscreen —for games, animated shows, business displays, graphs, etc. Coming PDQ!

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

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

•TRS-80 and 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-freenumber: 1-800-527-1592. For detailed Technical infor-mation call (214) 272-3421.

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

Pe

rcom 'peripherals for personal computing'

60 BYTE August 1979

Circle 305 on inquiry card.

For your SWTP 6800 Computer...

PERCOM'sFLOPPY DISK SYSTEM

G

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

fully assembled and testedshipping 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 powersupply, SS-50 bus controller/interface card, and MINIDOS-PLUSX™,you also receive:

• an attractive metal enclosure • a fully assembled and tested inter-connecting cable • a 70-page instruction manual that includes operat-ing instructions, schematics, service procedures and a complete list-ing of MINIDOS™ • technical memo updates — helpful hints whichsupplement the manual instructions • a 90-day limited warranty.

SOFTWARE FOR THE LFD-400 SYSTEMDisk operating and file management systemsINDEX™ The most advanced disk operating and file managementsystem available for the 6800. INterrupt Driven Executive operatingsystem features file-and-device-independent, queue-bufferedcharacter stream I/O. Linked-file disk architecture, with automatic filecreation and allocation for ASCII and binary files, supports sequentialand semi-random access disk files. Multi-level file name directoryincludes name, extension, version, protection and date. Requires 8K

RAM at $A000. Diskette includes numerous utilities $99.95

BASIC Interpreters and CompilersSUPER 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 datafile disk BASIC. Includes many speed improvements, and program

disk CHAINing $17.95

STRUBAL+™A STRUctured BAsic Language compiler for the pro-fessional programmer. 14-digit floating point, strings, scientific func-tions, 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 ProcessorsEDIT68 Hemenway Associates' powerful disk-based text editor. Maybe use'd to create programs and data files. Supports MACROS whichperform complex, repetitive editing functions. Permits text files largerthan available RAM to be created and edited $39.95

TOUCHUP™ Modifies TSC's Text Editor and Text Processor for Per-Com disk operation. ROLL function permits text files larger thanavailable RAM to be created and edited. Supplied on diskette com-plete with source listing $17.95

AssemblersPerCom 6800 SYMBOLIC ASSEMBLER Specify assembly optionsat time of assembly with this symbolic assembler. Source listing on

diskette $29.95

MACRO-RELOCATING ASSEMBLER Hemenway Associates'assembler for the programming professional. Generates relocatablelinking 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 cross-reference listing of an input source listing file $29.95

Business ApplicationsGENERAL 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. Power-ful search, sort, create and update capability $99.95

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

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

Now! The LFD-800 and LFD-1000. Add one, two or threeLFD-800 drives and store 200K bytes per drive on-line. Addone or two (dual-drive) LFD-1000 units and store 800K bytesper 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 August 1979

61

LISP Notes

John Allen

Signetics

811 E Acques Ave

Mail Stop 38

Sunnyvale CA 94086

• Symbolic Expressions (or S-expres-sions) are the primitive data items of LISP.The usual interpretation of these expres-sions is a binary tree where LISP atomsappear at the tips of the tree, and theinternal nodes, called CONS nodes, have2 branches. The left branch is called theGAR branch; the right branch is called theCDR branch. For example:

CONSyNODES

B C

These CONS nodes are also called dotted

pairs because the linear notation for thesetrees, called dor notation, represents thenodes as dots. For example, the tree abovewould be written as (A. (B . C)) in dot notation.The LISP functions car and cdr select theCAR and CDR branches respectively. Thefunction cons constructs a new binary treefrom 2 fragments.

• M-Expressions of an external notationfor LISP, while a special kind of S-expres-sion, called list notation, are used for boththe programming notation and the datanotation. All articles in this month's BYTEuse list notation for their data items. Toemphasize the distinction between theidea of a list and its implementation as adotted pair, the functions first, rest, andconcat will sometimes be used instead ofcar, cdr, and cons, even though the func-

tions are identical in traditional imple-mentation.

Within the LISP language are severalpowerful and distinctive features. One, calledlambda notation, gives LISP the ability todescribe and manipulate functions as dataobjects. We use a simplified form of this con-cept in the LISP operators DEF and DEFINE.Another LISP distinction involves its conceptof a scope rule: basically a rule to apply whenfinding the value of a nonlocal variable fromwithin a function call. The default rule in LISP(and in APL) is called the dynamic scope,meaning "use the latest binding of avariable" (ie: the binding which was availablewhen the function was called). ALGOL andPascal use a rule called static scope whichsays, "use the value which was current at thetime the function was defined."■

'■dE&p

MARK READER

"A pencil, a card, and this low-cost reader...

t's the new, fast way to enter data into yourmicrocomputer."

Interfaces to TRS-80, Apple II, PET, and others.

Good news! Now, all you need is a standard #2 pencil, a card, and our newMR-500 mark sense card reader to quickly and easily enter data into yourfavorite microcomputer.

As Easy as One, Two, Three...

Here's all you have to do. One — program the card by marking with the pencil.Two — feed the card into the reader slot. Three — the reader automatically turnson, the card is fed through, and data is instantly entered into memory. It's thesimple low-cost alternative to keyboard data entry.

For Educators, Small Businessmen, and...

The applications for our low-cost MR-500 are endless. For small businesses, it'sideal for inventory, time cards, labor distribution (just to name a few). Educatorswill find that the MR-500 streamlines test scoring, attendance records, and gradereporting. Bet you can find a use already.

The Small Reader for the Small Computer

The MR-500 is lightweight - 4 lbs. Compact - ^^^^^ „,„„ or write

a 4^t-inch cube. And at $750, it's the only mark / ■ for details.

sense card reader that makes sense for the '1S^5 1 °r better yet,

small computer.

order yours toda

IKCHATSWORTH DATA

1=9 P=» C=> l«l yCK-T- I C=> f*>J

• tvvorth. California 91311

t on Inquiry card.

V

£i£2iUJDRLD

LOWEST PRICES . FAST DELIVERY .

TOLL-FREE

1-800-528-1418

DEPENDABLE SERVICE

DOUBLE DENSITY HORIZON I KIT

double the storage at the same price!

Today's best buy. 180K bytes per disk.The chosen computer for two MicroWorldsystems . . . Autoscribe — The PaperworkManager- and Bookkeeper — The OfficeAccountant*. Single density still runs onyour new Horizon, or you can copy andconvert all North Star software and programs to double density.

• exclusive application software

• add'l 16K memory (kit), $349

• add'l disk drive (kit), $349

NEW!

?

jA MICROPOLISjjM DISK DRIVEFORTRS-80

;,^s499 <C

» y^^~~^ Introductory Price———-^■r ^^ |reg. $599)^N.

M

^m^ HEATH DATA

% r. SYSTEMS PRINTER

JV

SOROC IQ 120 VIDEO J*^ Tl 810 PRINTER

TPDMIUAI MVlv^

TERMINAL H^

Call for low assembled prices. Doubledensity also available on North Star disksub-system, $599 kit.

MicroWorld Specials

Integral Data Printer .... $ 749

Add for Tractors $ 150

Mime Terminal $742

Hazeltine 1410 Terminal . $765Hazeltine 1500 Terminal . $1097Teletype Model 43

Printer $1019

Dataproducts M-200

Printer $2921

Vector Graphics MZ $3225

Exidy 16K Sorcerer $1035

Data General

microNOVA $CALL

Qume Sprint 5 RO

Printer (55cps) $2895

DEC LS 120 Printer .... $CALLCentronics 779 Printer

(incl. tractors) $1095

Micropolis 1042 Mod

I Drive $CALL

Tl 59 Calculator $ 219

Novation CAT Modem .. $ 199

Tl 820 Terminal $2199

North Star Horizon

Software $CALL

Dataproducts B-300

Printer $5346

IPSI 1620 Diablo RO .... $2705

Hitachi 9" Monitor $184

Cromemco System III ... $5299Imsai VDP-80 $CALL

IfCHO

Bringing information technology to your doorstep1425 W. 12th PI. . Tempe, AZ 85281 • 602-894-1193

Circle 233 on inquiry card.

V/SA I No extra charge for credit card orders

Freight collect, F.O.B. TempeNo other handling charges

Formerly Byte Shop Mail Order

CALL TOLL-FREE 1-800-528-1418

Get big system performancefrom your small computer

Bigger isn't always better, but large-system experience and a nationalcommunications network can help you get more out of your small computer.

■

It "

1

■ 4

\o%.

Our large-scale computer time sharing systemis now available to small computer users during off-peak

hours (nights, weekends) via local phone calls.

Cost: $5.00 an hour, billed in one-minute increments of

about eight cents each!

IWUcraHIET

IWUoralMET

What is it?

A remote, on-line computing service available vialocal phone lines in 25 major metropolitan areas.It is available from 6 p.m. to 5 a.m., local time, dailyas well as all day on weekends and most holidays.

Who is it?

MicroNET service is provided by the Personal Com-puting Division of CompuServe Incorporated, oneof the nation's leading time sharing computer serv-ice companies. We are a multi-million dollar com-pany serving many Fortune 500 companies andlarge government agencies for the last ten years.

What services do I get?

• Practical personal programs

■ Ability to communicate with other small computerusers

• Opportunity to buy and sell software through the net-work.

• Time-saving business applications

• Educational aids

• Easy-to-use programming languages

• Advanced programming and diagnostic tools

• Games (including many multi-player mind-bogglers)

What do I have to have to access MicroNET?

The minimum requirement is a terminal with com-munications interface and a telephone. However,

the full capabilities of the MicroNET service will berealized by using a microcomputer with modeminterface and a modem set for "originate" mode at300 BAUD.

What does it cost?

By using our equipment during off-peak hours, wecan keep our rates extremely reasonable. There isa one-time charge of $9.00 to sign up. Then you willbe billed (via Master Charge or Visa cards only) atthe rate of $5.00 per hour. Minimum charge peraccess is $1.00 for up to 12 minutes of computertime.

Can I store data?

Yes, up to 64,000 bytes of on-line file storage for upto seven days between accesses. For your protec-tion, we will disconnect automatically if your per-sonal computer is left unattended for 15 minutes.

I want to know a bit more.

Good. Send in the coupon. You'll receive more de-tailed information and an application. When you re-turn the application, including your Master Chargeor Visa number (because we bill electronically tohelp keep the price low), we'll send your user iden-tification number and password, user guide, andlocal phone number so you can put the power ofour large system to work for your small computer.

r

Mail to:

1

CompuServe

Personal Computing Division5000 Arlington Centre Blvd.Columbus, Ohio 43220

Send me information on MicroNET.

Name_

Address.

City/State/Zip.

C

It/UoralMET

Cities with local phone service access: Akron, Atlanta, Chicago, Cincinnati,Cleveland, Columbus, Dallas, Dayton, Denver, Detroit, Houston, Indianapolis, LosAngeles, Louisville, Memphis, West Caldwell (NJ), New York, Philadelphia, Pitts-burgh, San Francisco, Stamford (CT), St. Louis, Toledo, Tucson, Washington D.C.

Circle 46 on inquiry card.

BYTE August 1979 65

A Model of the Brainfor Robot Control

Part 3: A Comparison of the Brainand our Model

In parts 1 and 2 we have shownhow a neurological model called theCerebellar Model Arithmetic Com-puter (CMAC) can compute func-tions, recognize patterns, and decom-pose goals. We have also shown howa crosscoupled hierarchy of CMACs(see figure 1) can memorize trajec-tories, generate goal directed pur-posive behavior, and store an internalmodel of the external world in theform of predicted sensory data. Inthis third article we will attempt toshow how this structure and its capa-bilities can give rise to perceptual andcognitive phenomena.

The fact that the mathematicaldetails of the CMAC model werederived from the cerebellum, a por-tion of the brain particularly regularin structure and hence uniquelysuitable for detailed neuro-physiological analysis, does not meanthat the results are inapplicable toother regions of the brain as well. Thebasic structure of a large output cell(sometimes called a principal, relay,or projection neuron) served by acluster of local interneurons is quitetypical throughout the brain. Such

About the Author:

Dr James 5 Albus worked for NASA from1957 to 1972 designing optical and electronicsubsystems for over 15 spacecraft, and for oneyear managed the NASA Artificial IntelligenceProgram. Since 1973 he has been with the Na-tional Bureau of Standards where he has re-ceived several awards for his work in advancedcomputer control systems for industrial robots.He has written a survey article on robotsystems for the February 1967 issue of Scien-tific American and his Cerebellar ModelArithmetic Computer won the IndustrialResearch Magazine IR-100 award as one of the100 most significant new products of 1975.

lames Albus

Project Manager

United States Dept of Commerce

National Bureau of Standards

Washington DC 20234

clusters commonly receive input froma large number of nonspecific neuralfibers similar to the mossy fibers inthe cerebellum. In many instancesthey also receive specific inputs whichare more or less analogous to climb-ing fibers. As we might expect, thereare many differences in size and shapeof the corresponding cell types fromone region of the brain to another.These reflect differences in types ofcomputations being performed andinformation being processed, as wellas differences in the evolutionaryhistory of various regions in thebrain. Nevertheless, there are clearregularities in organization andsimilarities in function from oneregion to another. This suggests that,at least to a first approximation, thebasic processes are similar.

The implication is that the generalmodel of information processingdefined by CMAC (the concept of aset of principal neurons together withtheir associated interneurons trans-forming an input vector S into an out-put vector P in accordance with amathematically definable relationshipH) may be useful in analyzing theproperties of many different corticalregions and subcortical nuclei. This isparticularly true since the accuracy,resolution, rate of learning, anddegree of generalization of theCMAC H function can be chosen tomimic the neuronal characteristics ofdifferent areas in the brain.

Hierarchical Control

The idea that the central nervoussystem, which generates behavior inbiological organisms, is hierarchicallystructured is an old one, dating backconsiderably more than a century.The analogy is often made to amilitary command structure, whereinmany hundreds of operational unitsand thousands, even millions of in-dividual soldiers are coordinated inthe execution of complex tasks orgoals. In this analogy each computingcenter in the behavior-generatinghierarchy is like a military commandpost, receiving commands fromimmediate superiors and issuing se-quences of subcommands whichcarry out those commands to subor-dinates.

Feedback is provided to each levelby a sensory-processing hierarchywhich ascends parallel to thebehavior-generating hierarchy, andwhich operates on a data streamderived from sensory units whichmonitor the external environment aswell as from lower level commandcenters which report on the progressbeing made in carrying out their sub-commands. Feedback is processed atmany levels in this ascending hierar-chy by intelligence analysis centersthat extract data relevant to the com-mand and control functions beingperformed by the behavior-gener-ating module at that level.

Each of these intelligence analysiscenters makes predictions based onthe results expected (ie: casualties,rewards, sensory data patterns) as aconsequence of actions currently be-ing taken. The intelligence centersthen interpret the sensory data theyreceive in the context of these predic-tions. For example, in military in-

66 August 1979 © BYTE Publications Inc

The ideas presented inthis article represent theviews of the author and notthose of the Department ofCommerce or the NationalBureau of Standards.

telligence analysis a loss of 60 men inan operation where losses had beenpredicted at 600 implies an unex-pectedly easy success, and perhaps in-dicates a weakness in the enemy posi-tion which should be further ex-ploited. In the brain, the observationof 60 nerve impulses on an axonwhere 600 has been anticipated mayimply an unexpectedly weak branchin a tree, upon which the placing ofany weight will result in a fatal fallfrom the treetop.

The response of each commandpost (or data analysis center) in thehierarchy to its input depends on howit has been trained. Basic trainingteaches each soldier how to do thingsthe "army way" (ie: what each com-mand means and how it should becarried out). Each operational unit inthe military has a field manual whichdefines the proper, or ideal responseof that unit to every foreseeable bat-tlefield situation. Each field manual isessentially a set of IF/THEN produc-tion rules or case statements, cor-responding to a set of CMAC func-tions, P = H (S) or Q = G (D). Atthe lowest level in the militaryanalogy these rules define the properprocedures for maintaining andoperating weapons, as well as theproper behavioral patterns for sur-viving and carrying out assignmentsunder battlefield conditions. Athigher levels they define the propertactics for executing various kinds ofmaneuvers. At the highest level, theydefine the proper strategy for deploy-ment of resources and achievement ofobjectives.

In the case where each unit carriesout its assignment "according to thebook," the overall operation runssmoothly and the goal is achieved onschedule as expected. To the extentthat various units do not follow theirideal trajectories, either because ofimproper training or because of un-foreseen difficulties in the environ-ment, the operation will deviate fromthe expected or planned schedule.Alternate tactics may be required. If achange in tactics still does not pro-duce success, new strategies may berequired. Of course, there is always

„*

F4

H4

Q4

Jx4

G4

R4

M4

P4

lC3

E4 '

F3

H3

Qj

|X3

G3

R3

M3

P3

,c2

|

E3 '

F2

H2

02

Jx,

G2

R2

M2

P2

Ci

E2

F,

Hi

Qi

|x,

G,

Ri

M,

P(

ACTION

E,

SEN

3ATI0N

ENVIRONMENT

the possibility that failure will occur,despite every effort. The goal will notbe achieved or, worse yet, theorganism may suffer a catastrophicsetback.

There is considerable anatomical,neurophysiological, and behavioralevidence that the analogy betweenthe brain and a military hierarchy isquite accurate. However, in sayingthis, it is important to keep in mindthat the highly schematic hierarchyshown in figure 1 is a grossly over-simplified diagram of the vast inter-connected hierarchical networkwhich is the brain. Every motorneuron in the nervous system can bethought of as being controlled by itsown hierarchy which interleaves andoverlaps extensively with the hierar-chies of nearby synergistic motorneurons. Each sensory-motor systemhas its own set of overlapping hierar-chies which become increasingly in-terrelated and interconnected with

Figure 1: A crosscoupled, processing-generating hierarchy. The H modulesdecompose input goals C into outputsubgoals P using feedback F. The Mmodules recall expected sensory data Rwhich is compared with observed sensoryexperiences E. The G modules recognizesensory patterns Q and compute feedbackerrors F.

each other at the higher levels. Thus,the entire brain may have the topo-logical shape of an invertedparaboloid as shown in figure 2.

Triune Brain Hypothesis

There is in fact some evidence tosuggest that the human brain is topo-logically similar to three (or more)concentric paraboloid hierarchies asillustrated in figure 3. Paul MacLeanand others have hypothesized a triunebrain wherein the inner core is aprimitive structure (ie: the reptilianbrain) which provides vital functions

August 1979 © BYTE Publications Inc 67

SMELL

TOUCH

TASTE JAWSLIPSTONGUE

BALANCE

FORCE

PROPRIOCEPTION

HEARING

f

SPEECH

LUNGS

LARYNX

TOUCHFORCEPROPRIOCEPTION

ARMS

HANDS

FINGERS

such as breathing and basic reflexiveor instinctive responses such aseating, fighting, fleeing, and repro-ductive activities. Superimposed onthis inner core is a second layer (ie:the mammalian brain) which is cap-able of more sophisticated sensoryanalysis and control. This secondlayer tends to inhibit the simple anddirect responses of the first so as toapply them more selectively and todelay responses until opportunemoments. This second brain thus pro-vides the patient waiting behaviornecessary for effective hunting ofprey. On top of this is yet a thirdlayer (ie: the primate brain) whichpossesses the capacity to manipulatethe other two layers in extremely sub-tle ways; to imagine and plan, toscheme and connive, to generate andrecognize signs and symbols, to speakand understand what is spoken.

The outer layers employ muchmore sophisticated sensory analysisand control algorithms that detectgreater subtleties and make morecomplex decisions than the innermore primitive layers are capable ofperforming. Under normal conditionsthe outer layers modify, modulate,and sometimes even reverse the senseof the more primitive responses of theinner layers. However, duringperiods of stress, the highlysophisticated outer layers may en-counter computational overload and

Figure 2. In the brain different processing-generating hierarchies represent differentsensory-motor systems. These become in-creasingly interrelated at the higher levelsand eventually merge into a unified com-mand and control structure. This enablesa complex organism to coordinate its ac-tions in pursuit of high level goals.

become confused or panicked. Whenthis happens, the inner core hierarchymay be released from inhibition andexecute one of the primitive survivalprocedures stored in it (ie: fight, flee,or freeze). A similar takeover by theinner hierarchy may occur if the moredelicate circuitry of the outer isdisrupted by physical injury or othertrauma. Thus the brain uses its redun-dancy to increase reliability in ahostile environment.

Of course, all three layers of thebehavior-generating hierarchy cometogether at the bottom level in themotor neuron — the final commonpathway.

Motor-Generating Hierarchiesin the Brain

In the military hierarchy analogy,the motor neurons are the footsoldiers. They produce the action.Their firing rates define the outputtrajectory of the behavior-generatinghierarchy. A CMAC representing aspinal motor neuron and its asso-ciated interneurons receive feedback

F from stretch receptors via the dorsalroots, as well as from other motorneurons reporting ongoing activity inrelated muscles. The command vectorC to this lowest level comes from thevestibular system, which provides in-ertial reference signals necessary forposture and balance, as well as fromthe reticular formation and basalganglia (and in primates, also directlyfrom the motor cortex).

There is nothing analogous to clim-bing fibers for the motor neurons, butthis is not surprising since there isevidence that little or no learningtakes place at this first level in thebehavior-generating hierarchy.

Evidence for second, third, andfourth levels in the behavior-generating hierarchy comes from ex-periments with animals and observa-tions of injured humans where thespinal cord is severed at differentlevels. If, as is shown in figure 4, thecord is severed from the brain alongthe line A-A, most of the basic motorpatterns such as the flexor reflex andthe reflexes that control the basicrhythm and patterns of locomotionremain intact. However, coordinatedactivation of these patterns to standup and support the body againstgravity requires that the regionsbelow B-B be intact.

The stringing together of differentpostures to permit walking and turn-ing movements requires the regions

68 August 1979 © BYTE Publications Inc

Color. VP-590 add-on Color Board allows programcontrol of 8brilliantcolorsforgraphics,colorgamesPlus 4 selectable background colors. Includessockets for 2 auxiliary keypads (VP-580). $69*

Sound. VP-595 Simple Sound Board provides 256tone frequencies. Great for supplementing graphicswith sound effects or music. Set tone and durationwith easy instructions. $24*

Music. VP-550 Super Sound Board turns your VIP into a musicsynthesizer. 2 sound channels. Program control of frequency,time and amplitude envelope (voice) independently in eachchannel. Program directly from sheet music! Sync provisionfor controlling multiple VIPs, multitrack recording or othersynthesizers. $49.*

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

EPROM Programmer. VP-565 EPROM Programmer Boardcomes complete with software to program, copy andverify 5-volt 2716 EPROMs—comparable to unitscosting much more than the VP-565 and VIP puttogether! Programming voltages generated onboard. ZIF PROM socket included. $99*

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

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

Iny BASIC.** VF

Expanded Tiny BASIC Boardputs this high-level languageon your VIP. BASIC storedin 4K of ROM. Ready for im-mediate use—no loadingnecessary. This expandedBASIC includes the standardTiny BASIC commands plus12 additional—includingcolor and sound control!Requires external ASCIIencoded alpha-numerickeyboard. $39*

uxiliary Keypads. Programyour VIPfor 2-player inter-action games! 16-key keypadVP-580 with cable ($15*)connects to sockets pro-vided on VP-590 Color Boardor VP585 Keyboard InterfaceCard ($10*

COSMAC VIP lets you addcomputer power a board at a time

With these new easy-to-buy options, the versatileRCA COSMAC VIP(CDP18S711) means evenmore excitement. Morechallenges in graphics,games and control func-tions. For everyone, fromyoungster to serious hobby-ist. And the basic VIP com-puter system starts at just $249* assembledand ready to operate.

Simple but powerful—not just a toy.

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

Circle 322 on inquiry card.

%^'

s \ ?

easy to program and operate.Powerful CHIP-8 interpre-tive language gets you intoprogramming the firstevening. Complete docu-mentation provided.Take the first step now.Check your local com-puter store or electronicsparts house. Or contactRCA 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 Showat the New York Coliseum, August 23-26, booth 4211.

The fun wayinto computers.

RCA

BYTE August 1979 69

LEGS. FEET, TORSOBALANCE, FORCE,PROPRIOCEPTION

ARMS, HANDS, FINGERSTOUCH, FORCE,PROPRIOCEPTION

♦

SPEECHLUNGSLARYNX

Figure 3: The human brain is hypothesized to be a composite structure consisting of atleast three layers: (1) a reptilian brain which provides basic reflexes and instinctiveresponses; (2) a mammalian brain which is more sophisticated and capable of delayedresponses; and (3) a primate brain which can imagine, plan and manipulate abstractsymbols. The outer layers inhibit and modulate the more primative tendencies of theinner layers.

HYPOTHALA

PRESTITIALNUCLEUS

RETICULARFORMATION

SUBTHALAMIC NUCLEUS

NUCLEUSPRECOMMISSURALIS

INTERSTITIAL NUCLEUSCEREBELLUM

RED NUCLEUSVESTIBULAR NUCLEUS

SPINAL CORD

Figure 4. The hierarchy of motor control that exists in the extrapyramidal motorsystem. Basic reflexes remain even if the brain stem is cut at A-A. Coordination of thesereflexes for standing is possible if the cut is at B-B. The sequential coordination requiredfor walking requires the area below C-C to be operable. Simple tasks can be executed ifthe region below D-D is intact. Lengthy tasks and complex goals require the cerebralcortex.

below C-C to be undamaged. In par-ticular it is known that the rotationalmovements of the head and eyes aregenerated in the interstitial nucleus;raising and lowering of the head inthe prestitial nucleus; and flexingmovements of the head and body inthe nucleus precommissuralis.Stimulation of the subthalamic nucleican cause rhythmic motions includingwalking. A cat with its brain section-ed along C-C can walk almost nor-mally. However, it cannot vary itswalking patterns to avoid obstacles.

Animals whose brains are cut alongthe line D-D can walk, avoid ob-stacles, eat, fight, and carry on nor-mal sexual activities. However, theylack purposiveness. They cannot exe-cute lengthy tasks or goals. Humanswith brain disease in the basal gangliamay perform an apparently normalpattern of movements for a fewseconds and then abruptly switch to adifferent pattern, and then another.One form of this disease is called StVitus' dance.

Higher levels of the behavior-generating hierarchy become increas-ingly difficult to identify and localize,but there is much to indicate thatmany additional levels exist in thecerebral cortex. For example, themotor cortex appears to be respons-ible for initiating commands for com-plex tasks. The ability to organizelengthy sequences of tasks, such asthe ability to arrange words into acoherent thought or to recall thememory of a lengthy past experience,seems to reside in the posterior tem-poral lobe. Interactions between emo-tions and intentional behavior appearto take place in the mediobasal cor-tex, and long term plans and goals arebelieved to derive from activity in thefrontal cortex. Hierarchies of dif-ferent systems (ie: vision, hearing,manipulation, locomotion, etc)merge together in the association

Sensory-Processing Hierarchiesin the Brain

It is a well established fact thathierarchies of sensory-processingmodules exist in the brain. In afamous series of experiments, Hubeland Wiesel demonstrated four clearlydistinguishable hierarchical levels inthe visual system. Similar sensory-processing hierarchies have been ex-tensively studied in the auditory

70 August 1979 © BYTE Publications Inc

The TARBELL Connection

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

Tarbell Floppy Disk Interface Tarbell Disk BASIC

Plugs directly intoyour IMSAI orALTAIR and handlesup to 4 standard sin-gle drives in daisy-chain.

Operates at standard250K per secondon normal disk for-mat capacity of 256Kbytes.

1 Works with modifiedCP/M Operating Sys-tem and BASIC-ECompiler.

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

1 Full 6-month warranty and extensivedocumentation.

'Kit $190 Assembled $265.

Specify drive for assembled units.Complete disk subsystems with opera-ting software available. Please inquirefor 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 numericdata.

• Unlimited length of variable namesand strings.

• Procedures with independent varia-bles.

• Number system 10 digits BCD inte-ger or floating point.

• Chain to another program.

• Cause programs to be appended on-to programs already in memory.

• Cause interpreter to enter edit modeusing 15 single character edit com-mands.

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 withmanuals $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

JZ~Z

tlJMiililMl

filifiilOlfcF

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

• 3 7-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 $1

• Manual may be purchased separately

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

Circle 360 on inquiry card.

Tarbell Cassette BASIC

Includes most features of ALTAIR Extended BASIC, plusthese 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 add6% sales tax.

ALTAIR is a trademark/tradename ofPertec Computer CorporationCP/M is a trademark/tradename of Digital Research

75.$8.

950 DOVLEN PLACE • SUITE BCARSON, CALIFORNIA 90746

(213)538-4251 »(213) 538-2254

BYTE August 1979

71

Q, ■ G, (D,)

E, + R,

system and also the proprioceptiveand kinesthetic pathways. Cross-coupling from these ascending hierar-chies of sensory-processing modulesto the motor-generating hierarchiesprovides the many different levels ofsensory feedback information re-quired at the various stages of thetask or goal decomposition process.At each level, output vectors from theprevious level of the sensory-processing hierarchy provide inputsto the next higher level, as well asfeedback to the same level of thebehavior-generating hierarchy.

In the case of vision, the two-dimensional nature of input from thesurface of the retina causes the com-putational modules in the visual pro-cessing system to be organized insheets. This implies that a CMACmodel of a typical level in the visualprocessing hierarchy would resemble

Figure 5: A two-dimensional array ofsensory-processing Cerebellar ModelArithmetic Computers such as might existin the visual system. The observed sen-sory image Ej plus the prediction vectorRj enters and is recognized by theoperator Gj as a pattern. The vector Rxmay select one of many filter functions orprovide an expected image or map to becompared against the observed image.

the structure shown in figure 5. In thisstructure the sensory input Di mightconsist of a pattern of sensoryvariables Ej defining light intensity(perhaps in a particular color band)together with predicted variables Rjwhich select a particular filter func-tion. The output Q1 = Gn (Di) thenmight define a pattern of edges or line

segments. This output forms part ofthe input E2 to the second level. Out-put from the second level, Q2 = G2(D2), might define patterns of con-nected regions or segments.

Recent work by David Marr at theMassachusetts Insititute of Tech-nology and Jay Tennenbaum at SRIInternational suggests that the outputvectors Qj at various levels maydefine more than one type of feature.For example, a single level in thevisual processing system might con-tain a depth image (derived fromstereo disparity, light gradients, localedge-interaction cues, etc), a velocityimage (derived from motion detec-tors), and an outline drawing image(derived from edge detectors, line,and corner finders) in addition tobrightness, color, and texture imagesof the visual field. These and manyother kinds of information appear to

72 August 1979 © BYTE Publications Inc

DOUBLE DENSITY!!

f[\\

from

For the last year the Micro industry has been promising doubledensity, and indeed some have been delivered. But if you're stillwaiting for your order or grown tired of flaky performance, callDelta. After a year of engineering and months of productionplanning — WE CAN DELIVER!.

And what we deliver is SOLID, RELIABLE DOUBLE DENSITY.

Ask the owners of any of our other fine products:— S-100 Mainframe — Z-80 CPU — 32 and 16K RAM — Video Interface

WE HAVE NEVER HAD A FIELD RETURN!

• Designed for CPM

• On Board Boot

• 2MHz-4MHz Operation

• Switch Selectable Write

• 2 Data separators; onedigital, one analog

• Runs without occupying anysystem RAM

Precomp.• "Personality Board" toModify Drive Configurations(No jumper wires)

• Complete Documentation

• Transparent Density Select

• Drive Diagnostic Softwareincluded

West:

DEL TA PRODUCTS

1653 E. 28th StreetLong Beach, Calif. 90806Tel: (213)595-7505

Circle 98 on inquiry card.

East:

DELTA PRODUCTS

1254 South Cedar RoadNew Lenox, Illinois 60451Tel: (815)485-9072

BYTE August 1979 73

Circle 99 on inquiry card.

When you

want to

make a

good

impression,

fttit(%b.

PickA Daisy.

Diablo invented the Daisy Wheel.Which is why today more peoplepick one of over 100 different DiabloDaisy Wheels when they want printquality at its finest.

So, the next time you want tomake a good impression, pick our daisyand you're sure to look your best.

Diablo Systems

XEROX

Diablo* and Xerox arc registered trademarks ofXEROX CORPORATION.

74 August 1979 © BYTE Publications Inc

exist in registration at several dif-ferent levels of the visual informationprocessing hierarchy so as to makepossible the extremely sophisticatedvisual recognition tasks which ourbrains routinely perform. These dif-ferent types of images interact,sometimes reinforcing each other soas to confirm a recognition, andsometimes contradicting each otherso as to reject one possible interpre-tation of the visual input in favor ofanother.

Crosscoupling

Cross links from the descendinghierarchies of motor-generatingmodules provide the many differentlevels of contextual and predictive in-formation required at various stagesof the pattern recognition or sensoryanalysis process. In the visual hierar-chy, as well as in all other sensory-processing hierarchies, context vari-ables Rj may define expected values ofthe Ej vectors. This implies that theaddresses P; and X; have stored datafrom previous experiences when whatis currently recalled as R; was ex-perienced as E;. In this case the recall-ed context R; is essentially a storedimage, or map, which is accessed byan associative address created by thebehavior-generating hierarchy beingin a state more or less similar to thatwhich existed when the rememberedexperience (ie: the map) was stored.

This implies that the sensory dataprocessing hierarchy is a multilevelmap (or template) matching process,and that in order to generate thesemaps the behavior-generating side ofthe crosscoupled hierarchy must beput into a state (or pulled along a tra-jectory) similar to that which existedwhen the template was recorded.

When this occurs, the interactionaround the loop formed by the Gj, H,,and M; modules at each level issimilar to a phase-lock loop, or arelaxation process. The data E; entersthe module G; which recognizes it tobe in a certain class Q; with perhapsan error of F;. The recognition Q; trig-gers an appropriate goal decomposi-tion (or subgoal selection) function inthe H;+1 (or higher) modules whichgenerates a command (or hypothesis)Cj. This command, modified by theerror F;, generates a subcommand (orsubhypothesis) P; and hence apredicted data vector Rj. The predic-tion R; may confirm the preliminaryrecognition Q; and pull the context P;

into a more exact prediction via thefeedback loop involving F;. Alter-natively the prediction R; may causeG; to alter or abandon the recognitionQi in favor of another recognition

QV

Loops and Rhythms

Obviously such looping interac-tions involve timing and phase rela-tionships which may themselves haveinformation content. Many sensorydata patterns, especially in theauditory, visual, and kinestheticpathways, are time dependent and in-volve some form of rhythmic or har-monic temporal patterns as well asspatial relationships. For example,activities such as walking, running,dancing, singing, speaking, and ges-turing all have a distinctly rhythmicand sometimes strictly periodiccharacter.

As was discussed in part 1 of thisseries, temporal patterns at variouslevels correspond to trajectories withdifferent time rates of change, andhence (assuming approximately thesame information content stored astrajectories at each level) differentperiods or complete rhythmical pat-terns. For example, at the lowest levelof the auditory system, brain cells areexcited by mechanical and electricalstimuli with frequencies ranging fromabout 20 Hz to 20,000 Hz. These sen-sory inputs thus have periodicitiesfrom 0.00005 to 0.05 seconds.

The highest frequency a nerve axoncan transmit is about 500 Hz, but thebrain handles higher frequencies in amanner somewhat reminiscent of thecerebellum's encoding of precise posi-tion. It encodes pieces of informationabout the phase of a wavefront on anumber of different fibers. Thismeans that by knowing which fibersare firing in which combinations atwhich instants, one can compute notonly what is the fundamental pitch ofthe temporal pattern but what are allof its overtones. Thus, the CMAC Gfunction at the lowest level (or reallythe loop comprised of the lowest levelG, H, and M modules) can computethe Fourier transform, or the autocor-relation function, and presumablyeven the Bessel function describingthe modes of vibration of the cochlearmembrane.

Assume for example, that the G, H,and M modules in figure 6 constitutea phase-lock loop such that the inputPATTERN is a signal f(t) and the

1 Orj

'"OU/ry

cara.

Technical Systems Consultants.theleader in 6800 software, now presentsthe first in a full line of 6809 systemssoftware. The superiority of the 6809microprocessor and TSC softwarecombine to form an amazingly powerful,efficient, and easy to use system.

6809 FLEX™ w/Edit and Asmb $90.

Disk operating system for SWTPc 8" or 5".Equivalent to 6800 FLEXT" except for beinglocated at $C000. Includes editor andassembler listed below.

Text Editing System

TSC's popular editor now on 6809. Fullyline and content oriented with globalcommands.

Mnemonic Assembler $40.00

Resident 6809 assembler also accepts 6800and 6801 mnemonics. Supports macrosand conditional assembly.

TSC BASIC for 6809 $65.00

Extremely fast and complete, 6-digit mathBASIC. Powerful, fully dynamic stringhandling. Random disk file capability.

6809 Debug Package $75.00

The most advanced assembly languagedebugging aid available. Supports multiple,conditional breakpointing, tracing, memoryprotection, and much more.

Except for 6809 FLEX™, all code is fully re-entrant and position independent. Priceincludes user's manuals and machinereadable object code. Specify 8" disk, 5"disk, or cassette (FLEX™ available on diskonly). Source listings not included, butavailable for some products. Contact TSCfor a price quotation. All orders shouldinclude 3% for postage and handling (8% onforeign orders).

FLEX is a registered trademark of TechnicalSystems Consultants, Inc.

Technical SystemsConsultants, Inc.

Box 2574

West Lafayette, IN 47906

(317) 463-2502

QNAME

qp pL

i

CHYPOTHESIS

n

PHASE ERROR F

H

i

LOW PASS

RPREDICTION

G

, f(»-T,]

M

f(t-TL)

t

I

11

PATTERN f (t)

CONTEXT

CONTEXT

Figure 6. A phase-lock loop consisting of a G, H, and M module. If the H and Mmodules produce a set of signals with nearly the same periodicity as the incoming signalE, the G function can compute a phase error signal F which pulls the R prediction intolock with the E observation. The G module can then also compute an autocorrelationfunction which gives a perception of pitch.

PREDICTION is another signalf(t — t). If the processing module Gcomputes the product of the PAT-TERN • PREDICTION, then the out-put NAME is f (t) • f (t - t). When rcorresponds to 1/4 of the period ofthe input f (t), a low pass filter appliedto the output will produce a phaseERROR signal which, when appliedto the H module, can enable thePREDICTION signal f(t-r) to trackand lock on to the input PATTERNf(t). If the loop consists of amultiplicity of pathways with dif-ferent delays (r > 0), the output,when processed through low passfilters, will produce an autocorre-lation function:

T

Ur) =T1im=o|f \ fW'W-*) dt

such that:

qi = <Mri)qa = </>//(t2)

q* = <f>fArL)where:0<t1<t2 ... <TL

It has been shown that such an

autocorrelation function produces aperception of pitch which is in goodagreement with psychophysical data.In figure 6 the presence of an outputon element q; would correspond tothe perception of pitch at a frequency1

Ti

Music and Language

Figure 7 suggests how a hierarchyof phase-lock loops might interact torecognize the variety of periodicitieswhich provide the information con-tent in spoken language and music.The coefficients that q; obtained fromthe lowest level loop form the input(together with other variables) to thesecond level.

If we assume that the sensory inputto the first level consists of a patternrich in information, such as music orspeech, then as time progresses thetrajectory of the input vector to thesecond level will also contain manyperiodicities. The principal differencefrom the standpoint of informationtheory is that the periodicity is nowon the order of 0.05 seconds to 0.5seconds. The trajectory input to thesecond level can, of course, be sub-jected to a quite similar mathematicalanalysis as were the trajectories ofhair cell distortions and cochlear elec-trical stimulation which were input tothe first level.

The principal difference is that atthe second level and higher, informa-

tion can be encoded for neural trans-mission by pulse-frequency ratherthan pulse-phase modulation. Also,some of the mechanisms by whichtime integrals are computed may bedifferent. Nevertheless, processing bya CMAC G function can transformsections of the input trajectory intooutput vectors so as, in effect, to givethem names. Characteristic patterns,or periodicities, at the second levelare named notes, when the sensorystimulus is music. Where the stimulusis spoken language, they may becalled phonemes.

The output of the second levelforms part of the input to the third.The G function at the third level com-putes the names of strings ofphonemes which it calls words, orstrings of notes which it calls tunes.The G function at the fourth levelcomputes names of strings of wordswhich it calls sentences (or ideas),strings of tunes which it calls musicalpassages, etc. In music, the pattern inwhich the different periodicitiesmatch up as multiples and sub-multiples (ie: the beat, notes, variousvoices, melodies, and chord se-quences) comprise the inner struc-ture, harmony, or "meaning." Theability of the sensory processing-generating hierarchy of the listener tolock on to the periodicities and har-monies at many different levels (andhence many different periodic inter-vals) is the ability to "appreciate" or"understand" the music.

Similarly in speech the ability ofthe audio-processing hierarchy tolock on to periodicities at each level,and to detect or recognize and pass onto the next level the information bear-ing modulations or deviations inthose periodicities, constitutes theability to "understand" what isspoken. If the audio system locks ononly at the first level, it detectsphonetic sounds but not words. If itlocks on the first two levels but nohigher, it detects words but not mean-ingful phrases. If, however, the audiohierarchy locks on at the third,fourth, fifth, and higher levels, thereis excited in the mind of the listenermany of the same trajectories and se-quences of interrelated and harmon-ious patterns (ie: goals, hypotheses,sensory experiences) as exist in themind of the speaker.

This gives the speaker the ability totransmit messages and, even moreimportant, to manipulate the mind of

76 August 1979 © BYTE Publications Inc

the listener to achieve his own goals.He can recruit help, enlist sympathy,give orders, and transmit all forms ofsophisticated signals related todominance, submission, and socialinteraction. Furthermore, by thismechanism he can induce into thehighest levels of the sensory process-ing hierarchy of the listener recalledmemories of his own experience. Hecan tell tales, relate stories, andthereby provide others with second-hand information as to whatstrategies and goal decompositionrules he personally has found to besuccessful.

Origin of Language

One of the most basic features oflanguage is that it is a form ofbehavior. That seems an obviousthing to say, but evidently it is not.Many experts feel that because lan-guage is connected with the intellect(ie: a higher function) it is quitedivorced from mere motor behavior.However, there is no such thing asmere motor behavior. All behavior isthe final output trajectory in thedecomposition of high level goals.The intellect is not something distinctfrom behavior. It is the deep structureof behavior. It is the set of nonter-minal trajectories which generate andcoordinate what finally results in thephenomena of purposive or inten-tional action.

Language is certainly like otherbehavior in that it results from thecoordinated contractions of muscles;in the chest, throat, and mouth. Likeany other behavior such as walking,dancing, making a tool, or huntingfor prey, language is both learned andgoal directed.

The infant is born with only themost basic verbal reflexes. At firstprimitives are learned (coos, gurgles,cries, and phonetic sounds of varioustypes), then strings of primitives(words), and finally strings of strings(phrases), etc. The sensory processingsystem stores (ie: records) soundsfrom the environment as Rj trajec-tories. Later the behavior-generatingsystem learns to produce verbal out-puts which mimic or duplicate thesestored trajectories.

As with all behavior, the purposeof language is to obtain reward, toavoid punishment, and to achievesuccess in the social dominancehierarchy. The unique feature oflanguage behavior is that it allows

CONCEPTDETECTED

LANGUAGE GOALTO BE ENCODED

PHRASE ERROR

PHRASE

DETECTED

PREDICTED PHRASE

PHRASE SELECTED

WORD ERROR

WORD

DETECTED

PREDICTED WORD

PITCH ERROR

PHONEME

(PITCH)

DETECTED

PREDICTED PHONEME (PITCH)

PHASE ERROR

PREDICTED FREQUENCY

FREQUENCYDETECTED

FROM STRETCHRECEPTORSIN MUSCLES

ACTIONCOMMAND

LUNGS, LIPSLARYNX.TONGUE

VOICEOUTPUT

Figure 7. A crosscoupled hierarchy in the hearing-speech system. The generating hierar-chy decomposes language goals into strings of verbal output. When speech is beinggenerated, the sensory processing hierarchy provides feedback to control intensity andmodulation. When listening only, the generating hierarchy provides hypotheses andpredictions for use in detecting, recognizing, following, and understanding the sensoryinput.

communication between individualsto enlist help, to issue commands, toorganize group behavior, and toreceive feedback information fromthe sensory experiences of others.

Writing

Certainly written language, atleast, had its origins in goal-seekingactivities. For example, the earliestwriting in China began around 2000BC as ideograms or symbols, engrav-ed on bones and shells for the purposeof asking questions of heaven. Eachstroke or series of strokes asks a cer-tain question or seeks guidance for aparticular branch point in thebehavioral trajectory of the life of theasker.

The earliest of all known writing is

the Uruk tablets discovered in theMideast and dated about 3100 BC.This writing appears to be almostexclusively a mechanism for recor-ding business transactions and landsales. These written symbols are nowthought to be pictorial lists of tokensused for keeping track of merchandiseor livestock. The tokens themselvesfirst appeared 5000 years earlier dur-ing the beginning of the Neolithicperiod in Mesopotamia when humanbehavior patterns related to huntingand gathering were being replaced byothers related to animal husbandry,agriculture, and the village marketplace.

This token method of accountingapparently served its purpose well,for the system remained virtually un-

August 1979 © BYTE Publications Inc 77

changed for about 5 millennia untilthe early Bronze Age when cities andcity-states became the most advancedsocial organizations, and commercegrew into a large scale and complexenterprise. Then the requirements formore efficient accounting proceduresled to the pictorial listing of tokens bywriting on tablets — an early form ofdouble-entry bookkeeping.

Once skill in this form of writingbecame widespread and commonlypracticed, only a few additional sym-bols and some rules of syntax were re-quired to express decrees, recorddates, and relate accounts of signifi-cant events.

Thus, the language skill of writing

evolved in small increments overmany generations from the goaldirected manipulation of physical ob-jects; first the objects themselves,then token objects, and finally imagesor symbols representing the tokens.The meaning of the symbols, as wellas the rules of syntax, were obviousto anyone having an everyday fami-liarity with the manipulation rules fortokens. These in turn mimicked therules for manipulation of the objectsof merchandise. The manipulation ofsymbols in written language is a formof goal-seeking behavior whichevolved from, and remains similar to,the manipulation of physical objects.Skill in writing, as any other com-

64KB MICROPROCESSORMEMORIES

S-100- $750.00LSI - $750.00

> mm

CI-S100 64K x 8

-■■iniiiiiiiii

■mum

Iiiiiiiii

CI-1103 32K x 16

CI-6800 64K x 8

CI-8080 64K x 8

• SBC 80/10-$750.00

• 6800-$750.00

CI-S100 — 64K x 8 on a single board.Plugs directly into the IMSAI, MITS,TDL, SOL and most other S-100 Buscomputers. No wait states even withZ80 at 4Mhz. Addressable in 4K in-crements. Power requirement 6 watts.Price $750.00.

CI-1103 — 8K words to 32K words in asingle option slot. Plugs directly intoLSI 11, LSI 11/2, H11 & PDP 1103.Addressable in 2K increments up to128K. 8K x 16 $390.00. 32K x 16 $750.00qty. one.

CI-6800 — 16KB to 64KB on a singleboard. Plugs directly into Motorola'sEXORcisor and compatible with theevaluation modules. Addressable in4K increments up to 64K. 16KB $390.00.64KB $750.00.

CI-8080 — 16KB to 64KB on singleboard. Plugs directly into Intel's MDS800 and SBC 80/10. Addressable in4K increments up to 64K. 16KB $390.00.64KB $750.00

€

Tested and burned-in. Full year warranty.

Chrislin Industries, Inc.

Computer Products Division

31352 Via Colinas • Westlake Village, CA 91361 • 213-991-2254

plex goal-seeking activity, is acquiredthrough painstaking training, endlesspractice, and numerous corrections ofmistakes by a teacher. It is learned instages, the lowest level primitivesfirst (forming letters), then strings ofprimitives (words), then strings ofstrings (sentences), and so on. Onlywhen the rules of spelling, grammar,and composition are more or lessmastered can the scribe express or en-code a thought (ie: a high level trajec-tory) into a string of written symbols.

Speech

The origin of speech is much lesscertain since it dates from an earlierperiod. In fact, if we include thesounds of whales, animals, birds, andeven insects as a form of speech,spoken language predates the originof humanity itself. Surely any be-havior pattern which communicates athreat, signals submission, expressesfear or acceptance, is a form of lan-guage whether it be audible speech orsign language, whether it be express-ed by a mouse or a human. By thisdefinition, some speech is very simple— a single facial expression, gesture,chirp, growl, or squeak for each emo-tional state encoded or intent express-ed. Throughout the animal kingdomhowever, there exists a great varietyof modes of expression and many dif-ferent levels of complexity. Clearlysounds such as the growls, whines,barks, and howls of the wolf expressan extremely complex variety ofsocial communications. One can easi-ly feel caught up in a primitive com-munity sing-along when listening to arecording of a wolf-pack chorus.

As we ascend the ladder of be-havioral complexity, we find a cor-responding increase in the ability tocommunicate complex messages. Inmost cases this appears to be not somuch an increased vocal capacity asan increased complexity of deepstructure underlying overt behavior.This implies that the ability to speakderives, first of all, from havingsomething to say (ie: from having in-ternal trajectories of sufficient com-plexity that to attach facial expres-sions, gestures, and audible sounds tothem results in complex and subtlemessages).

Primitive Human Speech

The most ancient forms of humanspeech that survive today are thetribal dances of the few remaining

78 August 1979 © BYTE Publications Inc

Circle 47 on inquiry card.

SYNCHRO-SOUND

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

Compare PRICE, QUALITY, DELIVERY, SERVICE and ^^^^

Compare

you'll see why you don't have to look anyplace else!

SOFTWARE

ONtf

s^GLt(

VJe

canV

.*»*•<***!

\ns

■truroe"

ASP'

odocts

155**

zp&

\ov P«ces

rtAZE^116

S\EGtf*

AA00--

AAAO-

A500--

tot P1*88,

Jlew are nine Pacl<ages theenable you to make full usethe potential in your smallcomputer 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

com

SUA25- \ tot 91*2-

\ prvces

TtU^pE

A3---

tot P»ce

CB0W6«C°

OuaWt 'townee

MORE SPECIALS

M\\cfo. \ fcfcU-779-2- \ w

703-0--J v

1 Our Prices are too low to advertise. Please call or write.

We now carry a full line of

Alpha —Micro Products

Decwriterll $1595.00

Qume Sprint 5/45

R0 2795.00

Persci 277 Dble

Density 1395.00

lmsaiPCS80/15 599.00

I Anadex DP 8000

Printer 995.00

44 Column Printer ..

Livermore Accoustic

Coupler

Javelin 9" Monitor .

Centronics

Micro P-1 Printer .

$295.00

249.00.159.95

495.00

We have a full staff of Programmers and ComputerConsultants to design, configure and deliver a TurnkeyComputer System to meet your specific requirements.

SYNCHRO-SOUND

The Computer People

193-25 Jamaica Avenue, Jamaica, New >brk 11423

212/468-7067 TWX 710-582-5886

ENTERPRISES, INC.

Hours 9-4 Dailyand Saturday

Visit our new showroomWorking units on display

BankAmericard Master Charge

Circle 355 on inquiry card.

BYTE August 1979

stone-age peoples. In such rites, infor-mation on vital subjects such as hun-ting (including the habits, ferocity,and vulnerable areas of the prey), theproper techniques of stalking, usingweapons, etc, are conveyed by dance,symbolic gestures, pantomime,songs, and shouts, as the huntersrelate (indeed reenact) the exploits ofthe hunt. The storytellers replay thebehavioral trajectories of their ownactual hunting experience and attachverbal symbols and gestures to theportions which cannot be literallyacted out.

Even in modern cultures, the ma-jority of everyday speech consists ofrelating experiences ("...he did this,and I said that...," etc). This is simplythe straightforward encoding of be-havioral trajectories, or the recalledsensory experiences addressed bythose behavioral trajectories, into astring of language tokens or symbolssuch as gestures, vocal cord, tongue,and lip manipulations. Thus, in thefinal analysis, all language is a formof goal-directed manipulation oftokens and symbols. The ultimateresult is a manipulation of the minds,

and hence the actions, of other mem-bers of the society. Language is a toolby which a speaker can arouse or im-plant in the listener a great variety ofbehavioral goals, hypotheses, andbelief structures. By the use of thesemeans, a speaker can command, in-struct, threaten, entertain, or chastiseother persons in his group to his ownbenefit and for his own ends.

The implication for research inlanguage understanding is that thereis much to be learned from the rela-tionship between language and otherforms of behavior. How, for exam-ple, can behavioral goals and trajec-tories be encoded into strings oflanguage symbols for making re-quests, issuing commands, andrelating sensory experiences? Howcan patterns of trajectories be en-coded and transmitted by oneprocessing-generating hierarchy so asto be received and reconstructed byanother?

Clearly, language recognitiondepends on many of the same mecha-nisms by which the rhythms, perio-dicities, and harmonic patterns ofmusic, song, and poetry are recog-

nized, tracked, and predicted at manydifferent levels. Consider thatchildren are fascinated by rhythmicalsounds, rhymes, and the repetition offamiliar stories. Why do adolescentsfind it so rewarding to hear the samepopular song over and over? Is it notthe predictability, the lock-on whichcan be achieved due to a correspon-dence between the stored internalmodel and the observed sensory datastream? And why are the rhythmicmovements of dancing and marchingto music so compelling? Is it not thecorrelations and harmonic relation-ships between trajectories in thebehavior-generating and sensory-processing hierarchies?

Music is a relatively simple domainfor the study of the time dependentinteractions between stored modelsand input data, and the study ofmusic recognition by computer in analmost completely unexplored field.Thus, it is a fertile area for computerhobbyists and other researchers withlimited resources.

Part 4 will discuss some operationsof the highest hierarchical level suchas will, emotion, and creativity.*

SINEWAVEMARKET

ANALYSIS

CAN YOU USE YOUR MICROCOMPUTER TOOUTWIT THE STOCKMARKET?

Stockmarket cycles and sinewave forms have been correlated with fascinating results. Forecasts with unusually lowprediction error can now be made. They were developed by a degreed engineer who possesses a rare mathematicalmind and has nineteen years experience with business computer applications. An early interest in the stockmarketled him to the striking similarity between sinewave forms and stockmarket cycles. For two decades he studied themarket and collected data. But, it wasn't until he recently acquired his own microcomputer that it became feasableto make the necessary correlations.

HE RESULTS • His programs, contain multiple sinewave functions AND make twenty-four month projectionsthat yield prediction errors of less than 31/2% over the 40 years of historical base data. Althoughhe makes no claims about the predictive accuracy of this method for the future, he is doubtfulthat anyone can develop a more accurate mathematically based predictive tool.• A programmed trading method that utilizes projections of the historical data to select buy/sellopportunities. Annual yields of 25% were derived from trades over the 40 year historical{J period.

THIS IS THE MOST IDEAL AND PRACTICAL APPLICATION FOR MICROCOMPUTERS DEVELOPED TO DATE!

• It is not a "kids" game designed to occupy idle time.

* II [S an unusual challenge for anyone who wants real action.

HERES WHAT WE'LL SEND YOU

ON 514" DISCETTE & LISTING FOR $35

• Monthly New York Stock Exchange Index(Average of Friday Closes — 1939 to Present)

• Programs to Project NYSE Index into Infinite Future(User instructions included)

• Trading Program for Future Projections(User instructions included)

• All available in North Star Basic orother by special arrangement.

SMA;P.O.

Name

ORDER DIRECTBox 415; Burlington, Iowa 52601

1

Street

City, State, ZipCredit Card No.Signature

Fvp Date

[J Check

a Money Order

| VISA ] [ MC ] | AM EX [ [ OINEA ]

a a a a

80 August 1979 © BYTE Publications Inc

Circle 330 on inquiry card.

FOR PERSONAL COMPUTER USERS

nmpuatiLini^

A newquarterly bythe staff of BYTE

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

Compiled and edited by ttie staff of BYTE, latest developments covered in onComputingwill include creative uses of the small computer, books for the computer user, how andwhere to buy your personal computer and numerous features concerning ttie fascinatingworld of the microprocessor.

Add onComputing to your library of 'must' publications. Act now, subscribe and

receive four (4) issues ■. S8.S0 fo< one vear (U.S.): Carv.cM dnd Mexico: $10.00,

onmntiii

GUIDE TO PERSONAL ^ COMPUTING

SUBSCRIBE NOW! COMPLETE AND MAIL ATTACHED POSTAGE PAID REPLY CARD

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

TM

Exploring TRS-80 Graphics

George H Yeager

223 Riverside Dr

St Albans VW 25177

A

CONTROL BYTE

\

DIGIT I

^^

DIGIT 2

8'

GRAPHIC MODE-

2'

8

I SETS A CELL ELEMENT ON"0" RESETS A CELL ELEMENT

1

2

4

8

r

2'

Figure 1: Cellular division of a graphics cell on the video display screen. The controlbyte is divided into 2 hexadecimal digits. Individual bits of digit 1 are marked withprimes (!'), and bits are designated by their corresponding power of 2 (rather thansequentially). Bit 8' controls the graphics mode. Bit 4' (marked X) is not used.

Radio Shack seems to hide the neatlittle jewels of information a hobbyistneeds to make a treasure of theTRS-80. One jewel is how to use thecomputer's graphics capability onceyou squeeze into the world ofmachine language by use of theT-BUG monitor. Beyond the excellentLevel 1 User's Handbook, there hasbeen little information until recently.

Between sessions of disassemblingthe undocumented control routinesfor keyboard, video, and cassette, Iemployed a "crystal ball" to unravelthe mystery of machine languagegraphics control. (TRS-80 ownersmust be resourceful.) Here is what Ifound.

First, video display is in mainmemory address space and residesbetween hexadecimal locations 3C00to 3FFF. Address 3C00 corresponds tothe upper left corner of the monitorscreen and 3FFF to the lower rightcorner. Anything placed in this blockof memory will appear on the displayat a specific cell (section of displaygrid) as a dot-matrix alphanumericcharacter or as a 6 element graphiccharacter (the TRS-80 hardware doesthat).

The Radio Shack video displaywork sheet shows the location of eachof the 1024 cells in the video displayformat. There are 64 cells per line and16 lines on the page. Figure 1 showshow each cell is divided into sixelements for graphics. The bottomtwo elements are always dark in thealphanumeric mode, providing linespacing.

To activate the graphics mode for a

82 August 1979 © BYTE Publications Inc

Circle 144 on inquiry card.

Enterprise

4500

CD

Call show three; we came here with * Enterprise*

4501

OE

H L pointing to symbol table and D E

4502

45

pointing to graphic cell memory location.

4503

3E

Get constant to point to next line start

4504

3D

4505

83

Add it to cell location

4506

5F

Save new LSB line start ADR

4507

30

Jump if no carry

4508

01

4509

24

Increment H if L carried

450A

CD

Call show three

450B

OE

450C

45

450D

C9

Return to caller

450E

01

*show three*

450F

03

Set B, C to three characters

4510

00

4511

ED

Transfer three characters

4512

BO

4513

C9

Return

4514

AO

Graphic symbol table

4515

AB

For Enterprise

4516

A1

For Enterprise

4517

8A

For Enterprise

, 4518

83

For Enterprise

4519

8B

For Enterprise

Listing 1: Demonstration routine for TRS-80 graphics in Z-80 machine language, for usewith T-BUG or other monitor. This displays the starship Enterprise. Call this as asubroutine after preserving necessary registers. In the subroutine, registers H and L holdthe output table pointer. Registers D and E contain the upper left corner location ofgraphic symbol within the display memory. Registers A, B, C, D, E, H, and L will bealtered. This is meant only as a demonstration; it may not be general enough for other

specific cell on the screen, data with avalue of hexadecimal 80 or abovemust be placed into the memory loca-tion with which it corresponds. Themost significant bit of the byte setsthe graphics mode; placing a value of7F or lower in a location activates thealphanumeric mode for the relatedcell.

Looking at figure 1, note that bits1' and 2' of digit 1 control the bot-tom two elements in the cell. (Theseread as "one prime" and "two prime";primes indicate digit 1.) Note alsothat bits 1, 2, 4, and 8 of digit 2 con-trol the top four cell elements. In thegraphics mode, bit 4' is a "don't care"(ie, it is not used). If the cell elementcontrol bit is set to a 1, the elementwill be lit on the screen. If the elementcontrol bit is reset to 0, the elementwill not be lit.

The element control bits are iden-tified in figure 1 by their decimalweight. The sum of the bits set to 1 in

each section of the cell can be con-verted to hexadecimal to determinethe code for each digit in the graphiccontrol byte. Figure 2 (on page 84)shows all graphic characters and theproper generation codes, so thatmanipulation may be made easier.

The system is simple and flexible,allowing many shapes to be generatedwith one byte of code. It is unfor-tunate that the cell shape is unsym-metrical, thus complicating rotationand transformation of graphicdisplays. However, the mystery isnow solved. A whole new world ofmore finely detailed and fasterdisplays is available for TRS-80 fans.

I have provided a small demonstra-tion program shown as listing 1. Run-ning it under T-BUG will give an ideaof the capabilities provided bymachine language control of theTRS-80 graphics. Good luck, and letme know what you find out fromyour crystal ball.

16K Static RAMBoards for the <SS-50 Bus ^

• Gold bus connectors

• 4 separate 4K Blocks

• Individual Addressing,Write Protect, and Enable/Disable for each block Memories

s29813

As above with

Sockets and

Software

control

features.

s36816

All GIMIX memory boards are assembled,

Burnt-ln for 2 weeks, and tested at 2 MHz.

Add $32.00 for 250 ns parts

Tl TMS 4044'S — 10% SUPPLY

(Not an "equivalent", but the real thing!)

450 ns $5.00 each 250 ns $6.00 each

8K PROM BOARD $98.34

2708s $7.90 each

SS 50 BUS 80 x 24VIDEO BOARD

With hardware scrolling, x-y addressable cursor andmultiple character generators. It includes a TMS 2716EPROM that contains a full 128 upper and lower caseASCII character set with true descenders; plus a socketfor another TMS 2716 for an optional 128 character set;plus 2K of RAM for user-defined programmablecharacter sets. This gives the user the ability to createhis own heiroglyphics, alphabet, graphic elements, etc.,and store them on PROM, disk, or tape.

The user can choose and intermix 384 differentcharacters from any or all of the character generatorsand display up to 256 at one time, normally or inversely,and at full or half intensity, at any location on thescreen. Contiguous 8x10 character cells permit solidlines and connecting patterns with user definablegraphic elements.

It is addressable to any 2K boundary. GHOSTable ad-dressing allows multiple boards at the same address,making it ideal for multi-user applications. The availablesoftware includes a GMXBUG video based 3K ROMmonitor, stand alone driver routines, and a program tocreate user defined characters.

DELUXE VERSION $458.76

Other Video Boards from $198.71

16K SYSTEMS $1294.29

Includes: Mainframe cabinet, mother

board, power supply, fan, CPU, 16K static

RAM, and choice of 1/0 card.

Other packages available.

Add $10. handling charge on orders under $200.

inc.

Gimix

1337 WEST 37th PLACECHICAGO, ILLINOIS 60609(312) 927-5510 • TWX 910-221-4055

The Company that delivers.

Quality Electronic products since 1975.

August 1979 © BYTE Publications Inc 83

> 2a

f

i

cSI

£

ill

I 80 81 82 83 84 85

86

P

■y a

I

87 88 89 8A 8B 8C 80

nun

8E 8F 90 91 92 93 94

95 96 97 98 99 9A 9B

11119 5

9C 90 9E 9F A0 Al

A2

2b

s

9 911

A3 A4 A5 A6 A7 AS A9

nHl.

AA AB AC AO AE AF 80

r a

Bl B2 B3 84 BS 86

L L L C

84 BS 86 B7

1

lill

88 B9 BA BB BC BO BE

BF

Figure 2: Graphic patterns produced by values from hexadecimal 80 to BF. If you wish to use POKE graphics in Level II BASIC, you need toconvert the values from hexadecimal to decimal.

BOOKS OF INTEREST TO COMPUTER PEOPLE"

More BYTE

:<§:•

S

in your future

Circle 36 on inquiry card.

BYTE August 1979 85

And the future

THE BYTE BOOK OF COMPUTER MUSIC combinesthe best computer music articles from past issues ofBYTE Magazine with exciting new material—all writtenfor the computer experimenter interested in thisfascinating field.

You will enjoy Hal Chamberlin's "A Sampling ofTechniques for Computer Performance of Music",which shows how you can create four-part melodieson your computer. Forthe budget minded, "A$19 MusicInterface" contains practical tutorial information—andorgan fans will enjoy reading "Electronic Organ ChipsFor Use in Computer Music Synthesis".

Mew material includes "Polyphony Made Easy" and"A Terrain Reader". The first describes a handy circuitthat allows you to enter more than one note at a timeinto your computer from a musical keyboard. The"Terrain Reader" is a remarkable program that createsrandom music based on land terrain maps.

Other articles range from flights of fancy about thereproductive systems of pianos to Fast Fourier trans-form programs written in BASIC and 6800 machinelanguage, multi-computer music systems, WalshFunctions, and much more.

For the first time, material difficult to obtain has beencollected into one convenient, easy to read book. Anardent do-it-yourselfer or armchair musicologist willfind this book to be a useful addition to the library.

$@&

ISBN 0-931718-11-2Editor: Christopher P. MorganPages: approx. 128Price: $10.00

ifUflffELII Ml*

SUPERWUMPUS is an excit-ing computer game incorpo-rating the original structure ofthe WUMPUS game alongwith added features to makeit even more fascinating. Theoriginal game was describedin the book What To Do AfterYou Hit Return, published bythe People's Computer Com-pany. Programmed in both6800 assembly language andBASIC, SUPERWUMPUS is not only addictively fun,but also provides a splendid tutorial on setting upunusual data structures (the tunnel and cave systemof SUPERWUMPUS forms a dodecahedron). This is aPAPERBYTE™ book.

ISBN 0-931718-03-1Author: Jack EmmerichsPages: 56Price: $6.00

L5?

J

TINY ASSEMBLER 6800,Version 3.1 is an enhancementof Jack Emmerichs' success-ful Tiny Assembler. The origi-nal version (3.0) was describedfirst in the April and May 1977issues of BYTE magazine,andlaterinthePAPERBYTE™book TINY ASSEMBLER6800 Version 3.0.

In September 1977, BYTEmagazine published an articleentitled, "Expanding The Tiny Assembler". This pro-vided a detailed description of the enhancementsincorporated into Version 3.1, such as the addition of a"begin" statement, a "virtual symbol table", and alarger subset of the Motorola 6800 assembly language.

All the above articles, plus an updated version of theuser's guide, the source, object and PAPERBYTE™bar code formats of both Version 3.0 and 3.1 make thisbook the most complete documentation possible forJack Emmerichs' Tiny Assembler.

ISBN 0-931718-08-2Author: Jack EmmerichsPages: 80Price: $9.00

A walk through this book brings you into Ciarcia'sCircuit Cellar for a detailed look at the marvelousprojects which let you do useful things with your micro-computer. A collection of more than a year's worth ofthe popular series in BYTE magazine, Ciarcia's CircuitCellar includes the six winners of BYTE's On-goingMonitor Box (BOMB) award, voted by the readersthemselves as the best articles of the month: Controlthe World (September 1977), Memory Mapped IO(November 1977), Program Your Next EROM in BASIC(March 1978), Tune In and Turn On (April 1978), TalkTo Me (June 1978), and Let Your Fingers Do the Talking(August 1978).

Each article is a complete tutorial giving all the detailsneeded to construct each project Using amusinganecdotes to introduce the articles and an easy-goingstyle, Steve presents each project so that even aneophyte need not be afraid to try it

^21

ISBN 0-931718-07-4Author: Steve GarciaPages: approx. 128Price: $8.00

is right now!

B ASEX, a new compact, compiled language for micro-computers, has many of the best features of BASICand the 8080 assembly language—and it can be runon any of the 8080 style microprocessors: 8080, Z-80,or 8085. This is a PAPERBYTE™ book.

Subroutines in the BASEX operating system typicallyexecute programs up to five times faster than equiva-lent programs in a BASIC interpreter—while requiringabout half the memory space. In addition, BASEX hasmost of the powerful features of good BASIC inter-preters including array variables, text strings, arithme-tic operations on signed 16 bit integers, and versatileIO communication functions. And since the two lan-guages, BASEX and BASIC, are so similar, it is possibleto easily translate programs using integer arithmeticdata from BASIC into BASEX.The author, Paul Warme, has also included a BASEXLoader program which is capable of relocating pro-grams anywhere in memory.

\ggH

ISBN 0-931718-05-8Author: Paul WarmePages: 88Price: $8.00

,.il»4u»'

PROGRAMMING TECH-NIQUES is a series of BYTEBOOKS concerned with theart and science of computerprogramming. It is a collectionof the best articles from BYTEmagazine and new materialcollected just for this series.Each volume of the seriesprovides the personal com-puter user with backgroundinformation to write and main-tain programs effectively.

The first volume in the Programming Techniquesseries is entitled PROGRAM DESIGN. It discussesin detail the theory of program design. The purposeof the book is to provide the personal computer userwith the techniques needed to design efficient, effec-tive, maintainable programs. Included is informationconcerning structured program design, modular pro-gramming techniques, program logic design, andexamples of some of the more common traps thecasual as well as the experienced programmer mayfall into. In addition, details on various aspects of theactual program functions, such as hashed tables andbinary tree processing, are included.

ISBN 0-931718-12-0Editor: Blaise W. LiffickPages: 96Price: $6.00

SIMULATION is the second volume in the Program-ming Techniques series. The chapters deal withvarious aspects of specific types of simulation. Boththeoretical and practical applications are included.Particularly stressed is simulation of motion, includingwave motion and flying objects. The realm of artificialintelligence is explored, along with simulating robotmotion with the microcomputer. Finally, tips on howto simulate electronic circuits on the computer aredetailed.

ISBN 0-931718-13-9Editor: Blaise W. LiffickPages: approx. 80Price: $6.00Publication: Winter 1979

RA6800ML: AN M6800 RELOCATABLE MACROASSEMBLER is a two pass assembler for the Motorola6800 microprocessor. It is designed to run on a mini-mum system of 16 K bytes of memory, a systemconsole (such as a Teletype terminal), a system monitor(such as Motorola MIKBUG read only memory pro-gram or the ICOM Floppy Disk Operating System),and some form of mass file storage (dual cassetterecorders or a floppy disk).

The Assembler can produce a program listing, a sortedSymbol Table listing and relocatable object code. Theobject code is loaded and linked with other assembledmodules using the Linking Loader LINK68. (Refer toPAPERBYTE™ publication LINK68: AN M6800LINKING LOADER for details.)

There is a complete description of the 6800 Assemblylanguage and its components, including outlines ofthe instruction and address formats, pseudo instruc-tions and macro facilities. Each major routine of theAssembler is described in detail, complete with flowcharts and a cross reference showing all calling andcalled-by routines, pointers, flags, and temporaryvariables.

In addition, details on interfacing and using theAssembler, error messages generated by the Assem-bler, the Assembler and sample IO driver source codelistings, and PAPERBYTE™ bar code representationof the Assembler's relocatable object file are all included.This book provides the necessary background forcoding programs in the 6800 assembly language, andfor understanding the innermost operations of theAssembler.

ISBN 0-931718-10-4Author: Jack E HemenwayPages: 184Price: $25.00

to order books see next page

LINK68: AN M6800 LINKING LOADER is a one

pass linking loader which allows separately translatedrelocatable object modules to be loaded and linkedtogether to form a single executable load module, andto relocate modules in memory. It produces a load mapand a load module in Motorola MIKBGG loaderformat.The Linking Loader requires 2 K bytes of memory, asystem console (such as a Teletype terminal), a sys-tem monitor (for instance, Motorola MIKBGG readonly memory program or the ICOM Floppy DiskOperating System), and some form of mass file stor-age (dual cassette recorders or a floppy disk).It was the express purpose of the authors of thisbook to provide everything necessary for the userto easily learn about the system. In addition to thesource code and PAPERBYTE™ bar code listings,there is a detailed description of the major routines ofthe Linking Loader, including flow charts. While imple-menting the system, the user has an opportunity tolearn about the nature of linking loader design as wellas simply acquiring a useful software tool.

ISBN 0-931718-09-0Authors: Robert D. Grappel& Jack E. HemenwayPages: 72Price: $8.00 Winter 1979

TRACER: A 6800 DEBUGGING PROGRAM is for

the programmer looking for good debugging software.TRACER features single step execution using dynamicbreak points, register examination and modification,and memory examination and modification. This bookincludes a reprint of "Jack and the Machine Debug"(from the December 1977 issue of BYTE magazine),TRACER program notes, complete assembly andsource listing in 6800 assembly language, objectprogram listing, and machine readable PAPERBYTE™bar codes of the object code.

ISBN 0-931718-02-3Authors: Robert D. Grappel& Jack E. HemenwayPages: 24Price: $6.00

MONDEB: AN ADVANCED M6800 MONITOR-DEBUGGER has all the general features of Motorola'sMIKBGG monitor as well as numerous other capabili-ties. Ease of use was a prime design consideration.The other goal was to achieve minimum memoryrequirements while retaining maximum versatility.The result is an extremely versatile program. The sizeof the entire MONDEB is less than 3 K

Some of the command capabilities of MONDEB in-clude displaying and setting the contents of registers,setting interrupts for debugging, testing a program-mable memory range for bad memory locations,changing the display and input base of numbers,displaying the contents of memory, searching for aspecified string, copying a range of bytes from onelocation in memory to another, and defining the loca-tion to which control will transfer upon receipt of aninterrupt. This is a PAPERBYTE™ book.

ISBN 0-931718-06-6Author: Don PetersPages: 88Price: $5.00

BAR CODE LOADER. The purpose of this pamphletis to present the decoding algorithm which was de-signed by Ken Budnick of Micro-Scan Associates atthe request of BYTE Publications, Inc., for the PAPER-BYTE™ bar code representation of executable code.The text of this pamphlet was written by Ken, andcontains the general algorithm description in flowchart form plus detailed assemblies of program codefor 6800, 6502 and 8080 processors. Individuals withcomputers based on these processors can use thesoftware directly. Individuals with other processors canuse the provided functional specifications and detailexamples to create equivalent programs.

ISBN 0-931718-01-5Author: Ken BudnickPages: 32Price: $2.00

BYTE BOOKS Division • 70 Main Street • Peterborough, New Hampshire 03458

Please send the books I have checked.

□ Computer Music $10.00

□ SCIPERWUMPCIS $6.00

D Tiny Assembler (3.1) $9.00

□ Circuit Cellar $8.00DBASEX$8.00

D Program Design $6.00

□ Simulation $6.00

□ RA6800ML$ 25.00

□ Link68$8.00

□ TRACER $6.00

□ Mondeb$5.00

D Bar Code Loader $2.00

□ Check enclosed □ Bill Visa □ Bill Master Charge

Card No.

Exp. Date

Total BooksAdd 60« per bookPostage/Handling

. Grand Total

Name

Company

Street

City

State/Province

88 BYTE August 1979

Circle 36 on inquiry card.

iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiMiiiiiiiiiiiiiiiiiiimiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiimiii iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiimiiiiiiiiimiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiimi m iiiiiim

BYTE News ....

illlllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllillllllllllllllllllllllllllllllllllllllllltlllUIIIIIIIIIIIIIIIIIIlllllllllllilllllllllllllllllllllllllllllllllllllllllltllllllllllllllllllllllllllllllll

BUBBLE MEMORY ARRIVES FOR PERSONAL COMPUTERS. Rockwell International has introduced abubble memory board for a personal computer system. The board contains 128 K bytes of storage andplugs directly into the expansion bus for the AIM-6502 processor (which is the same as the KIM-1bus). Rockwell also supplies a controller card which allows the bubble memory to function as a floppydisk replacement. The controller will control up to 16 memory boards for a total of 2 M bytes of bub-ble memory. However, before you rush out to buy it, be aware that each bubble memory board costs$2500 and the controller board costs $1000.

Intel and National will also soon become manufacturers of bubble memory. Texas Instruments andRockwell are currently supplying bubble memories. Texas Instruments and Rockwell devices contain256 K bits. The Intel device, which will be in volume production in early 1980, will contain 1 M bits,while the National device will contain 256 K bits. Texas Instruments and Rockwell have been produc-ing limited quantities of the bubble memory devices and they do not expect to begin volume produc-tion until 1980. Furthermore, one Japanese manufacturer, Fujitsu, appears to be near bubble memoryintroduction.

MORE LARGE COMPANIES RUMORED ABOUT TO ENTER PERSONAL COMPUTER MARKET.Rumors continue that RCA, Hewlett-Packard and Zenith are seriously considering entering the per-sonal computer market. Each is known to have a personal computer system development project inprogress. Other companies seriously investigating the market include IBM and Bell Labs, each ofwhich is known to have personal computer projects at the research facilities.

Several Japanese companies also introduced personal computer systems at the June NCC show inNew York, Matsushita introduced its JD-700 to sell for $5,000 to $6,000. It has a 2 K byte read onlymemory, two minifloppies, and a printer, and it uses Extended BASIC. Sord introduced the M200($6,000 to $7,000), which uses a Z-80 with 64 K memory, up to four minifloppy drives, and BASIC,FORTRAN, or COBOL. Ai Electronics showed its APC-20 ($7,500) which is Z-80 based, has two 5inch drives and hardware arithmetic, and has software options which include FORTRAN, BASIC,COBOL, PL/3 and CP/M.

DIGITIZED HI-FI ON THE HORIZON. An industry group called the "Digital Audio Disk Council" wasformed in late 1978 to establish guidelines and standards for pulse code modulation (PCM) recor-dings. The council includes 35 companies and is an international group. The standard is expected tobe adopted in one to two years.

It is expected that pulse code modulation recordings will be the next generation of super hi-fi disks.The technique provides wider frequency response and greater dynamic range, and virtuallyeliminates distortion and noise. The record will also include an address code for random access ofselections. Applications to published software products may well impact the small computer field.

INTEL RETIRES THE 1103. Intel has finally retired the 1103 dynamic memory which houses 1 K bits.This was Intel's first successful MOS memory product and it was a pioneer in the field of IC-MOSmemories. Intel has made 35 million of these units since its introduction in 1971.

TI INTRODUCES SPEAKING TRANSLATOR, At the June Consumer Electronics show, Texas Instru-ments introduced a hand-held language translator which displays and speaks the translated wordsthrough the use of a speech synthesizer circuit. This is a significant advance over the Craig andLexicon units introduced six months earlier, which only display translated words. The unit will cost$250, plus $50 for plug-in language modules. English, Spanish, French and German modules will beavailable, with Russian, Japanese and Chinese to follow later. The unit displays 1000 words, 500 ofwhich can be spoken. Craig has also increased their module vocabularies to 2,400 words.

UPI NEWS WIRE NOW AVAILABLE TO PERSONAL COMPUTER USERS. United Press International(UPI), one of the prime sources of news used by newspapers throughout the country, has made theirservice accessible to personal computer users. The UPI wire can be dialed as a local number in mostUS cities. UPI will charge $15 per hour during business hours, and $2.75 during other times.

IBM DEVELOPS ULTRA-HIGH SPEED LOGIC. The IBM Research Center at Yorktown Heights NYhas disclosed their development of logic circuits with switching speeds of 13 picoseconds. Based on

August 1979 © BYTE Publications Inc 89

Josephson junction technology, the devices are still in an experimental form. The new circuits arecalled "Current Injection Logic" and they generate thousands of times less heat than previous types oflogic. As a result, higher circuit densities will be possible.

MINIATURE FLOPPY DISKS IN DEVELOPMENT. At present we have 8 inch (20.3 cm) and 5.25 inch(13.3 cm) floppy disks. A new, smaller disk is now well into development and has been proposed forinternational standardization. Commonly referred to as the Eurodisk, it is a square package thatmeasures 4.12 inches (10.5 cm), will store 400 K bytes, use 50 tracks per side, and have a 300 K bpsdata transfer rate. The standard 5.25 inch (13.3 cm) floppy disk holds 125 K bytes on 40 tracks andhas a 125 K bps data transfer rate (double these figures for double density). Olivetti is also expectedto announce a very low cost 2.55 inch (6.5 cm) disk which will store 8 K bytes. It will take severalseconds to read or write, there is no provision for random file access, it will be thicker, and will notuse a jacket. It is rumored to be intended for use in a personal computer that is now nearing introduc-tion. Rumors also continue that IBM will use the 3.25 inch (8.3 cm) disks, currently used in their dic-tating units, in some of their low end computer systems such as the 5110.

FLAT DISPLAY PANELS SHOWN. At the May meeting of the Society for Information Display, severalJapanese companies demonstrated prototype flat panel displays that are now in an advanced stage ofdevelopment. Ise Electronics showed a 240 character (40 characters by 6 lines) vacuum-fluorescentdisplay that was 250 mm wide by 100 mm high and 14.5 mm thick. It operated off of low voltage andwas low power. Hitachi exhibited an 80 character LCD panel which was 280 mm by50 mm by 23 mm, and operated from 5 VDC and dissipated only 100 mw. NEC showed a storage typeLCD panel of 120 characters, and Fujitsu demonstrated a 1560 character plasma display panel.

VIEWDATA AND TELETEXT NEWS. Both the Viewdata and Teletext home data-base access systemswill be introduced to the US market by the mid 1980s. Viewdata is a system that connects the home toa central computer via telephone lines. The user can call up data to appear on a modified television.General Telephone and Electronics presently has a Viewdata research development project. Trialsystems are already in operation in England and West Germany.

Teletext transmits data on a television signal, fitting the data into the blank space between pictureframes. Micro-TV, a Philadelphia-based company has been doing this for over two years, while KSL-TV, Salt Lake City, has done the same for one year. Texas Instruments is supplying the decoders forthe KSL test.

The Electronic Industries Association is currently evaluating Teletext. Some companies believe thatby the late 1980s the home system will include Viewdata, Teletext, video disk, and a personal com-puter system to control them. In fact, Apple Computer already offers a service, in conjunction withDow Jones and Co, which permits Apple owners to display stock market information by dialing aphone number.

Viewdata and Teletext are viewed as complementary services to help bring advanced householdmanagement, home environmental control, teaching, and entertainment into the home. Some expertsfeel that it will be realized in as little as three years.

Oak Industries of Crystal Lake IL recently demonstrated their Teletext system. Called "Videotext,"it allows cable television operators to pipe data to subscribers via a microprocessor-based decoder.Each decoder has its own address which allows the cable company to monitor all units. This meansthat they will know immediately if a set is stolen. The cable company will also be able to cut off non-paying subscribers, thereby rendering stolen units useless.

A Miami-based company, Knight-Ridder Newspapers Inc, has formed a subsidiary named ViewdataCorporation of America, which will undertake a two year, $1.3M test. The Hong-Kong TelephoneCompany also expects to implement a Viewdata system next year.

The Canadian government and telephone companies are currently testing systems which transmitdata over both telephone lines and television signals. One system, constructed by Bell Canada,presently has 25 units in a network, linking together Toronto, Montreal and Ottawa. The units werebuilt by Bell Northern Research. Bell Canada expects to have 1,500 to 2,000 units installed in homesnext year. Several others are conducting tests.

ACGNJ

1776 Raritan Road

Scotch Plains NJ 07076

MAIL: I receive a large number of letters each month as a result oi this column. If you wish aresponse, please include a stamped, self-addressed envelope.

90 August 1979 © BYTE Publications Inc

Sol Libes

Wordsmith is the video text editing system you've beenwaiting for. Its power, flexibility and simplicity help you carveany text editing task down to size —in a way you canunderstand. We wanted a system that allows you to think intraditional ways about text layout, yet at the same time makesthe traditionally tedious operations such as cut and pastesimple and fast. We think we've done it. We want you to decide

for yourself mmmmmmmmmmmmm—mm—mm—mmmmmmmm^m—mm

Flexibility

■ Logical/Physical Page Distinction. Define your ownhardcopy size. Wordsmith remembers the differencebetween the screen size and the hardcopy page size.

■ Modular Hardcopy Driver. Drive a Qume® Spnnt-5 orTTY-like device directly now, Diablo, NEC and otherhardcopy devices soon.

■ Pure Text. Wordsmith files are pure text with no controlcharacters mixed in. This universal format keeps you ascompatible with the world as possible. What you see on thescreen is what you get as hardcopy.

■ Page Templates. Snapshots of the block layout of a pagecan be saved as named disk files, then later recalled andsuperimposed on the current page. Use such "templates"for standard multicolumn layouts, common letter formats,and fixed-field forms. A single keystroke dispatches youquickly from block to block as you fill in your page.

E3

r~3

CJ

Take asnapshotof apage's

windowlayout

Recall atemplateand hopfrom windowto window.

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 ofpages. The screen displays one entire page at a time. Simplerandom access page flipping commands take you quickly toany page in the document. Equally efficient commands allowyou to insert, delete, copy and move pages both within onedocument and across documents.

Simplicity

Auto Word Break. Forget the right margin. Wordsmithnotices when you won't be able to complete the currentword and moves it to the next line for you as you continuetyping.

Understandable Commands. The most frequently usedcommands are single keystrokes. The rest are easilyremembered abbreviations.

Informative Status Lines. The top two screen linesconstantly display page number information, documentname, cursor position, tab stops and status/errorphrases. You're always in touch with your document.

Extensive Block Manipulation Capabilities. Using"windows", portions of text, charts, etc., can be quickly andeffortlessly moved around on the current page, or acrosspages. The shape and size of any window can be changed inreal time, with the contained text automaticallyreformatting itself (heeding word and paragraphboundaries) to conform to the new shape.

r - ~ 1L_ij

MoveText Blocks

SetUp

Multiple Text

Regions

Change Text Shape

Instantaneous Formatting. Compacting (extraneousblank deletion) and right justifying are simple commandsthat tidy up a full page or window's worth of text in the blinkof an eye. Random access cursor movement, line andcharacter insert and delete, line and page split and join, anda host of other line and character level commands help youput text in its place quickly and accurately.

Page 3 of 8

File=ADV1

Cursor row 28, col 43

t 1

\

T 1

Protection Against Catastrophic Errors. It's nearlyimpossible to ruin your document with a single badcommand. Wordsmith's page oriented design and double-checking user interface help you do what you mean!

The TM

moRDsraftb

TEXT EDITOR

Defining the New Generation of Text Editing

from Micro Diversions, Inc.B455-D Tyco Rd.Vienna, Va. 22180(703) 827-0888

Direct CP/M® and North Star DOS compatibilityAvailable for 40x86, 24x80 and 16x64 memory-mappedvideo boards

Fully reentrant for efficient multi-programming environ-ments (6K program space, 5K data area)8080 and Z80 compatibility

OrderingInformation:

$200

(Screensplitter™ Owners: $80)

Manual only: $15

Check, VISA, Mastercharge

1. CP/M or North Star DOSversion?

2. TTY or QUME interface?

3. Brand and memory address ofvideo display board?

4. Ship on single or doubledensity, 5" or 8" diskette?

Inquire about our custom keyboard.

Circle 219 on inquiry card.

BYTE August 1979

91

Aw, cut it out!

Save these pages. It's our latest, up-to-the-minute list of super software.

r

Software /

with /ManualManual/ Alone

DIGITAL RESEARCH

D CP/M* FDOS — Diskette Operating -System complete withText Editor, Assembler, Debugger, File Manager and systemutilities. Available for wide variety of disk systems includingNorth 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, andiCOM Attache. Specify desired configuration S145 S25

D MAC — 8080 Macro Assembler. Full Intel macro definitions.Pseudo Ops include RPC, IRP, REPT, TITLE, PAGE, andMACLIB. Z-80 library included. Produces Intel absolute hexoutput plus symbols file for use by SID (see below) $100/S15

□ SID — 8080 symbolic debugger. Full trace, pass count andbreak-point program testing system with back-trace and histo-gram utilities. When used with MAC, provides full symbolicdisplay of memory labels and equated values S85 $15

D TEX — Text formatter to create paginated, page-numberedand justified copy from source text files, directable to disk orprinter $85/515

D DESPOOL — Program to permit simultaneous printing ofdata from disk while user executes another program from theconsole $50/$1

MICROSOFT

□ Disk Extended BASIC — Version 5, ANSI compatible withlong variable names, WHILE/WEND, chaining, variable lengthfile records $300 $25

□ BASIC Compiler — Language compatible with Version 5Microsoft interpreter and 3-10 times faster execution. Pro-duces standard Microsoft relocatable binary output. IncludesMacro-80. Also linkable to FORTRAN-80 or COBOL-80 codemodules $350/$25

□ FORTRAN-80 — ANSI '66 (except for COMPLEX) plusmany extensions. Includes relocatable object compiler, linkingloader, library with manager. Also includes MACRO-80 (see Kbelow) $400/525

□ COBOL-80 — ANSI 74 Relocatable object output. Formatsame as FORTRAN-80 and MACRO-80 modules. CompleteISAM, interactive ACCEPT/DISPLAY, COPY, EXTEND

S625/$25

D MACRO-80 — 8080/Z80 Macro Assembler. Intel and Zilog

mnemonics supported. Relocatable linkable output. Loader,

Library Manager and Cross Reference List utilities included

$149/515

□ EDIT-80 — Very fast random access text editor for text with orwithout line numbers. Global and intra-line commands sup-ported. File compare utility included $89/515

□

D

□

XITAN (software requires 280** CPU)

Z-TEL — Text editing language. Expression evaluation itera-tion and conditional branching ability. Registers available fortext and commands. Macro command strings can be saved ondisk for re-use 569/520

ASM Macro Assembler — Mnemonics per Intel with Z-80 ex-tensions. Macro capabilities with absolute Intel hex or relocat-able linkable output modules. New version 3 with addedfeatures 569/520

LINKER — Link-edits and loads ASM modules .. .569/520

D Z-BUG debugger — Trace, break-point tester. Supports dec-imal, octal and hex modes. Dissassembler to ASM mnemonicset. Emulation technique permits full tracing and break-pointsupport through ROM 589/520

D TOP Text Output Processor — Creates page-numbered, jus-tified documents from source text files 569/520

Software /

with /ManualManual/ Alone

□ A4 package includes Z-TEL, ASM, LINKER, Z-BUG, TOP 5299/540

EIDOS SYSTEMS

□ KISS — Keyed Index Sequential Search. Offers completeMulti-Keyed Index Sequential and Direct Access file manage-ment. Includes built-in utility functions for 16 or 32 bit arithme-tic, string/integer conversion and string compare. Delivered asa relocatable linkable module in Microsoft format for use withFORTRAN-80 or COBOL-80, etc 5535/523

□ K BASIC — Microsoft Disk Extended BASIC with all KISSfacilities, integrated by implementation of nine additional com-mands in language. Package includes KISS.REL as describedabove, and a sample mail list program 5995/545

MICROPRO

LJ Super-Sort I — Sort, merge, extract utility as absoluteexecutable program or linkable module in Microsoft format.Sorts fixed or variable records with data in binary, BCD,Packed Decimal, EBCDIC, ASCII, floating, fixed point, expo-nential, field justified, etc. etc. Even variable number of fieldsper record! 5250/525

□ Super-Sort II — Above available as absolute program only 5200/525

□ Super-Sort III — As II without SELECT/EXCLUDE

5150/525

D Word-Master Text Editor — In one mode has super-set ofCP/M's ED commands including global searching and replac-ing, forward and backwards in file. In video mode, provides fullscreen editor for users with serial addressable-cursor terminal 5150/525

CI Word-Star — Menu driven visual word processing sys-tem for use with standard terminals. Text formatting performedon screen. Facilities for text paginate, page number, justify,center, underscore and PRINT. Edit facilities include globalsearch and replace, read/write to other text files, block move,etc. Requires CRT terminal with addressable cursor position-ing. Word-Master users may upgrade for $395**!. .5495/525

SOFTWARE SYSTEMS

□ CBASIC-2 Disk Extended BASIC — Non-interactive BASICwith pseudo-code compiler and runtime interpreter. Supportsfull file control, chaining, integer and extended precision var-iables etc 590/515

STRUCTURED SYSTEMS GROUP

D General Ledger — Interactive and flexible system providingproof and report outputs. Customization of COA created inter-actively. Multiple branch accounting centers. Extensive check-ing performed at data entry for proof, COA correctness etc.Journal entries may be batched prior to posting. Closing pro-cedure automatically backs up input files. All reports can betailored as necessary. Requires CBASIC 5899/525

O □ Accounts Receivable — Open item system with output for° • internal aged reports and customer-oriented statement and bill-ing purposes. On-Line Enquiry permits information for Cus-tomer Service and Credit departments. Interface to GeneralLedger provided if both systems used. Requires CBASIC 5699/525

□ Accounts Payable — Provides aged statements of ac-counts by vendor with check writing for selected invoices. Canbe used alone or with General Ledger and/or with NAD. Re-quires CBASIC 5699/525

D NAD Name and Address selection system — interactive maillist creation and maintenance program with output as full re-ports with reference data or restricted information for maillabels. Transfer system for extraction and transfer of selectedrecords to create new files. Requires CBASIC 579/520

U EFFECTIVi

•CP/M is a trade name of Digital Research' *Z80 is a trademark of Zilog, Inc.

•••Good until August 31.1979

EFFECTIVE JUNE 19, 1979

92 BYTE August 1979

Software for most popular 8080/Z80 computer disk systems includingNORTH STAR, MICROPOLIS, iCOM, SD SYSTEMS, DYNABYTE DB8I2,ALT AIR, EXIDY SORCERER, VECTOR MZ, 8" IBM, HEATH H17 & H89,HELIOS, IMSAI VDP42 & 44, REX and OHIO SCIENTIFIC formats.

Software /

with /ManualManual/ Alone

D QSORT — Fast sort/merge program for files with fixed recordlength, variable field length information. Up to five ascending ordescending keys. Full back-up of input files created. Parameterfile created, optionally with interactive program which requiresCBASIC. Parameter file may be generated with CP/M assem-bler utility S95 $20

GRAHAM-DORIAN SOFTWARE SYSTEMS

□ PAYROLL SYSTEM — Maintains employee master file.Computes payroll withholding for PICA, Federal and Statetaxes. Prints payroll register, checks, quarterly reports and W-2forms. Can generate ad hoc reports and employee form letterswith mail labels. Requires CBASIC. Supplied in source code.

$590 $35

D APARTMENT MANAGEMENT SYSTEM - Financialmanagement system for receipts and security deposits ofapartment 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. . $590<$35

□ INVENTORY SYSTEM — Captures stock levels, costs,sources, sales, ages, turnover, markup, etc. Transaction in-formation may be entered for reporting by salesman, type ofsale, date of sale, etc. Reports available both for accountingand decision making. Requires CBASIC. Supplied in sourcecode $590/$35

□ CASH REGISTER — Maintains files on daily sales. Filesdata by sales person and item. Tracks sales, overrings, re-funds, payouts and total net deposits. Requires CBASIC.Supplied in source code S 590 $35

MICRO FOCUS

□ CIS COBOL — Version 3 is ANSI 74 subset with extensionswhich offer powerful interactive screen formatting and built incursor control. Version 4 additionally offers full level 1 ANSI forNucleus, Table Handling, Sequential Relative and Indexed I/O,Inter-Program Communication and Library

Version 3, $650/$50

Version 4, S850 S50

□ FORMS — Interactive utility to create CIS COBOL sourcecode to perform CRT screen handling in application programs.Supports full prompt text, protected fields and input validation

against data type and range expected $150/$ 15

When purchased with CIS COBOL $125, $15

OTHER

D tiny C — Interactive interpretive system for teaching struc-tured programming techniques. Manual includes full sourcelistings V**^ $75/$40

D C Compiler — Supports most major features ot language, in-cluding Structures, Arrays, Pointers, recursive function evalu-ation, linkable with library to 8080 binary output. Lacks datainitialization, long & float type and static & register class speci-fiers. Documentation includes "C" Programming Languagebook by Kernighan & Ritchie $110/S15

D Z80 Development Package — Consists of: (1) disk fileline editor, with global inter and intra-line facilities; (2) Z80relocating assembler, Zilog/Mostek mnemonics, conditionalassembly and cross reference table capabilities; (3) linkingloader producing absolute Intel hex disk file for CP/M LOAD,DDT or SID facilities $95 $20

□ DISTEL — Disk based disassembler to Intel 8080 or TDUXitan Z80 source code, listing and cross reference files. Intel orTDL/Xitan pseudo ops optional. Runs on 8080. Standard CP/Mand TRS-80 CP/M versions available $65/510

□ DISILOG — As DISTEL to Zilog/Mostek mnemonic files.Runs on Z80 only $65 $10

Software /

with /ManualManual/ Alone

□ TEXTWRITER II — Text formatter to justify and paginateletters and other documents. Special features include insertionof text during execution from other disk files or console, permit-ting recipe documents to be created from linked fragments onother files. Ideal for contracts, manuals, etc $75/$5

D WHATSIT? — Interactive data-base system using associa-tive tags to retrieve information by subject. Hashing and ran-dom access used for fast response. Requires CBASIC $125 $25

□ XYBASIC Interactive Process Control BASIC — Full diskBASIC features plus unique commands to handle bytes, rotateand shift, and to test and set bits. Available in Integer, Ex-tended and ROMable versions.

Integer Disk or Integer ROMable $295/$25

Extended Disk or Extended ROMable 5395/S25

D SMAL/80 Structured Macro Assembled Language — Pack-age of powerful general purpose text macro processor andSMAL structured language compiler. SMAL is an assemblerlanguage with IF-THEN-ELSE, LOOP-REPEAT-WHILE, DO-END, BEGIN-END constructs $75/515

D Selector II — Data Base Processor to create and maintainsingle Key data bases. Prints formatted, sorted reports withnumerical summaries. Available for Microsoft and CBASIC(state which). Supplied in source code $195/$20

□ Selector III — Multi (i.e., up to 24) Key version of Selector II.Comes with applications programs including Sales Activity, In-ventory, Payables, Receivables, Check Register, Expenses,Appointments, and Client/Patient. Requires CBASIC Supplied

in source code $295/$20

Enhanced version for CBASIC-2 $345 $20

□ CPM/374X Utility Package — has full range of functionsto create or re-name an IBM 3741 volume, display directoryinformation and edit the data set contents. Provides full filetransfer facilities between 3741 volume data sets and CP/Mfiles $195/$10

□ Flippy Disk Kit — Template and instructions to modify sin-gle sided 5Vt" diskettes for use of second side in singled sideddrives $9.75

D BASIC Comparison — A comprehensive features and per-formance analysis of five 8080 disk BASIC languages —CBASIC, BASIC-E, XYBASIC, Microsoft Disk ExtendedBASIC, and Xitan's Disk BASIC. Itemizes results of 21 differentbenchmark tests for speed and accuracy and lists instructionsand features of each BASIC (send 200 S.A.S.E.) FREE

Orders must specify disksystems and formats:e.g. North Star single ordouble density, IBM sin-gle or 2DI256, Altair,Helios II, Micropolis ModI or II, 5Vt" soft sector(Micro iCOMISD SaleslDynabyte), etc.

Add $1 litem shipping ($2min.). Add $1 additionalfor UPS C.O.D.

Manual cost applicableagainst price of subse-quent software pur-chase.

The sale of each pro-prietary software pack-age conveys a licensefor use on one systemonly.

1

TIM

Lifeboat Associates, 2248 Broadway, n.y., n.y. 10024 Telex: 668-585 (212) 580-0082

'" The Software Supermarket is a trademark of Lifeboat

Associates I

BYTE August 1979 93

The Nature of Robots

Part 3: A Closer Look at Human Behavior

William T Powers

1138 Whitfield Rd

Northbrook IL 60062

In part 1 of this series, I demonstra-ted that the concept of behavior is notas clear as certain people would in-dicate. The patterns that we callbehavior result from the convergenceof many influences, only a part ofwhich can be attributed to the organ-ism that we say is behaving. Yet thebehaving organism varies its ownactions so that when the influence ofthese actions is added to all that is un-predictable, the result is recognizableas patterns of behavior.

In part 2 we observed that a controlsystem controls its input, not its out-put. It acts on its environment tomake its own sensory or perceptualsignal match a reference signal re-ceived from elsewhere, and to auto-matically counteract the effects ofdisturbances. It does not have tosense the cause of the disturbance: itsenses the quantity it is controlling,and reacts to deviations of that quan-tity (or the signal representing it)from a reference level that is set bythe reference signal.

The reference signal acts just as anintention ought to act. It specifiessome state of affairs that is to beachieved, and serves as a target to-ward which action always urges theperception of the controlled variable.Under normal circumstances the con-trol system can make its perceptualsignal track a changing reference sig-nal, and still oppose the effects ofdisturbances.

There are two main rules of thumb:

About the Author

William T Powers has been exploring themeaning of control theory for studies of humannature since 1953. He spent a number of years(to 1960) in medical physics, and then another13 (to 1975) as Chief Systems Engineer for theDepartment of Astronomy at NorthwesternUniversity. His occupation has been designingelectronic, optical, and mechanical systems forscience.

• The reference signal reaching agood control system controls theperceptual signal in that system.

• The actions of the control systemvary so as to oppose the effects ofdisturbances, even if the referencesignal remains constant.

Let's see how this control systemmodel applies to one small humansubsystem: a spinal reflex arc (reflexjust means "turned back on itself").This will lead to some concepts thatwill be of use to the designers ofrobots.

The Tendon Reflex

In the early 19th century, SirCharles Bell established the fact thatsensory nerves are separate frommotor nerves, and described the "cir-cle of nerves" found in a spinal reflex.A sensory nerve that is part of aspinal reflex arc (we will talk aboutone that is stimulated by the stret-ching of a tendon) sends its signal tothe spinal cord, and the same cell thatreceives this signal emits a motorsignal that reaches a muscle. Whenthe muscle contracts, it has physicaleffects that stimulate the same sen-sory nerve. These are closed loops;the effects of sensory nerves that arestimulated by muscle action affect thesame muscle action.

In all such loops that have beendiscovered, the sense of the feedbackis negative. This is true of the tendonreflex. If signals from cells in thespinal cord cause a muscle to con-tract, the resulting stretch of the ten-don stimulates sensors clusteredaround the tendon. The signals fromthese sensors reach the same cells inthe spinal cord to inhibit their firing.

Apparently the materials are pre-sent for a control system, but beforewe discuss this, a digression isnecessary.

All or None or Some

One of the most unfortunate ac-cidents to occur in neurology was thediscovery that signals in nerves arecarried by impulses. The effect was asif the discoverers of electricity haddiscovered the electron before theyhad formulated laws of current flow,and thus developed the whole theoryof electricity on the basis of collisionsbetween one electron and anotherelectron. As soon as there were in-struments to detect nerve signals itwas known that the amplitude of animpulse generated by a nerve cell wasindependent of the source; there wasa trigger effect, so that either an im-pulse was generated, or it was not.

As a result, almost all neurologicalresearch has focused on single im-pulses. The "all-or-none" principlebecame so firmly entrenched that bythe time digital computers arrived onthe scene, most people were led offthe track. "Aha," they said, "if anerve-cell has a threshold that is justhigh enough, 2 impulses will have toreach it simultaneously to fire it:behold, an AND gate!" Since inhibi-tion (an impulse tending to reduce thesensitivity of a nerve cell to an im-pulse arriving by a different path) canoccur, we clearly have the NOToperator, and with the addition ofOR (a nerve cell that can be fired byan impulse from any of severalpaths), we have all of the ingredientsfor a generalized logic circuit.

There is no longer sufficient reasonto believe that the nervous systemworks in this way. Those who tried toanalyze nerve nets as logic deviceshad to make a lot of assumptions,such as synchronism or clocking, thatare incompatible with experimentalfacts. This more modern under-

Figure and listing numbering continuedfrom part 2.

94 August 1979 © BYTE Publications Inc

standing was reflected in Dr ErnestKent's recent BYTE article series,'The Brains of Men and Machines"(January 1978 BYTE, figure 2, page16). It now seems that single impulsesare not a significant unit of informa-tion for most neurons. What counts isfrequency of firing. The sum of fre-quencies of excitatory and inhibitoryimpulses reaching a given neuron hasan effect on the rate of that neuron'sfiring so that the output frequency isa function of a set of input fre-quencies. Most neurons, in otherwords, compute analog, not digital,functions. As we all know, it isperfectly possible to build digital cir-cuitry out of analog components.Digital integrated circuits are all con-structed from analog transistors.

Therefore, when I begin to identifycomponents of a control system, as Iwill do in a moment, the signals willbe thought of as continuouslyvariable frequencies, not as on/offbinary quantities. The functions thatcombine some signals will be func-tions of continuous variables. Whileany one neuron behaves as a rathernonlinear device, a collection ofneurons performing essentially thesame function in parallel yield anoverall pleasantly linear input/outputrelationship, especially if we considerthe normal, rather than extremerange of frequencies (zero or satura-tion rates of firing).

The spinal reflex systems we willnow examine involve several hundred— sometimes several thousand —control systems operating in parallel,although they will be drawn as simplecontrol systems. A perceptual signalis really the mean rate of firing in awhole bundle of pathways, all start-ing from sensors that are measuringthe same input(eg: stretch in a ten-don). The signal that enters the mus-cle in this system is a bundle ofsignals, each exciting 1 or 2 smallfibers out of the thousands that makeup 1 muscle. Thus, we will be dealingwith neural impulses in much the wayelectronic engineers deal with elec-trons. In the majority of cases, thenumber of impulses passing through across-section of a bundle of redun-dant pathways per unit time will be"the signal," just as the number ofelectrons passing through a cross-section of a conductor per unit time iscalled "the current."

The way youcheck line-by-line withan A P Intra-Swltch orIntra-Connector.

You plug your Intra-Switch in-linewith standard socket connectors,and instantly you've got a separate,independent on-off switch for eachand every line in your flat ribboncable. To switch, you nudge with apencil point. It's that quick.

Imagine how much time andtrouble Intra-Switch will save you inyour diagnostic and quality testing,your programming and selectiveline inhibiting.

Or, plug in your Intra-Connector(see box) the same way, and youhave an extra set of male contacts

at right angles. Instant line-by-lineprobeability—and an easy way totap your system and daisy chain itinto new areas.

Both Intra-Connectors and Intra-Switches come in 20,26,34,40 and50-contact models.

Where? At your nearby A P deal-er. Where's that? Phone (toll-free)800-321-9668. And ask for the com-plete A P catalog, The Faster andEasier Book.

AP PRODUCTS

INCORPORATED

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

Faster and Easier is what we're all about.

Circle 10 on inquiry card.

August 1979 © BYTE Publications Inc 95

Figure 13: Figure 13a is the standard control-system diagram we have been using in thisseries. Figure 13b is a spinal reflex arc. FNI is the input function; P, the perceptualsignal; C, the comparator; R, the reference signal; E, the error signal; FNO, the outputfunction; O, the output quantity; FNF, the feedback function; I, the input quantity;FND, the disturbance function; and D; the disturbing quantity. Roots are bundles ofnerve fibers entering or leaving the spinal cord. An actual spinal reflex arc may involveseveral hundred systems like the one in figure 13b, with as many motor cells alloperating in parallel. Thus, a signal is a bundle of signals that carry similar information.

(a)

■

■

R

+

c

p

1

E

1

FN!

FNO

c

Ol

>

?'

o

(b)

♦ TO

HIGHERSYSTEMS

FROM" HIGHERSYSTEMS

SPINALCORD

BIFURCATION

DORSAL ROOTS

SENSOR

Level-1 Control System

Figure 13b is a schematic diagramof the tendon reflex. Figure 13a is thediagram of a general control systemthat I have already shown and dis-cussed earlier. Figure 13a has an inputfunction FNI, a perceptual signal P, acomparator C, a reference signal R,an error signal E, an output quantityO, a feedback function FNF and aninput quantity I completing a closedloop. Entering this loop at the samepoint as the input quantity are the ef-fects of a disturbing quantity D, af-fected by the disturbance functionFND.

Figure 13b contains the same com-ponents in the same relationships.The input function is a sensor whichemits a signal P, the frequency ofwhich depends continuously on theamount of stretch I of the tendon atthe end of the muscle. This signal Ptravels to the spinal cord, and thelocal branch enters an inverter whichis specialized to produce inhibitoryeffects on any neuron it reaches (theseactually exist in the spinal cord asRenshaw cells). This inverted copy ofthe perceptual signal reaches the cellbody of a motor neuron C, whichalso receives an excitatory input froma pathway descending from centersthat are higher in the nervous system(the reference signal R).

The signal emitted by this motorneuron represents the excess of excita-tion over inhibition, and thus rep-resents the difference between thereference and (inverted) perceptualsignal: it is clearly the error signal E.The error signal enters the muscle,where it is converted into an averageshortening of the contractile fibers inthe muscle FNO. The output quantityO is the net stretch of the connectivetissue that links the individual con-tractile fibers together. The feedbackfunction FNF consists of the mech-anical relationships that sum all theseindividual little forces into one forcethat will tend to stretch the tendon.

I have shown the disturbance as astring that pulls directly on the ten-don. It is rather hard to disturb thetendon control system without dis-secting the organism, a procedurethat always leaves one wonderingwhether or not this is the originalsystem. The reflex that is tested witha hammer just under the kneecap is adifferent one, a muscle-length control

96 August 1979 © BYTE Publications Inc

32K Board Pictured Above

New RAM Prices.

From The Dynamic Memory Company.

16K—$24948K—$500

32K—$37564K—$625

Ever since we started makingthese memory boards over a yearago we have continued to lowerour prices to stay competitive.Due to your confidence in us, weare again able to lower ourprices! Our reliability has beenproven by months of superiorperformance in thousands ofinstallations. Our low-power boardsare being used by quality-mindedsystems manufacturers across thecountry and overseas.

4MHz boards now available.

After receiving hundreds ofrequests, our engineering staff hascome up with a new version of ourboard which runs on 4MHz Z-80systems. It wasn't easy to comeup with a high speed board whichwould operate as reliably as our450ns version, but after months ofcareful design and testing, we didit. 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 greatsellers only because of the price.We still offer you our deselectfeature which allows our RAM tooverlap with any fixed memoryareas in your system. Also, theRAM area of our board is fullysocketed so that you can expandthe board yourself.

Other standard features include:plug selectable addressing on 16Kboundaries (shorting plugs areplaced over wire-wrap pins toaddress the board — located onthe top of the board for easychanges), S-100 and Z-80compatability and totally invisiblerefresh — no wait states.

Fully assembled, tested, andguaranteed.

All of our boards go through arigorous testing procedure. Theyare then placed on burn-in runninga series of memory tests to detectany other possible faults. After youreceive the board, you are backedby us with a one year warrantee.

Low power consumption keepsyour computer from "losing itscool."

The total power consumption ofour 16K board is typically lessthan 4 watts (+8V @ 300ma,+16V @ 1 50ma and -16V @20ma). Boards with additionalmemory typically increase powerconsumption only 1 watt per 16K!

Standard S-100 Interface.

Our board is designed tointerface with any standard S-100CPU. All of the timing of the boardis independent of the processorchip, and the board is set up fordifferent processors by changingtwo plugs on the board.

Contact your local dealer.

To find out more about our RAMboards, contact your local dealer.If he is unable to help you, call orwrite us for a fast response.Central Data Corporation, 1207North Hagan Street, Champaign, IL61820. (217) 359-8010

Central Data

BYTE August 1979 97

Circle 73 on inquiry card.

PascalMICROENGINE™16-bit P-code CPU

Pascal executes 13x faster than on an LSI-11and 3x faster than on a PDP11-34!

$2695*

4iV\/\/ READY TO RUN

s2995 List price

s1795* Without case & power supply

STANDARD

• 16-bit P-code CPU

• 64K bytes RAM

• Floppy disk controller

• Direct memory access controller

• Floating point hardware

• 2 serial (RS-232) I/O ports—50 to 19200 baud

• 2 parallel I/O ports

• Pascal & Basic compilers, text editors, filemanager, CPU & memory diagnostics,symbolic Pascal debugger, linker, utilities, etc.

The MICROENGINE'" P-Machine architectureimplements direct execution of P-code (UCSDPascal version 3.0) replacing software inter-preters. All data and I/O paths are 16 bits wide.Both single and multi-byte instructions areavailable. Floating point hardware using theproposed IEEE standard supports the executionof floating point instructions.

P-Machine architecture optimizes memoryutilization. Stack design renders Pascalprograms automatically reentrant andrecursive with no performance penalty.Extensive compiler error checking and highlevel language sustains high reliability.Programs are transportable to other systemsrunning Pascal.

Built-in floppy disk controller handles up to 4drives, switch selectable for 5% or 8 inch, singleor double sided. A hard disk controller will beavailable soon.

*799'

List price $956PERKIN-ELMER (Model 550)

Shugart

floppy disk (Model SA850) *695"

Shugart

floppy disk (Model SA800) *595"

Texas Instruments

printer (Model 810) *1895'

X-pert Systems " designed by Compute*are integrated and cost effective. Complete 16-bitsystems are available starting as low as *3139.

Customer satisfaction is guaranteed.

Full refund with the return of any product within10 days. Service contracts available. Systemscatalog $1. MICROENGINE™ owners manual*19.95 postpaid.

•LIMITED TIME cash price. 10% downguarantees priority. IL residents add 5% salestax. Master Charge and VISA cards accepted.

(312) 684-3183

COMPUTER

"THE COMPUTER EXPERTS"5710 Drexel, Chicago, IL 60637

system. Artificially stretching the ten-don will tend to relax the muscle,since the feedback is inhibitory.

In part 2 I described how controlsystems work. We now immediatelyknow what this spinal reflex loopdoes. It maintains the perceptualsignal P matching the reference signalR. Since P is a measure of tension inthe tendon, we can say that this con-trol system controls the sensed ten-sion, and not the degree of contrac-tion of the muscle. It also varies theamount of contraction in the fibers ofthe muscle to oppose any extraneouseffects that tend to alter the tension inthe tendon, either increasing ordecreasing it.

We know that muscles are attachedto bones, generally across a joint, andthat when a muscle changes tension itoften changes the angle at the jointthat it spans. In this way movementsare created and forces are applied toobjects, or against gravitational andother forces. However, this little con-trol system knows nothing of that.The only behavior it produces issensed tension. It controls a neuralsignal which represents the net forcebeing created by the muscle and anyactive disturbances. The controlsystem does not know this — it has,after all, only the one kind of sensor.It knows only how much signal it isgetting from the outside world, andnot even what kind of signal this is. Itis just an amount. It would needmany other sensors and a very in-telligent computer in order to knowthat this amount is measured in unitsof tension.

First Level of Behavioral Control

Every muscle that is used in volun-tary behavior (as opposed to internalor visceral) is involved in a controlsystem like that in figure 13b. Thereare no exceptions. Thus, there is noway that any higher process in thebrain can directly produce a muscletension. The brain can produce amuscle tension only by providing areference signal which specifies howmuch tension is to be sensed. Thisdoes not even determine how tensethe muscle will be, for if there is asteady external disturbance working,the muscle will adjust its degree ofcontraction to compensate for thedisturbance. Pull steadily on the ten-don, and the muscle will completelyrelax, even with the presence of a

nonzero reference signal. InjectNovocain into the perceptualpathway, and the muscle may go intoa violent spasm because it is trying tocreate a perceptual signal. The braincannot command the muscles to con-tract. It can only tell level-1 controlsystems how much tension to sense. Itis up to those control systems to dowhat is necessary to create thedemanded signal.

Gray's Anatomy names about 200muscles, most of which occur inpairs, and many of which consist ofnumerous subdivisions capable ofhaving different effects. There areperhaps 500 to 800 muscles which canbe distinguished on the basis of dif-ferent directions of effect. Thus, weown 500 to 800 level-1 control sys-tems. Every human action must beperformed by adjusting the referencesignals for these control systems. Thebehavior of these control systemsneed not be simulated for the simplereason that this has been done to asufficient degree in part 2 of thisseries.

There are actually more level-1control systems than muscles. For ex-ample, every muscle also containslength sensors, which are involved inlevel-1 control systems that governnot force, but something related tothe stretching of the muscle itself.Length and force can be controlledquite independently under suitablecircumstances; however, we won't begetting into such details here. Themain point is that we chew, scratch,talk, walk, run, and swim by usinglevel-1 control systems, and by tellingthem not what to do, but what tosense.

Higher Levels of Control

We have accounted for all outgoingsignals from the brain that are con-cerned with overt actions (in the sensethat all will act on level-1 controlsystems, although there may be, atlevel 1, control systems we haven'tconsidered here). We have not, how-ever, accounted for all incomingsignals. The nervous system has hun-dreds of millions of sensory endings,most of which are not involved inlevel-1 control systems.

You'll notice that in figure 13b theperceptual signal branches. This is areal branch; all level-1 perceptualsignals involved in these controlsystems branch, sending one branch

98 Augusl 1979 © BYTE Publications Inc

Circle 120 on inquiry card.

SPECIALIZING IN

QUALITY MICROCOMPUTER HARDWARE

INDUSTRIAL • EDUCATIONAL • SMALL BUSINESS • PERSONAL

BUILDING BLOCKS FOR MICROCOMPUTER SYSTEMS, CONTROL & TEST EQUIPMENT

R2 I/O

2K ROM

2K RAM

3 Serial Ports

1 Parallel Port

16 K RAM

FULLY STATICMEMORY

ECT-100-F

RACKMOUNTCARD CAGES

POWER SUPPLIES, CPU'S, MEMORY, OEM VARIATIONS

TT-10

TABLE TOPMAINFRAMES

763 RAMSEY AVE.HILLSIDE, N.J. 07205

ELECTRONIC CONTROL TECHNOLOGY (zod bbb-bbbo

SAVE THE WHALE

The Fin Whale is the world's greatest long-distance communicator.

Scientists believe that loud, deep-tone, low-frequencysounds made by Fin Whales (frequencies around 20hertz, or cycles per second) actually travelunderwater for distances of at least 500miles, and under optimum conditionsmight carry for a radius of4,000 miles, potentially reaching an area greater than the

entire Atlantic Ocean

Fin Whales, the second largestcreatures ever to have lived on planetearth, grow up to 24 meters in length (ex-ceeded only by the 30-meter Blue Whale), andhabit all the oceans of the world. Tens of thousands ofVhales have been "harvested" in recent years, by agreementof the International Whaling Commission, for the sale of productsfor which substitutes are readily available.

The CONNECTICUT CETACEAN SOCIETY is a small, totally volunteer, non-profit edu-cation and conservation organization dedicated to seeking the abolition of all whale killing. Anyconcerned citizen can help our efforts by sending name and address and a $15 or more contributionto: CCS, P. O. Box 145, Wethersfield CT 06109.

BYTE Augusl 1979

99

upward. Many of the branches —enough to represent what is going onin all the muscles — continue upwardto the next level of organization. Theperceptual signals from level-1 inputfunctions that are not parts of controlsystems do likewise. Thus, we canimagine a higher part of the nervoussystem that is completely sur-rounded, with regard to input andoutput, by level-1 systems and inputfunctions.

The signals going downward fromthis higher part end up in controlsystems of the general type shown infigure 13b, controlling sensed tensionand a few other simple variables. Thesignals going upward, the level-1perceptual signals, all reach the nexthigher level of organization, whichhappens to be represented in the brainstem, the cerebellum, and one part ofthe cerebral cortex.

Imagine a second level of controlsystems. The input functions of thisnew layer will not be equipped withsensors; instead, they will receive theperceptual signals generated bylevel-1 input functions (or in the case

of signals involved in level-1 controlsystems, copies of them, courtesy ofthe bifurcation of the dorsal roots).These signals, in subsets, are the real-time inputs to level-2 input functions,each of which generates one level-2perceptual signal. We define a level-2input function in terms of the way asingle level-2 perceptual signal de-pends on some set of level-1 per-ceptual signals.

It is now clearly possible to con-struct a level-2 comparator, provideit with a reference signal, and make itgenerate a level-2 error signal. Thaterror signal can then be wired to theinput of a level-2 output function,and copies of the output of that FNOcan be fanned out to serve as ref-erence signals for level-1 controlsystems.

In fact, we can construct as manylevel-2 control systems as we like,until we run out of neurons that arelocated where the level-1 perceptualsignals terminate and the level-1reference signals originate. All out-going signals that are further inwardwill be accounted for; they will be

READ THE MAGAZINETHE PROS READ.

For over 20 years DATAMATION hasbeen the magazine for the data process-ing professional. Now DATAMATIONmagazine is available to hobbiests, busi-ness men, accountants, engineers, pro-grammers . .. anyone with a deep curio-sity about the real world of data pro-cessing.

Written by the data processing pro-fessional for the data processing profes-sional, DATAMATION magazine's ar-ticles cover a wide range of subjects . ..industry trends, "how to do it better"articles, budget and salary surveys, newcomputer applications, advanced tech-nology, new products and services.

Whether your interest in computers isfor fun or profit, DATAMATION mag-azine has a world of information for youevery month . . . plus an annual Special

Edition, the Industry Profile featuringthe "DATAMATION" 50" — the topU.S. DP companies.

Technical Publishing

nil a company of

MMEM TheDun&BradstrectCorporation

r

FOR A ONE YEAR SUBSCRIPTION(13 ISSUES) SEND $32.

TO: SUZANNE A. RYAN

DATAMATION magazine666 FIFTH AVENUENEW YORK, NY 10019

Name

AddressCity

L

State/Zip.

®

magazine

level-2 reference signals. (If you canfigure out why they can't be level-1reference signals, bypassing level 2,you are beginning to understand con-trol theory. Hint: Level-1 referencesignals are adjusted by level-2 sys-tems: what happens if an arbitrarysignal is added to the output of alevel-2 system?)

Some level-1 perceptual signalsmay be combined to produce level-2perceptual signals, without involvingthe new perceptual signals in anylevel-2 control system. Perceptualsignals that are involved in level-2control systems branch, just as theircounterparts at level 1 do: one ofthe branches heads further inwardand upward in the brain. We can nowrepeat the process of going from thefirst to the second level of control.Clearly, a third level of controlsystems can be constructed, then afourth, and so on, until we run out ofbrain and find ourselves looking atthe inside surface of the skull.

This is my model of the brain. Itwill be discussed in greater detail inthe next article of this series. At pre-sent we will develop a clearer under-standing of the relationship betweenone level of control and the nexthigher level of control through theuse of BASIC. As you will see, therelationship has some rather amazingand challenging properties.

Two-Level Control Hierarchy

We are going to model a veryelementary 2-Ievel control system. Iwon't attempt to model a real humansystem because it would get too com-plicated. The imaginary system willconsist of 3 level-1 control systems,each controlling sensed force (just asin the tendon reflex system) and 3level-2 systems, each controlling aseparate aspect of the forces control-led by level-1 systems.

The 3 muscles will be laid out in aplane, one end of each being joined ata common central point, and theother being anchored to a point in theplane. If the angles between the mus-cles are equal, they will form a Y. Wewill assume that the common connec-tion does not move; the muscles willapply a force there but, as in the caseof flying a stick-controlled airplane,any movement will be negligible.This allows us to ignore some com-plex interactions between the mus-cles. Those interactions would not in-

100 August 1979 © BYTE Publications Inc

Circle 94 on inquiry card.

^gr MINIM AX

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 THEMINIMAX COMPUTER THE MINIMAX SERIES computer was designed by industry professionals.

miMlMMA UU/WrU I Cn C0MpARE TH£ pmcE AND FEATURES TO ANY OTHER COMPUTER IN ITS CLASS!

MINIMAX I - .8 MEGABYTEON LINE MINIFLOPPY STORAGEMINIMAX II - 2.4 MEGABYTEON 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, 12INCH CRT, AND FULL STYLE KEYBOARD, WITH SEPARATE NUMERIC ENTRY PAD. ALL KEYS (INCLUDING CURSOR) WITH FULLREPEAT • HYBRID 2 MEGAHERTZ 6502 CPU • 108K SYSTEM RAM (48K USER) • FASTEST FLOPPY DISK ACCESS (24K LOADS IN 4.2SECONDS) • 16K ROM CONTAINS COMPUTHINK BASIC (AN EXTENDED MICROSOFT BASIC) WITH EXTENDED PRECISION, DOSINCLUDES COMPLETE FILE I/O WITH FULL RANDOM ACCESS, COMPLETE MONITOR WITH DEBUG & TRACE, AND TINY 6502ASSEMBLER • COMPLETE HIGH RESOLUTION GRAPHICS WITH INDIVIDUAL DOT (240x512) POINTSCREEN ADDRESSABILITY •FULL SCREEN TEXT EDITING WITH OVERWRITE, INSERTION OR DELETION • SPLIT SCREEN/WINDOW MODES • INDIVIDUALFIELD EDITING WITH FIELD PROTECT AND AUTO SKIP TO NEXT FIELD • DISK STORAGE SYSTEM TRANSFERS 6K PER SECONDWITH AUTO VERIFY AND PARITY CHECK • 12 INCH CRT-64 CHARACTERS BY 30 LINES. UP TO THREE PROGRAMMABLECHARACTER FONTS FOR LANGUAGES OR SPECIAL CHARACTERS • • • SWITCHABLE 110 OR 220V OPERATION • • • • HYBRIDCPU IS MICROPROGRAMMABLE WITH 64 USER DEFINABLE OPCODES. CHOICE OF 800K OR 2.4 MEGABYTE DISK STORAGE • FULLSERIAL 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 DATABASEAVAILABLE • PLM COMPILER AVAILABLE • BUSINESS PACKAGES AVAILABLE • COMPLETE DIAGNOSTICS & SCHEMATICSINCLUDED • COMPLETE USER MANUAL INCLUDED

SPECIAL DEALER PRICING AVAILABLE ON DEMONSTRATION

MINIMAX AND SOFTWARE PACKAGES TO QUALIFIED

SELECTED DEALERS. CONTACT NEECO FOR INFO.

PRINTER NOTINCLUDED IN PRICE

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

INADDITIONTOHARDWARECAPABILITIESTHATAREUNMATCHEDINTHEINDUSTRY.THEMINIMAXCOMPUTER SUPPORTS A COMPLETE DATA BASE SYSTEM (PAGEMATE), CONTAINING FULLSTATISTICAL, SORTING, AND EDIT FUNCTIONS. A PLM COMPILER IS AVAILABLE, FULL BUSINESSSUPPORT SOFTWARE IS AVAILABLE AND MORE!—FULL DEALER SUPPORT IS AN IMPORTANTPART 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 281 on inquiry card.

BYTE August 1979

terfere with control, but would makethe model very complicated. In simu-lating a control organization, it isalways the simulation of the environ-ment that creates complexities. Thegeometric interactions between themuscles are properties of the world inwhich these control systems live, notof the control systems proper.

There will be 3 level-1 controlsystems, 1 for each muscle. Each willsense the force being generated by itsown muscle. Each will have a loopgain of 10, and a slowing factor of0.07 (see part 2 for discussion of theseproperties).

There will also be 3 leveI-2 controlsystems. One will use the 3 muscles tocontrol a force in the X direction (leftand right), another will control aforce in the Y direction (up anddown), and the third will control thesum of the 3 forces, this sum cor-responding to what physiologists call"muscle tone." We will see why thereis such a thing as muscle tone (thesteady mutually cancelling tensionthat is always there in muscles). Eachlevel-2 control system will have a

loop gain of 50, and a slowing factorof 0.01.

I hope that this arrangement looksa little amazing. Here we have 3muscles spaced at roughly 120-degreeintervals around a common point. Noone muscle pulls in either the X or theY direction. To pull in the X direc-tion, all 3 muscles must alter theirtensions. To pull in the Y direction,all 3 must alter their tensions. Tovary the muscle tone all 3 must oncemore alter their tensions. We will beable to set reference values for these 3variables at the same time, throw in adisturbance of arbitrary size anddirection to boot, and there will be nointerference among the systems thatcannot be easily taken care of. Eachlevel-2 force-controlling system willbe able to keep its perceptual signalmatched to any reference signal,while the others do the same thing atthe same time.

It may add interest to know thatthe outputs from the level-2 systemsto the level-1 systems will not be ac-curately weighted: the only choicewill be whether or not a given level-2

Interactive ComputerGraphics Software*

For Microsoft and DEC* Fortran

North Port Washington RoadMilwaukee, Wis. 5321?COMPUTER SPECIALISTS

output reaches a given level-1 com-parator after multiplication by 1, 0,or —1, All 3 level-2 outputs willreach and be added together in all 3level-1 comparators. The neat separa-tion of X, Y, and tone control is notaccomplished by carefully balancingthe amount of output sent to eachlevel-1 system. Only the crudest ad-justment has to be made on the out-put side, essentially the choice bet-ween positive and negative feedback,with negative always being chosen.

We now come to what is perhapsthe most fundamental concept of thistheory of brain function. The organ-ization which determines that an Xvector, a Y vector, and a tone orscalar force will be controlled isfound in the input functions, not inthe output functions. The organiza-tion of behavior is determined by theperceptual, not the motor organiza-tion of the brain. By the time wefinish this installment you will see ex-actly how that happens.

Setting Up the Model

Let us start by looking at a typicalcontrol system of unspecified level ina hierarchy of control systems. Thissystem will receive multiple inputsignals from lower-level systems andmultiple reference signals fromhigher-level systems. It will emit just1 output signal (we will assume thatthe only need for an explicit outputfunction is to provide error amplifica-tion and to smooth; otherwise the er-ror signal could be used directly asthe output signal). Figure 14 showsthis typical system.

Perceptual Inputs fromLower Levels

The input function will now be alittle too complicated to be repre-sented as a BASIC function since weneed a set of weighting factors so thateach input can be assigned a weightbefore summing all of the inputstogether. The easiest way to deal withweighting factors for a generalizedsystem is to use a matrix that containsall of the factors for all of the levels.For the input function we designatethe matrix as S (for sensory) andwrite it as:

S(L,J,K),where: L = level

J = system at that levelK = weight of Kth signalfrom level L —1.

102 August 1979 © BYTE Publications Inc

Circle 53 on inquiry card.

TO HIGHER LEVELS

FROM HIGHER LEVELS

9 o o g

A 6 A A

FROM LOWER LEVELS

TO LOWER LEVELS

Figure 14: A typical control system in the middle of a hierarchy of control systems. Thissystem receives multiple reference signals, given a positive or a negative sign by anappropriate entry in the M matrix (no other weighting). The sum of these referencesignals is the effective reference signal. The system also receives multiple input signalswhich are copies of perceptual signals in lower-order systems. These signals are givenquantitative weightings by the S matrix and summed in the input function FNI of thesystem to create this system's perceptual signal P. A duplicate of the perceptual signaltravels upward to higher-level systems.

The perceptual signal is subtracted from the effective reference signal (or vice versa),and the remainder is emitted by the comparator C as the error signal. The error signal isamplified and smoothed by the output function FNO with the result being emitted tolower-level systems as the output signal O.

The perceptual signal for this Jthsystem at the Lth level will bedesignated P(LJ). The perceptualsignal can thus be written as the sumof contributions (weighted) fromsome set of lower-level systems, aweighting of O in the S matrix mean-ing absence of a connection:

NIL-D-l

P(L,J) = £ S(LJ,K)XP(L-1,K)

where N(L —1) is the number ofsystems in the next lower level.

Reference Inputs fromHigher Levels

A similar operation is performed tocalculate the net reference signalR(L,J). A matrix M(LJ,K) is used toselect a connection factor (1, 0, or— 1) for each output of a higher-levelsystem; the net reference signal is thesum of all the outputs of the higher-level systems, each multiplied by itsappropriate factor. A 0, of course,means no connection.

The M matrix is filled by looking atthe sign of the corresponding entry inthe S matrix for the next higher level.

NEW! InternalPower Supply!Plus External

xVv^GIjij • • •

The Best ofBoth Worlds

Looking for multi-purpose PET* expansion?The Betsi S-100 Interface/Motherboard hasa new inboard power supply, for the best ofboth worlds.

Outside the PET, the versatile Betsi inter-face provides four S-100 slots for instant plug-inexpansion. The availability of S-100 boardsputs a wide range of applications within easyreach of a PET/Betsi system.

The new Betsi Power Supply mounts insidePET, eliminating excess clutter. It takes onlyminutes to install, plugs into PI Is existingconnectors, and even turns on and off withyour PET!

Betsi features:

• Dynamic Memory Controller for use of S.D.Systems "Expandoram" board. (Get full 32KPET expansion on a single S-100 card!)

• Direct plug-in connection to PET. Noadditional cables or backplanes required.

• Accepts nearly, all S-100 boards, includingmemory I/O, speech processors and more.

• On-board sockets for 8K of PROM firmware(no extra hardware needed).

The new Betsi Power Supply makes a PET/Betsi system easier than ever to use. With pricesworth a second look, you can afford to havemulti-purpose PET expansion now!

BETSI INTERFACE/MOTHERBOARD-KITWith all components, one 100 pin connector, andcomplete assembly and operating instructions

$119

BETSI INTERFACE/MOTHERBOARDASSEMBLED & TESTEDWith four 100 pin connectors, completeassembly and operating instructions, 6-monthwarranty $165

BETSI POWER SUPPLY& TESTED

ASSEMBLED

$34

See Betsi and its new power supply at your localdealer or write directly to:

FORETHOUGHTPRODUCTS

87070 Dukhobar Road #1-

Eugene, Oregon 97402

(503) 485-8575

ORDERS NORMALLY SHIPPED WITHIN

24 HOURS/VISA, MASTERCHARGE

ACCEPTED

August 1979 © BYTE Publications tec 103

To understand how this correspon-dence is figured, think of the secondindex in the matrix as the destinationof the signal, and the third index asthe source.

Suppose that we wanted to fill inthe M matrix for 1 level of systems.An entry will be —1 if the corres-ponding S matrix entry of the nexthigher level is negative, 0 if the Smatrix entry is 0, and 1 if the S matrixentry is positive. But which is the en-try in the S matrix for level L +1 cor-responding to M(LJ,K)?

The answer is simple: M(L,J,K)corresponds to S(L + 1,K,J). Thesource and destination indices aresimply interchanged. If a higher-levelsystem gives a negative weight (ofany amount) to the perceptual signalfrom a given lower-level system, itsends a copy of its output to the com-parator of the same lower-levelsystem with a negative (inhibitory)sign. A negative connection factormeans that the output of this higher-level system will subtract from thecontributions of other higher-levelsystems to the lower-level netreference signal.

Thus, once the S matrix for thenext higher level has been filled in, wecan calculate the entries in the Mmatrix:

M(L,J,K) = SGN (S(L + 1,K,J))

where SGN is the Sign

function that generates theappropriate 1, 0, or —1.

You may choose to skip these pro-cedures and simply spell out eachconnection one at a time. My thoughtin using a general solution is notmerely to save lines of program, butto point the way toward expandingthe simulation both horizontally (ad-ding more systems at each level) andvertically (adding more levels).

The reference signal for level L,system J, is found by summing overthe outputs of all systems of levelL+l, multiplying the output fromeach higher-level system by the ap-propriate connection factor from theM matrix:

NIL-f 11-1

R(LJ) = £ M(L,J,K)xO(L+l,K)

K = 0

Discover whyhundreds of PDP-11 usershave turned to usfor Pascal.

They're in process control. Indata base management. In educa-tion, research and communica-tions. Running on LSI-11 s, PDP-11/70's and everything in be-tween. RSTS/ E, RT1I, RSX or IAS —it makes no difference, they praiseour Pascal.

Because they all have one thingin common. A desire to get morefrom their PDP-II than anotherlanguage — or another Pascal —can provide.

We've captured the elegance ofPascal in a real world compiler. Itconverses directly in machine lan-guage, giving remarkable execu-tion speed and efficient memoryuse. It features straight-forward

program structure,uncluttered syntax,and other advantages offull standard Pascal.

But there's more, in the form ofreal-time extensions. 15 digit (dou-ble precision) arithmetic. In-line as-sembly code. I/O hardware ac-cess. FORTRAN interface. Direct-access files. Overlays. Plus others.There's even an interactive sym-bolic debugger.

Reliability? Introduced in 1975,we're at over 400 sites now. Weguarantee stated performance andprovide I year of follow-up sup-port. Give us a call; we have ademo library, manuals, and bench-mark, ready for your inspection.

minicomputer.SJu ^ inc.

2340 SW Canyon Road

Portland, Oregon 97201

(503) 226-7760

TWX 910-464-4779

PDP-11. LSI-11, PDP-11/70. RSTS/E, RT11. RSX. and IAS are trademarks of Digital Equipment Corporation

Distributors:

Australia: Sydney; Network Computer Services,

290 3677

Canada: Vancouver: Valley Software,

(604) 524-9741

England; Stafford; Hourds Computing Ltd,

0785 44221

Japan; Tokyo; Rikei Corporation, 03-345-1411

To complete this general model weneed only calculate the error signal Eand the output signal O. The requiredslowing factor and the error sensitiv-ity are put in the output function.

E(L,J) = R(LJ) - P(LJ)

O(LJ) = O(LJ) + K(L) x(G(L)x E(L,J) -O(LJ))where K(L) is the slowing fac-tor for all systems of level L(see part 2), and G(L) is theerror sensitivity for all systemsof level L.

Top and Bottom of the Model

We do not have a complete controlsystem at the top of this hierarchywhere we will be injecting referencesignals for the highest complete level.Therefore we designate those signalsas (in this case) 0(3,1), output signalsfrom 3 imaginary level-3 systems (us)indexed by I = 0 (X force), 1 (Yforce), or 2 (tone). The M matrix forlevel 2 is set up so that M(2,I,I) is 1, Irunning from 0 to 2; this establishesconnections from each level-3 outputto 1 corresponding level-2 referenceinput. All other entries are left at 0(my North Star BASIC zeros arrayswhen they are first dimensioned).

At the bottom, the output signals0(1,1) are supposed to create muscletensions that affect 3 input quantities;the amount of stretch in the tendonattached to each muscle. To avoidtreating a special case, we willdesignate these input quantities as"level 0 perceptual signals," P(0,I).The value of each input quantity isfound by adding the magnitude of thecorresponding output to the compo-nent of a disturbance that acts alongthe length of the associated muscle.The value of the input quantity P(0,I)represents the net stretch in a tendoncreated by the muscle contraction andthis component of the disturbance asthey act together.

The level-1 S matrix simply con-nects each input quantity, multipliedby 1, to its respective input function.Thus, we set S(0,I,I) = 1, for I = 0,1, and 2. All other entries in thismatrix are 0.

The geometry of the muscles is ad-justable. Since setting up thisgeometry is the opening phase of theBASIC program, we will take a quickrun through this program and discussthe muscle setup. See figure 15 to help

104 August 1979 © BYTE Publications Inc

Circle 293 on inquiry card.

TRS-80 BOUTIQUE

Intro-ducing)

"WORDPII"

The TRS-80 Word

Processing System

that really does the job!

If you've been looking for a true wordprocessing capability for your TRS-80 ... STOP! WORDP II is it!

WORDP II allows you to enter, edit,and print various amounts of text(with right margin justification) in oneprogram. The EDIT program permitsaddition, insertion, and deletion ofwhole lines and characters withinlines. The TYPESET program fills andright justifies paragraphs auto-matically.

Other features include: indent,center, right justify non-paragraphtext, count and label pages bynumber or without headings, andlots more.

SPECIAL INTRODUCTORY PRICE

$75.00

Send 51 for operating manual - see

what the system will/will not do before

you buy!

DEALER INQUIRIES INVITED

(714) 774-1270

Improve TRS-80

performance

with new DOS*

Enjoy the wizardry of your TRS-80 to its fullest: maximize andexpand all of its magical capabilities with the new DOS+. Just look atthe capabilities you can evoke.

Modifications, corrections, and enhancements to Radio Shack'sTRSD0S2.1.

• A Basic REFerence command for variables and numbers.

• A super-fast machine language RENUM program execu-table under BASIC.

• A built in kevboard-debounce routine.

• A print screen option under DOS or BASIC to your line printer.Simply press JKL keys.

• New copy commands for backup, allows you to copy from driveto drive keeping the same filespec.

• Execution of DOS commands while in BASIC.

• New BASIC scrolling and invocation commands and more.

• Apparat's own SUPERZAP, a Hex dump utility to examine oror modify disk or memory locations.

• Modified EDITOR ASSEMBLER with Disk I/O and new crossreference feature.

• A super-fast machine language DISASSEMBLER program.

• A LOAD MODULE for transferring machine tapes to disk.

• Faster disk access.

• Level I ROM relocated in Level II RAM.

• The capability of storing and retrieving Level I programs on Disk,

• An improved DISKDUMP program.

• A DIRCHECK program to test a directory & list/display thecontents in alphabetical orderwith extensions.

You don't have to pull a rabbit out of a hat... Send 599 for theApparat/MTI New DOS+ (on diskette). See all the magic unfoldbefore your eyes.

INTRODUCTORY SPECIALNEWDOS+and the very Best of Apparat's disk utility programsS99.00 (a $250.00 value).

To order your diskette of tricks, write or call one of our dealers.

Apparat Inc., 6000 E. Evans Ave., Bldg 2, Denver, CO 80222,

303-758-7275Microcomputer Technology Inc., 2080 S. Grand Ave.,

Santa Ana. CA 92705, 714-979-9923

AJA SOFTWARE

P.O. Box 2528 • Orange, CA 92669

COMPUTER DEALER CO-OP5082 SHIRLEY DRIVE, LA PALMA, CA 90623

(714) 979-9925

Circle 50 on inquiry card.

BYTE August 1979 105

Circle 161 on inquiry card.

TO H AYDEN

FOR YOUR

LANGUAGE

NEEDS...

New! APL: An Introduction (Peelle)This workbook/textbook offers aproblem solving approach tolearning computer programmingin APL. #5122 O. SS.50

COBOL WITH STYLE: Pro-gramming Proverbs (Chmura &Lecigard) Covers structuredCOBOL programming, and howto use the top-down approach withCOBOL. #578 J 4. $6.95

New! FORTRAN WITH STYLE:Programming Proverbs (Ledgard& chmura) Programming style

guide that conforms to the newFORTRAN 77. #5682-6, $6,95

New! Z-80 AND 8080 ASSEMBLYLANGUAGE PROGRAMMING

(Spracklen) An extensive introduc-tory look at assembly languageprogramming for the 8()8() and Z 80processors. #51670, $7.95

New! PASCAL WITH STYLE:Programming Proverbs (Ledgard& Nagin) a style guide speciallywritten for PASCAL users and howto use the top down approach withPASCAL. #51247. $6.95

New! BASIC FROM THE GROUND

UP (Simon) Explores computersand the BASIC language in asimple direct way, without relyingon a heavy mathematical background. #5760-1, $8.95

Available at your

local computer

store!

pri Hayden Book'■*■' Company, Inc.

50 Essex Street,

Rochelle Park, NJ 07662

visualize how everything works.Figure 16 is the same system, moreclosely representing the organizationof the brain.

The Simulator

Muscle angles. After the dimensionstatements and the statements that setslowing factors and error sensitivitiesfor each level have been called, theprogram calls a subroutine that asksfor the angle at which each of the 3muscles is to be set (in degrees). Youcan use 30, 150, and 270 degrees (forequal spacing). There is nothing toprevent the choice of any angles youlike, although you should draw adiagram to determine the effect on thesystem. It is hard to create a force in adirection in which there is no compo-nent of force from any muscle.

Sensory weightings. Lines 9 to 15organize the perceptions of this sys-tem, and thus organize its behavior.For values of I from 0 to 2, all 3 levelsof sensory matrix are set up. You cannow see how X and Y forces are sens-ed. The weights for level 2, system 0,correspond to the cosine of the anglebetween the positive X axis and theangle of each muscle. Those for level2, system 1, correspond to the sine ofthe same angles. Each input functionis weighting the perceptual signalsfrom the muscles according to thecomponent of force that is alignedwith the direction being sensed. Thetone system, level 2, system 2 addsthe signals together to yield a total-force signal.

Motor weightings. Lines 19 to 23use the already entered values of the Smatrices to create the connectionmatrix M. The sign function selectsthe sign that will preserve negativefeedback.

Highest-level reference signals. In

line 24, the program calls a sub-routine that asks for 3 referencesignals: one designating the amountof X force, another designating theamount of Y force, and a third des-ignating the sum of forces, or muscletone. Positive or negative numbersare allowed. A real nervous systemcannot handle negative frequencies,but the same effect can be created bysuitable use of inverters so that one(positive) frequency means a positivequantity and another (also positive)frequency means a negative quantity.In reality there would be 6 systems oflevel 2 in this 4-quadrant system.

I have set up level 1 to behaverealistically like a muscle controlsystem; neither negative signals nornegative forces can be produced.

Disturbance. At line 25, the pro-gram calls a subroutine which asksfor the amount and direction of aconstant disturbance. A disturbancemight be created by seizing the placewhere the 3 muscles join, moving it,and holding it in the new position.Despite the fact that the controlsystems are neither detecting nor con-trolling position, arbitrary movementof this junction in space will stretch orrelax the muscles, creating changes offorce due to the spring constants ofthe muscles. Therefore it is rea-sonable to suppose that a force distur-bance can be created, one which pro-jects into the direction of each muscleaccording to the cosine of the anglebetween the disturbance vector andthe axis of the muscle.

Calculating the behavior. Lines 29through 37 call a subroutine that ac-tually does the calculation of signalsin all 6 control systems. You willnotice 3 nested FOR-NEXT loops.The outer 2 loops cause the lower-

Text continued on page 111

Figure 15: The 2-level hierarchy simulated in this article. Three level-1 systems eachcontrol the amount of tension in 1 muscle, as represented by the 3 level-1 perceptualsignals. Copies of these 3 perceptual signals reach all 3 level-2 systems, where they areweighted and summed so as to represent the X component of muscle force (P(2,0)), theY component of muscle force (P(2,l)), and total muscle force or muscle tone (P(2,2)).

Each second level system sends an amplified and smoothed version of its error signalas an output signal to all 3 lower-level systems. Each output signal splits into 3 identicalbranches, 1 for each level-1 system. When a branch reaches a level-1 comparator, itmay be connected directly or through an inverter before being summed with otherreference inputs. There is no other weighting of output signals. If necessary, an inverteris used to preserve negative feedback for a particular path.

Each level-1 system amplifies and smooths its error signal to make an output signalreaching just 1 muscle.

A higher-level system determines the reference signals for X, Y, and total force. Theseare specified by the operator of the simulator. All systems correct their own errorssimultaneously.

106 August 1979 © BYTE Publications Inc

August 1979 © BYTE Publications Inc 107

(PERCEPTUAL SIGNALS)

LEVEL2

LEVELI

Figure 16: Topological transform of figure 15 shows how control systems are arranged in the human nervous system, at least accor-ding to some cybernetic theoreticians. The major difference from figure 15 is that all sensory functions are lumped together at eachlevel, and comparison and output functions are also lumped together. The S and M matrices are represented in a nervous system assynaptic connections, the weighting of which is determined by the number of branches (from one to hundreds) that form just as anerve fiber reaches the next cell body. The sign of a weighting is determined by whether or not a Renshaw cell (specialized to pro-duce inhibition) is interposed. A collection of comparators and output functions is called a motor nucleus. For level 2 and higher,the branches of perceptual signals that cross over and enter a motor nucleus are called collaterals.

108 August 1979 © BYTE Publications Inc

Wondering which memoryis best for you?

bo/© 2# offers the following productsto the S-100 market at the industry'slowest prices:

8K Static Memory Board

This 8K board is available in two versions. The 8KS-B operates at 450ns for use with8080 and 8080A microprocessor systems and Z-80 systems operating at 2MHz. The8KS-Z operates at 250ns and is suitable for use with Z-80 systems operating at 4MHz.Both kits feature factory fresh 2102's (low power on 8KS-B) and includes sockets forall IC's. Support logic is low power Schottky to minimize power consumption. Addressand data lines are fully buffered and 4K bank addressing is DIP switch selectable.Memory Protect/Unprotect, selectable wait states and battery backup are alsodesigned into the board. Circuit boardsare solder masked and silk-screened for easeof construction. These kits are the best memory value on the market! Available fromstock... 8KS-B $125 (assembled and tested add $25.00)

8KS-Z $145 (assembled and tested add $25.00)

16K Static Memory Board

Base 2 can now offer the same price/performance in a 16K static RAM as in its popular8K RAM. This kit includes 8K bank addressing with 4K boundary address setting onDIP switches. This low power unit provides on-board bank selection for unlimitedexpansion... No MUX board required. Using highest quality boardsand componentswe expect this kit to be one of the most popular units on the market. Available in twospeed ranges, the 16KS-B operates at 450ns while the 16KS-Z operates at 250ns.

16KS-B $275.00 (assembled and tested)

16KS-Z $300.00 (assembled and tested)

Z-80 CPU Board

Our Z-80 card is also offered in two speed ranges. The CPZ-1 operates at 2MHz andthe CPZ-2 operates at 4MHz. These cards offer the maximum in versatility atunbelievably low cost. A socket is included on the board for a 2708 EPROM which isaddressable to any 4K boundary above 32K. The power-on jump feature can beselected to address any 4K boundary above 32K or the on-board 2708. An On-boardrun-stop flip-flop and optional generation of Memory Write allows the board to run withor without a front panel. The board can be selected to run in either the 8080 mode, totake advantage of existing software, or in the Z-80 mode for maximum efficiency. Foruse in existing systems, a wait state may be added to the M1 cycle, Memory requestcycle, on-board ROM cycle, input cycle and output cycle. DMA grant tri-states allsignals from the processor board. All this and more on too quality PC boards, fullysocketed with fresh IC's. CPZ-1 $110 CPZ-2 $125

S-100 for Digital Group Systems

This kit offers, at long last, the ability to take advantage of S-100 products within yourexisting DigitalGroup mainframe. Once installed, up to four S-100 boards can be usedin addition to the existing boards in the D.G. system. The system includes an"intelligent" mother board, ribbon cables to link existing D.G. CPU to the DGS-100board and a power wiring harness. The DGS-100 is designed to fit in the 5-3/4" x 12"empty areain the standard D.G. cabinet. It may seem expensive but there's a lot here!End your frustration! DGS-100 $250.00

ififlli

bo/e

:-:■:■:■. ^>v.y.■.-.■■:•:■-.:-:.;-; ■:-:■:•:.;■ :-:■:■:

2

inc.

Send for more details on these products. Get on our mailing list forinformation on more soon tobeannouncedpro ducts at factory-directprices from BASE 2. Why pay more when you can get the best atthese prices???

P.O. Box 3548 • Fullerton, Calif. 92634

(714) 992-4344

CA residents add 6% tax

MC/BAC accepted • FOB — U.S. destination

Circle 29 on inquiry card.

BYTE August 1979

Circle 190 on inquiry card.

Thousands of users know theIthaca Audio Simple Upgrade™ asthe best memory expansion available— and with good reason.

Our clear, concise, step-by-stepinstructions and illustrations makeupgrading a snap. Jumpers arepackaged just as they appear in thediagrams, no hunting for the correctpart.

Fully-tested RAMs and prepro-grammed shunts provide a kit thatworks the "first time." In fact, aSimple Upgrade is the only memoryexpansion that requires no cutting orcustomizing to install.

Each kit has a 100% guarantee; if apart ever fails we replace it absolutelyfree. No other manufacturer has theconfidence to offer that kind of war-ranty and support.

Now the best gets even better: theSimple Upgrade is just $119.00.

The full line of Upgrades is avail-able nationwide at Computerlands,Byte Shops and independent compu-ter retailers.

For the name of the dealer nearestyou, contact:

ITHACAAUDIO

P.O. Box 91

Ithaca, New York 14850

(607) 257-0190

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.

Listing 3: North Star BASIC simulation of a 3-muscle system. The muscles have 3operations they are to perform: movement in the X direction, movement in the Y direc-tion, and tone control. A sample run of the simulator is shown in listing 4. The exclama-tion point is used as an abbreviation for the PRINT statement.

1 Olh P(2,2),R(

2 DIM G(2)

3 G(1)=10\ K(1)

4 P = 3.1415927/1

5 G0SUB 99\ REM

6 REM

7 REM

8 REM

9 FOR 1=0 TO 2

10 S(1,I,I)=1

11 S(2,0,I)= CO

12 S(2,1,I)= SI

13 8(2,2,1)=!

14 S(3,I,I)=1

15 NEXT I

16 REM

17 REM

18 REM

19 FOR

20 FOR

21 FOR

2,2),E(2,2),0(3,2),S(3,2,2),M(2,2,2),A(3),K(2)

=.07\ G(2)=50\ K(2)=.0180

(SET UP MUSCLE GEOMETRY)*************************SET UP SENSORY WEIGHTINGS*************************

S(A(I))N(A(D)

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

SET UP MOTOR WEIGHTINGS*************************

L=1,T0 21=0 TO 2J=0 TO 2

22 M(L,I,J)=SGM

23 NEXT J\ NEXT

24 GOSUB 109\ R

25 GOSUB 116\ R

26 REM

27 REM

28 REM

29 !\F0R Q=1 TO

30 FOR J3=0 TO

31 L=2\ GOSUB 5

32 FOR J2=0 TO

33 L=1\ GOSUB 5

34 FOR 1=0 TO 2

35 P(0,I)=0(1,I

36 NEXT I\ NEXT

37 GOSUB 69\ RE

38 NEXT Q

39 !"(A)NGLE? (

40 INPUT "",AS

41 IF A$<>"A" T

42 IF ASO"R" T

43 IF AS<>"0" T

44 IF A$0"C" T

45 IF ASO"P" T

46 !" ???? "\ !

47 REIl *

48 REM C

49 REti *

50 FOR J=0 TO 2

51 V=0

52 FOR K=0 TO 2

53 V=V+P(L-1,K)

54 NEXT K

55 IF L=1 AND V

56 P(L,J)=V\ V=

(L+1,J,I)>\ NEXT L

(SET UP REFERENCE SIGNALS)

(SET UP DISTURBANCE)

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

ALCULATE SYSTEM BEHAVIOR

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

REM CALCULATE SYSTEMS AT LEVEL L

)+D*C0S(A(I)-A(3))

J2\ NEXT J3M (PRINT TABLE OF VALUES)

R)EFS? (D)IST? (C)ONT? (P)RIflT MATRICES?

HEN 42\ GOSUB 102\ GOTO 29HEN 43\ GOSUB 109\ GOTO 29HEN 44\ GOSUB 116\ GOTO 29HEN 45\ GOTO 29HEN 46\ GOTO 76\ GOTO 39

*******************************ALCULATIONS FOR LEVEL L SYSTEMS*******************************

*S(L,J,K)

<0 THEN V=00

57

FOR K=0 TO 2

58

V=V+0(L + 1,K)*fi(L,J,K)

59

NEXT K

60

R(L,J)=V\ V=0(L,J)

61

E(L,J)=R(L,J)-P(L,J)

62

V=V+K(L)*(G(L)*E(L,J)-V)

63

IF L=1 AND V<0 THEN 0(L,J)=0 ELSE 0(L,J)=V

64

NEXT J

65

RETURN

■■'.:'■

66

REM ***********************

67

REM DATA LISTING SUBROUTINE

68

REM ***********************

69

70

FOR J=2 TO 1 STEP -1,

71

!\! "LEVEL ",X2l,J,;;»y7F2

72

FOR 1=0 TO 2\!" ",R(J,I)," ",\ NEXT I

73

!\F0R 1 = 0 TO 2\!" ",P(J,I>," ",0(J,D," ",\ NEXT I

74

!\ NEXT J

110 August 1979 © BYTE Publications Inc

Circle 40 on inquiry card.

Text continued from page 106:

level system to iterate twice for everyiteration of the higher-level system.This proves to be an exceedinglyuseful, easy way to stabilize the2-level system. (I have also tried thiswith a 3-level system, and it workedjust as well.) I have no formal ra-tionale for why this works; informal-ly, it seems to be a good idea to let thelower-level system correct most of itserror before the higher-level systemstake their own errors seriously.

The inner loop, line 35, simplycalculates the values of the inputquantities for the level-1 systems,using the angles of the muscles and ofthe disturbance. This is, in effect, thesimulation of the environment (themuscles are in the environment of aneural control system).

At line 37 a routine is called whichprints out the signals for all systems:the reference signal on 1 line, the

75 !\ RETURN

76 !\!"SCNS0RY l",ATRIX"\

77 FOR L=1 TO 2

78 !"1.EVEL ",MI,L

79 FOR J=0 TO 2SO !" ",

8182

perceptual signal to the lower left ofit, and the output signal to the lowerright for each system. Line 38 closesthe iteration loop; 5 iterations arecalled for.

Lines 39 through 46 ask what ac-tion is to be taken after 5 iterations.

Calculation subroutine. Lines 50 to65 calculate the signals for eachsystem. The V that occurs here andthere is simply a way to reduce thenumber of times a subscript has to becalculated. The perceptual signal iscalculated first, then the referencesignal, the error signal, and the out-put signal, for each system of level L.The level is set at lines 31 and 33 bythe calling program. Line 62 containsthe slowing routine which appearedin part 2. Lines 55 and 63 determinewhether or not level 1 is beingcalculated; if it is, the perceptual andoutput signals are prevented from go-ing negative.

FOR K=0 TO 2

!/;6F2,S(L,J,K) ,

83 NEXT K

81 NEXT J

85 !

86 NEXT L

87 !\!"MOTOR MATRIX"\!

88 FOR L=1 TO 2

89 !"LEVEL ",;:1I,L

90 FOR J=0 TO 2

91 ! " "

92 FOR K=0 TO 2

93 ! r,6F2,r'i(L,J,K),

94 NEXT K

95 NEXT J

96 !

97 NEXT L

98 !\ GOTO 39

99 REM **********************

100 REM SET UP MUSCLE GEOMETRY

101 REM **********************

102 !\!"f'iUSCLE ANGLES:"

103 IIJPUT1 "tA\ ",A(0)\ INPUT1 " t!2\ ",A<1)\ IMPUT1

104 A(U)=A(0)*P\ A(1)=AC1)*P\ A(2)=A(2)*P

105 RETURN

106 REM ***********************

107 REM SET UP REFERENCE SIGNALS

108 REM *************************

109 !\!"REFERENCE SIGNALS:"

110 INPUT1 "X: ",0(3,0)\ IHPUT1 " Y: ",0(3,1)

111 INPUT1 " TONE: ",0(3,2)

112 RETURN

113 REM

114 REM

115 REM

f'3\ ",A(2)

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

SET UP DISTURBANCE 8 ANGLE**************************

116 !\! "DISTURBANCE:"

117 INPUT1 "MAGNITUDE: ",D\ INPUT1

118 A(3)=A(3)*P

119 RETURN

READY

ANGLE: ",A(3)

Gu£

HAS IT!

TexasInstruments

TI-99/4

Home Computer

• 26 K RAM extended Tl BASIC.

• 16 color graphics, and music and sound effects.■ High quality 13" color monitor.

• 16 K RAM user memory.

CTCSDISC0UNT PRICE FOR THE COMPLETESYSTEM CONSOLE & 13" COLOR MONITOR

$1099

Price subject to change without notice. Refunds guaranteed.

-n

CTC The Computer People

San Diego's largest Discount Computer & CalculatorStore. 5560 Ruffin Road, San Diego. CA 92123

Pleats ship mo the following merchandise.Tl & HP CALCULATORS

Tl-Programme

Hex-Octal Calculator

S 4995s

TI-58C

programmable constant memory

99.95 $

TI-59

programmable mag cards

219.95 S

TI-50

slimline scientific

33.95 S

TI-5025

printing handheld

69.95 S

TI-5225

business desktop

179.95 S

TI-1025

5 function w/memory

10 95 S

TI-1000

5 function

8.95 S

Spelling B

electronic spelling aid

25.95 S

Speak S Spell

spelling aid that talks!!

59.95 5

HP33E

programmable scientific

76.95 S

HP-38E

programmable business

98 95 S

HP-92

desktop business

399.95 S

HP-67

programmable w/mag card

361.95 S

HP-97

desktop programmable

597.00 !

Tl NOME COMPUTER PRODUCTS

PHC004M TI-99/4 Home Computer $1099.00 S..

PHA2000 Dual Cassette Cable 6.95 I.

PHP1100 Remote Controls (Pair) 29.95 S_

PHP1500 Speech Synthesiier 149.95 $.

COMMAND MODULES

PHM3000 Diagnostic

PHM3001PHM3002PHM3003PHM3004PHM3005PHM3006PHM3007PHM3008PHM30D9PHM30I0

29.95 S.

Demonstration 69.95 $.

Early Learning Fun 29.95 S _

Beginning Grammar 29.95 $.

Number Magic 19.95 s_

Video-Graphs 19.95 s_

Home Financial Decisions 29.95 s.

Household Budget Management 44.95 $.

Video Chess 69.95 S.

Football 29.95 s.

Physical Fitness 29.95 s.

TOTAL *.

Shipping, add 3% S _

Cal. residents add 6% tax $.

Amount enclosed $ _

(check or money order)

(Credit Cards for Sales of $700 or less)

Charge to my Q VISA Q MASTER CHARGE

Acct # Bank # Exp. Date

Name

Street or P.O

% City

. State.

-Zip-

August 1979 © BYTE Publications Inc 111

Listing 4: A sample session with the simulator in listing 3. When the simulator is in-itialized, the user is allowed to set up several values: the 3 muscle angles, the referencesignals, and the disturbance magnitude and angle. For each iteration the values for level1 and level 2 are output in the following form. First the reference signal for the par-ticular muscle is printed. The perceptual signal is printed on the next line, just to the leftof the reference signal, and the output signal is printed to the right. This is repeated forevery muscle.

RUN

MUSCLE ANGLES:

tf\\ 30 I12\ 150 #3\ 270

REFERENCE SIGNALS:

X: -30 Y: 40 TONE: 175

DISTURBANCE:

MAGNITUDE: 0 ANGLE: 0

ITERATION ft 1

REFERENCELEVEL 2 PERCEPTUAL SIGNAL OUTPUT

-30.00 SIGNAL 40.00 SIGNAL 175.00

-18.19 -20.76 38.50 20.55 187.25 80.50

LEVEL 1

80.29 121.81 39.19

74.52 73.35 109.52 110.46 37.83 36.14

ITERATION It 2

LEVEL 2

-30.00 40.00 175.00

-32.12 -19.13 45.65 10.29 163.72 61.33

LEVEL 1

52.49 90.75 31.91

47.36 47.64 82.67 82.54 27.25 28.61

ITERATION ft 3

LEVEL 2

-30.00 40.00 175.00

-29.56 -18.68 37.28 12.56 177.48 67.63

LEVEL 1

61.51 98.87 36.40

55.96 55.93 89.92 89.89 33.67 33.22

ITERATION ft 4

LEVEL 2

-30.00 40.00 175.00

-29.54 -18.83 40.19 12.57 172.81 65.13

LEVEL 1

58.8753.51 53.52

96.52 33.73

87.72 87.74 30.57 30.64

DISTURBANCE:

MAGNITUDE: 40 ANGLE: 135

ITERATION ft 1

LEVEL 2

-30.00 40.00

-72.05 2.40 82.15 -8.75

LEVEL 1

59.40 54.60

52.56 63.30 63.87 16.98

175.00173.67 65.75

76.9057.11 93.27

Listing 4 continued on page 114

Data listing subroutine. Thissubroutine is called after every com-plete iteration of both levels. It printsonly the perceptual signal, referencesignal, and output signal from the 3systems at each level.

Running the Program

After the RUN command is given,the program asks for all adjustableparameters and then does 5 itera-tions, printing out the values of allsignals each time. It then issues aprompting message, the answer towhich determines what happens next.The C command means do 5 moreiterations. The P command causes thesensory and motor matrices to beprinted out. To get an idea of the timescale on which human level-1 andlevel-2 systems work, imagine thateach iteration takes about 1/20 of asecond. (If you are looking for mentalexercise, you might adapt the plotterfrom part 2 to show the variables inthis simulation.)

What the Simulator Shows

There has always been a problemin conventional models of the brainthat have to do with coordinated ac-tions. The standard description is thatsomething high in the brain thinks ofa general command like "push!" andsends the equivalent signals down-ward toward lower systems. Thoselower systems receive the generalcommands, and elaborate on them,turning them into more detailed com-mands at every step. At the lowestlevel, all of the detailed commandsconverge into the final commonpathway, the relatively few channelsrunning from the spinal cord to themuscles. There, at last, the neuralsignals are turned into tensions thatcreate motions that create behavior.

The problem that nobody has everbeen able to figure out is how a sim-ple general command gets turned intospecific commands that will have ef-fects that satisfy the general com-mand. Unfortunately, neurology isfull of sentences that sound like ex-planations but are really restatementsof the effect that is to be explained.When such sentences are uttered,they create the impression that theproblem has been solved and needsno further investigation.

The simulator described hereshows a different way for commandsto get turned into actions. The com-mand that specifies an X force doesn't

112 August 1979 © BYTE Publications Inc

it's on the dou

INTRODUCING — LOUMAR MANAGEMENT SYSTEMS SOFTWARE

Q

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 sizedbusinesses. 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, ACCOUNTSPAYABLE AND PAYROLL. Each module may be used separately or in combination with any other module. Supplied on disk asrun-time modules. Source not available.

All software is written in CBASIC II 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 pre-sented reports and manuals • Single or multiple client capabilities.

HARDWARE SPECIFICATIONS

The end user's microcomputer must satisfy the following require-ments:48k RAM

Dual floppy disk system

Printer with tractor. All printing is done in 80 col. formatCRT with at least a 64 character by 16 line displayCP/M and CBASIC II

Write for our brochure - Dealerships still availableContact: Distributor

MISSION CONTROL • 2008 WILSHIRE BOULEVARD, SANTA MONICA, CA 90403 • (213)829-5137

PAYROLL: Up to 500 employees - $550.

ACCOUNTS RECEIVABLE: Up to 1000 customers and 1000 monthly

transactions — $550ACCOUNTS PAYABLE: Up to 1000 vendors and 1300 monthly

transactions — $400GENERAL LEDGER: Up to 200 accounts with 2000 entries -

$450

Circle 237 on inquiry card.

BYTE August 1979 113

Circle 54 on inquiry card.

ControlSystem

Software

(th« jrx>y« fxcluges wtM run on ir zaof — based CP/M' system.

'03 -irdttrmHrx o' V.«arch

(S + V2) (S + 1)

(s + 5)2(s + 50) (s+100)

' is 3 softwa

development house locateMidwest. COMPCO has <erf software products,. custom and contract■5MPC0 is a distributor o(,

iter systems and also ;1 a) Robotics LSI -11* syste

r.»rt. .M digital Sauiorrwnt Corp

ompco

North Port Washington Road'=.3217 414/35 '

Listing 4 continued from page 112:ITERATION n 2

LEVEL 2

-30.00 40.00

-12.37 -16.21 21.01 20.17

LEVEL 1

66.48 98.91

59.89 69.94 90.08 54.02

175.00180.28 62.52

26.1425.92 50.56

ITERATION ft 3

LEVEL 2

-30.00 40.00 175.00

-31.36 -17.12 49.55 10.51 167.41 64.63

LEVEL 1

58.02 92.26 37.01

52.07 62.22 87.97 48.88 29.19 58.92

ITERATION U 4

LEVEL 2

-30.00 40.00 175.00

-29.97 -16.26 37.42 11.18 175.04 66.18

LEVEL 1

61.10 93.62 38.75

54.44 64.92 88.54 49.97 32.97 61.01

ITERATION it 5

LEVEL 2

-30.00 40.00 175.00

-29.55 -18.39 39.87 11.75 173.88 64.95

LEVEL 1

60.31 93.10 36.81

53.94 64.25 88.17 49.52 30.93 59.18

simply get partitioned among themuscles. It is a request for a percep-tion, not a command to act. Thesystem receiving this request per-ceives the X force through a con-vergent, not a divergent network. Adivergent network cannot be treatedas a function; a convergent networkcan. When the perceived X forcematches the reference X force, thecause of the perception must be in oneof the states that will, in fact, createthat component of force in the Xdirection. There is an infinity of dif-ferent muscle tensions that couldcreate the same component of force.If I were not also specifying 2 otherfunctions of force, there would be noway to predict the exact muscle ten-sions that would exist when the Xcontrol system experienced zeroerror.

Since we are specifying 3 functionsof 3 variables, and setting referencelevels for the value of each function,

there is only one state of the musclesthat will allow zero error in all 3systems at once. What we have done,in fact, is set up an analog computerfor the simultaneous solution of 3equations in 3 variables.

This simulator shows that thereference signals for the lower-levelsystems do not correspond to any oneoutput from a higher-level system.Nevertheless, the perceptual signalsensed by each higher-level systemmatches the corresponding referencesignal. The higher systems each sensea different function of the set oflower-level perceptual signals. In-dependent control is possible onlybecause the functions represent in-dependent dimensions of variation ofthe lower-level world.

In the environment of this 2-levelsystem, there is no such thing as Xforce, Y force, or tone. There aresimply 3 tendons in various states oftension. I have created the idea of

114 August 1979 © BYTE Publications Inc

Design ofDigitals

Book 2

Design ofDigital Systems

Book 3

Design ofDigital Systems

Book6

DesigningDigital Systems

Two programmed learning courses:hardware and software; theoryand application.

WlWl WW

Design of Digital Systems ■ six volumes

ADVANCED COURSEDESIGN OF DIGITAL SYSTEMS

Six large-format volumes — each 11 % x 8Vi".

CONTENTS

The contents of Design of Digital Sys-tems include:

Book 1: Octal, hexadecimal and binarynumber systems; representation of nega-tive numbers; complementary systems;binary multiplication and division.

Book 2: OR and AND functions; logicgates; NOT, exclusive-OR, NAND, NOR andexclusive - NOR functions; multiple inputgates; truth tables; DeMorgan's Laws;canonical forms; logic conventions; Kar-naugh mapping; three-state and wiredlogic'.

Book 3: Half adders and full adders; sub-tractors; serial and parallel adders; pro-cessors and arithmetic logic units (ALUs);multiplication and division systems.

Book 4: Flip-flops; shift registers;asynchronous counters; ring, Johnson andexclusive-OR feedback counter; randomaccess memories (RAMs); read-onlymemories (ROMs).

Book 5: Structure of calculators; key-board encoding; decoding display data;register systems; control unit; programROM; address decoding; instruction sets;instruction decoding; control programstructure.

Book 6: Central processing unit (CPU):memory organization; character representation; program storage; address modesinput/output systems; program interruptsinterrupt priorities programming; assembiers; executive programs, operatingsystems, and time-sharing.

OUR CUSTOMERS

Design of Digital Systems has beenbought by more than half the 50 largestcorporations in America, and by Motorola,Intel, DEC, National Semiconductor, Fair-child, General Instrument, Hewlett-Packard, Heath Co., M.I.T., NASA, Smith-sonian Institute, Bell Telephone Labs. Andmany, many more, as well as corporationsand individuals in over 50 countries.

BASIC COURSE

Digital Computer Logic & Electronics

CONTENTS

Digital Computer Logic and Electronicsis designed for the beginner. No mathe-matical knowledge other than simple arith-metic is assumed, though you should havean aptitude for logical thought. It consistsof 4 volumes — each HVi" x 8V4" — andserves as an introduction to the subject ofdigital electronics.

Contents include: Binary, octal anddecimal number systems; conversion be-tween number systems; AND, OR, NORand NAND gates and inverters; Booleanalgebra and truth tables; DeMorgan'sLaws; design of logical circuits using NORgates; R-S and J-K flip-flops; binarycounters, shift registers and half-adders.

NO RISK GUARANTEE

There's absolutely no risk to you. Ifyou're not completely satisfied with yourcourses, simply return them to GFN within30 days. We'll send you a full refund, plusreturn postage.-

TAX DEDUCTIBLE

In most cases, the full cost of GFN'scourses can be a tax deductible expense.

PHONE ORDERS- FREE

To order by phone, call (603) 224-5580with your credit card information. It won'tcost you a dime, because we'll deduct thecost of your call from the price of thecourses you order.

TO ORDER BY MAIL

You may use the order form below if youwish, but you don't need to. Just send yourcheck or money order (payable to GFN In-dustries, Inc.) to the address below. If youdon't use the order form, make sure youraddress is on your check or the envelope,and write "DDS" (Design of Digital Sys-tems). "DCLE" (Digital Computer Logic &Electronics), or "both" (both courses) onyour check.

There are no extras — no sales tax. Andwe pay all shipping costs.

We also accept company purchaseorders.

AIR MAIL

The prices shown include surface mailpostage anywhere in the world. Air mailpostage costs an extra $10 for bothcourses (10 volumes).

DISCOUNTS

Call or write for details of educationaland quality discounts, and for dealer costs.

SAVE $5

If you order both courses, you save $5.Order at no obligation today.

&

F

GFN Industries, Inc.

Bldg. 7-20203 Loudon RoadConcord .

NH 03301

Call (603) 224-5580 toorder by phone - free.

7 days, 24 hours

Circle 143 on inquiry card.

Order free by phoneNo sales taxNo shipping chargesMoney-back guaranteeTax deductibleSave $5

To: GFN Industries, Inc., Bldg. 7-20, 203 Loudon Road, Concord, NH 03301

Please send me

sets of Design of Digital Systems $19.95 $

sets of Digital Computer Logic & Electronics $14.95

sets of both courses $29.90

Enclosed is check/money order (payable to GFN Industries, Inc.) for total $

NAME

ADDRESS

CITY/STATE/ZIP R8

BYTE Augusl 1979 115

these 3 forces, by designing inputfunctions that will sense them. I couldhave made one system that wouldsense force along a set of curved linesrepresenting direction, and anotherthat would sense force along a dif-ferent set of curved lines crossing thefirst set; a coordinate system withoutany straight lines in it. This wouldresult if the sensors were nonlinear, aswe know they are. It would havemade no difference, except for thefact that there would not have been asimple label like X force to assign as ameaning for the perceptual signals. Itwould still be possible to specify 3reference signals and thus set the 3perceptual signals to specific values,thereby creating a specific state oftension in all 3 tendons that wouldautomatically resist disturbances.The way in which the external situa-tion is represented is almost im-material, as long as 3 reasonably in-dependent perceptual functions arecreated. There is no coordinatesystem in the outside world. Thebehaving system makes up one of itsown.

If there were sensors on each mus-cle to detect muscle length as well asforce, we could add 3 more controlsystems at level 1, and 3 more in-dependent aspects of the externalworld to control at level 2. In fact,there are muscle-length sensors, and Iam working on several models thattake them into account.

If you now imagine 500 to 800muscles involved with at least twiceas many level-1 control systems(length and force surely; rate ofchange highly likely), you will beginto perceive the richness of the world inwhich level-2 systems exist. Add tothis the millions of sensors for heat,cold, vibration, joint angle, light,sound, taste, smell, hunger, pain, ill-ness, angular acceleration, joint com-pression, and so on, and you mightbegin to glimpse the complexity of thereal system we are modeling. Sinceperceptions that arise from sourcesother than direct effects of musclesexist in large numbers, there canclearly be far more level-2 systemsthan level-1 systems, although thenumber of level-2 systems that can

BowlingBookkeeper

Tested in Actual League Usefor Two Seasons

keepert will list each bowler's high sertes of thebowler's high game of the year every weekBowling Bookkeeper- prompts the user through each \t so even a non-computerite can easily use the package.The Bowling Bookkeeper - runs under standard CP/M*.

The entire Bowiins Bookkeeper; system which includes a startup program, a score entering program, a posting program, and anrecovery program costs $400 A complete computer systemiisting of an Aftos 8000-1 microcomputer, a Mteroterm MlM£linal, CP/M* operating system, and the Bowling Bookkeepers isable from COMPCO for under $5,000.

ark o! COMPCO

of Dm

$400 for Complete Pact

ompco

COMPUTER SPECIALIS

8705 North Port Washington Road Milwaukee, Wis 53217 414/351-

~

act independently at the same time islimited by the total number of com-parators available at level 1.

Perhaps you can now see why thisapproach to a model of a human be-ing (rudimentary is it is at this point)has some powerful implications forthe building of robots. I suggest a for-mal distinction between a robot (animitation of a living system) and anautomaton (a device which automati-cally produces complex actions). Anautomaton is designed to create pre-selected movements; a robot isdesigned to control preselected per-ceptions (its own). In order for anautomaton to produce precise andrepeatable behavior, it must be builtso strongly that normal disturbancescannot alter its movements, or it mustbe protected from disturbances thatmight interfere with its movements.In order for a robot to create, foritself, precise and repeatable percep-tions (and thus precise and repeatableconsequences of behavior), it needonly perceive precisely, have asufficiently high error sensitivity, andbe capable of producing forces aslarge as the largest disturbances thatmight reasonably occur.

There is much more that can besaid about the general relationship ofone level of control to another, butthis installment has raised enoughpoints to ponder. To prepare for part4, you should run this simulator andobserve what happens to all of thevariables in it. Try keeping the distur-bance constant in magnitude androtating its angle; try altering themuscle angles; change line 3 to usedifferent error sensitivities (G(x)) andslowing factors (K(x)). Use the Ccommand for longer iterations, andconvince yourself that a steady statehas really been reached. See whathappens if the muscle tone isn't sethigh enough (there is a very goodreason for muscle tone control). Do aseries of iterations with slowly chang-ing reference signals, and plot muscletension against each reference signal.Get the feel of this small extract of thewhole human hierarchy because inpart 4 we will widen the field of viewto include everything, and we willbegin to look at some experimentswith human subjects. These ex-periments will be noninvasive,nondestructive — more like videogames than science — but far moreuseful than the games. ■

116 August 1979 @ BYTE Publications Inc

Circle 56 on inquiry card.

pw

TH€Y

6*

aoc:

"!»&»«;

gj cS-i*;

gagjjjMMP

€R€

■ \ ^ J m

maniP""*1 or proflf^' ^ code, *aD

mental =.rie -lS for ££,£„, c*>i**

,,re hand aSbC soUrce coo« s(grun9 . rer,e\N ^eI* VOW re ^rUeVoursc, and aSs_y x ren

a »» ff„lW obieC; rev«se yo* jjj tape and ren

easier W *' clean proQ"1 ,imum °* ** ^T<rt«

numbered -er to w vean prog'* ma1t-,rruirn °'** ___ "~~ZZ&&\

rooram, ** J^S*. ^ earW «* «" J^St^^^^St^^S

VKZ

New fromLI 1 l°c Ji^-—"— Osborne ond Associates!

" -■ """ Z80 ASSEMBLY LANGUAGE PROGRAMMING

by Lance A. Leventhal

□ Hot off the press, here's the Z80 assembly language and its use in Lance Leventhal'sgraphic style. A parallel to his earlier book 6800 LANGUAGE PROGRAMMING, it coversthe Z80 instruction set in depth and programming techniques for its use. Included are morethan 80 sample programs in source and object code, Z-80 I/O devices and interfacingmethods, assembler conventions, and 8080A/8085 vs Z-80 comparisons. $9.50

6800 LANGUAGE PROGRAMMING by Lance A. Leventhal $9.50

Please use order form on page ifii * "

Please send me the following BITS PROGRAM!O Z80 □ 6800 □ 6502 D 8080A □

IMERPADS

□ 8080A □ 1802 @ $2.50 each

_pads

Post. &Handl. $-

TOTAL $_1B2089

BYTE August 1979

TRS-80

AT LAST! HIGH-QUALITY SOFTWARE

AT MASS-PRODUCTION PRICES.

WORD PROCESSOR DOS & 16K $39

Be selective! Avoid 'word processor' converted fromanother system. It is hard to load (an object program),and the worst is you cannot store your text file in disk.Our WORD-IM is the first word processor specificallydesigned for TRS-80 that uses disk storage for text.Written in BASIC. No special hardware, no text sizelimit. Use for letters, manuals & reports.

MAILING LIST DOS & 16K $35

It lets you maintain data base and produce reports &labels sorted in any field. 500 labels/disk. Randomaccess. 2-digit selection code used.

INVENTORY DOS &16K $39

While others use inefficient sequential file, we use 9-digit alphanumeric key for fast on-line random access.Record has key, description, level, safety level, orderamt., unit cost & price, annual usage, location andvendor code. Reports give order info, performancesummary, etc.

KEY RANDOM-ACCESS UTIL DOS & 16K $19

Lets you access a record by specifying a key. Featureshashing, blocking, buffering technique, auto I/O errorretry, etc.

DISKETTE DATA BASE DOS & 32K $49

You can use it to maintain a data base & producereports without any programming. Define fields, type,screen & report formats on-line. Almost use up all 32K.

ACCOUNT manage client accounts & accountreceivable. Remark fields for general use. Automaticbilling & transaction recording. 32K req. DOS $59.

SORT & LINKED-LIST ACCESS UTIL Lev. II

Unlimited # of sort-keys. All data type. Link & unlink arecord in a list. 4K. $10 each or $16 both.

Lev. II & 16K $29

CASSETTE WORD PROCESSORLevel I or II cassette software:

data base manager, inventory 16Kcheck balance & stock security 4K

$20 each$10 eachor $15 bothOur competitors offer $99 cassette word processor,$90 sequential 'on-memory' inventory, inflexible mailsystem that does not produce report, 16K data base.Compare all these basic features first. If still notconvinced, send $1 and 2 self-addressed stampedenvelopes.

MICRO ARCHITECT

96 Dothan St.Arlington, MA 02174

Text continued from page 16:

Conditional Expressions

Clearly, the meaningful use of predicates andrecognizers requires the existence of language constructsto modify the program How. Such constructs are calledcontrol structures. One basic control unit in LISP is calledthe conditional expression. In M-LISP it is written:

[<p1>-<e1>;<p2>-<e2>;...f-<e„>]

The meaning of such a conditional expression is asfollows:

Each <p,> is a predicate; the <e,>s are arbitraryLISP expressions. We evaluate the <p,>s from leftto right, finding the first which evaluates to true.The value of the conditional expression is the valueof the corresponding <e,> . If none of the <p,> sare true, then the value of the conditional is < e„ > .Notice that this last case is really forced upon ussince the last predicate is the constant t. It is com-mon to read t used in this context as "otherwise."

We extend our M-LISP to S-LISP mapping to include thisnew construct, mapping it to:

(COND (< predicate, > T < expression, > T)(<predicate2>r < expression > T)

(T< expression,, > T))

The evaluation of a conditional expression is differentfrom the technique we have used in previous LISP in-structions. Previously we have insisted that we evaluateall of the operands in an instruction. In the conditionalexpression, we evaluate the minimal part of the condi-tional which gives us a true predicate; then we evaluatethe corresponding expression.

For example: (COND ((ATOM 'A) 'FOO) (11)) givesvalue FOO, since (ATOM 'A) gives T. (COND ((ATOM

'(A)) 'FOO) (T 1)) gives value 1 since (ATOM '(A))gives ML.

We have introduced all the instruments in the LISP or-chestra. Now it's time to make some music.

The Factorial Function

Our first example is the venerable LISP program tocompute the factorial function:

1 if n is 0n! =nX(n-l)! if n±0

We want to convert this description into a LISPalgorithm. The "if" structure can be converted into a con-ditional expression, and we can name the new operationfact. We assume our LISP machine has such a multiplica-tion operation named times; we also assume the existenceof a simple subtract-by-one function, subl. Here's thebody of a factorial algorithm in M-LISP:

[eq[n;0]~l;t — times[n;fact[subl[njj]]

Notice the occurrence of the function name fact in the

118 August 1979 © BYTE Publications Inc

Circle 214 on inquiry card.

The problem will solve itself before weget tired of reducing.

body; it is the name of the function we are defining, andsomehow we must associate that name with the body.We symbolize that association using "< = ". Forexample:

fact[n]< =[eq[n;0]~l;

t — timesln;fact[sublln]]]]

Here is its pretty-printed translation in S-LISP:

(DEF FACT (N) (COND ((EQ N 0) 1)

(T (TIMES N (FACT (SUB1 N))))))

The new ingredient in these definitions is the use ofrecursion. A typical recursive definition has severalcharacteristics:

• The body of the definition should be a conditionalexpression. A definition like foo{x]< =baz[foo[bar[xjJl will cause nothing but grief. Theconditional expression will contain two basic parts:the termination case and the general case(s).

• The termination case describes what to do when aprimitive data structure is recognized. We considerthe integers built from zero, using the successorfunction, addl. Therefore, our termination case inFACT involves recognition of 0, and terminateswith value 1.

• The general cases involve "composite" data struc-tures. We can decompose a positive (composite) in-teger down to zero by a sequence of subtract-by-one operations. The essential idea is that reducingthe complexity of the argument in a recursive callwill thereby reduce the complexity of the problem.That's an old trick; what recursion says is that wecan solve the original problem by reducing it to asimpler case of the same problem. If we persist, theproblem will solve itself before we get tired ofreducing; it's like dieting.

Recursive definition is similar to inductive description,like those we gave for defining lists or the M-LISP toS-LISP mapping. The techniques involved in finding theright inductive steps are similar to those involved in find-ing the right decomposition in a recursive definition.Recursive definition is a powerful descriptive technique;fortunately it can also be implemented as a very efficientcomputational mechanism.

Equal

For a further example, assume that we want to test theequality of two lists, where equality means that each ele-ment of two lists is identical and the order in which thoseelements occur is identical. The identity relation also ex-tends to sub-elements of lists. For example:

equal

(A BC) (AB C)(A(B C)D) (A(B C)D)()()

nonequal

(A BC) (AB D)(A(B C)D) (A D(B Q)(A(B(C)D)) (A BCD)

Let EQUAL be an algorithm to compute this extendedequality; it will be recursive. Regardless of the complexi-ty of objects, all we need to do is find the right way todecompose them, and then pounce on the pieces. Thedecomposition operators we have for lists are FIRST andREST. We also have to stop the decomposition. In FACTwe tested for the occurrence of zero; in EQUAL we testfor the occurrence of an empty list, and since we areassuming that elements of a list may either be sublists oratoms, we need to test for the occurrence of an atom.Let's try the simplest case first, the empty list:

(DEF EQUAL (X Y)(COND ((NULL X) ...?)

What should we do? If x is empty, then we will only haveequality if y is also empty, otherwise we will have an ine-quality:

(DEF EQUAL (X Y)

(COND ((NULL XXCOND ((NULL Y) T)

(T NIL)))...?)

Note that we embedded a conditional expression within aconditional expression. Note also that the interior condi-tional returns either T or NIL; but that's what we wanted

It's

LOGIC

for graphics!

NEW

ASSEMBLY LANGUAGE

3D GRAPHICS

FOR THE APPLE II...

Our 3D packages allow you to animate 3D or2D data bases created with standard XYZ coor-dinates.The two users manuals (90 pages total)are written at different technical levels to give allApple users a quick understanding of accessand uses from BASIC and assemblylanguage. The small 8K memoryrequirement lets you use thesubroutine with most of youreducational, scientific, andgame programs.

S45 (available August 25,1979). Disc and relocat-able cassette optionavailable.

Were open 9 to 6 Monday thruFriday central time Give us a call

The engineering & graphics people

(217)367-0299

LOGIC

BoxV, Savoy, IL 61874

Circle 353 on inquiry card.

August 1979 © BYTE Publications Inc 119

since EQUAL is to encode a predicate and T and NIL areour representations of the truth values t and /. Note toothat we depend on the order dependence of the condi-tional evaluation; we won't test the (NULL Y) expressionunless (NULL X) is true. We won't get to the "... ?" condi-tion unless (NULL X) is false.

We can still have x non-empty, and y empty; let's takecare of that:

(DEF EQUAL (X Y)

(COND ((NULL X)(COND ((NULL Y) T)

(T NIL))((NULL Y) NIL)...?)

Now the "... ?" has been reduced to the case that bothlists are non-empty, and we can massage the pieces withFIRST and REST. We look at the FIRST pieces; if they'reequal, then our decision on the equality of the originallists depends on the equality of the remainders (or RESTs)of the lists. If the FIRSTs are not equal, then we can stopimmediately with a false indication. This analysis yieldstwo cases: if the first elements are atomic, then use EQ tocheck their equality; otherwise use EQUAL itself on thefirst elements. Here we go:

(DEF EQUAL (X Y)(COND ((NULL XHCOND ((NULL Y) T)

(T NIL))((NULL Y) NIL)((ATOM (FIRST X))(COND ((ATOM (FIRST Y))(EQ X Y))

(T NIL)))((ATOM Y) NIL)((EQUAL (FIRST X)(FIRST Y))(EQUAL (REST X)(REST Y)))(T NIL))))

Reverse

So far our examples have been either numerical or

predicates. Predicates only require traversing existinglists; we will certainly want to write algorithms whichbuild new lists. Consider the problem of writing a LISPalgorithm to reverse a list x. There is a simple, informalcomputation: take elements from the front of x and putthem onto the front of a new list y. Initially, y should be( ) and the process should terminate when x is empty.

For example, reversal of the list (A B C) would producethe sequence:

X

y

(A BC)

()

(BC)

(A)

(C)

(BA)

()

(CB A)

The reverse function will build the new list by con-catenating the elements onto the second argument of

reverse[xj< =rev ' [x;( )]rev'[x;y]< =[null[xj~y;

t^rev 'lrest[x];

cortcat[first[xl;yl]]

Since y was initialized to f J we are assured that theresulting construct will be a list.

We leave it to the reader to translate this algorithm intoS-LISP.

Summary

Those of you who have already heard about LISP pro-gramming know that LISP's two major characteristicsare: lots of parentheses, and strange function names likecar, cdr, and cadadr. By now you should at least under-stand why the parentheses are used, if not totally under-stand why the representation is a benefit rather than acurse.

LISP's second characteristic is definitely a blemish.More to the point, it's a commentary on the state of LISP

''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 of U.S.A. Send $8.00 US CurrencyInternational 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

120 August 1979 © BYTE Publications Inc

Circle 33 on inquiry card.

NEECO

PET 2001 — 32K

PROUDLY ANNOUNCES THE NEWEST

PET MICROCOMPUTERS BY COMMODORE!

The PET™ is now a truly sophisticated

Business System with theannouncement of these Peripherals.

The PET'", incorporated wllMtie Floppy Disk and Printermakes an ideal business system tor mosl professionaland specialized holds medicine law denial, research.

■■:■-■■■.'■■ !'■■' ■'; i .:': ;■■..: -■ :' ■ :■■■■■ ■'.:,

servaiion, eic.. The PET™ Business System as amanagement tool, delivers information to all levels ofBusmess. previously attainable only with equipmentmany times more e«pensive The PET" BusinessSystem is one ol thi■ inost \xr-.\ efficient business loots

today it offers a wide (aiujc ■■>■ appiiit.ai'anstrom loggingi-i;jnagi'rr,Gnt ;/i,iii>gy n '"^|or corporations lo organizingaccounts and inventory control ot small businesses Hereare |US1 a tew of Ihe cost-saving uses rn the corporation,professional ottice or small t>u sin ess- stock control.

purchasing forecasting, "i.'inu^ai-hiring costing, customerrecords mailing lists, etc The PET'" Floppy Disk andPrinter, a compatible business system at aprice - Take a closer too* ,-ji Blew PfioehefafS

t f • • I « • I »

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

PET C2N 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 ARE FULLY TESTED BY NEECO BEFORE SHIPMENT. ALL PET'S AREWARRANTEED (BY NEECO) FOR 1 FULL YEAR! NEECO IS A FULL CUSTOMER-ORIENTED BUSINESS. PLEASE CALL FOR ADDITIONAL INFORMATION. ALLUNITS ARE IN STOCK & READY TO SHIP. FULL SOFTWARE AVAILABLE!

^^^^^^^^^^^^^^

gZOMPUTHINK .4 & .8 MEGABYTE DISKDRIVES FOR THE NEW 16/32K PETS!

DISK SYSTEMS INCLUDE DISKMON OPERATINGSYSTEM IN ROM AND INTERFACE TO 16/32 PETS!

FOR 8K PETS

(small keyboards)

.4 Megabytes of Disk

Storage for 8K PETS!

(Requires Expandamem)

400K-8S DISK SYSTEM INCLUDES RANDOM

ACCESS IN DOS-LOADS 20K IN 4 SECONDS!

$1295

24K Expandamem Memory ^52532K Expandamem Memory s615

• Dual Minifloppy Drives with 200K per diskette side for total 400K 800K on line

• 800K model accesses all 4 diskette sides via dual read and write arm system.

• Dual Density Hardware and DOS loads 20K (with verification) in 4.2 seconds complete.

• DISKMON (DOS) adds 17 commands to BASIC including Random Access and printer support

• System comes complete with plug in internal board containing 8K RAM, DOS. and Disk ControllerHardware—Board plugs directly onto internal memory expansion pins.

• System does not utilize IEEE or USER Port, system functions directly from memory port.

• All DISKMON DOS commands reside interactively with BASIC —disk directory command andformat command do not interfere with program in RAM—DOS command were designed forsimplicity of use. System was manufactured for heavy commercial use.

• System installs completely in less than ten minutes—immediately ready for use.

• *1295 and M595 prices include all hardware. DOS. complete user manual, and demo/utility diskette

• Available software includes PLM Compiler (*250) Relocatable Assembler ('70), Source-EditorProgram ('70), Autolink Linking Loader (»70), and a complete Database system (Pagemate *495)

• Call or write for complete product information and specifications—User manual *10

(PRODUCT AVAILABILITY IS AUG/SEPT—CALL FOR INFO)

ALL 16/32K MODELS INCLUDE AN 400K-16N M295

INTERNAL PLUG-IN INTERFACE 400K-32N M295

BOARD CONTAINING DOS. 8K OF 800K-16N M595

RAM, AND CONTROLLER 800K-32N s1595

CALL OR WRITE FOR A FREE COPY OF OUR NEW JULY CATALOG!

NEW CENTRONICS 730 PRINTER FOR PET!

• NEWEST TECHNOLOGY FROM CENTRONICS • 50 CPS • 80 CHARACTER LINE

• 10 CPI • 7x7 DOT MATRIX • HANDLES ROLL FEED. PIN FEED

m PAPER • UPPER & LOWER CASE—M099 PRICE INCLUDES

— - INTERFACE TO IEEEPQRT. AVAILABLE AUG/SEPT.

$1099

TRS-80 USERSI-THE

MODEL 730 IS AVAILABLE FOR USE WITHTHE TRS-80. PRICEINCLUDES CABLE

only

$995

WECANNOTLISTALLOF OUR SOFTWARE AND HARDWARE PRODUCTSCALLOR WRITE FOR OUR*FREE*SOFTWARE/HARDWARE DIRECTORY

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

NEECO

NEW ENGLAND ELECTRONICS CO., INC.

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

(617)449-1760

MASTERCHARGE OR VISA ACCEPTEDTELEX NUMBER 951021, NEECO

Circle 282 on inquiry card.

BYTE August 1979 121

DP SYSTEMS

SEMINARS

OF EXCELLENCE

. IMAGE ,' ES™!*™ \ RESOURCE "I PROCESSING, PROCESSING SHARING

''CAPACITY' COMPUTER ' QUEUEING ^|

PLANNING l CRIME , NETWORKS ,

SIX DYNAMIC 3-DAY SEMINARSBY THESE EXPERTS

DENNING

PERFORMANCE EVALUATION

WASHINGTON, DC. ■ OCTOBER 3-5, 1979

FARBER-JENSEN

DISTRIBUTED COMPUTER ARCHITECTURE

WASHINGTON, DC. ■ OCTOBER 8-10, 1979

ANDREWS-

STOCKH AM "SAWCHUCK

DIGITAL IMAGE PROCESSING

WASHINGTON, DC. ■ OCTOBER 24-26, 1979

BUZEN-DENNING-ARTIS

CAPACITY PLANNING

WASHINGTON, DC. ■ NOVEMBER 13-15, 1979

PARKER-ABBOTT

FIGHTING COMPUTER CRIME

SAN FRANCISCO ■ NOVEMBER 28-30, 1979

KLEINROCK

QUEUEING SYSTEMS

CHICAGO ■ NOVEMBER 28-30, 1979

Seminar Fee:$675

Call or write today:

(213)476-9747

P.O. BOX 49765, LOS ANGELES, CA.90049 (213)476-9747

programming, rather than the language. When we ex-amine the very low level representation of LISP opera-tions, we see that the primitive selection operations ofLISP data structure can be described as selecting eitherthe left or right branch of a binary graph. Car and cdr arethese selection functions, and cadadr is an abbreviationfor a composition of these operations. Since all LISP datastructures (in our simple subset, remember) must ulti-mately be representable as combinations of atoms andbinary graphs, then all algorithms must ultimately be ex-pressible as manipulations of graph structure involvingcar, cdr, and a function to construct new graphs, cons.

Most LISP programs are constructed in just such afashion. The result is unsatisfactory from at least twoviews. First, the programs become almost totally unread-able. Instead of couching the data structure abstractly in

terms of the concept ,recognizer: is dog[xj; selectors:

left eye[xj, tail[x],...; and constructor(s):

make_dog{xi;...xn]—, the programmer performs thetransformation mentally and gives us eq[cadr[x];DOG],cadaddr[x\, and cons[x; cons[z;yj...l, whichborders on gibberish. Neither the programmer nor areader has much chance of remembering what is goingon.

An equally serious problem is that this style of pro-gramming deeply intertwines conception and implemen-tation. Given that a new representation of "dog-ness" isrequired, the programmer must search out all areas ofprogram which use the arcane encoding and replace themvery carefully.

Essentially there are two solutions to this problem.One solution is to require the programmer to spell out de-tailed rules for data structuring a la Pascal. Of coursethere's no reason to suppose that the programmer's abili-ty to remain abstract will survive any better here. Indeedsince Pascal really supplies "abstract storage structures"rather than "abstract data structures," along with the re-quisite verbiage of a typed language, there are reasons tobelieve that the programming process will suffer in thelong run. The alternative is to supply the programmerswith an exceptional programming tool and an under-standing of abstraction, modularity and the power oftheir tool. It may be naive to believe that programmerscan be self-disciplined, but the alternatives are not at allattractive.

The other LISP articles in this issue explore detailed ex-amples of LISP applications. Throughout these articles arecurrent theme is the delicate balance between realisticabstraction and overspecification. One of the realwonders of LISP is that it allows you to work with ideas.

Traditionally, all LISP implementation problems havebeen dealt with in software. An exciting alternative is tobuild LISP machines in hardware, thereby raising theprogramming floor to a much more acceptable machinelevel than previously available. Several very healthy pro-jects exist, from re-microcoded machines, throughspecially constructed hardware, to experiments with verylarge scale integration LISP devices. For those readerswho are interested in more details, several of these effortswill be documented in an issue of the IEEE Transaction onComputers later in 1979. It is clear to me that LISP is onlybeginning to have an impact upon the computing com-munity. ■

122 August 1979 © BYTE Publications Inc Circle 364 on inquiry card.

5 STAR EDITION

fop users ofRadio Shack's TRS-80*

*****

5 STAR EDITION

for users ofRadio Shack's TRS-80*

TRS-80 TRANSFORMED WITHPROFESSIONAL SOFTWARE PACKAGES

AND MUCH MORE

Software /

with /ManualManual/ Alone

CP/M-operating system modified for use with TRS-80computer and disks. In addition to the standard CP/M utilities ofEditor. Assembler, Debugger etc.. we have added: DCV2 (Util-ity to convert system tapes to CP M files.) DISKAS & CASDISK{Utilities to back up files to tape and recover to disk.) MOVER(Program to transfer files with single drive systems) $145/S25

All items listed below operate inconjunction with the CPM operating system.

MAC — 8080 Macro Assembler. Full Intel macro definitions.Pseudo Ops include RPC. IRP, REPT, TITLE, PAGE, andMACLIB. Z-80 library included. Produces Intel absolute hexoutput plus symbols file for use by SID (see below) $1O0/$15SID — 8080 symbolic debugger. Full trace, pass count andbreak-point program testing system with back-trace and histo-gram utilities. When used with MAC, provides full symbolic

display of memory labels and equated values $85/$15

TEX — Text formatter to create paginated, page-numberedand justified copy from source text files, directable to disk or

printer $85/S15

DESPOOL — Program to permit simultaneous pnnting ofdata from disk while user executes another program from the

console $50/$1

Disk Extended BASIC — Version 5, ANSI compatible withlong variable names, WHILE/WEND, chaining, variable length

file records $300/$25

BASIC Compiler — Language compatible with Version 5Microsoft interpreter and 3-10 times faster execution. Pro-duces standard Microsoft relocatable binary output. IncludesMacro-80. Also linkable to FORTRAN-80 or COBOL-BO code

modules S350 $25

FORTRAN-80 — ANSI '66 (except for COMPLEX) plusmany extensions. Includes relocatable object compiler, linkingloader, library with manager. Also includes MACRO-80 (see

below) $400/925

COBOL-80 — ANSI 74 Relocatable object output. Formatsame as FORTRAN-80 and MACRO-80 modules. CompleteISAM, interactive ACCEPT/DISPLAY. COPY, EXTEND

S625 $25

MACRO-80 — 8080/Z80 Macro Assembler. Intel and Zilogmnemonics supported. Relocatable linkable output. Loader,Library Manager and Cross Reference List utilities included

S149/S15

EDIT-80 — Very fast random access text editor for text with orwithout line numbers. Global and intra-line commands sup-ported. File compare utility included $89 $15

PAYROLL SYSTEM — Maintains employee master file.

Computes payroll withholding for FICA. Federal and Statetaxes. Prints payroll register, checks, quarterly reports and W-2forms. Can generate ad hoc reports and employee form letterswith mail labels. Requires CBASIC. Supplied in source code. $605 S35

APARTMENT MANAGEMENT SYSTEM - Financial

management system tor receipts and security deposits ofapartment 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. . $605 $35INVENTORY SYSTEM — Captures stock levels, costs,sources, sales, ages, turnover, markup, etc. Transaction in-formation may be entered for reporting by salesman, type ofsale, date of sale, etc. Reports available both for accountingand decision making. Requires CBASIC. Supplied in source

code $605 $35

CASH REGISTER — Maintains files on daily sales. Filesdata by sales person and item. Tracks sales, overrings, re-funds, payouts and total net deposits. Requires CBASIC.Supplied in source code $605 $35

CBASIC-2 Disk Extended BASIC — Non-interactive BASICwith pseudo-code compiler and runtime interpreter. Supports

full tile control, chaining, integer and extended precision var-iables etc $»0/$15

Flippy Disk Kit — Template and instructions to modify sin-gle sided 5'V diskettes for use of second side in singled sided

drives $9.75

Selector III — Multi (i.e. up to 24) Key Data Base Processor.

Comes with applications programs including Sales Activity, In-ventory. Payables. Receivables, Check Register Expenses,Appointments, and Client'Patient. Requires CBASIC Suppliedin source code. Enhanced version for CBASIC-2 . $345 $20

Lifeboat Associates, specialists in microcomputer disk software,is proud to offer the first professional disk-based language andutility package for the Radio Shack TRS-80 computer. Writtenby Microsoft, creators of Level II BASIC, the package runs ona TRS-80 system with 32K RAM, one or more drives andTRSDOS. The software is supplied on diskettes and consists of:

rUHTHAN a true relocatable machinecode compiler for ANSI FORTRAN X3.9(except COMPLEX variables).

MACRO ASSEMBLER a disk based

macro assembler utilizing Zilog mnemonicsand producing relocatable code.

LINKING LOADER to Ink edit andload FORTRAN and assembler modulesfor execution.

a complete

SUBROUTINE LIBRARY

library of subroutines existing as relocatablelinkable modules for FORTRAN or assemblerprograms—e.g., double precision squareroot, natural log, transcendentals, etc.

DISK TEXT EDITOR to create and

modify FORTRAN and assembler programsas disk files: also can be used as a generalpurpose text editor for correspondenceand other documents.

This high-powered professional software pack-age with full documentation is available at theDISCOUNT PRICE OF $*4t? f\ PER COMPUTER SYSTEM

150.

The Macro Assembler,Loader, Editor, and CrossReference Utilities alone . $QO

The Fortran Compiler, Loader,Editor, and extensive library ofscientificfunctionsalone . $ftP)

G2 Laval III BASIC by Microsoft

Powerful extensions to Level II BASIC including 10 machinelanguage user calls, long error messages, keyboard de-bounce, graphics commands and much more. Price includesUser Manual, a Quick-Reference Card and a pre programmedcassette tape. $45

'Radio Shack and TRS-80 are trademarks of Tandy Corporation.

Lifeboat Associates

THESOFTWARE

SUPER-MARKET

TM

2248 Broadway, New York, N.Y. 10024Telex: 668-585(212)580-0082

Lifeboat Associates2248 BroadwayNew York, N.Y. 10024

Telex: 668-585

Please send the following:

Software

Price

manualalone

r, manualL ' alone

D Check □ UPS C.O.D.

shipping

D Visa □ MasterCharge

11. forC.O.D.

Total

Exp. Date

Signature

My computerconfiguration(specify disk system)

Address(No P.O. Box)

City

Zip

MINIMAX. THE COMPUTER TH

No microcomputer in the world canmatch Minimax incredible feature lorincredible feature.

Simply stated, Minimax is themost advanced, least expensive com-puter ever created.

NEVER BEFORE HAVE THESEFEATURES BEEN AVAILABLE ON AMICROCOMPUTER AT ANY PRICE -LET ALONE $4495.

More Memory. Minimax comes in twosizes. Both with 108,544 bytes of semi-conductor internal memory.

In addition, the Minimax I has anexternal storage capacity of 800kwhile the Minimax II features anenormous 2.4 megabytes of on-linedisk storage. It's the most memory forthe least money.

More Speed. Minimax's speedy 15,000character per second data transferrate is substantially faster than anyother microcomputer.

Split screen combination of characterand graphic information.

More Graphic Resolution. Minimax'sscreen has the highest resolutiongraphics of any microcomputer.122,880 (240x512) individual points,each program addressable.

More Screen Capabilities. Minimaxoffers the most advanced full screen

data entry and editing capabilities ofany microcomputer. They includeword or character insertion or deletion,split screen modes, individual fieldediting and automatic skip tonext field.

More Programability. Minimaxfeatures exceptionally advanced soft-ware development tools. The CPUcomes complete with 64 userdefinable opcodes and ROM residentsoftware. Plus Microsoft BASIC, PLM,DOS operating system, FIFTHlanguage interpreter, a machinelanguage monitor with TinyAssembler, Disassembler, DumpFacility and Debugging Aid.

More Applications Software.

Minimax's superior software selectionallows you to perform most of thecommon data manipulation, accountsreceivable, accounts payable,general ledger, inventory, payroll andsoftware development functions with-

Circle 71 on inquiry card.

AT OUTCOMPUTERS THEM ALL.

out expensive or time consumingprogramming.

YOU GET 2.4 MEGABYTES ~~~~

WITHOUT TAKING A BIG BITE OUTOF YOUR BUDGET.

At S4.495 for the 800k Minimax I and$5,995 for the 2.4 M Minimax II, it is notonly incomparable feature for feature,but dollar for dollar as well.

While these prices do not includea printer, a wide range of character,high speed and word processingprinters are available.

High resolution graphics for originaldesign development.

THERE'S MORE INSIDE A SINGLEMINIMAX THAN MOST COMPUTERSTWICE ITS SIZE AND FOUR TIMESITS PRICE.

Minimax's remarkable sophisticationalso makes it remarkably versatile forbusiness, scientific or engineeringapplications.

For business, everything from pay-roll checks to accounting ledgers canbe instantly processed, printedand filed.

Engineers, architects andscientists can use the high resolutiongraphics as a visual research andplanning tool.

Because of its comprehensivesoftware capabilities, softwareengineers can develop finishedprograms for other microcomputersor the most sophisticated mainframes.

PEOPLE CALL IT INCREDIBLE.WE CALL IT MINIMAX.

There has never been so muchcapacity, flexibility and sophisticationbuilt into a computer so affordable.

To obtain the complete Minimaxstory — including ordering informa-

Complete business software packages.

tion — please send the reader servicecard or contact us directly.

The more you know aboutMinimax, the more incredibleit becomes.

WHAT MAKES ONE COMPUTERBETTER THAN ANOTHER MAKESMINIMAX THE BEST.

MINIMAX

Developed and Manufactured byCOMPU/THINK 3260 Alpine Road,Menlo Park, CA 94025 (415) 854-2577

john d. OWENS ASSOCIATES, inc.

12 SCHUBERT STREET (new address)STATEN ISLAND, NEW YORK 10305

WE ARE KNOWN FOR OUR PROMPT, COURTEOUS SERVICE

TELETYPE MODEL 43

4320 AAA (TTL interface) $985

4320 AAK (RS232 interface) $1,085

with transformer to operate on 50Hz, 220v, installed inside cabinet add $50

We stock paper and ribbon for the Teletype Model 43

DEC LA 34

Low cost, convenient desk-top design. Feels and operates like a typewriter. 128 ASCIIcharacter set. Switch selectable 110 and 300 baud rates. 30 cps. Adjustable characterwidths and line spacing. Attractive 9x7 dot matrix. Includes RS232 interface $1,159

HAZELTINE

1500 (assembled only) $945

1510 $1,085

1520 $1,425

with 50Hz, 220v current adaptation add $100

also available with Danish, German or French character sets add $60

INTERTUBE SUPER BRAIN $2,885

DUAL Z80, dual floppy, double density, 64K RAM 4Mhz., CP/M, FORTRAN, COBOL,BASIC, Assembler Language. Contained in Intertube II.

INTERTUBE II $800

Smart terminal for intelligent users. Switch selectable 50 Hz option at no extra cost. With220v transformer. Installed add $100

MARINCHIP SYSTEMS M9900 CPU — s-100 compatible

Network operating system, PASCAL, Extended precision commercial BASIC, FORTH,

META and applications package. Complete kit and DISCEX software $550

Assembled $700

We configure systems to meet your budget and your needs. Hard Disk interface (withsoftware) available.

IMS MEMORY, 16K Fully static, 250 ns $346

TEI S-100 MAINFRAMES

12 slot — MCS 112 $433

22 slot — MCS 122 $528

These mainframes are completely assembled, tested and contain everything requiredfor plug-in operation.

KONAN HARD DISK CONTROLLER $1,550

S-100 compatible, plugs into S-100 mainframe. Controls 1-4 disk drives.

FUJITSU HARD DISK $5,700

50 megabytes of unformatted data in a single, removable cartridge.

IMS 5000 SERIES, complete Z80 system $2,170

2 I/O ports, 1K EPROM bootstrap loader, double density, dual 5 1/4 inch disks. S-100,12slot mainframe. A new rising star! No waiting.

PER SCI FLOPPY DISK DRIVES

299 DUAL DISK, 2 Sided $1,495

277 DUAL DISK, Single Sided $1,210

1170 CONTROLLER, Single/Double Density $1,015

2142 CABINET & POWER SUPPLY for 277 $300

2149 CABINET & POWER SUPPLY for 299 $390

MODEM: THE CAT from Novation $190

Originate/Answer. 300 baud.

TO ORDER: We ship within 24 hours after receipt of certified check, money order or

cashiers check. Credit cards: add 4%. Personal checks: allow ten days. $12 shipping for

terminals. $3 for memories, and modem. New York residents include sales tax.

— WE EXPORT TO ALL COUNTRIES —

— OVERSEAS CALLERS USE (212) 448-6298 ONLY —

john d. OWENS ASSOCIATES, inc.

12 SCHUBERT STREET (new address)STATEN ISLAND, NEW YORK 10305

— DAY, EVENING, WEEKEND, HOLIDAY CALLS WELCOME!—

WE HAVE NO READER INQUIRY NUMBER, PLEASE CALL OR WRITE.

(212) 448-6283 (212)448-6298

Technical Forum

PermutationBibliography

Eduardo Kellerman

IBM

EndicottNY 13760

In the article "Solving the Eight QueensProblem" (October 1978 BYTE, page 122)Terry Smith asked readers for informationon algorithms for generating permutations.In April 1975, I compiled the followingbibliography on the subject (I have notupdated it since then). I think some readersmay find it useful.

I Generation of Permutations

Mark B Wells, "Generation of Permutationsby Transposition," Mathematics of Compu-tation, volume 15, 1961.

Frank Harary, "Permutations with Restrict-ed Position," Mathematics of Computation,volume 16, 1962.

J R Howell, "Generation of Permutationsby Addition," Mathematics of Computation,volume 16, 1962.

Selmer M Johnson, "Generation of Permu-tations by Adjacent Transposition," Math-ematics of Computation, volume XVII,number 83, July 1963.

D H Lehmer, "The Machine Tools of Com-binatorics" in Applied Combinatorial Math-ematics, edited by E F Beckenbach, JohnWiley and Sons Inc, New York.

G G Langdon Jr, "An Algorithm for Gen-erating Permutations," Communications ofthe ACM, volume 10, number 5, May 1967.

M Renaud and S Regnier, "Programme dePermutations," Revue Francaise a" Informa-tique et de Recherche Operationell, May-June 1967.

D Pager, "A Number System for the Per-mutations," Communications of the ACM,volume 13, number 3, March 1970.

126 August 1979 © BYTE Publications Inc

E Kellcrman, "Method for GeneratingPermutations," IBM Technical DisclosureBulletin, volume 13, number 8, January1971.

Kazuaki Harada, "Generation of RosaryPermutations Expressed in HamiltonianCircuits," Communications of the ACM,volume 14, number 6, June 1971.

B R Heap, "Permutations by Interchanges,"source unknown.

D J Lorch, "Permutations of N out of M,"personal communication, July 18 1972.

Ronald C Read, "A Note on the Generationof Rosary Permutations," Communicationsof the ACM, volume 15, number 8, August1972.

C T Fike, "A Permutation GenerationMethod," IBM Technical Report TR73.002,Systems Research Institute, New York.

Mohit Kumar Roy, "Reflection-Free Per-mutations, Rosary Permutations, and Adja-cent Transposition Algorithms," Communi-cations of the ACM, volume 16, number 5,May 1973.

R A Davis, "Permutation of Bits in a BitString," IBM Technical Disclosure Bulletin,volume 16, number 5, October 1973.

E Kellerman and D J Lorch, "Generation ofPermutations and an APL Implementation,"IBM Technical Disclosure Bulletin, volume15, number 5, October 1972.

M M Halpern, "Permutations," Proceedingsof the Fifth International APL Users Con-ference, May 15 thru 18 1973 (CanadianPrintco Limited).

B M Zlotnik, "An Algorithm of PermutationEnumeration," AvtomatikaI Vychislitel'nayaTeknika, number 2, 62, 1972.

S Even, Algorithmic Combinatorics, Mac-millan, New York, 1973, pages 2 thru 11.

C K Wong and D Coppersmith, "The Genera-tion of Permutations in Magnetic BubbleMemories," IBM Technical Report RC5I74,IBM Research, December 1974, YorktownHeights, New York.

B M Zlotnik and V S Kogan, "A Method ofTransforming Permutation n!-Codes," Avto-matika i Telemekhanika, number 1, January1975, pages 139 thru 142.

E W Stacy, "Exact Evaluation of Determi-nants Via Permutation Arrays," IBM Tech-nical Disclosure Bulletin, volume 18, number9, February 1976.

F M Ives, "Permutation Enumeration:Four New Permutation Algorithms," Com-munications of the ACM, volume 19, num-ber 2, February 1976.

Nachum Dershowitz, "A Simplified Loop-free Algorithm for Generating Permutations,"5/7" 75 1975, pages 158 thru 164.

Algorithms in the Communications of theACM: 71, 86, 87, 102, 115, 202, 235,242, 250, 306, 307, 308, 317, 323, 362,383.

Algorithms in the Computer journal:6, 27, 28, 30.

Technical Forum is a feature intended as an interactivedialog on the technology of personal computing. The subjectmatter is open-ended, and the intent is to foster discussionand communication among readers of BYTE. We ask that allcorrespondents supply their full names and addresses to beprinted with their commentaries. We also ask that corres-pondents supply their telephone numbers.

TTL- HAT

100 Prime Pieces of the most needed TTL (7400series) contained in a unitized steel cabinet with24 transparent doors. All packed and clearlylabeled. Ready to use.

You get 20 different types (5 of each) or buy the"Designer TTL Kit", 40 different types (5 ofeach), 200 pieces of hard to find TTL neatlypackaged for your project.

3qR5

(+3.50 shipping)

The TTL Kit

(20 types, 5 each, 100 total) $39.95

(+3.50 shipping)Double TTL Kit

(20 types, 10 each, 200 total) $69.95

(+4.50 shipping)Designer TTL Kit

(40 types, 5 each, 200 total) $119.95

(+4.50 shipping)

ELECTRONIC PACKING COMPANY

Box 581 • Greenfield, IN 46140(317)462-9511 • Dealer inquiries invited

Circle 121 on inquiry card.

August 1979 © BYTE Publications Inc 127

Technical Fcnum

TI Has Faster Solutions

Marvin A Larson, 345 Birchioood Dr, Moraga CA 94556

Before reading Mr Arp's article, "The Power of theHP-67 Programmable Calculator, Part 2" (April 1979BYTE, page 176), I was under the impression that theHewlett-Packard HP-67 and the Texas Instruments TI59programmable calculators were about equal in function,utility, and calculating power. Both are "top of the line"although the HP-67 costs about 70% more than the TI59.

The procedures used by Mr Arp in writing his simul-taneous equations program can be applied, with minorreprogramming, to the TI59. The resulting programwould then be capable of solving 29 simultaneous equa-tions in 29 unknowns, as opposed to 9 equations in 9unknowns with the HP-67.

The TI59 can use up to 100 data storage registers, com-pared to 26 registers for the HP-67. It can read/write datafrom/to magnetic cards in banks of 30 values. Each cardcan thus contain the 29 coefficients and one constant termfor one complete row of the solution array.

The Library Module supplied with the TI59 contains aprogram for solving simultaneous equations which willsolve up to 8 equations with 8 unknowns, as compared to4 equations with 4 unknowns for the HP-67.

Mr Arp did not tell us how much time is required tosolve the set of 9 equations given in his listing 4 (page186), or the resultant accuracy of the solution. It appearsto involve one hundred or more read/write operationsfrom/to magnetic cards, a considerable amount of exter-nal manual bookkeeping to keep track of the cards, handcopying of coefficients, and the like. My guess is thatsolution time is about 90 minutes, provided the wrongcard does not slip in. With regards to accuracy, Mr Arpgives his solution results with 6 digit values, but does notstate the closure error on back substitution in theoriginal equations.

For comparison, I tried the library program in the

TI59. To reduce the problem to eight equations instead ofnine, I deleted cell 9 in figure 1 (page 180). This has the ef-fect of deleting the ninth coefficient of the first eight equa-tions and the entire ninth equation of table 1 (page 180).

This was my first experience with using the TI59 tosolve simultaneous equations, so I read the instructionscarefully. Then I timed the operation. From the beginningat the start of data entry, to the end after all eightunknowns had been copied down, the procedure tookjust 13 minutes.

All answers came out as 10 digit numbers. On backsubstitution all equations closed out with a maximumerror of 4.6E —9 and a mean absolute error of 2.2E —9.Most of the functions and operations on Mr Arp's "wishlist" are already available on the TI59. He would be welladvised to check out the TI59.

Incidentally, Texas Instruments software isn't alwaysquite as good as its hardware. The TI59 has sufficientcomputing capacity to solve 10 simultaneous equations in10 unknowns with the program entered from magneticcards, and 11 equations in 11 unknowns with the pro-gram resident in a library module. This is with a full setof equations with non-zero values for all coefficients.

6809 Commentaries,

Continued...

Don't Be So Superficial!

Jim Howell, 5472 Playa Del Key, San Jose CA 95123

I would like to correct some statements made by DavidKemp concerning the 6809 microprocessor in "CompareNew Microprocessors Carefully" (Technical Forum, May1979 BYTE, page 213).

The 6809 has several more 16 bit instructions thanthose mentioned by Mr Kemp (ADDD, SUBD, andCMPD). The CMPX, CMPY, CMPS, and CMPU instruc-tions compare the X, Y, S, or U register with (up to) 16bits of data. The ABX instruction adds B (8 bits, unsign-ed) to X (16 bits) putting the 16 bit result into X.

c,

c KIM ANALOG INPUT

Analog to Digital Conversion System for the KIM Computer

Give the KIM the ability* to sense*measure* and control the world aroundit with DAM SYSTEMS modules. Just Mugthe KIMSET1 into the KIM to gel 16channels of analog input* Screwterminals sr& provided -for each channelso you can hooK up Jot*sticKs* pots* orwhatever appropriate sensors uou have*

Each of the 16 analog inputs* inthe range of 0 to 5*12 volts* isconverted to a decimal number between Oand 255 (20 millivolts f^t- count).Conversion time is 100 microsconds.

The K1MMOD provides one user portas well as a DAM SYSTEMS port.

Software is provided.

KIMSET1

- IB ANALOG INPUTS 8 BITS ■ 100 MICflOSEC

H INTERCONNECT CABLE

1-AIM161

1-KIMM001-CABLE A24I-MANMO01

1-POWt - POWER MODULE

KIMSETIa lor 110 VAC $265KIMSETU for 230 VAC 5 295

Older diract <

[ ss ] [ "ST 3

CONNECTICUT microCOMPUTERJnc.150 POCONO ROADBROOK FIELD, CONNECTICUT 06804TEL: (203) 775-9659 TWX: TLX: 7104560052

GP1BIIEEE-4BS)

128 August 1979 © BYTE Publications Inc

Circle 78 on inquiry card.

The major 16 bit arithmetic instruction of the 6809,however, is the Load Effective Address instruction. Thisinstruction is actually four instructions: LEAX, LEAY,LEAS, and LEAU, depending on which register gets theresult of the arithmetic. This instruction computes an ad-dress in the same way as the indexed addressing mode,but puts the resulting address into a register (X, Y, S, orU). Load Effective Address adds any one of the registersX, Y, S, U, or PC to any of the following: a signed im-mediate value (5, 8, or 16 bits), the sign-extended A or Bregister, or the D register (A and B together as a 16 bitregister), and puts the result in any of X, Y, S, or U — notnecessarily the same as the source register. The PC (pro-gram center) can actually be the destination for such acalculation using the branch instruction with the indexedaddressing mode. I think Mr Kemp is exaggerating whenhe states that the user pays "heavily" for the generality ofbeing able to transfer (or exchange) any register with any(like-sized) register. The designers of the 6809 includedinstructions to transfer and exchange between any pair ofthe four 8 bit registers A, B, DP (direct page), and CC(condition code), and between any pair of the six 16 bitregisters X, Y, S, U, D, and PC. Excluding transfers or ex-changes of a register with itself, this gives 42 differenttransfers and 21 different exchanges. (TFR A,B and TFRB,A are different but EXG A,B and EXG B,A are thesame.) Each of these is a 2 byte instruction, the first bytespecifying transfer or exchange, and the second bytespecifying those registers which are involved. It wouldhave been possible to provide a (small) subset of thesetransfers and exchanges as 1 byte opcodes at the expenseof making some other instructions longer. Transfers andexchanges not provided for in this scheme would take atleast two instructions and two bytes (probably three ofeach for exchange) and would operate more slowly thanthe 2 byte transfer or exchange. If some transfers and ex-changes are allowed and others are not, the assemblylanguage programmer also has to remember which onesthese are. Either scheme of register transfers and ex-changes would have been possible, but since these in-structions are not that common in programs (falling intothe "11.3% other" category), I think the designers of the6809 made the better choice.

I cannot comment much on the 6516 mentioned by MrKemp, since my knowledge of that processor is limited towhat he wrote in his letter. (Are you sure that's an 8 bit

processor?) The comparison of number of cycles, used inthe letter, is valid only if the cycle times of the two pro-cessors are the same (or are related in a known ratio). Inany event, comparing cycle times of some isolated in-structions does not necessarily indicate the relative speedsof the two processors on real programs. The 6516 mayhave 16 bit AND, OR, and XOR instructions, but howoften would these be used? As for Mr Kemp's commentthat the 6809 "costs more" (more than other 8 bit pro-cessors?) because it uses a larger piece of silicon and hasmore logic gates than other 8 bit processors, how muchwill a $20 difference in microprocessor cost make in thefinal product cost? Besides, doesn't the 6516 "suffer" fromthis same cost problem?

6809 Commentaries,continued

Richard F Serge, 655 Lewisville-Vienna Road,Lewisville JVC 27023

Never, until now, have I been compelled to respond toany magazine article I have read. I refer to David Kemp'scommentary "Compare New Processors Carefully" (May1979 BYTE, page 213).

As a designer of microprocessor systems I have follow-ed the instructions in the title of Mr Kemp's article withgreat care. In comparing the 6809 with other processorsin its performance range, it may take an hour or so ofcomparing data sheets to get a feel for the typical hard-ware required, the addressing modes available, therelative execution times, and the number of bytes re-quired for the more common instructions. To stop at thispoint and decide which is "best" is the equivalent of flip-ping a coin. At this point several passes through theprogramming manuals are required, along with a studyof any other literature pertaining to the processors inquestion.

Only after a designer has a thorough understanding ofthe processors' instruction set and addressing modes, andhow to efficiently utilize these features, can the task ofcareful comparison begin. Recalling past design projects

AIM 65

AIM 65 is fully assembled, tested and warranted. With the addition of a low cost, readily available powersupply, it's ready to start working for you. It has an addressing capability up to 65K bytes, and comeswith a user-dedicated 1K or 4K RAM.

• Thermal Printer • Built-in Expansion Capability

• Full-Size Alphanumeric Keyboard • TTY and Audio Cassette Interfaces

• True Alphanumeric Display • ROM Resident Advanced Interactive Monitor

• Proven R6500 Microcomputer System Devices • Advanced Interactive Monitor Commands

PRICE: $375.00(ikram>

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 addedto our mailing list, or U.S. residents send $1.00 (International send $3.00 U.S.) for airmail delivery of ourcomplete catalog.

'^^ ENTERPRISES

INCORPORATED2967 W. Fairmount Avenue • Phoenix, AZ 85017 • (602) 265-7564

Circle 324 on inquiry cam.

August 1979 © BYTE Publications Inc 129

Circle 211 on inquiry card.

KEYED FILE MANAGEMENT

Put data at your fingertips.. easily accessed, displayed andupdated by key. Designed to meet all of your data managementneeds, MAGSAM" allows you to quickly implement sophisticatedkeyed file structures through simple CBASIC statements.Standard MAGSAM'" features include record retrieval with randomby key, sequential by key, and generic ("wild card") search, andcomplete compatibility with all CBASIC file facilities. EachMAGSAM" Package includes the MAGSAM'" file manager.MAGSAMX'" tutorial program, MAGSAMD'" file dump utility, UserGuide, Reference Card, and one year update service.Select the version of MAGSAM'" that meets your requirements. Allversions of MAGSAM'" are completely upward compatible andmay be upgraded at any time for the price difference.

• MAGSAM III'" — Most advanced version Multiple Key support(any number of keys), and Record and Key Deletion with automaticreclamation of disk space $145t

• MAGSAM II'" — Single Key support with full Deletecapability $99t

• MAGSAM I'" — Entry level version. Single Key support withoutDelete capability $75f

• User Guide only - comprehensive tutorial and reference

manual $15

Available for 8" soft sector, Micropolis, and TRS-80 disk formatsRequires CP/M" or derivative and CBASIC. Distributed as CBASICsubroutines in source form.

Visa and Masterchagre welcome. Dealer and OEM inquiriesinvited

RTIME

Micro Applications Group

7300 CALDUS AVENUEVAN NUYS, CA 91406

' Trademark of Digital Research t Single site license

and how they could have been implemented on the pro-cessors being compared is an excellent way to make a faircomparison (not just one or two projects, but several).The real test is laying out $30 K for a couple of develop-ment systems and actually doing it, but....

The procedure which I have outlined is more of a studythan a comparison. It takes a long time, and a concen-trated effort to be fair right up to the end.

Although I disagree with most of Mr Kemp's article, Itake special issue with the light regard he appears to haveconcerning the multitude of various addressing modes of-fered by the '09. The difference between having and nothaving just one of these modes can very easily alter theentire design of a software package, making the executiontimes of even most instructions seem like trivia comparedto what can be saved. Being able to write recursive, posi-tion independent code with the '09 should also weighheavily in any comparison being attempted with the '09.

There is another point I would like to clarify. Mr Kempstates that "many 6809 instructions require 4 bytes tospecify." Many readers may have gone away thinking"most," rather than "a few," since no further explanationfollowed. Motorola says that they chose these 4 byte in-structions as some of the lesser used op codes, and I findthat these 4 byte instructions occur about once per pageof assembly listing (typically 50 lines of code). The vastmajority are 2 bytes.

I have been designing with the 6809 (a real part) sincemid-March 1979. The reason: it is the most powerful 8 bitMOS microprocessor. And I do not work for Motorola. ■

Turning programmers into composers!

Buy this book at your favorite computer

bookstore or order direct from BYTE BOOKS.

Add 60C per book to cover

postage and handling.

For the first time hard-to-obtain computermusic has been collected into one con-venient, easy-to-read book. The BYTEBook of Computer Music combines thebest from past issues of BYTE magazinealong with exciting new material.

This fascinating book, edited byChristopher P. Morgan, includes articlesdiscussing four-part melodies, a practicalmusic interface tutorial, electronic organchips, and a remarkable program thatcreates random music based on landterrain maps.

$10.00

ISBN 0-931718-11-2

lEinrfi

70 Main St., Peterborough, NH 03458

130 August 1979 © BYTE Publications Inc

Circle 36 on inquiry card.

Wg^^t^o¥[(mHj

Announcement I: The first eight PersonalPrograms1'"'from Aladdin Automation arewaiting for you now at your neighborhood;omputer retailer or direct from Aladdin.

\low you can get your full share of Aladdinmagic in every one of these Personal3rograms®:

Math-Ter-Mind A delightful,educational learning experiencefor your pre-school child. Watchhe smile on your child's face as a correctinswer makes the mathematician smile on thecreen before you A nursery song also servesis a reward for learning elementary additionind subtraction With Aladdin's Math-Ter-\/lind® your child's pathway to learning will beun-filled . . for both of you Math-Ter-Mind®."he first release from the Aladdin Education9Series, (nursery song currently available only>n Apple 11* program)

Lunar Lander In a controlleddescent, you're just seconds awayfrom your first landing on the cold,orbidding surface of the moon. As youlavigate your delicate spacecraft downward tohe safety of Moonbase, you must be evervatchful of the dangers rising to meet you with;ach passing moment: a fuel level fastipproaching zero; deadly meteor showers that;ome from any direction, at any time; sheer-aced rock cliffs and rough terrain; choosinghe correct landing pattern and rate of descent.Aladdin's Lunar Lander Your chance to reachjut and touch the stars . . . without leaving the;afety and comfort of your own chair. The firstelease from the Aladdin Simulation® Series.

Craps All eyes in the casino areon you. The dice are in yourhands. Lady Luck sits at yourshoulder, whispering . . . "Just one more time.Try your luck just one more time.'' You throw. . . and watch the dice tumbling on thescreen. With Aladdin's Craps you play againstthe computer, so it's awfully tough to win. Butwhen you do. it's an experience you're likelynever to forget. Craps An exciting, heart-pounding Personal Program'1. The first releasefrom the Aladdin Las Vegas** Series

Mastermind A challenging gameof intrigue, centuries old, that willgive you full chance to test yourpowers of logic, deduction and reason. Andtest them you will, as you try and solve thecomputer's puzzle, using clues as they'reprovided one-by-one. You control the degree ofdifficulty in this classic Personal Program® thatoffers one simple, yet all-consuming challenge;beat the Mastermind in a direct, one-on-onebattle of wits. Aladdin's Mastermind. The firstrelease from the Aladdin Old Favorites® Series.

Tic-Tac-Toe Five different levelsof difficulty allow a person of anyage or skill to take part in thisrelaxing, enjoyable game that can act as alearning tool, as well. Level I, for example, issuitable for children and is excellent also forteaching simple mathematics The computerplays just about perfectly at Level V. Justabout, that is, so go ahead and take your bestshot See if you can beat the computer in thistraditional favorite of young and old alike.Tic-Tac-Toe. Another first release from theAladdin Old Favorites® Series.

Jungle Island " Shipwrecked in araging storm at sea. miraculouslyyou survive only to find yourselfstranded on a seemingly deserted jungleisland Without food, water or supplies of anykind, you begin to try and find your way tosafety. The computer will be your eyes andears as you explore your jungle island and allthe mysteries and dangers that lie in wait foryou. Jungle Island8 A captivating firstrelease from the Aladdin Adventure® Series.

Stix" Aladdin's Stix® can beplayed with 2 to 5 piles of st icksand between 1 and 1 9 sticks ineach pile The object: to be the one to pick upthe last stick. Sounds simple? Yes, but you'replaying against the computer Take heart,though, because you can control the degree ofdifficulty in this update of the ancient game ofNim. Stix®. Another first release from theAladdin Old Favorites" Series

Super Pro Football® Here's yourchance to be more than just anarmchair quarterback WithAladdin's Super Pro Football® you can replayany Super Bowl game, from the first, betweenGreen Bay and Oakland, to last year's classicvictory by Pittsburgh over Dallas. For once youcan turn back the clock and go for that one bigplay that made the difference between victoryand defeat in pro football's biggest game of allSuper Pro Football®. The first exciting releasefrom the Aladdin Super Pro® Series.

Visit your neighborhood computer retailer orcontact Aladdin direct to get your full share ofthe magic in Announcement I, the first eightPersonal Programs® from Aladdin Automation.

/lath-Ter-Mind8 Lunar Lander Craps

Mastermind Tic-Tac-Toe Jungle Island" Stix™

Super Pro Football9

Welcome to the All-New World ofMaddin. And Get Ready toMake Your Own Magic

A/CON AJTOM/1TION, NC.A/CON COMPUTB? CORR

3420 Kenyon Street, Ste. 131. San Diego, CA 92110

Copyright 1978 by Aladdin Automation

Design and copy by Campbell Marsh Graphic Communications

Circle 3 on inquiry card.

BYTE August 1979 131

The Design of an M6800LISP Interpreter

S Tucker Taft

Harvard University Science Center

1 Oxford St

Cambridge MA 02138

The primary data structure is the list.

Anyone exposed to small computer systems has used alanguage interpreter of some sort, and certainly mayhave thought about implementing their own interpreter.Unhappily, implementing an interpreter for a completeversion of most computer languages is a difficult andtime-consuming job, unsuitable for a part-time personalcomputer enthusiast. The language LISP provides a uni-que opportunity in this respect. The foundation for avery complete interpreter can be programmed by a singleperson in several months of part-time effort. As a bonus,the resulting interpreter provides the user with a highlevel language in which to express algorithms.

The Language

From the user's point of view, the primary data struc-ture in LISP is the list. Every element of a list is either anatom or another list. An atom is a primitive named ob-ject, the name being an arbitrary string of characters:

easy to implement, is that all program elements arerepresented using these same kinds of objects: atoms andlist. Constants, variables, expressions, conditionals, evenfunction definitions are all represented using only atomsand lists.

A value is associated with each atom, allowing atomsto represent program variables and constants. A sym-bolic atom, like XYZ, would represent a variable. Anumeric atom, like 237, would represent a constant.

Operations on variables and constants, like addition,or a function call, are represented by list expressions:

(ADD 2 5) would represent the expression 2 + 5.(SIN (MUL 2 Y)) would represent the expressionsin(2y).

Conditionals, loops, and function definitions are alsorepresented by list expressions, as illustrated by thisrecursive function implementing Euclid's greatest com-mon divisor algorithm:

(DEF GCD (LAMBDA (X Y)(COND

((GREATER X Y) (GCD (SUB X Y) Y))((GREATER Y X) (GCD X (SUB Y X)))(TX)

ABC is an atom.

135 is an atom.

(ABC 135) is a list of two elements, both atoms.

((ABC 135) XYZ) is a list of two elements, the first

of which is a list, the second is an atom. ))

( () () ) is a list of two elements, both being lists of

zero elements. A list of zero elements, the null list, is This would be equivalent to the Pascal program:

identified with the atom NIL.

The feature of the language LISP which makes it at thesame time a uniquely interesting language, and relatively

About the Author

Tucker Taft first programmed a computer in 9th grade. He spent thefollowing summers at various programming jobs until he graduatedfromHarvard in 1975 with a degree in chemistry. Since his graduation,Tucker has spent two years as the full-time systems programmer forHarvard's Student Timesharing System, combined with teaching someintroductory computer courses at Harvard.

Tucker is now starting a microcomputer software consulting businessbased on a multilanguage compiler being written in LISP. In what is leftof his free time, he is found on a squash or tennis court, in a Cambridgecoffee shop, in a bookstore, or in a Chinese restaurant.

function gcd(x,y:integei).integerbegin

if x>y then gcd ; = gcd(x-y, y)else

if y>x then gcd := gcd(x, y—x)else

gcd : = xend.

An important difference to note in the above com-parison is that no explicit assignment to a function returnvalue is made in LISP, whereas in Pascal one must ex-plicitly say gcd := ... to specify the return value. InPascal, and most other procedural languages, a distinc-tion is made between program statements and expres-sions. In such languages some program statement must be

132 Augusl 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

'MICRO-AP MICRO-AP MICRO-AP MICRO-l-AP MICRO-AP MICRO-AP MICRO-AP MICRiP MICRO-AP MICRO-AP MICRO-AP MICRO-:RO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-...ilCRO-AP MICRO-AP MICRO-AP MICRO-AP MICRjCRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-,iP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRMICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-I-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICR"iMICRO-AP MICRO-AP MICRO-AP MICRO-m.P MICRO-AP MICRO-AP MICRO-AP MICRIMICRO-AP MICRO-AP MICRO-AP MICRO-|VP MICRO-AP MICRO-AP MICRO-AP MICRIMICRO-AP MICRO-AP MICRO-AP MICRO-IvP MICRO-AP MICRO-AP MICRO-AP MICR

■AP MICRO-AP MRO-AP MICRO-AF-AP MICRO-AP M:RO-AP MICRO-AF-AP MICRO-AP M:RO-AP MICRO-AF-AP MICRO-AP M:RO-AP MICRO-AF,

i-AP MICRO-AP MlRO-AP MICRO-AP tl-AP MICRO-AP MlRO-AP MICRO-AP *l-AP MICRO-AP MlRO-AP MICRO-AP Il-AP MICRO-AP MlRO-AP MICRO-AP t

-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP Ml:RO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP t-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP Ml:RO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP f

RANDOM, MULTI-KEY RECORD RETRIEVAL under CP/M, CDOS, IMDOS, ADOS

SELECTOR III ALLOWSINSTANT RECALL OF ANYRECORD USING ANY IN-FORMATION ITEM IN THERECORD. That statementdeserves re-reading, be-cause that ability makesSELECTOR III the mostpowerful Date Base Man-agement System in micro-computers today!

With SELECTOR III

you can...

• define a record format,assign retrieval keys, andbegin entering data in min-utes.

• create sorted pointers torecords matching your spe-cif or range of requirements.

Circle 213 on inquiry card.

• automatically generatereports with control-breaksummaries and unlimitedvariety.

• bring an application on-line in hours instead ofmonths.

SELECTOR III comes com-plete with eight applicationprograms that perform thetasks listed at top of page.And, since it's distributed insource code form, you caneasily add subroutines to dospecific computations orfile updates.

SELECTOR III runs underCBASIC Vers. 1 or 2, and ispriced at $295. SELECTOR

III-C2 is dedicated to Vers. 2only, runs about twice asfast, and costs $345.

Both systems are available ina variety of CP/M, diskettesize and density formatsincluding IBM 8"; North Star;Micropolis; TRS-80; Pro-cessor 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 August 1979 133

(ABC) IS BUILT UP OUT OF THREE DOTTED PAIRS

(<)(KL M)N ) IS BUILT UP OUT OF SIX DOTTED PAIRS

Figure 1: In most LISP systems, lists are built up out of dottedpairs which are two address cells. The left cell points to the firstelement of a list, and the right cell points to the rest of the list.The letters in the figure stand for atoms. NIL is a special atomused to signify the end of a chain of dotted pairs.

executed to specify the return value, usually either areturn statement or an assignment to the function name.In LISP, and other applicative languages, no such distinc-tion is made. A function is simply a single expression,whose value is the return value of the subprogram.

This is made possible by built-in functions like CONDused above. COND takes a list of two element lists asargument. It goes down the list of pairs, evaluating thefirst element of each pair. If the result is true (the atomT), the result of the entire COND is the value of the se-cond element of the pair. If the value of the first element

of the pair is false (the atom NIL), COND proceeds to thenext pair. If COND reaches the end of the list, the resultof the entire COND is simply NIL. In the above examplethis would never happen because the first element of thelast pair is the atom T (whose value is always guaranteedto be itself, the atom T). This is the normal technique inLISP for using the COND function.The expression:

(DEF GCD (LAMBDA (X Y)...

defines the atom GCD to be a function (or lambda ex-pression) taking two arguments, to be called X and Y inthe body of the definition. Notice that no explicitspecification of the type of X or Y is provided. In LISPany arbitrary value, atom, or list may be the valueassociated with an atom. In this sense LISP is a typelesslanguage. In fact the type of a value (ie: whether it is anatom or a list) is always determinable at execution time.Functions must check the types of the values of atoms ifonly certain types are legal arguments. In the aboveexample the calls on GREATER and SUB would fail if thevalues associated with X and Y were not numeric atoms.

CARs and CDRs

Thus far we have only shown how to re-expressalgorithms written in a more conventional language, inthe language LISP. The real power of LISP comes from itsability to directly manipulate lists, a data type not nor-mally accessible in other languages. Three primitives,CAR, CDR (pronounced could-er), and CONS are pro-

Our MacroFloppy™goes twice the distance.

For $695.

Introducing the Micropolis MacroFloppy™:1041 and ;1042 disk drive sub-systems. For the S-100/8080/Z-80 bus. Packing 100% more capacity into a5^-inch floppy disk than anyone else. 143K bytes, to be exact. For as littleas $695.

The MacroFloppv:1041 comes with the Micropolis Mod I floppy packagedinside a protective enclosure (without power supply). And includes an S-100controller Interconnect cable. Micropolis BASIC User's Manual. A diskette con-taining Micropolis BASIC, and a compatible DOS with assembler and editorThe :1041 is even designed to be used either on your desk top, or to be inte-grated right into your S-100 chassis.

The MacroFloppy:1042 comes with everything the :1041 has, and more.Such as d.c. regulators, its own line voltage power supply, and, to top it off,a striking cover. Making it look right at home just about anywhere.

Both MacroFloppy systems are fully assembled, tested, burned-in, andtested again. For zero start-up pain, and long term reliability. They're alsobacked up by our famous Micropolis factory warranty.

And both systems are priced just right. $695 for the MacroFloppy: 1041and $795 for the MacroFloppy1042.

You really couldn't ask for anything more.

At Micropolis, we have more bytes in store for you.

For a descriptive brochure, in the U.S. call or write MicropolisCorporation, 7959 Deering Avenue, Canoga Park, California 91304. Phone(213)703-1121.

Or better yet, see your local dealer.

MICROPOLIS

More bytes in store for you.

134 August 1979 © BYTE Publications Inc

vided for list manipulation. The function CAR takes a listas argument, and returns the first element of the list,which may either be an atom or another list. The func-tion CDR takes a list as argument, and returns the tail ofthe list, that is, all but the first element of the orginal list,as a new list. The function CONS takes two arguments, anew first element, and the tail of a list, and reconstructs alist, now one element longer. For example:

Assume the atom X is associated with the value:

(ABC)Assume the atom Y is associated with the value:

(THE CAT IN THE HAT)(CAR X) would be the atom A.(CDR Y) would be the list (CAT IN THE HAT).(CONS (CAR X) (CDR Y)) would be the list:

(A CAT IN THE HAT)(CAR (CDR X)) would be the atom B.

In general the CAR of the CDR of a list is its second ele-ment, and a function called CADR is frequently definedas a kind of shorthand for CAR of the CDR.

You might wonder what would result if you gave twoatoms as arguments to CONS, rather than an atom and alist. In most LISP systems this is in fact legal. The resultreveals the underlying representation used for lists inLISP. In virtually all LISP systems, lists are built up outof dotted pairs, two-address cells, the left cell pointing tothe first element of a list, and the right cell pointing to therest of the list. This can be diagrammed schematically asin figure 1.

Because dotted pairs are used this way to build up lists,it is natural to call the left cell of a dotted pair the CARand the right cell the CDR. (In fact the genealogy of thewords CAR and CDR runs the other way. Dotted pairswere used in the initial implementation of LISP, and CARand CDR referred to the address field and the decrementfield of a word on the IBM 704.) Now you can perhapsguess that when you pass two atoms as arguments toCONS, you simply get a dotted pair with an atom in boththe CAR and CDR. For example:

A

B

would be printed as:

(A. B)

The notation (A . B) is used whenever the CDR of the lastdotted pair forming a linked list is a non-NIL atom. Ingeneral (D E F . NIL) would be equivalent to (D E F),whereas (D E F . G) could not be expressed without thedot notation.

Given the three primitives CAR, CDR, and CONS,and understanding the underlying representation of listsusing dotted pairs, it is possible to write powerful list-manipulating programs in LISP. For example, suppose itis desirable to edit a large data structure, and change alloccurrences of the symbol APPLE to ORANGE. In LISPwe could easily write a routine called REPLACE which,given the data structure (ie: list structure), the originalsymbol (the atom APPLE), and the replacement symbol

TM

MetaFloppy

The Micropolis MetaFloppy™ gives you more than four times the capacity ofanyone else's 5M-inch floppy Because it uses 77 tracks instead of the usual 35.

The field-proven MetaFloppy, with thousands of units delivered, comesin a complete family of models. And, like our MacroFloppy™ family of diskdrives, MetaFloppy is designed for the S-100/8080/Z-80 bus.

For maximum capacity, choose our new MetaFloppy:1054 system. Whichactually provides you with more than a million bytes of reliable on-line stor-age For less money than you'd believe possible.

The MetaFloppy:1054 comes complete with four drives in dual config-uration. A controller. Power supply. Chassis. Enclosure. All cabling. A new BASICsoftware package. And a DOS with assembler and editor. There's even a built-in Autoload ROM to eliminate tiresome button pushing.

If that's more storage than you need right now, try ourMetaFloppy: 1053, with 630,000 bytes on-line. Or our Meta-Floppy:1043, with 315,000 bytes on-line. Either way, you canexpand to over a million bytes on-line in easy stages, when youneed to. Or want to.

In other words, if your application keeps growing, we've gotyou covered. With MetaFloppy

The system that goes beyond the floppy

For a descriptive brochure, in the U.S. call or write MicropolisCorporation, 7959 Deering Avenue, Canoga Park, California 91304Phone (213) 703-1121.

Or better yet, see your local dealer.

MICROPOLIS™

More bytes in store for you.

goesbeyond,

August 1979 © BYTE Publications Inc 135

(the atom ORANGE), would go through the structureand do the replacement, using itself recursively to do thereplacement in all sublists of the list structure:

(DEF REPLACE (LAMBDA (STRUC OLD NEW)(COND

((EQ STRUC OLD) NEW)((ATOM STRUC) STRUC)(T (CONS

(REPLACE (CAR STRUC) OLD NEW)(REPLACE (CDR STRUC) OLD NEW)

))

))

Notice how the first two lines of the COND allow forthe possibility that the input data structure is simply anatom (which may or may not be equal to the atom to bereplaced). In addition, notice that the entire body of thisfunction definition is a single COND, just as it was in theGCD example given above. This is frequently true inLISP programs. Finally, notice how the function simplypasses the buck to recursive calls on itself if the STRUCargument is not an atom, CONSing together the resultsof the two inner calls. The reader is encouraged to gothrough an example of the execution of this functionwhen the argument OLD is the atom APPLE, the argu-ment NEW is the atom ORANGE, and the argumentSTRUC is the list structure:

(AN (APPLE A DAY) KEEPS (THE (APPLE MAN)

BUSY))The result should be:

(AN (ORANGE A DAY) KEEPS (THE (ORANGE

MAN) BUSY))If STRUC were:

(PEAR BANANA . APPLE)the result should be:

(PEAR BANANA . ORANGE)

Other kinds of list-manipulating programs which arerelatively easy to write in LISP, but very difficult in moreconventional languages, include formula manipulationprograms which might take in the list representation for afunction (eg: (SIN (MUL 2 X)) ), and return the listrepresentation for its derivative according to the rules ofthe calculus (eg: (MUL 2 (COS (MUL 2 X))) ).

The author's system is being used for the developmentof a compiler/interpreter system which generates the listrepresentation for a program written in a programminglanguage, and then either interprets it directly, orgenerates the list of machine language statements to im-plement the program on a particular microcomputer.LISP makes such an undertaking quite straightforward(although not trivial, unfortunately!).

LISP Interpreter

Because programs are data objects (list structures) inLISP, the same routines used to read and print data ob-jects may be used to read and print programs. Further-more user functions, like a general list editor, can be usedalso to edit programs. This uniformity vastly simplifiesthe task of writing an interpreter for LISP. Only threebasic modules need be produced: READ, EVAL, and

PRINT . READ accepts a LISP list expression from theterminal, in full parenthesized notation, and builds theinternal representation of the list, sometimes called aforum. EVAL takes a form as its single argument, andevaluates the form according to the LISP convention thatthe first element of such a list specifies the function, withthe rest of the list as arguments.

The result of EVAL is another form. (The term form issometimes reserved for LISP expressions which are legalinput to EVAL. The term S-expression covers all types oflists, whether or not the first element is a legal functionname. Within this paper, form will be used to refer to theinternal representation of any type of LISP expression.)

PRINT takes a form as its argument, and types it onthe terminal in fully parenthesized form. The top levelloop of the LISP interpreter simply prompts the user forinput (— > is the LISP prompt), READs in the users in-put, EVALs the resulting form, and PRINTs the result ofEVAL. In a conventional high level language syntax, thiswould be:

while true do begin

patom("— > ');

form : = read( );

form .= eval(form);

print(form)end.

or in M6800 assembly language:

BIGLUP LDX PRMPAT get prompt atomJSR PATOM print the atomJSR READ read the form typed in

* result now in M6800 x-register

JSR EVAL eval the form

* result of EVAL back in x-register

JSR PRINT print the form

BRA BIGLUP and loop around

PATOM is a subroutine, also called by PRINT, when aform is known to be an atom. In an assembly languageimplementation, it would be very convenient to passforms in the M6800 index (X) register. This register is 16bits long, so it requires that forms be only 16 bits. Somerepresentation must be chosen for all LISP objects so thata single 16 bit number may uniquely specify any ar-bitrary object. Dotted pairs are used to represent lists.Dotted pairs hold two forms, a CAR and a CDR, so theymust be 32 bit objects. A natural choice is to allocate 4consecutive M6800 memory bytes for dotted pairs, andspecify dotted pairs by the address of their first byte. Thismeans that any two different dotted pairs will be easilydifferentiated by the forms that specify them.

This still leaves the problem of deciding on an internalrepresentation for atoms, including symbolic atoms,numeric atoms, and NIL. In the author's LISP systemonly two items of information are needed for each sym-bolic atom, the string of characters which are the printname of the atom, and the value currently associatedwith the atom (which is an arbitrary form). Again a 4byte representation is chosen, with the first two bytesused as a memory address pointing to the first characterof the print name, and the third and fourth bytes used tohold the value (a form) of the atom. Now the address of

Text continued on page 140

136 August 1979 © BYTE Publications Inc

Let your LSI-11* breakthe 28K harrier

With our Bank-Switching family

In LOCAL mode our memory is functionally justlike DEC memory But when you run out ofmemory space you're not lost. Add an inex-pensive Bank-Switch Controller (BSC-256) andyou can go to two megabytes. Add anotherand go to four megabytes.So don't get boxed in with other brands ofLSI-11 * memory. Break free. Join the family:RMA-032 32K by 16 bit RAM. $1200

On-board refresh (Single qty.)RMS-016 16K by 16 bit ROM. $300

(Intel 2716) (Single qty.)

BSC-256 The Bank-Switch $300

Controller (Single qty.)

Substantial quantity discounts are available. For a freecopy of our Bank-Switching manual, call or write on yourcompany letterhead.

Digital Pathways Inc.

4151 Middlefield Road

Palo Alto, CA 94306

(415) 493-5544

'Registered trademark of Digital Equipment Corporation

DIGITAL PATHWAYS

Circle 86 on inquiry card.

BYTE August 1979 137

PET / TRS-80/ APPLE: Personal Software brings you the finest!

MlCHESS

The Industry's First

Gold Cassette

Over 50,000 Sold

MICROCHESS is the industry's best selling computer game. Andno wonder—because MICROCHESS gives you more than just achessplaying program: A convenient, foolproof set of commandsand error checks... complete instructions in a 514" by 8V2" booklet...a cassette that's guaranteed to load, with disk versions comingsoon ... and several levels of difficulty to challenge you not justonce, but time after time. It's available through well over threehundred computer stores andjnany mail order sources ... always

originating from Personal Software. What's more, every PersonalSoftware product is selected to give you these same benefits ofeasy availability, reliable cassettes, readable documentation, acarefully thought out user interface ... and most important,continuing challenge and enjoyment, not just once but time aftertime. If you haven't already, order your own gold cassette:MICROCHESS, by Peter Jennings, for 8K PETs, 16K APPLEs, and4K Level I and II TRS-80S $19.95

TIMTREK

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 theclassic Star Trek type strategy game: REAL TIME ACTION! You'llneed fast reflexes as well as sharp wits to win in this constantlychanging game. Be prepared—the Klingons will fire at you as youmove, and will move themselves at the same time, even fromquadrant to quadrant—but with practice you can change courseand speed, aim and fire in one smooth motion, as fast as you canpress the keys. Steer under power around obstacles—evade enemy

BLOCKADE by Ken Anderson for 4K

Level I and II TRS-80s is a real timeaction game for two players, with highspeed graphics in machine language.Each player uses four keys to controlthe direction of a moving wall. Try toforce your opponent into a collisionwithout running into a wall yourself! Astrategy game at lower speeds,BLOCKADE turns into a tense game ofreflexes and coordination at fasterrates. Play on a flat or spherical courseat any of ten different speeds. You canhear SOUND EFFECTS through anearby AM radio—expect somerazzing if you lose! 14.95

S\ "1

■ ■ SIN(X)

■ ■

.5

■ ■■

A

* ■■ ■

-6.3 -3.^ -1 e ,*.

■ •• ■

■ ■

.8

shots as they come towards you—lower your shields just longenough to fire your phasers, betting that you can get them back upin time! With nine levels of difficulty, this challenging game is easyto learn, yet takes most users months of play to master. ADDSOUND EFFECTS with a simple two-wire hookup to any audioamplifier; the TRS-80 also produces sound effects directly throughthe keyboard case, to accompany spectacular graphicsexplosions! You won't want to miss this memorable version of afavorite computer game $14.95

GRAPHICS PACKAGE by Dan Fylstrafor 8K PETs includes programs for themost common 'practical' graphicsapplications: PLOTTER graphs bothfunctions and data to a resolution of 80by 50 points, with automatic scalingand labeling of the axes: BARPLOTproduces horizontal and vertical,segmented and labeled bar graphs;LETTER displays messages in largeblock letters, using any alphanumericor special character on the PETkeyboard; and DOODLER can be usedto create arbitrary screen patterns andsave them on cassette or in a BASIC

ELECTRIC PAINTBRUSH by KenAnderson for 4K Level I and 11 TRS-80s:Create dazzling real time graphicsdisplays at speeds far beyond BASIC,by writing 'programs' consisting ofsimple graphics commands for amachine language interpreter.Commands let you draw lines, turncorners, change white to black, repeatprevious steps, or call other programs.The ELECTRIC PAINTBRUSH manualshows you how to create a variety offascinating artistic patterns includingthe one pictured. Show your friendssome special effects they've neverseen on a TV screen! $14.95

program $14.95

WHERE TO GET IT: Look for the PERSONAL SOFTWARE™ display rack at your local computer store. If you can't find the product youwant, you can order direct with your VISA/Master Charge card by dialing 1 -800-325-6400 toll free (24 hours, 7 days; in Missouri, dial1-800-342-6600). If you have questions, please call 408- 745- 784 1. Or you can mail your order to the address below.

Personal Software

592 Weddell DriveSunnyvale, Calif. 94086

TM

138 BYTE Augusl 1979

Circle 302 on inquiry card.

Look for Personal Software11*products at the dealer nearest you!

ALABAMA

BYTE SHOP

Huntsville. AL 35805

COMPUTERLAND

Huntsville. AL 35805

CPU,INC

Montgomery, AL 36104

THE LOGIC STORE

Opehka AL 36801

ALASKA

ALPHA ELECTRONICS

Anchorage. AK 99503

ARIZONA

MILLET'S TV & RADIO

Mesa, U 85204

PERSONAL COMPUTER PLACE

Mesa, U 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

SILVER SPUR

Chino. CA 91710

BYTE SHOP OE SACRAMENTO

Citrus Heights, CA 95610

COAST COMPUTER CENTER

Costa Mesa, CA 92627

CAPITOL COMPUTER SYSTEMS

Davis, CA 95616

COMPUTERLAND SAN DIEGO EAST

El Cajon CA 92020

COMPUTERLAND OE EL CERRITO

El Cetnto. CA 94530

COMPUTERWARE

Encmitas. CA 92024

BUSINESS ENHANCEMENT

COMPUSERVICE

Escondido. CA 92027

CHANNEL DATA SYSTEMS

Goleta, 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

PROFESSIONAL COMPUTER STORE

La Crescenta. CA 91214

COMPUTER COMPONENTS

OF SOUTH BAY

Lawndale, CA 90260COMPUTERLAND 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

Placentia, CA 92670

COMPUTER CENTER

Riverside, CA 92503

CAPITOL COMPUTER SYSTEMS

Sacramento, CA 95821

COMPUTERLAND

San Bernardino, CA 92404

COMPUTER AGE INC,

San Diego, CA 92111

COMPUTERLAND OF SAN DIEGO

SanOiego, CA 92111

COMPUTER MERCHANT

San Diego. CA 92115

COMPUTERLAND OF

SAN FRANCISCO

San Francisco, CA 94105

VIDEO GAMES & COMPUTERS

San Francisco, CA 94118

VILLAGE ELECTRONICS

San Francisco, CA 94121

COMPUTERLAND OF SAN JOSE

San Jose, CA 95129

COMPUTERLAND (Central)

San Leandro, CA 94577

BYTE SHOP

San Luis Obispo, CA 93401

MARIN COMPUTER CENTER

San Rafael. CA 94903

ADVANCED COMPUTER PRODUCTS

Santa Ana. CA 92705

COMPUTER CITY

Santa Ana, CA 92704

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

Fairfield. CT 06430

JRV COMPUTER STORE

Hamden, CT 06518

THE COMPUTER STORE

Hartford. CT 06103

COMPUTER LAB

New London, CT 06320

THE COMPUTER STORE

Windsor Locks, CT 06096

WASHINGTON DC.

COMPUTER CABLEVISION

Washington. DC 20007

FLORIDA

COMPUTERLAND

Boca Raton. FL 33432

THE COMPUTER STORE

Bradenton, FL 33505

THE COMPUTER STORE

Clearwater, FL 33516

TRANS DATA CORP

Coral Gables, FL 32134

UCATAN

Destin, 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

SOUND IDEAS BYTE SHOPPE

Gainesville. FL 32601

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, II 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 60611

VIDEO ODYSSEY

Deerfield, IL 60015

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

Niles, IL 60648

COMPUTERLAND

Oak Lawn. IL 60453

BIES SYSTEMS

Oak Park. IL 60302

COMPUTERLAND OF PEORIA

Peoria, IL 61614

WALLACE ELECTRONICS

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

COMPUTER CENTER

So Bend.IN 46637

IOWA

SYNCHRONIZED SYSTEMS

Des Moines, IA 50310

COMPUTER SHOP

Spencer. IA 51301

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

KENTUCKY

BARNEY MILLERS INC

Lexington, KY 40507

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

MICHIGAN

NEWMAN COMPUTER EXCHANGE

Ann Arbor, Ml 48104

NEW DIMENSIONS IN COMPUTING

Easl Lansing, Ml 48823

COMPUTER HOUSE DIV.

Jackson. Ml 49202

COMPUTERLAND OF

GRAND RAPIDS

Kentwood, Ml 49508

COMPUTRONIX

Midland, Ml 48640

COMPUTER MART

Clawson, Ml 48017

TRI CITY COMPUTER MART

Saginaw, Ml 48603

COMPUTERLAND

Southfield, Ml 48034

LEVEL FOUR PRODUCTIONS

Westland, Ml 48185

MINNESOTA

COMPUTERLAND

Bloommgton. MN 55431

ZIM COMPUTERS INC

Brooklyn Center, MN 55429

MINN MICRO SYSTEMS

Minneapolis, MN 5r 54

MISSISSIPPI

OXFORD SOFTWAR 0

Oxford, MS 38655

MISSOURI

FORSYTHE COMPUTERS

Clayton, MO 63105

COMPUTER COUNTRY

Florissant. MO 63031

FUTUREWORLD, INC.

St. Louis, MO 63131

GREATEST GRAPHICS

Springfield. MO 65804

NEBRASKA

OMAHA COMPUTER STORE

Omaha, NE 68127

NEVADA

CENTURY 23

Las Vegas, NV 89102

HOME COMPUTERS

Las Vegas, NV 89109

NEW HAMPSHIRE

TRS 80 SOFTWARE EXCHANGE

Miltord, NH 03055

COMPUTERLAND OF NASHUA

Nashua. NH 03060

BITS. INC.

Peterborough, NH 03458

NEW JERSEY

COMPUTER LAB OF NJ

Budd Lake, NJ 07828

COMPUTER EMPORIUM

Cherry Hill, NJ 08002

COMPUTER MART OF NJ

Iselm. NJ 08830

MSM ELECTRONICS

Medlord, NJ 08055

COMPUTERLAND

Mornstown, 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

STONEHENGE COMPUTER CO

Summit, NJ 07901

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

COMPUTERWORLD INC

Great Neck, NY 11021

LONG ISLAND COMPUTER

GENERAL STORE

Lynbrook, NY 11563

COMPUTER MICROSYSTEMS

Manhassel, NY 11030

COMPUTER SHOPPE

Middle Island, NY 11953

ARISTO-CRAFT

New York, NY 10001

THE COMPUTER FACTORY

New York, NY 10017

COMPUTER MART OF NEW YORK

New York, NY 10016

OATEL 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

Williamsville, NY 14221

NORTH CAROLINA

BYTE SHOP

Charlotte. NC 28212

COMPUTERLAND

Charlotte. NC 28205

COMPUTER ROOM

Charlotte, NC 28203

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

INDUCTIVE COMPONENTS

Amelia, OH 45102

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

Mayfield Heights. OH 44121

RADIO SHACK (Dealer)

St Clairsville, OH 43950

OKLAHOMA

HIGH TECHNOLOGY

Oklahoma City. OK 73106

MICROLITHICS

Oklahoma City, OK 73127

HIGH TECHNOLOGY

Tulsa. OK 74129

OREGON

THE COMPUTER STORE

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

Latrobe, PA 15650

THE COMPUTER WORKSHOP

Murrysville, PA 15668

A B COMPUTERS

Montgomeryville, PA 18936

MICROTRONIX

Philadelphia, PA 19106

COMPUTER HOUSE

Pittsburgh, PA 15220

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

COMPUTER POST

Arlington, TX 76011

COMPUTERLAND OF AUSTIN

Austin, TX 78757

COMPUTERS 'N THINGS

Austin. TX 78731

MICRO COMPUTER SHOPPE

Corpus Chnsti, TX 78411

MICROSYSTEMS SERVICES INC

Corpus Chnsti, TX 78411

COMPUSHOP

Dallas, TX 75243

COMPUTER IMAGINEERING

Dallas, TX 75234

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

INTERACTIVE COMPUTERS

Houston, TX 77036

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

MICRO MART

San Antonio, TX 78205

WICHITA COMPUTER SYSTEMS

Wichita Falls, TX 76301

UTAH

AOP SYSTEMS

Logan, UT 84321

TRIPOWER ELECTRONICS

Murray, UT 84017

COMPUTER SPECIALISTS

Ogden, UT 84402

COMPUTER CONCEPTS GROUP

Salt Lake City, UT 84109

COMPUTERLAND OF SALT LAKE

Salt Lake City, UT 84111

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

COMPUTER WORKSHOP

Spnngheld, VA 22151

COMPUTERLAND

Vienna, VA 22180

HOME COMPUTER CENTER

Virginia Beach, VA 23452

WASHINGTON

COMPUTERLAND

Bellevue. WA 98007

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, NSW

CANADA

COMPUSHOP

Calgary, Alberta T2N 2A4

THE COMPUTER SHOP

Calgary, Alberta T2T 4T9

ORTHON COMPUTERS

Edmonton, Alberta T5N 3N3

TJB MICROSYSTEMS

Edmonton, Alberta T5M 0H9

CONTI ELECTRONICS

Vancouver. BC V5W 2Z4

COMPUTER CITY

Winnepeg. Manitoba R3P 0H8

COMPUTERLAND

Winnepeg. Manitoba R3G 0M8

INTERACTIVE COMPUTER SYSTEMS

Frederickton, New Brunswick

MINICOMP SYSTEMS

Halifax, Nova Scotia B3K 2G1

KOBETEK SYSTEMS

Woltville, 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

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

Circle 302 on inquiry card.

BYTE August 1979

139

Text continued from page 136

this 4 byte object can specify the atom uniquely from allother atoms and from all other dotted pairs.

Unfortunately this does not provide a simple way ofdistinguishing atoms from dotted pairs, when just giventhe form. Several solutions to this problem are possible.One is to restrict dotted pairs to a certain part ofmemory, then the address would determine whether theform specified an atom or a dotted pair. A secondmethod is to add an additional byte to both dotted pairsand atoms which simply contains a type specifier, say 1for dotted pairs and 2 for atoms. This method makesfuture expansion of types simple, but is somewhatwasteful in terms of space. The third method, the onechosen for the author's system, is to align all dotted pairsand atoms on 4 byte boundaries, that is, with addresseswhich are a multiple of four. This means that the loworder two bits of the address are expected to always bezero, and hence may be used to encode type information.In the author's system, dotted pairs are specified by formswith both bits zero, and symbolic atoms by 01 in thelower two bits. One of the bits is still unused, but willbecome very handy when garbage collection methods arediscussed below.

With numeric atoms, their name determines theirvalue, and hence only their name (or their value) need bespecified by a form. On the author's M6800 system onlyhexadecimal memory addresses 0000 thru 7FFF were ac-cessible for storage of dotted pairs and atoms, meaningthat the high order bit of forms specifying either of thesewas always zero. A representation for numeric atomswas chosen to be a form with the high order bit set, 14bits of numeric value, and one bit left for garbage collec-tion.

A special representation for the NIL atom is used bothbecause the value of NIL is, like numeric atoms, requiredalways to be the atom itself, and because it is used univer-sally to represent the end of a list. The form chosen tospecify NIL is simply the value zero. In fact any formwith the high order byte zero is treated like NIL tosimplify the test for NIL in certain cases. This means thatthe 256 byte page starting at zero is not usable for storingatoms or dotted pairs, but this restriction causes no pro-blem at all, since both are allocated starting at the highestaddress available, and the allocator runs into programlong before it reaches page zero.

When writing a LISP interpreter, the implementormust decide relatively early on how forms will specify alltypes of LISP objects. Unfortunately, it may not be untilwell into the implementation that the implementordiscovers that certain choices were inefficient or incon-venient.

One important requirement affecting this decision notyet mentioned is the need to implement the LISP EQ func-tion. This function takes two arbitrary forms, andreturns the atom T or the atom NIL depending onwhether the forms specify the same dotted pair, orwhether the forms specify the same atom. Whenever anatom is input by READ, it must return the form specify-ing that atom to the caller. Whenever the same symbolicatom name is typed, READ must return the same form,ie: a pointer to the same 4 byte cell. This is accomplishedby retaining a linked list of all defined symbolic atoms(called the OBLIST).

Before allocating a new 4 byte cell for an atom, READscans the OBLIST for an atom of the given print name. Iffound, READ returns a form specifying that pre-exisitingatom. (Otherwise it must copy the name into some areaused for storing names, allocate a 4 byte cell, initialize theleft cell to point to the name, and the right cell to NIL,and return a form specifying the new atom.) This methodguarantees that two forms specify the same symbolicatom if and only if they have the same address.

In some implementations of numeric atoms, this samerule cannot be guaranteed. In such systems, numericatoms are simply allocated an appropriately large cell tostore their numeric value (and hence allowing numericatoms greater than 14 bits), a new cell being allocatedevery time a new number is generated (which happens atevery ADD, MUL, etc). In these systems it would be im-practical to scan a list like the OBLIST every time anyarithmetic calculation is done, and so the LISP functionEQ may not rely on the rule that unequal forms indicateunequal atoms. In such systems, EQ must look at thecontents of the cell specified by a numeric atom form,and make the comparison that way. In systems like theauthor's, EQ simply compares the forms themselves, nomatter what type of atom the form may specify.

The choices made in representing the various types ofLISP objects can be summarized in the high levellanguage (Pascal-like) data structure specification inlisting 1.

type lisptype =

(dtprtype, symatmtype, numatmtype, nilatmtype);dtpr =record

car: form;cdr: formend;symatm =record

name: t array [0..n] of char;value: formend;form =

packed recordgcbit: boolean;case objtype: lisptype of

dtprtype: (dtprform: t dtpr);

symatmtype: (symatmform: I symatm);numatmtype: (numatmform: - 5000. .4999);nilatmtype: ()

end.

Listing 1: A Pascal data structure specification that could beused to represent various types of LISP objects.

READ Function

READ is the basic input routine for the LISP inter-preter. READ accepts a fully parenthesized expressionfrom the terminal, and builds up the internal representa-tion, allocating new dotted pairs and atoms as necessary.If the expression is a list, READ returns a form specifyingthe first dotted pair of the constructed list. If the expres-sion typed in is simply an atom, READ returns a formspecifying the atom.

The logic of the READ routine is straightforwardbecause the syntax of LISP expressions is so simple.READ calls a function RATOM to return the next inputatom. RATOM actually does the work of allocating new4 byte cells for symbolic atoms (when necessary) as ex-

140 August 1979 © BYTE Publications Inc

Brain

TM

n NTRTEC DATA SVSTEMS

1 " ' * ,--1irii **. ■■■idW im i l»i»W.

Tlie Honor Graduate

There's been a lot of talk latelyabout intelligent terminals withsmall systems capability. And, it'salways the same. The systemswhich make the grade in perfor-mance usually flunk the test inprice. At least that was the caseuntil the SuperBrain graduated withthe highest PPR (Price/Perfor-mance Ratio) in the history of theindustry.

For less than $3,000*, SuperBrainusers get exceptional performancefor just a fraction of what they'dexpect to pay. Standard features in-clude: two dual-density mini-flop-pies with 320K bytes of disk storage,64K of RAM to handle even the mostsophisticated programs, a CP/MDisk Operating System with a high-powered text editor, assembler and

*Quantity one. Dealer inquiries invited.

Circle 180 on inquiry card.

debugger. And, with SuperBrain'sS-100 bus adapter, you can even adda 10 megabyte disk!

More than an intelligent terminal,the SuperBrain outperforms manyother systems costing three to fivetimes as much. Endowed with ahefty amount of available software(BASIC, FORTRAN, COBOL), theSuperBrain is ready to take on yourtoughest assignment. You name it!General Ledger, Accounts Receiv-able, Payroll, Inventory or Word Pro-cessing . . . the SuperBrain handlesall of them with ease.

Your operators will praise theSuperBrain's good looks. A fullASCII keyboard with a numeric key-pad and function keys. A non-glare,dynamically focused, twelve inchscreen. All in an attractive desktopunit weighing less than a standard

office typewriter. Sophisticatedusers will acclaim SuperBrain's twinZ-80 processors which transfer datato the screen at 38 kilobaud! Inter-facing a printer or modem is noproblem using SuperBrain's RS-232C communications port. But bestof all, you won't need a PhD in com-puter repair to maintain the Super-Brain. Its single board design makesservicing a snap!

So don't be fooled by all the fresh-man students in the small systemsbusiness. Insist on this year's honorgraduate . . . the SuperBrain.

3

sinte3tecCdata

= SYSTEMS

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

BYTE August 1979

Circle 352 on inquiry card.

"Programming." Whether in Arabic or English, can sometimes be asconfusing as learning a foreign language.

With this in mind, Structured Analysis Systems developedSP80, an innovative concept providing structured programmingcapabilities within assembly language.

Designed specifically for the 8080/Z80 systems, SP80 canbe used with most macro assemblers; TDL, Cromemco Z80,Microsoft, or Digital Research.

Statements include:

• Iteration; LOOP-EXITIF, REPEAT-UNT1L, WHILE-ENDWHILE, DO

• Conditional; IF-ELSE-ENDIF

• Case analysis; SELECT-CASE-CASE-CASE-ENDCASE

Specific capabilities:

• Conjunction/Disjunction; AND, OR

• Unsigned relations; EQ, NE, LT, LE, GT, GE

• Signed relations; SLE, SLT, SGE, SGT

• Conditions; CARRY, NZ,PLUS, Etc.

• Z80 or 8080 codegeneration

SP80's manual

includes; functional

source listings of up

to two macro

libraries, macro syntax (with examples), and ^^

detailed sample SP80 program. ^^

Send $50 for CPM diskette and manual, or $25 for manual alone, (add $5overseas and $2 Canadian postage) to: Structured Analysis Systems

Post Box 2745

Reston, Va. 22091/703-860-8794

Please specify only up to two assemblers for which to receive documentation.Also available in Macro-11 for the LSI-11 and PDP-11.Laminated SP80 reference cards available at $5 each.

plained above. RATOM returns a form specifying theatom typed. If this atom is anything but the atom "("READ simply returns the atom as its result. If the atomreturned by RATOM is "(", READ calls itself recursivelyuntil it gets the atom ")", meanwhile stringing the formsreturned together as the CARs on a linked list of dottedpairs. This could be written as in listing 2.

In the LISP functions we are assuming that the atomsLPAREN and RPAREN were initialized to point to theatoms with print names "(" and ")" respectively. Noticethat in the LISP version, READ accomplishes the loop ofthe machine code version with recursion in READL. Theroutines LSTINI, LSTADD, and LSTEND used in theassembly language version build up a linked list of dottedpairs, using two pointers on a stack, one to the first dot-ted pair, one to the dotted pair at the current end of thelinked list. The pointers are on a stack so that READ maycall itself recursively. The stack is actually a linked listitself. The linked-list stack is manipulated with theroutines in listing 3. With these routines it is straight-forward to implement LSTINI, LSTADD, and LSTENDfor use in READ. These routines are shown in listing 4.

The primitive function RATOM turns out to be thereal workhorse of READ. It is stuck with the job of ac-cepting characters one at a time from the terminal, andbuilding them up into an atom. RATOM must distin-guish symbolic atoms from numeric atoms, and build upthe corresponding forms. Atoms are in general separatedby spaces, tabs, or carriage returns. However a fewspecial characters always form single-character atoms

Text continued on page 145

PTDOS + CBSort = FAST!, FAST!, FAST!

CBSort IS NOW AVAILABLE FOR PTDOSf

HELIOS® SYSTEMS

SPEED AND COMPATABILITY CBSort is fully compatiblewith the incredible power of PTDOS. CBSort, written in8080 Assembler, coupled with the power of PTDOS buf-fering produces lightning speed sorts.

FLEXIBLE YET EFFICIENT CBSort can sort any file with afixed record length of up to 4095 bytes. CBSort sorts upto 5 fields of any length, up to the length of the record.Each field can start on any byte of the record and eachfield can be ordered in ascending or descending se-quence. The file can be fully described in the callingparameters or based on the TYPE parameter standarddefaults for that type can be assumed. CBSort is a logicalbyte sort so that any bit convention, ASCII, EBCDIC,BCD, Packed Decimal or binary can be sorted in ascend-ing or descending order.

EASE OF INTERFACING CBSort works well either as astand alone sort or with production and turnkey sys-tems. Special linking programs are included withCBSort to allow insertion into a stream of programs.CBSort is compatible with Extended Disk Basic, FOR-

TRAN, Pascal or any other language available on theHELIOS system.

PRACTICAL CBSort can really sort a full disk because itdoes not require extra space on your disks for mergeand work files as other sorts do. CBSort sorts files soyou do not have to contend with the overhead of mem-ory consuming indexed tags in order to get sequentialdata. CBSort is practical for the micros and not a trans-plant from the gluttonous dinosaurs.

EXTRACTION CBSort has the ability to extract from themain file and create a sorted secondary file that containsonly the selected fields and a pointer to the main file.This can be extremely useful when using a binary searchtechnique for field verification, for quick file summari-zation or further field extraction.

EASY TO USE The User's Manual describes in detail thefeatures and operation of CBSort and contains manyexamples of its use. CBSort does extensive error check-ing and produces clear runtime error diagnostics.

CBSort on PTDOS data disk with User's Manual $75.00

■PTDOS and HELIOS are registered trademarks of Processor Technology

fcbslComputer Bookkeeping Services, Inc.

1446 Leimert Blvd. • Oakland, CA 94619 • (415) 531-7427

Micro Division

142 August 1979 © BYTE Publications Inc

Circle 49 on inquiry card.

Listing 2: LISP (a) and M6800 assembly (b) code for the READ function.

(a) (DEF READ (LAMBDA ()

(READR (RATCM))))

(DEF BEACR (LAMBDA (A)

(CC'ID

((EC A LPAREIJ) (READL (READ)))

(T A))))

(DEF READL (LAMBDA (F)(CC'ID

((EC F RPAREfl) NIL )(T (COM3 F (READL (READ)))))))

(b) READ JSR RATOM pick up the next input atom

CPX LPARAT is it equal to the "(" atom?

ONE RDRET no, simply return the atom

JSR LSTIIII yes, initialize a linked list

RDLU? PEP READ call RFAF recursively to pick up next form

CPX RPAPAT is it equal to the ")" atom?

DEC RDLDL'N yes, finalize the list and return

JSR L3TADD no, allocate a new dotted pair,

* fill in the CAR, and add it to the list,DRA RDLUP and loop around.

RDLD'J!! JSR LSTEND finalize the list, get a pointer to

• the first dotted pair of the listRDRET RTS and return.

3

®

I

• set up the, stack for LSTADD.

* first stack a NIL, then a pointer to the NIL.LSTIEI LDX ZERO stack a NIL form

PUSHX

STKPTR stack a pointer to the NIL

as though it were the CDR of a cell.

JSRLDXDEXDEXJMP

PUSHX push it and return.

* add form in X-reg to list pointed to by value on top of stack

* clobbers X-reg, A-reg, and B-reg.

LSTADD JSR GETCEL get a dotted pair and fill in the CARSTX CELPTR save address of new cellJSR TOPX retrieve pointer from top of stackLDAA CELPTR link new cell onto listSTAA CDR.XLDAB CELPTR + 1STAB CDR + 1.X

LDX STKPTR update list pointerSTAA CAR.X (which is on top of stack)

STAB CAR+l.XRTS and return.

Listing 3: M6800 implementation of linked-list stack manipulation routines.

" PUSHX saves the value of the X-reg on a linked-list stack.PUSHX B5R GETCEL allocate a new dotted pair and fill in the CAP

LDAA STKPTR fill in the CDR from STKPTR

STAA CDR.X (CAR and CDR ire symbols defined as

LDAA 3TKPTR+1 C and 2 respectively)

STAA CCR + 1.X

STX STKPTR update the STKPTR

LDX CAR,X restore the X-reg

PTS and return.

* allocate a new Jotted pair, save X-reg in the CAR,

* and set the CDR to I.'IL

GETCEL STX XTMP save the X-reg temporarily

LDX FRFPTR pick up a free dotted pair off the FREE list.

BEC :;SFREE no more left, so it goes...

LDAA CDR.X update the FREE list pointer

STAA FREPTR

LDAA CDR + l.X

STAA FRETTR-fl

CLR CDR.X set the CDR to ML

CLR CDR + 1.X

LDAA XTMP fill in the CAR from the X-reg

STAA CAF.X

LL'AA XTMP + 1

STAA CAR+l.X

RTS and return .

' restore tie X-reg from the linked-list stack

POPX LDX STKPTR point to the top of the stack

LDAA CDR.X update the STKPTR

STAA STKPTR

LDAA CDR + 1.X

STAA STKPTR+1

BRA FRECEL and free up the dotted pair used.

* free up a dotted pair, and load X-reg from the CARFRECEL LLM FREPTR link the cell onto the FREE list

STAA CTR,X

LDAA FREPTR+1

STAA CDR + 1.X

LDX CAR.X load X-reg from CAR

RTS and return.

* return value at top of stack in X-reg■ (but leave it on stack)

TCPX LDX STKPTR return CAR of cell or top of stack.LDX CAR,XRTS

ST

t

* pop off list end pointer

* return pointer to first dotted pair of list in X-regLSTEND JSR POPX pop off and ignore list end pointer

JMP PCPX pop off and return list begin pointer

Listing 4: LSTINI, LSTADD, and LSTEND build up a linked list of dotted pairs using twopointers on a stack, one to the first dotted pair, one to the dotted pair at the current end ofthe linked list.

Listing 5: RATOM accepts characters one at a time from the terminal and builds theminto atoms.

area

* return form in X-reg for next atom typ»d inRATOM LEX SPCPTR save painter to first open spot in naif

STX NAMPTR

LDAA PEEKC PEEKC always contains the next character typri.

RE PI UP CM PA 0520 is PEEKC a separator (space or any control character)'

EGT GNAM no, go collect name of atom

BEE READC yes, get next char

ERA SEPLUP and loop.

* get next char of input, and store in rjlobnl PEEKC

READC JSP, 3ETG use get chan routine in RCM monitor

STAA PEEKC save it in PEEKCR TB and return si th it also in A - r e g.

* coll

RCLUP

ect name of atom, build up form, etc.

BSR CCPYC save char in name area

BSR SPCLCH is it a special char ("(" or

SfiE RCLU? to, collect multi-character r

DSR READC yes, update PEEKC

ERA SCAKOL and go scan 0811ST

BSR READC get next character of name

CM PA i'.t2C separator?

ELE SCANOL yes, all done with name

BSR SPCLCH special char?

EEC SCANCL yes, end atom now

B£S CCPYC no, copy this chj

3RA RCLUP and loop.

" ) " )'

ame

to name area

:opy char in A-reg to name area, and advance name space pointer

CCPYC

LLXSTAA

INXSTXRTS

SPCPTR

o,x

SPCPTR

point to empty slot in name spacestore the charincrement the pointer

and r etur n .

* check if char is a special char (i.e. "(" or ")")SPCLCH CMPA »'( 1. paren?

3EQ SPCLY

CMPA I!' ) or r . paren?

SPCLY RTS return with Z-bit set appropriately.

* null-terminate name, check if numeric, scan OBLIST if not.

SCANOL

SCANLP

: l r t

BSRJ3RBCC

LDXSTXBECLEXDEXLDXBSRBECLEXLDX□ FA

null-terminate the name

CCPYCCKNUX8RETNUM0311ST

check if numeric...

yep, go return numeric form

nope, scan the CBLIST for the symbolic atomLSTPTE using LSTPTR to point to the elements of the listDE'JATM end of list, must be new atomCAR,X jet next atom

clear low-order bit of formCAR,X pet pointer to the atom's nameCMPUAM compare with that at NAMPTROLDATM found it! return pre-existing atomLSTPTR not equal, go on to next atomCDR,XSCAMP

* compare strings pointed to by X-reg and NAMPTR

* Z-bit set if equal

* clobbers X-reg, A-reg, C-reg

CMPNAK STX XTMP2 save Y-rei temporarily

LEX NAM FT" point at now atom name

CMPLP LDAA C,X get next two chars

LDAC 1,X

:hpret

STXLDXCM PA

3KE

TSTA

EEC

CMPB

EUE

TSTBEECI NX

i:;x

STXLDXINXINXBRARTS

XX

0,CM

CM

1.CK

HP

M P ?

X

PRET

PRET

X

PRET

C'-'PRET

XTI1P?XTMP

save X-reg temporarily

point at other name

first char equal?

nope, return with Z-bit clear

all done now?

yep, return with Z-bit set

second char equal?

nope, return with Z-bit clear

all done now?

yep, return with Z-bit set

match so far, advance pointers

CMFLP and loop around.

Z-bit now set properly.

* we have an old atom, reset speptr and return

OLDATM LDX LSTPTR get form specifying pre-existing atom

LDX CAR.X

CPX NILATM is this the atom with the print name "NIL'

BNE RETNUM

LDX ZERO yep, return a zero form instead

RETNUM STX FCRM save form temporarily

LDX NAMPTR reset SPCPTR

STX SPCPTR

RATRET LDX FCRM and return with FORM in X-reg

RTS

* we have a new atom, allocate a new cell and return new form

NEWAI

* here

* onl

* retCKNUM3

DADMU!

LDX

J3R

INX

STX

JSR

I. BAA

STAA

LDAA

STAA

BRA

is a sty one-diurns wit

LDX

LDAA

CUBA

BLT

CM PA

BGT

Bt.'E

LDAB

STAB

RCRA

ROLB

ASLA

RORB

ROLA

STAA

LDX

CLC

RTS

SEC

RTS

NAMPTRGETCEL

FORM

GETCEL

OBLIST

CBR.X

OFLIST+1

CBR+1 ,X

RATRET

set up new atom cell with pointer to name

in CAR of dotted pairset low order bit of form to indicate atom

save in FORM for laterlink new a ton onto OBLIST

and return with FORM in X-reg

M

r ippedgit n urnh C-bit

11AMPT

0,X

*"0

EADNU

*9

BADNU

1,X

BADNU

0*80

FCRM

FCRM+1FCRM

down

er ic

set

R 1

B

version of CKNUMB. It acceptsatoms. Otherwise it

ook at name

et first char

ubtract out ASCII code for zero digit

ot a digit if negative

igger than 3?

ot a digit

ore than one digit?

ot allowed (for now)

-OK, build up numeric form in FCRM

shift value around so that bit 1 is left openfor garbage collector

bits 1,2,3 --> 2,3,1; bit 0 --> bitstore low order byte of formand return it in X-regwith C-bit clear.

bad number, return with C-bit set.

(a) (DEF PRINT (LAMBDA (F)

(PROGN

(PRINR F)(PATCM SEWUSE)F

(b)

)

))

(F)

(DEF PRINR (LAMBDA(COND

((ATOM F) (PATOM F))

(T

))

(PRCGM(PATCH(PRINR(PRINL(PATCM

LPAREN)(CAR F))(CDR F))RPAREN)

))

(DEF PRINL (LAMBDA (L)(CCNP

((DTPR L) (PRCGN(PATCM SPACE)(PRINR (CAR L))(PRINL (CDR D))))))

* type

OUt 3

form, ful]

PRIMT

JSR

PUSHX

BSR

PRINR

LDX

CRLFAT

BSR

PATOM

JMP

POPX

* type

out a

for™, with

* clo

Dbers X-reg

PRINR

JSR

ISATOM

PCC

PATOM

JSR

PUSHX

LDX

LPAEAT

BSR

PATOM

PRINL

JSR

TOPX

LDX

CAR.X

BSR

PRINR

JSR

POPX

LDX

CDR.X

JSR

ISDTPR

BCS

PRFAR

JSR

PUSHX

LDX

SPACA7

BSR

PATOM

BRA

PRINL

PRPAR

LDX

RPARAT

BRA

FATCM

i parenthesized, and then go to a new line,save X-reg on stack

simply pass the buck to recursive PRINRtype out CR/LF

using PATOMrestore X-reg and return.

no CR/LF

is the form an atom?yes, pass the buck to PATOMnope, stack the X-regtype out a "("

restore the X-regtype out the CAR

(recursively! )restore pointer to the dotted pairadvance to next dotted pair in linked list

is there a next dotted pair?nope, go type a ")"yep, save the new X-rf, ag?intype out a space

and loop around,type out a ")"and return (through PATOM).

Listing 6: LISP and M6800 assembly code of the PRINT routine.

Text continued from page 142

when encountered (eg: "(" and ")") without any separatorcharacters necessary.

In the author's LISP system RATOM is relativelysophisticated, allowing for atoms with spaces in theirnames if they are quoted ("..."). Also the single quotecharacter ("'") is given special significance, as are "[" and"]". However a simpler RATOM is quite enough for aninitial implementation. To make this exposition simpler,only single digit numeric atoms will be allowed. Certain-ly in an eventual implementation, multidigit numericatoms, optionally preceded by a minus sign would be ac-cepted.

In this RATOM, the characters are copied into an areaset aside to hold the names of atoms as they are input. Anull character (ASCII code zero) is used to terminate thename, when a separator or special character is en-countered. If the name is entirely numeric, then the atomis a numeric atom, and the form is simply the value of thenumber, with the high order bit set, and one other bit leftzero for use in the garbage collector. Otherwise the atomis a symbolic atom, and a scan is made of the OBLIST fora pre-existing atom with the same name. If one is found,the characters just typed in are thrown away and a formspecifying the pre-existing atom is returned. If the atom isa new one, a 4 byte cell is allocated (using GETCEL defin-ed in listing 4) and a pointer to the new atom is added tothe OBLIST. A form specifying the new atom is returned.The M6800 assembly language code for this is in listing 5.

PRINT Function

PRINT is the second major recursive function compris-ing the LISP interpreter. It takes a single form as argu-ment, and types the value as a fully parenthesized LISPexpression. PRINT simply calls the more primitive func-tion PATOM when it is given an atom to type. Other-wise, PRINT types a left parenthesis, calls itself recursive-ly to type out the elements of the list, and then types aright parenthesis. In any case, PRINT always types out acarriage-return/line-feed at the end. This can be coded asin listing 6.

In the LISP routines, the special function PROGN isused. PROGN simply evaluates all of its arguments in se-quence, and then returns the value of the last one as thevalue of the entire PROGN. The two functions ATOMand DTPR are used to test the type of a LISP object.ATOM returns T if the argument evaluates to an atom —symbolic, numeric, or NIL. Otherwise ATOM returnsNIL. DTPR is the exact opposite. It returns T if the argu-ment evaluates to a dotted pair, and returns NIL other-wise. Such functions which return either T or NIL arecalled "predicates" in LISP in analogy with predicates asused in symbolic logic. Such functions in other languagesare called Boolean functions.

Nowhere in the routines for PRINT, nor for that mat-ter in the routines given earlier for READ, is theallowance made for the input or output of list structureswhich require the use of "dot" notation. A structure like(A B C . D) could not be input, and the above PRINTroutines would type it out as (A B C), simply assumingthat the atom which ended the linked list was NIL. Itturns out that the changes necessary to implement dotnotation are quite straightforward. For example, to add itto the LISP version of PRINT, only the routine PRINLneed be rewritten, as follows:

(DEF PRINL (LAMBDA (L)(COND

((DTPR L) (PROGN(PATOM SPACE)(PRINR (CAR D)(PRINL (CDR L))

))

((EQ L NIL) NIL)

(T (PROGN

(PATOM SPACE)

(PATOM DOT)

(PATOM SPACE)

(PATOM L)))

))

August 1979 © BYTE Publications lnc 145

A corresponding change could be made to the assemblylanguage routines.

As with the primitive function RATOM, the functionPATOM turns out to be more difficult to implement thanthe recursive PRINT. PATOM must distinguish betweensymbolic atoms, numeric atoms, and NIL, and act accor-dingly. With symbolic atoms, PATOM simply types thenull-terminated name of the atom. With numeric atoms,PATOM must convert back from the internal represen-tation of the numeric value, to the string of ASCIIcharacters which represent the number. With NIL,PATOM simply types 'NIL '. Listing 7 is a simplified ver-sion of PATOM with numeric atoms of only a singledigit.

EVAL Function

The EVAL function is the heart of the LISP interpreter.EVAL accepts one form as an argument, and evaluates itaccording to the LISP convention: the value of NIL isNIL, the value of a numeric atom is itself, the value of asymbolic atom is the form associated with the atom, andthe value of a list is determined by applying the functionspecified by the CAR of the list to the list of argumentswhich make up the CDR of the list.

In most LISP systems at least two distinct kinds offunctions exist, SUBRs and LAMBDAs. SUBRs are thebuilt-in functions of the LISP system, written in machinecode (like CAR, CDR, PATOM). LAMBDAs are theuser-defined functions, defined like (DEF GCD (LAMB-DA (X Y) ...)). The effect of such a DEF is simply todefine the list (LAMBDA (X Y) ...) as the value associatedwith the atom GCD.

The type of object used to specify a SUBR functionvaries among LISP systems. Frequently a new type of ob-ject is defined, called CODE, distinct from atoms anddotted pairs. A second alternative is to treat SUBRs like afunny kind of atom. The author's LISP system treats thebytes which make up the machine code of the SUBR likethe print name of an atom. The SUBR is then specified bya dotted pair, with the CAR being the atom "SUBR" toidentify the type of function, and the CDR being thisatom with the funny print name. In fact the print name isprefixed with a special string which is unlikely to occur ina normal atom's print name, and hence PATOM coulddetect that the print name was not typeable, and simplytype, say, "!" instead. In addition EVAL can check for thepresence of this special string at the beginning of the printname to avoid treating a normal atom's print name asmachine code. This method for specifying SUBRs avoidsintroducing an additional type, but the added complica-tion in PATOM and EVAL may rule out the method insome implementations.

When EVAL is given a list to evaluate, it first evaluatesthe CAR of the list (recursively). The evaluation of theCAR should be either a LAMBDA expression, or a SUBRexpression. If the evaluation of the CAR is an atom, or alist not headed by LAMBDA or SUBR, then EVAL stops,and indicates an error to the user.

If the CAR of the list gives a LAMBDA expression, thearguments to the function call are evaluated one at a timeand saved on a list. The value associated with the "for-

mal" arguments of the LAMBDA expression (eg: X and Yto the GCD routine given earlier) are saved on the stack.These formal arguments are then set one at a time to havethe value of the corresponding actual arguments to thefunction (which were evaluated already). Finally, the"body" of the LAMBDA expression is evaluated, with theformal arguments now holding their new values. Theresult of evaluating the body is the result of the originalfunction call. As a last step, EVAL restores the originalvalues of the formal arguments.

Following the details of evaluation of such a functioncall is very difficult at first. The sequence of these steps iscritical: evaluate actual arguments, save old values offormal arguments, set new values of formal arguments,evaluate body of LAMBDA, restore old values of for-mals. With any other sequence there is a chance thatchanges to the formal arguments of this function mightinterfere undesirably with the values of atoms in the call-ing routine's environment. These formal arguments aresupposed to be strictly "local," that is, the choice of aname for a formal argument should be a strictly localdecision, having no impact on variables with the samename in calling routines. Observing these rules allowsLISP functions to be freely recursive. As the above ex-amples of routines demonstrate, this recursion is in factheavily used in LISP programming.

The steps in applying a SUBR function are simpler,because there are no formal arguments to worry about.EVAL simply evaluates the arguments to the SUBR, andpasses them as a list to the machine code subroutine.EVAL expects the result of the SUBR to be left in registerX when the subroutine returns.

This much of EVAL can be implemented on the M6800as in listing 8.

The routines EVLALS, POPFRE, EVLNSV, EVLRSO,and EVLRST have not been included in listing 8 for bre-vity's sake. They are all relatively straightforwardroutines, making heavy use of GETCEL, PUSHX, POPX,and FRECEL to build up and then release the lists of savedvalues.

Two additional types of LISP functions, normallyrecognized by an EVAL function, are called NLAMBDAsand NSUBRs (or FSUBRs, or FEXPRs if you prefer).These types of functions take their argument lists un-EVALed. NSUBRs are simply passed the CDR of the ori-ginal function call list, instead of a list of evaluated argu-ments. Similarly, NLAMBDAs are provided with only asingle argument, the list of unevaluated arguments.Without NSUBRs it is necessary for EVAL to recognizefunctions like COND as special cases, so that their argu-ment list is not immediately evaluated. NSUBRs arespecified in the same way as SUBRs, with the atom"NSUBR" replacing "SUBR" in the CAR of the dottedpair. PRINT will type out NSUBRs as "NSUBR .!)"

NLAMBDAs are very useful for creating elaborateuser-defined functions which take argument lists that areas or more complicated than COND. NLAMBDAs arenecessary anytime the number of arguments is variable,or some of the arguments are wanted unevaluated.

To incorporate NLAMBDAs and NSUBRs in the above

Text continued on page 148

August 1979 6 BYTE Publications lnc

Listing 7: A simplified version of PATOM which assumes single digit atoms.

given atomic form inpreserves X-reg

PATOM

STX

FORM

BEQ

PNILAT

BLT

PNUMAT

DEX

LDX

CAR.X

*

BRA

PNAME

NILNAM

FCC

'Nil '

ft

FCB

0

PNILAT

LDX

NILNAM

PNAME

LDAA

0,X

3EC

PATDUN

JSP.

PUTC

INX

H

BRA

PNAME

PATDUH

LDXRTS

FORM

X-reg, type out name on terminal

save X-reg for latergo print 'NIL' if form is zerogo print numeric atom (high bit set)symbolic atom, clear low bit of formget pointer to print name of atomand go type it out .

string to print for MIL form(the null terminator)

point to a null-terminated string "NIL"type out the chars one at a timeuntil null char,using the ROM monitor put char routine,advance to next character of nameand loop around.

restore X-regand return.

* simplified version of numeric atom type-out

form already stored in FORM. Only look at low order byte for now.

PNUMAT

PNM2

LDAA

FORM + 1

LSRA

A DC A

n

ADDA

;i<o

CM PA

II '9

BLE

PNM2

LDAA

#•»

JSR

PUTC

BRA

PATDUN

get low order byte, and shift it a bit

bits 2,3,1 --> 1,2,2

bit 0 —> bit 0add in ASCII code for zeromore than a single digit?

yes, simply type out "*" for now.send digit to monitor put char routineand return from PATOM.

STX

M

LDXBSRJSRBCC

* X-reg should

* (LAMBDA (..« or

» (SUBR . funSTXLDXCPXBEQCPXBEQ

* illegal exprEVLERR LDX

JSR

* normal or er

* return withEVLXIT STX

JSRSTXJSRSTXJSRSTXLDXRTS

ALP save it in ALP (recursive call on EVAL

will clobber FORM)CAR.X evaluate CAR to get LAMBDA or SUBR expressionEVAL (recursively!)ISATOM is result an atom?EVLERR yes, illegal expression!now be pointing to either.) ...)

ny-atom)FLPCAR.XSUBRATEVLSUBLAMBATEVLLAM

save pointer to function defnow check the CAR for LAMBDA or SUBRSUBR?

yes, go evaluate args, etc.LAMBDA?

yes, go apply the LAMEDAession to EVAL, go report error to user

#ERRMSG error break routine expects error messageERRBRK pointed to by X-reg.ror return, restore ALP, FLP, and NLPresult of evaluation in X-reg and FORM

FORM

POPX

NLP

POPX

FLP

POPX

ALP

FORM

save return valuerestore NLP, FLP, ALP

and return with result in X-regand FORM.

* evaluate the arg list, call the machine code subroutine.

EVLSUB

Listing 8: A simplified version of EVAL.

evaluate form passed in X-reg, return result in X-reg.EVAL STX FORM save form temporarily

numeric atom or NIL, simply returnis this a symbolic atom?

(rotate bit 0 into carry bit)no (low bit clear), must be dotted pairyes (low bit set), load current value of atom

NUMNIL

EVLDTP

STX

FORM

BLE

NUMNIL

LDAA

FORM+1

RORA

BCC

EVLDTP

DEX

LDX

CDR.X

STX

FORM

RTS

te a

function

LDX

ALP

JSR

PUSHy

LDX

FLP

JSR

PUSHX

LDX

NLP

JSR

PUSHX

LDX

FORM

JSR

LDX

LDX

BLE

JSR

BCS

DEX

LDX

LDAA

CM PA

BNE

LDAA

CMPA

BNE

JSR

STX

JSR

LDX

BRA

EVLALS

FLP

CDR.X

EVLERR

ISATOM

EVLERR

CAR.X

0,X

#$21

EVLERR

1.X

#$00

EVLERR

2,X

FORM

POPALS

FORM

EVLXIT

EVAL list of args (pointer to it inpoint at CDR of function def

error if numeric or NIL atom

error if not atom at all

point to print name of funny atom

check for presence of special string(hex $21,$00 used on this system)

SUBR looks CK, call subroutinesave returned resultfree up list of EVALed argsrestore X-regand return from EVAL.

ALP)

store it back in FORMand return with value in X-reg

^nd FORM.

* evaluate call on (LAMEDA (J K)

.)

evaluate a function call (function specified by CAR of dotted pair)

save value of ALP, FLP, NLP on stack

(now ALP, FLP, and NLP arepoint back to original form

"local" variables)

EVLLAM JSR EVLALS evaluate list of args

JSR EVLN3V save old values of formals on stack

JSR EVLRSO store new values for formals

LDX FLP point to body of LAMBDA

LDX CAR.X

JSR EVAL evaluate body (recursively!)

STX FLP save result form temporarily

JSR EVLRST restore old values of formals

LDX FLP restore X-reg

BRA EVLXIT and return from EVAL.

COMPUTER/COMMUNICATION

SEMINARS

OF EXCELLENCE

SNA i TELEPROCESSING^

__J._ SYSTEMS

'PACKET ! OATA '

SWITCHING ' COMMUNICATIONS ' ENCRYPTION j

SIX DYNAMIC 3-DAY SEMINARS BY THESE EXPERTS

LUCKY-GREEN

DATA COMMUNICATION SERVICESAND PROTOCOLS

CHICAGO ■ OCTOBER 8-10, 1979

KONHEIM

ENCRYPTION FOR COMPUTERCOMMUNICATION SECURITY

WASHINGTON, DC. ■ OCT, 31-NOV. 2, 1979

KLEINROCK-FRANK-ROBERTS

EXPERTS ON NETWORKS

BOSTON ■ NOVEMBER 7-9, 1979

Mcquillan-cerf

COMPUTER COMMUNICATION PROTOCOLS

WASHINGTON, DC. ■ NOVEMBER 5-7, 1979

CYPSER

ALL ABOUT IBM's SNA

BOSTON ■ DECEMBER 3-5, 1979

KLEINROCK

COMPUTER NETWORKS

SAN FRANCISCO ■ DECEMBER 3-5, 1979

Seminar Fee:$675

Call or write today:

(213)476-9747

!95!araAPisP5R

!&!BtBis¥mj¥E

P.O. BOX 49765, LOS ANGELES, CA.90049 (213)476-9747

EVAL routines, two additional checks must be added im-mediately prior to EVLERR:

BEQ EVLLAMCPX NSUBATBEQ EVLNSU

CPX NLAMATBEQ EVLNLA

* illegal exp...EVLERR

NSUBR?

yes, go call machine code

subroutine

NLAMBDA?

yes, pass list of args as single

argument

and the additional routines EVLNSU and EVLNLA mustbe included. Both of these routines are simpler than thecorresponding routines EVLSUB and EVLLAM.

To make EVAL useful, some number of built-in SUBRsand NSUBRs must be written. The number of such built-in primitives can be kept quite small in LISP if they arechosen carefully. Most routines can be implemented asuser functions if a few primitives exist. The primitiveswill certainly include PATOM, RATOM, EVAL, CAR,CDR, CONS, COND, SET, ADD, SUB, EQ, GREATER,ATOM, and NUMBER. All but SET and NUMBER havebeen used in the LISP function listings. SET is theprimitive LISP assignment function. SET takes an atomand a value, and sets the value associated with the givenatom to be the given value. NUMBER is a predicate func-tion like ATOM, and simply returns T when its argumentis a numeric atom. Listing 9 is an example of one of theseprimitives, the SUBR EQ.

Notice that the SUBRs and NSUBRs will start with thepreface string (hex 21, 00 is used in this system). Theargument list is always pointed to by ALP. Also noticethat the SUBR may not assume that the proper number ofarguments were supplied. The general rule is to treat

* two argument SUBR EC

* return T if given identicel forms, NIL otherwiseECSBR FCB $21 special preface string

FCB $00

* ALP points to the list of evaluated arguments

LDX ALP get first argBEQ TRUE no args is equivalent to(EQ NIL NIL )

* which should return T.

save first arg temporarily

LDXSTXLDXLDX

BEQ

LDXEQSNIL CPXBEOLDXRTS

TRUE

LDXRTS

CAR.X

XTMP

ALP

CDR,X

EQSNIL

CAR.XXTMPTRUEZERO

TATOM

pick up second arg

(EC X) is equivalent to(EQ X NIL)

are the forms identical?

yes, return T.

no, return the NIL. form

return T atom

Listing 9: EVAL may have built in primitives to expand thelanguage. This is an example of the primitive SUBR EQ.

148 August 1979 © BYTE Publications Inc

Circle 365 on inquiry card.

■if :ni",;*»■*;•■ ,

The face is (becoming) familiar

No surprise... it stands out in the crowd. Thequality and reliability that Industrial Micro Systems'customers have grown accustomed to is now avail-able in our complete system. A system that will growwith your needs.

You can start with a minimum 16K, single disksystem. The system shown above can be expandedto 608K-Bytes of fast RAM with three double-sided,double-density drives. And more to come.

The microcomputer industry standard CP/M™operating system is delivered with the system.PASCAL is available. Industrial Micro Systems sys-tems users are developing an impressive array ofapplication software.

The system is offered in rack mount and tabletop versions and also in our own desk enclosure.

In addition to gaining in familiarity, the Indus-trial Micro Systems picture for total system productsshould be coming into focus for everyone. Advanced,reliable electronics... industry standard software...and functional, high quality enclosures.

Industrial Micro Systems, your source for com-plete systems. And the prices are right.

Ask your dealer to see the full Industrial MicroSystems line of products and be watching for excit-ing new additions soon to come from Industrial MicroSystems, 628 N. Eckhoff St., Orange, CA 92668.(714)633-0355.

INDUSTRIAL MICRO SYSTEMS,INC

The great unknown.

Circle 173 on inquiry card.' CP/M is a trademark of Digital Research, Inc.

BYTE August 1979 149

use TRcopy M*«^

WITH YOUR LEVEL II TRS-80*

TRcopy is a cassette tape copying system that letsyou SEE what your computer is reading.

COPY ANY CASSETTE TAPE**

With the TRcopy system you can copy any TRS-80 Level II cassette tape whether it is coded inBasic or in machine language. You can also copydata created by programs and you can copy assem-bler listings.

YOU CAN SEETHE DATAAs the tape is being loaded, you can SEE theactual data byte-for-byte from the beginning to theend of the program. Up to 320 bytes are displayedat one time. ASCII characters are displayed on thefirst line and hexadecimal code is displayed on thefollowing two lines. Data is displayed exactly as itis input including memory locations and checksums.

IDENTIFY PROGRAMSWith TRcopy you can identify programs on cas-sette tapes without written documentation becauseyou can SEE the filename. If you forget to label atape, you can use TRcopy to display the tape contentsand identify the cassette.

VERIFY CASSETTE TAPES

With TRcopy you can verify both the original tapeand the tape copies. You can make certain that yourmachine reads the original tape correctly and that itmakes byte-for-byte copies. TRcopy also counts asit reads giving you the exact length of the data.

MAKE BACKUPS FOR YOUR PROGRAMS

Now you can make backup copies of your valuableprograms. Many times a cassette that you make willload better than one that is mass produced. Theoriginal can then be kept as a backup in case thecopy is damaged. t

MAKE COPIES OF YOUR SOFTWARE

If you are in the software business you can useTRcopy to make tested copies of your programs forsales distribution. TRcopy produces machine lan-guage tapes that are more efficient than those pro-duced by the assembler itself.

RECOVER FAULTY DATA

With TRcopy you can experiment with the volumeand level controls and you canSEE what the computeris reading—even if your computer will not read thedata through normal read instructions! In this way itis possible to read and copy faultytapesby adjustingthe volume control until you SEE that the data isinput properly.

SIMPLE - FASCINATING - FUN

TRcopy is not only a practical utility program.ltis also a fascinating graphics program that lets youSEE, for the first time, cassette data as your com-puter is reading it. And it's as simple as 1-2-3.Just load, verify and copy. You will now be able touse cassette tapes with confidence knowing thatTRcopy is there when you need it.

The TRcopy system is a machine language programwith documentation explaining tape leaders, syncbytes, check sums and other formatting conventions.With the TRcopy system, you can SEE what you aredoing!

Cassette Tape and Do<

l39J£

>. Orders Add 'TRS-80 is o trademark "You

i Soles Tox. of the Tandy Corporation. TRc.

YOURORDER

E .

* f

I J1

£

co a

B

f li s

n — (/>

Q. IO z

en < !f

TOLL FREE

ORDER FROM ^IL/jUf^

Data/Print I same day

DEPT BT, BOX 903, FARGO, NO. 58107 SHIPMENT

unspecified arguments as though they were NIL. In EQabove, this gives some rather strange behavior, wheresimply (EQ) will always return T. It still remains for theimplementor to initialize the atom EQ to point to a dottedpair, (SUBR . funny-atom), with the print name of thefunny atom set to point to the code at EQSBR as shownin listing 9. The final section of this article goes over someof the problems involved with this kind of initialization.

Garbage Collector

A garbage collector eventually becomes essential inany LISP system. It is possible to create dotted pairs thatare no longer accessible to a LISP program by any path.This happens, for example, if a function like REPLACE iscalled and then the value returned simply PRINTed butnot saved as a LISP atom. This cannot go on for longbefore all of the free space is used up with dotted pairs.The garbage collector's job is to find all of the dottedpairs.

The various algorithms for locating such jetsom of theLISP function evaluation process are all quite intricate.The basic idea is always to trace systematically downevery list structure to its component atoms, markingevery dotted pair encountered along the way. If a dottedpair is encountered which is already marked, then thatbranch of the list structure is assumed to be already fullytraced. The garbage collector then makes a sequentialscan of all of memory space occupied by dotted pairs,and links together all unmarked dotted pairs onto aspecial list, the free list. During the scan, the marked dot-ted pairs are simply skipped over, because they areassumed to still be a part of some useful list structure.When a marked dotted pair is skipped over, its mark isalso cleared in anticipation of future garbage collections,when it might no longer be so lucky.

The difficulty with this trace and collect algorithm isthat each dotted pair points to possibly two more dottedpairs, so during the tracing phase the garbage collec-tor must eventually follow both paths. What this meansis that a second indication must be made on each dottedpair, indicating that the garbage collector is now busytracing the CAR of this dotted pair, and will be returninglater to trace the CDR of the dotted pair.

During the tracing phase, the garbage collector mightvery well be thought of as an ant determined to visitevery branch of a tree. It goes out to the tip of eachbranch, but as it returns it must remember whether it hasalready traversed the other paths going out from eachbranching point. Even this analogy underrepresents thedifficulty of a garbage collector, because the ant cansimply turn around when it reaches the tip of a branch,but the garbage collector would normally have no clue asto how to climb back toward the root of a list structureonce it gets out on a distant dotted pair.

The solution to the garbage collector's problem is toeither reverse all the pointers in the list structure as itforays out to the terminating atoms and then reset thepointers on the way back in, or to keep a list of all dottedpairs which still require that their CDRs be traced. Thefirst solution is like stringing a spool of thread behind youas you venture into an unexplored cave, following thethread back toward the mouth of the cave when youreach a dead end. Of course the same danger exists; that

150 August 1979 © BYTE Publications lnc

Circle 96 on inquiry card.

Circle 357 on inquiry card.

The garbage collector may run at anymoment.

the delicate thread leading you back to the starting pointmight get tangled or broken.

The second solution is simpler, but suffers from thegrave problem that it requires room to store the list ofpartially visited dotted pairs, and garbage collectors tendto be called upon at times when there is no more room tospare. In fact, the list of partially visited pairs needget no longer than the maximum "depth" of any liststructure in the system, so that by setting aside a smallportion of memory reserved for the use of the garbagecollector's list, the implementor can get by with coding amuch simpler tracing algorithm.

The author's system uses the pointer reversal method,and he will testify to the unlimited number of obscureproblems which can appear during the debugging phaseof its implementation.

It should be clear now why it was important to leaveone bit in each form, and hence two bits per dotted pair,free for the use of the garbage collector. The bit in theCAR form can be used to indicate that the dotted pair hasbeen visited once, and the bit in the CDR can be used toindicate that both paths from the dotted pair have beentraced. These bits are only used during garbage collec-tion, but because the garbage collector may be called atany time when GETCEL finds that there are no more 4byte cells on the free list it may, in fact, run at almost anymoment.

Because of this unpredictability, a LISP system with agarbage collector must be coded "defensively," jealouslyprotecting any dotted pair allocated but not yet added tosome accessible list structure. The machine code routinesgiven in the listings do not all adhere to this rule. Thereason for ignoring the garbage collector in the develop-ment thus far was simply to keep the design of the rou-tines simple and relatively intuitive.

If the reader intends to include a garbage collector inan implementation of a LISP interpreter, more care mustbe taken. For example, two versions of the routinePUSHX would be defined, normal PUSHX and PROPSH(protected push). The PROPSH would be used when the16 bit value being pushed on the stack pointed to liststructure which might not be accessible in any other way,and hence might get collected in the next garbage collec-tion scan. PROPSH avoids this danger by marking thecell used to store the saved value so that the garbage col-lector will know to trace this form and its descendents.

Initialization

It is ironic, but somehow appropriate, that the sectionon initialization comes at the end of this article. Frequent-ly it is in fact one of the last things an implementor thinksabout. That is probably because initialization is one ofthe biggest difficulties facing the implementor of anylanguage: assembler, interpreter, or compiler. By ini-tialization is meant the inevitably awkward methods ofgetting the symbol tables, or the OBLIST in LISP pre-loaded with the names which are to be built-in to thesystem. Most of the routines written to enter symbols in-

TINY' PASCALfor TRS-80®

& NORTH STAR®

Now you too can have Pascal! The Chung/Yuen 'Tiny' Pascal hasbeen specially designed for TRS-80 & North Star owners. The fullpower & elegance of 'Tiny' Pascal is at your command. Programswritten in 'Tiny' Pascal run at least 4 times faster than the sameprogram in BASIC! 'Tiny' Pascal is also a great way to learnPascal 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 writtenin Pascal with each purchase! You can even compile the com-piler! You can customize your own version, or just use it the wayit 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.

Tiny Pascal supplied on cassette for TRS-80 and Diskette forNorth Star.

You get all this & more, plus a user's manual for $40.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

HARD DISCFOR S100 MICROS

The XCOMP DCF-10 Disc Controller pro-vides the OEM with a high performance,low cost interfaceforfixed and removable(2315 or 5440) cartridge disc drives. TheDCF-10 is currently supported by twooperating systems. For information ormanuals, contact XCOMP.

XCOMP

INCORPORATED

9915-A Businesspark Ave., San Diego, CA 92131 • (714) 271-8730

Circle 393 On inquiry Card. August 1979 © BYTE Publications Inc 151

to symbol tables, or to add new atoms to the OBLIST,are all oriented toward names entered by the user of thelanguage processor. The initialization phase of the systembecomes quite complicated because of this orientation.The methods finally chosen are, in general, tedious, re-quiring a lot of special preparation by the writer of theintialization routine.

The best way to avoid these initialization difficulties isto spend a little extra effort in designing a few niceroutines for taking information out of tables which areconvenient for the implementor to set up and modify,and let these routines do the intricate bit-twiddling worknecessary to get the objects in shape for the symbol table,or the OBLIST.

In the author's LISP initialization module are routinesto build up dotted pairs in the form required for SUBRsand NSUBRs, and routines to allocate 4 byte cells forbuilt-in atoms. The atom initialization routines are giventhe address of a contiguous table of null-terminatedASCII names, each followed by the address of a memorycell where the form specifying the new atom should bestored. This is where the symbols like TATOM,SUBRAT, LAMB AT, etc came from. They refer tomemory locations in the base page of the M6800 (0 thru255), where the forms specifying the atom T, SUBR, andLAMBDA, etc, are stored. The table to initialize theseatoms was simply:

FCC

T'

FCB

0

FDB

TATOM

FCC

'SUBR'

FCB

0

FDB

SUBRAT

FCC

'LAMBDA

FCB

0

FDB

LAMBAT

FCC

FDBFCB

null-name terminates table

Although writing the special initialization routines wasinitially time-consuming, it was more than compensatedfor by the ease of adding more built-in atoms as thesystem grew.

Conclusion

We have traced through the implementation of a LISP in-terpreter and looked at a specific example for the M6800processor. For further information on the garbage collec-ting routines and a complete listing of the interpreter,order BYTE document number 112. ■

NyMiles

The Nybbles Library is an inexpensive means for BYTEreaders to share some interesting but specialized forms ofsoftware. These programs are written by readers withsmall computers and printer facilities, and are thereforedesigned for particular systems. The algorithms and pro-gramming techniques in these programs can be directlyused by readers with similar equipment, or can serve as

an inspiration for improvisation on computers of dif-ferent characteristics.

Potential authors for such programs should send us aself-addressed stamped envelope, with a request for acopy of our "Guideline for Nybbles Authors." Paymentfor Nybbles items is based on sales and length of the item.Rates are set when author's proofs are returned.

Nybbles Library programs are sent in listing form,printed on 8.5 by 11 inch, three hole punched paper forcollection in loose leaf binders.

This month "An M6800 LISP Interpreter" has been ad-ded to the Nybbles Library. To order your personal copyat $10.00 (US and Canada), $12.00 (foreign airmail)postpaid, fill out the coupon below.

Please send

copies of BYTE Nybble #_

Please remit in US funds only.

Check Enclosed

at $_

postpaid.

Bill my VISA §Bill my MClf .

Name .Street.City _

. Exp Date

Exp Date

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.

152 August 1979 © BYTE Publications Inc

NEW POWER FOR

YOUR APPLE n FROM

MOUNTAIN HARDWARE

KV/JVlFJLUbf

*

NEW EXPANDABILITY.

ROMPLUS+ is a peripheral board whose added featurescan turn the Apple II* into the most powerful personalcomputer available today.

NEW POWER.

ROMPLUS+ provides six sockets to accept individuallyaddressable 2K ROM's or EPROM's. Keyboard Filter™,a 2K ROM program, comes installed on the ROMPLUS+board and adds many useful features to your Apple II,including:

• Upper and lower case letters. The only system thatoffers keyboard input and standard shift key operation.

• Multiple user-defined character sets.

• Colored or inverse-colored letters.

• Keyboard macros—two key-stroke, automatic typing ofmultiple, user-defined words or phrases. IncludingBASIC and DOS commands.

• Mixed text and graphics.

• Improved cursor control.

• STOP LIST and END LIST.

•Works with Integer BASIC, RAM or ROM Applesoft,and DOS.

•And more... quick to learn. Easy to use.• Software support provided on disk includesdemonstration programs and two Editors that allow youto define your own characters or keyboard macros.SOPHISTICATED FIRMWARE.In addition to the Keyboard Filter ROM, ROMPLUS+offers five sockets for ROM or EPROM, plus "scratch-pad" RAM. And, sophisticated firmware on ROMPLUS+allows one, two, or more of its chips to be used simul-taneously for programs longer than 2K.EXPANDED UTILITY.

Many software programs really ought to be utilizedas firmware. ROMPLUS+ makes that an actuality forthe Apple II by providing six additional ROM sockets.

AT YOUR DEALER. NOW.

$169. Complete and tested. Including the powerfulKeyboard Filter ROM and full documentation. Ask yourdealer for a demonstration.

W2 Mountain Hardware, Inc.

'&

LEADERSHIP IN COMPUTER PERIPHERALS

300 Harvey West Blvd., Santa Cruz, CA 95060(408) 429-8600

Sounds great.

□ Please send me all the details on ROMPLUS+ andKeyboard Filter.

Name

Address.City

. State_

.Zip.

Phone_

L I

•Apple II is a trademark of Apple Computer, Inc.

Circle 258 on inquiry card.

BYTE Augusl 1979 153

Text continued from page S.-Gary also wanted readers to understand that the LISPof the "Lots of Infernal Stupid Parentheses" does notrepresent the essential beauty of this approach. Thisrelatively awkward notation is the assembly language ofa LISP machine. It suffers from all of the disadvantages ofassembly languages. Relatively simple to program, this"S-expression" form of LISP notation is one that is mostoften implemented, and it tends to give a distorted viewof the language. Gary wanted readers to understand thatthe alternative "M-expression" form of LISP, with specialcharacters noting relationships, is perhaps the mostelegant and natural form of expression for many pro-blems. Rarely, however, does anyone implement an"M-expression" oriented version of LISP at the user soft-ware level.

The problem is similar to that of the language APL,with one notable difference. In APL a special characterset was invented and assigned to the language for use inrepresentation of the new abstractions involved. Thesame could be done for LISP if an "M-set" and anautomatic "pretty-printer" were employed at the user'sterminal interface, instead of a lot of parentheses andASCII codes.

One explanation for the reason that LISP has not yetcaught on as generally as APL might be the fact that APLwas first developed on large IBM computer equipmentwith an elegant user interface. IBM Selectric printing ter-minals were available to be adapted to a natural expres-sion APL via the "APL-ball," while LISP was seldom usedwith IBM equipment during its period of development asa tool. With today's technology of personal computergraphics, the same principle can be adapted to the userinterfaces of LISP software. The best LISP packages forpersonal computers should incorporate an appropriatedisplay philosophy which allows the elegance of thelanguage to shine.

[While on this subject of "today's technology," wehave also heard some exciting words about a computersystem design from the Laboratory for Computer Scienceat MIT. This is only an advance hint of what may come.The machine is described as an experimental computerwith a very high resolution (1024 point) black and whitedisplay, 32 bit internal architecture, an advanced LSIprocessor such as Z-8000 or 68,000, gobs of memory im-plemented with 65,536 (64 K) bit parts, and an advancedoperating system. As a commercial product it may be

available in 12 to 24 months in a price range of about$5000. The word I have from its designer, Steve Ward, isthat the technology has been transferred by license to acommercial firm which has existing interests in personalcomputing products. MIT's motivation with respect tohaving a commercially manufactured version is to be ableto buy several hundred of the machines for local use in itstechnological community. We may have thought that thepast two years were exciting, but the field has hardlybegun its maturation...]

This series of BYTE August issues on languages empha-sizes the fact that no one language will optimally satisfyall uses. Just as people continually create new forms ofexpression in any art, the history of computing hasdemonstrated a similar tendency toward a variety offorms of expression for algorithmic and data concepts.Our coverage of APL, Pascal, and LISP by no means ex-hausts the possibilities. In my own biased space oflanguage concepts, I see potential future August issueattention to the concept of threaded interpretivelanguages such as FORTH, and languages which it in-spired, like URTH. Other possible linguistic points ofdiscussion might include string languages such asSNOBOL, and even macro languages like GPM andCalvin Mooers' TRAC. Then there are such concepts asdata base languages, and the whole issue of designinglanguage technologies for special applications such asmusic, architectural concepts, graphics, etc.

The fundamental point of this essay still remains: noone language will optimally satisfy all the needs of allusers. Some people care only about quick implemen-tation and debugging, and do not really care about speed.Some people just like one particular style of expression.Some people think literally in tree forms and have tostrain to think in sequential processing forms. To the ex-tent that programming concepts are universal, choice of alanguage is often a matter of personal aesthetics. Andwhere languages go off in one or more partially or whollyorthogonal conceptual directions, then the choice oflanguage is based upon the underlying uses of the tool.(Fuel for a number of heated arguments is present in thedetermination of just what is an orthogonal conceptualdirection.)

While on the subject of different languages and choicesof tools, I should mention one of the most exciting itemsseen at the recent West Coast Computer Faire. This item

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 servicecard to be added to our mailing list, or U.S. residents send $1.00 (International send $3.00U.S.) for airmail delivery of our complete catalog.'Product of MOS Technology

PRICE: $129.00

We also carry the SYM-1Microcomputer with manuals $269.00

iJRNB>

ENTERPRISES

INCORPORATED

2967 W. Fairmount Avenue • Phoenix, AZ 85017 • (602) 265-7564

154 August 1979 © BYTE Publications Inc

Circle 325 on inquiry card.

Buy this book atyour favorite com-puter bookstoreor direct from

BYTE BOOKS.™

Add 60c per book forpostage and handling

The marvelous

computer projects that

Steve Ciarcia has constructed in his

cellar are explained in detail so that you

can make your microcomputer perform the same

useful functions. Each article is a complete tutorial,

presented in such an easy-going style that even

beginners can understand and enjoy.

"BOOKS OF INTEREST TO COMPUTER PEOPLE"

70 Main Street Peterborough, New Hampshire 03458

Circle 36 on inquiry card.

BYTE August 1979 155

is a whole new language for interaction with computersat an intellectual user's level. As a tool for use with com-puters, this language-like method of structuring an inter-face is completely orthogonal to any conventional se-quential language from BASIC to Pascal, although itsconceptual underpinnings are very LISP-like. The pro-duct has roots in the artificial intelligence community,and it is a direct result of the programming efforts of twogentlemen with strong ties to the MIT computer sciencescene, Dan Bricklin and Bob Frankston. It is presentlyavailable on the Apple-II computer, and will soon beavailable on Atari, Pet and TRS-80 computers.

Dan and Bob have formed a firm of their own calledSoftware Arts Inc. Their only customer is Personal Soft-ware, a company formed last year by another graduate ofthe Cambridge computer scene, Dan Fylstra (along withPeter Jennings of Microchess fame). The Personal Soft-ware company distributes this new product exclusively,at retail cost and through manufacturers. The product iscalled "Visi-Calc." The first "public" showing of Visi-Calc occurred last May in the form of a hospitality suiteat the Fourth West Coast Computer Faire in the San Fran-cisco Convention Center. The display was oriented todealers and manufacturers. Advertisements have ap-peared earlier this year, and we should see more detailedpublicity by the time of this issue.

As an interactive screen oriented piece of software,Visi-Calc makes the memory of the computer a logical"blackboard" where data is remembered along with rela-tionships. This last phrase, "along with relationships," isthe key element of the concept. When I record some

TRS-80... all business! !

...with CP/M, CBASIC2,& applications software.

CP/M Operating System (w/Editor, Assembler,

Debugger, Utilities & 6 manual set) $150

CBASIC2 Compiler (w/manual) $ 95

DESPOOL Print Spooler (w/manual) $ 75

*0sborne & Assoc. PAYROLL W/COST

ACCTNG $250

*Osbome & Assoc. ACCTS. RECEIVABLE &

ACCTS. PAYABLE $250

*0sborne & Assoc. GENERAL LEDGER $250

*=CBASIC2 source programs; add $15 (each) forapplicable O & A book.

APH - Self-administered Automated Patient

History $175

1 DOWNLOAD TR-80 (or other)

CP/M to CP/M $95

data/program (source or object) transfer overRS232 link

Send 30c( SASE for add'l. Software avail, (includingCP/M Users Group software) and FREE "CP/M Primer."CA residents add 6% tax. Visa, M/C.M/O,Check OK.

(714) 848-1922

o 8041 NEWMAN AVENUE • SUITE 208 • HUNTINGTON BEACH. CALIFORNIA 92647

number, eg: 3.1415927, at an intersection of theblackboard's coordinate grid named [B:32], that numberis stored in that location on the blackboard.

Since available memory is much larger than the visiblescreen, I can use cursor controls to make my display win-dow examine any portion of the total blackboard. I mightmove to location [A:12] and write the value of someangle, perhaps 0.33 radians. I can refer to other locationsin defining a relationship for some location instead of rawdata.

Suppose, then, that I put the relationship:

"SIN([A:12] * [B:32]) — COS (- [A:12] * [B:32])"

in location [Z:21]. Location [Z:21] now depends uponlocations [A:12] and [B:32]. I can then move the cursorback to [A:12] and put in any angle that I like, for exam-ple 1.2. On changing any such location, Visi-Calcautomatically searches the tree of dependent expressionsand evaluates new data for such locations. The depen-dency can effectively go through many levels of calcula-tion so that we can look at any intermediate stage of acalculation by noting it on the blackboard. When I returnto location [Z:21] with the cursor controls, I will find theresults of the [Z:21] expression as calculated with the newdata. All pointing is done via cursor movements, so forthe most part users never even refer to the"[letter:number]" coordinates of places on theblackboard.

The same technique can be applied to many program-ming tasks of an ad hoc nature; for personal, business,engineering and scientific applications. The softwarehandles strings as well as arithmetic data and includes afull set of engineering and scientific functions such as thetranscendentals used in the above example. Visi-Calc hasto be one of the neatest software innovations of 1979, ifnot the most fundamental new concept to date in the per-sonal computing field. It will certainly be used as a prac-tical piece of software by many of our readers withvarious mass-marketed small computers.

An interesting comment was noted by authors Bricklinand Frankston and relayed in a recent conversation withDan Fylstra of Personal Software. The comment was thatthe techniques used in Visi-Calc are possible only when afull processor is totally available to one user as a personalcomputer. The calculational bandwidth required to sup-port this sort of technique is impossible to find atreasonable cost in a traditional large computer time shar-ing system. It only works when the concept of "one user,one processor" is employed, ie: when the computerpower is "personal." As part of Visi-Calc's authors'experiences at MIT over the past decade, they often hadthis kind of relationship with traditional main frame com-puters like PDP-10's and IBM 370's. Such excessively ex-pensive computing power devoted to one user is notpossible outside of a research context. With the coming ofthe current age of microcomputing however, the personal(one user, one processor) approach is possible on a widerand less expensive scale. The products that are nowavailable in this market for under $3000 are getting veryclose to the level of power which was restricted toresearch laboratories. Software products like Visi-Calctake advantage of this.

156 August 1979 © BYTE Publications Inc

Circle 85 on inquiry card.

38: 0.1%, 3% digit LCD displayL CAPACITANCE Mf.TER .$149

New Data Precision super-accurate portables.To use 'em is to love 'em. Or your money back.*

Both meters feature W LCD display, 200 hour battery life (9 volt alkaline),pushbutton ranging, tough construction, good electrical protection, and onlyone calibration adjustment. These meters boast the best accuracy specs intheir class, and represent the best value in portable meters today. In stock now!

(PLEASE CALL US FOR QUANTITY DISCOUNT QUOTE)

Please send me_

.Model(s) 935 9 $149

Please add the following options:

BE9 Battery Eliminator (120VAC±10%. 50-60Hz)..@ $15

CS11 10A Current Shunt @ $20

IP151 Clamp-On Current Probe (2-150A) @ $65

IP1001 Clamp-On Current Probe (10-1000A) <s>$139

_RF471 RF Probe (to 700MHz) @$99

-RFH1 Retractile hook probe tip tor RF471 @ $5

-T5 Test Leads 9 $5

„T7 Universal Test Lead Kit @$12

.TP151 Temperature Probe (-60°to+150" 0 @$95

.V41A High Voltage Probe (40kVDC) ® $45

Please send me.

_Model(s) 938 @ $149

Please add the following options:

BE9 Battery Eliminator (120VAC±10%. 50-60Hz)..(s> $15

CC35 Carrying Case @ $5

LC1 Plug-in Lead-Clip Test Fixture @ S7.50

T9 12" Test Leads with Alligator Clips 9 $5.50

SUB TOTAL $

STATES LOCAL TAX (if any) $

SHIPPING & HANDLING $ 5.00

TOTAL AMOUNT OF ORDER $

niti

Applications Specialists and Distributors

of Computer Terminals, Peripherals, Power Conditioning and Instrumentation

159 Northern Boulevard /Great Neck, New York 11021

516/482-3500, 212/895-7177, Outside N.Y.S.: 800/645-8016

I CAN'T WAIT TO GET MY HANDS AROUND THEM!

□ Check/M.O. enclosed [ZlBill Visa □Bill American Express

Card No. Expiration Date

Signature .

Name (Please print)

Title

Company .

Address

City

Phone

State.

.Zip.

(lf you are unhappy with these meters for any reason, return them to us within ten days in good working order, and we will

refund your money less our costs for shipping and handling.

BYTE August 1979

HONEST

, useDcowputbrS

FOR

20,000DO-UJOPS

lO DAVS

^UPfc^

"...and this one was owned by a little old lady whoonly used it once a month to balance her checkbook."

Belais' Master Index Can Give You Access to$14,836.14 Worth of Computer Programsfor Just $5.95!

Special Pre-Publication Offer

You paid hundreds or even thousands of dollarsfor your new microcomputer. By now it may bedawning on you that a $1,000 computer with nosoftware is just $1,000 worth of scrap metal!

But computer programs cost money. In a recentsurvey of 1,984 computer programs offered forsale in the top three home computer magazines,the average price was found to be S27.94, What arip-off!

You don't need to spend hundreds of dollars toget a complete library of programs for your com-puter-That is, you don't if you have Belais'MasterIndex to Computer Programs in BASIC.

Belais' Master Index gives reviews of 531 pro-grams that have appeared in 10 major homecomputer magazines—programs that you cantype into your computer for free!

This is not just a simple listing of a bunch ofarticle titles, but a complete reference work! EachBMI review is complete—it has everything youneed to know about a program. A brief index linecapsulizes the review for quick reference. Sourceinformation shows you where the program can befound. Any updates or corrections are shown soyou know the information is accurate and com-plete. The text of the review gives you a fulldescription of what the program does. In addition,the review gives you detailed technical informa-tion about what hardware and software the pro-gram needs. Everything you need to know is rightat your fingertips!

You don't have to be a programming wizard touse Belais' Master Index. That's because BMI listsonly finished, ready-to-run programs in BASIC,the easy-to-use language enjoyed by millions.

Even if you're a master programmer, you'llappreciate Belais'Master Index. Why slave awayhours, days, or even weeks writing a programwhen someone else has probably already done thework for you? These programs are working,documented, and ready-to-go.

Programs like: Circuit Design, Psychoanalysis.PASCAL Compiler. Forrester's World Simulation,and Color T.V. Tester. Never again will you havetrouble answering that question, "But what arehome computers good for7"

Then again, there's always MONEY. Maybe youhaven't thought of all the ways your "fun" com-puter could turn out a little of the green stuff foryou. Maybe you haven't—but a lot of other peoplehave, and they've written up their ideas for you touse, Belais'Master Index lists dozens of programsthat you can use to set up your own business.

If you already have a business, Belais' MasterIndex has the programs to turn your home com-puter into a full-fledged business system. Generalledger, billing, payroll, mailing lists, word pro-cessing—no matter what type of business youhave, Belais' Master Index has the programs youneed.

All this and save S4.00, too! The west coastpaper mill strike has delayed publication of Belais'Master Index. Because of this, we're making aspecial pre-publication offer. Reserve your copynow and you can have it for just $5.95—$4 off theS9.95 cover price But don't wait; when our pressesstart rolling again IT WILL BE TOO LATE!

To order, write the words "Belais' Master Index"on a check. Be sure your name and address areprinted on the check. Make out the check for S5.95plus $1 shipping (Calif, residents add 36C salestax). Send your order to Falcon Publishing, Dept.D-1.140 Riverside Ave., P.O. Box 688. Ben Lomond,CA 95005.

If you want to use your VISA or Master Chargecard, write "Belais' Master Index" on a piece ofpaper. Give the total for your order, your accountnumber, expiration date, and signature.

We absolutely guarantee you'll love your copyof Belais' Master Index. If you're not completelysatisfied, return it to us and we'll refund every centyou paid. You can't lose, so order NOW!

Returning to the LISP theme of our current issue, Visi-Calc is an example of a tree-oriented parallel data struc-turing problem for which LISP is a most appropriate lan-guage of expression. Due to a lack of availability of LISPas a software development tool for personal computinghardware, its authors did not use LISP. They also had tomake a number of compromises and tradeoffs as a resultof the small size (eg: 16 K to 48 K bytes) of the mainmemory of personal computers. But they did use many ofthe tree concepts of artificial intelligence research. Thisprovides us with the ultimate example of the relevance ofLISP-like languages and approaches to personal com-puting: one of the most generally useful new user soft-ware tools for small machines, Visi-Calc, tackles just thesort of problem for which LISP is an appropriate tool ofexpression.

Notes on theAppearance ofBYTE...

by Carl Helmers

Readers will notice a number of changes in the ap-pearance of the design layout of BYTE, starting with thisissue. These changes are the cumulative result of severaltrends in our organization.

Perhaps the biggest such trend, from our readers' pointof view, is the arrival of a form of computerized typeset-ting for BYTE magazine. I have often felt during the fouryears since BYTE started that we have been like the pro-verbial shoemaker's children who went barefoot. Wehave been producing a computer magazine without thebenefit of any computer technology in the actual opera-tion of our business. My own personal recovery from thissituation occurred last fall when I began using a machinecapable of running UCSD Pascal for all of my program-ming and writing. At about the same time, we were ableto specify and order a computerized system of typesettingand page layout produced by Compugraphic. With thisAugust 1979 issue, approximately 80% of the copy forthe magazine was produced using the Compugraphicsystem. (Of course this measure is exclusive of adver-tisements which are generally prepared in final form byadvertising agencies.)

The new magazine layout beginning in this issue wasdesigned by Ellen Bingham and Nancy Estle of our pro-duction department. One of its major features is the useof symmetrical page layouts employing 2, 3, and 4 col-umn widths on a page, depending upon the demands ofsubject matter and placement in the magazine. In the oldlayout, an asymmetrical two and a half column formatwasted a lot of blank space. It also greatly complicatedthe production department's magazine layout design task

158 August 1979 © BYTE Publications Inc

Circle 133 on inquiry card.

each month. Since article pages in the old format werecommitted to either a right or left-hand side of an openmagazine, the relative placement of pages became quiteinvolved, sometimes even requiring last minute modifica-tion of "final pasted" pages to switch them from left toright-hand asymmetry!

The new format, aside from freeing up placement inthe magazine, also allows more information to be placedon each page. It simplifies the problem of embeddedequations or examples since the column width is greaterin the two or three columns used for articles. When an ar-ticle includes many long examples and equations, thesewill often fit on one line in the two column format, mak-ing the result easier to read. When an article does nothave a large proportion of such embedded illustrations,the three column variant is available for use by ourdesigners.

One question that we are frequently asked is related tomagazine layout: Why do certain articles get split intosections, with portions of text continued at the back ofthe magazine? One reason for this is the use of color inthe magazine. Approximately half of each issue is printedin color. Color pages are printed in groups of sixteen,called forms. It is sometimes necessary to begin two colorarticles in the same form, continuing one of the articles inanother location in the issue. The relative length of ar-ticles also plays a part in how they are laid out in themagazine. We make every effort to keep each article inone contiguous piece whenever possible.

Speaking of computers for magazine production, wehope eventually to be able to accept articles from authorson floppy disks, using either the CP/M or Pascal formaton full-size floppy disks. This means 8 inch single or dou-ble density, IBM compatible; for nonstandard informa-tion formats, documentation sufficient for conversionwould have to be included. We will report on this subjectas matters progress.

Changing the format of a magazine requires months ofpreparation and hard work. We want to reassure ourreaders that we plan to keep the content of BYTE just as itis. The new typeface, new column layouts, and updatedfeature pages are designed with you in mind. We wouldappreciate your comments and suggestions.

Coming Up in BYTE...

With next month's September issue of BYTE, we beginour fifth year of publication. Returning to the genesis ofpersonal computers in the hands of inveterate hackers,the theme of that issue is "homebrewing." In future issueswe will see such special interest theme topics as educationand computers, "domesticated computers," music, databases, and a special theme on computer games of theAdventure/Dungeons and Dragons variety. Other topicswe are contemplating for the coming year include con-tinued attention to themes of voice input and output,graphics, languages, artificial intelligence androbotics...CH

ANNOUNCING

Newfrom DEC

LA34 DECwriter IV

$1,199.00

110 or 300 baud, RS 232C serial • Upper/lower case, 9 x 7 dot matrixASCII . 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"Hx15'/z"D, 25 lbs.

Newfrom DIABLO

DIABLO 1640 $2,690.°°Receive-only $ 2,331.00

High-quality daisywheel printing at45 cps.

DIABLO 1650 $ 2,779.0°Receive-only $2,419.°°

Metal daisywheel printing at 40 cps.

S0R0CIQ 120 $795.°°

• RS 232C, upper/lower case fullASCII

• Numeric keypad, protected fields

• Cursor keys plus addressablecursor

• Auxiliary extension port

Teletype 43 $ 999.00

• RS 232C, 110 or 300 baud

• Upper/lower case full ASCII

• Pin feed, 12" x 8'/2" 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 requiretwo weeks to clear) including handling* and 6% sales tax if deliveredwithin California.

'Handling: Less than $2,000, add 2%; over $2,000, add 1%. Everythingshipped freight collect in factory cartons with manufacturer's warranty.

clHJCRDfflflU.

MICROMAIL • BOX 3297 • SANTA ANA, CA 92703(714) 731-4338

Circle 223 on inquiry card.

August 1979 © BYTE Publications Inc 159

BITS

Books to erase the impossible

LflNGUflG€

v^v

LET'S TALK LISPby Laurent Siklossy

□ This is a discussion of LISP, the most important non-numericlanguage in use today. All features of the language, includingelementary functions, recursive functions, the PROG feature,MAP functions, generators, property lists, and the "cell value"concept, are carefully explained while avoiding the details ofany particular LISP implementation. For experienced program-mers a quickie introduction to LISP is included. Good pro-gramming is emphasized throughout and a full complement ofexercises help to illuminate the material. If Al is your direction,LISP is your language.

235 pp $16.95

flfcV^

QUICKTRANby C. Kevin McCabe

□ Learning a language can be made easier if one begins bymastering a small part of the language and then adds the re-maining features as needed. Kevin McCabe has taken thisapproach in teaching standard FORTRAN IV. He starts withthe basic concepts of computing and Quicktran, a fundamentalsubset of FORTRAN IV that allows the student early program-ming experience. Part II expands the readers' proficiency andadds other features of the language and by the end of Part IIIall of standard FORTRAN IV has been covered. Exampleprograms abound.

220 pp. $8.95

Pfflggfi)

O

IB'PQ.

A PRACTICAL INTRODUCTION TO PASCAL W"by I.R. Wilson and A.M. Addyman□ PASCAL will soon supercede BASIC, and for good reason. Itis a simple and efficient language, encouraging structuredprogramming. Wilson and Addyman have written an intro-duction to PASCAL suitable for first time or experienced pro-grammers. Describing PASCAL using syntax diagrams, thebook encourages the stepwise refinement technique of struc-tured programming. Over 60 programs are included as ex-amples, and seven of its 14 chapters are devoted to data struc-tures. This book comes highly recommended and complementsPASCAL-User Manual and Report by Jensen and Wirth.

148 pp. $7.90

STRUCTURED PROGRAMMING IN APLby Dennis Geller and David Freedman

□ APL is a rich computer language. Most books on APLconcentrate on its powerful operators and their use, leavingprogram design and structure to be learned elsewhere. Thisbook by Dennis P. Geller and David P. Freedman takes a betterapproach, presenting APD with the structure and programmingtechniques you need to program successfully in APL. From thepreface: "Overall, our approach is to present the fundamentalsof programming in APL. Students may go on from here to learnto write faster programs, or more compact programs, or moreaesthetic programs: this, we hope, is where they will learn towrite working programs."

PASCAL USER MANUAL AND REPORT

(Second Edition)

by K Jensen and N Wirth

167 pp.

^©GailffiffiK]

$7.90

COMPUTING WITH FORTRAN IV: A PRACTICAL COURSEby Donald M. Monro

□ A book for those who have had some programming experience, expecially BASIC, and who want to learn FORTRANprogramming. Monro claims that most experienced program-mers are self-taught. In his book you'll find yourself program-ming immediately and learning through experience. Designedas a learning aid, the book carefully relates all of the componentsof standard FORTRAN IV plus some essential nonstandardfeatures. Throughout the book all subjects taught are comparedwith their BASIC counterparts. This book will have you learningFORTRAN first hand, making it interesting and challenging.

242 pp. $16.95

A FORTRAN COLORING BOOKby Roger E. Kaufman

□ Who says learning FORTRAN isn't fun? Inside this book arethe repetitive doloop bird, your mommy's bureau drawers,and a flowchart for making a rug from bellybottom lint! You'llalso find everything you need to know about programming inFORTRAN, in avery clever instructional style. Learn FORTRANprogramming painlessly.

285 pp. $6.95

324 pp. $10.95

APL —AN INTRODUCTION |AAj\) *by Howard A. Peelle *

□ This is APL for the self-taught programmer or experimenter.Nine U-Program chapters present the APL functions and ex-pressions through examples followed by exercises designed toassure comprehension. Answers to all problems are includedand access to a computer is not required. This method of learn-ing APL won 't put you to sleep!

242 pp. $8.50

**' (ajffid) ©OS®

ALGORITHMS & DATA STRUCTURES s PROGRAMSby Niklaus Wirth

□ "Programs, after all, are concrete formulations of abstractalgorithms based on particular representations and structuresof data". Niklaus Wirth here presents the fundamental conceptsof algorithms and data structures and their interdependence. Inhis lucid treatment he covers fundamental data structures,sorting, recursive algorithms, dynamic information structures,language structures and compilers, using PASCAL in theexamples and exercises. An important text.

366 pp. Hardcover $19.95

Working in assembly languages?Good programming deserves goodProtect your efforts using

documentation.

,TM

The Sits Programmer Pad

See ad on page 117

160 BYTE August 1979

LEARNING

6502 APPLICATIONS BOOKby Rodnay Zaks

□ 6502 microcomputer board users, here's your book! It is the key to putting yourKIM, Sym, or Aim65 to work. The 6500 family I/O chips are covered in depth (6520,6522, 6532, and 6530) along with the interface techniques needed to use them. Ap-plications examples include displays, computer music, alarms, and A/D conversion.Standard peripheral interfacing is explained. The appendices contain applicationsprograms and a 6502 assembler in BASIC. The only prerequisite is some familiaritywith 6502 assembly language programming. This is the definitive 6502 "input/output"book. Get it!

284 pp. $12.95

PROGRAMMING THE 6502by Rodnay Zaks

□ Here isthe6502 microprocessor from top to bottom: basic concepts, hardware or-ganization, basic programming techniques, the 6502 instruction set, addressing tech-niques, input-output techniques, data structures and program development. This bookis a systematic course in 6502 assembly language programming, including excercisesand application examples. Solid for you KIM and Apple users!

304 pp. $10.95

^X

LIVING

FUNDAMENTALS OF RECORDKEEPING AND FINANCE FOR

THE SMALL BUSINESS

by Robert C. Ragan, CPA, And Jack Zwick, Ph.D.

□ Once you have your organization or business up and running,records must be kept. What should I keep, and how do I recordthem? This book on fundamentals will give you a helpful start.Section one deals with maintaining records, protecting assets,and providing a basis for planning. Section two provides astarting point for owner-managers who want to sharpen theirfinancial management skills.

196 pp. Hardcover $10.00

UP YOUR OWN ORGANIZATION!by Donald Dible

D A great handbook on how to start and finance a new businessor get an existing business out of neutral and into high gear.Written for the person willing to work hard at being success-ful in business, it is intended to save time, money and possibleheartache by eliminating false starts and "blind alley" ap-proches where appropriate. All drawn from the author'sextensive experience in entrepreneurial business. This is themost comprehensive reference we've seen on the subject. Forthe programmer-consultant or the basement homebrewer-turned-entrepreneur, this is your book. It is recommended inthe Bank of America Small Business Reporter and ChangingTimes magazines.

372 pp. Hardcover $14.95

y&

&***

6\

'"-,

RUNNING WILD

THE NEXT INDUSTRIAL REVOLUTION

by Adam Osborne

.

□ Many of the uses to which computers are being put todaycould cause profound problems tomorrow. In industry, govern-ment, medicine and commerce, the full effects of computertechnology — the next industrial revolution — have not yet beenrealized. That is why Running Wild has been written. Dr.Adam Osborne, a well-known writer and consultant in the worldof microelectronics, has written this book for the layman. Itspurpose is to confront the reader with what is going on today,and what will certainly be happening tomorrow.

NEW FROM OSBORNE AND ASSOCIATES $3.95

WHAT EVERYONE SHOULD KNOW ABOUT PATENTS, .TRADEMARKS AND COPYRIGHTS ^€\)J '

by Donald M. Dible '

□ So you've written a program that's of use to microcom-puterists everywhere? Got a circuit the world's waiting for. Thenext crucial step is to secure rewards for your ideas and work.This book is a distillation of the latest information availablecovering trademarks, copyrights and patents. Each topic iscovered in a simple stand-alone style designed to communicateall of the essential points with a minimum of legalistic jargon.As an entrepreneur you should be familiar with your rights andresponsibilities under these laws.

254pp. Hardcover $10.00

BITS™

DIAL YOUR BANK CARD ORDERS TOLL FREE 800-258-5477

Books to erase the impossible

25 Route 101 West, PO Box 428. Peterborough, NH 03458

Name

AddressCity

State.

Zip_

□ Check enclosed

Card#

Signature

□ Master Charge Expires_

□ VISA

QTY.

TITLE

PRICE

TOTAL

$ .75 for each book domesticPOSTAGE & $1 00 for eacn book f0reign

P&H

HANDL

.iinhj (maximum postal charge - $3.00)

Total

(in N.H. dial 924-3355) MON-FRI 9-5 JSSm

1B1089

You may photocopy this page

Dealer inquiries invited

BYTE August 1979 161

A Mathematician's View

of LISP

Vaughan R Pratt

Assoc Prof of Computer Science

and Engineering

MIT Laboratory for Computer Science

545 Technology Sq

Cambridge MA 02139

All higher order languages offer the programmermechanisms for simplifying and clarifying programs.Viewed from the distance that mathematicians such asmyself prefer, away from the distractions of detail, LISPstands out as the first language to pay serious attention tothe following issues:

• Mobility of data.

• Modularity of function.

• Declarative programming.

• Metalinguistics (the ability of a language to talkabout language).

Since the development of LISP, two other languages(APL and, to a lesser extent, SNOBOL) have joined LISPin dealing with at least some of these issues. As such, onewould assume that they would have improved on LISP. Ibelieve that LISP outclasses these languages despite itshaving been developed earlier. Other languages, such asFORTRAN, BASIC, ALGOL, PL/I, and Pascal (orFBAPP as Professor Alan Perlis of Yale University refersto them collectively) are, in Perlis' opinion and mine, notin the same class as LISP and APL with respect to theissues discussed here. (I do not know Professor Perlis'opinion of SNOBOL.)

Mobility of Data

In a computer, data flows between three major classesof sites: storage, functions, and devices. Storage consistsof registers and main memory in assembly language, andvariables (simple and subscripted) in higher levellanguages. Functions (or procedures, or subroutines) arequite alike in all languages, though with minor technical

About the Author:

Vaughan Pratt joined the MIT faculty in 1972 in the Department ofElectrical Engineering and Computer Science and is associated with theLaboratory for Computer Science and Artificial IntelligenceLaboratory. He received his PhD under Donald Knuth at StanfordUniversity (Shell Sort and Sorting Networks). He is currently the headof the Theory of Computation Section at the Laboratory for ComputerScience. His work includes natural language, algorithms, programsemantics, and verification. His hobbies include collecting, repairing,and playing musical instruments and building robots.

distinctions. Typical devices are printers, keyboards,floppy disks, paper tape readers, and the like.

The corresponding mechanisms available to the pro-grammer for expediting this flow of data are fetch andstore instructions, parameter passing and value returningconstructs, and read and write commands.

A mobile datum is one which can be moved from onesite to another by the program with a minimum of fuss.Here are two tests for mobility of data:

Width test. Must the data be moved piecemeal? Forexample, on your microprocessor, can you move a 2 byteaddress around as a unit, or do you have to move eachbyte separately? In your favorite language, can you readin an array from floppy disk or paper tape using oneinstruction, or must you write a loop to read the arrayelements individually?

Length test. Are intermediate sites needed to get datafrom one site to another? For example, to take thelogarithm of a number that the user types in from akeyboard, do you have to store the number in a variablefirst and then take its logarithm, or can you just say(LOG (READ)) as in LISP?

If the data type fails either test it is not fully mobile.Note that if it fails both, the effect can be multiplicative.For instance, moving three bytes with each requiring twosteps, requires six steps altogether.

It is often possible to enhance the mobility of data bywriting the appropriate subroutines. For example youmight write a routine to read an array from a device. Thisobservation shows that mobility is a concept that isrelative both to the available programming language con-structs and to the available software.

Promised mobility is the possibility of writing suchsubroutines. Promised mobility is not as good as realmobility, as it requires the programmer to do the work ofsupplying the mobility, which may be more effort than itis worth for the particular application the programmerhas in mind.

One basis for classifying programming languages is themobility of their data types in the absence of additionalsubroutines such as the above mentioned one for reading

162 August 1979 © BYTE Publications Inc

RADIO SHACK COMPUTER OWNERS

TRS80

MONTHLYNEWSLETTER

/f

/

w>

• PRACTICAL APPLICATIONS

• BUSINESS

• GAMBLING • GAMES

• EDUCATION

• PERSONAL FINANCE

• BEGINNER'S CORNER

• NEW PRODUCTS

• SOFTWARE EXCHANGE

• MARKET PLACE

• QUESTIONS AND ANSWERS

• PROGRAM PRINTOUTS AND MORE

WORD PROCESSING PROGRAM (Cassette or Disk)

For Writing Letters, Text, Mailing Lists, Files, Etc.With Each New Subscriptions Or Renewal

Send for FREE Software Catalogue (Including listings of hundreds of TRS-80 programs available on cassette and diskette).

■CQMPIJTRQNXCS;

MgTV^WWtnCAL AFr^JCJSTCT^B SEHVEE"

Box 149 New City, New York 109S6

ONE YEAR SUBSCRIPTION $24 _TWO YEAR SUBSCRIPTION $48 _SAMPLE OF LATEST ISSUE $4

\SS&\ 24

HOURORDERLINE(914) 425-1535

isT

START MY SUBSCRIPTION WITH ISSUE_(#1 - July 1978 • #7 - January 1979)

NEW SUBSCRIPTION RENEWAL.

CREDIT CARD NUMBER

SIGNATURE

NAME ,

EXP. DATE_

ADDRESS

Circle 159 on inquiry card.

BYTE August 1979 163

in arrays. In the machine language of a microcomputer,only bytes (and sometimes words) are mobile, and eventhen generally not for I/O (input/output). Only numbersand Booleans, and sometimes strings, are truly mobile inBASIC, FORTRAN, and ALGOL.

The major languages developed in the 1950s and 1960swhose structured data types are mobile are (in order ofdevelopment) LISP, APL, and SNOBOL, the respectivetypes being lists, arrays, and strings. LISP and APL alsohave mobile strings. In LISP, atoms serve as strings. InAPL, a vector of characters is printed without spaces be-tween its characters and so can play the role of a string.LISP and SNOBOL have arrays that are not nearly asmobile as APL's arrays, though some implementations ofLISP come close, namely to within the ability to read andwrite them from and to devices.

Lists are preferable to arrays as a general-purpose datatype since anything that an array can represent can beconveniently represented by a list, whereas the converseis far from true. You can't have arrays of differentlyshaped arrays in APL, for example: LISP, however, per-mits any data type to be a list element. In this respect,APL data types are not fully mobile with respect to arrayelements viewed as data sites (which they are).

From the implementation (and hence the efficiency)viewpoint, arrays offer faster random access. However,the modern APL style of programming makes relativelylight use of random access. (This is a potential source ofendless and quite technical debate between LISP and APLenthusiasts, and is not by any means an easy issue to

WINCHESTER DRIVECONTROLLER

The XCOMP DC/M Controller provides theOEM with a high performance, low cost in-terface to the Marksman® drive. An eight bitbus permits the DC/M to be used with allpopular microcomputers.

XCOMP

INCORPORATED

9915-A Busirtesspark Ave., San Diego, CA 92131 • (714) 271-8730

dismiss.) Moreover, as compiler optimizers get pro-gressively "smarter," it will become progressively harderto infer properties of the implementation from propertiesof the language definition.

For example, often the compiler has enough informa-tion to infer that a LISP list is being used array-style, andit can then choose to represent the list as an array. Con-versely it may spot that an APL array would best beimplemented as a LISP-style list (eg: when muchconcatenation of APL arrays is being performed and norandom access is used).

An aspect of APL not shared with LISP is its insistenceon homogeneous arrays. In APL you can have arrays ofnumbers, or arrays of characters, but not arrays of a mix-ture. An advantage of this is that you don't need to storetype information for every array element, leading to effi-ciency gains. A disadvantage is that it restricts the pro-grammer's options considerably. LISP programmers takefull advantage of the ability to mix types in lists.

LISP and APL (and to an extent SNOBOL) havemobile expressions. In LISP you can treat the expression(PLUS X (TIMES Y 5)) as an ordinary datum. It can bebound, that is, assigned to variables, passed as an argu-ment to a function, returned as the value of the function,printed out, and read back a year later, still meaningthe same thing. And, of course, it can be evaluated by ap-plying the LISP function EVAL to it.

The mobility of an expression is inherited from that ofits representing medium, just as the mobility of an integerin the range —128 to 127 is inherited from that of the 8 bitbyte that represents it.

With some restrictions, the same is true of APL. Thestring (ie: character vector) 'X + YX5' can be passedaround just as freely in APL, and of course it can be exe-cuted by applying the APL function Execute to it. Onerestriction is that Execute cannot handle more than oneline at a time, effectively preventing the use of APL's ver-sion of Goto in conjunction with Execute. Anotherrestriction is that there is no APL expression whose exe-cution results in an APL function becoming defined; in-stead one uses a separate function, DFX. LISP observesneither of these restrictions.

LISP goes beyond APL by also having mobile func-tions. From a programmer's viewpoint the main differ-ence between an expression and a function is that func-tions are objects that explicitly take arguments, whereasthe only way to pass information to an expression is tostore it in some variables before evaluating the expres-sion.

LISP implements mobile functions by using lambda ex-pressions, a method of representing functions due to thelogician Alonzo Church. For example, the function thatcomputes the length of a two-dimensional vector whosecoordinates are X and Y could be represented with thelist:

(LAMBDA (X Y) (SQRT (PLUS (TIMES X X)

(TIMES Y Y))))

Such an object can be read, printed, assigned tovariables, passed as an argument to another function,returned as the result of a function, and of course appliedto a pair of arguments. To take an unusual example, run-

164 August 1979 © BYTE Publications Inc

Circle 394 on inquiry card.

5 reasons why you should not buy

the electric pencil II

^* e 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 thetax 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'tchecked a single box.

TM

The Electric Pencil II is a Charac-ter Oriented Word Processing System.This means that text is entered as astring of continuous characters and ismanipulated as such. This allows theuser enormous freedom and ease in themovement and handling of text. Sinceline endings are never delineated, anynumber of characters, words, lines orparagraphs may be inserted or deletedanywhere in the text. The entirety ofthe text shifts and opens up or closesas needed in full view of the user. Thetyping of carriage returns or wordhyphenations is not required sincelines of text are formatted automatic-ally.

As text is typed and the end of aline is reached, a partially completedword is shifted to the beginning of thefollowing line. Whenever text is insert-ed or deleted, existing text is pusheddown or pulled up in a wrap aroundfashion. Everything appears on thevideo display as it occurs, which elim-inates guesswork. Text may be review-ed at will by variable speed scrollingboth in the forward and reverse direc-tions. By using the search or searchand replace functions, any string ofcharacters may be located and/or re-placed with any other string of charac-ters as desired.

Numerous combinations ofline length, page length, linespacing and page spacing permitautomatic formatting of anyform. Character spacing, boldface, multicolumn and bidirec-tional printing are included inthe Diablo versions. Multiplecolumns with right and left justifiedmargins may be printed in a single pass.

'Wide screen video

Versions are available for ImsaiVIO video users with the huge 80x24character screen. These versions put al-most twice as many characters on thescreen!!!

CP/M versions

Digital Research's CP/M, as well asits derivatives, including IMDOS andCDOS, and Helios PTDOS versions arealso available. There are several NECSpinwriter print packages. A utilityprogram that converts The ElectricPencil to CP/M to Pencil files, calledCONVERT, 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 con-trols

• Subsystem with print value scoreboard

• Automatic word and record numbertally

• 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 versionfor you?

The Electric Pencil II operateswith any 8080/Z80 based microcom-puter that supports a CP/M disk sys-tem and uses an Imsai VIO, ProcessorTech. VDM-1, Polymorphic VTI, SolidState Music VB-1B or Vector Graphicvideo interface. REX versions alsoavailable. Specify when using CP/Mthat has been modified for Micropolisor North Star disk systems as follows:for North star add suffix A to versionnumber; for Micropolis add suffix B,e.g.,SS-IIA, DV-IIB.

Vers. Video

Printer

Price

SS-II

SOL

TTY or similar

$225

SP-II

VTI

TTY or similar

225

SV-II

VDM

TTY or similar

225

SR II

REX

TTY or similar

250

SI -I I

VIO

TTY or similar

250

DS II

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

Dill

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

INI I -I I

VIO

NEC Spinwriter

300

SSH

SOL

Helios/TTY

250

DSH

SOL

Helios/Diablo

300

MICHAEL SHRAYER SOFTWARE, INC

1253 Vista Superba Drive

Glendaie, CA. 91205

(213)956-1593

may be upgraded at any time by sim-ply returning the original disk or cas-sette and the price difference betweenversions, plus $15 to Michael ShrayerSoftware. Only the originally purchas-ed cassette or diskette will be acceptedfor upgrading under this policy.

Attention: TRS-80 Users!

The Electric Pencil has been de-signed to work with both Level I(16K system) and Level II mod-els of the TRS-80, and with vir-tually any printer you choose.Two versions, one for use withcassette, and one for use withdisk, are available on cassette.The TRS-80 disk version is easily tran-sferred to disk and is fully interactivewith the READ, WRITE, DIR, andKILL routines of TRSDOS 2.1.Version Storage Price

TRC Cassette $100.TRD Disk $150.

Circle 319 on inquiry card.

Demand a demo from your dealer!

BYTE August 1979 165

Up\burOutput.

TEMPOS

MULTI-TASKING!

The TEMPOS Operating System is quickly becoming the standard in Multi-User, Multi-Tasking operating systems for 8080 and Z80 microcomputers.Multi-Tasking means that, even with only one user at one terminal, morethan one job can be running on the system simu/faneous/y.'If you have everhad to go get a cup of coffee while you wait for your computer to print list-ings, you know the advantages of a system that will handle one job whileyou are working on another. TEMPOS is a true time sharing system, andthe maximum number of jobs is limited only by your memory.

MULTI-USER!

Want to share your computer with another user? With TEMPOS all it takesis another terminal... up to seven interactive terminals are allowed! Andwith Re-Entrant programs, each user does not need a complete copy inmemory. We include three Re-Entrant programs (the OPUS/THREE High-Level Language, the TEXTED Text Editor, and FILES, a disc filedirectory/manipulator) or write your own! In addition, we include anassembler, a linking loader, over a half-dozen other utility programs andover 60 system subroutines, callable by the programmer!

PROVEN!

With TEMPOS, you get a package that has been tested in our facilities forover two years, and in the field at over 50 different installations. We haveused this system ourselves for everything from writing high-level languagesto developing applications to text editing to games. TEMPOS is undoubted-ly the most flexible software tool on the market. . . and you can have it formuch less than you think!

COMPATIBLE!

TEMPOS is available for many different systems; prewritten drivers mayinclude yours. Or, using our interactive System Generation Routine, youcan add your own. Call or write now for our free catalog and the name of adealer near you. The TEMPOS Operating System is available for $787.00,the manual set (price may be credited toward the purchase of the TEMPOSpackage) for $21.50 (prices include shipping within the U.S.).

ADMINISTRATIVE□□SYSTEMS□□□INC□□

1642 S. Parker Road, Suite 300, Denver, Colorado 80231(303) 755-9694

ning the program (APPLY (READ) (LIST 3 4)) wouldcause the function typed in response to the Read to be ap-plied to the list of arguments (3 4). If the user typed in theabove lambda expression, the result would be 5.

The closest APL can come to this is to have a name of afunction, say ZOT, be a datum. To apply the function sonamed in APL, one would concatenate the name with theargument(s), say 3, then Execute the resulting program"ZOT 3". The catch is that names on their own meannothing: the technique will not work if the name is notdefined, or if somebody changes its definition. Thusif you print the name of an APL function on a devicefrom which you want to read it back in later, the originaldefinition may in the meantime change or disappear fromthe workspace. This difficulty does not arise with lambdaexpressions, which contain their own definition. Thusfunctions have at best limited mobility in APL.

The notion of mobility, perhaps surprisingly, is not aconcept that many people are familiar with. In hindsightit is clear that mobility was a concern, whether or not asubconscious one, for the designers of LISP, APL andSNOBOL. The late Christopher Strachey, a British com-puter scientist, made the distinction between "first andsecond class citizens" when discussing data, the formerbeing what I have called mobile data. The first publishedreference to the concept appears to have been made in1968 by another British computer scientist, RobinPopplestone, in a description of the virtues of hislanguage POP-2. Popplestone did not use the word"mobile" either, talking instead in terms of a "charter ofrights" for data.

Modularity of Function

Subroutine libraries have something that programminglanguages often lack, and that is modularity of function.One does not view a subroutine library as a monolith butrather as a loosely coupled set of subroutines. The termsubset, often applied in a vague way to programminglanguages, has an obvious and precise meaning for sub-routine libraries.

LISP and APL, in contrast, are each just like a sub-routine library, being little more than a set of functions.The user may add to this set by getting more functionsfrom whatever subroutine library is maintained by thelocal environment. And the user's program itself consistsof a set of functions. Any of these functions can be invok-ed from the user's terminal or from the user's or any otherprogram. All three kinds are invoked with identical syn-tax (within each language), in LISP:

(Function Argl Arg2 ...Argn)

in APL:

op xx op y

for unary functions

for binary functions, assuming right

associativity

The conventions for representing lists, LISP's primarystructured data type, are the same for representing pro-grams. Since those conventions are simple, there is littleto learn. In this respect LISP differs from APL, which has

166 August 1979 © BYTE Publications Inc

Circle 8 on inquiry card.

a convention for representing the structure of its pro-grams (namely the invocation of the right-associativityrule, that x op y op z is read as x op (y op z) that has noanalog in the representation of APL data.

I should add that my own preference in programmingin LISP is to use an ALGOL-like language, CGOL, whichis then automatically translated to LISP. Despite theregular and easily learned syntax of LISP, I do not likehaving to write x + y as (PLUS X Y). I do too muchmathematics to feel comfortable switching represen-tations in order to program. Fortunately it is notnecessary to compromise functional modularity in orderto use other syntactic conventions. If I were an APL pro-grammer I would want to do the same thing: have a syn-tactic preprocessor that permitted me to use the syntax Ifelt most comfortable with.

Declarative Programming

Here is an innocent looking pair of equations:

(a + 1) X b0 X b

a X b + b0

What sets these equations apart from the millions ofother equations I could have written is that these permitme to convert any method for adding into a method formultiplying nonnegative integers. Suppose, for example,I want to multiply 3 by 7. Since 3 = 2 + 1, I can use theequation to express 3X7 as 2X7+7, reducing theoriginal problem to a smaller one which can be solved bythe same method. Eventually I have (((OX7+7)+ 7)+ 7,which the second equation turns into ((0 + 7)+ 7)+ 7. Us-ing the method for adding, three times, I end up with thedesired answer.

Turning these equations into a LISP program to give arecursive definition of (TIMES A B) is an essentiallymechanical procedure yielding:

(COND ((ZEROP A) 0)

(T (PLUS (TIMES (SUB1 A) B) B)))

or in the "syntactically sugared" version of LISP referredto earlier:

if a = 0 then 0 else (a —l)*b+b

The significance of this example lies in two observa-tions: first, the facts were so obvious it was hard to makea mistake; and secondly, the procedure for convertingthose facts into something we could run as a program wasso stereotyped and straightforward (match the problemagainst the lefthand side of an equation, replace it by thecorresponding righthand side) that, again, it was hard tomake a mistake.

Programming in LISP comes close enough to thisdeclarative style to make programming a remarkablyerror-free process.To those who can read LISP, a well-written LISP program will look like a collection of facts.The subtlety of the program then amounts to the subtletyof the facts. If the facts are obvious, as with the above,there is little to explain. If the facts are not obvious, thenyou have a program that needs to be proved correct.

CIPM

SoftwareTools

Have you thoughtabout text editing ?

Our ED-80 Text Editor offers a refreshing new approach for thecreation and editing of program and data files conversationally - and itsaves money! Its powerful editing capabilities will satisfy the mostdemanding professional - yet it can still be easily used by the inexper-ienced beginner.

Look at theseoutstanding features:

■ By far the best text editor available for microcomputer-based systems.

■ Repays its initial cost many times over with its uniquetime-saving editing capabilities.

■ FULL SCREEN window displays for viewing and edit-ing data a page-at-a-time, rather than line-by-line.

■ Forward and backward scrolling in the FULL SCREENmode.

■ Displays the results of every edit command.

■ Commands include forward or backward Locate andChange, Insert, Delete, Replace, Inline, Input, Print,List, Window, Get, Put, Macro, Tabset, Append, Case,Scale, and Dump.

■ Simple line-oriented commands with character stringmanipulation 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 fileson the same or different diskettes.

■ Self-explanatory diagnostic messages.

■ Single keystrokes for the most commonly used com-ands.

■ Safeguards to prevent catastrophic user errors thatresult 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'sManual of over 60 pages.

■ Compatible with existing CP/M edit files and deriva-tive operating systems.

And remember — in today's interactive programming environment — theprogrammer's most important software development tool is the text editor.Our ED-80 Text Editor is working in industry, government, univer-sities, and in personal computing to significantly cut program develop-ment time and high labor costs. Why not let ED-80 begin solving yourtext editing problems today?

I Mail to: SOFTWARE DEVELOPMENT STRAINING, INC.

1 P.O. Box4511, Huntsville, AL 35802

ED-80 is protected by copyright and furnished under a paid-up licenselor use on a single computer system.| G Please send additional information.

| G Send Diskette, User's Manual, and paid-up license agreement $99.00

; Specify SINGLE DENSITY Diskette size G 5" G 8"

. G Send User's Manual (credited on purchase of a paid-up license) $10.00

' G Check or money order enclosed for $

I G Please charge to my credit card G VISA G MasterCharge

| Card No Bank No Exp.Date

| NAME

| ADDRESS

I CITY STATE ZIP

SIGNATURE

C-l

SOFTWARE DEVELOPMENT & TRAINING, INC.Post Office Box 4511 Huntsville, Alabama 35802

Dealer Inauiries Welcomed® CP/M is a trademark of Digital Research

August 1979 © BYTE Publications Inc 167

Table 1: LISP finds applications in many areas dealing with language processing.

Area

Compiling

Algebraic simplificationNatural languageAutomatic theorem provingProgram verificationAutomatic programmingKnowledge1 based systems

Language

Parsed programs

Algebraic formulas

Parsed sentences

Logical formulas

Parsed programs and logical formulas

Specifications and resulting programs

Facts and rules

Though the example above dealt with numbers, themobility of LISP's structured data types makes it possibleto apply the same method to writing programs thatoperate on lists, functions, programs, and so on.

My own research includes developing and testing newalgorithms for a variety of problems. For the sake of easeof implementation and short debugging time, my style is,as far as possible, to set down the facts relevant to thecomputation and express them as LISP functions. Thanksto the quality of the LISP compiler used at MIT, I canproduce reasonably efficient programs, in many cases asefficient as if I had adopted a more traditional style ofprogramming with while loops and assignments. (Onething I miss, however, is the ability to just write down thepure equations and have a preprocessor automaticallycombine them into a single LISP program.)

My prime testing program referred to in Martin Gard-ner's "Mathematical Games" column in the August 1978Scientific American is written entirely in this style. Someof the facts it uses are obvious ones concerning suchtopics as exponentiation modulo n. Some of the factshowever are considerably deeper and were first provedby the well-known computer scientist Michael Rabin.

Rewriting this particular program in some other pro-gramming style would achieve little, if anything, in theway of efficiency. It would, however, make it harder tosee the connection between the collection of facts suppor-ting the method and the program itself. Rewriting theprogram in another programming language while preser-ving the declarative style would be possible providedrecursion was permitted and numbers were mobile. Aproblem here is that numbers of the size my programworks with, up to 1000 decimal digits, are not merelyimmobile in most languages, they do not even exist. Theimplementation at MIT is one of the implementationswhich takes much effort to protect the programmer fromfrequent painful encounters with boundaries by notlimiting the size of integers.

This principle of executing facts as programs has en-couraged people to generalize the idea to other factsbesides equations, and a series of programming languageshave evolved based on this generalization, two of themore prominent ones being Planner and Prolog.

Metalanguage

Meta is Greek for about. LISP lists can be used, interalia, to represent expressions in various languages. ThusLISP makes an ideal metalanguage, a language for talkingabout language. As such, LISP finds applications in alarge variety of areas dealing with the processing in lan-guage, as shown in table 1.

In all of these areas, the expressions of the language inquestion are treated as structures rather than as strings.

Structures represent the level of language processingwhere the real action takes place. Parsing (eg: convertingstrings to structures) may present more or less of achallenge depending on the area, but the general feelingin most such areas is that it is what takes place after par-sing that is more interesting.

What makes LISP particularly well-suited to theseapplications is that they frequently call for operations onexpressions that are best viewed recursively as facts andprocedures stated in terms of the immediate constituentsof the expressions. This is an instance of the declarativestyle described earlier, for the case when the data areexpressions.

To take an example from algebraic simplification, thederivative of an expression can be defined in terms of thederivatives of its immediate constituents. Thus (DERIV'(PLUS X Y)) would be:

(LIST 'PLUS (DERIV X)(DERIV Y))

where X and Y themselves may be quite complicatedalgebraic expressions. Similarly (DERIV '(TIMES X Y))would be:

(LIST 'PLUS (LIST 'TIMES (DERIV X) Y)(LIST 'TIMES X (DERIV Y)))

and so on for other operators. From such facts it isstraightforward to construct a recursive LISP programfor differentiating algebraic expressions.

A helpful way to think about the principle illustratedby the above is to view the equations from which theLISP programs are derived as dealing with only a smallregion of an expression at a time. While algebra tends tosupply particularly nice examples of this principle, theprinciple in one form or another pervades essentially allareas where linguistic structures are encountered.

Conclusion

This discussion of LISP has confined itself to thoseaspects of LISP directly visible to the user. It has not con-sidered LISP's substantial contributions to language im-plementation technology, such as garbage collection, theinterpreter/compiler dichotomy, and dynamic modulelinking in place of the usually more static linking loader.It did consider LISP's relation to other languages, findingAPL to be as good as LISP in some respects, but lackingin some particularly vital areas.

While it is difficult to consider LISP unique in anysingle one of its aspects, when looked at as a whole LISPstands out as a quite remarkable and original languagethat does credit to its inventor, John McCarthy. ■

168 August 1979 © BYTE Publications lnc

CBASIC Business Software for Microcomputers

Osborne & Associates is publishing CBASIC editions of its business softwarebooks, Payroll With Cost Accounting, Accounts Payable and Accounts Receiva-ble and General Ledger. The CBASIC programs in these new editions will run onmany floppy disk-based microcomputer systems.

PAYROLL WITH COST ACCOUNTING

ACCOUNTS PAYABLE ANDACCOUNTS RECEIVABLE

GENERAL LEDGER

Each book includes complete source listings with remarks, program and systemdocumentation, and an operator's manual. All this for just $15.00! The softboundWang BASIC versions of all three books are available now. CBASIC PayrollWith Cost Accounting is also available now. The remaining books in theCBASIC series will be published in the fall of 1979. The new CBASIC-2 editionsare in a convenient, loose-leaf format.

Not a programmer? Don't want to key in thousands of lines of source code fromthe book? You can buy the programs ready-to-run on floppy disk from one of our200 dealers. Contact us for the name of your nearest dealer.

CBASIC or Wang BASIC won't work? Here is a partial list of independent con-sultants who have converted Osborne programs to run on many popular systemsusing our books as their manuals. Contact us for a complete, up-to-date list ofthese conversions.

CONSULTANTS • COMPUTER STORES • SOFTWARE HOUSES

You can be a dealer for the magnetic surface of Osborne's CBASIC-2 software. We will sell the pro-grams on 8" floppy disks to dealers, consultants and computer stores only. The disk for each booksells for $250.00. Once you buy the floppy disk you may copy it as many times as you like, resell it,change the programs, or use it for your own purposes. But the best part is that we have already writ-ten your operator's manuals—our books! We grant you the unrestricted right to use, transfer, orotherwise deal in any way with the machine-readable form of our BASIC programs. We copyrightonly the printed word in our books.

ALPHA MICRO:

Peter Burke

THE BASIC BUSINESS SOFTWARE CO., INCP.O. Box 2032

Sail Lake City, Utah 74110 (8011363-1199APPLE II:Jimmy Walter

ACE. COMPUTER SYSTEMS2449 North WestshoreTampa. Florida 33607 (8131872-2798

COMMODORE PET:

Chuck Stuart

CMS SOFTWARE

5115 Menefee Drive

Dallas, Texas 75227 (2141 381-0690CROMEMCO:

Richard French

THE NETWORK COMPUTER SYSTEMS

495 Third Avenue #8

San Francisco, California 94118 (415) 668-7777DATAPOINT 1500:

Paul Marchetli

OCCIDENTAL COMPUTER SYSTEMS, INC

6666 Valjean Avenue

Van Nuys, California 91406 (213) 782-3005M1CROPOL1S, NORTHSTAR(REQUIRES CP/MI:

James Rountree

R&A COMPUTER SERVICES

7700 Edgewater Drive, Suite 723

Oakland. California 94621 (415) 562-3133MICROSOFT disk BASIC:

Dan Kindred

GNAT COMPUTERS

7895 Convoy Court

San Diego, California 92111 (714) 560-0433NORTHSTAR BASIC:

Isaac Bornstein

COMPUTER SERVICES OF ENCIN1TAS

341 Willowspring Drive

Encinitas. California 92024 (714) 436-2486POLYMORPHIC 8813:

Bruno Caprez

KEYSTONE SYSTEMS

P.O Box 767

Spokane, Washington 99210 (509)747-5623TRS-80:

Don French

APPLIED DATA CORPORATION

P.O. Box 16020

Fort Worth, Texas 76133 (817) 738-0251

Irwin Taranto

TARANTO & ASSOCIATES

P.O. Box 6073

San Rafael, California 94903 (415) 472-1415

WANG BASIC ON FLOPPY DISK:

Richard Armour

ATLANTIC COMPUTING & CONSULTING

P.O. Box 7294

Hampton, Virginia 23666 (804) 340-9350

Order Form

Name:.

Address:

City:

State:

. Zip:

Phone:.

fj \ OSBORNE & ASSOCIATES

^-^ 630 Bancroft Way, Dept. 123

Berkeley, CA 94710 USA

(415) 548-2805 TWX 910-366-7277

Title

Price

Quantity

Amount

22-5 Payroll With Cost Accounting - CBASIC

$15.00

23-3 Accounts Payable/Receivable - CBASIC

15.00

24-1 General Ledger-CBASIC

15.00

09-8 Payroll With Cost Accounting - Wang BASIC

15.00

13-6 Accounts Payable/Receivable - Wang BASIC

15.00

20-9 General Ledger-Wang BASIC

15.00

Shipping (Shipping for large orders to be arranged) California residents tax

□ All foreign orders $4.00 per book lor airmail

D $0.45 per book 4th class in the U.S.Iallow 3-4 weeks) 'PPing

D $0.75 per book UPS in the U.S. (allow 10 days) Total Amount Enclosed

D $1.50 per book special rush shipment by air in the U.S.

Calif, residents add 6% sates tax

S.F. BART residents add 6-1/2 % sales tax.

d I am an end user interested inrunning CBASIC programs on disk.Please notify me of the closest dealerfor

a I am a dealer interested inpurchasing CBASIC programs ondisk for resale. Please send descrip-tion and order information for:

a CBASIC Payroll With Cost Accountinga CBASIC Accounts Payable/ReceivableD CBASIC General Ledger

Please send the following information:□ Becoming an Osborne dealerD School discounts

a List of foreign distributors

d Other Osborne publications

a Please send me the current conversion list

Payment in advance must be enclosed for purchases of up to $70.00. InvoicingU.S. purchases over $70.00 available upon approval of your account. All foreignorders must be prepaid in U.S. dollars drawn on a U. S. bank.

Circle 292 on inquiry card.

S1034BYTE August 1979 169

A Preview of theMotorola 68000

A I Halsema

4921 Patrae St

Los Angeles CA 90066

It is difficult to classify the newMotorola 68000 processor. It seemsincongruous to call a machine with 32bit wide data paths a microcomputer.The 68000 should be available in late1979. As this is being written, the ar-chitecture of the machine has beenfrozen, and the microcode is nearing

completion. A user programmable,on chip, control memory for dyna-mically changing the machine'sinstruction set is not planned, but youmay be able to specify your ownmicrocode, which is burned into anon chip read only control memory atthe factory.

vcc

GNDCLK

FCO «-FCT ■*-

E •*■

VMA •*-VPA —

RES *-HLT —

BERR

c

► AS

► R/W

3 ► UDS

3 •• LDS

MC68000

ADDRESS > (AI-A23)

)

DATA

}

(DO-DI5)

»-

DTACK

BRBG

B6ACK

IACKIPLOIPUIPL2

Figure 1: Pin assignments for the Motorola 68000 package. A description ofthe functions of the different pins is found in table 1. Figure reproducedcourtesy of Motorola Semiconductor Products Inc.

Using HMOS (high density metaloxide silicon), the 68000 will come ina 64 pin package (see figure 1).Capable of directly addressing up to16 M bytes (actually 224 =16,777,216 bytes) of memory, the68000 is about 15 times more complexthan the 6800 (coincidentally it hasabout 68,000 transistors on the chip,and has about 10 times greaterthroughput). External data paths are16 bits wide and access memory thatis organized as bytes. Through theuse of a signal called VPA (validperipheral address), the 68000 will beable to use the slower 6800 peripheraldevices.

Internally the 68000 is an ortho-gonal and consistent machine, with16 identical 32 bit accumulators, 61basic mnemonics (shown in table 2),which can be used with any of the 14addressing modes and any of the sixdata types. See figure 2 for an illustra-tion of the programming model. Thefive basic addressing modes areregister direct, register indirect, ab-solute, immediate, and programcounter relative. The ability to dopostincrementing, predecrementing,offsetting, and indexing is included.Data types recognized by the machineare bits, bytes, BCD (binary codeddecimal) digits, ASCII characters, 16

About the Author

AMU Ian Halsema has worked as a program-mer since 1971. He is now a senior member ofthe programming staff at Xerox Corp. His per-sonal computer system includes a SouthwestTechnical Products Co 6800 and OkidataCP-110 printer.

170 August 1979 © BYTE Publications Inc

bit words, and 32 bit long words. Bycombining the instructions, datatypes, and addressing modes, morethan 1000 instructions are available.

Some of the more interesting in-structions are PACK (pack ASCII toBCD digit form), UNPK (unpackfrom BCD digits to ASCII), CHK(check register against bounds),TRAP (provides access to 16 softwaretrap vectors), LINK, and UNLK (link-ed list operations). With eight levelsof priority interrupts, this machinecan access 256 interrupt vectors.Hardware traps to catch softwareerrors include word access with oddaddress, illegal instruction, unimple-mented instruction, illegal addressingmode, illegal memory access,overflow on divide, and overflowcondition code. Through the use ofthe unimplemented instruction trap,the user can implement his own oper-ation codes (in a fashion similar toSVC on the IBM 360/370 systems).

Designed with timesharing inmind, the 68000 has supervisory anduser states, with the ability to runeight tasks in the user state simul-taneously. Supervisory state makescertain instructions legal for oper-ating a separate memory manage-ment controller. This controller willprovide dynamic management ofmemory segments that contain readonly data, read/write data, programcode, or protected data or code. Asan aid in debugging, the machine in-cludes a bit in the status register that,when set, puts the machine into singlestep operation.

The 68000 instruction set wasdesigned by programmers for pro-grammers, and is designed for ease ofuse in compiler generation andtimesharing system implementation.The orthogonality referred to abovereduces the number of details the pro-grammer must keep in mind whenprogramming — a register is aregister like any other on themachine, with no special conditionsrestricting register use.

Applications

Computers are useful for process-ing vast amounts of data, and for per-forming long repetitive sequences ofoperations. Since the personal com-puter enthusiast has neither thefacilities nor the time to collect largeamounts of data for processing, thecomputer is more likely to be used in

Pin Identification and Definitions

A1-A23

Address Leads

D0-D15

Data Leads

AS

Address Strobe

R/W

Read/Write

UDS, LDS

Data Strobes

DTACKBR

Data TransferAcknowledgeBus Request

BG

Bus Grant

BGACK

lACK

IPLO,IPL1,IPL2FCO, FC1

Bus Grant

Acknowledge

Interrupt

Acknowledge

Interrupt Priority

Level

Function Code

CLK

Clock

RES

Reset

HLTBERR

HaltBus Error

EVPA

VMAG^D

Enable

Valid Peripheral

Address

Valid Memory

Address

+ 5V

Ground (two pins)

23 bit address bus; capable of addressing16,777,216 bytes in conjunction with UDS andLDS.

16 bit data bus; transfers 8 or 16 bits of infor-mation.

Indicates valid address and provides a bus lock forindivisible operations.

Defines bus operation as Read or Write andcontrols external bus buffers.Identifies the byte(s) to be operated on accordingto R/W and AS.

Allows the bus cycle to synchronize with slowdevices or memories.

Input to the processor from a device requestingthe bus.

Output from the processor granting bus arbitra-tion.

Confirmation signal from BG indicating a validselection from the arbitration process.Identifies that the bus is performing an interruptservice cycle.

Provides the priority level of the interrupting func-tion to the processor.

Provides external devices with information aboutthe current bus cycle.

Master TTL (transistor-transistor logic) input clockto the processor.

Provides reset (initialization) signal to the pro-cessor and peripheral devices.Stops the processor and allows single stepping.Provides termination of a bus cycle if no responseor an invalid response is received.Enable clock for M6800 systems. Identifiesaddressed area as a 6800 compatible area.

Indicates to 6800 family devices that a validaddress is on the bus.

Table 1; Description of pin functions on 68000 processor.

the second mode (number crunching).Today's microprocessors fail miser-ably as number crunchers due to lowspeeds and limited amounts ofmemory space. The 68000 will correctthese deficiencies. (Coupled with thenew low cost, high density memorydevices with 64 K bit capacity andwith even greater density coming, thepersonal computer will attain or ex-ceed the power of an IBM 360 Model30 within the next decade.) Numbercrunching applications requiring littleexternal storage (ie: disk or drum) in-clude artificial intelligence, encryp-tion/decryption, simulation, games,and Dynabook type applications.[See the article by Alan Kay on page230 of the September 1977 ScientificAmerican for a general description ofsmall talk, a software system intend-ed for small portable Dynabook com-puters CH]

Artificial intelligence attempts toprovide the computer with the abilityto learn from past experience (ie:heuristic procedures), and to simulate

operations of the human brain inrecognizing patterns. Brain simula-tions are generally performed usingarrays in memory as brain cells, withsoftware logic taking the part of thecomplex interconnections betweencells. Array arithmetic requires a fairamount of processing power. Suchpower is not available on 8 bitmachines.

A common array operation in arti-ficial intelligence is finding the inneror dot product of two arrays. If arrayX represents a set of cell states, andarray D represents data upon whichthe "brain" is to work, then the innerproduct of the two arrays is repre-sented by: z = X1D1 + X2D2 +...+XnDn, where z might be theresult of a vote taken by n cells of the"brain" in a committee network. Thiscalculation can be very slow on an 8bit machine without hardware multi-ply, and exceedingly slow if the ar-rays are large or each element isseveral bytes long. Multidimensionalarrays take up large amounts of

August 1979 © BYTE Publications Inc 171

PROGRAMMING MODEL

31

16 15 8 7

0

1 1

DO

1 1

Dl

1 1

D2

1 1

D3

EIGHT

DATA

1 1

D4

REGISTERS

1 11 1

D5D6

1 1

D7

31

16 15

0

1

AO

11

AlA2

I

A3

EIGHT

1

ADDRESS

REGISTERS

1

A5

1

A6

USER STACK POINTER

A7A7'

SUPERVISORY STACK POINTER

PROGRAM

_

23

0

:

COUNTER

15 8 7

0

STATUS

i

REGISTER

STATUS REGISTER

15 13

10

N Z V C

TRACE MODE

SUPERVISORY

INTERRUPTMASK

EXTEND

NEGATIVE

ZERO

OVERFLOW

CARRY

Figure 2: Programming model and register organization for the Motorola68000 processor. Note that the data registers and address registers are func-tionally identical except for register A7. AT, the supervisory mode stackpointer, is not available to the programmer. Figure reproduced courtesy ofMotorola Semiconductor Products Inc.

memory space which today's micro-processors cannot support.

Modern methods of encrypting anddecrypting messages can require largeamounts of processing power. As anexample, the method for obtainingdigital signatures and public keycryptosystems developed by R LRivest (a "trapdoor" system) requiresraising the message text to a powerand dividing by two large secretprime numbers. Large meansanything from 50 to 500 digits, withthe larger numbers giving greatersecurity. The mathematical oper-ations of raising to a power, perform-ing lengthy divisions, and finding thelarge prime numbers (which need bedone only once) cannot feasibly beperformed on an 8-bit machine, butcome within the realm of the possiblewhen using the 68000.

A simple example that the readercan program involves finding theGodel number (named after themathematician who discovered them)which encrypts a word or message.Each character in the message isrepresented by the natural order ofprimes (2, 3, 5, 7, 11, 13, ...etc). Theidentity of the letter occupying a posi-tion in the message is given by an ex-ponent: the exponent 1 meaning thatthe letter is an A, 2 meaning a B, etc.The message as a whole is then ren-dered as the product of all the basesand exponents. For example, theword "CAB" can be represented as23X31X52 or 600 (8X3X25 = 600).Decode the message by dividing theproduct by each prime number until aremainder appears. The number ofdivisions is the exponent representinga particular character. Regardless ofhow the problem is ordered, muchcomputation is required to find theprime numbers, exponentiate, andmultiply. This gives you an idea ofthe sort of processing power requiredfor a full public key cryptosystem.

Games and simulations can becomemore complex. A space war gamewas programmed nearly a decade agoat Massachusetts Institute ofTechnology that included realisticsimulations of orbital mechanics inthe vicinity of a planet or star. Aspace war game with simulations ofrelativistic effects at near light speedscould be challenging both for the

172 August 1979 © BYTE Publications Inc

"THE ORIGINAL"

I PersonalC Computing

Plan Now to attendthe best PersonalComputing show ever,

Friday, Saturday, SundayOctober 5-6-7thPhiladelphia Civic Center

Philadelphia, Pa.

PC 79

®

Don't be confused — Other shows are copying us butthey cannot equal us. We are the Original PersonalComputing Show. Now in our Fourth Year.

FEATURING:

Major Exhibits

from the

Leading Companies

•

Personal Computing College

with 80 Hours of

Free Seminars by the

Industry's Leading Speakers

•

Major Emphasis

on

Software Exhibits

•

2nd Annual

Computer Music Festival

Bigger! Better!

•

Antique

Computing Devices

on Display

•

See All the Latest

Hardware

•

Business Systems

andBusiness Software

For more information and aFree subscription to our "PERSONALCOMPUTING" newspaper, sendyour name and address to:

PERSONAL COMPUTING 79

Rt. 1, Box 242 • Mays Landing, N.J. 08330 • 609/653-1188

Industry TRADE SHOW on October 4th

For exhibiting information please call or write.

Circle 304 on inquiry card.

BYTE August 1979 173

player and the programmer. Simula-tions of nonlinear and dynamic pro-cesses require the large amounts ofcomputing power made available bythe 68000. High resolution graphicsrequire the large address space pro-vided by the 68000, and with suffi-cient processing speed, true real timeanimation can be created.Dynabook is a project headed by

Alan Kay at Xerox Corporation'sPalo Alto Research Center. One ofthe objects is to provide the powerof a medium size computer in a pack-age the size of one encyclopediavolume. The 68000 computer, bubblememories, and low cost semiconduc-tor memories bring this target withinreach. With 8 simultaneous tasks, theowner of such a system could use one

Mnemonic

Description

ABCD

Add Decimal with Extend

ADD

Add

ADDX

Add with Extend

AND

Logical And

ASL

Arithmetic Shift Left

ASR

Arithmetic Shift Right

BCC

Branch Conditionally

BCHG

Bit Test and Change

BCLR

Bit Test and Clear

BRA

Branch Always

BSET

Bit Test and Set

BSR

Branch to Subroutine

BTST

Bit Test

CHK

Check Register Against Bounds

CLR

Clear Operand

CMP

Arithmetic Compare

DCNT

Decrement and Branch Nonzero

DIVS

Signed Divide

DIVU

Unsigned Divide

EOR

Exclusive Or

EXG

Exchange Registers

EXT

Sign Extend

JMP

Jump

JSR

Jump to Subroutine

LDM

Load Multiple Registers

LDQ

Load Register Quick

LEA

Load Effective Address

LINK

Link Stack

LSL

Logical Shift Left

LSR

Logical Shift Right

MOVE

Move

MULS

Signed Multiply

MULU

Unsigned Multiply

NBCD

Negate Decimal with Extend

NEG

Two's Complement

NEGX

Two's Complement with Extend

NOP

No Operation

NOT

One's Complement

OR

Logical Or

PACK

Pack ASCII to BCD (binary coded decimal)

PEA

Push Effective Address

RESET

Reset External Devices

ROTL

Rotate Left without Extend

ROTR

Rotate Right without Extend

ROTXL

Rotate Left with Extend

ROTXR

Rotate Right with Extend

RTR

Return and Restore

RTS

Return from Subroutine

SBCD

Subtract Decimal with Extend

sec

Set Conditional

STM

Store Multiple Registers

STOP

Stop

SUB

Subtract

SUBX

Subtract with Extend

SWAP

Swap Data Register Halves

TAS

Test and Set Operand

TRAP

Trap

TRAPV

Trap on Overflow

TST

Test

UNLK

Unlink Stack

UNPK

Unpack BCD to ASCII

task as a clock, one for a calculator,one for personal data base process-ing, another for memos, reminders,and schedules, and yet another fortext processing, and still have 3 othertasks available for long-term numbercrunching, games, or whatever theimagination can visualize. With asmuch as 16 M bytes of memory, eachtask could be allotted 2 M bytes. Thisamount of storage is difficult to com-prehend, but for comparison, the textof this article requires about 10,000bytes of storage. This Dynabook sys-tem would be battery powered andportable, with a solid-state displayand thin, typewriter keyboard.

There can be no doubt that the in-expensive super computer is coming.IBM estimates that an entire centralprocessing unit with 1 M bytes ofmemory will fit in a cube 1 inch (2.54cm) on a side by the end of the 1980s.[This particular device will requirecooling to superconductor tempera-tures.] An example of what is possiblewith today's technology can be seenin Texas Instruments' "Speak andSpell" toy, which for under $50 pro-vides a keyboard, alphanumericdisplay, and microprocessor control-led speech feedback with a vocabu-lary of about 250 words andnumerous messages and phrases. Thefunctions that can be performed bythe Motorola 68000 and the newgeneration of microprocessors itrepresents are limited only by the im-agination.!

Table 2: Instruction set of 68000 processor. Operation of instructions is as con-sistent as possible.

BIBLIOGRAPHY

Feucht, Dennis, "Pattern Recognition:Basic Concepts and Implementation,"Computer Design, December 1977, pages57 thru 68.

Kay, Alan C, "Microelectronics and thePersonal Computer," Scientific American,volume 237, number 3, September 1977,page 230.

Rivest, R L; Shamir, A; Adleman, L, "AMethod for Obtaining Digital Signaturesand Public-Key Cryptosystems," Com-munications of the ACM, volume 21,number 2, February 1978, pages 120 thru126.

174 August 1979 © BYTE Publications Inc

Here's the LATEST news...

We're expanding again! CompuKit is now CompuPro to reflect the fact that more and moreof our production is being devoted to non-kit products ... not only is there increased demandfor our standard assembled & tested models, but the high-reliability Certified System Compo-nent boards (with 200 hour burn-in and immediate replacement in event of failure within 1 yearof invoice date) are really taking off. Kit builders need not fear, however; when economy is para-mount, most CompuPro products are also available in "unkit" form (sockets, bypass caps pre-soldered in place). All of this is part of our continuing commitment to provide the best possibleproducts at the lowest possible prices ... the same commitment responsible for making us anindustry leader in the first place.

THE ECONORflM* MEMORY LINE:

LOW POWER AND LOW PRICE MEET HIGH TECHNOLOGY.

Name

Storage

Buss

Speed

Technology

Configuration

Unkit

Assm

CSC

Econoram HA

8KX8

S-100

4 MHz

static

2-4K blocks

$149

$179

$239

Econoram IV

16KX8

S-100

4 MHz

static

1-16K

$295

$329

$429

Econoram VI

12KX8

H8

2 MHz

static

1-8K, 1-4K

$200

$270

N/A

Econoram VII

24KX8

S-100

4 MHz

static

2-4K, 2-8K

$445

$485

$605

Econoram IX

32KX8

Dig Grp

4 MHz

static

2-4K, 1-8K, 1-16K

$559

$639

N/A

Econoram X

32KX8

S-100

4 MHz

static

2-8K, 1-16K

$599

$649

$789

Econoram XI

32KX8

SBC

4 MHz

static

2-8K, 1-16K

N/A

N/A

$1050

BfiNK SELECT MEMORIES (for fflpho Micro Systems,

Marinchip, etc.)

Econoram XI1-16

16KX8

S-100

4 MHz

static

2 indep. banks**

$369

$419

$ 519

Econoram XII-24

24KX8

S-100

4 MHz

static

2 indep. banks**

$479

$539

$ 649

Econoram XIII

32KX8

S-100

4 MHz

static

2 indep. banks**

$629

$699

$ 849

'Econoram is a trademark of Bill Godbout Electronics

"Econoram XI1-16 and

24 have 2 independent banks addressable on 8K boundaries; Econoram XIII has 2 independent banks addressable

on 16K boundaries.

SPECIAL SUMMER SflLE: 16K MEMORYEXPANSION CHIP SET4499-S87.20

20% off one of our all-time best sellers from July 15 to August 31only. For Radio Shack-80, Exidy Sorcerer, Apple computers. 250 ns ac-cess time, low power parts, DIP shunts included, 1 year limited warran-ty, and easy-to-follow instructions that make memory expansion asnap.

S-100 MOTHERBOARD

18 slot unkit: $124. Each motherboard includes alledge connectors wave-soldered in place for easy assembly, integralactive termination circuitry, extra wide power and ground traces, andmuch more.

ACTIVE TERMINATOR KIT $34.50

As written up by Craig Anderton in the April 79 issue of KilobaudMicrocomputing. Our much imitated design plugs into any S-100motherboard to reduce ringing, crosstalk, noise, and other buss-relatedproblems.

H8 EXTENDER BOARD KIT $39

New from Mullen Computer Products. Really takes the hassle out oftroubleshooting or testing the popular Heath H8 microcomputer; in-cludes jumper links in the power supply lines for insertion of fuses, Am-meters, current limiters, and the like.

S-lOO EXTENDER BOARD KIT $39

From Mullen Computer Products. Includes jumper links in supplylines, on board logic probe, and general purpose "kluge board" area forinstalling custom testing jigs or other circuits.

DUAL CHANNEL/DUAL FUNCTION S-lOOI/O BOARD $189 unkit. $249 assm.

This board does things the others only dream about. Features twoindependently addressable serial ports with full RS232C, current loop(20 mA) and TTL signals on both ports. Includes on board xtal timebaseand Baud rate generator for Baud rates up to 19.2 KBaud, El A 232Creceivers and drivers (1488,1489), hardware LSI UARTs that don't tie upthe computer's CPU, operation with 2 or 4 MHz systems, software pro-grammable UART parameters/interupt enables/handshaking lines(handshaking lines are full RS232 — not just a 3 wire system), opticallyisolated current loop, provision for custom frequency compensation onboth receive and transmit sides to accommodate varying speed/noisesituations or unusual cable lengths ... and even all this isn't the fullstory of what this board can do for you. See it in person at a computerstore near you, or order direct from us.

2708 EROM BOARD "UNKIT" $85

4 independently addressable 4K blocks, with selective disable foreach block. Built to CompuPro/Econoram standards (dipswitch ad-dressing, top quality board, sockets wave-soldered in place), and in-cludes dipswitch selectable jump start built right into the board. In-cludes all support chips and manual, but does not include EROMs.Special: if you order before August 1st, our introductory price of $69.95is still in effect. Orders postmarked August 1st or later are no longereligible for the introductory price ... no exceptions.

POPULAR COMPUTER ICs

Low power 21L02 static 1K RAMs on special: 10/$9.90 (under 1c perbyte!) 1791 MOS LSI dual density disc controller from Western Digital:$59 with pinout and data. 1771 single density controller: $22.50. Allparts are offered on a while-they-last basis.

We realize that it is becoming less and less common for manufacturers to offer their products in kit form, so we'dlike to emphasize that we are not planning to phase out our kits. The "hackers" who derive enjoyment from buildingand testing equipment themselves were our very first customers, and we recognize that these experimentally-mindedindividuals have been responsible for many significant developments in the microcomputer field. As long as peoplewant to put things together with their very own hands, we'll continue to offer kits ... and continue to repair thempromptly under the terms of our 1 year limited warranty (almost always without charge), in the rare event that aproblem occurs.

TERMS: Cal. res. add tax. Allow5% shipping, excess refunded.Orders under $15 add $1 han-dling. VISA* /Mastercharge® callour 24 hour order desk at (415)562-0636. COD OK with street ad-dress for UPS. Prices goodthrough cover month of magazineexcept as noted.

Circle 150 on inquiry card.

CompuProM

Box 2355, Oakland Airport, CA 94614

from

(IJlS)l3i

ELECTRONICS

FREE FLYER: We'll b» glad to t«llyou mora than the space of this adpermits. Just sand your name andaddress, we'll take care of therest. If you're In a hurry, enclose41c in stamps for 1st classdelivery.

BYTE August 1979 175

LISP Based SymbolicMath Systems

David R StoutemyerThe Soft Warehouse

POB 11174Honolulu HI 96828

On an interactive terminal, a user begins by typing theassignment:

Q - 6*Xt3/(9*X)

where — denotes assignment, * denotes multiplication,and t denotes raising to a power. Such a command wouldbe erroneous in most languages because the variable Xhas not previously received a value. However, symbolicmath systems accept and even simplify expressions con-taining such unbound variables. Thus, the response ofsuch a system to the above command is the automaticoutput:

2*Xt2/3

which is also saved as the value of Q. Some of thesystems have more elaborate output routines whichwould display the above output in a two-dimensionalformat such as the following:

2Xf

3

It is the ability to accept and transform input-data con-sisting of expressions which contain unbound variablesthat most characterizes computer symbolic math. As isalso illustrated by this example, virtually all such systemsare capable of exact rational arithmetic. In fact, the ra-tional arithmetic is usually indefinite precision, whereineach number occupies as much memory as is necessaryfor exact representation up to some very large maximum,imposed perhaps only by the total amount of remainingspace allocated for numbers. Even the small 8080 basedmuMATH-79 system can compute 99" exactly, in lessthan three seconds, and the SCRATCHPAD system was onceinvolved in a proof that the incredibly large number2i9.937 —i is prime.

Virtually all symbolic math systems also support sym-bolic differentiation. For example, if the user enters an ex-pression after the above assignment to Q such as thetrigonometic example:

DIF(A*SIN(Q),X),

the automatic interactive response is:

4*A*X*COS(2*Xt2/3)/3

Later sections will discuss even more sophisticated built-in mathematical capabilities of these systems.

Symbolic math systems are often called computer-algebra systems despite their ability to do trigonometricsimplification, calculus, and other operations aside fromalgebra.

Most general-purpose computer-algebra systems areimplemented in LISP or in a disguised variant thereof,because LISP is especially suitable for the purpose. This isnot to say that the user of a LISP based system mustknow LISP or use a LISP like syntax for his expressions.Because the syntax of traditional applied math is so dif-ferent from that of LISP, each of these systems provides aparser which translates the traditional external represen-tations of input expressions into corresponding internalrepresentations which are more suitable for performingthe various mathematical transformations. Similarly,each of these systems provides an output deparser which

About the Author

David R Stoutemyer is a Professor of Electrical Engineering at theUniversity of Hawaii. He has received his doctorate in ComputerScience from Stanford University, with specialization in numericalanalysis. His current research interests include both numerical and non-numerical scientific computation. Current educational interests includeinnovative computer aided math education at the elementary throughcollege level.

176 August 1979 © 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 orientedand simple to use. The package is as comprehensive as available computer tax services. Itwill calculate taxes, prepare and print all forms.

This package is supported by American Tax Associates, an established California accountingfirm. In this way you can be assured that the yearly updates will be consistent with the currentlaws and accounting practices.

This package is a real time saver. It can perform income averaging automatically, and basedon the data input, the program can determine whether to itemize or to use the standard de-duction.

The client data collection and input procedures were selected based on the experiences ofAmerican Tax Associates, and the techniques used by many service companies A simpleform is completed during the client interview. The data from this form is later input into thecomputer for processing.

When the client data is entered into the computer you may select to have it print an audit trailof 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 requir-ing a preprinted form are formulated and printed on blank paper. The data disk will hold up to120 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 multiusercapability, high throughput, and upward expandability into a hard disk system.

Yearly updates will be supported by American Tax Associates. These updates are availablefrom eitheryourdealerordirectly from Mission Control.

EM REQUIREMENTS:

Language:

Alpha Micro Systems Basic (compiled)

Media:

8" floppy diskette

CPU:

Alpha Micro AM-100

Memory:

64KRAM

Printer:

132 col with tractor feed

Floppy:

Dual 8" drives required

Write for our brochure — Dealerships still availableContact: Distributor

DISTRIBUTED BY |V| I S £E» IO l\i

2008 WILSHIRE BLVD., SANTA MONICA, CA 90403 • (213) 829-5137 CONTROL

Circle 238 on inquiry card.

BYTE August 1979 177

translates the internal representation into a traditionalmathematical representation for display.

In addition to using the built-in math facilities in thesymbolic calculator fashion illustrated above, many userswant to eventually extend the built-in capabilities bymeans such as entering appropriate function definitions.Since most users of these systems are accustomed to atraditional Von Neumann style of programming lan-guage, rather than LISP, the parser is also generally usedto provide users with a surface programming languagewhich resembles ALGOL or another widely acceptablesyntax. In fact, many of these systems provide an exten-dable parser-deparser, so that the user can introducemathematical operators and programming syntax to suitpersonal needs and tastes. Such functional or parser ex-tensions can be freely intermixed with calculations utiliz-ing built-in facilities and previous extensions so that theinteraction is of the full incremental variety, a la LISPand APL, rather than a semi-interactive style, a laBASIC.

I have spent many fascinating hours using the fourmost actively supported and publicized LISP basedsystems and it seems likely that increasing numbers ofstudents, scientists, engineers, and mathematicians willwant an opportunity to try some of these systems. Conse-quently, the following four sections briefly describe someof their capabilities and their availability, in order of in-creasing size. In the interest of brevity, each section em-phasizes features not described in previous sections.

As with many other LISP programs, these computeralgebra systems seem almost magical when first en-countered. Thus, it is especially satisfying and educationalto learn how they work. Accordingly, these four sectionsalso briefly indicate some of the underlying techniques,together with the issues that they address.

Interest in computer algebra is growing rapidly, andthe final section discusses the impact that this powerfultool can have on education, recreation, and research.

muMath-79

muMATH-79 is a small computer-algebra system im-plemented by Albert Rich and the author for Intel 8080based microcomputers using the popular Digital ResearchCP/M operating system. The system will also run on theupward-compatible Intel 8085 and Zilog Z-80 processors,and upward-compatible operating systems such as theCromemco CDOS or IMSAITMDOS systems. In its en-tirety, including an allowance of 5.7 K bytes for a resi-dent operating system, the system occupies 28 K bytes,for which an additional minimum of 16 K bytes is recom-mended to store the control stack, the symbol table,character strings, numbers, expressions, and user-definedfunctions. The system is modular so that users can savespace by omitting unneeded packages. For example, thesymbolic integration, differentiation, logarithmic,trigonometric, and inverse trigonometric packages can beomitted when one is interested only in algebra. Similarly,the algebra and rational arithmetic packages can also beomitted when one is interested only in exact integerarithmetic. Here is a brief summary of the built-infacilities:

• The system provides indefinite precision rational

ari

irithmetic, including integer factorization andsimplification of fractional powers. For example,the system can perform the simplification:

Vl8 - V8 __ J_V6 V3

where — denotes is transformed to.

• Unavoidable automatic algebraic simplifications in-clude collection of similar terms, collection ofsimilar factors, reduction of integer powers of theimaginary number i, and exploitation of the identi-ty properties of 0 and 1, such as:

l*u—u

for any expression u.

• Optional, more drastic automatic algebraictransformations include expansion of integerpowers of sums, expansion of products of sums,factoring common factors from all the terms of asum, placing expressions over a common denom-inator, and distribution of denominators over theterms of corresponding numerators. Optionaltransformations are controlled by the values of afew option variables so that users can employ orsuppress these more drastic transformations to suittheir needs and tastes for each specific problem.Unavoidable and optional automatic logarithmictransformations include:

e'"u) — u,

ln(e") — u,

ln(u*v) z: ln(u) + ln(v),

ln(u t v) 71 v*ln(u),

for all u and v.

• Unavoidable and optional automatic trigonometrictransformations include exploitation of symmetryto remove minus signs from trigonometricarguments, exact computation for angles which areinteger multiples of ir/12, multiple angle expansion,angle-sum expansion, conversion of trigonometricpowers to multiple angles, and conversion of trigo-nometric products to angle sums.

• Symbolic differentiation and integration rules arebuilt-in for all of the built-in mathematicaloperators and functions. Also, there is a mechanismfor introducing differentiation and integration rulesfor other operators and functions defined by theuser.

As an example of the speed of muMATH, on an 8080running at 2 MHz with 48 K bytes the system can expand298!, (1+x)20, sin(17x), (Xi + Xj-h...+x13)2, orsin(xi+x2-l-...-l-X5) in one minute. Try doing these byhand!

Because of the incremental expression-oriented style, aknowledge of computer programming is unnecessary forusing the built-in capabilities of muMATH in thesymbolic-calculator fashion. When a user's needs are notmet by the built-in facilities, they can be modified or ex-tended by entering appropriate function definitions,simplification rules, or operator parse rules. The built-in

178 August 1979 © BYTE Publications Inc

Expansivebut not expensive

MicroAge introduces for Horizonand Alpha Micro Systems, the mostpowerful Hard Disk Units You'veEver Seen.

Welcome to "Hard" Times: a newage of hard disk cartridge drivesfor Horizon and Alpha Micro ...so powerful, so reliable, soeconomical, you've never seenanything like it. Fast, easy andversatile: the revolutionary newFujitsu M2201 with 40(formatted) megabytes ofstorage... and the dynamic CDCPhoenix with 27 (formatted)megabytes. Both are operatedwith North Star and Alpha Microcommands. Added capacitymeans the ability to fully utilizethe complete range of softwareand capabilities of North StarHorizon and Alpha Micromainframes.

But their family interfacecompatibility is not all that'sexpansive. Speed and economyare impressive, too. Super-fastaccess time means no waiting forcommand execution ... easyhandling of large files. And theprice? Unbelievably low for thismuch flexibility, power, speedand capacity. And the low priceincludes the hard disk drive,S-100 controller, softwareinterface, cords and disk pack.

Fujitsu M2201 CartridgeModule Drive

50 megabyte storage(40 formatted)

Exclusively from MicroAge

CDC Phoenix CartridgeModule Drive

32 megabyte storage(27 formatted)

Either.

$9995.00

Includes drive, S-100 controller,software interface and disk pack.

Ask your dealer about Hard Times — the Fujitsu M2201 and CDC Phoenix drives from MicroAge. Available toqualified dealers and OEM's. If a dealer is not available in your area, call 800-528-1415.

Circle 212 on inquiry card.

BYTE August 1979 179

Circle 366 on inquiry card.

LIGHT PEN trs-80

BYPASS THE KEYBOARD

INTERACT WITH THE

SCREEN DIRECTLY

APPLICATIONS:

• Education

• Business

• Games

• Home

NO ASSEMBLY NECESSARY

READY TO PLUG IN

COMPLETE INSTRUCTIONS ANDDEMONSTRATION PROGRAM PROVIDED

TRS-80 PEN IncludesDemo-Game Cassette

MAIL COUPON TODAY!

30 DAY UNCONDITIONALMONEY BACK GUARANTEE!

Please send me a 3-G Light Pen. I've enclosed a check or money order.

I—| TRS-80 |—| PET ADD $1.50 FOR

I I $34.95 I I $2995 MAILING AND HANDLING

($6.00 FOREIGN)

NAME

ADDRESSCITY

STATE

ZIP

>py» 3G Company, Inc., Depl. BT1J I Rt. 3. Box 2SA

Gaston, OR 97119

HOW TO BUYA BUSINESSCOMPUTER

WHEN TO BUY • WHEN NOT TO BUY *\

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!"TVStation General Manager, California.

"It's the best book I've seen on the subject. Send me 5 copiesto send to my clients"' CPA, Orange County, California,"I really learned something from this book and I'm in thebusiness. I'm recommending it to my clients." DP Consultant,Alhambra, California.

Here's a straight forward approach to business computerpurchase and installation. It will save you time and money.ORDER NOW! If not completely satisfied, return within 30days for a full and immediate refund.

81/ix 11 Softbound ■ 178 pp. ■ $12.95Credit Card Orders 1-805-964-7448

DDC PUBLICATIONS b

5386 Hollister Ave., Santa Barbara, CA 93111

Rush copies of "Winning The Computer Game" at $12.95

per copy. (CA residents add 6% sales tax)

NAME

ADDRESS__

CITY/STATE/ZIP,

□ CheckCard No.

□ Master Charge

□ VisaExp. Date

mathematical algorithms are written in the same generalenvironment and high-level syntax provided to the user.Consequently, the user does not need to master a secondunderlying environment and syntax, such as LISP, inorder to understand the system and fully integrate his ex-tensions into the system.

As an example of a functional extension, suppose thatwe wish to introduce the trigonometric cosecant functionnamed CSC, together with the automatic transformation:

CSC(u) - l/SIN(u)

for any expression u. To accomplish this, we merely enterthe definition:

FUNCTION CSC(U),1/SIN(U),ENDFUN;

Thereafter, until the function is redefined, the abovetransformation will automatically occur for the CSC ofany expression.

Now, suppose that as the sole exception to the abovetransformation, we wish to introduce the transformation:

CSC(0) - UNDEFINED

where UNDEFINED is a variable. To accomplish this, wemerely enter the new definition:

FUNCTION CSC(U),

WHEN U=0, UNDEFINED EXIT,

1/SIN(V)ENDFUN;

As illustrated by these two examples:

• The body of a function definition consists of a se-quence of expressions separated by commas.

• The value returned when a function definition is ap-plied to its arguments is the value of the last expres-sion evaluated therein.

• A conditional exit expression consists of the match-fix operator named WHEN, followed by one ormore expressions separated by commas, followedby the matching delimiter named EXIT.

• The value of a conditional exit is that of the last ex-pression evaluated therein when the conditional exitis evaluated.

• If the first expression in a conditional exit evaluatesto FALSE, then the exit fails and evaluation pro-ceeds to any successive expression following theconditional exit.

• For a successful exit, proceeding sequentially fromthe nonFALSE expression, when evaluation firstreaches an EXIT delimiter it proceeds to the pointfollowing the next ENDFUN, ENDLOOP, or END-BLOCK delimiter.

To illustrate the LOOP construct, suppose that wewish to define a function which uses repeated firstderivatives to compute the Nth partial derivative of anexpression EXPN with respect to a variable VAR, for anyspecific integer N>0. We could do so as follows:

180 August 1979 j BYTE Publications lnc

Circle 89 on inquiry card.

FUNCTION DIFN(EXPN, VAR, N),LOOP

EXPN~DIF(EXPN, VAR),

WHEN N = l, EXPN EXIT,

N-N-i

ENDLOOPENDFUN;

As illustrated by this example:

• A loop-expression consists of the matchfix operatornamed LOOP, followed by zero or more expres-sions separated by commas, followed by thematching delimiter named ENDLOOP.

• Even an assignment is an expression, having as itsvalue the value assigned.

• A loop can contain any number of conditional exitsanywhere in the loop, thus providing a single struc-tured generalization of the REPEAT, WHILE, andhalf loop constructs of some languages.

Moreover, when a function definition is applied to fewerarguments than there are parameters, the extra para-meters are initialized to FALSE and they are available foruse as local variables within the definition.An alternative recursive definition of DIFN is:

FUNCTION DIFN(EXPN, VAR, N),WHEN N=0, EXPN EXIT,DIFN(DIF(EXPN, VAR), VAR, N-l)ENDFUN;

As is frequently the case, the recursive version is morecompact, and compactness is important on small com-puters.

The block control-construct consists of the matchfixoperator named BLOCK, followed by a conditional exit,then zero or more arbitrary expressions, then the mat-ching delimiter named ENDBLOCK. The value of a blockis the value of the last expression evaluated therein. Ablock can contain any number of conditional exits in-terspersed among other expressions, thus providing astructured generalization of the case-statement of someother languages, including the IF-THEN-ELSE constructas a special instance.

Some users may want to extend the syntax by in-troducing additional mathematical operators or addi-tional programming control-constructs. Theincrementally-extendable Pratt parser makes it easy to in-troduce such extensions as they are needed.

Every operator can have a left and a right bindingpower. For example, the left and right binding powers of/ are 120, whereas t has a left binding power of 140 and aright binding power of 139. When two operators arecompeting for an operand between them, the operatorwith higher binding power toward the operand wins theoperand (eg: the expression X/Y12 is parsed the same asX/(Yt2) rather than (X/Y)t2). When there is a tie, theoperator on the left wins the operand (eg: X/Y/2 is pars-ed the same as (X/Y)/2 rather than X/(Y/2 ).

Prefix operators precede their operands. For example,to establish COS as a prefix operator so that we can omitparentheses from around suitable arguments of COS, wecan enter the command:

Circle 331 on inquiry card.

16K STATIC RAM

IB •.

§ \

with$275 450 ns$300 250 ns

memory chips

Assembled, Tested and Guaranteed

Static TMS 4044 or equivalent - Fully Static 4Kx1 Memory Chipsfor full DMA capability, no tricky timing problems.

Fully S-100 Bus Compatible - All lines fully buffered, Dip SwitchAddressable in two 8 K block, 4K increments. Write Protectablein 2 blocks, Memory Disable using Phantom, Battery back upcapability.

Bank Select - Using output port 40H (Cromemco softwarecompatible)-addressable to 512KB of Ram for time share orMemory Overlap, also has alternate ports 80 H, COH.

Guaranteed - Parts and labor for one year. You may return theundamaged board within 10 days for a full refund.

Orders - You may phone for Visa, MC, COD ($4 handling chargesfor COD) orders. Personal checks must clear prior to shipping.Shipping-Stock to 72 hours normally. Will notify expectedshipping 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

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

NORTHSTARHorizon I assembled.. 1629.00

kit 1339.00

Horizon II assembled.. 1999.00

kit 1599.00

Disk System 589.00

TELETYPE

Mod 43 995.00

IMS16K Static Memory.. 459.95

DIGITAL SYSTEMS

Computer $4345.00

Double DensityDual 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 off . . 4990.00

10% off on all other Cromemco products

TEXAS INSTRUMENTS

810 Printer 1595.00

CENTRONICS

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

Circle 91 on inquiry card.

August 1979 © BYTE Publications Inc 181

PROPERTY COS PREFIX 170.

Then, COS X/Y parses the same as COS(X)/Y, because170 exceeds 120. Alternatively, we could enter the com-mand:

PROPERTY COS PREFIX 119if we wished COS X/Y to parse the same as COS (X/Y).

Postfix operators follow their operand, infix operatorslie between their operands, and matchfix operators (suchas LOOP) precede an arbitrary number of operandsseparated by commas and delimited by a matchingdelimiter (such as ENDLOOP). Numbers and variablenames parse as themselves. A functional expressionparses into a list containing the function name followedby the parsed representations of its arguments. An opera-tional expression parses into a list containing the name ofthe operator followed by the parsed representations of itsoperand. As an example, COS(2/N!) parses into thenested list (COS,(/,2,(!,N))).

In general, this representation is called Cambridgeprefix (as opposed to Polish prefix or ordinary functionalprefix). We are all so accustomed to infix notation thatmost people find mathematical Cambridge prefixtiresome to read, and many people also find it tiresome towrite. However, the parser prevents us from having towrite Cambridge prefix, and the deparser prevents usfrom having to read it, in order to enjoy its great advan-tages as an internal representation. These advantages aremany.

In order for our programs to determine simply and

quickly which transformations to apply to expressions,the programs must be able to easily determine whetherthe expressions are numbers, variables, or more general.If the latter, the program must be able to easily determinethe outermost operator or function name, and easily ac-cess the individual associated operands or arguments. Tckeep the transformation programs fast and compact, thesyntactic rules governing the internal representationshould be few and simple. Moreover, it is sometimes con-venient to regard expressions as data in order to applytransformations to them. At other times it is convenientto regard expressions as programs in order to executethem. Cambridge prefix offers all of these advantages.

For each cycle of interaction, after parsing the input ex-pression, muMATH merely applies the built-in LISP likeEVAL function, then deparses the result for output. Forcomputer-algebra it is appropriate for such an EVALfunction to at least do the following:

• Evaluate numbers and unbound variables asthemselves.

• Evaluate bound variables as the values to whichthey are bound.

• Evaluate a list for which the first element is thename of a function definition as the value obtainedby applying the function definition to the values ofthe other elements in the list.

• Otherwise, the value of a list is the list of its values.

Unfortunately, most LISP EVAL functions implementonly a subset of these rules, leaving undefined the result

PET OWNERS: Creative Software has programs for you!

Household Finance I & II ... $15.00 Seawolf

Pari I: Inputs data on each household expenditure; li:ils. adds, updates. Ultra fast real I

changes or deletes previously input items. Writes da! i to cassette tape, Ihe ships with j

Part II: Reads data tape. Provides monthly and ye illy summaries ill pedo gun; exte

financial data, single category summaries, t\nd graphs a spending profile. si ormg. Uses ui

$10.00 Life

his version ol Lile has.peed pattern generation

Creative Software products are nowavailable at these fine dealers:

PC Computer Computer Forum Germany

10166 San Pablo Ave, 14052 E. Firestone Blvd. Hofacker Verlag

LI Cerrito, California Sante Fe Springs, California fegernseer.strasse IK

I) 815(1 llol/km lienBarney Miller's Marin Computer Center Munchen. Wesl (Inn

232 E. Main St, 70 Skyview Terrace

Lexington, Kentucky San Rafael, California France

S.JV.E.AComputer Shoppe Olson Electronics 20 me de Leningrad

3225 Danny Pk. Sherwood Plaza Rte 4 75008 Paris, France

Metairie, Louisiana Natick, Massachusetts

AustriaMemory Bank Inc. Compulerland BYTE Computer Shi

4128 Brady Si, 4546 El Camino Real 1040 Wieu

Davenport, Iowa Los Alios, California Favontenstrasse 20, /

Many other Creative Software products, including singleand dual joysticks, are available lot the PET. It your local dealerdoesn't carry Creative Software products or program information. write directly to the address below. When placing an

Add $1,50 shipping lor each program ordered. California residentsadd 6 "„ sales tax VISA MASTEKCHARGH accepted. Includecard number and expiration date.

Creative Software

P.O. BOX 4030, MOUNTAIN VIEW, CA 94040

Model DMB-6400 Series dynamic 64k byte RAMS incorporate thefeatures which are standard in the DM-6400 Series and adds thefollowing capabilities:

• ALPHA MICRO, CROMEMCO,and NORTH STAR output portbank select compatible.

• Four (4) 16k byte, functionallyindependent memory banks.

Model DM-6400 Series dynamic 64k memory boards feature IEEES-100 compatible timing and on board transparent refresh.

• 25 MHz on board crystal oscillator

• Memory bank size can be incre-mented to 64k bytes in 16kincrements.

• Eight (8) 64k byte banks of mem-ory per output port.

• Memory selectable and deselec-table in 4k byte increments.

for independent timing.

DMB-6400 and DM-6400 Common Features:

• 4 MHz Z80 operation with no waitstates.

• Tested and bumed-in.

• Low power- 8 watts maximum.

• Reliable, expandable memories.

ONE YEAR GUARANTEE

THE FOLLOWING PRODUCTS ARE AVAILABLE FROM YOUR LOCAL DEALER.

□ DMB-6400/64KRAM

□ DMB-4800/48KRAM

D DMB-3200/32KRAM□ DMB-1 600/1 6K RAM

D DM-6400/64KRAMD DM-4800/48KRAM

□ DM-3200/32KRAMD DM-1600/16KRAM

U.K. & EUROPEAN REPRESENTATIVE:

ABACUS COMPUTERS LTD.62, NEW CAVENDISH STREETLONDON, W1M 7LD U.K.TEL: 01-580/8841 TELEX: 881-3085

AUSTRALIAN REPRESENTATIVE:

COMPUTERLAND OF MELBOURNE555 COLLINS STREETMELBOURNE, VIC3000TEL: 6255B1

MEASUREMENT

systems &. controls

incorporated

867 North Main Street • Orange, CA 92668Telephone: 714/633-4460

Circle 215 on inquiry card.

BYTE Augusl 1979 183

Circle 310 on inquiry card.

TRS-80 LEVEL II AND DOS

COMMAND PROCESSOR COMPROC * "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 programsRENUMBER 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 'GSF'

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 S24.95

REMODEL + PROLOAD Order TS220 at $34.95

GENERAL SUBROUTINE FACILITIES Order TS25D at $24.95

DISK SORT PROGRAM Order TS26D at $34.95Must 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 that TEST best Order 10 ea at $14.95

E=.D«r>CT .=3 Check. VISA. M/C. COD.

|-T-HAbtl computes-^ Calif, residents add 6%

702 Palmdale, Orange CA 92665 17141 637-5016

SI IMIIII „nm if*

A specially designed SF TACTICAL BATTLE GAME foryour PET, TRS-80 or APPLE Computer.

The man called Sudden Smith watched the five blips onhis screen spread out to meet the enemy. Two freightersconverted into something like battlewagons, powerfulbut slow, and three real cruisers: the most powerful groupof warships ever seen near the Promethean system — exceptfor the Stellar Union fleet opposing them. Everyone wascalling it Starfleet Orion, though it existed for only thisday. It was life or death, and, after the object lesson onthe planet Spring, everyone knew it.

STARFLEET ORION is a complete 2 player game system

• rule book • battle manual • cassette

• ship control sheets • program listings

Includes 2 programs, 22 space ship types, and 12 playtestedscenarios. Game mechanics are extremely simple, but playis exciting, challenging, and rich in detail. Specify PET (8K),TRS-80 (Level II, 16K), or APPLE II (16K& 32K) $19.95.

Ask your local dealer or send your check to:

Automated SimulationsDepartment YP.O. Box 4232Mountain View, CA. 94040

California residents please add 6% sales tax

of applying EVAL to an unbound variable or a list whosefirst element is not the name of a function definition. Incomputer algebra, no one would want to quote every in-stance of every unbound variable. It is often desirable towrite subexpressions such as f(x), even though there is nocorresponding function definition named /. Accordingly,most LISP based algebra systems begin by defining analgebraic EVAL function in terms of the built-in LISPEVAL function.

Since muMATH is intended for microcomputers, wedid not want to waste precious space on two near-duplicate EVAL functions so we included the aboveupward-compatible generalizations of the usual LISPEVAL in one EVAL. These generalizations are convenientin other LISP applications, so we would like to see LISPevolve in this direction.

The lexical and syntactic rules appropriate for inputand output of LISP and computer-algebra expressionsalso differ. Many LISP implementations do not directlyaccept special characters such as + as valid names, andLISP scanners do not distinguish between blanks andcommas. Again, we did not want to waste precious spaceon two sets of I/O (input/output) routines, one of whichwould never be employed by users of the computer-algebra system. Accordingly, using assembly language,two semantically similar but lexically and syntacticallydifferent general-purpose list-processing systems wereimplemented: muLISP-77 which implements the tradi-tional LISP lexical and syntatic rules, and muSIMP-77which employs the lexical rules and high-level syntax il-lustrated in the preceding examples. We used muSIMP-77to implement muMATH-79, but muSIMP-77, being a dis-guised version of LISP, is applicable wherever LISP is ap-plicable. We think that beginners are more comfortablewith muSIMP than with LISP, hence they are more will-ing to learn the lovely semantics of LISP, and to ultimate-ly appreciate the Spartan syntactic simplicity of LISP,together with its consistency between program and data.

To illustrate the convenience of Cambridge prefix as aninternal representation, here is an example of how dif-ferentiation could have been implemented in muMATH:

FUNCTION DIF(EXPN, VAR),WHEN EXPN = VAR, 1 EXIT,WHEN ATOM(VAR), 0 EXIT,WHEN FIRST(EXPN = ' + ,

DIF(SECOND(EXPN),VAR)+

DIF(THIRD(EXPN),VAR)EXIT,WHEN FIRST(EXPN)= '* ... EXIT,

WHEN FIRST(EXPN)=LN,

DIF(SECOND(EXPN),VAR)

/SECOND(EXPN)

EXIT,

LIST(DIF,EXPN,VAR)

ENDFUN;

The built-in function named ATOM returns TRUE ifits argument is a number or a name. The built-in func-

184 August 1979 © BYTE Publications Inc

Circle 18 on inquiry card.

Circle 289 on inquiry card.

tions named FIRST, SECOND, and THIRD, respectively,return the indicated elements of the list which is theirargument. The function named LIST takes any number ofarguments returning a list of their values. As indicated, asingle quote is used in contexts where one wishes to pre-vent the parser from seeking operands for a name whichhappens to be an operator.

In simplified results the operators + and * have two ormore operands which have been sorted into a lexicalorder to facilitate collection of similar terms and factors.Consequently the above example would have to use aloop or recursion to march down the list of operands of+ .

For modularity and other reasons, differentiation andmost other mathematical transformations are im-plemented with the aid of a sort of pattern matcher. Thefollowing sections illustrate pattern-matching techniques.

Reduce

REDUCE is a LISP based computer-algebra system im-plemented by Anthony Hearn and his colleagues for avariety of large computers. Currently there are supportedimplementations for the PDP-10, PDP-20, IBM360,IBM370, Univac 1108, CDC Cyber, and Cray-1machines, running under various popular operatingsystems. In its entirety, the system occupies about 400 Kbytes on an IBM370, for which an additional minimum ofat least 50 K bytes is recommended as workspace. Thesystem is modular so that users can save space by omit-ting unneeded packages (eg: 100 K bytes can be saved byomitting the integrator). For those who have access to theARPA computer network, REDUCE is available atseveral sites, including USC-ECL and SU-AI, where ac-counts may be obtainable. REDUCE is also directlyavailable on magnetic tape from Professor Hearn at theUniversity of Utah Computer Science Department in SaltLake City for $100. It has been distributed to over 500sites worldwide. Here is a brief summary of the built-infacilities:

• The system provides single-precision floating-pointarithmetic as well as indefinite-precision rationalarithmetic.

• Unavoidable algebraic transformations and op-tional ones controlled by flags are approximatelysimilar to those of muMATH, except that REDUCEprovides an important additional optional transfor-mation: cancellation of polynomial greatestdivisors from the numerators and denominators ofrational expressions. REDUCE can perform suchsimplifications as the following:

2a2x2 —a2bx—a2b2 —ax3 + axb2—x4+bx3 2ax + ab+x2

a2x2—a2b—ax2—2axb — ab2 — bx2 + b2x

a+b

which might be overlooked by most people.There are some built-in exponential, logarithmicand trigonometric simplifications.Matrices having symbolic expressions as elementscan be added, subtracted, multiplied, divided andraised to integer powers, including inversionThere are special facilities for solving the quan-tumelectrodynamics problems of the high-energyphysics.

EPROM PROGRAMMER — Model H»-2A-79

■:. ■ ■■; ■

&*?f

%*;

■;.;.; :j:i^^^^^^^:''! ■;:^^^;.'.' '■'

SOFTWARE AVAILABLE FOR F-B, 8080, 6800, 8085, Z-80, 6502, KIM-1, 1802, 2650.

EPROM type is selected by a personality module which plugs intothe front of the programmer. Power requirements are 115 VAC,50/60 HZ at 15 watts. It is supplied with a 36 inch ribbon cable forconnecting to microcomputer. Requires 1V2 I/O ports. Priced at$155 with one set of software. Personality modules are shownbelow.

Part No.

Programs

Price

PM-0

TMS 2708

$15.00

PM-1

2704, 2708

15.00

PM-2

2732

30.00

PM-3

TMS 2716

15.00

PM-4

TMS 2532

30.00

PM-5

TMS 2516,2716,

2758

15.00

Optimal Technology, Inc.

Blue Wood 127, Earlysville, VA 22936Phone (804) 973-5482

CROMEMCO 20% DISCOUNT

System III

System 11

System II with 10 Meg Disk

16KRam

NORTH STAR 16% DISCOUNT (or more)

Horizon I — 32K Ram asm

Horizon I — 16K Ram asm

Horizon I — 32K Ram kit

Horizon I to Horizon 2

32K Ram asm

VECTOR GRAPHICS 20% DISCOUNT

Vector MZ-2 (630K disk) 48K Ram

Soroc IQ120

Perkin Elmer Bantam CRT

Intertube II

LA-36

Integral Data IP125

Escon Selectric Interface

NEC 5510 RO Word Processor Printer

IMSAI

Radio Shack

Professional A/R, A/P, Ledger, Payroll, Medical BillingAvailable. We discount TRS 80 Softwareand Structured Systems Software. Most Hardware itemsSend for our catalog — Some prices too low to quote

SARA TECHCOMPUTERS

P. 0. Box 692400 BaseVenice, FL33595

(813)485-3559

List

Our Price

5990

4792

3990

3192

9995

7996

595

480

2099

1763

1899

1595

1849

1553

450

378

659

525

3750

3000

995

790

996

750

995

750

1630

1440

799

699

496

422

2900

2450

15% off

5% off

:al Bill

inq

Software

Microage

Software

vare items

in stock.

Circle 320 on inquiry card.

August 1979 © BYTE Publications Inc 185

There is a high-level surface programminglanguage, which is essentially ALGOL, sweetenedby modern control constructs such as a WHILEloop, REPEAT loop, and CASE statement.Symbolic differentiation and integration are built-in, and the latter is significantly more powerful thanthe muMATH integrator, which merely uses a fewelementary rules such as:

j(u + v)dx — Judx + jvdx,Jcudx — cjudxif c = constant,

jx"1 — In x,

\xa —• —— if a = const and =£ — 1,

constant,

Jsin(x)dx — cos(x)

In contrast, extensive greatest-common-divisor,factorization, and linear-equation-solving supportroutines permit REDUCE to use the powerful newRisch-Norman integration algorithm. For a largeclass of integrands and solution basis functions, thisalgorithm is guaranteed to determine a closed-form

solution if one exists, otherwise terminating with aguarantee that one does not exist.• REDUCE provides a convenient pattern matcher,which provides a natural means for users to imple-ment many extensions. To have the systemautomatically replace every subsequent instance ofmc2 by E, we can merely enter the rule:

LETM*C**2 = E;

Thereafter, an expression such as 5*M*C**3 + 8 wouldbe replaced automatically by 5*E*C + 8. There is also amechanism for letting pattern variables represent ar-bitrary subexpressions. To make logarithms of allpowers, products and quotients can be expandedautomatically, we can enter the rules:

FOR ALL X, Y LET

LOG (X**Y) = Y*LOG(X),LOG(X*Y) = LOG(X) -I- LOG(Y),LOG(X/Y) = LOG(X) - LOG(Y);

Thereafter an expression such as A+ 2* LOG(B) —LOG(E**A*B**2*C) would simplify to -LOG(C). Final-ly, there is a mechanism for imposing extra prerequisitesto replacements. To make the above LOG rules depen-dent upon the value of an option variable, we couldchange the first line to:

FOR ALL X,Y SUCH THAT LOGEXPAND > 0

New North Star Software

• DOS+ $35Enables any program to execute all North StarDisk and/or Meca Tape commands. Allowsbatch command list and more.

• PRO-TYPE WORD PROCESSOR $75Easy to learn. Combines text input, editing andprinting in one program. Features right marginjustification, tabs, paging, underlining,relocation of text blocks, etc. Requires only 8Kof memory. Manual alone, $25.

• GUIDE TO BASEX $33A new interactive compiler similar to BASICfor 8080-type microcomputers (Z-80, 8085).Executes programs up to 10 times faster thanequivalent programs while requiring about halfthe memory space. Features include: arrayvariables; string manipulation; arithmeticoperations on signed 16 bit intergers; andversatile I/O communication functions.Manual alone $8.

• BASEXTAPE and DISK GUIDE $35Allows your BASEX programs to access up tofour North Star Disk and/or Meca Tape drives.All operations can be executed from thekeyboard. Manual alone $20.00.

Specify:

North Star Disk/Meca Tape/OtherSend for Free LiteratureINTERACTIVE MICROWARE INC.P.O. Box 771 _ m-

State College, PA 16801 ! ■ ■ ■ Z

(814)238-8294 I til"

186 August 1979 © BYTE Publications Inc

Circle 179 on inquiry card.

Most of REDUCE is written in a modular subset ofitself called RLISP. In turn, RLISP is bootstrapped fromstandard LISP, which is a subset of many LISP implemen-tations. RLISP has the semantics of LISP clothed in thesyntax of sweetened ALGOL. RLISP is applicable not on-ly to computer algebra, but also wherever LISP is ap-plicable, and I have found students far more receptive toLISP if they are introduced to it via a surface languagesuch as RLISP.

REDUCE was originally inspired by a desire to performsymbolic high-energy-physics computations which arefar too arduous to do manually. Consequently, the inter-nal representations of expressions reflect a major concernwith speed and storage efficiency for large expressions:

• In applied math, the most numerous operations invery large expressions are usually addition, subtrac-tion, multiplication, and exponentiation withpositive integer exponents. There is frequently, atmost, one division operation present, because ex-pressions are often put over a commondenominator. If fractional powers, exponentials,logarithms, trigonometric functions or other irra-tional operations occur, they may usually be reduc-ed to numerous repetitions of a few unnesteddistinct irrational functions having trivialarguments such as x, x + y or 2irx. Thus,polynomial operations account for most of the timeand space. This suggests using a data structureoriented toward polynomials, thereby saving space

and time by making the operators +, X , and t im-plicit. This usual nature of large expressions alsosuggests storing irrational subexpressions uniquely,and treating them as additional variables withrespect to any polynomial operations involvingthem.

• As the number of variables and their maximumdegrees increase, a multivariate polynomial musthave zero as a sharply increasing portion of itspossible terms, in order to fit the polynomial intothe computer memory. Moreover, the fit is possibleonly if the internal representation takes advantageof this sparsity. In general, we can avoid wastingspace on intermediate-degree terms which are zeroonly if we explicitly store the exponents of thenonzero terms.

• Many multivariate polynomial algorithms are mostconcisely stated as univariate algorithms, recursive-ly involving coefficients which are polynomials inat least one less variable.

• Classic multivariate polynomial division requiresthat one variable be distinguished as the leadingvariable and that the terms be accessible in decreas-ing order of degree.

REDUCE uses Cambridge prefix for some purposes,but REDUCE internally represents polynomials in a stan-dard form. A standard form is defined as an element fromthe underlying coefficient domain or as a leading termdotted with a reductum, where the latter is recursively

The

ftlQQ fiUHl

%9 l\^\^ S ELECTRONICS

An S-100 Bus Adapter/Motherboard

fortheTRS-80

plus a whole lot more!!!

feO^

i S-100 BUS INTERFACEi 6 SLOT MOTHERBOARD

The 8100 allows a Radio Shack TRS-80 computer to beinterfaced to th<- p.i[njl;ii S luii Bus for memory expansionand extended I/O capabilities. Fur example, you can noweasily add more memory, (loppy disc systems, PROMboards, printer interfaces, multi-purpose I/O boards, ACdevice controllers, and a whole host of other varied periph-

The 8100 has its own built-in 6 slot motherboard whichincludes our unique card guide system which keeps theboards in their places.

The 8100 has support circuitry and sockets for eight16K dynamic HAM chips allowing you to expand the mem-ory of your TRS-80 by 1SK without having to buy any S-100RAM boards.

• SERIAL RS232/20ma I/O

• RARALLEL INPUT AND OUTPUT

• SPACE FOR 16K DYNAMIC RAM

• CAN USE LEFT OVER 4K CHIPS

• LOW COST- PRICES START AT $185*

• AVAILABLE IMMEDIATELY

If you purchased an expansion memory kit for TRS-80you could be left with eight 4K RAM chips and nowhere toput them! Wfell, they can go in the RAM sockets instead?That's right, you can use either 4K or 16K chips and ad-dress them anywhere you like.

The 8100 has a full RS232/20 ma serial interface who'sfeatures include: RS'232 and 20 ma current loop interface,software programmable baud rate from DC to 56K baud,software programmable modem control lines, on boardDB-25 connector and much more.

The 8100 also has an 8 bit parallel input port andan 8 bit parallel output port. Both are latched, have bothpositive and negative strobe inputs and outputs and haveplenty of drive capability.

PRICES START AS LOW AS $185* (S-100 BUS INTERFACE ONLY)

h"uh]

I ELECTRONICS

1429 Maple St.

San Mateo, CA

94402

(415) 573-7359

CALL OR WRITE FOR COMPLETE PRICINGINFORMATION AND MORE DETAILS

DEALER INQUIRIES INVITED

s. RAM support.

•Extra S-100 aI/O circuitry optional.USA DOMESTIC PfllCE ONLY.

fiUS)

ANNOUNCESTHE

I Fl Ff-TRuNlf-e. AN S-100 BUS

■ lUMHUNU adapter/motHERBOARDFOR THE TRS-80*

MINI-SIZE!MINI-PRICE!

MINI-8100

but MAXI-PERFORMANCE!

HUH Electronics' 8100 is the establishedleader in S-I007TRS-80 interfaces, running re-liably since November 1978 and giving youthe most features for your dollar. But somefolks don't need all the 8100's versatility orwant something more compact.

So we created the MINI-8100. The MINI-8100 has the same proven reliable S-100 Businterface circuitry as it's big brother coupledwith a 4 slot shielded motherboard. It con-nects to the TRS-80 or to the expansion inter-

face and opens up the vast world of S-100 Busproducts to the TRS-80 owner.

For those of you who already own an S-100mainframe or motherboard, the MINI-8100may be purchased without (he built-inmotherboard. (MINI-8100S). Just plug it inand go!

The MINI-8100 has the same high quality asall HUH Electronics products—easy assem-bly, fully socketed, solder mask and silkscreen component legend, comprehensivemanual and design excellence that speaks foritself.

PRICES

MINI-8100 KITMINI-8100 ASMMINI-8100S KITMINI-8100S ASM

- includes all parts and one S-100 connector

■ assembled and tested, includes four S-100 connectors

- S-100 sized board, plugs into mainframe

- same as above, but assembled and tested

-$115-$155

-$ 95

-$125

fiUHl

Z ELECTRONICS

1429 Maple St.

San Mateo, CA

94402

(415) 573-7359

i Radio Shack® product.

ORDERING INFO: The MINI-8100 is availa-ble from leading computer dealers or factorydirect. Please include $4 for shipping andhandling. CA residents include f>% sales tax.We accept VISA or Mastercharge or we canship COD.

USA DOMESTIC PRICES ONLY.

DEALER INQUIRIES INVITED

Circle 168 on inquiry card.

Circle 169 on inquiry card.

August 1979 © BYTE Publications Inc 187

Circle 95 on inquiry card.

CP/M

®

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.

• $1 OO-Diskette and Documentation.

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

• $75-Diskette and Manual.TEX™ TEXT FORMATTER:

• Powerful text formatting capabilities.

• Text prepared using CP/M Editor.

• $75-Diskette and Manual.DESPOOL™:

• Background print utility.

• Use with CP/M (version 1.4)

• $50. Diskette and Manual.

1 DJGJTflL RESEARCH

P.O. Box 579 • Pacific Grove, California 93950(408) 649-3896

®

TRS-80 SOFTWARE32K with 2 DISK DRIVES

PAYROLL SYSTEM $235

Includes: a) File Maintenance

b) Payday Entries

c) Earnings Record

d) Payroll Register

e) Write Pay Checks

f) Write Other Checks

Handles up to 300 employees per diskette.Automatically calculates FICA, FED. TAX,UNEMPLOYMENT and much more.

ALSO AVAILABLE

ACCOUNTS RECEIVABLE $195

ACCOUNTS PAYABLE $195

INVENTORY CONTROL with

BILLING & ACCT'S REC $550

MANUALS $29.95/ea.

CUSTOM PROGRAMS & OTHERS

CAI

1st Security Bank Bldg.

3306 W. Walnut, Suite 507

Garland, TX 75042

PHONE: (214)272-3211

With money order or certified check, orders shipped within

24 hours.

defined as a standard form of lower degree in the mainvariable of the leading term. The underlying coefficientdomain can be indefinite-precision integers, indefinite-precision rational numbers, integers modulo somemodulus, or single-precision floating-point numbers. Aleading term is defined as a leading power dotted with aleading coefficient, where the latter is recursively definedas a standard form not containing the main variable ofthe leading power. A leading power is defined as the mainvariable dotted with the leading degree, where the latteris a positive integer. In Backus-Naur form, we can sum-marize this definition as follows:

standard form :: = domain element

:: = LT standard form. + RED standard formRED standard form :: = standard formLT standard form

:: = LPOW standard form .* LC standard formLC standard form :: = standard formLPOW standard form:: = MVAR standard form.** LDEG standard form

I have also taken the opportunity to introduce theREDUCE infix constructor macros named . + , .*, .**,which clearly indicate the implied operator, but are alldefined as merely the LISP CONS operation. Similarly, Ihave introduced the mnemonic prefix REDUCE prefixselector macros named LT, RED, LPOW, LC, MVAR,and LDEG, which are respectively defined as the LISPfunctions CAR, CDR, CAAR, CDAR, CAAR, andCDAAR.

With this representation and macros, the REDUCEmultivariate polynomial addition function definition isextraordinarily compact and elegant — an ideal in-termediate level example of reductum recurso. Listing 1below shows this reduce function, expressed in RLISP.

SYMBOLIC PROCEDURE ADDF(U,V);IF ADDITIVEIDENTITY U THEN VELSE IF ADDITIVEIDENTITY V THEN UELSE IF DOMAINP U THEN ADDD(U,V)ELSE IF DOMAINP V THEN ADDD(V,U)ELSE IF LPOW U = LPOW V THEN

ADDFF(ADDF(LC U, LC V),

ADDF(RED U, RED V ))ELSE IF ORDPP(LPOW U, LPOW V) THEN

LT U . + ADDF(RED U, V)ELSE LT V . + ADDF(U, RED V);

SYMBOLIC PROCEDURE ADDD(D,V)IF ADDITIVEIDENTITY V THEN DELSE IF DOMAINP V THEN ADDDM(D,V)ELSE LT V . + ADDD(D, RED V);

SYMBOLIC PROCEDURE ADDFF(F1, F2);IF ADDITIVEIDENTITY Fl THEN F2ELSE IF ADDITIVEIDENTITY F2 THEN FlELSE LPOW U .* Fl .+ F2;

In listing 1, use has been made of the ADDITIVE-IDENTITY prefix recognizer macro which tests for azero, the DOMAINP prefix recognizer macro which tests

188 August 1979 © BYTE Publications Inc

Circle 198 on inquiry card.

for the underlying coefficient domain, the ORDPPpredicate which tests the relative order of two leadingpowers, and the ADDDM function which adds domainelements. Since the syntax is essentially ALGOL, forwhich descriptions are widely available, we leave theserious reader to ponder this example, moving on now toanother computer algebra system.

MACSYMA

MACSYMA is a very large computer-algebra systemimplemented by the Mathlab group at the MITLaboratory for Computer Science in Cambridge MA.The system will probably be made available for DECPDP-10 computers in a year or two.

In its entirety, excluding the library of user-submittedroutines, MACSYMA occupies 400,000 36 bit words onthe PDP-10. The system is modular, starting with anucleus of 100,000 words. As is perhaps implied by itsname, MACSYMA provides more built-in math opera-tions than any other computer-algebra system. Here aresome highlights:

• The system provides arbitrary-precision floating-point as well as indefinite-precision arithmetic.

• Besides the usual unavoidable algebraic transforma-tions, there are numerous optional automatic onescontrolled by flags or which are employed by ap-plying specific functions to expressions. The mostsophisticated of these transformations includecancellation of polynomial greatest commondivisors, partial-fraction decomposition, nestedpolynomial decomposition such as completion ofpowers, and factorization. For example, MAC-SYMA can perform the factorization:

3w2z6 + 2w3z4 + 114xy2z3 - 10w2y2z3 +45w2x3z3 - 3w2z3 + 76wxy2z - 2w3z - 380xy4 +1710x4y2 + 10w2y2 - 45w2x3 -(3z2 + 2wz - 10y2 + 45x3)(w2y3 + 38xy2 - w2).

• There are numerous built-in transformations forfractional powers, exponentials, logarithms,trigonometric functions, inverse trigonometricfunctions, hyperbolic functions, and inverse hyper-bolic functions. There are also transformations forsome higher transcendental functions such as the er-ror, gamma, beta, zeta, and psi functions.

• There is built-in matrix algebra on matrices havingunspecified elements and unspecified size.

• There are special facilities for series analysis ofperiodic phenomena such as orbits.

• There is a high-level surface programming languagewhich resembles ALGOL, with evidence of meta-LISP influence.

• There is a powerful pattern-matching facility andan extendable Pratt parser.

• Symbolic differentiation and integration are built-in. The latter employs a powerful Risch algorithm,among other techniques. There is also a distinctprogram for definite integrals, which employs con-tour integration and other techniques besides in-definite integration.

Circle 378 on inquiry card.

Expand yourTRS 80.

Save $100.

Meet the Vista V80 Mini Disk System. The perfect wayto upgrade your TRS-80* system. Inexpensively.(Our $395.00 price is about $100.00 less than themanufacturer's equivalent.) Here's how it can help you.

23% more storage capacity. Useable storagecapacity is increased from 55,000 to 65,000 bytes ondrive one.

8 times faster. While electronically equal to the TRS-80 Mini-Disk system, track-to-track access is 5msversus 40ms for the TRS-80.

Better warranty. The V80 carries a 120 day warranty -longer than any comparable unit warranty available.

The Vista V80 Mini Disk System comes complete withMinifloppy disk drive, power supply, regulator boardand case. And it's ready to run - simply take it out of thebox, 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.

theULTIMATE inCHEAP VIDEO

BOOK & KITONLY $42.95

Don Lancaster's "Cheap Video "concept allows almostunlimited 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

C requires low-cost option modules)

* Works with 6502 , 6800 and other micros.

SPECIAL OFFER: Buy the Kit Cupper case alpha-numeric option included) & get the Book at 1/2 price.

.ELECTRONICS, 0EPT.8-B, 1020 W. WILSHIRE BLVD.. OKLAHOMA CITY. OK 73116

I'm Sold. PLEASE RUSH C ) SEND FREE CATALOG

C ) TVT-6&8 KU& Cheap Video Cookbook $42.95 (enclosed)C ) TVT-6 5/8 Kit only Cbook required for assembly]-$39.95name:

address:,city:

, state:

zip:

ELECTRONICS DEPT.8-B, 1020W. WILSHIRE BLVD.. OKLAHOMA CITY, OK 73116

Circle 297 on inquiry card.

August 1979 © BYTE Publications Inc 189

Circle 327 on inquiry card.

6800 DEVELOPMENT SOFTWARE

An integrated applications development and execution system.

SDOS

All devices interrupt-driven including typehead. Providesdevice independent, byte addressable random files. Supportsany mixture of floppy or hard disk drives up to 2.5 billion bytes.Sector read-ahead and buffer pool enhance application perfor-mance. Flexible: Currently runs on 7 manufacturers' systems,using 10 different drive/controllers, including mini-floppies andhard disk.

BASIC COMPILER

For speedy business applications. 10 digit BCD; random accessto variable size records; long variable names; formatted out-put; if-then-else; error trapping. Field proven for over 2 years.

EDIT

A powerful text editor with change, delete, replace commands.Automatic display of modification or context changes; macrofacilities for complex or repetitive editing.

ASM

2 pass conditional assembler; 32 character labels; symbol tabledump and cross-reference; error cross-reference; extensivearithmetic and listing control.

IDB

Single-step, multiple, real time breakpoints; memory dump;multiple display modes. No special hardware needed.

Over 500 pages of documentation to match this proven soft-ware.

Complete package: $760.00

Also (not including SDOS) available for SWTP, Exorcisor, SSBand MSI DOS.

Write for free catalogue. Sizable distributor discounts.

p-PTN SOFTWARE DYNAMICS

3C

D

2111 W. Crescent Avenue, Suite C

Anaheim, CA 92804

(714)635-4760

. PET 2001 • PET 2001 • PET 2001 • PET 2001 • PET 2001 • PET 2001 • PET 2001

i s

CM "*

? Programmer's Guides §i for the PET™ 3

TIS

WORKBOOKS FOR THE COMMODORE PET 2001

Getting Started with Your PET WB-1 $4 00

Covers the fundamentals of PET BASIC: calculatorand program mode, data input and output, datarepresentation, program storage on the cassette.

PET String and Array Handling WB-2 $3 85

Covers string and substring search, concatenation,replacement and manipulation.PET Graphics WB-3 $4 95

Covers use of cursor control and special graphicssymbols to draw plots, histograms, and sketches.PET Cassette I/O WB-4 $4 95

Covers OPEN, CLOSE, string and numeric data files.Miscellaneous PET Features WB-5 S3 95

Covers the clock, random number generator, upperand lowercase alphabetic characters, saving memoryspace, etc.

PET Control and Logic WB-6 $3.95

Covers IF. GOSUB, logical operations, and ON X.

Add $1.50 for shipping and handling.

TIS

P.O. Boi S21

Los Alamos, NM 17544

Money back guarantee

Dealer

Inquiries

Invited

We also sell PET Software. Write for details.

PET is a trademark of Commodore Business Machines

e PET 2001 • PET 2001 • PET 2001 e PET 2001 • PET 2001 • PET 2001 e PET 2001

There is a powerful function which employsL'Hospital's rule and other techniques to computerlimits.

There are powerful functions for determining in-finite and truncated generalized power-series expan-sions of expressions.

Laplace transforms and their inverses are built-in.There is a function which uses a variety of tech-niques to seek closed-form solutions to first-orderand second-order ordinary differential equations.There is a built-in function which uses the powerfulnew Gosper algorithm to find closed forms for sumswith indefinite or infinite summations limits. Forexample, the function is able to make the transfor-mation:

j44i 2(n+l)(63n4-r-112n3-r-18n2-22n+3)4n

(2,i)

693(2nn)

2231

• Equations are legitimate expressions. Two equa-tions or an equation and a nonequation can be ad-ded, multiplied, etc, and there is a powerful func-tion named SOLVE which uses a variety of tech-niques to seek solutions to one or moresimultaneous linear or nonlinear equations. SOLVEis able to determine, as exact symbolic expressionsinvolving c, the four values of x which satisfy thequartic equation:

x4 = ex + 1.

As another example, SOLVE is able to determinethat the exact solutions for the two simultaneousnonlinear equations:

z4 -f- x2z2 + xz2 + y2 + x3 = 2yz2 + x2y + xy,yz2 + 2xyz + xy = 2xz3 + 2x2z + y2,

are the curve (x = r, y = s2, z=r) together with thesurface (x=r, y = s2 + r, z = s), where r and s are ar-bitrary parameters.

• There is an extensive user-contributed programlibrary which includes packages for vector and ten-sor analyses, ordinary and variational optimiza-tion, solution of integral equations, highertranscendental functions, and dimensional analysis.

Most of MACSYMA is written in MACLISP, which isa particularly elaborate version of LISP also developed atMIT. MACSYMA uses several internal representations,including Cambridge prefix and a recursive polynomialrepresentation somewhat like that of REDUCE. The ma-jor difference from the REDUCE polynomial representa-tion is that in MACSYMA the variables are also implicitand stored separately, only once per completepolynomial. This usually saves additional space in the ex-pressions. Although the resulting algorithms aresomewhat faster when combining polynomials havingthe same variables, there is some awkwardness oroverhead involved in a preliminary padding phase whencombining polynomials that do not have identicalvariables.

190 August 1979 © BYTE Publications Inc

Circle 370 on inquiry card.

SCRATCHPAD

SCRATCHPAD is a very large computer-algebrasystem implemented at the IBM Thomas J WatsonResearch Center. It is available there on an IBM 370, andit is available from other IBM corporate sites viatelephone. Regrettably, this fine system has not yet beenreleased to the public, but it is discussed here because ofits novel features.

In its entirety, the system occupies about 1600 K byteson an IBM 370 with virtual storage, for which an addi-tional minimum of 100 K bytes is recommended forworkspace. The variety of built-in transformations cur-rently lies between that of REDUCE and MACSYMA.However, each of the three systems has features thatnone of the others possess, and one of these features maybe a decisive advantage for a particular application. Hereare some highlights of the SCRATCHPAD system:

• The system provides single-precision floating-pointarithmetic as well as indefinite-precision rationalarithmetic.

• The built-in unavoidable and optional algebraictransformations are approximately similar to thoseof MACSYMA.

• The built-in exponential, logarithmic, andtrigonometric transformations are approximatelysimilar to those of REDUCE.

• Besides built-in symbolic matrix algebra, APL likearray operations are included, and they are evenfurther generalized to permit symbolic operations

of nonhomogeneous arrays and on arrays of in-definite or infinite size.

• Symbolic differentiation and integration are built-in, with the latter employing the powerful Risch-Norman algorithm.

• There is a particularly elegant built-in facility fordetermining Taylor series expansions.

• There is a built-in SOLVE function capable of deter-mining the exact solution to a system of linear equa-tions.

• There is a powerful pattern-matching facility whichserves as the primary mechanism for user level ex-tensions. The associated syntax is at a very highlevel, being the closest of all computer-algebrasystems to the declarative, nonprocedural notationof mathematics. To implement the trigonometricmultiple-angle expansions, we can merely enter therewrite rules:

cos(n*x) = 2*cos(x)*cos((n — l)*x) —

cos((n —2)*x), n in (2,3,. . .), x arbsin(n*x) = 2*cos(x)*sin((n — l)*x) —

sin((n —2)*x), n in (2,3,. ..), x arb

Then, whenever we subsequently enter an expres-sion such as cos(4*b), the response will be a cor-responding expanded expression such as:

8 cos4(B) - 8 cos2(B) + 1

Omikron transforms TRS-80*into a powerful business system.

STANDARD DRIVES 8" Drives give you 5times the speed and 3 times the storage ofyour mini drives! Our system provides astandard Shugart interface so you can useeither your 8" drives or ours. Omikrondrives are enclosed in an attractive metalcabinet, and include a power supply.

SOFTWARE CP/M* is the most popularoperating system for microcomputers. Butmany high-level languages and advancedbusiness programs cannot run with thespecial CP/M* designed exclusively for theTRS-80* The Omikron MAPPER withstandard CP/M* allows you to expand yoursoftware capability to go beyond the fewavailable TRS-80* compatible packages.TRS-80* with MAPPERout-performs systemscosting $1000more

The MAPPER I and MAPPER II are plug-in modules. They don't require any circuitchanges, are easy to install, and they don'tinterfere with the normal operation of yourTRS-80? All your original software, includ-ing Level III BASIC will still run properly.Omikron products require 16K LII BASICand the TRS-80* Expansion Interface.

* • •

MAPPER I is a memory management unitwhich adapts your TRS-80* to run stan-dard CP/M* Versions for both 5" and 8"drives are available. The package includesCP/M* software on 5" or 8" diskette, anddocumentation. 5" unit, $169. 8" unit, withadapter cable, $199.

MAPPER II includes the MAPPER I pack-age plus a disk adapter module whichallows both 5" and 8" drives to run on thesame cable. Drive selection is under soft-ware control to permit easy file transferbetween the drives. With cable, $249.CONVERSION -If you purchase MAP-PER I or II and plan to use only mini-drives, Omikron will transfer CP/M* filesfrom 8" diskette to a 5" This allows you torun software previously available to only8" drive owners. $25 per mini-diskette.

DRIVE - 8" drive, $849. Additional drive,$695. WARRANTY- 1 year on boards;90 days on drives. VISA/MasterChargeaccepted. Prepaid orders given top priority.

*CP/M is a TM of Digital

Research. TRS-80 is

a TM of Tandy

Corporation.

Circle 287 on inquiry card.

August 1979 © BYTE Publications Inc 191

Thus, programs resemble a collection of math for-mulae much as they would appear in a book or ar-ticle.

• SCRATCHPAD has a particularly powerful yeteasily used mechanism for controlling the outputformat of expressions. For example, the user cansperify that an expression be displayed as a powerseries in x, with coefficients which are factored ra-tional functions in b and c, etc. For large expres-sions, such fine control over the output may meanthe difference between an important new discoveryand an incomprehensible mess.

This generalized recursive format idea is so natural andeffective that SCRATCHPAD is now absorbing the ideainto the internal representation. A study of thepolynomial additional algorithm in the previous sectionreveals that it is written to be applicable to any coefficientdomain which has the algebraic properties of a ring. Thecoefficients could be matrices, power-series, etc. Thatcoefficient domain could in turn have yet another coeffi-cient domain, and so on. With a careful modular design,packages to treat each of these domains can bedynamically linked together so that code can be sharedand combined in new ways without extensive rewritingand duplication. Then not only the output, but also theinternal computations can be selected most suitably for aparticular application.

For further information about SCRATCHPAD, con-tact Richard Jenks at the IBM Thomas J Watson ResearchCenter, Yorktown Heights NY 10598.

The Future

If the preceding sections have whet your appetite formore information about computer algebra, try some ofthe survey articles, collections of articles, and relevantbooks listed in the bibliography. Also, annual member-ship in the ACM Special Interest Group on Symbolic andAlgebraic Manipulation costs a mere $2.50 for students,$5 for other ACM members, or $8 otherwise. Member-ship includes a subscription to the SIGSAM Bulletin,which contains the latest information about relevantmeetings, reports, and developments.

Computer algebra is increasingly available on a widevariety of processors ranging in size from the Intel 8080microprocessor to the Cray 1 supercomputer. Within ashort while computer algebra should be economicallyand conveniently accessible to most engineers, scientists,mathematicians, students, and hobbyists. Thiswidespread availablity will have a profound effect onresearch utilizing applied math, math education, com-puter education, and recreational math. Consider thefollowing:

• How frequently approximate numerical computa-tions are employed without first checking to see if amore informative analytical solution is obtainablewith the help of computer algebra.

• How many mistakes in manual analytical analysescould be caught by checking the derivations withcomputer algebra.

• How little of elementary-school through universitymath education is concerned with floating-pointarithmetic.

• How much of this education is concerned with thekind of arithmetic and symbolic transformationsprovided by computer algebra, or concerned withtheorem proving, which is especially well supportedby other LISP programs.

• How dramatically computer algebra demonstratesthe utility of LISP like languages, providingnumerous well-motivated examples for teachingsuch languages.

• How much more students and enthusiasts are in-trigued by artificial intelligence and game playingapplication of computers than by accounting andfloating-point scientific applications.

The conclusion is inescapable: computer algebra andLISP like languages provide an ideal first exposure tocomputer programming, and are an invaluable compo-nent of scientific programming skills. ■

Bibliography

1. Aho, A V, Hopcroft, J E, and Ullman, J D, The Design andAnalysis of Computer Algorithms, Addison Wesley PublishingCo, 1975.

2. Borodin, A, and Munroe, I, The Computational Complexity ofAlgebraic and Numeric Problems, American Elsevier, 1975.

3. Brown, W S, and Hearn, A C, "Applications of SymbolicAlgebraic Computation," Comp Phys Comm, (forthcoming).

4. Communications of the ACM, August 1966.

5. Communications of the ACM, August 1971.

6. Jenks, R, (editor), Proceedings of the 1976 ACM Symposium onSymbolic and Algebraic Computation, ACM Inc, 1976.

7. Journal of the ACM, October 1971.

8. Knuth, D E, The Art of Computer Programming, Volume 1, BasicAlgorithms, Addison Wesley Publishing Co, 1967.

9. Knuth, D E, The Art of Computer Programming, Volume 2,Seminumerical Algorithms, Addison Wesley Publishing Co,1968.

10. Petrick, S R (editor), Proceedings of the Second Symposium onSymbolic Manipulation, ACM Inc, 1971.

11. Proceedings of 1974 Eurosam Conference, ACM SIGSAMBulletin 8, August 1974.

12. Proceedings of the 1977 MACSYMA Users Conference, NASACP2012, June 1977.

13. Proceedings of the Second MACSYMA Users Conference, MITLaboratory for Computer Science, June 1979.

14. Proceedings of the 1979 Eurosam Conference, Springer-Verlag,(forthcoming).

15. SI AM Journal on Computing, June 1979.

16. The Soft Warehouse, POB 11174, Honolulu HA 96828,distributes the author's muMATH-79 source code free to thosewho obtain muSIMP-77. Object listings of the latter or ofmuLISP-77 cost $85, and a machine readable version costs anadditional $95. Primers and reference manuals are availableseparately for each of these systems at a cost of approximately$0.10 per page.

192 August 1979 © BYTE Publications Inc

Business

&Application

SoftwareAvailable

• Client Billing

• A/R • A/P

• Gen.Ledger

• Inventory

• Payroll

• Mailing List

• File Handlingfor

TRS-80 APPLE

&

OTHERS

Write for Details

<$M4H

%H

TRS-I

DESCRIPTION

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

• 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 VERSION 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 NIM 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-8010% 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

PROGRAM

GALACTIC BLOCKADE RUNNER

SCI-FI GAME SAMPLER

R/T LUNAR LANDER

MICRO-TEXT EDITOR

OTHELLO III

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

N

•vm

H

>

•er*m

•

•

•

$ 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

&

o

o

CD

CD

o

o

CD

\BS ' \_

AVAILABLE FROM THESE FINE MICRO COMPUTER DEALERS

CAPITOL COMPUTE* SYSTEMS3)96 EL CAMINO AVESACRAMENTO CA 95821

IRS 80 SOFTWARE EXCHANGE17 BRIARCLIFF DR.MILFORD NH 03035

OP AMP TECH BOOKS1033 N. SYCAMORE AVELOS ANCLES CA 90038

COMPUTER CABLEVISION, INC26I7 42NDST. NW 12WASHINGTON DC 20007

KENNEDY SYSTEMS74 BROAD ST.LYNDONV1LLE VT 03831

ADVANCED COMPUTER PRODUCTSI3I0B L BVMKOBISANTA ANA CA 9270J

HOBBY WORLD ELECTRONICS19333 BUSINESS CENTER DR. 16NORTHR1DGE CA 91324

AUGUST AUTOMATION28 MILK ST.WESTBORO MA 01381

THE CPU SHOP

39 PLEASANT ST.CHARLESTOWN MA 02129

.14 J ELECTRONICS LTD

28 COLLINGTON AVE.

BEXHILL ON-SEA. E. SUSSEX, ENG.

COMPUTER VILLAGE931 SW 87TH AVE.MIAMI FL 33174

L. C. SALES

100 HINCHEY AVE. 1705

OTTAWA. ONT-, CAN. KIY4L9

Circle 202 on inquiry card.

BYTE August 1979 193

BYTE's Bogs

Marsport, Here I Come

Delmer Hinrichs hasfound several correctionswhich should be made to"Marsport, Here I Come"(April 1979 BYTE, page 84):

• page 90, step 4 should be"x < y?" Since there isno "x < y?" step avail-able on the HP67/97,users could probably cor-rect this.

• page 90, step 25 shouldbe "ST I." Since there isno "ST 1" (only

"STO 1"), this is probablycorrectable by users.

• page 90, steps 119 and120 must be reversed.Users might be able tofigure this out by notingother similar conversions.

• page 92, step 182 shouldbe "—x — " (print/pause),not "X" (multiply). This

could probably befigured out from the pro-gram operating instruc-tions and flow diagram.In any case, if you gethere, you're going tocrash.• page 92, step 204 shouldbe "GSB C," not "GSBc". This error isdisastrous, as it causesthe spaceship tomaterialize at the centerof Mars.

Don't Share Your Soap

An acronym was wronglyinterpreted in "History ofComputers: The IBM 650"by Keith S Reid-Green(March 1979 BYTE, page238.) The name of the SOAPassembler program is pro-perly derived from thephrase "symbolic optimal

assembly program," not"SHARE optimum assemblyprogram," as was stated.Thanks to Leo Walder ofGreenbelt MD for pointingthis out.

A Bug on the Beam

There was a bug in thelabeling of figure 10 on page49 of Steve Ciarcia's CircuitCellar article "Communicateon a Light Beam" (May 1979BYTE). The center tappedtransformer should havebeen labelled as 24 V insteadof 18 V.

Tic Tac Bug

Delmer Hinrichs hasdiscovered a small bug inthe program for "Tic-Tac-Toe: A Programming Exer-cise" (May 1979 BYTE, page196). Line number 340should end with 3,2,5,7,9rather than 2,3,5,8,9.

In addition, BASICs otherthan TDL 8 K might have towrite:

230 RANDOM

instead of:

230F = RND(-1)

to initialize the randomnumber generator. Lines 465and 570 might have RND(l)replaced with RND(0) togive a random number be-tween 0 and 1.

A Bug in the Field

John P Costas has inform-ed us that several errorscrept into listing 1 of "Cryp-tography in the Field" (April1979 BYTE, page 145). Thelocations and the correctcode are given below.

Location

Code

70

STO-5

90

STO-8

111

STO-9

122

—

178

STO-3

from Computer Headware... the Self-Indexing Query System

for your Apple II, North Star, or CP/M machine

Distributed by:

• Information Unlimited / 219-924-3522P.O. Box 8372. Merrilhrille, Indiana 46410

• Lifeboat Associates / 212-580-0082 (CP/M model only)2248 Broadway, Suite 34, New York City 10024

• Structured SystemsGroup, Inc. / 415- 547 15675208 Claremant Avenue, Oakland, California 94618

194 August 1979 © BYTE Publications Inc

Circle 236 on inquiry card.

Event Queue

AUGUST 1979

August 1-3Microcomputer Applica-tions, Southern TechnicalInstitute, Marietta GA. Theemphasis of this seminar willbe on the applications ofmicrocomputers in industry.Software, hardware and in-terfacing techniques will bediscussed. Contact DrRichard L Castellucis,Southern Technical Institute,Electrical EngineeringTechnology Dept, 534 ClaySt, Marietta GA 30060.

August 6-8Pattern Recognition andImage Processing, HyattRegency Chicago O'Hare,Chicago IL. This conferenceis sponsored by the MachineIntelligence and PatternAnalysis Committee of theIEEE Computer Society. Theprogram will consist of sub-mitted and invited papers,and a large trade show ofgraphics and image process-ing equipment. ContactPRIP 79, POB 639, SilverSpring MD 20901.

August 6-10SIGGRAPH '79, Chicago IL.This sixth annual conferenceon computer graphics willfeature tutorials, technicalsessions and an exposition ofstate-of-the-art computergraphics and image process-ing equipment. ContactMaxine D Brown, SIG-GRAPH 79 Exposition,Hewlett-Packard, 19400Homestead Rd, CupertinoCA 95014.

August 6-10Modern CommunicationSystems: Analysis andDesign, University ofSouthern California, LosAngeles CA. This course isdevoted to the analysis anddesign of modern com-munication systems, withemphasis on the derivation

of practical design equationsuseful for trade-off studiesand overall synthesis. Con-tact University of SouthernCalifornia, ContinuingEngineering Education, LosAngeles CA 90007.

August 6-10Advanced MicrocomputerSystem Development: HighLevel Languages,Technology Trends, andHands-On Experience,University of SouthernCalifornia, Los Angeles CA.This course is intended topresent the participants witha clear picture of themicrocomputer revolution,provide hands-on program-ming experience using ex-tended BASIC and FOR-TRAN, analyze technologytrends in the microcomputerfield, and assess the impactof VHSI/VLSI. ContactUniversity of SouthernCalifornia, ContinuingEngineering Education, LosAngeles CA 90007.

August 8-10SIGPLAN Symposium onCompiler Construction,

Boulder CO. This sym-posium will considermethods of, and experiencewith, constructing com-pilers. The emphasis will beless on theoretical methodsand more on techniques ap-plied to real compilers. Con-tact Professor LeonOsterweil, Dept of Com-puter Science, University ofColorado, Boulder CO80309.

August 8-10First Annual Conference onResearch and Developmentin Personal Computing,

Hyatt Regency ChicagoO'Hare, Chicago IL. Thisconference is sponsored bythe Association for Com-puting Machinery (ACM)Special Interest Group onPersonal Computing(SIGPC). A large trade show

IMMEDIATEDELIVERY

Domestic & Export

DEC LSI-11COMPONENTS

A full and completeline with softwaresupport available.

mini ComputerSuppliers, Inc.

25 CHATHAM ROAD

SUMMIT, NEW JERSEY 07901

SINCE 1973

(201) 277-6150 Telex 13-6476

Word Processingand Data Management

TEXTFORM

This text-processing program can be used for the preparation of letters, manuals, andgeneral documentation. It produces output for either the console, line printer, or into afile, with automatic right margin justification, pagination and titling, centering, under-lining, indenting, and multiple line spacing. Formatting commands are interspersedwith the source textfile for ease of correction.

Textform will automatically loop for repeated formatting such as form letters. Apreprocessing program is able to select a subset of the text data according to a userdefined matching pattern.Here are a few sample commands:

• PL n—Set page length to n

• FO-Define footer title

• RM n — Set right margin to n

• JU—Justify right margin

• N J —Ragged right margin

• SO file —Read input source from 'file'

• RD file—Read input data from 'file'

INFORMER

This program is a general purpose data management and retrieval system for inven-tory control, sales analysis, project scheduling, billing, check writing, and mailing lists.

Informer is a collection of commands for creating, updating, manipulating, dis-playing, and analysing well defined data files.

Here are a few sample commands:

• NEWFILE-Creates and defines fields for a file

• SELECT—Selects data items for processing

• SORT—Quick sort of file by specified field

• FORMAT—Prepares form letters, bills and checks

• COMMAND—Defines a new command as a sequence of system commands

• TOTAL—Subtotals a field by a specified key.

Each of the software packages runs on 8080/Z80 systemsunder the CP/M operating system.

Special introductory mf%erk rtrt

price of $350,00 per packageManual alone: $25.00Media: 8" IBM single density DisketteSuggested retail price Is $495.00

Write or call:

DIGITAN, INC.

5001 16th Avenue, Brooklyn, New York 11204, {212) 436-3777

Circle 88 OH inquiry card. August 1979 © BYTE Publications Inc 195

Circle 93 on inquiry card.

25 START-AT-HOMECOMPUTER BUSINESSES

In "Low Capital, StartupComputer Businesses"

CONSULTING • PROGRAMMING • MICRO COMPUTEROPPORTUNITIES • SOFTWARE PACKAGES • FREELANCEWRITING • SEMINARS • TAPE/DISC CLEANING • FIELDSERVICE • SYSTEMS HOUSES • LEASING • SUPPLIES •PUBLISHING • HARDWARE DISTRIBUTORS • SALESAGENCIES • USED COMPUTERS • FINDER'S FEES •SCRAP COMPONENTS • AND MORE .

Plus — ideas on moonlighting, goingfull-time, image building, revenuebuilding, bidding, contracts, marketing,professionalism, and more. No careertool like it. Order now — if not completelysatisfied, return within 30 days for fullimmediate refund.

• 8'/2 x 11 ringbound • 156 pp. • $20.00Phone Orders 901-761-9090

!

DATASEARCH

incorporated4954 William Arnold Road, Dept. B, Memphis, TN 38117Rush my copy of "Low Capital Startup Computer Businesses" at $20.

NAME/COMPANYADDRESS

CITY/STATE/ZIP

□ Check Enclosed

D VISA □ Master Charge Exp. Date

LIGHT-PENtrsso

PLUQS RIQHT IN! Exclusive design includes two sampleprograms and complete documentation so you can writeyour own programs in Basic. Long life from standard9-volt battery. A bargain at only $24.95!

PRACTICAL APPLICATIONS™ (415) 573-8217

Post Office Box 4139, Foster City, CA 94404

□ Please send me TRS-80 Light Pens

($24.95 each enclosed. Calif, residents add tax).

□ Send your catalogs.

Name.

Address

City

TRS-80 is a trademark of Tandy Corp.

.State.

-Zip.

of personal computer andgraphics equipment is plan-ned to accompany an assort-ment of papers, panels, usergroup meetings, workshops,and person to person posterbooths. Contact Bob Gam-mill, Computer ScienceDivision, Dept ofMathematical Sciences, 300Minard Hall, North DakotaState University, Fargo ND58102.

August 13-15Minicomputers andDistributed Processing,

Atlanta GA. This three dayseminar will examine theuses, economics, program-ming, and implementationof minicomputers. Contactthe University of Chicago,Center for ContinuingEducation, 1307 60th St,Chicago IL 60637.

August 13-15Conference on Simulation,Measurement and Modelingof Computer Systems

Boulder CO. This con-ference will feature perfor-mance prediction techniquesemployed during the design,procurement andmaintenance of computersystems. It will provide aforum for both applied andtheoretical work in thedisciplines of performancemonitoring, modeling, andsimulation of computersystems. Contact Gary Nutt,Xerox PARC, 3333 CoyoteHill Rd, Palo Alto CA94304.

August 13-16Q-GERT Network Modelingand Analysis, Ramada Inn,Lafayette IN 47905. Thiscourse will provide the at-tendee with the informationnecessary to model complexsystems using Q-GERT. Em-phasis will be on the pro-cedures for modeling andanalysis. Contact Pritskerand Associates Inc, POB2413, W Lafayette IN 47906.

August 13-17High Speed Computation:Vector Processing, The

University of Michigan, AnnArbor MI. In this course,the architectural, software,and algorithmic issues ofvector architecture are coor-

dinated by discussion ofconcepts in computer archi-tecture and detailed studyof current vector processorsand their use. ContactEngineering Summer Con-ferences, 400 ChryslerCenter, North Campus, TheUniversity of Michigan, AnnArbor MI 48109.

August 19-22International Conference onComputing in theHumanities, Dartmouth Col-lege, Hanover NH. Thisconference is intended tofoster computer research andtechnique in all areas ofhumanistic study; to pro-mote international coopera-tion in the development ofprograms, data banks, andequipment; and to make theresults of research available.The program will include aplenary session each eveningand shorter sessions duringthe day. Contact Stephen VF Waite, Kiewit Computa-tion Center, Dartmouth Col-lege, Hanover NH 03755.

August 19-241979 Symposium for In-novation in MeasurementScience, Hobart and WilliamSmith Colleges, Geneva NY.Sponsored by the ScientificInstrumentation andResearch Division of the In-strument Society ofAmerica, scheduled sessionsat this symposium includeinnovation in computers andelectronics, mass flowmeasurement, chemicalanalysis, applied analysis ininstrument control, physicalanalysis, medical instrumen-tation, and advances in in-dustrial measurement. Con-tact Instrument Society ofAmerica, 400 Stanwix St,Pittsburg PA 15222.

August 22-24Understanding and UsingComputer Graphics, San

Francisco CA. This course isfor people who are using, orare contemplating usingcomputer graphics andwould like to understand itsrole in their organization. Itwill describe computergraphics, explain theavailable hardware and soft-ware systems, and give costand performance com-

196 August 1979 © BYTE Publications Inc

Circle 303 on inquiry card.

parisons. Contact Frost andSullivan, 106 Fulton St, NewYork NY 10038.

August 23-26National Small ComputerShow, New York Coliseum,New York NY. Exhibitorswill include major manufac-turers, distributors, andpublications in the smallcomputer field. A lectureseries will include topics ofinterest to business and pro-fessional people, hobbyists,and the general public. Con-tact National Small Com-puter Show, 74 E 56th St,New York NY 10022.

SEPTEMBER 1979

September 4-6International Conferenceand Exhibition on Engineer-ing Software, University ofSouthampton, England. Theaim of this conference is toprovide a forum for thepresentation and discussionof recent advances inengineering software and topresent a state-of-the-art inthis field. An exhibition,held in conjunction with theconference, will cover allsoftware products, services,and equipment related toengineering software. Con-tact Dr R Adey, Engsoft, 6Cranbury Place, Southamp-ton S02 OLG, ENGLAND.

September 4-7Compcon Fall'79, CapitalHilton Hotel, WashingtonDC. This eighteenth IEEEComputer Society Interna-tional conference will pre-sent the latest developmentsin microprocessor architec-ture, support software,operating systems, andperipheral devices. ContactIEEE Computer Society,POB 639, Silver Spring MD20901.

September 5-8Info/Asia, Ryutsu Center,Tokyo. This exposition willbe devoted to informationmanagement, computers,word processing, and ad-vanced business equipment.The exposition will be ac-companied by a four dayconference. Contact Clapp

and Poliak Inc, 245 ParkAve, New York NY 10017.

September 18-20Wescon/79, St FrancisHotel, San Francisco CA.Contact Electronic Conven-tions Inc, 999 N'SepulvedaBlvd, El Segundo CA 90245.

September 24-26Minicomputers andDistributed Processing, NewYork NY. See August 13-15for details.

September 25-27WPOE '79, San Jose Con-vention Center, San JoseCA. This show will bededicated to word process-ing and office/businessequipment, services andmaterials. Complementingthe exhibit will be a threeday executive conferenceprogram that focuses onemerging technologies andtheir applications in the of-fice. Contact Cartlidge andAssociates Inc, 491 MacaraAve, Suite 1014, SunnyvaleCA 94086.

September 26-29MIMI '79, Queen ElizabethHotel, Montreal, Canada.This symposium is intendedas a forum for the presenta-tion and discussion of recentadvances in mini andmicrocomputers and theirapplications. Special em-phasis will be given to thetheme of the conference:"The Evolving Role of Minisand Micros WithinDistributed Processing."Contact The Secretary,MIMI 79 Montreal, POB2481, Anaheim CA 92804.

September 28-30Northeast Personal andBusiness Computer Show,

Hynes Auditorium, BostonMA. Displays and exhibitswill showcase microcom-puters and small computersystems of interest tobusinesspeople, hobbyists,professionals, etc. Lecturesand seminars will bepresented for all categoriesand levels of enthusiasts, in-cluding introductory classesfor novices. Contact North-east Exposition, POB 678,Brookline MA 02197.Text continued on page 200

Circle 102 on inquiry card.

Retro-Graphics™

For your Dumb Terminal. The Retro-Graphics PC card mounts easily in the LearSiegler ADM-3A to provide you with an afford-able graphics computer terminal.Features:

Z-80 Based512 by 250Dot MatrixSimple Plug-inInterconnect

• Point Plotting

• Automatic VectorGeneration

• Optional TEKTRONIXSoftware Compatibility

You will be impressed with the packaging, per-formance and price of the Retro-Graphics card.Write or phone today for complete specifications.

DIGITAL ENGINEERING, INC.

1787 Tribute Road. Suite K

Sacramento. CA 95815

(916)920-5600

Computer Lab of New Jersey

Computer Lab sells the best S-100 Bus products at the bestpossible prices. Not only are our prices great, so is our deliv-ery. We offer a 10% discount on most major lines, plus a 5%additional discount for a cash purchase.

Seattle Computer Products 16K Plus

Memory Board, Assembled & Tested (2Mhz)

Cromemco Single Card Computer -

Assembled

Ithaca Audio Z-80 CPU Bare Board

8K Static Ram Bare BoardElectronic Control Technology Rz I/O Inter-face Board, Assembled & TestedIMC Dual Mini Box for 2 ShugartSA-400 DrivesOliver Paper Tape Reader Kit

Subject to available quantities. Prices quoted include cash discount.Shipping and Insurance Extra.

Call for our prices on:

California Computer Systems, Godbout, IMSAI, Integral Data Systems,

Michael Shrayer Electric Pencil, Micropolis, Mullen, SOROC, SSM,

Tarbell, TEI, Thinker Toys, Vector Graphic

Computer Lab of New Jersey

141 Route 46 • Budd Lake, N.J. 07828Phone: (201) 691-1984

HOURS: Monday & Friday: 10 to 6, Tuesday-Thursday: 10 to 9Saturday: 10 to 5

Call or write for our free catalog & price list

OUR

LIST

CASH

PRICE

PRICE

$495.00

$423.00

$450.00

$384.00

$ 35.00

$ 29.00

$ 25.00

$ 21.00

$295.00

$252.00

$ 79.00

$ 67.00

$ 74.00

$ 63.00

Circle 55 on inquiry card.

August 1979 © BYTE Publications Inc 197

TRS-80 50LUTI0NS!

BUSINESS

Appointment log by M. Kelleher. Perfect for theprofessional. Accepts name and address, meetingstart and endings, subject matter, derives elapsedtime. For Level 11,16K $9.95

Payroll by Stephen Hebbler. Comprehensive 24 pg.manual with step-by-step instructions included in thepackage. Supports W2 and 941 information. D,$59.95.

Mail List I by Michael Kelleher is the economy modelof disk-based mailing list programs. Uses a singledrive and handles up to 1400 names per disk, plusprovisions for sorting options. 16K, D $19.95.

Text-80 by Frank Rowlett. Fully-documented textprocessing system for disk. Create, edit, move,delete, insert, change, print words or lines. D, 32K$59.95

KVP Extender by Lance Micklus. Corrects keyboardbounce, upper case lock, permits use as a terminal,screen printing. On tape ($24.95) or disk ($29.95)

BUS-80

The Business Software People®

Just about everything you need ... within 1year, participants receive programming forInventory, Accounts Receivable, AccountsPayable and General Ledger systems, plusSales and Payroll. Complete documentationand software on diskette, $200.00

ST 80 - Smart Terminal

Lance Micklus

Turns your TRS-80 into a computer terminal.Features include CONTROL key, REPEATkey, ESC key, RUN key and a functioningBREAK key. Lets you list incoming data online printer. Reprogram RS-232-C switchesfrom keyboard, making baud rate changessimple. Level II, 16K $49.94ST80DLance Micklus

The smart terminal made even smarter.Contains extensions for disk systems toexchange files with a timesharing computeror another TRS-80 miles away. Professionalquality, not an amateur program. 32K $79.95

Mail List II by BUS-80. Complete mail list system fordual disk. Enter, update, merge, sort, and printmailing labels. D, 32K $99.95

Small Business Bookkeeping by Roger W. Robitaille,is based on the Dome Bookkeeping Journal, sold foryears in stationery and discount outlets. Level II, 4Kwith ($22.00) or without ($15.00) Dome journal.

Small Business Bookkeeping For Disk by MillerMicrocomputer Services and Roger W. Robitaille, Sr.Extended version. 32K Disk. With journal $31.95;without journal $24.95.

Inventory S by Roger W. Robitaille, Sr. 240 stockitems can be contained using the full 6 data areas and2 pieces of alpha information. Level I or II, 16K $25.00

Inventory II.2 Disk based program allows forcreation, maintenance and review of over 2,000 itemsper clean diskette. Operates under Disk BASIC, DOS2.1 with minimum memory allocation. D, $59.95

Electric Pencil by Michael Shrayer. A wordprocessing system. Insertions, additions, deletionsand corrections made more easily than with aneditor's pencil. Perfect text printouts. Level II, 16K,$100.00. 32K Disk, $150.00

Accounts Receivable II by S. Hebbler. Does yourbilling, provides running balance, tracks overdueaccounts, custom message printing option, muchMORE. Requires 32K 2-disk system $79.95

General Ledger I by M. Kelleher. Establishes,defines, deletes and sorts up to 400 accounts. Up to200 entries per session. For small-to-mediumbusinesses not requiring double entry books. A com-prehensive, flexible accounting system. Requires32K disk. $79.95.

Inventory System 2.3 by M. Kelleher. One of smallbusiness management's most difficult problemsbrought under control. Keep current on priceincreases, shrinkage, low stock, profit margins.Program can handle up to 1,000 items per datadiskette. Improved version, lower price. Withdocumentation $99.95, 32K 2-disk.

8080-Z80 Conversion by M. Kelleher. Permits you toenter 8080 codings and returns the Z80 equivalent. LII, 16K $15.00

Basic Statistics by Steve Reisser. Pearson product-movement correlation coefficient, chi-square, FisherT-test, sample analysis of variance, Z-scores andstandard scores, with a random number generatorbuilt in to simulate data. L II, 16K $20.00

NEWDOS

Apparat

DISK ERROR SOLVED! Stop blaming yourdrive, fix your DOS with NEWDOS: anenhanced disk-operating system capable ofcorrecting over 70 errors in TRSDOS 2.1 toimprove reliability, and key bounce, enableDOS commands to be called from BASIC andmuch more! Available NOW for 16K systemswith a minimum of 1 disk drive. $49.95

NEWDOS +

includes all the features of the originalNEWDOS and adds 7 new utilities, includingSUPERZAP, Disk Editor/Assembler, Dis-assembler, and Level I BASIC for Disk.

$99.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

Taipan by Art Canfil. Sail the China seas, dodgingpirates and cutthroats, to make your fortune tradingin arms and opium. Level II, 16K. $9.95.

Balloon Race by Dean Powell. High above theAtlantic, your balloon must be cleverly maneuveredwith the prevailing winds to reach Paris. Level II,16K, $9.95.

ADVENTURES

Scott Adams

Feel as if you're manipulating HAL from 2001when you play these machine languagegames. Hardly any rules, finding out is partof the fun. Two adventures on 32K disk,$24.95. Tape - choose from Land Adventure,Pirate's Cove, Mission Impossible, TheCount, and Voodoo Castle - $14.95 each.

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? LevelII, 16K $9.95.

ACTION GAMES

Slalom by Denslo Hamlin. Choose between Slalom,Giant Slalom and Downhill. Level II, 16K $7.95

X-Wing Fighter II by Chris Freund. Piloting anX-wing fighter, you're out to destroy the Death Star!A new, improved version of an exciting spacefavorite. Level II, 16K. $9.95

Air Raid by Small System Software. High speedmachine language program with large and smallaircraft flying at different altitudes. Ground-basedmissile launcher aimed and fired from keyboard.Planes explode when hit, cause damage to nearbyaircraft. Score tallied for hits or misses. Level I or II,4K $14.95.

All Star Baseball by David Bohike, Level II, 16K$7.95

Amazin' Mazes by Robert Wallace. Ever -changingmaze situation. Level II, 16K $7.95

Kamikaze by Russell Starkey. Command your shipagainst attacking suicide planes. Machine languagegraphics make this fast and fun! L II, 16K $7.95

Space Battles by Level IV. Features three levels ofplay, fast, machine language graphics, real-timeinput, and "smart" enemy ships that move andshoot! Level II, 16K Tape or 32K Disk. Tape $14.95,Disk $19.95.

MISCELLANEOUS

Diskettes Dysan 104/1 Box of five, $24.95 + $1.00shipping. Verbatim, box of ten, $34.95 + $1.00shipping/handling.

Z80 Instruction Handbook by Scelbi Publ. $4.95+ $1.00 shipping/handling.

The BASIC Handbook by Dr. David A. Lien $14.95 +$1.00 shipping/handling.

Percom Disk Drives. Single or dual, for TRS-80's.Reliable, high quality, priced $100 lower thancomparable units! Single drive-$399.00; Dual Drive-$799.00; Cable (required) - $29.95.

Floppy Armour Protective envelopes for shippingfloppy disks, of high-density, ultra-lightweightpolymer. 5-pack, $4.95 + $1.00 shipping/handling

16K MEMORY KITS

Ithaca Audio

8 tested, guaranteed 16K RAM's, amazinglow price - $99.95

198 BYTE Augusl 1979

Circle 374 on inquiry card.

SIMULATIONS

3-D Tic Tac Toe by Scott Adams. Three skill levels -author warns you to practice before tacklingcomputer's third skill level. I or II, 16K $7.95

Star Trek III.3 by Lance Micklus. One of the mostadvanced Star Trek games ever written. Level II, 16K$14.95.

End Zone by Roger W. Robitaille, Sr. Authenticfootball simulation, right down to the 2-minutewarning. Level I or II, 16K $7.95

Cribbage by Roger W. Robitaille, Sr. You versus thecomputer cribbage played by standard rules. Level Ior II, 16K, $7.95.

Bridge Challenger by George Duisman. You and thedummy play 4-person contact bridge against thecomputer. Level II, 16K $14.95

'Round the Horn by Rev. George Blank. You're thecaptain of a clipper ship racing from New York to SanFrancisco. Level II, 16K $9.95

Concentration by Lance Micklus. One of the mostpopular television games. Level I or II, 16K $7.95

Safari by David Bohlke. You're in the running for afilm contract at a major Hollywood studio. To qualify,you must photograph the most wild animals in theirnatural habitat. Level II, 16K $7.95.

Pork Barrel by Rev. George Blank. Places you in theshoes of an aspiring Congressman. Level II, 16K$9.95

Backgammon by Scott Adams. Level II, 16K $7.95

Chess Companion by M. Kelleher. Combines chessclock features with ability to record your moves whileaction is fast and furious. Level II, 16K $7.95

Sargon Chess by Dan & Kathe Spracklen. Winner ofthe 1978 San Jose Microcomputer Chess Tourna-ment. Level II, 16K $19.95

Mastermind II.2 by Lance Micklus. Lets you and thecomputer take turns making and breaking codes.Level II, 16K$7.95

Tj«

TRJ-0O Software Exchange

I-603-673-5M4

17 BRIAR CLIFF DRIVE MILFORD, NEW HAMPSHIRE 03055

PERSONAL

RPN Calculator by Russell Starkey. A self-document-ing calculator program. Uses Reverse Polish Notationwith4-level stack, 100 memories, scientific functions.Level II, 16K $9.95

Home Financial Management by M. Kelleher. Turnsyour computer into a personal financial advisor. LevelII, 16K $9.95

Tarot by Frank B. Rowlett, Jr. Probably the bestfuture-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 Allo-cations, ID Timer, Q-signal File, Amateur LogRoutine, Propogation Forecasting. L II, 16K $9.95.Special Disk-enhanced version, 32K $24.95

Educator Assistant by Steve Reisser. Five programsof value to educators. Compute percentage,individual student averages, class averages, standardtest scores, final grades. L II, 16K $9.95 D, $14.95

Electronic Assistant by John Adamson A group of 9subprograms designed to solve problems such astuned circuits and active and passive filters. Lll, 16K$9.95

Personal Finance by Lance Micklus. 33 differentbudgets can be easily adapted by user to fit hisindividual needs. A 2-part program, entry andsearch. Level II, 16K $9.95

Advanced Personal Finance by Lance Micklus. Sameas above with advanced analysis routine. SupportsDisk Files D, 32K $24.95

jatsa

SoftSide is for pioneers . . . thosehardly souls who have adopted aTRS-80, installed it in their living-room or office, and unleashed theirimaginations.

SoftSide helps you discover theendless variety of tasks your newfriend will do for you, as you build aunique partnership of human beingand machine.

We publish software for thepartners. Every month we publishgames, household application pro-grams, educational aids, businessprograms. We help you realize yourexpectations, fantasies, anddreams.

SoftSide means Software!

A bi-monthly magazine for theserious programmer who wants toknow HOW his computer works andWHY. PROG/80 emphasizes tech-nique rather than canned programs.The subjects include machine lan-guage, construction projects andspecialized applications software, notjust for the advanced computerhobbyist, but for the computerphilewho wants the most from hismachine.

Magazine Scction

Appfe Seed/

^5 If you're an Apple II pioneer,$j you've been longing for a software<je publication and hoping someone& would get around to it.QJ We have. Apple Seed is to the5g Apple II what SoftSide is to the5£ TRS-80. And it's brand new. The2jfirst issue will roll off the press in^August or September. Apple II& enthusiasts will eat up this special!a& introductory offer!

DEALER

INQUIRIES

INVITED

For further details call:603-673-5144

SOFTSIDE

□ 1 Year -12 issues $18.00

PROG/80

□ 1 Year - 6 issues $20.00

APPLE SEED

□ 1 Year -12 issues $15.00

PO Box 68 Milford, NH 03055

a USA first class $25.00 -1 yr.[J APO/OVERSEAS surface $25 - 1 yr.D CANADA/MEXICO $25 - 1 yr.D OVERSEAS airmail $30 - 1 yr.

Exp. Date.

Interbank #[M/Conly].

Name

■■

Address

■

City

State

7in

Monday through

■■

Telephone orders accepted for Master Charge or VISA accounts. CallFriday, 9:30 to 5:30 EST at 603-673-5144

■■■■■■

Circle 313 on inquiry card.

BYTE August 1979 199

OCTOBER 1979

October 1-3Second Annual Symposiumon Small Systems, HiltonInn, Dallas TX. The sympo-sium will consist of a blendof paper and panel discus-sions with major emphasison microcomputer applica-tions. Both hardware andsoftware topics presentingstate-of-the-art and state-of-the-industry aspects will beincluded. Contact GeraldKane, Southern MethodistUniversity, Dallas TX.

October 2-4NEPCON Central '79,O'Hare Exposition Center,Rosemont IL. This tenth an-nual exhibition and con-ference of electronic andmicroelectronic packagingand production equipmentwill feature displays of elec-tronic and microelectronicmaterials, hardware, tools,supplies and test instru-ments. Contact Industrialand Scientific ConferenceManagement Inc, 222 WAdams St, Chicago IL60606.

October 14-17International Data Process-ing Conference and BusinessExposition, Town andCountry Hotel, San DiegoCA. Contact Data Proces-sing Management Associa-tion, 505 Busse Highway,Park Ridge IL 60068.

October 15-18Sixth Information Manage-ment Exposition and Con-ference, New York Col-iseum, New York NY. Con-tact Clapp and Poliak Inc,245 Park Ave, New YorkNY 10017.

October 15-19CPEUG 79, San Diego CA.This is the fifteenth meetingof the Computer Perfor-mance Evaluation UsersGroup sponsored by the Na-tional Bureau of Standards.Contact Judith G Abilock,The Mitre Corp, MetrekDiv, 1820 Dolley MadisonBlvd, McLean VA 22102.

October 16-18Understanding and UsingComputer Graphics,

Washington DC. See August22-24 for details.

October 21-23New York State Associationfor Educational Data Sys-tems Annual Conference,

Granit Hotel, KerhonksenNY. The theme of this con-ference is "InstructionalComputing — Hardware/Software/Courseware."Contact Mary E Heagney,9201 Shore Rd, BrooklynNY 11209.

October 22-24Computers in AerospaceConference II, Hyatt HouseHotel, Los Angeles CA. Theconference theme, "Com-puter Technology for Spaceand Aeronautical Systems inthe Eighties," will be carriedout by a series of panels, in-vited presentations, andcontributed papers whichwill bring computer systemtechnologists together withspecialists in the applicationof embedded computers inspace and aeronautics. Con-tact American Institute ofAeronautics andAstronautics, 1290 Ave ofthe Americas, New York NY10019.

October 22-25ISA/79, O'Hare ExpositionCenter, Chicago IL. Theconference theme, "In-strumentation for EnergyAlternatives," will em-phasize current practices ininstrumentation design andimplementation. Contact In-strument Society ofAmerica, 400 Stanwix St,Pittsburgh PA 15222.

October 28-30The Tenth North AmericanComputer Chess Champion-ship, Detroit Plaza, DetroitMichigan. Sponsored by theAssociation for ComputingMachinery, this is a fourround, Swiss style tourna-ment, with the first tworounds to be played on Oc-tober 28th (1 PM and 7:30PM), the third on October29th (7:30 PM), and the

final round on Tuesday, Oc-tober 30th (7:30 PM). Con-tact Monroe Newborn,McGill University, School ofComputer Science, 805 Sher-brooke St W, Montreal PQ,CANADA H3A 2K6.

October 29 - November 2Applied Interactive Com-puter Graphics, Universityof Maryland, College ParkMD. This course is designedto cover the most importantfacets of graphics that arenecessary to develop generalgraphic applications.Systems considerations in-cluding configuration selec-tion criteria, and the prosand cons of off-the-shelfsoftware are stressed. Themost important factors andtechniques are described forhardware, software, andgeometric modeling. ContactUCLA Extension, 10995 LeConte Ave, Los Angeles CA90024.

October 30 - November 1Interface West, AnaheimConvention Center,Anaheim CA. This third an-nual West Coast small com-puter and office automationsystems conference and ex-position will feature over100 company exhibits and60 conference sessions cover-ing a variety of data pro-cessing, word processing,data communications,management hardware, soft-ware, and service topics.Contact the InterfaceGroup, 160 Speen St, Fram-ingham MA 01701.

Blubs andNewsletters

Sacramento Micro-computer Users Group

According to Push & Pop,the newsletter of theSacramento MicrocomputerUsers Group, this organiza-tion meets the fourth Tues-day of every month at 7:30PM at the SMUD TrainingFacilities on 59th St. Their

mailing address is POB161513, Sacramento CA95816.

Northwest ComputerSociety MeetsTwice a Month

The Northwest ComputerSociety meets at SeattleUniversity in the LibraryAuditorium, Room 115. TheUniversity is on 12th Avebetween E Madison St and ECherry St. Meetings are heldthe first and third Thursdayof each month at 7:30 PM.The first meeting of themonth usually features aformal presentation by aspeaker or speakers. The se-cond meeting is usuallymore informal with free-wheeling discussion and pro-blem solving. Membershipin the Northwest ComputerSociety, which includes theimpressive Northwest Com-puter News, is $7. For moreinformation, write the clubat POB 4193, Seattle WA98104, or call (206) 284-6109for recorded information.

The ComputerHobbyist Groupof North Texas

The Printed Circuit is awell organized, informativenewsletter published by TheComputer Hobbyist Groupof North Texas. In a recentissue there were reportsfrom various user groupswithin the club, a list ofcoming attractions, a reprintof an article about theTandy and Texas Instru-ments' race for the homecomputer, an S-100 bus arti-cle, new products, andmore. The Printed Circuitmay be obtained by joiningthe group at a rate of $7 peryear. Dues should be sent toWarren Bean, 2405 Briar-wood, Carrollton TX 76006.

Denver AmateurComputer Society

The Denver Amateur

200 August 1979 © BYTE Publications Inc

Circle 175 on inquiry card.

Circle 376 on inquiry card.

EasyWriter

a

Word Processor

for your

Apple-II

If you've been hunting high and low fora word processor that you can live with,try on EasyWriter — a word processor youcan't live without!

You saw it at the West Coast ComputerFaire. If you liked it then, you'll love itnow. It's easy. It's clean. It's just whatyou've been waiting for.

Try one on for size.

EasyWriter makes writing easy!

A productof

CAP'N

SOFTWARE

San Francisco, CA

Information UnlimitedSoftware

146 N Broad StGriffith IN 46319(219) 924-3582Contact:Gregg DesElms

TRS-80

VOTRAX

COMPUTALKER

SYNTHESIZERS

Our ANGLOPHONE Z80/8080 program converts ordinaryEnglish ASCII in real rime into phonetic codes to drive yourspeech synthesizer.

For TRS-80 (Level II 16K cassette or 32K diskette) $45

For Compuralker (requires CSR1) $45

ForVotroxVSK $100

For Votrox VS-6 $200(CUTS, CP/M 8", North Star 5", Paper Tape)

TALKING TERMINAL

Our ANGLOTERM program turns any TRS-80 Level 1116K withExpansion Interface, RS-232-C Board and Voice Synthesizerinto o talking computer terminal. Cassette or diskette $145.

UPPER CASE, 2011 Silver Ct. E., Urbana, IL 61801

(217) 384-4382 VISA/Master Charge

-nmn

5TTnnro^TnnnrD"D"B"a"8"a"8"8"B"a;

:

:

To further improveervice to our customers wehave installed a toll-freeWATS line in ourPeterborough, NewHampshire office.If you wouldli ke to order asubscription to1BYTE, or if

Toll-free

BYTE's New

SubscriberW.A.T.S. Line

(800)258-5485

We thank you and lookforward to serving you.

you have aquestion relat-1ed to a BYTEsubscription,'you are invited1to call*(800)258-5485between 8:00 AM and4:30 PM Eastern Time.(Friday 8 AM - Noon).* Calls from conti-nental U.S.only.

1V^ 9178

«*<B.fl.B.9.l> P P B 0 g~

t

=\

01 1f<utK Pie&e*tce

6120 0pia«tco4ua, ^cuidA(ex**u0Ua„ 1/0i$t*ua, 22310

Yes, We're moving into larger quartersand onto bigger things . . . like expandedinventory, larger service facilities and acurriculum of microcomputer courses. Allthis, thanks to our patrons who have madethis possible. Our thanks for your support!

fc

V:

The Plus Makes the Difference'

J

Circle 65 on inquiry card.

BYTE August 1979 201

Circle 132 on inquiry card.

If you own an

IBM Selectric®

you already have

a high quality output printer.

• Escon printer conversion fits right in

• Installation does not affect:

Shape or normal functioning of typewriter noreligibility for IBM warranty and service

• Available in S-100, Parallel, RS-232 or IEEE-488

• Entire high quality printer system for TRS-80,Apple, PET, Sorcerer, Horizon, etc.

• All systems assembled, tested and burnt-in

• Factory installations available; completesystems with typewriter available

Prices* S-100 $496.00 Parallel $525.00RS-232 $549.00 IEEE $575.00* Prices valid in USA only

Escon Products, Inc.

171 Mayhew Way, Suite 204,Pleasant Hill, CA 94523(415) 935-4590

APPLE II

DEVICES BY MICROPRODUCTS

CENTRONICS 779 and PR-40 PRINTER INTERFACE

Fully assembled with software driver on cassette S49.95

With Centronics connector installed 64.95

OKIDATA 110 PRINTER INTERFACE

Fully assembled with software driver on cassette 49.95

With OKIDA TA connector installed 64.95

EPROM PROGRAMMER 99.95

Fully assembled, programs 5 volt EPROMs, e.g., INTEL 2716,2758andTI2516

APPLE II EPROM SOCKET ADAPTER 14.95

Adapts 5 volt EPROMs to APPLE II ROM sockets

INTERFACE BRAIN (call for current pricing)

Converts above products into intelligent peripherals callablefrom BASIC. Consists of a 2758 EPROM containing printerdrivers and EPROM Programmer driver.

6 CHARACTER LABEL EDITOR/ASSEMBLER

Second generation editor/assembler with enhanced editor featuresand text file compatibility with the 6 Character Disassembler.

ON CASSETTE 34.95

ON DISKETTE 39.95

6 CHARACTER LABEL DISASSEMBLER/TEXTFILE MANAGER

Second generation disassembler which creates a text file that maybe reassembled by the 6 Character Assembler above.

ON CASSETTE 34.95

ON DISKETTE 39.95

SEE YOUR LOCAL DEALER

MICROPRODUCTS

2107 Artesia Blvd. / Redondo Beach / CA 90278(213)374-1673

Computer Society hasrecently increased theprinting of their newsletter,Interrupt, to 1,000 copies,and has begun over-the-counter distribution at localcomputer stores. First classmailings of the newsletterwill be restricted to paidmembers only. The clubmeets the third Wednesdayof the month at 7:30 PM at1380 S Santa Fe, DenverCO. Many user groupswithin the club meet atdifferent times andlocations. For further infor-mation, write to MikeDymtrasz, president of thesociety, at the aboveaddress.

Computers in Psychiatryand Clinical Psychology

Computers inPsychiatry/Psychology(formerly Micro-Psych), abi-monthly newsletter forprofessionals interested inthe use of computers inpsychiatry and clinicalpsychology, is beginning itssecond year of publication.It addresses itself in an in-formal, scientific style toclinical users of the com-puter. Three pages of eachissue are devoted to adescription of the computerrelated activities of sub-scribers. Each issue of the 13page newsletter containssummaries and reviews ofrecently published articlesand books as well as an on-going bibliography and aprogram catalogue. Recentadditions include a clear-inghouse for information ontraining opportunities in thefield and a new hardwarecolumn. Subscriptions toVolume 2 can be obtainedby sending $15 to Com-puters in Psychiatry/-Psychology, 26 Trumbull St,New Haven CT 06511. TheBest of Micro-Psych —Volume 1, a 52 page com-pilation of articles and infor-mation from Volume 1, isalso available for $12.

The New EnglandComputer Society

The New England Com-puter Society meets on thefirst Wednesday of eachmonth to exchange com-puter hobbyist informationand sponsor activities. TheNECS is the oldest and oneof the largest clubs in theBoston area, with over 200members. Within the clubare 8080, 6502, TRS-80,6800, PET, Apple andDigital user groups. Themeetings start at 7 PM andare held at the Mitre Corpcafeteria, Route 6, east ofRoute 3, Bedford MA. Foradditional information,write to the New EnglandComputer Society, POB198, Bedford MA 01730.

Heath CompanyNewsletter

Buss is an independentnewsletter of Heath Com-pany computers. It containsHeath product informationand user reports. The pricefor 12 issues is $8 ($10overseas). Contact CharlesFloto, 325 Pennsylvania AveSE, Washington DC 20003.

Publication for theComputer Professional

The Data ProcessingDigest (DPD) is written forthe computer professionaland the manager who usescomputer technology forplanning, control and pro-duction. The editors of DPDregularly search throughnumerous business and in-dustrial periodicals andreports to locate articles onall aspects of computertechnology and its applica-tion to operations andmanagement. Concise sum-maries of these articles,reviews of books on dataprocessing, and listings ofcurrent professionalmeetings and seminars ap-pear in each issue. Thesubscription rates are $57for one year; $108 for twoyears; and $153 for threeyears. Contact Data Process-ing Digest Inc, 6820 La Ti-jera Blvd, Los Angeles CA90045.

202 August 1979 © BYTE Publications Inc

Circle 208 on inquiry card.

Circle 12 on inquiry card.

((

^

e^£P9£f*>

A Message

to our Subscribers

From time to time we make

information of interest to

the BYTE subscriber list

them in the mail. Used are

available to other companies

our subscribers' names and

who wish to send our

addresses only (no other

subscribers promotional

information we may have is

material about their products.

ever given).

We take great care to screen

these companies, choosing

While we believe the

only those who are reputable,

distribution of this

and whose products, services.

information is of benefit to

or information we feel would

our subscribers, we firmly

be of interest to you. Direct

respect the wishes of any

mail is an efficient medium

subscriber who does not want

for presenting the latest

to receive such promotional

personal computer goods and

literature. Should you wish to

services to our subscribers.

restrict the use of your name,

simply send your request to

Many BYTE subscribers

BYTE Publications Inc, Attn:

appreciate this controlled

Circulation Department,

use of our mailing list, and

70 Main St, Peterborough NH

look forward to finding

03458. Thank you.

Sk

. 9

Tremendous Savingson Refurbished AJCouplers/Modems

Your chance to buy the best from the world leader indata communications. We have a variety of couplersand modems—formerly on lease to our customers—fully refurbished. This is a rare opportunity for youto have the same models used by the largest compa-nies in the world.

• Some models under $100!

• 30-day parts/labor warranty

• Nationwide AJ service network

• Fast delivery

• Variety of models—up to 1200 baud

• Limited quantities

• Use your Visa or Master Charge

Act now. First come, first served. Write AndersonJacobson, Inc., 521 Charcot Ave., San Jose, CA95131. Or call your nearest AJ office:

San Jose, CA Rosemont, IL Hackensack, NJ(408)946-2900 (312)671-7155 (201)488-2525

ANDERSONJACOBSON

Circle 291 on inquiry card.

BYTE August 1979

Circle 379 on inquiry card.

U.S. ROBOTICS, INC.

PENRIL 300/1 200 MODEM

Originate/Auto-Answer

ALLNEW

$799.00

300 or 1200 BaudBell 212 CompatibleFCC CertifiedRS232

Half/Full Duplex onDial-up Phone Lines1 year warrantyStand Alone

PERKIN-

ELMER

BANTAM

$799.00

All the Features of theHazeltine 1400 & LSI ADM-3APlus

Upper/Lower Case7 x 10 Char MatrixWhite or Black CharTransparent ModeAddressable Cursor

Tab FunctionBackspace KeyShiftlockKeyPrint Key

Integrated NumericPad

$41 .CM per montLease-Purchase

$1095.00

TELETYPEMODEL 43KSR

with RS232

10 or 30 CHAR/SEC

132 COLUMNS

UPPER/LOWERCASE

^^ USR-310

m wk Originate

^j Acoustic

^^^$159.00 Coupler

0-300 Baud Stand Alone

Crystal Controlled RS232

^^g£& USR-330

m Originate

W^ Auto-Answer

^^$339.00 Modem

FCC Certified for Direct Connectionto Phone LinesUSR-320 Auto-AnswerOnly Modem $31 9.00

All Units include a 1 20 day warrantyOptional Maintenance package available

Any Product may be returnedwithin 10 days for a full refund.

U.S. ROBOTICS, INC.

1035 W. LAKE ST.

CHICAGO, ILL. 6D6D7

Sales (312)733-0497

General Offices (312) 733-0498Service (312)733-0499

Australian Tandy

Users Club and

Software Exchange

8th Bit is the mainmedium by which SoftwareExchange members keep in-formed of what is happeningin Australia. This newslettercontains information onwhat is for sale and thelocation,contributions frommembers, and informationof general significance.Membership in the Exchangeis $10 per year. Contact PittSt Microcomputer Centre,Second Floor, 373-375 PittSt, Sydney 2000AUSTRALIA.

Detroit PersonalComputer Network

Andrew Fellman has writ-ten to inform us that theDetroit Personal ComputerNetwork will be meeting inAugust. This organizationwas formed to help micro-computer users discover andexchange ideas on user pro-jects, to promote business orfinancial gain, and for en-joyment. More informationmay be obtained by writingto Andrew at 13043McNichols, Detroit MI48219, or calling (313)865-4374.

Software of theMonth Club

Creative Discount Soft-ware has announced theopening of its new Softwareof the Month Club. Thenew club will have separatebranches for users of theApple II, TRS-80, OhioScientific, Exidy, PET andCP/M based systems. Mem-bers will select divisionmemberships such asbusiness applications, educa-tion applications, high levellanguages, games and funapplications, and personaland home management ap-plications. Membershipenrollment applications areavailable from Creative Dis-count Software, Software ofthe Month Department,

POB 24-B-67, Los AngelesCA 90024.

The PhysiciansMicrocomputer Report

The Physicians Microcom-puter Report is a monthlypublication for doctors whowish to become better in-formed about the computerand its application in thefield of medicine. Some ofthe features include softwarenews, calculator corner,computers in patient healthcare, microcomputer hard-ware news, the bargainmarket, and computer ar-ticles of special interest tothe physician. Additionally,the report contains articleson nonmedical applicationssuch as linking your com-puter to a stock portfolio in-formation center. Anotherintent of this publication isto facilitate the exchange ofinformation between physi-cians who own computers.For this purpose, themagazine has a listing ofuser groups.

The Physicians Microcom-puter Report is available for$25 a year, $12.50 forstudents. Contact Dr GeraldM Orosz, POB 6483,Lawrenceville NJ 08648.

BYTE's Bits

Call for Papers

The International Societyfor Mini and Microcom-puters (ISMM) will hold aninternational symposium onmicrocomputers and theirapplication January 30 toFebruary 1 1980 inMonterey CA. The sym-posium will highlighttechnology, hardware, soft-ware engineering, languages,systems architecture, designmethodology, computer net-works, performance evalua-tions, concurrent processing,real time processing,operating systems, portabi-lity for software systems,systems security, digitalsignal processing, education,

204 August 1979 © BYTE Publications lnc

and applications. Send threecamera ready copies of 200word abstracts to Secretary,MIMI-80 (Monterey), POB2481, Anaheim CA 92804 bySeptember 1 1979. Notifica-tion of acceptance will besent by October 1. Cameraready copies of acceptedpapers are due December 151979. Additionally, pro-posals for half day and oneday tutorials are solicited inthe above areas and shouldbe received by September 11979.

Exidy to SponsorSoftware Contest

Exidy Inc, the makers ofthe Sorcerer microcomputer,are sponsoring a contest formicrocomputer programsthis summer. Four Sorcerercomputers will be awardedas grand prizes. The purposeof the contest is to en-courage people who havewritten good programs toshare their programs withother computer owners.Exidy will publish a bookfeaturing the best programsentered in the contest. Thecontest is open to all BASIClanguage computer programswhich will run on theSorcerer. Prizes of free com-puters will be awarded tothe program judged best ineach of four categories:business, education, fun andgames, and home and per-sonal management. Everyentrant will receive a freeposter and a professionallywritten program in exchangefor the program they sub-mit. The contest runs fromJune 1 thru August 31 1979.For further information,contact Paul Terrell,Marketing Communications,Exidy Inc, 969 W MaudeAve, Sunnyvale CA 94086.

Department of MissingAuthors

Once again an author of ayet-to-be-published articlehas moved and neglected toinform us of his new ad-dress. We therefore requestthat James Cherry, whose

last known address was 28The Fenway, Boston MA02215, please contact uswith his current address andtelephone number.

Call for Papers for

Fifth International

Conference on

ComputerCommunications

Technical papers for theFifth International Con-ference on Computer Com-munications to be heldOctober 27 thru 30 1980 inAtlanta GA are beingsolicited for presentation atthe regular conference ses-sions and publication in theofficial proceedings. Theconference is held biannuallyby the International Councilfor Computer Communica-tions as an interdisciplinaryforum for discussing social,economic, political andtechnological implications ofcomputer communicationnetworks.

Topics for 1980 may in-clude a wide range of sub-jects and issues relevant tothe development and use ofcomputer communicationsand its effect on humanaffairs. AH papers must beoriginal, written andpresented in English, andcannot exceed 5,000 words.Specific suggested subjectsare: broad needs and re-quirements, social implica-tions, applications, andtechnology. Manuscriptsmust be typed, double spac-ed, and on one side of thepaper only. A cover pagemust give the title, the fullnames of the author(s), theaffiliation of each author,and the name, address, andtelephone number of theprimary author. A 100 to200 word abstract and a fullset of illustrations mustaccompany the manuscript.

Six copies of all materialshould be sent by March 11980 to Dr J Salz, ProgramChairman, ICCC '80, BellLaboratories 1G-509,Holmdel NJ 07733. The Pro-gram Committee would alsoappreciate advance notice ofthe intention to submit apaper. ■

SUPERSOFTWARE!

MICROWARE 6800 SOFTWARE ISINNOVATION AND PERFORMANCE

INEW1 LISP Interpreter

The programming language LISP offers exciting new possibilities formicrocomputer applications. A highly interactive interpreter that useslist-type data structures which are simultaneously data and executableinstructions. LISP features an unusual structured, recursive function-oriented syntax. Widely used for processing, artificial intelligence,education, simulation and computer-aided design. 6800 LISP requiresa minimum of 12K RAM.Price $75.00

A/BASIC Compiler

The ever-growing A/BASIC family is threatening old-fashionedassembly language programming in a big way. This BASIC compilergenerates pure, fast, efficient 6800 machine language"from easy towrite BASIC source programs. Uses ultra-fast integer math, extendedstring functions, boolean operators and real-time operations. Output isROMable and RUNS WITHOUT ANY RUN-TIME PACKAGE. Disk ver-sions 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.00Cassette Version 1.0 $65.00

I NEW I A/BASIC Source Generator

An "add-on" option for A/BASIC Compiler disk versions that adds anextra third pass which generates a full assembly-language outputlisting AND assembly language source file. Uses original BASIC namesand inserts BASIC source lines as comments. SSB and SWTPCMiniflex version available.Price: $50.00

fNEWl A/BASIC Interpreter

Here it is—a super-fast A/BASIC interpreter that is source-compatiblewith our A/BASIC compiler! Now you can interactively edit, executeand debug A/BASIC programs with the ease of an interpreter—thencompile to super efficient machine language. Also a superb stand-alone 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 timeclock and interrupt control. Thousands in use since 1976 handling alltypes of applications. Available on 6830 (MIKBUG-type) or 2708(EPROM-type) ROM. Manual is a classic on 6800 real-time applicationsand contains a full source program listing.Price: RT68MX (6830) $55.00RT68MXP (2708) $55.00

6800 CHESS

A challenging chess program for the 6800. Two selectable difficultylevels. Displays formatted chess board on standard terminals. Re-quires 8K memory. Machine language with A/BASIC source listing.Price: $50.00

ELIZA

6800 version of the famous MIT artificial intelligence program. Thecomputer assumes the role of a psychoanalyst and you are the patient.This unusual program is unique because the dialog with the com-puter is in unstructured plain English. An impressive demonstrationprogram.Price: $30.00

Our software is available for most popular 6800 systems on cassette or disketteunless otherwise noted. Disk versions available on S.S.B.. SWTPC. or MotorolaMDOS. Please specify which you require. Phone orders are welcomed. We acceptMASTERCHARGE 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.

IVlK^rvlJY\7\lvC/ DES MOINES, IA 50304

SYSTEMS CORPORATION (515) 265-6121

August 1979 © BYTE Publications Inc 205

LISP Applications in Boolean Logic

Richard Weyhrauch

Stanford Artificial Intelligence Laboratory

Stanford University

Stanford CA 94305

and

Henson Graves

Dept of Mathematics

San Jose State University

San Jose CA 95192

In LISP, some data structures can be viewed two dif-ferent ways, either as data or program. This featuremakes LISP unique among high level languages. Whenseen as a program, LISP expressions can be executed andreturn a value: when seen as data, they may be used asarguments for other programs. This means that if wethink about a LISP program as a piece of data we canwrite programs directly in LISP which transform them in-to more useful programs.

We use LISP to imitate the manipulations that are doneby engineers when designing combinatorial circuits. Inthis sense LISP can be used as a calculator for Booleanlogic.

The examples presented here are well known to anyonewho has studied a little hardware design. The purpose ofthis article is to give beginners with LISP some idea ofwhat LISP programs look like and how some interestingsymbolic manipulations can be represented in a naturalway using LISP. It is written primarily with novices inmind. For this reason there are some elementary remarksabout how LISP actually works. The code in this articlewas written as examples of LISP style programming.What we have tried to do is present some programs asthey might be written in existing LISP systems. Of coursethe style is ours.

We illustrate the use of the recursive data structures,lists and S-expressions, and the use of lambda abstractionas a control structure to facilitate recursive transforma-tions on them.

Combinatorial Circuits as Boolean Logic

One learns in circuit theory that combinatorial circuits,those with no feedback, may be represented as Boolean

or propositional expressions. Although these are thesimplest circuits that an engineer might use, this article ismeant to give simple examples of how LISP can be used.For example the circuit in figure 1 is represented by theBoolean expression:

(XI A X2).

We may view this expression as specifying a Booleanfunction. We may also think of this expression as aBoolean program which may be evaluated using the or-dinary rules of logic. There are, of course, many differentexpressions which have the same behavior.

A circuit's behavior can be described by a Booleanfunction. The Boolean function for (XI A X2) may berepresented by:

XI

00

11

X2

0

10

1

F (XI,X2)

1000

Representing Boolean Expressions

Both the circuit diagrams and Boolean expresions areconcrete representations of an abstract data structure,which we refer to as WFFs (well-formed propositionalformulas). In LISP we use a concrete representation ofwell-formed propositional formulas as lists. For example,we represent the expression:

(P V Q) A R

Figure 1: A simple digital circuit whosefunction can be defined by the Booleanexpression (XI A XT)

xi O-

X2 O-

i>

^>

X2

D-

-O XIaX2

206 August 1979 © BYTE Publications Inc

as the list:

(AND (OR P Q) R)

We follow usual programming language practice anddescribe the lists which represent well-formed proposi-tional formulas using a BNF(Backus Naur form) grammaras in table 1.

We can recognize which lists represent well-formedpropositional formulas by writing a LISP program whichtakes a list as input and whose value is T if the listrepresents a WFF and NIL otherwise. This program canbe viewed as a parser for the language generated by thisgrammar. It has a recursive definition which parallels thegrammar:

(DEFINE ISWFF (E)(COND ((ISCONST E) T)

((ISVAR E) T)

((ISUNARY E) (ISWFF (body E)))

((ISBINARY E) (AND (ISWFF (lhs E))(ISWFF (rhs E)))

(T NIL) )) )

The subfunctions body, lhs, rhs, ISCONST, ISVAR,ISUNARY and ISBINARY must also be defined. Theirdefinition reflects our specific representation of well-formed propositional formulas in LISP. For example:

(DEFINE ISUNARY (E)

(EQ (CAR E) (QUOTE NOT)) )

Evaluation of these defining programs has the side ef-fect of storing the function definition in memory. Subse-quently, the name ISWFF may itself be used in a pro-gram. LISP represents function application by evaluatingthe list whose first element is the function and the remain-ing elements are the arguments. Evaluating the program:

(ISWFF (QUOTE (AND (OR P Q) R)))

returns the value T.

For any expression A the evaluation of (QUOTE A) issimply A. This is how we make LISP treat A as data.Thus in the above program the argument to ISWFF istreated as data.

Representing Boolean Programs

If we consider T as representing true and NIL as falsethen we can represent the usual Boolean expressions asLISP programs using COND. COND is LISP's version ofIF-THEN-ELSE.

(DEFINE NOT (A)

(COND (A NIL) (T T)) )

(DEFINE OR (A B)

(COND (A T) (T B)) )

(DEFINE AND (A B)

(COND (A B) (T NIL)) )

(DEFINE IMPLIES (A B)(OR (NOT A) B) )

<wff>

=

<const> 1 <var> 1 <unary> j <binary>

< const >

=

T|NIL

<var>

=

< identifiers*

<unary>

=

(NOT <wff>)

<binary>

=

(AND <wff> <wff>) | (OR <wff> <wff>) |(IMPLIES <wff> <wff>) | (EQUIV <wff> <wff>

Table 1: In LISP, list representations for WFFs (well-formed pro-positional formulas) are described using a Backus Naur form ofgrammar. In LISP, T and NIL are generally used as the constantsfor true and false respectively. These correspond to 1 and 0 indigital circuit diagrams.

(w,v)

w

w

v v

WAV

w = v

W D V

f,f

t

f

f

t

t

f,t

t

f

f

f

t

t,f

f

t

f

f

f

t,t

f

t

t

t

t

Table 2: Examples of truth tables for Boolean algebra. For twoinputs (w and v) Boolean results are shown for the negated valueof w, w OR v, w AND v, equality, and implication.

(DEFINE EQUIV (A B)

(OR (AND A B) (AND (NOT A) (NOT B)) )

Notice that we have defined IMPLIES, and EQUIV interms of NOT, AND, and OR. These definitions meanthat well-formed propositional formulas like:

(AND (OR T NIL) T)

are valid LISP programs whose evaluation returns a truthvalue (ie: T or NIL). These values correspond to thosedetermined by the usual truth table evaluation of Booleanexpressions as reviewed in table 2.

For example, if in the well-formed propositionalformula (AND (OR P Q) R), we replace P by T, Q byNIL, and R by T: by observing that (t V f) = t and (t At) ■ t, we calculate the value of this well-formed proposi-tional formula as T. Logicians call this kind of assignmentof truth values to the atoms an interpretation of the well-formed propositional formula.

One question we should ask is what happens if we tryto evaluate a well-formed propositional formula whichcontains variables rather than simply T and NIL. Forexample:

(AND (OR P Q) R))

will return an error message saying that P is an undefinedvariable.

One thing we can use to make the substitution of T andNIL to these variables is the lambda construction.Evaluation of:

((LAMBDA (P Q R) (AND (OR P Q) R) (T NIL T))

will result in T.

Viewing Programs as Data

Evaluation of a Boolean program corresponds to asimulation of the circuit represented by the program. We

August 1979 © BYTE Publications Inc 207

may also want to use LISP to answer questions about ourcircuits. We will consider two standard questions askedabout programs for these circuit programs:

• When do two programs compute the same func-tion? (analysis)

• Given an I/O (input/output) specification con-struct a program with this behavior, (synthesis)

Analysis

Analysis of a program starts with the question—whatis its behavioral description? One may then considerquestions of efficiency. The complete input/outputdescription is expressed by the Boolean function. Abovewe have called this the function computed by the pro-gram. In logic this function is just the set of all interpreta-tions of the well-formed propositional formula. TheBoolean function for the expression (X A Y) V Z ex-pressed as a table is:

K,Y,Z)

(X A Y) V Z

0,0,0

0

0,0,1

1

0,1,0

0

0,1,1

1

1,0,0

1

1,0,1

1

1,1,0

0

1,1,1

1

If a well-formed propositional formula, w, has n vari-ables then there are 2n interpretations. Thus the I/O tablehas 2n entries. Complete behavioral knowledge could beobtained by making the 2n possible evaluations. Oftenonly partial behavioral knowledge is needed and this maysometimes be obtained without complete simulation.

Two programs are called equivalent when they com-pute the same function, i.e., they have the samebehavior. A well-formed propositional formula whichevaluates to T under all interpretations is called atautology. The well-formed propositional formula (IM-PLIES (AND P Q) (OR R P)) is a tautology. Two well-formed propositional formulas wl and w2 are calledequivalent if (EQUIV wl w2) is a tautology. This meansthat wl and w2 have the same I/O behavior. Thus forcircuit programs the notion of equivalence coincides withthe logic notion of equivalence.

One simple way to determine if a well-formed proposi-tional formula is a tautology is to compute all its inter-pretations. This brute force technique can be improvedupon by using an algorithm introduced by Quine in 1950.Our experience with the FOL project at the Stanford Ar-tificial Intelligence Laboratory indicates that thisalgorithm represents considerable improvement over thelisting of all cases. It is informally described as follows.

Choose one variable p and make two new expressions,one obtained by substituting t for p in the well-formedpropositional formula and the other obtained bysubstituting f for p in the well-formed propositional for-mula. Take the conjunction of the two expressions, anduse the following simplification rules.

/^From theOriginator

of theTRS-80Project

FORTRAN

Now Sale Priced!

Comparable to compilers on largemainframes and minicomputers. Allof ANSI Standard FORTRAN X3.9-1966 is included except COMPLEXdata type. Therefore, users maytake advantage of the many appli-cations programs already written inFORTRAN. Package includes:

FORTRAN Compiler

Macro Assembler (Z80)

Linker

Library

Lib Manager (Not in TRS-DOSversion) Price -$a5ft©6

For this month only

Sale Priced at $250.00Manual $25 00(Specify TRS-DOS or CP/M versions)

CP/M is a registered trademark of Digital Research Corp.TRS-80 is a registered trademark of Radio Shack.

PASCAL

UCSD Pascal, the powerful generalpurpose language system, de-veloped for large and complexprograms is now available for yourTRS-80.

The FMG/UCSD PASCAL systemopens a new generation of valuefor your TRS-80. Package in-cludes:

Operating System

Screen Editor

Z80 Macro Assembler

Debugger

Pascal Compiler

Utilities and System

Reference Book $150.00

Requires 48K Systemwith 2 Drives

Available withoutMacro AssemblerLinker and Debugger $100.00

CP/M OPERATINGSYSTEM

Editor, Assembler, Debugger andUtilities for 8080 and Z80 Sys-tems. Up to four floppy disks.Package includes:CP/M System Diskette 51/4"CP/M Features andFacilities ManualCP/M Editor's ManualCP/M Assembler ManualCP/M Debugger ManualCP/M Interface Guide $150.00(Set of 5 manuals $25.00)

Call or Writexr- for Complete Information

CORPORATION

A Division of Applied Data CorporationP. G. Box 16020, Fort Worth, Texas 76133, (817) 294-2510

August 1979 © BYTE Publications Inc

Circle 134 on inquiry card.

Listing 1: A program can be written to look for tautologies. Twowell-formed propositional formulas are said to be equivalent ifthey both exhibit the same behavior.

(DE TAUT (WFF) (TAUT1 (SIMP WFF)))

(DE TAUT1 (W)(COND((ISCONST W) W)(T (TAUT

((LAMBDA (X) (MKAND (SUBSTTXW)

(SUBST NILX W)))(FIRSTVAR W))))))

(DE SIMP(W)

(COND ((OR (ISCONST W) (ISVAR W)) W)

((ISNOT W) (SIMPNOT (SIMP (body W)»)((ISOR W) (SIMPOR (SIMP (Ihs W»(SIMP(rhs W))))((ISAND W) (SIMPAND (SIMP (Ihs W))(SIMP(rhs W))))((ISIMPLIES W) (SIMPIMP (SIMP (Ihs W))(SIMP(rhs W))))((ISEQUIVW) (SIMPEQUIV (SIMP (Ihs W))

(SIMP(rhs W))))))

(DE SIMPNOT (W) (COND ((ISFALSE W) T)((ISTRUE W) NIL)(T (MKNOT W))))

(DE SIMPOR (W1 W2) (SIMPANDOR ' OR W1 W2 W1 W2»

(DE SIMPAND (W1 W2) (SIMPANDOR ' AND W1 W2 W2 W1))

(DE SIMPIMP (W1 W2) (SIMPOR (SIMPNOT W1) W2))

(DE SIMPEQUIV (W1 W2)

(SIMPAND (SIMPIMP W1 W2)(SIMPIMP W2 W1)))

(DE SIMPANDOR (OP W1 W2 V1 V2)

(COND ((ISTRUE W1)V1)((ISTRUE W2) V2)((ISFALSE W1)V2)((ISFALSE W2) V1)(T (MKOP OP W1 W2))))

(DE FIRSTVAR (W1)

(COND ((ISVAR W1) W1)

((UNARY W1) (FIRSTVAR (body Wt)))((FIRSTVAR (Ihs W1)))(T (FIRSTVAR (rhs W1)))))

(DE ISIMPLIES (X) (EQ X T))

(DE ISFALSE (X) (EQ X NIL))

(DE ISNOT (X) (EQ (CAR X) (QUOTE NOT)))

(DE ISOR (X) {EQ {CAR X) (QUOTE OR)))

(DE ISAND (X) (EQ (CAR X) (QUOTE AND)))

(DE ISIMPLIES (X) (EQ (CAR X) (QUOTE IMPLIES)))

(DE ISEQUIV (X) (EQ (CAR X) (QUOTE EQUIV)))

(DE ISEQOR (X) (EQ X (QUOTE OR)))

(DE Ihs (WFF) (CADR WFF))

(DE rhs (WFF) (CADDR WFF))

(DE body (WFF) (CADR WFF))

(DE MKOP (OP X Y) (LIST OP X Y))

(DE MKAND (X Y) (MKOP (QUOTE AND) X Y))

(DE MKNOT (X) (LIST (QUOTE NOT) X))

(DE ISCONST (W) (OR (EQ W T) (EQ W NIL)))

Listing I continued on page 210

f : = t

t D w

=

w

f D w

=

t

t V w

=

t

t A w

=

w

T: = (

w D t

=

t

w D f

=

w

f V w

=

w

f A w

=

f

Repeat the branching and simplifying until all branchesconsist of either t or f. If all branches terminate in t, thewell-formed propositional formula is a tautology, other-wise it is not. Applying the Quine algorithm to the well-formed propositional formula, (p A q) D (r V p)yields:

((t A q) 3 (r V t)) A ((f A q) D (r V f))

(q D t) A (f D r)

t A t

t

The LISP program in listing 1 represents the Quinealgorithm.

The evaluation of:

(TAUT (QUOTE (IMPLIES (AND P Q) (OR R P))))

returns T. Notice we have used the Boolean functionsIMPLIES, AND, and OR in these definitions.

Synthesis

Consider the problem of synthesizing a program withits I/O behavior specified by the table:

X

Y F(X,Y)

00

11

0 0

1 1

0 1

1 0

?le may be represented by the list:

(X Y)(0 0(0 1(1 0(1 1

0)

1)1)

0) )

A well-formed propositional formula which has thisbehavior may be constructed by observing that:

F(X,Y) = 1 if either X = 0 and Y = 1orX = 1 and Y = 0.

This Boolean function may_be realized by the well-formed propositional formula (X A Y) V (X A Y). Thiswell-formed propositional formula has a very specialform. Well-formed propositional formulas which are

Text continued on page 211

August 1979 © BYTE Publications Inc 209

Circle 205 on inquiry card.

DISCOUNT PRICES

Microcomputers & Peripherals

ITSYTESOOKSARGAINS

■■ilk

I 1

U

« * m e m .

Cromemco • SWTPC • Lear-Siegler

Hazeltine • RCA • North StarVerbatim • Perkin Elmer and others

Fast, off the shelf delivery.Call TOLL FREE 800/523-5355

MARKETLINE SYSTEMS, Inc.

2337 Philmont Ave., Huntingdon Valley, Pa. 19006

215/947-6670 • 800/523-5355

Dealer Inquiries Invited

BYTE

BACK IS6JJU

TOD. MLE

The following issues are available:

March, May thru December, 1977; February thru

October, 1978; and January, February, April, May, June

and July 1979.

Cover price for each issue thru August '77 is $1.50 plus

259 postage and handling (S3.50 total foreign).

September '77 thru '79 issues are $2.00 plus 509

postage and handling($4.00 total foreign).Send requestswith

paymentto:

BYTE

Publications

70 Main St.

Peterborough

NH

03458

Attn:

Back Issues

Listing 1 continued from page 209:

(DE ISVAR (W) (AND (ATOM W) (NOT (NUMBERP W))))

(DE UNARY (W) (EQ (CAR W) (QUOTE NOT)))

(DE BINARY (W)(OR (OR (OR (EQ (CAR W) (QUOTE AND))(EQ (CAR W) (QUOTE OR)))(EQ (CAR W) (QUOTE IMPLIES)))(EQ (CAR W) (QUOTE EQUIV))))

(DEFINE SYNTHESIS (L)(mkor (REVERSE (CAR D) (REVERSE (COR L))))

(DEFINE mkand (V L)(PROG (X)

(COND ((EQUAL (CAR LI 0) (RETURN NIL)))(SETO L (C!;R l»

(SETQ X (COND ((EQUAL (CAR L) 0) (LIST (QUOTE NOT) (CAR V)))(T (CAR V)»)L1 (SETQ V (CDR V))(SETQ L (COR L))(COND ((NULL L) (RETURN X)»(SETQ X

(CONS (QUOTE AND)(CONS (COND

((EQUAL (CAR L) 0) (LIST (QUOTE NOT) (CAR V)))(T (CAR V))) (LIST Xffl)(GO L1))l

(DEFINE mkor (V L)(PROG (X)

(SETQ X (mkand V (REVERSE (CAR L)»)L1 (SETQ L (COR D)

(COND ((NULL L) (RETURN X)))

(SETQ X (CONS (OUOTE OR) (CONS (mkand V (REVERSE (CAR L))) (LIST X))))

(GOL1)))

Listing 2: A well-formed propositional formula which is a sumof products with each summand having literal factors is said tobe in disjunctive normal form. Any Boolean function F(Xl, . . .Xn) of n variables may be described by a well-formed proposi-tional formula in disjunctive normal form. This program con-structs a well-formed propositional formula in disjunctivenormal form.

(DE PN (WFF Z)(COND ((ATOM WFF) (COND ((ISEQOR Z) (MKNOT WFF)) (T WFF)))((ISNOT WFF) (PN (body WFF) (FLIP Z)))(OSEQUIV WFF)(MKOP Z

(MKOP(FLIPZ)

(PN (Ihs WFF) (QUOTE OR))(PN (rhs WFF) (OUOTE AND)))

(MKOP (FLIP Z)

(PN (Ihs WFF) (QUOTE AND))(PN (rhs WFF) (QUOTE OR)))))((ISIMPLIES WFF) (MKOP (FLIP Z)

(PN (Ihs WFF) (FLIP Z»(PN (rhs WFF) Z)))((ISAND WFF) (MKOP Z

(PN (Ihs WFF) Z)(PN (rhs WFF) Z»)((ISOR WFF) (MKOP (FLIP Z)

(PN (Ihs WFF) Z)(PN (rhs WFF) Z)))))

(DE FLIP (Z) (COND ((EQ Z (QUOTE OR)) (QUOTE AND)) (T (QUOTE OR))) )

Listing 3: Any well-formed propositional formula may betransformed into disjunctive normal form. This recursive LISPprogram uses the rules described in the text to complete thetransformation.

210 August 1979 © BYTE Publications Inc

Circle 316 on inquiry card.

Text continued from page 209:

either variables or the negation of variables are calledliterals. The above well-formed propositional formula isan example of a sum of products where the factors ofeach summand is a literal. A well-formed propositionalformula of this type is said to be in DNF (disjunctive nor-mal form).

The well-formed propositional formula (X A Y) V(X A Y) was constructed by looking at each row ofthe above table which has the value 1. For each such rowwe form a conjunction containing those variables withvalue 1 and the negation of those with value 0. We finishby taking the disjunction of all these conjunctions. AnyBoolean function F(Xl,...Xn) of n variables may berealized by a well-formed propositional formula in dis-junctive normal form in this way. The code in listing 2uses the list representation of function tables displayedabove and constructs a well-formed propositional for-mula in disjunctive normal form. Every well-formed pro-positional formula may be put into disjunctive normalform. The following transformation rules applied to awell-formed propositional formula w as long as anysimplifications can be made to yield a disjunctive normalform equivalent to w.

(wl ■ w2) :- ((wl D w2) A (w2 D wl))

(wl D w2) : = ((wl) V w2)

((wl)) := wl

(wl A w2) := (wl) V (w2)

(wl V w2) := (wl) A (w2)

(wl A (w2 V w3)) := ((wl A w2) V (wl A w3))

((wl V w2) A w3) : = ((wl A w3) V (w2 A w3))

These rules may also be converted into a recursive LISPprogram as in listing 3.

The program PN (push negation) removes EQUIV andIMPLIES, pushes all negations into the well-formed pro-positional formula so that NOTs only appear as part of aliteral. PN works by "remembering" how many NOTs ithas seen. This is kept track of by a flag which is ANDwhen the number is even and OR if it is odd.

DNF1 then applies the distributive law until the for-mula is in disjunctive normal form. Thus we compute thedisjunctive normal form of a well-formed propositionalformula, w, by evaluating:

(DNF (QUOTE w)).

Conclusion

In this short paper we have given some examples of us-ing LISP data structures in several different ways at oncewith examples from circuit design. These are not the onlyexamples we could have chosen. A natural extension isthe set of programs which deal not only with synthesisand analysis but with the optimization of circuits. Thatis, construct a program with a specified behavior whichis by some measure best. For example, we could writecode to compute the minimal sum of products representa-tion of a circuit where each product is a prime implicant.This is the typical kind of thing studied in courses oncombinatorial circuits. ■

CATCH THE

S-100INC.

BUS!

Imsai PCS 80/10 "8080" Kit

Shugart 800-R 8" Disk Drive

Georgia Magnetics 8"Diskettes Soft Sectored perBox of 10

Godbout 8K Static "Unkit"

SSM VB-2 Video Board Kit

Dynabyte 16K Static MemoryBoard 250 nanoseconds

OURLIST SPECIALPRICE CASH

PRICE

750.00 625.00

610.00 425.00

45.00 30.00

149.00 118.00

159.00 125.00

555.00 440.00

Call for Our Prices on:

Cromemco, IMSAI, Vector Graphic, North Star, Sanyo,

Hazetline, IMC plus Most Other Major Lines.

Subject to Available Quantities • Prices Quoted Include Cash DiscountsShipping & Insurance Extra.

bus S-IDD,inc.

Address 7 White Place

Clark, N.J. 07066Interface 201-382-1318

Zs - SYSTEMS

64K RAM BOARD

The Zs-SYSTEMS 64K RAMboard is designed to operatein any Z80 based microcom-puter having S-100 bus. Ituses 16K dynamic RAM chips,& features:

—Board select

—Bank select

—Transparent on-boardrefresh

—2 or 4MHz operation(w/ no wait state)

—Memory disable

FLOPPY DISKCONTROLLER

Handles with no modificationup to:

* 4 standard 8" drives(Shugart or compatible) or

* 3 minidrives 5"

Run with 2 or 4 MHz CPU

Compatible with Cromemco

system, Fully assembled,

burned in, & tested

Available from stock

to 60 days

As low as $500.00 in

quantities of 100

Price of one $649.00

PC board only $59.00

With 16K RAM $359.00

Plus shipping charges

- ■***£££

Use CP/M Disk Operating SystemUsing the 1771 LSI controller

Price ol one $245.00

PC board only $35.00

SEND FOR FREE INFORMATION

6 months warranty on our boards with normal use

Zs SYSTEMS

PO Box 1847, San Diego, CA 92112(714) 447-3997

Circle 401 on inquiry card.

August 1979 © BYTE Publications Inc 211

AssemblyLanguage Switching

Programming Quickies

Ira Chayut

Bell Laboratories

Naperville IL 60540

When programming in assembly language,it is often useful to borrow the toolscommonly available to high level languageprogrammers. One such tool is the switchconstruct, or multi-way jump. A switchsteers program execution to one of a numberof memory locations, depending on a testvalue. The switch may be implemented as aseries of compares and conditional jumps.An alternate implementation is to createthe switch with a subroutine and case tables.A case table can be of variable length; it listsvalues to be tested for and the associatedaddresses to which program control may bepassed. In addition, a default address isincluded in the list. If the test value is notequal to any of the values in the list,program execution continues at the defaultaddress.

One possible use of the switch is todecode 1-character commands and jump to

Listing I: SWITCH, a program to perform multi-way jumps. SWITCH isentered via a jump with register A containing the test value and register pairHL containing the starting address of a case table. The format of the casetable is any number of 3 byte case entries followed by a 3 byte default entry.Each case entry consists of a I byte case value followed by a 2 byte address.The default entry consists of a byte containing hexadecimal FF followed by a2 byte address. If the test value contained in register A is equal to a caseentry, a jump to the associated address is executed. If no match is found, ajump to the address of the default entry is executed. Since the default value ishexadecimal FF a case value of FF is not allowed.

Routine SWITCH does not execute a return itself. If it is entered via a callinstruction, the routine indicated in the case table should contain returns tothe calling program.

get case value

point to case address

case and test values equal?-yes, prepare to jump-no, case entry equals FF?

-yes, prepare to jump

-no, point to next case entry

try next case

get low byte of case address

SWITCH:

MOV

B,M

INX

H

CMP

B

JZ

SW01

INR

B

JZ

SW01

INX

H

INX

H

JMP

SWITCH

SW01:

MOV

B,M

INX

H

MOV

H,M

MOV

L,M

PCHL

get high byte of case addressput low byte in Ljump to case address

VIDEO BOARD FEATURESI6 tine format with 128 display-able charactersSerial ASCII or BAUDOT with multiple Baud ratesSI1J7 Assembled or $167 Kit (Partial Kit *!»$))• Full cursor control with scrolling and p&£ing*QL»&!* O?* !><>su! powyr ^supply

* Serial interface RS232 or current loop

• Purcliase SCT-100 alone or complete terminal

»XIT€XCORf>

9801 t harlwvll Drive

Dallas. Texas 75243(214) 349-2400

( 1 - 11HV) ORDER BY PHONE,Ovt>n*»s .»ldet« J. dealer* welcome

I

SEND

• 1 to 150 WPM (set fromterminal)

• 32 character FIFO bufferwith editing

• Auto Space on word boundries

• Grid/Cathode key output

• LED Readout for WPMBuffer space remaining

»XIT€X MORSE TRANSCEIVER

• $95 Partial Kit • $225 Complete Kit • $295 Assembled

COPY

• 1 to 150 WPM withAuto-Sync.

• Continuously computesand displays Copy WPM

• 80 HZ Bandpass filter.

• Re-keyed Sidetone Osc.with on-board speaker.

• Fully compensating tocopy any 'fist style'

SERIAL INTERFACE

• ASCII (110, 300, 600, 1200)

or Baudot (45, 50. 57, 74) compatible

' Simplex Hi V Loop or T2Lelectrical interface

• Interlaces directly with theXITEX*SCT-100 Video Terminal Board;Teletypes' Models 15, 28, 33, etc.;or the equivalent

212 August 1979 <S BYTE Publications Inc

Circle 392 on inquiry card.

Listing 2: Example use ofSWITCH routine. Thevalue to be tested is put inregister A by the call toroutine GET. In this casewe are checking I-charac-ter commands for additionand subtraction. If thecharacter is neither a sub-traction nor an additionsymbol, the routine exitsat the default jump.

the appropriate servicing routine. Thedefault address might be the start of asection of code to print out an errormessage.

Listing 1 contains the switch procedurefor the 8080 processor. A section of codeand a case table illustrating the switch's useappear in listing 2."

CALL GET

; get a character

LXI H.CTBL

; point to case table

JMP SWITCH

; decode command

ADD: • • •

; add routine

SUB: • • •

; subtract routine

ERR: • • •

; invalid command handler

; case table follows

CTBL:DB '+'

; add command

DWadd

DB '"'

; subtract command

DWsub

DB FFH

; default, error

DW err

Turn Your KIMinto a Metronome

David Kellerman1047 Schuyler DrEndicott NY 13760

Using the program described in listing 1(on page 214) and a tape recorder, readerscan transform their KIM-1 computers intometronomes. The main part of the programconsists of three nested timing loops used toperiodically invert the line going to the taperecorder. The resulting square wave pulseis audible as a click through the taperecorder's speaker when the monitor switchis on and the tape recorder is set as if a tapewere being recorded. If your recorder has nomonitor switch, simply make a recording ofthe clicks and play it back.

To use the program, set hexadecimalmemory locations 0000 and 0001 equal tothe appropriate values for the desired clickrate (see figure 1 on page 214). Start theprogram at location 0002, and have fun ac-companying your computer!

4K CMOS Memory IC's

Eliminate heat build-up &Reduce Power Supply Requirements

4Kx1 6504 CMOS memory chips $8.00 eachThe 6504 is plug compatible with 4044 NMOS

1Kx4 6514 CMOS memory chips $8.00 each

BOTH CHIPS FEATURE:

Low Power Standby <2.5 mW Max

Low Power Operation <25 mW/MHz Max

Fast Access Time <300 nsec Max

TTL Compatible Input and Output

Common Data Input/Output

Industry Standard 2114 Type Pinout

On Chip Address Register

Easy Interfacing With Multiplexed Bus uP's (8085)

ALL CHIPS TESTED - 100% FUNCTIONAL

DIGITAL GROUPEquipment Users

32K Memory Boards without memory chipsThese boards are designed to use eitherthe 6504 or 4044 NMOS memory chips

$60.00

KIT

$284

$508

32K memory boards with 16K of memory32K memory boards with 32K of memoryROTA-STROBES for monitoring and adjustingPHI -DEC K Tape Speed $4.50 each

Send Orders To: EMERGE SYSTEMSP.O. Box 2518Satellite Beach, Fl 32937

ALL ORDERS MUST BE PREPAID WITH CHECK OR M.Allow time for personal checks to clearFlorida residents add 4% sales tax

ASSEM

$359

$608

Circle 131 on inquiry card.

August 1979 © BYTE Publications Inc 213

Listing 1: Metronome program for theKIM-1 computer. Nested timing loopscreate audible clicks through a tape re-corder hooked up to the computer.The period can be easily altered by theuser.

Hexadecimal

Address

Opcode

Label

Instruction

Comments

0002

AO

80

LDY

#80

Make line to tape recorder

0004

8C

43 17

STY

1743

an output line.

0007

AD

42 17

LDA

1742

Produce a click by inverting

000A

49

80

EOR

#80

the line that goes to the

OOOC

8D

42 17

STA

1742

tape recorder.

000 F

A5

00

LDA

00

\

0011

85

EO

STA

EO

I

0013

A5

01

L3

LDA

01

1

0015

85

E1

STA

E1

1

0017

AO

FF

L2

LDY

#FF

1

0019

88

L1

DEY

> Delay

001A

DO

FD

BNE

L1

J

001C

C6

E1

DEC

E1

1

001 E

DO

F7

BNE

L2

1

0020

C6

EO

DEC

EO

1

0022

DO

EF

BNE

L3

/

0024

4C

07 00

JMP

0007

Repeat

Figure I: Calculating the metronome'speriod. First, find the desired numberof beats per minute on the Y axis,then read across to the two curves andenter the corresponding values for theprogram on the X axis into hexadeci-mal memory locations 0000 and 0001.

00 20 40 60 80 AO

CONTENTS OF LOCAT ION 0000 (In h.x)

214 August 1979 © BYTE Publications Inc

Memory Test Program

Frank J Caperello

1806 Kuser Rd Apt 9

Trenton NJ 08690

Did you ever have a program that ransuccessfully for months, only to have itsuddenly bomb? Or are you getting in-consistent results from your data? It couldbe that your computer is losing its memory.Your problem may be due to memory loca-tions becoming degraded because of a bitfailure. With microprocessors having 4 Kbyte or greater amounts of memory it isalmost impossible to check each and everylocation manually for a bad bit, unless youhave a year of free time on your hands.

This wouldn't be a problem if the micro-processor had parity memory. Parity mem-ory is implemented as an extra hardware bitthat detects a bit malfunction. Unfortun-ately, parity memory also has a high costfactor, so it is usually unavailable on micro-computer systems. The memory test pro-gram shown here will not replace paritymemory, but will assist you and save timein locating bit malfunctions.

This program is 8080 compatible andwill check up to 64 K bytes of memory.Although the program was written for anIMSAI 8080 system with front panel, itcan easily be modified to work on other 8080based microcomputer systems. The programcan also be modified to be placed in readonly memory so a check can be run withouthaving to manually load the program.

Basically, this program clears and setsup the internal registers, inputs the amountof memory you want to test, loads the testmemory with a pattern and then checks it.If all goes well, it increments the patternand repeats the entire process. The testpattern starts out at octal 000 and is in-cremented to octal 377; when it is incre-mented again, a pass has been completed.A pass counter is incremented and displayedin the control panel output port lightemitting diodes (LEDs). On start up, theText continued on page 217

68 MICRO JOURNAL

®

**

THE

ONLY

6800/09

USER-ORIENTE!MAGAZINE

Months ahead of all others with6800/09 articles & new products

Crunchers Corner — Bryant (A monthly programmingtutorial) * Flex® to BFD — Puckett * Tiny Music —Thompson * Semiconductor, Part 1 — Kinzer * Soup UpYour TVT — Pass * Hints & Kinks — fixes (soft & hard) *50 pages plus Each Month!

Crunchers Corner — Bryant * A Look atthe SWTPC CT-82 - Ferguson * 6800Relative Branch Calculation (Hand) —Berenbon * Relative Calculator (Machine)— Heatherington * Maillist (Disk) — Lilly *Modems — Schuman * Semiconductor -Part 2 — Kinzer * Locate — Pigford * A20MA, Printer-SWTPC — Perdue * AS-50Monitor Board — Pentecost * TSC Basicfor 6800 — Shirk * Plus Much-Much More!

Crunchers Corner — Bryant * ACase for the Small DOS — Mauch

* MF-68 Motor Fix — Sorrels *Transfer (FLEX 1 to 2 or 5) -Womack * 6800 Delay — Beren-bon * 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

KB BYTE CC DOBB'S PAGES

7.8 6.4 2.7 2 2 19.1 ea. mo.

Average cost for all four each month: $5.88

(Based on advertised 1-year subscription price)

'68' cost per month: 88C

($10.50 Charter Subscription Rate)

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 SUBSCRIPTIONBill My: Master Charge Q — VISA □

Card 3t - — Exp. Date

For Q 1-Year □ 2 Years □ 3 YearsEnclosed: $

Name

-ZiP-

City State

My Computer is:

68 MICRO JOURNAL

3018 Ha mil I RoadHIXSON, TN 37343

FOREIGN ADD:$9.50 Per Yr. Surface$26.50 Per Yr. Air MailNOTE:

Subscription Rates to increaseAugust 1979 by 40% — Don't missanymore than you have already!

* MORE 6800 ARTICLES THAN ALL OTHERS COMBINED *

Circle 329 on inquiry card.

August 1979 © BYTE Publications Inc 215

Listing 1: Memory test program.

000

START

XRA

A

257

001

MOV

E,A

137

002

MOV

D,A

127

003

CMA

057

004

MOV

C,A

117

005

OUT

323

006

377

377

007

IN

333

010

377

377

011

MOV

B,A

107

012

INX

BC

003

013

REDO

MOV

A,E

173

014

LXI

HL

041

015

XXA

(FIRST)

133

016

XXB

000

017

LOAD 1

MOV

M,A

167

020

INX

H,L

043

021

MOV

A,C

171

022

CMP

L

275

023

JC

Z

312

024

LOAD 2

032

025

000

026

LOAD 3

MOV

A,E

173

027

JMP

303

030

LOAD 1

017

031

000

032

LOAD 2

MOV

A,B

170

033

CMP

H

274

034

JC

NZ

302

035

LOAD #

026

036

000

037

MOV

A,E

173

040

LXI

HL

041

041

XXC

(FIRST)

133

042

XXD

000

043

CHECK 1

CMP

M

276

044

JC

NZ

302

045

ERR

107

046

000

047

INX

HL

043

050

MOV

A,C

171

051

CMP

L

275

052

JC

Z

312

053

CHECK

2

061

054

000

055

CHECK 3

MOV

A,E

173

056

JMP

303

057

CHECK 1

043

060

000

061

CHECK 2

MOV

A,B

170

062

CMP

H

274

063

JC

NZ

302

064

CHECK 3

055

065

000

066

MOV

A,E

173

067

INR

A

074

070

MOV

E,A

137

071

CPI

376

072

000

000

073

JC

NZ

302

074

REDO

013

075

000

076

MOV

A,D

172

077

INR

A

074

100

MOV

D,A

127

101

CMA

057

102

OUT

323

103

377

377

104

JMP

303

105

REDO

013

106

000

107

ERR

SHLD

042

110

ERR 3

131

111

000

112

STA

062

113

ERR 2

130

114

000

115

MOV

A,M

176

116

STA

062

117

ERR 1

127

Os to register A.

Os to pattern register.

Os to pass complete register.

377 to output to reflect 0 in light emiting diode (LED).

377 to low order half of maximum address.

Output 377 to reflect 0.

In output port LEDs.

Input from the switches the high half of the maximum

address.

Move it to the high half of maximum add register.

Increment the register.

Move the test pattern to register A.

Load the first memory location to be tested into the

current address register.

Go put the test data in.

Increment the address.

Get low order half of maximum address.

Compare it to low order half of current address.

It compared now go check the high order half of

maximum address.

Here there is still more to do.

Go get test pattern and jump back and deposit it again.

Get the high order half of maximum address.Compare it to low order half of current address.Jump if it does not compare.This means that there is still more to do.

Here we start to check so you get the test pattern.Reload the current address register with the firstmemory location to be tested.

Check the memory location.

If they do not compare jump to the error routine.

Here if they do compare, increment the current address

to the next location.

Now get low order half of maximum address.

Compare it to low order half of current address.

If they are equal go jump to check the high order

half.

Here if still more to check, go get the test data and jumpback to recheck it again.

Get the high order half of maximum address.Compare it to low order of current address.Jump if it does not compare.This means that there is still more to do.

Get the test data.

Increment it for the next pattern.

Save the test data.

See if the test data is equal to 0s.

Jump if it is not — this means that we still have patternsto do before we can complete this pass.

Pass complete so get the pass counter.

Increment register.

Put it back to save it.

Complement it so it looks correct in the control panel

LEDs and output it to the IO port.

Go back and redo the test.

Here if we have an error store the current address wherethe fault occurred.

Store the correct data as it should have been read frommemory.

Go retrieve the incorrect data.

Store it so we can see where the error was.

Listing 1 continued on next page

216 August 1979 & BYTE Publications Inc

Circle 78 on inquiry card.

PET PRINTER ADAPTER

GET HARD COPY FROM YOURCOMMODORE PET USING ASTANDARD RS 232 PRINTER

i-jnnp "'~*x nnnn ^^

1200B

1200C

The CmC ADA 1200 drives anRS-232 printer from the PETIEEE-488 bus. Now, the PETowner can obtain hard copylistings and can type letters,manuscripts, mailing labels,tables of data, pictures, in-voices, graphs, checks, needle-point patterns, etc., using astandard RS-232 printer orterminal.

$98.50 ADA1200B

Assembled and tested

$169.00 ADA1200C

With case, power supplyand RS-232 connector

Order direct or contact your local computer store.Add $3.00 for postage and handling per order.

O CONNECTICUT microCOMPUTER

(jjjj) (=, 150 POCONO RD, BROOKFIELD.CT 06804

ILfl (2031 775 9659 TLX: 7104560052

120

000

121

MOV A,D 172

Now get the number of complet

122

STA

062

away for future use.

123

ERR 0

126

124

000

125

HLT

166

Stop.

126

ERR 0

000

000

Pass number.

127

ERR 1

000

000

Bad data.

130

ERR 2

000

000

Good data.

131

ERR 3

000

000

Low order half of failed address

132

000

000

High order half of failed address

133

FIRST

000

000

First tested location.

Text continued from page 215:program receives the number of the 256locations of memory to be tested via thecontrol panel input port switches. The testwill run until the stop button is depressedor until an error is detected.

Let's look at what happens when an erroris detected; the machine comes to a halt —the error 0 location contains the number ofsuccessfully completed passes.

In the error 1 location is the incorrectdata as retrieved from the faulty memory.In the error 2 location is the correct data asit should have been read from memory.In the error 3 location is the low order halfof the offending address, while in the error3+1 location is stored the high order half ofthe offending address. By comparing thedata in error 1 and error 2, we can determinewhich bit was picked up or dropped — butwhat if they're the same?

You then have what is known as a "softerror," or an error that is incorrect on thefirst read out, but correct the second timearound. A soft error can be caused by atiming problem, or a refresh problem whenusing dynamic memory. The program startschecking data from the lowest address to thehighest. When an error is detected, the datafrom error 1, 2 and 3 should be recorded.

Since there is more memory to check,add 1 to the error 3 data and deposit this inlocations xxA and xxC. The error 3+1 loca-tion should be entered into locations xxBand xxD. Record the next error when it oc-curs, continuing the same routine until no

new errors are detected, or until a pattern oferrors is evident."

NORTH STAR SOFTWARE

TIMESHARING

for the Horizon —

The only true interrupt driven, bank

switching timesharing software available

for the Horizon.

A machine language program

on 5'/'disk $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

CSUBdisk and documentation package $49.95

The following programs, written with CSUB, are presently

available:

General Ledger (for accountants) $49.95

General Ledger (for business use) $49.95

Accounts Receivable (for accountants) $49.95

Accounts Receivable (for business use) $49.95

Accounts Payable $49.95

Payroll $49.95

Inventory $49.95

Specify Release 4 (single density) or Release 5 (double density)

North Star DOS and BASICAll programs are shipped on 5 1/4" diskette and include documentation.

This Summer:Hard Disk Interface For The Horizon

Micro Mike's, Incorporated

905 South Buchanan * Amarillo, Texas 79101 * USA (806) 372-3633

Circle 204 on inquiry card.

August 1979 © BYTE Publications Inc 217

Bock Reviews

Practical Microcomputer Program-ming: The Z-80

by W J We/ler

Northern Technology Books

Evanston IL

481 pages

$29.95

Practical Microcomputer Program-ming: The Z-80 is the third volume in aseries which also includes works on the8080 and 6800 microprocessors. My re-view of the 8080 volume was publishedin BYTE, January 1978.

The most obvious differences be-tween the Z-80 and the 8080 volumes inthis series are the length and the price.The Z-80 version costs $8 more than itspredecessor and it is almost 60 percentlonger. There are more than 100 pages ofadditional text, and much more softwareis included. The Z-80 volume treatsseveral new topics, among which arefloating point arithmetic and graphicaloutput.

This book is intended for two au-diences: the first is the beginningassembly level programmer (as all of thetextbook basics are included and iden-

REBUILT Like New

TTY-33ASR

3320/5JE ALSO 3320/6JE

Ml2 Design 2400 Printers

NEWKSRandROUp to 1200 Baud

• Immediate Delivery

• 90 Day Warranty < tty-33 only >

• Quantity Discounts

• Terms Available

CALL BUD SCOTT

214/358-3681

Data Communications International, Inc.2636 Walnut Lane, Suite 350Dallas, Texas 75229

tified so that the more advanced readercan skip them), and the second is theprogrammer who is familiar with the8080 and wants to become skilled in theuse of the Z-80. With this in mind, themnemonics used are not those used byZilog, but an 8080 compatible set. Thenew Z-80 instructions use forms basedon the 8080 mnemonics. Unfortunately,the two sets of Z-80 mnemonics are notcompatible.

The topics which the book treats arefairly standard: moving data, arithmetic(single and multiple precision, fixed andfloating point, binary, and decimal),logical operations, use of the stackpointer, tables and arrays, I/O (input/-output) programming, and the use of in-terrupts. I/O programming is divided in-to sections on polled, interrupt-driven,and graphical output. Explanations areclear, and there are many good ex-amples.

The appendices are a nice feature.These contain documentation andlistings for a debugging monitor and aconversational assembler. Both of theseare written in the 8080 subset of the Z-80instructions, so that an 8080 program-mer can use them (the assembler flagsnon-8080 instructions). Typing in thecode (either object or source) for pro-grams of this size is very tedious, and forthis reason paper tapes of the objectcode for both the monitor and theassembler are free by returning thecoupon at the back of the book to thepublisher. The assembler can take itssource code either from memory orfrom a tape or disk. A simple line editoris included. You do not have to load theeditor, load the source code, punch thesource code, load the assembler andload the source code again, as isnecessary with separate editors andassemblers. It looks very convenient.

In conclusion, Practical Microcom-puter Programming: The Z-80 has all ofthe advantages of its 8080 predecessor,while avoiding the major faults. Thebook is clear and complete (includingthe index of assembler mnemonicswhich was missing from the 8080 ver-sion), and the appendices are very good.I have been programming the Z-80 for ayear and a half, and I wish that I hadpicked up the knowledge this book of-fers 18 months ago! ■

John A Lehman716 Hutchins #2Ann Arbor Ml 48103

218 August 1979 © BYTE Publications Inc

Circle 87 on inquiry card.

.

SURPLUS ELECTRONICS

ASCII

ASCII

IBMSELECTRIC

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 • HeatSinks • Printers • ComponentsMany other items

Write for free catalogWORLDWIDE ELECT. INC.130 NORTHEASTERN BLVD.NASHUA. N.H. 03060Phone orders accepted using VISAor MC. Toll Free 1-800-258-1036In N.H. 603-889 7661

Circle 391 on inquiry card.

FLOPPY DISKREPAIR

jf%SS/sjp%Sm Jwjji <,#,*; <§&i%L

• PerSci and Shugart

• Quick turnaround

• Factory trained onPerSci \

COMPUTER SERVICE CENTER

7501 Sunset Blvd

Hollywood CA 90046

213-851 2226

Circle 68 on inquiry card.

MAXIMUM VALUEFOR YOUR DOLLAR

NORTH STAR COMPUTER PRODUCTS

HORIZON1 16KKIT $1275.00

16K RAM BOARD KIT $ 250.00

32K RAM BOARD KIT $ 475.00

VERBATIM DISCS FOR NORTH STAR

BOX OF 10 $29. POST PAID

COMPLETE SYSTEMS AVAILABLE

CUSTOM SOFTWARE FOR NORTH STAR SYSTEMS

CASIO CALCULATORSAT DISCOUNT PRICES

MANY OTHER SUPER VALUESWRITE OR CALL:

A.E.I.

3851 HACKETT AVE.

LONG BEACH, CALIF. 90808

(213)421-4815 (213)429-0535

^

^ TRS-80 Jl\

SPECIAL PROMOTION SALE

SAVE 10%, 15% or more on ALLComputers, Peripherals, Software,and ALL other fine Radio Shack®products.

NO TAXES on out-of-state ship-ments.

FREE Surface delivery in U.S.

WARRANTIES will be honoredby your local Radio Shack® store.Offered exclusively by

Radio Shack®

Authorized Sales Center

1117 Conway

Mission, Texas 78S72

(512) 585-2765

J

Circle 314 on inquiry card.

TRS-80 16K MEMORY EXPANSION KIT

INCLUDES 8 TESTED S GUARANTEED M5K 4116 3 16K RAMS.PROGRAMMING PLUGS t EASY-TO-FOLLOW INSTRUCTIONS.

$72 22 PER KIT

6800 64K BYTE RAM SET AND CONTROLLERCHIP SET

$2952°

PER COMPLETE SET

MAKE 64KBYTES OF MEMORY FOR YOUR6800 THE CHIP SETS INCLUDE:32 M5K 4116-3 16K RAMS.1 MC3480L MEMORY CONTROLLER.1 MC3242AP MEMORY ADDRESS

MULTIPLEXER/COUNTER.DATA 8 APPLICATION SHEETS.PARTS TESTED S GUARANTEED.

16K DYNAMIC RAMS

M5K 4116-3 200NSECACCESS TIME/375NSECCYCLE TIME.TESTED 4BURNED-IN$850 EACH/MIN.QTY. 8

4K STATIC RAMS

EQUIV.T0TMS40L44-30300NSEC ACCESS TIME/CYCLE TIME FOR 4MHZZ-80 OPERATION.J75J) EACH/MIN.QTY. 8TESTED i GUARANTEED

QmitTITY DISCOUNTS WAIMLEALL ORDERS POSTPAID U.S.FUNDS. CHECK OR MONEYORDER. VISA,8A,MASTERCHARGE-SEND ACCOUNT NO.,EXPIRATION DATE , INTERBANK NO., 8 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.

save more than 20%!

NORTH STAR INTERTUBE

THINKER TOYS HUH

the smartest computers it the smartest priesDOUBLE DENSITY

HORIZON-1-16Kkit, list $1599 ...$1279

Assembled & tested, list $1899 $1519HORIZON-2-32K kit, list S2249 ...$1799

Assembled & tested, list $2549 $2039HORIZON-2-32K QUAD DENSITY

Assembled & tested, list $2999 . $2399

PASCAL for NORTH STAR on Disk $49

Powerful NORTH STAR BASIC FREE

Measurement Systems asm memory 64K. $640

Thinker Toys Discus/2 D asm $1149 $949

TRS80toS-100HUHkit list$295 $260

Assembled & tested, list $375 $350

INTERTUBE II Terminal, list $995 $780

MARYELLEN Word Processing. .

$34 + $1.50 shipping

VERBATIM Disks. . .

10 for $29.50 + $1.50 shippingWhich Computers are best? BROCHURE. FREE

AMERICAN SQUARECOMPUTERS

KIVETT DR, JAMESTOWN NC 272B2(919)883-1105

SUPPLIES

• FLOPPY DISKS, MINI ORSTANDARD MEMOREX OR 3M

• 3M DATA CARTRIDGESDC300A, DC100A

■ 3M DIGITAL CASSETTES

• 3M OR MEMOREX AUDIOCASSETTES, C-60

' 3M DISK CARTRIDGESWE OFFER:•COMPETITIVE PRICING' IMMEDIATE DELIVERIES

(Any Quant,ty)■ UNCONDITIONAL GUARANTEE

BETA BUSINESS SYSTEMS

8369 VICKEHS ST., #G

SSAN DtEGO. CA 92'17141 565^1505

m

Circle 34 on inquiry card.

MemorexFloppy Discs

Lowest prices. WE WILL NOTBE UNDERSOLD!! Buy any

quantity 1-1000. Visa. Masterchargeaccepted. Call free (800)235-4137for prices and information. Allorders sent postage paid.

PACIFICEXCHANGES

100 Foothill Blvd.San Luis Obispo. CA93401. (InCal. call(805) 543-1037.)

Circle 294 on inquiry card.

RECYCLE(D)COMPUTERS

>'*■■■*■■«■■■■■■■•*■■■■■■■■■■■>■■■■■■■■■■■■*■■■■BUY $ SELL $ SWAPHardware & Software

NEW PRODUCT ANNOUNCEMENTS

Mailed 1st class every 3 Weekslyr. (18 issues) & $3.75

ON_LINE ~#~

Ojuc Urcdr. liuuiisliti CsiaUlishrt 107;-

24695 Santa Cruz Hwy.. Los Gatos, CA 95030

Circle 21 on inquiry card.

Circle 5 on inquiry card.

Circle 288 on inquiry card.

An Overviewof Long Division

Geoffrey Gass5240 SW Dosch RdPortland OR 97201

On the very simplest level, a divi-sion problem starts with two num-bers, a dividend, which we want todivide by a divisor, to obtain a thirdnumber, a quotient. In terms of gradeschool long division:

QuotientDivisor )Dividend

+ Remainder

The quotient (integer portion) issimply the number of times thedivisor can be subtracted from thedividend and still leave a positive re-mainder.

The simplest computer program forthis calculation goes as follows:

• Put the dividend into register N.

• Put the divisor into register D.

• Clear a quotient register Q.

• Assign a remainder register R.

• Subtract D from N and put theresult in R.

• Test R.

• If R is positive, increment Q,transfer R into N, and go backto the subtract step.

• If R is negative, exit. Q is nowthe (integer) quotient and Ncontains the remainder.

There is nothing basically wrong withthis procedure, but it's not veryuseful. If N is 1,000,000 and D is 2, itwill take 500,000 operations of the

program to get Q. If D is 797,236, theprogram will quickly tell us theanswer is 1, with a remainder.

Let us check off the chief deficien-cies. First, if the two numbers arevery different, the program will giveus an accurate answer, but will take along time doing it. Second, if the twonumbers are very close in value, theprogram will be very quick, but notvery precise. Third, if D is larger thanN, zero is the only answer. Fourth, ifD happens to be zero, the programwill loop forever trying to get Q up toinfinity.

What we'd prefer is a quicker pro-gram that gives us an answer correctto at least as many places as thesignificant digits of the numbers weput in, regardless of the magnitude of

the numbers. But won't that take amore complicated program and won'ta more complicated program takelonger to execute? A program2,000,000 instructions long could bequicker to execute than one whichloops through six instructions500,000 times. And it certainly won'ttake two million instructions to makea quite thorough, precise, accurateand quick division program.

To get speed and precision, startout just as a previous generation wastaught in grade school, by jugglingthe decimal points around (or binarypoints if we are working in binary).To put it another way, multiply thedivisor and dividend some number oftimes by the base of the numbersystem (10 or 2, for example) until the

REGISTER

N (DIVIDEND)

D (DIVISOR)

R (REMAINDER)

Q (QUOTIENT)

INTEGER • FRACTION

Figure 1: Four registers for division, each with two words for integers and two for frac-tions, except register Q which is double size. The registers are usually strung out seriallyin adjacent memory locations, but it is convenient to think of them in block form asshown.

220 August 1979 © BYTE Publications Inc

NDRQ

0000 0000

0000

nnOO

0000

0000

0000

OOOd

0000

0000

0000

0000

0000

0000

0000

0000 .

0000

0000

0000 0000

Table 1: Starting arrangement of the registers for division. The dividend and divisorhave been loaded; all other registers are cleared.

dividend is only slightly larger thanthe divisor. Note how many places itis necessary to shift the numbers sothey are nearly equal. (In old-fash-ioned long division, the divisor isshifted until it is an integer, and thedividend is shifted the same numberof times. The rest of the necessaryshifting is done by relocation of thequotient with respect to a fixed loca-tion for the decimal point.)

To start, set up an array of registerslarge enough to hold the largestnumbers we want to deal with. Thequotient register is twice as large asthe others, since dividing a very smallfraction by a very large number pro-duces a yet smaller fraction, anddividing a very large number by asmall fraction gives an even largerquotient. Then arbitrarily definesome point in each register as thedecimal or binary point. A conven-ient place is between two memorywords, as shown in figure 1. Al-though a more common technique isto use only three registers (no Rregister), using four is a little easier,and you'll never notice the slightly in-creased time required for putting Rinto N after every successful subtrac-tion. However, extra time is onlyneeded for BCD (binary coded deci-mal) division. In binary arithmetic,the extra time for an addition afterevery unsuccessful subtractionapproximately balances the timewasted in transfers.

The first operation is to load in thenumbers, being careful to locate themin the proper position with respect tothe decimal point. If the dividend N isnnOO, it will go into the word just tothe left of the point in N. If the divisoris OOOd, it will go in the correspond-ing word of register D. All other loca-tions must be cleared to 0000, if notalready done. Table 1 shows our star-ting arrangement. Because the pro-gram is general purpose, and must beable to operate with any kind ofnumbers that can be fitted into itsregisters, it can't "know" how big N

and D are. Its first job is to find outtheir magnitudes so it can set them tobe nearly equal.

The easiest way to do this is to startby shifting register D to the left andinsert zeros at the least significantdigit position of the fraction part ofthe register until something pops upat the most significant digit positionat the left of the integer part of theregister. In this operation we must seta limit to the number of shifts allow-ed, so when we have done 16 shiftsand still get nothing at the top of theregister, we can stop. Division byzero is not allowed, of course, and thecomputer has better things to do thanspend hours shifting empty registers.Then do the same thing with register

N, shifting it left until its most signifi-cant digit shows at the top of theregister. We can use the same counterused for D to keep track of how manyshifts it takes, starting with the countleft over from counting D's shifts andcounting in the opposite direction.Our final count will reflect the dif-ference in magnitude between the twonumbers. That number is saved forlater. Again, with N, it is necessary toset a limit to the count or we'll beshifting forever if N happens to bezero. The limit needn't be exact (itcan't be, because we don't know whatnumber we started with in the coun-ter), but that's not critical. All that'sneeded is something that will get usout if the count starts looking likeinfinity. A limit of —20 or +20,depending on which way the count-ing starts, is adequate. In the exampleof table 1, the saved number is 3 (thedifference between the seven shifts ittook to get D to the top of the registerand the four shifts required for N).

Before starting subtraction, coun-ting and shifting, a certain number of

MICROPROCESSORSOFTWARE ENGINEER

A leader in the rapidly growing field of medical diagnostic instru-ments, Abbott Laboratories has produced major systems for clinicalchemistry, hematology, microbiology, and radioimmunoassay.

Our products include ABA/VP, the number two selling chemistryanalyzer...ADC-500, the top-performing automated white cell clas-sifier... MS-11, the only fully-automated microbiology system...andLogic/Auto-LOGIC, the top selling gamma counters for RIA.

A new product development group has an immediate opening for a Software Engi-neer to design microprocessor systems for clinical instruments. Responsibilitiesinclude developing systems specifications, defining software, writing and debuggingprograms.

You will work closely with chemists and mechanical, optical and electrical engi-neers on a dynamic product team which has developed innovative instruments formedical diagnostics.

Experience must include at least 2 years of real time control applications usingIntel or Zilog products. Applicants should have designed and generated executiveand support software for microprocessor based system. A BS in EE or ComputerScience or equivalent experience is required.

Starting salary is highly competitive and commensurate with experience. If youare interested in pursuing a career in this area, please send resume with salaryhistory in confidence to:

E. MarcianoCorporate Placement

ABBOTT

NORTH CHICAGO. ILL. 60064

Abbott is an Affirmative Action Employer

August 1979 © BYTE Publications Inc 221

operations must be set. Since westarted with possible 16-positionnumbers, 16 operations should give16 position answers, which is whatwe were looking for. We will be mov-ing quotient digits into the Q registerat a point 15 places to the right of thebinary/decimal point. If the answer is1, 16 shifts will put that first and onlydigit of the answer just to the left ofthe binary/decimal point in Q.

Now, with a starting count of 16,and the D and N numbers in position,subtract D from N and put the resultin R. Is R negative? (If binary codeddecimal notation is used D could belarger than N, and R could thereforebe negative. If binary notation isused, N must equal D, so R could notin the specific example be negative;but we test for it anyway.) If R isnegative, go immediately to the nextoperation. If R is positive, transfer Rto N and increment Q. If working inbinary arithmetic, go to the nextoperation at this point, since anothersubtraction cannot be done. If work-ing in binary coded decimal, how-

ever, N could be 9 and D could be 1,and there are eight operations yet togo. So for binary coded decimal, loopback and keep on subtracting andswapping R back into N until R isfinally negative, then stop. Don'ttransfer R or increment Q, just get onto the next operation.

At this point, the most significantdigit of the quotient is in the leastsignificant digit position of registerQ. Now shift D one position to theright and shift Q one position left,marking the end of one operation inour operations counter. Keeprepeating the above process until all16 shifts have been done. At thispoint, the first Q digit is one positionto the left of the binary or decimalpoint in Q. Now, go back and look atthe magnitude difference count ob-tained at the start of the program. If itis positive, shift Q to the left thatmany times; if it is negative, shift Qto the right that many times. (Wecould have checked the magnitudedifference count when the operationscounter was set: if the magnitude dif-

Build The World's MostPowerful 8-Bit Compute

Featuring The Famous Intel 8085!

Explorer/85™

Starting for just $129.95 you can now buildyourself a sophisticated, state-of-the-artcomputer that can be expanded to a levelsuitable for industrial, business andcommercial use. You learn as you go. .. insmall, easy-to-understand, inexpensive levels'

• Features Intel 8085 cpu/100% compatible with80804 software!

• Onboard S 100 bus (up to 6 slots)!

• Onboard RAM and ROM expansion!

• Built-in deluxe 2K Monitor/Operating ROM!

• Cassette/RS 232 or 20 ma./4l/2 8-bit parallelI/O and timer all on beginner's Level "A" system!

As featured inPOPULAR ELECTRONICS

EXPLORER/85 shown with Video Montlor and Keyboard/Video Terminal

CHOICE OF HEX KEYPAD OR TERMINAL INPUT

it you plan to customize EXPLORER for dedicated use. we recommend that you orderhex keypad input But. ii you are planning to go whole nog and blow EXPLORER upinto a full size state-ot Ihe-art system with 8K or extended basic (coming soon), upto 64K of memory, tloppy disks, telephone interface printers, and all sorts ot S-100plug-ins—you II be better oil with the Keyboard/Video Terminal input The $149 95EXPLORER Keyboard/Video Terminal includes lull ASCII decoding with 128 ASCIIupper/lower case set 96 printable characters, onboard regulators and selectabledisplay tormats—32x16 lor tv set or 64x16 for video monitor (not included!EXPAND EXPLORER. LEVEL BY LEVEL

Level "fl". at $4995. adds S-100 signals plus onboard RAM/ROM decodingIncludes all parts necessary to generate the signals tor S-100 bus accessories Justadd two S-100 bus connectors and you have a complete S-100 compatible computerwith a world ol add-ons at your fingertips Choose irom hundreds ol products toEXPLORER/85 gives you big computer features immediately without turning you sa„s|V your individual needs Level B kit also includes the address decoders torinto an appliance operator doomed to run pre developed software tor life Simply onrj0ard RAM and ROM expansion which are addressable anywhere in the 65K fieldconnect EXPLORER to a terminal video monitor or iv set and 8 volt power supply and Level ,'C" expansion, at $39 95 expands the S-100 bus to allow a total ol sixstart running programs trie very tirsl night' Level A teaches you machine s-100 cards to be plugged into fcXPLORER s motherboard and contained inlanguage and computet fundamentals II lels you run exercise programs including EXPLORER s steel cabinet includes all hardware mounting brackets board guides,programs to examine the cpu registers, examine memory fill memory, move memory etc just add tbe number of Si 00 bus connectors you needand make up games You can load and play back these programs on an ordinary tape i_evei ■■0" expansion, at $69 95 gives you 4K of onboard static RAM utilizingcassette—and display your efforts on any tv screen video monitor or printer ($8 95 ?miCs Your board will alsoaccepi four 2716 EPR0M s which can be purchasedRF modulator required lor tv use ) The simplified architecture of the Intel 8085 separately You now have an advanced matntrame that can be customized with themakes EXPLORER lai easier to understand than computers using the older, more peripherals of your choice to tit any (or all) specific requirements Each level otcomplex but less powertui 8Q80A Then when you re ready EXPLORER can be EXPLORER is separately regulated tor 'he ultimate in stability Factory service isexpanded—by you —lo rival the power of any 8-bit computer on earth Or you can avaiiaDie trom Netromcs Order your EXPLORER today'customize it to perform a dedicaied task, thanks to onboardprototyping RAM and ROM expansion capabilitiesLEVEL "A" SPECIFICATIONSEXPLORER s Level A system features an advanced Intel8085 cpu. which is 50% taster than its 8080A predecessor. yet 100% compatible with S080A softwarewhich you'll discover exists by the Ion Big compulerfeatures include an 8355 ROM with 2K deluxe monitor*operating system which bas two programmable 8-bibi-directional parallel 1/0 ports buill-m cassette interfacewith tape control circuitry to allow labeling cassette files,and commands which include "display cpntents ofmemory. run at user location (go loi insert data.

move contents ot memory examine registers individ-ually or all, till command (to till the contents ot memory J □ Level "B S-100/Onboard RAM/ROM Decode!with any variable) automatic baud rate selection, prpgram- kii (less S-iQO connectors). $49.95 plus $2

mable characters per line display output formal, and more1 | P&b

An 8155 RAM —I/O chip contains 256 bytes ot RAM, two □ Level "C" S-100 5-Card Expander kit (lessprogrammable 8 bit bi-directional and one programmable I connectors). $39 95 plus $2 p&h6-bit bi-directional 1/0 ports plus programmable 14-bit c S-100 Bus Connectors (gold), $4 85 eachbinary counter/timer, user interrupt and reset switches 3 Levej 0■■ 4K onboard RAM kit $69 95 plusOnboard expansion provisions exist tor up to six S-100 I $? p&hboards. 4K Ol RAM and SK ot ROM PROM or EPROM | _

ORDER FROM THIS COUPON TODAY!

Netromcs R&D Ltd., Dept BY 8, 333 Litchfield Road, New Miltord, CT 06676

EXPLORER/85

a Level A EXPLORER/85 kit (specify □ ter-minal or □ (lex keypad input) $129 95 plus$3 p&h

□ Power Supply kit. 5 amp. ±8 volt. $34 95plus $2 p&h

D Intel 8085 User s Manual $7 50 ppdH ASCII Keyboard/Video Terminal kit, $149 95plus $3 p&h

□ Hex Keypad kit tor hex version. $69 95 plus$2 p&h

D Deluxe Steel Cabinet

$39 95 plus $3 p&b ■

□ Deluxe Steel Cabinet tor Keyboard/ Video Ter- |mmai $19 95 plus $2 50 p&h

□ RF Modulator kii $8 95 ppd |D Total Enclosed (Conn res add tax) $

C VISA G Master Charge Exp Dale

Account # I

PHONE ORDERS CALL (203) 354-9375 ,

Pfinl

Name I

Address i

Cily |

Stale

. DEALER INQUIRIES INVITED .

ference was negative, set that manyfewer operations for the program. Wewould not have added any positivenumber, however; that would set upa divide by zero for the 17th opera-tion.) Register Q now has the correctquotient.

We neglected the small problem ofloading the digits into the registers intheir proper positions, and didn't getinto fine detail on how a subtract orshift operation might be performed ina multiword register; however, thegeneral outline of the algorithm cannow be imagined, and that's half thebattle. And there are some details ofit that can help us along to the nextstep.

When the numbers were shifted upto the tops of their registers in theearlier example, we were actuallygoing through the process of conver-ting fixed point to floating pointnumbers, by normalizing the digits,with a saved exponent indicating howfar they'd been shifted. In thatspecific example, we saved only thedifference in exponents, but this gaveus the information needed to create aconventional notation number fromour floating point answer in Q.

Our next step is to establish a fullfloating point format in order toavoid the magnitude limitations for-ced on us by fixed point data. Becausemost processors are equipped withbinary coded decimal arithmetic aids,there is no need to bother with binarycoded decimal to binary conversions(and vice versa) when handling num-bers input via the keyboard. Also,battling with the attendant conver-sion problems can be avoided (ie:decimal fractions that can only beapproximated by binary fractionsand rounding operations which don'tcome out the same in binary codeddecimal and binary).

In floating point format, everynumber is stored as a string of digits,with the most significant nonzerodigit at the top of the register and thedecimal point location saved in aseparate register. The programmercan arbitrarily say that the imaginarydecimal point is anywhere in thenormalized string of digits as long asthe program is internally consistent.For ease of output in standard scien-tific notation, however, it's best tosay that the 0 position of the decimalpoint is immediately following the

222 August 1979 © BYTE Publications Inc

Circle 280 on inquiry card.

most significant digit in the register.That is, the number stored is 1 orgreater and less than 10, and is to bemultiplied by 10 to the power indi-cated to obtain conventional nota-tion.

The number 6045.35 is stored as:

EXP NUMBER03 604535

with the number in EXP indicatinghow many places further to the rightof the first digit the decimal placemust be moved for conventionalnotation. If EXP is 00, the number is6.04535; if EXP is FD (—3 in hexa-decimal form), the number is.00604535. In addition to the numberand the base exponent, we also needsomething to indicate the sign of thenumber.

In binary operations, the mostsignificant bit of a number can beconsidered the sign bit, providing asingle byte with the range of values+ 127 to —128 decimal. Arithmeticperformed under this conventiongives consistent answers (exceptunder overflow conditions for whichmost processors have detection cir-cuits and warning flags). For binarycoded decimal, the topmost digitposition is the sign digit: 0 for apositive number, and 9 for a negativenumber. Negative numbers aregenerally handled in tens complementform, obtained by subtracting the ab-solute value from 999999999.... 9and then adding 1 to the least signifi-cant digit (this is the way many earlyadding machines handled subtrac-tion).

Without going into the detail ofhow it got that way, simply assumethat all data in our division problemwill be available to us in tens comple-

SIGNEXP a MSD •

][

Figure 2: Register arrangement for floatingpoint binary coded decimal division. Notethat it is no longer necessary to provide adouble size register for Q. The imaginarydecimal point is located immediatelyfollowing the most significant digit.

ment form, in the format shown infigure 2. The exponent could be inbinary coded decimal form (maxi-mum values + and — 79, with themost significant bit used as a sign bit),but it's easier to keep it in binaryform, allowing a value range of +127to —128, limited by the program toplus and minus 99. The format givesnine significant digits, of which wemay elect to hold out two or three asguard digits, and display only six orseven, rounded off according to thevalue of the guard digits.

There is one more complication inour division routine: signs. Theoperation we want to perform here isrepeated subtraction of absolutevalues, not just the simple signed sub-traction for which the tens comple-ment form can give correct answers.When dividing +956 by —3, we donot want the remainder to becomelarger and larger! So first of all, lookat the sign digits of the two numbers(if a number is negative, the 9 at themost significant digit position will setthe N bit of a condition code register,

just as for binary operations) anddetermine the proper sign for the quo-tient. Store this flag away for themoment.

Next, if the dividend is negative,use a tens complement routine to getits absolute value, and put it back inregister N. We might also test it for 0at this point, and do an early exit ifthe answer is going to be 0. Thiswould be appropriate only if we hadalready checked D, since D mightalso be 0, and 0/0 would be an inde-terminate value, not 0. So don'tbother with the zero check at thispoint if register N is being processedfirst.

What we do with register Ddepends on the processor being used.Some processors have decimal sub-tract operations, or a binary codeddecimal adjust instruction which iseffective after a subtraction. In theMotorola 6800, the DAA instructionworks properly only after an ADDoperation with register A (ADD A,ADC A or ABA). For the 6800, then,the subtraction function requires

8P2SM PARALLEL/SERIAL I/O BOARD

WITH MODEM

nmuum

PARALLEL PORTS: a FSERIAL PORTS: 2S

iris. 64 Inl.il bi-directional bits.

'ri.il Ports with assot iated control lint'sOut' Port TTL or RS-232.One Port 171 or MODEM.

AVAILABLE BAUDRATES:

307.2

151.fi76.H18.411.2960048002400or any

kilobaud

kilobaud

kilobaud

kilobaud

kilobaud

baud

baud

baud

1760

1200

600

100

150

no

7527.5

baudbaudbaudbaudbaudbaudbaudbaud

rIIi

i

Please rush the following :

□ 1/0 Card (kit)

□ I/O Card (assembled)

user supplied baud rates up to 500 kilobaud.

MODEM:BUS TYPE:PRICE:

Full Duplex, answer or originate, 300 Baud ^

&

*<*

M

$149 Ik$199 l.l'

sembled and tested).

Circle 221 on inquiry card.

CA residents add 6%

MicroDaSys

P.O. Box 36051Los Angeles, CA 90036

(213)935-4555

August 1979 © BYTE Publications Inc 223

register D to be in tens complementnegative form, so our subtraction canbe performed with an additioninstruction. For other processors, Dmust be in absolute (positive) form ifa subtract instruction is to be used, orin complemented form for an addinstruction, depending on what isavailable in the machine.

So we do or don't run the data inregister D through a tens complementoperation depending on its presentform and the form required by ourdivision routine. While checking thesign, we can also note if D is 0; if it is,we set an error flag and exit. If D isnot 0, check here to see if N is 0, andexit early if it is (assuming register Qis already cleared), thus saving a littleprocessing time.

Next, look at the exponent data todiscover what the final exponent willbe. Subtract the D exponent from theN exponent, but before storing itaway check for overflow (a carry intothe sign bit, effectively reversing thesign from what it should be), or, if wehave set limits of + and — 99, checkfor a number exceeding these limits. Ifthe magnitude of the answer is goingto be out of limits, we may choose toreject the problem, set a warning flag,or simply set Q to 0 or 999999E99 toindicate that the result is beyond thecapacity of the machine if the pro-gram is simply a calculator programwithout programmability or otherexotic features. For a scientific pro-gram, this sort of thing could lead toserious and probably undetectableerrors, and would never do. For aninterpreter program, the exponentoverflow should spring out to anerror message and halt the program.If the exponent is within limits, store

it as the tentative exponent for Q,subject to later adjustment.

Now, we're finally ready to divide.We can skip the procedure doneearlier in running data up to the topsof the registers. First, set up a countof nine (the number of digits desired).Subtract D from N, with binarycoded decimal adjustment as re-quired, and store the difference in R.If R is positive (checking byte 1 in R),increment the least significant bit inregister Q (no need for binary codeddecimal adjustment here — the digitwill never exceed nine), transfer R toN and repeat until R is finallynegative. Leave R alone this time anddo not increment Q. Shift Q one digit(four bits) left, starting at the leastsignificant byte of the register andshifting it one bit left, repeating theprocess four times. Then shift D onedigit (four bits) right, starting at themost significant byte of the registerand going through it four times. Onemore operation must be rememberedwhen working with D in tens comple-ment form and doing additions: thesign digit of D must be extended backto the top of the register. Do this byadding 90 to the most significant byteafter we have completed the shiftingabove. When we get down to the lastoperation, register D should be all 9sexcept for the least significant digit.

Before going back to the subtractoperation, step the operationscounter by one, and exit if thecounter indicates completion. Whenthe subtracting is done, check themost significant digit of register Q. Ifit is 0, the result of the first subtrac-tion was no good and the initiallyassigned exponent for Q was toolarge. Under these circumstances we

shift Q one more digit to the left andreduce the exponent that was calcu-lated earlier by 1.

Now, everything is taken care ofexcept the sign. If we have a simplecalculator program, we can just lookat the sign flag stored away and eitherdo or don't output a minus sign,followed by the register Q data inabsolute form. However, for mostapplications, Q will have to be storedaway for future use in machine usableform (as previously discussed infigure 2), just as we got the N and Ddata to start with.

So look at the sign flag. If it says Qis negative, send Q through the tenscomplement routine, then store theresult wherever it belongs. If Q is tobe positive, store it as is, with 0 for asign digit. In either case, "park" theexponent data next door, so it can beretrieved along with Q's digitswhenever needed.

Well, we did it. A whole long divi-sion program in binary codeddecimal, with a constant precisionanswer. Of course, we haven't actual-ly formatted the digits for output, orconverted our binary exponent tosigned ASCII, or decided whether tooutput the number in conventional orscientific notation (there really isn'troom on the average printer for 99zeros). We also haven't figured outhow to use the exponent to locate thedecimal point in the printout of con-ventional notation data. But thesethings are incidental. Once past theconceptual problem of the "engine" inthis dividing machine, the design ofthe transmission, differential, seatcushions and bumpers should be nobarrier to rapid progress in any direc-tion that suits the user.B

c,

c PET ANALOG INPUT

Analog to Digital Conversion System for the Commodore PET Computer

Give the PET the abi 1 i ty to sensern«3surer and control the world aroundit. with DAM SYSTEMS modules. Just plu3the PETSET1 into the PET to Set 16channels of analog inputi Screwterminals are provided for each channelso you can hooK up Joysticks* pots» orwhs tever 3ppropr i s te sen sor s you have •

Each of the 16 analog inputs* inthe ran* of 0 to 5* 12 volts* isconverted to a decimal number between Oand 255 < 20 millivolts per count >.Conversion time is 100 microsconds.

In additionr the PETMOD providestwo IEEE ports and one user port aswell as a DAM SYSTEMS port.

Software is provided. A one lineproaram is all that is necessary toread 3 channel *

dor

1 -AIM161I -PETMOD1-CABLE A241 - MAN MODI1-P0W1

PETSET1

16 ANALOG INPUTS-8 BITS -100 MICROSEC

24 INCH INTERCONNECT CABLEMANIFOLD MODULE-SCREW TERMINALSFOR INPUTS, REFERENCE, GROUNDPOWER MODULE

TRS-S0 INTERFACE

L MOO J I

PETSETid tor 110 VAC $295PETSETH for Z30 VAC $305

CONNECTICUT microCOMPUTER, Inc.

150 POCONO ROAD

BROOKFIELD, CONNECTICUT 06804

TEL: (203) 775-9659 TWX: 710-456-0052

t AND M/C ACCEPTED - SEND ACCOUNT NUMBER, EXPIRATION DATE AND SIGN ORDER.$3 PER ORDER FOR SHIPPING B HANDLING - FOREIGN ORDERS ADD 10% FOR AIR POSTAGE.

224 August 1979 © BYTE Publications Inc

Circle 78 on inquiry card.

What's New?

16 K Byte Dynamic ProgrammableMemory Board

Called SupeRam, this S-100 bus com-patible 64 K byte dynamic program-mable memory board is available fromAlpha Micro, 17881 Skypark N, Irvine CA92714. It is completely compatible withthe 16 bit Alpha AM-100 processor.SupeRam is a high density program-mable memory board capable of storingup to 64 K bytes of data on a singleboard. Completely S-100 bus compati-ble, it utilizes 16 K byte dynamic pro-grammable memories to achieve maxi-mum bit density, minimum power dissi-pation, and optimum cost and perfor-mance ratio.

Refresh requirements are satisfied onthe SupeRam board without supportfrom the processor and are thereforetransparent to the user. Exact andreliable internal timings are generatedon board using digital delay line tech-niques. Memory is addressable as in-dependent 16 K byte blocks, providingmaximum capability with existing AlphaMicro Systems.

Circle 559 on inquiry card

New Software for ComputalkerSpeech Synthesizer

Computalker Consultants, designersand developers of the Computalker CT-1Speech Synthesizer (a device thatenables a computer to speak) has an-nounced the availability of the new Soft-ware Package II. Designed to expand therange of applications of the Compu-talker CT-1, Software Package II con-tains: CTEDIT, a new parameter editor;CSEDIT, an editor for the CSR1 input;CTEST, a CT-1 hardware diagnostic;PLAYDATA, to hear the data files; MEM-VOICE, a vocal memory dumper; KEY-PLAY, a subroutine to play letters anddigits; and PIANO, a simple musicalkeyboard.

Software Package II is written in 8080assembly language and includes thesource code. It is priced at $45 and isavailable on CP/M format 8 inch floppydisk; North Star and Micropolis disks;Tarbell, CUTS, MITS ACR cassette for-mats; and paper tape. For further infor-mation, contact Computalker Consul-tants, 1730 21st St, Suite A, SantaMonica CA 90404.

Circle 560 on inquiry card.

Z-80 Assembler Package

ZASSEMBL is a package of softwaredesigned for development of Z-80assembly language programs.ZASSEMBL is written in North StarBASIC with critical routines imple-mented in Z-80 machine code. Zilog sug-gested mnemonics are used exclusivelyfor all 696 standard Z-80 instructions.The package consists of three BASICprograms:

Editor enters and edits source

text

Assembler one pass file orientedassembler with back-patching of forward re-ferences. Inserts ASCIIhexadecimal represen-tation of the op codeinto the source code

Loader generates binary exe-

cutable code and loadsit into either program-mable memory or a file

The minimum hardware requirements in-clude a Z-80 processor, 32 K bytes of pro-grammable memory, one 5 inch floppydisk drive with a controller, interactiveterminal, and optional printer as an out-put device.

The package is priced at $35 which in-cludes 5 inch floppy disk, a manual withfull program listing in BASIC, and Z-80commented assembler. For further infor-mation, contact Nemco Data Processing,9 Walnut St, Rutherford N) 07070.Circle 561 on inquiry card.

Programming the 6502

Programmingthe 6502 byRodney Zaks isan educationaltext designed toteach program-ming from theground up. It willshow the readerboth the advan-tages and disad-vantages of us-ing the 6502. Theknowledge of pro-gramming gainedwith this book may be applied to othermicroprocessors. Structured from simpleto complex, this 310 page text may beused by the person who has never pro-grammed as well as by programmerswishing to familiarize themselves withthe 6502. The book is priced at $10.95and is available from Sybex, 2020 MilviaSt, Berkeley CA 94704.

Circle 562 on inquiry card.

64 K Byte ProgrammableMemory Card

This 64 K byte programmable memorycard will reduce system card count byusing only one S-100 card slot. It uses thesame power as the standard 16 K byteprogrammable memory card, thus lower-ing power requirements. Buffered signallines mean less loading on buses.Memory is expandable in 16 K byte in-crements up to 64 K bytes and memorymay be disabled in 256 byte blocks forread only memory programs The fastcycle time of the new 16 by 1 dynamicprogrammable memory means no waitstates are needed for reads, writes orrefreshing. The memory card handlesrefresh For more information, contactMicrocosm Inc, 534 W 9460 S, Sandy UT84070

Circle 563 on inquiry card.

Attention Readers andVendors. . .

Where Do New Products lt>Come From?

1 The information printed in thenew products pages of BYTE isobtained from "new product" or"press release" copy sent by thepromoters of new products. If inour judgment the informationmight be of interest to the per-sonal computing experimentersand homebrewers who readBYTE, we print it in some form.We openly solicit releases andphotos from manufacturers andsuppliers to this marketplace. Theinformation is printed more orless as a first in first out queue,subject to occasional prioritymodifications. While we wouldnot knowingly print untrue orinaccurate data, or data fromunreliable companies, our capa-city to evaluate the productsand companies appearing in the"What's New?" feature is neces-sarily limited, We therefore can-not be responsible for productquality or company performance.

August 1979 © BYTE Publications Inc 225

The

TO ORDER CALL TOLL FREE 800-223-7318

*«* PET BUSINESS SYSTEM

PET 2001 - 16/32K

The PET is now a truly sophisticated Business System with theannouncement of the Floppy Disk and Printer. This is an idealbusiness system for most professional and specialized fields;medicine, law, dental, research, engineering, toolmaking,printing, education, energy conservation, etc.. . .The PET Business System as a management tool, deliversinformation to all levels of Business, previously attainable onlywith equipment many times more expensive. The PETBusiness System is one of the most cost efficient businesstools today. Here are just a few of the cost-saving uses in thecorporation, professional office or small business: stockcontrol, purchasing, forecasting, manufacturing costing,customer records, mailing lists, etc. . . .

Features Include:

• 16 or 32K bytes RAM user memory

• 14K ROM operating system .including a machinelanguage monitor

• Full-sized Business Keyboard

• Upper/Lower case and 64 graphics characters

• 9-inch CRT

• 8K ROM expansion sockets

• File management in operating system

16K- $995,32K - $1295

$1295

DUAL DRIVE FLOPPY DISK 2040

The Dual Drive Floppy is the latest in Disk technology withextremely large storage capability and excellent fitemanagement. As the Commodore disk is an "Intelligent"peripheral, it uses none of the RAM (user) memory of the PET.The Floppy Disk operating system used with the PET computerenables a program to read or write data in the backgroundwhile simultaneously transferring data over the IEEE to thePET. The Floppy Disk is a reliable low cost unit and isconvenient for high speed data transfer.Due to the latest technological advances incorporated in this

Model 2040A Single Disk Unit - $895

disk, a total of 360K bytes are available in the two standard 5%-inch disks, without the problems of double tracking or double ,density. This is achieved by the use of two microprocessorsand fifteen memory IC's built into the disk unit.

Features Include:

• 360K bytes storage • 4K encoder and decoder in ROM

• 6504 microprocessor-controlled • 4K RAM

• 8K operating system in ROM • Uses single or double sided floppies

MODEL 2022

$995

TRACTOR FEED PRINTER 2022

The Tractor Feed Printer is a high specification printer that canprint onto paper (multiple copies) all the PET characters -letters (upper and lower case), numbers and graphics availablein the PET. The tractor feed capability has the advantage ofaccepting mailing labels, using standard preprinted forms(customized), check printing for salaries, payables, etc.The PET is programmable, allowing the printer to format print

Model 2023 (Friction Feed) - $849

(Next day delivery available.)

for: width, decimal position, leading and trailing zero's, leftmargin justified, lines per page. etc. It accepts S'/j-inch papergiving up to four copies.

Features Include:

* 150 cps • 6504 microprocessor-controlled " %K RAM buffer

• Bottom and rear tractor feed • 4K operating system in ROM

CABLE FROM PET TO DISK OR PRINTER - $3CABLE FROM PRINTER TO DISK - $49

FULL SYSTEM NOW IN STOCK FOR IMMEDIATE DELIVERY!

SUPER WORD PROCESSING SYSTEM

d^OOQC mrY\ nipt A System Includes: • Anderson Jacobson 841 Selectric

;^fcW«JW ^VIIIJJICIC • 16K PET with Full Sized Keyboard -Interface

With QOf tlAIOra "Tape Drive Unit -Super Word Processing Software

lupei Word Processing System is written in 6502—w.nbly Language1 It allows anyone to use the PET computertor such tasks as typing letters, reports, and manuscripts, forproducing mailing lists, and tor filling out forms. The softwareis wntten to support any inexpensive printer and even high

•ith incremental and proportional letterspacing The Super Word Processor easily creates, edits.

anywhere on the page Up and down screen scrolling makesediting a breeze1 Commands include end-to-end cursor lineSCAN. INDENT, TAB, soft HYPHEN) for splitting syllables atthe end of a line,( and tour-direction cursor control Outputformatting includes dynamic print control, indentation, rightjustification, line width and Ime-to-line spacing andproportional letterspacing.

BUSINESS SOFTWARE FORPET BUSINESS SYSTEM

PERIPHERALS FOR PET

• Super Word Processing Package(disk & tape versions)

• Real Estate

• Statistics

• Banking & Finance

• Mail List Management

• Data Base System

• Small Business Package(A/R. A/P, G/L)

• General Ledger

• Super Random Access

• Cash Receipts &Disbursements

• Inventory Control(for manufacturers)

Min Credit CardOrder $75

wsr

NY residents add 8% sales tax • Same dayshipment on prepaid and credit card orders• Add $5 shipping for computers, $3 forboards. $.25 each cassette tape.

Open Mon-Fri 10-6 Sat 10-4

• 24K Memory Expansii

► 16K Memory Expansii

> PET to RS232 Serial .

> Modem Board for PET ..» Analog to Digital Board .

for 16 Devices

» Second Cassette Drive ..

> Parallel Printer Interface

PET MUSIC BOX

Add music and sound effectsto your programs. Compose,play, and hear music on your PET.Completely self-contained(no wiring), Free 3 programsincluding; Star Wars theme,sound effects, etc $39.

\NEW!,ron,

EventideAUDIO

SPECTRUM m

ANALYZER

• Mounts inside the PET

• Third-Octaveaudio spective analysis

• Complete with softwareand documentation

• Replaces equipment costingthousands of dollars

r

MARK SENSE CARDREADER $750

1 Automatic turn-on and card feed |i Ideal for marking test scores

• Accepts any length card

• Perfect for schools & business^

TO ORDER CALL TOLL FREE 800-223-7318

The COMPUTER FACTORY,21X,1.T"AS&g,

l_l_ OUU-ttU" I <J I V (46th St.)

485 Lexington Avenue 750 Third Avenue New York. N.Y. 10017(212)687-5001 (212) PET-2001 Foreign order desk ■ Telex 640055

226 BYTE August 1979

The

SUPRBRAIN

INTE3TEC

DATA

SYSTEMS

ONLY

$2995

More than an intelligent terminal, the SuperBrain outperforms many othersystems costing three to five times as much Endowed with ahefty amount ofavailable software (BASIC, FORTRAN, COBOL), the SuperBrain is ready totake on your toughest assignment. You name it! General Ledger. AccountsReceivable. Payroll, Inventory or Word Processing.. .the SuperBrain handlesall of them with ease.

Your operators will praise the SuperBrain's good looks. A full ASCII keyboardwith a numeric keypad and function keys. A non-glare, dynamically focused,twelve inch screen. All in an attractive desktop unit weighing less than astandard office typewriter. Sophisticated users will acclaim SuperBrain's twin2-80 processors which transfer data to the screen at 38 kilobaud! Interfacing aprinter or modem is no problem using SuperBrain's RS-232C communicationsport.

Features Include:

• two dual-density minifloppies with 320K bytes of disk storage

• 64K of RAM to handle even the most sophisticated programs

• a CP/tA Disk Operating System with a high-powered text editor,assembler and debugger,

TO ORDER CALL TOLL FREE 800-223-7318

only $795

• 14K ROM Operating system

• 8K RAM Memory

• 9" Video Monitor

• Built in Keyboard

• Digitally controlled tape

APPLE II PLUS ONLY$1195

A complete self-contained computer system with APPLESOFT floating pointBASIC in ROM, full ASCI t keyboard in a light weight molded carrying case.

Features Include:

• auto-start ROM • Hi-Res graphics and 15 color video output.

• Expandable to 48K

Disk $595 Programmer's Aid 50

Add-on Disk 495 Speechlab 229

Pascal Card 495 Lightpen 250

Business Software 625 Communication Card 225

Monitor 149 Modem 200

Printer Card 180 EPROM Programmer 100

rnme In Or Call ForSocial Low Prices

WE'RE MOVING TO

and MUST SELLEVERYTHING IN OURINVENTORY.

S35 ol Sotlwarewith purchase ol anycomputer on this page

Send for FREE Illustrated SoftwareCatalog for PET/APPLE/TRS-80with hundreds of selections fromall over the world.

$1495 Complete!16K Model add $20032K Model add $500

CcHiipucolorll

COMPUCOLOR II Disk-Based Model 3Advanced hardware and software technologygives you:

• 13" Color Display

• Advanced Color Graphics

• 51K Disk Built-in

• t6K ROM Operating System

• 8K RAM User Memory

• 4K RAM Refresh

• 8080A Microcomputer

• RS-232 I/O

Every unit comes with an extended DISK-BASIC that has full file management capa- ibdity resident m the COMPUCOLOR II m16K of ROM Color is fantastic but COM-PUCOLOR II has the power to handle com-plex tasks and small business applicationsAn impressive software library supplements

BUSINESSCOMPUTER

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

10. DOS, BASIC

• PCS-42 (400KB) $3295

• PCS-44 (780KB) $3995

VDP-42 series adds video terminal, key-board and VIO to above

• VDP-42 $4995 • VDP-44 $5595

• VDP 80 $7995 • VDP 180 $8995

'PET'COMMODORE

^SPECIAL SPECIAL

$200 FREE Software with^/y Ipurchase of 8K PET >V |

BUSINESS COMPUTER-* £ DATA GENERAL

»7« * ' micro N°VA

I J / The ultimate in small business computers

' / when marched with COMPUTER FAC

/ TORVs minicomputer Soltware Account!

Receivable/Payable. Inventory Control/

' Data Lienera! *■'"*" En"*' General Ledger. Payroll Syv

terns from about M4 cnn

SUPER SOFTWARE

Word Thts SUDPr advanced full function program will allow I

Processma you ,0 crea,e text *rom P^T or terminal keyboard. [

• INSERT • DELETE • CENTER • UNDERLINE •For PET F|JLL SCREEN editing • MOVE LINES OR

BLOCKS • SAVE TEXT ON TAPE • AUTO PRINT f

FEATURE ...$45

This fantastic program disk allows the statistician.

mathematician, trader in stocks, money or

commodities, the ability to maintain 30 database

series ot up to 300 values and plot 3 different moving

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 $40!

Word Processing For Apple on disk..,$50

COBOL, PILOT, FORTRAN, etc Adi

SORCERER

SPECIAL12" Video Monitorfor SORCERER($299 value)

ONLY

$125 with 8K unit95 with 16K unit65 with 32K unit

ANDERSONJAC0BS0N

■M AIMSEnSOfM

LtJ jACoasoN84i 1/0 TerminalIdeal to' word piotessmq and small busi

nd small busi «-»t/lB

■NSTOCK'I

• ASC II Codt |

• IS epi Piintoul •■ w " Parallel

• High Quality Stlatiive Printing r»4 flOC

• U« Keyboard tor PET $ I UO 3

• Reliable heavy doty Mechanism Serial

• Completely Refurbished by A.J <»><| f q»-

• Service in IS Mapr Cm

RADIO SHACK • PET • SORCERERAPPLE • COMPUCOLOR • ETC.

PRINTERS • PRINTERS • PRINTERS

The COMPUTER FACTORY'S extensive CENTRONICS 779. ... $1095

inventory and wide selection of computer TRENDCOM 375

printers assures you o) finding the printer INTEGRAL DATA .... 795best suited for your needs and QUME or DIABLO .... 3400

specifications The following printers work COMPRINT 560

well with all known personal computers

Min Credit Card1 Order $75

N Y residents add 8% sales tax • Same dayshipment on prepaid and credit card orders• Add $5 shipping for computers, $3 forboards $ 25 each casselte tape

Sat. 10-4

NEWCENTRONICS 730

50 CPS - MICROPROCESSOR

CONTROLLED!

Tractor & Friction Feed • UsesSingle Sheets, Roll. Fanfold • upper& Lower Case • Light Weight

Parallel $995Serial $1045

TO ORDER CALL TOLL FREE 800-223-7318

The COMPUTER FACTORY

l_l_ \J\J\J-£.£->J- I yj irj lj4mmEEW^~ (46th St.)

485 Lexington Avenue 750 Third Avenue New York. N.Y. 10017(212)687-5001 (212) PET-2001 Foreign order desk Telex 640055 .

BYTE August 1979 227

What's New?

PERIPHERALS

Video Board Features High Density and Reverse Video

A higher density version of theFlashwriter Video Board, featuring op-tionally controlled reverse video, hasbeen announced by Vector Graphic Inc.31364 Via Colinas, Westlake Village CA91361. Displaying 80 characters by 24lines, the Flashwriter II uses an 8 by 10dot matrix to produce crisp, sharp reso-lution for 1920 character positions in a2048 byte memory block. In addition tonormal video, reverse video is optionaJlycontrolled by the higher order bit of thecharacter code. As many as 256 char-acters can be generated by 2708/2716erasable read only memories which maybe user-programmed for special symbolsor graphic displays.

The Flashwriter II allows rapid up-dating of the screen via memory mappedI/O (input/output). Special circuitryprevents flashes on the screen when up-dating memory, and a keyboard portwith latched data provides easy inter-face to Vector Graphic's Mindless Ter-minal or other parallel keyboards.

The Flashwriter II is priced at $320assembled.

Circle 526 on inquiry card.

Low Cost Alphanumeric Printers

These two compact, light weight, 5 by8 dot matrix printers are being offered by

American Micro Products Inc, 6550Tarnef, Houston TX 77074. The 12column PL12 at $59.95 and the 20column PL20 at $99.95 provide quieteconomical hard copy output. A generalspecification manual, art work for aprinted circuit board (available only withthe PL20), parts lists, flow chart, andschematics describing the 8 bit parallelinterface (Centronics type) are includedwith each printer. In addition, themicroprocessor control device and theprinted circuit board (PL20 only) areavailable as options. These elements ofthe interface are priced at $99.95 and$29.95, respectively.

Circle 527 on inquiry card.

FCC Approved Data Modem andCommunications Adapter

This S-100 bus compatible datamodem and communications adapter,designated the MM-103, has been ap-proved by the Federal Communica-tions Commission (FCC) for direct con-

nection to the public switched tele-phone network without the use of aDAA (CBS or CBT). Under softwarecontrol, it can originate and answercalls automatically. It can also dialthe telephone automatically.

In addition to normal digital com-munications capabilities, the MM-103provides auxiliary inputs and outputsthat will interface with computer sys-tem power-up control (on telephonering or external input); voice recorderannouncement equipment; and alarmrecognition and automatic dial equip-ment.

The modem is available fully as-sembled for $319.95 which includesan unconditional ten day return privi-lege and a one year limited warranty.For further information contact Poto-mac Micro-Magic Inc. POB 11149,Alexandria VA 22312.

Circle 528 on Inquiry card.

New Family of RS-232Switching Units

A new family of low cost miniatureswitching units has been introduced byGiltronix Inc, 3156 Avalon, Palo AltoCA 94306. The family, called RS232-X,switches serial RS-232 peripherals be-tween several driving sources. ModelRS232-X3 allows three driving sources.By turning the three position switchmounted on the RS232-X3, the user canselect the driving device that will ex-change data with the peripheral unit. Aunique arrangement allows the cas-cading of two or more RS232-X switches,thereby expanding the selection fromthree devices to five or more. ModelRS232-XF is similar to the RS232-X3, butswitches additional signals. Both comewith 25 pin female connectors. The priceof the RS232-X3 is $64.95 assembled, and$47.95 in kit form. The RS232-XF is$78.95 assembled, and $59.95 in kit form.Circle 529 on inquiry card.

TRS-80 Speech Synthesizer fromComputalker

Computalker Consultants, developerof the Computalker CT-1 Speech Syn-thesizer, has announced the availabilityof the Model CT-1 T, a speech synthesizeradapted specifically for the Radio ShackTRS-80 microcomputer equipped withLevel II BASIC and a minimum of 16 Kbytes of programmable memory (32 Kbytes recommended). The Model CT-1TSpeech Synthesizer is a completely self-contained unit with its own AC powersupply. The interface circuit board con-tains an on board 2 W audio amplifier, anS-100 connector for the CT-1 speech syn-thesizer board, and a Radio Shack com-patible edge connector. An interconnectcable (supplied with the Model CT-1T)connects the unit to the TRS-80 bus con-nector on either the keyboard or expan-sion interface. Standard phone jacks pro-vide connections for external speakers,headphones or external amplifier (notprovided).

The Model CT-1T can be operated intwo modes: direct parameter control andphonetic, and it is supported by a grow-ing library of software. Each unit is ship-ped with a hardware user manual, basicset of software consisting of CTEDIT/arameter Data Editor and speechparameter data files Hello, Letters andDigits, and the Computalker CSR1Synthesizer-by-Rule Software program.All software is available in a choice of 5inch disk or standard cassette.

The CT-1T is priced at $595. A specialunit is available for persons who alreadyown a Model CT-1 and is priced at $225.For further information, contact Com-putalker Consultants, 1730 21st St, SuiteA, Santa Monica CA 90404.

Circle 530 on inquiry card.

228 August 1979 © BYTE Publications Inc

ITHACA AUDIO

THE OEM MARKETPLACE

Assembled and TestedAdded at Ithaca Audio

Field-provenreliable engineering

Over 15,000 boards worldwide prove IthacaAudio provides the quality and reliability youdemand.

Ithaca Audio Boards are fully S-100 com-patible, featuring gold edge connectors andplated-through holes. All boards (except theProtoboard) have fully buffered data andaddress lines, DIP switch addressing, soldermask and parts legend.

Z-80 CPU Board still the most power-ful 8 bit central processor available. Featuringpower-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. Supportedby a host of reliable software packages:K2 FDOS, Pascal, Basic and complete diag-nostics.

A&T $175.00Blank PC $ 35.00

K2 FDOS Disk software in the DECtradition. Includes character oriented texteditor (TED), File Package (PIP), Debugger(HDT), Assembler (ASMBLE), HEXBIN, 1COPY, System Generator (SYSGEN) andmore. Command syntax follows Digital'sOS-8/RT-11 format. First in a family of highlevel software. Basic and Pascal availablenow. Soon-to-be-released Fortran.

K2 Disk $ 75.00

Video Display Board features the

full 128 upper/lower case ASCII characterset. Easy-to-read 16 line x 64 characterformat can be displayed on an inexpensivevideo monitor or modified TV set. IncludesTTY software. Add our powerful K2 FDOS tocreate a versatile operator's console.

A&T $145.00Blank 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 mdis

pensable for storing dedicated programs andoften used software. Accept up to 16K of2708's or 32K of 2716's.

A&T (less EPROMs) $ 95.00

Blank PC $ 25.00

2708 EPROMs $ 11.00

Circle 191 on inquiry card.

The leading manufacturer of blank S-100boards is adding a new wrinkle—now all theirboards are available assembled and tested."This is a natural progression for the com-pany" according to Mr. James Watson,President. "Actually we've been supplyingassembled and tested for some time to ourvolume customers and OEM's, particularlythose overseas. Our production staff is nowfully up to speed, so just about everything isavailable from stock." The company sched-uled 6 months to phase in assembled andtested to allow time to build base inventories,before offering the boards to the public. "Wefeel this is quite important. A lot of companieshave earned themselves a bad name in thisbusiness by announcing products they can'treally deliver. We simply won't do that." Mr.Watson further explained that Ithaca Audiointends to remain leader in blank boards andexpects to release a minimum of 6 newdesigns by August, which will be offered bothblank and assembled and tested.

MemoryTumble

Ithaca Audio first to break16/Byte Barrier

By cutting prices for 32K of RAM to $319Ithaca Audio becomes the first computervendor ever to offer high speed memory forless than a penny a byte. Commenting on theannouncement, Steve Edelman, Director ofEngineering said "Just a few years agopeople were wishing for a penny a bit, andeven now memory for most large computerscosts about 2C/byte and that's only in 1Megabyte chunks." In fact it's the relativemodest capacity of the 32K board that makesit so interesting. Users need not buy the full64K to take advantage of the low price per bit.Furthermore, the board is available both as akit 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 boardfor developing custom circuitry. Room forthree regulators. Accepts any size DIPsocket.

Blank PC $ 25.00

Pascal/Z Ready

The first Pascal Compiler for the Z80, and thefastest Z80 Pascal ever is now ready. Overone year in development, Ithaca Audio wasobviously pleased with the results. "We reallyhave outperformed them" states JeffMoskow, Director of Software Engineering,beaming over the recently released bench-marks, in which Pascal/Z averaged betterthan five times the speed of a recent P-codeimplementation.

"Pseudo-code means a vendor only has tosupply one compiler to lots of people usinglots of different machines, and that makes hislife very easy, but it also means users' pro-grams execute significantly slower. There-fore, we chose to write a native compiler thatdelivers fast re-entrant ROMable code, withno need for an intermediate language andinterpreter. That's where our speed comesfrom." As a matter of fact, Pascal/Z is oftentwenty times as fast as UCSD's implementa-tion and may well be faster than dedicatedPascal machines such as the recentlyannounced Western Digital Pascal Micro-engine.™ Unlike the Microengine, Pascal/Zdoes not require any new special CPUhardware and has the added benefit of com-patibility with existing Z80 software.

Operational requirements of Pascal/Z arethe Ithaca Audio K2 Operating system and48K of memory during compiles. The outputis standard Z80 Macrocode which is linkedand run through the Ithaca Audio Macro-assembler. Binary files may be as small as2.5K, or even less if the full library is not used.The compiler, including the Macroassembler,is available on an 8" K2 floppy disk. Priceincluding full documentation is $175.00. TheMacroassembler is available separately for$50.00. Delivery is from stock.

More Software:

For those that don't require the speed of acompiler like Pascal/Z, Ithaca Audio alsooffers the convenience of BASIC. BASIC/Z,an extended version of TDL's Super Basic,runs in slightly over 12K and is supplied on an8" K2 disk for $75.00.

SAVE Even More -

When you buy your software as a packageK2 and Pascal/Z $225

SAVE $25K2, Pascal/Z and Basic/Z $275

SAVE $50

HOW TO ORDER

Send check or money order, include $2.00 shipping per orderN.Y.S. Residents include tax.

For technical assistance call or write to:

ITHACAAUDIO

P.O. Box 91

Ithaca, New York 14850

Phone: 607/257-0190

BYTE August 1979 229

CASSETTE AND FLOPPYDISC LADELS.

Pi

MH-adhMtvt

STANDARD CASSETTE

rarocvabto Ifltol

)

kmum

Avery offers a complete line of labels forcassettes and floppy discs—all with re-movable adhesive, including these stan-dard sizes:

Cassette Label (1%" x 3W) #5250Floppy Disc Label (W x 51/2") #5252Write for more information and freesamples to:

Avery Label

777 East Foothill Blvd.

Azusa, CA 91702

Avery Label

An Avery International Company

Circle 20 on inquiry card.

"CRT INTERFACES"black - white/color*

Monitors * Combination Rcvr/monitor sets• Modulator kits • B-W Cameras * ColorCameras « Audio Subcarrier kits * Parts

,^U ,^;?»v:.*-

WRITE or PHONE for DETAILS & PRICING.

DIAL: 402-987-37711

Dealers welcomed. Well established program.

—^—?/Vi

J*JL ATV Research "J1"*" Si*.Broadway .. ASSKS HE. 68731

Circle 19 on inquiry card.

GLARE FILTER

HIGH CONTRAST

SHARP RESOLUTION

MICRO-POROUS OPTICAL FILTER

FOR HOME COMPUTER CRT'S

TRS80

16.95

PET

16.95

ADM3A

16.95

Some 10 120

16.95

Hazeltine

Southwest Tech.

16.95

1400-1500

16.95

Micro-Term

Perktn Elmer

16.95

ActV

16.95

Easily Installed • Instructions included

For information on other models

dial 1415)456-8909

SUN-FLEX COMPANY, INC.

3020 Kerner Blvd. • San Rafael. CA 94901Check/money order Visa/Mastercharge

L

THE

RECREATIONALPROGRAMMER

A

QUALITY SOFTWARE!

Tl & HP ProgrammablesBASIC for most computers

LUQ.

II

GAMES ALGORITHMS- PUZZLESSTOCK ANALYSIS- AND MORE!

OVER 30 PAGES BIMONTHLY!

ANNUAL SUBSCRIPTION ONLY:S12 within USA S APO/FPO'S

$24 Foreign by AIRMAILSingle issue tor S3 incl P&H

VISA and MASTERCHARGE OKICALL (616)343 3546 NOW!Box 2571 Kalamazoo Ml 49003

HAZELTINE1400

only

$649.95!

• Verbatim Mini Diskettes . . .

. . . $3.70 each (boxes of 10)

• Intertube . . $784.00

• TRS-80 16K Level IIExpansion Kit $89.95

• Centronics 779 tractor ....

$1050.00

• Horizon II ass. . . .$1999.00

M"'1 TORA SYSTEM INCOrder 29-02 23rd Avenue°nly- Astoria NY 11105(212) 932-3533

AIRCRAFT SIMULATORFOR APPLE II

PROGRAMMERSSOFTWARE EXCHANGE

Three versions on cassette for SI9.95

1. Presents the pilot with a flying situationwhich must be successfully completed toavoid a crash.

2. Presents a simulated instrument panel duringan IFR flight for prolonged practice.

3. Provides machine code for building flightproblems and displaying them on the screen.

Satisfaction guaranteed.'P.OBOX199 (50D843-6037

CABOT, ARKANSAS 72023

Bt '!!^^W '-hP^i'-").■■■■■

*>■> 0 H H

SINGLE BOARD COMPUTER$99.50*

with 6800 MPU, 6850 serial I/O, 26820 parallel I/O (32 lines), 512 RAM,socket for 2708, 2716, EROM. Inter-face modules for industrial control,data acquisition, lab instrumentation,on 44 pin AV2""6'/2" PCB's. RAM,ROM, CMOS RAM/battery, A/D, D/A,Driver/Sensor, Serial I/O, ParallelI/O, Counter/Timer, IEEE 488 GPIB,floppy controller.

'OEM {500 piece) price

El ■■■"»! Corp.902 N. 9th StreetLafayette, IN 47904Phone (317) 742-6802

Circle 389 on inquiry card.

♦apple)

SUPER SALE

16K Apple II $1019.95

Disk with

Controller $529.95

Apple Soft Cards .. . $159.95

Carrying Case $29.95

Super Mod $29.95

Printers—call for price

UCATAN CORP.

P.O. Box 1000

Destin, Fla. 32S41

904-837-2022Credit Cards Accepted

Circle 375 on inquiry card.

SOFTWARE

for TRS-80 & North Star Z80

all programs written in

280 assembler

WORD PROCESSOR $125

Superior to the Electric Pencil at half the price.Gives total freedom of layout. Auto line justi-fication, underlining, centering, lines pacing,pagination, re-pagination, etc. Works with anyprinter.

804B CROSS ASSEMBLER 595

Assembles programs for S048, 8041, 8035series at 1100 Nnes/min, INTEL mneumonics &error codes, multiple source files, symbol re-ference count, format control.

TEXT EDITOR $75

UNlX™-style editor with global search & re-place, pattern matching, reads & writes partialfiles, change, move, copy, append, delete, print,etc

UNIX™ is a trademark of Bell LabsSend $1 for specifications,

$3 for documentationDealer discounts available

SOFTWARE INGENUITY

P.O. Box 1964, Eugene, OR 97401

Circle 356 on inquiry card.

Circle 315 on inquiry card.

Circle 333 on inquiry card.

ComputerBoards

h HOBBY WORLD®

CALL TOLL FREE: (800) 423-5387CA, HI, AK: (213) 886-9200

Your No.l Source for Computer Electronics

SlOO Bus

(is ( jlii.imu Computer System*

WMC -W*me(o

IA = llh*r* Audio

SSM = Solid Sldlr Music

Mis SD Systems

SPI = Speochbb

HUH = HUH Elertrontts

MH- MounlJin Hjrilnjrf

j&l = ossrmbted A lesltd

Cat No. Mir/Model Description Price

1601A CCSMXVI 16K STATIC RAM MODULE, 450ns kit $285

as above, 200ns kit S330

as above, 450ns a&t $110

as above, 200ns a&t $375

as above, bareboard $ 27

WIRtWRAP PROTOTYPING BOARD $ 26

SOLDtRTAIL PROTOTYPING BOARD $ 26 I

ETCH PROTOTYPING BOARD $ 16 ;

4K/8K EPROM BOARD $135 i

TERMINATOR BOARD $ 29

16K STATIC RAM BOARD, kil $329

as above, ,*i $383 I

as above, bareboard $ 26

2K/4K EPROM BOARD, kit $ 54

as above, a&t $108

4K STATIC PROM/RAM BOARD, kit $ 64

as above, a&t $118

1601B CCS MXVI1602A CCS MXVI1602B CCS MXVI1603 CCS MXVICCS-PT1CCS-PT2CCS-PT1SSM-PB1SSM-T1SSMMB7SSM-MB7SSM-MB7SSM-MBSSSM-MB3SSM-MB9SSM-MB9SSM-OB1SSM-OB1SSM OBISSM-I02SSM 102SSM 102SSM-SB1SSM-SB1SSM-SB1SSM MT1SSMI04SSM 104SSM-I04SSM-CB1SSM CB1SSM-CB1SSM-V81BSSM VB1BSSM-VB1B

1600160416091440144214051406140714251426143614371429143014311414141514161408140914101432141114121413140314411404141714181419 a

1400 SSM MB6B 8K STATIC RAM BOARD, kit

1401 SSM-MB6B as above, a&tSSM-MB6B as above, bareboardSSM MBBA 16K 2708 EPROM BOARD, kitSSM-MB8A as above, a&tSSM-MB8A as above, bareboardSSM-VB2 VIDEO BOARD, kitSSM-VB2 as above, a&t

SSM-MB4 STATIC RAM BOARD, kit, 2MHzSSM-MB4 as above, a&tSSM MB4 as above, bareboard

14021433143414351438143914201422142413241325132213231337

15091510151115131512151415001501150515061518152015161517-0

VECTOR JUMP/PROTOTYPING CARD, kit $47

as above, a&t

as above, bareboard

UNIVERSAL I/O BOARD, kit

as above, a&t

as above, bareboard

MUSIC SYNTHESIZER, kit

as abovi' a&t

as above, bareboard

15 SLOT MOTHfcRBOARD, bareboard

2 PARALLEL + 2 SERIAL PORTS, kit

as above, a&t

as above, bareboard

8080A CPU BOARD, kit

as above, bareboard

as above, a&t

VIDEO INTERFACE BOARD, kit

as above, a&t

as above, bareboard

$ 26

$ r:

$118$ 26$139$199$ 89$142$ 26

WMC-EPM1 4K EPR6M BOARD, bareboardWMC EPM2 16/12K EPROM BOARD, bareboardWMC FPB1 FRONT PANEL BOARD, bareboardWMC-CPU1 8080A CPU BOARD, bareboardWMC-FDC1 FLOPPY DISK CONTROLLER BOARD,

bareboardWMC-MEM18K STATIC RAM KIT, bareboardWMC-MEMIparts only for above

IA

IA

IA

IA

HUH MPA

HUH-MPA

MH

MH

SPL-20S

SPL-50SSDSSDS

1517-16K SDS

1517-32K SDS

1517-48K SDS

151764K SDS

APPLE BUS

1607 CCS1606 CCS

1608 CCS1519 SPL

2708/16 EPROM BOARD, bareboard

8K STATIC RAM, bareboard

Z-80A CPU BOArtD, bareboard

WIRE WRAP PROTOTYPING BOARD

PET & APPLE TO S-100 ADAPTER, kit

as above, a&t

100,000 DAY CLOCK, a&t

INTROL

32 WORD SPEECHLAB, a&t

64 WORD SPEECHLAB, a&t

VERSAFLOPPY, kit

EXPANDORAM, kit

as above, with 16K RAM

as above, with 32K RAM

as above, with 48K RAM

as above, with 64K RAM

SOLDER1AIL PROTOTYPING BOARDWIREWRAP PROTOTYPING BOARDETCH PROTOTYPING BOARD32 WORD SPEECHLAB

$ 48

$ 28

$ 80

$ 28

$ 28

$ 32

$ 24

$199

$279

$219

$329

$189

$299

$159 I

$185

$249

$330

$425

$500

$ 21$ 21$ 18

$189

HUH 8lOO|TRS-80foS100 Bus Adaptor |

• 6 Slot motherboard

Includes options such as

serial RS232/20ma I/O,

parallel input and output,

space for 4K or 16K RAM,

and more. Basic unit in-cludes Bus interface and

connectors only.Cat No. 1460 Bus interface kit $167

Cat No. 1461 Ram Support kit $ 42

Cat No. 1462 I/O Option kit $ 77

Cat No. 1463 5 connectors + guides $ 42Cat No. 1464 Complete Package $266

Cat No. 1465 Bus Interface a&t $220

Cat No. 1466 Complete Pkg. a&t $340

LOW PROFILE BASECat No PV305SVfSn $10.50

BASE TRAYCat No. PV312$ p*$ $ 8.50

BASE MOUNTING CLAMPCat No. PV311

$J>r9t $10.00

HORIZONTAL VISE HEADCat No. PV304

*1><SJ^ $12.00

IC Sockets

Penny-A-Pin

• Texas

Instruments

• Solder

tail

• Package quantities only 1

Order by Cat No. 1117 and I

pins

8 pin

20 for $1.60

14 pin

10 for $1.40

16 pin

10 for $1.60

18 pin

8 for $1.44

20 pin

8 for $1.60

22 pin

8 for $1.76

24 pin

3 lor .72

28 pin

3 for .84

40 pin

2 for .80 I

TRS80

j Level III Basic

Loads on top of Level II,turns your TRS-80 into apowerful system. Gives diskcommands without theDOS. Solves loading prob-lems, cures keyboardbounce. Software cassette,with the power of a hard-ware modification. Guaran-teed satisfaction.Cat No. 1332 $49.00

$49

NJoltageRegulators

I Type Equal to CASE PRICE I

■ 7805K

I7812KI7815KI-818KI7805TI7812TI7BI5T|7818T.7905K17912kI7905TI7912TI7915T

LM340K + 5 1LM340K + 121LM340K + 151LM340K + 18 1LM340T + 5 1LM340T + 12 1LM340T + 15 1LM34oT + 18 1LM320K-5 1LM430K-12 1LM320T-5 1LM320T12 1LM320T-15 1

11 $1.4011-3 $1.4011-3 $14011-3 $1.4011-220 .9511-220 .95 I1-220 .9511-220 .95 I1-3 $1.751>-3 $1.7511-220 $1.25 I1-220 $1.25 I1-220 $1.25 I

19355 Business Center Dr. 6B8NorthridgeGfl 91324

STANDARD BASECat No. PV300$1*41 $10.50

VACUUM BASECat No. PV380$1><(9 $14.50

WIDE OPENINGVISE HEADCat No. PV366

$1><5 $11.25

STANDARD VISE HEADCat No. PV303

$3*39' $11.2S

PC BOARD VISES

Cat No PV315 Standard. $fS<$8 $14.75

Cat No. PV315 S-100 $><9J $16.75

TRS232

Printer SerialInterface $42

Software driven RS232 out-put port. Interface printerssuch as DIABLO, TELE-TYPE, Tl SILENT, etc.Easy to install, with inst-ructions.Cat No. 1199 $42.00

16K Memory tAdd-On *95

• For TRS-80, Apple II

Guaranteed memory expan-sion! Includes everythingyou need.-.chips, jumpers,and step by step instruc-tions. No special tools, nosoldering!Cat No 1156

"LIFT-IT"

PC Duplicating Kit

$25

Copy PC patterns frommagazines quicklv and eas-ily! No additional materialsrequired, no camera needed.With 10x12" sheet of film.We stock all refills. Withstep-by-step instructions.Cat No. 1203 $25

LEEDEX12" Video /Vlonitor

Old

TT

prby-t

LSI

pe number

7400

.15

7490

45

7402

.20

7491

55

7403

.20

7492

.4545

7404

.20

7493

7405

20

7495

65

7406

.30

7496

65

7407

.30

74107

35

7408

.20

74109

.5535

7409

.20

74121

7410

.20

74122

.4060

7411

.25

74123

7412

.25

74126

40

7413

.35

74132

.6580

7414

.60

74141

7416

.25

74145

65

7417

.25

74150

90

7420

.20

74151

.60

.60

1 00

7423

.25

74153

7425

.25

74154

7426

.25

74155

.7060

7427

.25

74157

7430

.25

74160

85

7432

7437

.25.25

7416174163

.75■75

7438

.23

74165

.95

7440744174427443744474457446744774507451

.20

.70.50.50.25.75.75.65.20.20

74166741707417374174741757417674177741807418174190

1.25

1.60

1.10

.85

.70

.80

.75

.65

1.75

1.25

7453

.20

74191

■95

7454

.20

74192

.75

7470

.30

74193

.75

7472

.25

74194

.90

7473

.35

7419S

.70

7474

.35

74198

1.49

7475

.45

74221

.85

7476

.35

74251

.80

7481

1.20

74273

1.00

7483

.60

74365

.65

7485

.75

74366

.65

7486

.35

74367

.65

7489

1.75

74368

.65 J

$139

• TRS-80 compatible{no interfacing required)• High resolution

Accepts standard compositevideo input, no RF modu-lator necessary. Stable &sharp. Lightweight. Ship-ping $6 gnd, $12 air, USAonly.Cat No. 1204 $139.00

Pay by check, COD, Visa,or Mastercharee. Order byphone or mail. Please in-clude phone number andmagazine issue you are or-dering from. USA: add $2

Send for

FREE CAT/1LOG

Featuring

The best selection of computeraccessories add-ons, factoryfresh IC's, led's, semi's, soft-ware, PC aids, prototypingaids, books, test equipment,and more! Always updated!Dozens of new products everyissue!

for shipping/handling, $3for air. Foreign: add $3 forsurface, $6 for air. COD'salso add $1. Guaranteedsatisfaction for 120 days oryour money back!

Circle 170 on inquiry card.

BYTE August 1979 231

IN CALIFORNIA

©(DitPira STOWSAB 0

Mainframes

Personal Computers

S100 Bus Boards

Systems

Software

Peripherals

Supplies

BooksMagazines

701 MacArthur BlvdSAN LEANDRO, CA(415) 569-4174

Circle 70 on inquiry card.

Come Help UsCelebrate The Child

St. Jude Children's ResearchHospital continues its search forlife-saving knowledge aboutcatastrophic childhood disease.And this search continuesbecause people care. There'sno charge to patients or theirfamilies ,once admitted to itsresearch studies by physicianreferral. The cost of drugs,equipment, and researchprograms is met primarilyby public contributions. Helpus celebrate the child by send-ing your tax-deductible checkor request for further informa-tion to St. Jude Children's^ m Research Hospital,»• .%*■ 539 Lane Ave.,■^* Memphis, TN 38105.

ST.JUOECHILDHEMS RESEARCH HOSPITAL

ROBOT

ATTENTION FRANKENSTEINS

12-VOLT DC, 1 7-RPM,

REVERSIBLE GEARMOTORS

500-ma NO LOAD,

750-ma FULL LOAD

11 INCH-POUNDS TORQUE

2 MOTORS SEPARATELY DRIV-ING 6-INCH DIAMETER WHEELSWILL DRIVE A 100-LB ROBOT.$18.00* EACH PLUS $1.50 PERMOTOR FOR SHIPPING ANDHANDLING IN USA. CHECK ORMONEY ORDER PLEASE. CALIFOR-NIA RESIDENTS ADD 6% TAX.

GLEDHILL ELECTRONICS

P.O. BOX 1644MARYSVILLE, CA 95901

•THIS IS £5.50 BROW MANUFACTURER'S USTI

FOR TRS-80™ OWNERS j

Programming Amateur's Letter

THE "DO-IT-YOURSELF"SOFTWARE NEWSLETTER

PUBLISHED MONTHLY

LEVEL II FROM THE BOTTOM UP

BUSINESS

PERSONAL

HOBBY

There's Nothing Else Like It!

$24 per year . . . or write for FREE DETAILS

THE MAIL MART

DeptBA, Box 11102, San Francisco,CA94101

Circle 199 an inquiry card.

13USS

Tj?e JndependentYeivsleHerofHeaty Co. Computers

3iJ>-9?ennS^l vania A»*. ,S.E.U>as^in^<m,P.C. 20003

jf 8.30 for 12 issuesf 15.60 fw 2H issues

(overseas, $ 10.50/^

$ 70/2*

oauablfc on a U.S- bww

Circle 32 on inquiry card.

ALIGNMENTONLY

$35

SHUGARTEFLOPPYA

DISCR

$80

INCLUDES MISC. PARTS

THfc

COMPUTERREPAIR €•.

8746 Wurzbach I Suite 207San Antonio TX 78240 / (512) 696-0907

MICRO FOOTBALL

(TRS-80 16K Level II Cassette)

Great graphics and player action!You can run, pass, draw, punt,blitz or kick a field goal.Touchdown, safety, interception,fumble are all included.

You can call an offense, your op-ponent calls a defense! Instruc-tions are included to 'fine tune'odds if you wish.

(Send $12.95 to:)

GLA Enterprises

P.O. Box 125Reistertown, MD 21136

(Maryland residents include sales tax)

Circle 145 on Inquiry card.

Special Sale!

DATATERMINAL $4QAPRINTER 0?9

1Mb Buy-Sell-Trade all brand* &models of Data ProcessingEquipment.

USB-33010/30 CPS impact

Printing Tractor Feed 132 Print Positions10-Key PadNearly a million dollars In Inventory

, a Phone for Price Quotes

•••J* -214/357-5725

'"KALBRO

computer brokers

Formerly US Brokers Co . A Division ol Kalbro Corp

2636 WALNUT HILL LANE, SUITE 347

DALLAS, TEXAS 75229

Circle 377 on inquiry card.

get yourhands on...

Hands on microprocessor short course withFREE take home microcomputer included inthe $449 tuition.

5 day^lfPand interfacing workshopsOct. 15-19 Washington, DCOct. 22-26 Lafayette, INDec. 3-7 Lafayette, IN

NEW Advanced programming work-shop

Dec. 10-14 Lafayette, IN

Learn microprocessors first hand from theoriginal hands on people.For more information call Jerilyn Williams.(317) 742-6802 or write Wlntek Corp.. 902 North9th Street, Lafayette, IN 47904

■ 6800 Hardware/Software

■ Custom Hardware/Software

■ In-house short courses

WINTEK

Corp.

Circle 146 on inquiry card.

Circle 390 on inquiry card.

computerproducts, inc.

11542-1 KNOTT STREET

GARDEN GROVE, CALIFORNIA 92641

(714)891-2663

' A complete single board Z80ACPU and serial/paralle I/O systemFully S-100 Bus compatible,iMSAi, ALTAIR

i Z80A CPU (4 MHz version of theZ80)

i 158 Instructions — superset ofand upward compatible from the8080's 78 instructions

• Provision for up to 4K on boardmonitor program using 1K (2708),2K{2716), 4K2732

• On board EPROM can be hard-ware and/or software deselected

• 2 MHz or 4 MHz operation isswitch selectable

> 0 or 1 wait state for all cycles isswitch selectable

> 2 RS-232C serial ports with 8251USARTs

• Serial baud rates switchselectable

• 24 programmable parallel I/Olines (uses 8255)

MICROBYTE Z80/IO

Gold Contacts for higher relia-bility

Power requirements: + 8V @800mA, + 16V, ® 86mA, - 16V@ 100mA

Operating temperature 0*-55*CWill operate with or withoutIMSAI/ALTAIR front panelLow power shottky tri-state buf-fers on all address and data linesFully warranted for 120 days fromdate of shipment

$325.°'

MICROBYTE 16K STATIC RAM BOARD

• Fully S100 Bus Compatible,IMSAI, SOL, ALTAIR, ALPHAMICRO

• Uses National's Low Power 52574K 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 ShottkySchmitt Trigger buffered on alladdress and data lines

• Phantom is jumper selectable topin 67

• Each 4K bank addressable to any4K slot with in a 64K boundary.

• 4K hardware or software select-able

• Selectable port address

• 4K banks can be selected or dis-abled on power on clear or reset

Will operate with or without frontpanel

Compatible with ALPHA MICRO,with extended memory manage-ment for selection beyond 64KNo DMA restrictionLow power consumption 1.3 ampFully warranted for 120 days fromdate of shipmentExtended addressing up to 1megabyte of addressable ram

450NSS320.00300 NS $340.00

MICROBYTE 32K STATIC RAM BOARD

Fully S100 Bus Compatible,IMSAI, SOL, ALTAIR, ALPHAMICRO

Uses National's Low Power 52574K x 1 Static Rams2 MHz or 4 MHz operationOn board single 5 amp regulatorThermally designed heat sink(board operating temperature 0'- 70'C)

Inputs fully low power ShottkySchmitt Trigger buffered on altaddress and data linesPhantom ts jumper selectable topin 67

Each 4K bank addressable to any4K slot with in a 64K boundary.4K hardware or software select-able

One on board 8-bit output portenables or disables the 32K in 4Kblocks

Selectable port address4K banks can be selected or dis-abled on power on clear or reset

i Will operate with or without frontpanel

• Compatible with ALPHA MICRO,with extended memory manage-ment for selection beyond 64K

• No DMA restriction

• Low power consumption 2.3 —2.5 amps

• Fully warranted for 120 days fromdate of shipment*

Extended addressing up to 1megabyte of addressable ram

IMSAI CONN.

100PIN-SOLDERTAILGOLD CONTACTS

$3.00 each or 10/2.60 each

8251

PROGRAMMABLE/U-ARTTESTED® 4 MHZ

$5.00 each

TRS-80

Floppy disk drive withcabinet & pwr. supplycompatible with RadioShack interface. Ass-embled & tested with1 yr. warranty onparts & labor.

Mfg. by Lobo Drive

$385.

Interface Cable Available

V

SHUGART

801-Disk Drive

WITH CABINET & POWER SUPPLY

ASSEMBLED & TESTED

1 YR PARTS & LABOR

Mfg. by Lobo Drive

$585.00

Dual Cabinet & Drives Available

SHUGART

SA400

DISK DRIVE INCLUDES CABINET. NO PWR

SUPPLY, CUTOUTS FOR SWITCH, FUSE, &

INTERFACE CABLE

Mfg. by Lobo Drive

$325.

00

450 NS $620.°°300 NS $650.°°

MICROBYTE MOTHERBOARD

• Extra wide ground plane

• Silk screen and solder mask

• Assembled and tested

• Active Diode termination

• Slot for IMSAI front panel■ Terminal block connection tor

easy hook-up

9 slot kit $70.00A&T$100.0020 slot kit$125.00A&T$155.00Bare Board 9s1ot$30.00 20 slot $50.00

MICROBYTE DISK CONTROLLER

■ IBM 3740 Sod Sectored'Compat-ible

• Z80 or 8080 compatible on S 100Bus

• Single density runs both mini and

full size drives, runs CPM. onShugart, Persci, Memorex etc.

> Selectable port/address

• On board 2708/2716 for bootstrapor monitor program

> No hardware jumpers, uses plugin modules for different drives

• Uses 1771B-01 controller chip

> Assembled and tested

• Specify disk drive used whenordering by mall

$225.'

SCANBE/RN

SOCKETS — LO PROFILE

14 PIN16 PIN18 PIN20 PIN24 PIN40 PIN

1-24

.16.17.20.29.34.60

(tin)

25-99 100-499

.15.16.19.28.32.58

.14.15.18.26.30.56

500 up

.12.14.16.25.28.52

SPECIAL

.1 @ 12 VOLTSCERAMIC CAP

10$ eachor

100/$9.00

2708's

LOW POWER450 NS.

$8.75 each8for$66.00

2716

5 VOLT ONLY

LOW POWER

450 ns

$40.

00

REGULATORS

1-9 10-49 50up

NEW PRODUCTS

8086 — CPU BOARD

8088 — CPU BOARD

Double Density Controller

CALL OR WRITEFOR DEALER INFO

ORDERING INFORMATION:

Name, Address, Phone

Ship by: UPS or P.P.

Shipping Charge: Add $2.50 up to5 lbs., all excess shippingcharges will be refunded. Credit

cards will be charged appropriatefreight.

320 T 5320 T 12340 T5340 T 1278H05

1.251.00.75.75

1 15.90.70.70

1.05.85.65.65

540

CABLEASSEMBLY

for 8 " disk drives

(2) 50 PIN CARD -

EDGE CONNECTORS

ON 4ft. RIBBON

CABLE

$20.00ea.

extra conn. $7.°° ea.

TERMS:

We accept cash, check, moneyorders, Visa, and Master Chargecards. (U.S. Funds Only).COD's: on approval onlyOpen Acct's: companies may

inquire for net terms.Tax: add 6% for Calif, residents only

Circle 11 on inquiry card.

BYTE August 1979 233

TRS-80 USERS

Loweco Computer Introduces 3 DisklessTRS-80 Programs

- Telephone/Address/Mailing list pro-gram - sorts by name or zip code.Retrieves telephone # from name and visaversa. Access time is under 2 seconds,over 100 listings, Level II 16K - $30.00

- Checkbook program - hard electroniccopy, easily accessible. 170 listings, LevelII 16K - $30.00

- Mandalas for the Cybernectic Age I & II

- amazing graphic programs, better thanTV - lasts hours without repeating or com-mercials. 2 sets of four interweavingdesigns, Level I or II 4K RAM - $30.00

- Introductory offer - all 3 for $75.00

LOWECO COMPUTOR

1803 Rodney

LOS ANGELES CA 90027

213-660-7530

6% Tax in CaliforniaCashier Check Speeds Delivery

Radio /tiaekoEALE«

MICRO

MANAGEMENT

SYSTEMS

Up To 15% Discounton

TRS-80's

MICRO-COMPUTER SPECIALIST

LARRY OWENS

COMPUTER CENTER

MINI MALL

DOWNTOWN SHOPPING CENTER

CAIRO, GEORGIA 31798

912-377-7120

S-100 A/D

5*

• S-100 Bus Compatible A/DConverter

• 12 Bit Accuracy

• 16 Channel Analog Input

• Programmable Gain Amplifierwith Sample-and-Hold

• High Quality Commercial/Industrial Construction

2 and 4 Channel, 12 Bit D/ABoards also available.

CALIFORNIA DATACORPORATION

3475 Old Cone jo Road, Suite CIONewbury Park, California 91320(80S) 498-3651

Circle 207 on inquiry card.

Circle 41 on Inquiry card.

KIM SOFTWARE

9K MICROSOFT BASICIncludes:

• Over 55 Commands

• Full String Handling

• 9 Digit Precision

• Hypertape Built-in

• 70 Page Manual

SPECIAL

INCLUDES "DATA/SAVE"

(added commands to record

both programs and data!)

KIM CASSETTE & MANUAL

$100.00 prepaid

UPDATE KIT & MANUAL FOR KIM BASIC

WITHOUT MICRO Z FEATURES . . . $35.00

MICRO-Z COMPANY

Box 2426

Rolling Hills, CA 90274

APPLE X

RESET KEYPROTECTOR

FAST RELIEF lor theACCIDENTAL RESET BLUES '

* Prevents reset when reachinglor : and return

* Allows deliberate usage

* Custom, precision moldedpart * Easily installed

* Original equipment look

only S2 25 ■ incl. ship.&hndl.

(calif, res add 6 tax)send check or mon. order to:pkC. inc. deptB2003 Quail St. N.B. CA 92660

The best choicein mainframes !

• S100 CARD FRAME • AXIAL BLOWER

• 22 MHi 12" CRT MONITOR • ASSEMBLED 8- TESTED

• 18 AMP POWER SUPPLY • READY FOR YOUR CARDS

• UPPER & LOWER CASE • S995.O0ASCII KEY BOARDS

VERY A TTRACTIVE O.EM. ANDDEALER DISCOUNTS AVAILABLE.

—mm INFINITE INCORPORATED

Celebrating Our Utk Year.819 E. STRAWBRIDGE, MELBOURNE. FL 32901 - (305) 724 1588

Circle 234 on inquiry card.

Circle 299 on inquiry card.

Circle 174 on inquiry card.

r>Q

BYTE's New/\ Toll-free\ ^Subscriber\ VH.A.T.S. line{80^258-5485

To further iniprove service toour customers we have installed

a toll-free WATS line in ourPeterborough, New Hampshireoffice. If you wouldJike to ordera subscription to BYTE, or if you ohave a question related} to a BYT^E °subscription, you aire invited to\call (800) 258-^48ibetween \8:30 AM and 4:30 P^ Eastern /Time. This applies'to calls fromwithin the continental tys only?

We thank you arid tedkforward to serving you.

'JLJiSJULSLSLSLSLSLSO

z

16K RAMS & RAM CONTROLLERS

16k x 1 DYNAMIC RAM MK4116P3

• 200 NSEC ACCESS/375 NSEC CYCLE TIMES

• 16 PIN CERAMIC DEVICE TTL COMPATIBLE

• ALL CHIPS BURNED IN 8 125°C AND FULLY TESTED,BOTH DYNAMICALLY AND STATICALLY

• PRICE (WITH DATA SHEETI:

• S68.00 IN OTY OF 8/THAT'S $8.50 EACH

DYNAMIC MEMORY CONTROLLER MC3480L

• GENERATES RAS/CAS « REFRESH TIMING FOR 16KTO 64K BYTE MEMORIES

• PRICE IWITH DATA SHEETI: S 13.95 EACH

MEMORY ADDRESS MUX/COUNTER MC3242AP

• MUX ADDRESS & REFRESH COUNTER FOR 16K TO64K BYTE MEMORIES

• PRICE IWITH DATA SHEETI: $12.50 EACH

QUANTITY DISCOUNTS AVAILABLEALL ORDERS POSTPAID. U.S. FUNDS ON INTERNATIONALORDERS. CHECK OR MONEY ORDER, VISA BA MC ALSO AC-CEPTED. SEND ACCT. NO., EXPIRATION OATE, 8i INTERBANKNO. WITH SIGNE0 ORDER. CALIF. RESIDENTS PLEASE ADD6% SALES TAX. PHONE ORDERS: 1714) 633-4460.

MEASUREMENT SYSTEMS & CONTROLS, MC.

MEMORY DEVICES DIVISION867 NORTH MAIN ST.. ORANGE. CA 92668

6800 MICROPROCESSOR PARTS

(Brand New Limited Quantities)

M6800 CPU $8.95

M6821 PIA $4.95

■M6810 RAM $4.95

2708 EPROM (8K) $9.95

2716 EPROM (16K).... $24.95

Complete 6800 computer boardkit with M6800, M6821, M6810,2708 EPROM, p.c. board, andpower supply ready for oper-ation on 115 VAC with fullinstructions (with 2716 EPROM,add $10.00) $49.95

ODS INC.P.O. BOX 8346

Gaithersburg, MD 20760

Circle 217 on inquiry card.

Circle 286 on inquiry card.

^v Products ^^

STATICX / RAM BOARDS,

WW

S-100 32K (uses 2114)ASSEMBLED Kit ')%'

450ns. 599.00 450hs. 539.95

250ns 699.95 250ns 599.96

Bare Board 49.95Bare Board w/all parts less mem. 9995

S-10O1«K(uses2114) KIT (exp. to 32K)

ASSEMBLED 450ns 279.00

450ns. 325.00 250ns. 299.00

250ns. 375.00

Bare Board 49.95

LOGOS ISK

ASSEMBLED

450 ns. 169.95 KIT 450ns. 125.95

250ns. 189.95 250ns. 149.95

Bare PC Board w/Data $21.95Now over 1 year successful field experience"Special Offer" Buy (4) 8K 450ns. Kits $ 117,00

u-m

FLOPPY DISK DRIVES

1-VISTA V-80 MINIDISKFOR TRS-80

* 23% More StorageCapacity ■ 40 Tracks

* Faster Drive - /**~~**\Up to 8 Times Faster (30s 00 I

2 Drive Cable Add $29.95 l™*"™/4 Drive Cable Add $39.95 ^ r

2. VISTA V-200 MINI-FLOPPY SYSTEM

* 204K Byte Capacity * w/CPM. Basic "E"

* One Single Sided, •■""^vDouble Density Drive /v-200\

* One Double Density v699.00/Controller w/Case & P.S.V, y

Add to your EXIDY,HORIZON, etc.

3. VISTA V-1000 FLOPPY DISK SYSTEM

* (2) Shugart 800-R 8" Floppy Disks

* Controller Card, Cable, s*~—N.Case& PS. /V-1000\

* CPM & Basic "E", \1699.0WInstructionsS Manual X^. .^^

4. MPI B51-5'/4". 40 tracks 279.00

5.ShugartSA406-5V..",35tracks.... 295.00

6. Siemens/GSI FDD100-8 8" 375.00

7. Shugart 800/801 R 8" 495.00

8 PERSCI Model 277 Dual 11 95.00

EXPANDORAM MEMORY KITS

* Bank Selectable * Uses 4115 or 4116

200 ns.

* Write Protect * Power 8VDC, ±16VDC

* Phantom # Lowest Cost/BitExpando32K|t(4115| Expando64KitJ4116)

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 & testedRecommended 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-8000compact, impact, parallel orrial. Sprocket teed, 80 cols,

i 84 lines/min., bi-directional.New only $895.00

VERBATIM™ DISKETTES 0*

'4" Minidiskettes * ZoSyz

* 5'V Minidiskettes * SpV-oSoftsector, 10Sector, 16 Sectorr^Ov.-f<$4.25 Each, 10/39.95 rA>*iw3

* 8" Standard Floppy Disks * vSt* ISoft Sector, Hard Sector Ow$4.50 Each, 10/41.95

Add 4.95 for 10 Pack in Deluxe Disk Holder

MOTOROLA EXORCISER COMPATIBLE

9600 MPU Module w/6802 CPU $495.00

9601 16 Slo! Molher Board 175.00

9602 Card Cage 119" Retma Back Mount) ... 75.00

9603 8 Slot Mother Board 100.00

9604 Switchmode System Power Supply.... 250.00

9610 Utility Prototyping Board 36.00

9616 Quad 8K Eprom Module ***

9620 16 Channel Parallel I/O Module... 295009622 Serial/Parallel I/O Combo ***

9626 8K Static RAM Module 295.00

9627 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

eaOO BARE BOARDS

9620-0 $45.00 9603-0 27.00

9626-0 45.00 9600 55 00

9650-0. .... 45.00 96103 55.00

9601-0 50.00 96702 55.00

Also AMI EVK System in Stock

APPLE/EXIDY/EXPANDOTRS 80 16K-UPQRADE 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

TRS80TOS-1O0

PET TO S-100 ADAPTER

Allows Pet/TRS 80 to be interfaced topopular S-100 Bus.

Pet to S-100 Kit $189.95

Assembled $269.95

TRS80toS-100HUH8100Kit ....$275.00Assembled $355.00

KEYBOARD ASCII ENCODED

One time purchase ofNEW Surplus key-boards. From the SingerCorporation. Thekeyboard features 128-ASCII characters in a 63key format, MOSencoder circuitry "N" keyrollover, lighted shift lock, control, escape andrepeat functions. Ltd Qty 63 KEY SS9.95

UV "EprofrV' Eraser

Model UVs-1 IE $64.95

Holds 4 Eprom's at a time

Backed by 45 years

experience.

Model S-52T... $219.35

Professional Industrial Model

TARBELL FLOPPY INTERFACE

# 280/8080 S100 Compatible * Uses CPMAssembled for Shugart SALE $229.OO

Assembled Other Drives S269.95

Kit $179.95

Bare Board $36.95 (Doc. Add $ 10.00)

Vista Double Density 5'V Controller

Assem $299.00

SD Versa Flooov Kit $159 95

SD Versa Floppy Assembled $189 95

Tarbel Cassette I/O Kit $115.00

Sale * 1771-01 Floppy Chip $2795

BYTE USER 8K EPROM BOARD

* Power on Jump * Reset Jump

Assembled & Tested $94.95

Byteuser Kit $64.95

Bare PC Board $21.95

Special Offer: Buy 4 kits only $59.95 each

MR-8 8K w/1 K Ram $99.50

MR-16 16Kw/1K 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 ShugartDrives $ SALE PRICE only $229 00

ACOUSTIC MODEM

NOVATION CAT*"

0-300 Baud

Bell 103

Answer, Originate $198.00

ACOUSTIC COUPLER SPECIAL

AJ MODEL A30SPECIAL PURCHASEOF SURPLUS UNITSAVAILABILITY LIMITED $29.95

DATA BOOKS • COMPUTER BOOKS

1978 IC Master 49.95 Intel MCS 80 Manual 7 95

NSC TTL Data 3.95 Intel MCS 40 Manual. . ..4.95

NSC Linear 4 95 AMD 8080A Manual.... 5-95

NSC Linear App Notes n 3 95 AMDSchotHiyDataoook 4 95

NSC CMOS

NSC Memory

Iniel Dalabooh

Intel MCS S5 Manual

3 95 AMI MCS LSI Oa'a..

3 95 Gi MCS.-LSI Dara ....

. 4.95 Harris Analog Databook

.7.50 Tl Linear Control Data .

■ALB • OMORNI BOOKS • IAL1

Iniro to Micros Vol 0 . *K) 775

Intro 10 Micros Vol. I ff'iQ 7.75

8080A Programming frSQ 7 75

6800 Programming ffSfl 7 75

280 Programming 8*"5Q 7 75

Vol i! Some Real Microprocessor's w/Bmoer 30*Q 27 50

Vot III Some Real Support Devices w/Binder . Tfrofl. 18.50

Intro to Micros Vol. Ill 20-00.1850

SALS e OIUTHIUM COMPUTIR BOOKS • BALB

Understanding Computers 'B-S*. 7 95

8080Microcompuler Eiperiments T3-9*. 11 95

Beginning BASIC ,.»«*. 8.95

Beginners Glossary & Gu.de W96. 5 95

Peanut Butter I Jelly Guide to Computers t-9*. 6 95

8080 Machine Language Programming Tr9*. 6 95

Home Compute's Vol I Hardware T9* 6 95

Home Compute's Vol II Software T-*-ftfc m 95

Stacship Simulator . *9fr- 8 95

THE FIRST TO OFFER PRIME PRODUCTS TO THE HOBBYISTAT FAIR PRICES NOW LOWERS PRICES EVEN FURTHER!

I- PrOVGIl QUdllty Factory tested products only, no re tests

or fallouts. Guaranteed money back. We stand behind our products.

1979 CATALOG NOW AVAILABLE.

Send $ 1 00 for your copy ofthe most complete catalog of computer products. A mustfor the serious computer user.

MICROPROCESSORS STATIC RAW HEADQUARTERS SOCKETS

ZBO *1*M |

Z-80A

FS (38501 '

2650

CO'302

B08GS

8080A-4MMI

SALE S085

8008-1

290'

TMS9900JLCPI60095026502A

SUPPORT DEVICES

AM95UAr,in Process' S'950C

AM 951 M 300 ns 245XX

AM9517 DMAConi'oiie- ?1 95AM9S19U"ive'^Nnte.'uD! 24 9!

38B1 r280 PIOi 104!

3881 4 i4MHii 14 9!

3882iZ-80CTCi 10 4!

3682-4 t4MHn 14 9!

8206 '74S' 38 Decoder 2 Si

8212 81x1 fO 25C

8214 Pnonty Int 4 9;

8216 Bus Driver 2 SC

8224 Clock Gen 29!

B224-4(4MM!i 9 7!

8226 Bus Driver 3.9!

8T26 Bus Driver 23S

822B Sys Control 5 9f

8238 Sys Con- 6 2S

8251 Prog I/O 69!

8253 Int Time' 19-5C

8255 Prog I/O 6.5C

8257 P'og DMA 19 5C

8259 P.og W 19 5t

8275 CRT Com'OHer -74 9!

82 C9 P'og Keyboard 19 9!

6flt 0-1 128 > 8 RAM 4 7!

6820 PlA 6.6C

6521 pia est

6828 Pnoniy Int 11 «

6834-1 512 ■ SEpiom 129!

8850 ACIA 7 2C

6852 Stj'iai Adapier 9 9!

6845 HD465C5CRT<"■"■!- 39 9!

6660 Modem 9 9!

6862 Modular 11 9!

6871 A 1 OMH: OSC 25 9!

6875 8 2!

6860 Bus 0'ivei 2 35

MC66486 19 95

1821 SCD IK RAM 25 OC

1H2J SCO 256* a RAM 18951B24CD 32 • S RAM1852 CD 8 tin I 01854 U

6 CD I/O1857 CD I/O6520 PlA6522 Mull9530-002

6530-003

6530-004

6530-005

3851 F8P.pt) Store

38S3 i8Memoiyl'0

DYNAMIC RAMS

5262527052805290

2708270861702A1702A-627 16-SV2716-5V. 12758 5V5203AO5204AO6834-1

I0M

10 958 95

35059 9540 0029 95

BALI 8223 33 1 B

S2S115512»6(TS) 1

82S123 32KS

82S126256*4

82S129256 x 4 (TSI....82S130512x4(OC>NSC DM7578 32x 8 .

CHARACTER GEN

2513-001 (5V) Upper

2513-005 (SVf Lower 1

2513-ADM3!5V1LOwer 1

MCM6571 II

MCM6571A II

MCM6574 11

MCM6S75 1<

UARTS/USRTS

TP.1602BI5V. 12VIAV51013ISV, !2VlAY51Q14A,.1S'" 0 i4V,A¥5l015A/l86.1.iV'iTMS6011 ISV 12VIIM6402IM64032350 USRT

SALETA1473B

BAUD RATE QEN

KEYBOARD ENCODERS

HOC 165 9

74C922 .... 9

74C923 9

A/D CONVERTERS

8700 8l)ilBinaiv 1J

8701 10 Ul Binary 228703 81wl TS 139400 V.ilt loFtt'i] Cixiv !8750 3-1/2 D*Jit BCD IJ

1-24

25-99

100

1 30

1 25

21L02 250ns

1 59

1 55

1 45

2102

1 25

1 15

1 10

3 75

365

3 55

2112-1

295

2-85

2.65

2101-1

2.90

2.70

255

2l14L-250ns

12 95

1095

9 95

2114L-300ns

895

795

645

2114L-4SOna.

750

6 75

4.7S

4044/4041 300ns

995

8.75

7g5

4044/4041 450nt

6.75

4.75

EMM4200A

5 8 75

7 95

EMM4402

725

625

EMM4804

1250

1150

9 95

510ICE

7 95

7 95

7 25

>;p04 10 (42001

10 95

10 25

9 25

AMDS 140 41

10 95

10 25

a 25

AMD9'30 31

'2 95

it 95

'0 25

FSC 460 46416K CCD Only

|tBM€»

1101

I 95

' 1 75

1 25

P2125 93425 .45 n

i 7 95

7 35

7 25

6508 l ¥ % 1 CMOS

7 95

7 95

7 25

6518 IK, t CMOS

7 95

7 95

7 25

3 95

8155 I/O w.'Ram 2

2147 Low Power 4K

italic l

I95ea

CHARGE COUPLED DEVICES

!6K CCD ■ F.rsitime

Meiea 1

a.rcn.ld460CCD

16« Memory (now yo

hCCD

Appuca-

e< Ouanli!

limiled)

S18.95 each (reg.

43.00)

CRYSTALS

Microproce*lor Tim.binFrequency Price Freqi

6 553610OMH/IJOMHi

18 0MH(

4 95

19 432MM7

5 95

20 OMH/

4 95

22 I184MH;

S95

27 OMH/

5 95

36 OMH/

595

48 OMH/

595

i 01 MM/

2 09ri5iiMM*

3:>/H51!iMn/

4CMH/

-I IS4304MH/

4^1520MH/

DISPLAYS/OPTO/LED'S

• 7 SEGMENT * CALC * CLOCKS •

DL 704 (CO DL 707 (CA) 300 Red 91

FND 357 (CCl 357' Red 3!

FND 500/503 (CCl 500" Red 91

FND 507/510 ICA) 500 Red 9!

FND 800/803 (CC! 800" Red 1 7/1

FND807'810|CA| 800' Red 17!

SAN 3062 500" Green II!

HP5062-7731 ICA) 300'' Red . 91

9 Digit Bubrjle Min. CalC Display 9!9 Digil Panaplex D>splay 400" , . 9!

9 D.QH ["ruoiflscem 300'.. 9S

MAI00.3 1 2V Auio Clock Module 15.B!

Bezel'.:- MA 1003 w/Red Filler 4 9!

MA1002ALED 12 hr ClocA Module 109!

• HEX DISPLAYS * BNCOOBD DISPLAYS *

UV 5062-7340 Red Hejidecimal .. 15.9!

HP 5082 73O0RedNymeric . 14.0!

TIL 306 Numeric w/Log.c 89!

TIL 308 NumPer w/Logc 891

TIL 309 Number w/Loflrc 8.9!

TIL 311 Hexadecimal >2.9!

MAN 2A 320" Red AJpna-Nume'ic 59!

MAN 10A 270'Refl Alpha-NumfKic 89!

• LED'. * OPTOISOLATERS »

LEDS Red Yellow. Green 139 . 5/1 OC

MCT 2 Phnlo XSTR HFE 250. 30V

4N25 PrwIO XSTR HFE 250. 30V

4N33 Photo Da<lmQ>on

FPT HOBPhoioXSTRFiatLense SAUATTENTION KIM USERS

KIM 1 6502 Single Board Computer ,... .. 179 OC

KIM 1 Power Supply 59.9!

KIM Memory Plus - (consists ol 8K Ram.

8K2716 Eprom. Progfammer.l/O eld 24500KIM SOFTWARE

• Please package icassetiel 12 games. 1695

• Help Editor package {cassette) ... 16.95e Help Mailing Lisl pkg (Cassette! 16 95

• Help Info Reinvai pkg (cassette) 16 95

• Microchess icassertei .1696

• Micoaid Assembiy/Disassem/EditO' 27 95

• Microaid Source Listing (cassette) 27 95

• Tiny Basic'or KIM (paper tape| .10 95

COMPUTER SPECIALS

HiPiot Plotter .riff*H.Ftet Digitizer ^|0'"E.-dy w'32KApple II w,16KCompuCPlpi ITEIPT208H

o Sys II)Commodote PelSoroc IO/120ADM3A AssemTelelype 43Centronics P-iCei'tromcsS-'

LIST

'085 00795 001395 001195 001695 004995005990 00795 00995.003H5 001349 00495 00595 00

899 00735 00'195 001045 001595 003995005395 OC765 Of895 00829 001150 00395.00525 00

MONTHLY IC SPECIALS

LF13508JFET Anlog Mult. 8 bitICM7208 Seven Decade CounierICM7207 Oscillator ControllerICM7Q45 Precmon Sto/Waich TunerICL7107 y, Digit A/D ILEDlICL8211 Voltage Reference

LM390 Battery OP Audio Amp

LM1830 Fluid Detecior

LM1850 Ground Fault IC

LM'800 Pnase Lock Loon FM Sterwi

LM1820 AM Hadio

DS3625 Dual Mos Sense Amp

2 50

LM2917

HT2e.'8T2a95H90

*« 10147ECLRtm...a95' ^ NES61 SaW

™S LF356HSiFet..3/1.99

■•|5 MCM14505 8.96

™ ^"»S89 3/1.99

1 W 74107N 6/199

' W 75452N 6/1 99

t 25 741N-14 10/1.99

' » 555CN 5/1.99

'8 Pm WW 60

rV W 93 22 *

40 P

40 Pm W

TEXTOOL ZEROINSERTION FORCESOCKETS

16 Pin S 5 50 24 Pin S7 50

CONNECTORS

DB25P (RS2321DB25S Female - -

56 50295

.650

Sei w/Hoort Sale....22/44 W/W. 8/T, KIM43,86 WW S/T MOT50/100 S-' 00 Connector«50/100 S-100 Connectot s

CTS DIPSWITCHES

CTS206-4 S' 75 CTS206-8 SI 95

CTS206-5 Si 75 CTS206-9 Si 95

CTS206-6 S1 75 CTS206-10S1 95CTS206-7 SI 75

LIVERMORE BASIC

Our price o;v

NAKED PC BOARDSALE

Z-50 CPU (imaca)

808OA CPU

8K Static RAM (Logos)

16K Sialic RAMI2114)

32K Static HAM|21'4|

Floppy I/O (Tarbel!)

Cassette i.'O (TarbeU)

6K Eprom (2708)

1702 Eprom Board

2708/2716 Eprom (Ithaca) 34 95

2708/27t6EpromlWMC) 30.""

Realtime Clock

ACPP-otoBd (3MConnVector 6800 ProlOVector 8803 11 slot MBACP Extender w/ConnVideo Interface ISSM)Parallel Interlace ISSM)ISSlotMotnerBoardfWMCl 32 959SIOI Mothereoard tWMCl 29 958SloiMomer'f>xDandable) 34 85

S34 95

34 95219529 9549 9539 95299521 9530.0C

34 95

2 7 9519 95

27 95

WAVEFORMGENERATORS

FLOPPY DISK I/O

1771-0! 8 * Mmilloppy 2

uPd372Nec Fio0Dy 4

1781 Dual Floppy 3

1791 Dual Floppy t

TV INTERFACES

I 29 M8R Modulator

100 ATTENTIONPET USERS

89535.003500

BETSI-pei expansion to SiOO

105.00 Kit/160.00

PET Connector Kit. Includes (4)Connectors lor memory expansionIEEE 488 I/O. cassette I/O and

parallel user port 7 95/set

Video Butter

(converts to Std Videof . 2995Petunia (Music Board) 29.95

ComOo (Video & Peiuma> 49 95

Beeper (signals lane load) 24 95

ATTN TRS 80 USERS

20/40 Pm Memory Exc

16K Memory Add-on w/lrViStaVSO Minifloppy40 Track OOS Patch on Di4 Drive Cade lor V80Cemromcs 779 w/iractorCenlion.cs 7QI BidirectANADEX DF80O0Micro-Pisame as Quick F

Cable to plug m Expanse I/OPower Slop 16 OullelSISurge Suppressor/FillerMicrosotl Fortran on DiskEleclnc Pencil on CasselieEtectnc Penoi on DiskCP/M lor TRS on Disk

TV CHIPS

AY3BS0O I 6 G*»-

S7 95

I 8995395.00109539 951179 001579 00995 00

17 9523 953250099 00150 0015000499519 95

ATTENTIONAPPLE II USERS

Aiiplell W'16K St'

16K Upgrade KitFloppy Disk II w/InterfaceFloppy Di^k II

P.O. BOX 17329 Irvine, California 92713 Phone (714) 558-8813

TWX: 9105951565

rtenii FCM or UPS Orriatf100.00 add 5% hindl-ng ■3/199 poitaec O'den o*tr 510000 add 2.511handling & poilcet. M^itetchjrgc 'Sjnkamencard/COD accepted w/25% tjapoiitCalifornia Rnidenii MM 6% ta* ForeigiOrdttt add 8% handling All parti primitdctorv tested gunrontaed. Same dayahcment Add 35 c»ffli to. DataRetail pining may v.ny luoti M»il OrderPncinrj Ati pricing subjec' to cnangewithoul notice

Retail Store Open Mon. - Sat.Located at 1310 "B" E. EdingeSanta Ana, CA 92705

Circle 4 on inquiry card.

BYTE August 1979

235

What's New?

SOFTWARE

Extended FORTRAN Preprocessor

X4 is an extended FORTRAN pre-processor for use in the CromemcoCDOS environment. X4 translates pro-grams into standard FORTRAN from areadable, well structured language pro-viding modern control structures for con-ditionals and iteration that virtuallyeliminate the need for statementnumbers and GOTO statements. X4 alsoprovides automatic file inclusion, amacro facility, mixed upper and lowercase input, and the expansion of quotedstrings into numeric character codeswhere desired. X4 is available with com-plete documentation on CDOS (CP/M)format 5 inch floppy disk for $59.95.Contact Modular Systems Inc. 4005Seven Mile Ln, Pikesville MD 21208.Circle 531 on inquiry card.

Word Processor For TRS-80 DiskOperating System

Word-Ill is a text processor for theTRS-80 disk operating system. Requiring16 K bytes of memory, it accepts linesof text interspersed with lines of formatcontrol information and then formatsthe text into a displayable document.Word-Ill features automatic line adjust-ing, margin right justification, pagenumbering, centering, title, page size,line width, indentation, and verticalspacing control. It is written in TRS-80Disk BASIC for easy loading and expan-sion. Word-Ill is disk based with a sizelimited by disk storage. It uses theprinter interface that already exists inthe expansion module. Instructions aregiven to make software modification toother printers not using 1PRINT com-mand.

The price of Word-Ill is $39 com-plete with source code. For further in-formation contact Micro Architect, 96Dothan St, Arlington MA 021 74.Circle 532 on inquiry card

6502 Robot Language

Written in 6502 machine language,Robot is an interactive programminglanguage for the control of robots. Therobot may be a Turtle, plotter, or videocursor. The heart of Robot is a com-mand processing module designed toallow the user to design a language ofpersonalized commands and commandsubroutines to suit a particular appli-cation.

The version of Robot that is beingoffered includes a command set and sub-routine package for the control of avideo robot. The subroutines are designedspecifically for the TVT-6 video inter-face, but will work, with any memorymapped video display and can be adaptedby the user for varying formats. Robottakes slightly more than 1 K bytes ofprogrammable memory and comes witha user manual and a completely com-mented source listing.

Robot is priced at $5 (add $3 forKIM-1 Hypertape cassette). For furtherinformation contact Michael Allen, 6025Kimbark, Chicago IL 60637. This vendoralso offers a 6502 tiny editor and as-sembler.

Circle 533 on Inquiry card.

Free Monthly Review ofSoftware Products Available

Users of Northstar BASIC can receivea free subscription to John Dvorak's Soft-ware Review. Each month the softwarereview examines and reviews new soft-ware packages and reports on therelative merits and value of the productAt the moment the mailing list has focus-ed on users of Northstar BASIC but plansare in the works to introduce a newslet-ter for users of CP/M oriented systems,TRS-80 and eventually Apple users. For afree subscription, write to J Dvorak, 704Solano Av, Albany CA 94706.Circle 534 on inquiry card.

Business Software Series in BASIC

The Standard Software Library is aseries of books containing listings ofprograms written in BASIC with com-plete documentation. Each volume inthe series is devoted to a single applica-tion. The first three volumes dealwith accounting programs for smallcomputers. Volume I, General Ledgerenables a small business to set up a fullyautomated general ledger system with acomplete chart of accounts. Includedare programs for editing, sorting, merg-ing and posting of transactions. A trialbalance report is available in either sum-mary or detail at the user's optionIncome statement and balance sheet re-ports may be obtained at the close ofeach accounting period with bothcurrent and year to date totals andpercentages.

Volume 2, Accounts Receivable pro-vides a fully automated system fordealing with customer accounts. Volume3, Payroll enables a business to automateall of the normal payroll functions. Allof the programs are written in a level ofBASIC common to practically all of thecurrent microprocessors and minicom-puters. The modular nature of the pro-grams and the accompanying documen-tation make it easy to revise the programto meet special user requirements.

The documentation includes an over-all view of the program, a list of thevariables used, a description of therequired user inputs and an illustrativeexample with sample output reports.Annotated comments are contained inall of the programs.

Contact Creative Computer Consul-tants Inc, POB 2111, Norwalk CT 06852.Ctrcle 535 on inquiry card.

Microcomputer Text Editor

Edit-80 is a random access, line or-iented editor for 8080 and Z-80 systems.It provides almost instantaneous accessto any record of the file, even if theavailable memory space is considerablysmaller than the file being edited. Inaddition to the standard line commandsto insert, delete, print or replace linesof text, Edit-80 offers many other fea-tures such as automatic line renum-bering, global find and substitute,multiple page files and ability to readin files without Edit-80 line numbers.Edit-80's alter mode provides a completeset of intraline subcommands to editportions of individual lines. With Edit-80, the edited file is not written to diskuntil a write command is given, and theoriginal file is always saved as back-up.

The Edit-80 Text Editing Packageincludes a file compare utility programcalled FILCOM which compares sourceor binary files and outputs differencesbetween them.

Edit-80 runs on any 8080 or Z-80system with the CP/M operating system.The price for the Edit-80 Text EditingPackage is $120 and the manual is avail-able for $10. For further informationcontact Microsoft, 300 San Mateo NE,Suite 819, Albuquerque NM 87108.Circle 536 on inquiry card.

The Realty Expense Analysis Program

REAP is designed for the propertyowner or manager and provides completeexpense information for each building inpayment-by-payment and summary for-mat which includes tax ready totals forIRS filing. The building payee reportdisplays expenses for any building,for all or selected payees. The utilitysummary report displays yearly, year-to-date, or monthly average utility expensesfor each building under the categorieselectric, gas, water, and trash. The taxtotals report displays totals for eachbuilding under the categories utilities,insurance, repairs and property tax.Special accounts may be set up to trackauto, general office management, adver-tising, telephone or any other expensetype. Complete data inputing, editing,and sorting capabilities, all with exten-sive error recovery, provide easy datafile maintanence. Expense data may beadded to the file and the latest reportsrun at any time interval.

REAP is available on cassette withcomplete documentation for the TRS-80Level I and II, Apple, and PET com-puters. Each 16 K bytes of user memorywill handle 500 yearly expense pay-ments. Larger data files are possible byusing disk data storage. REAP is pricedat $25. Documentation only with samplereports is $2.50. For further informationcontact Realty Software Co, 2045 Man-hattan Av, Hermosa Beach CA 90254.Circle 537 on inquiry card.

236 August 1979 © BYTE Publications Inc

Venus 2001Video Board

kiti99

95

Assembled & Tested

$259.95 •Complete

Unit with 4K 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

• S-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 ASC11 Characters 64 X 32 or 32 X16 Screen format (Jumper Selectable). 7 by 11 DotMatrix Characters.

American or European TV Compatible

(CRTControls Programable) Dealer Inquiries Invited

32-K Static RAM *499.

• S-100 Plug-In • Kit includes P.C. board, all partsand assembly manual • Uses 2114L, 450 nS.

I.C. sockets-$20.00P.C. BOARD BY S-100 CO.

16-K Static RAM 249.

• S-100 Plug-In Kit includes P.C. board, all parts andassembly manual. Uses2114L450nS.

Sockets-$10.00Add $40.00 for 300 nS (4MHz) RAMSP.C. BOARD BY WAMECO

z-80 cpu 125.

• S-100 Plug-In Kit includes P.C. boards, all partsand 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

ASCII Keyboard Kit $79.95

Assembled and Tested $95.95

• Single +5V Supply • Full ASCII Set (Upper and LowerCase) • Parallel Output • Positive and Negetave Strobe •2 Key Rollover • 3 User Definable Keys • P.C. BoardSize: 17-3/16" X 5" • Control Characters Molded on KeyCaps • Optional Provision For Serial OutputOPTIONAL: Metal Enclosure $27.50 • Edge Con. $2.00 •Sockets $4.00 • Upper Case Lock Switch $2.50 • ShiftRegister (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 InputPort • 15mA Output Current Sink or Source • Can beused for peripheral equipment such as printers, floppydiscs, cassettes, paper tapes, etc. • 1 free software listingfor SWTP PR40 or IBM selectric.

PRICE: 1 Input and 1 Output Port $49.001 Input and 3 Output Ports $64.00

Dealer Inquiries Invited

new! A DREAM COME TRUE

lntroducing:30 MHZDUAL TRACEPORTABLESCOPE«„_,

for an CCk 1amazing Jjy^

• Dual trace 2-channel; separate,chopped or alternate modes. • 30 megahertzbandwidth. • External and internal trigger.

• Time base - 0.05, Microseconds to 0.2 SEC/div21 settings • Battery or line operation.

• Line synchronization mode.

• Power consumption less than 50W. • Vertical gain -0.1 to 50 volts/div-12 settings. • Size: 2.9" H 6.4"

W 8.5" D. • Weighs only 3.5 lbs. with batteries.

• Complete with input cable and rechargeablebatteries and charger unit.

OPTIONAL: Leather case $45.00 • 10:1 probe $27.00(2 for $49.00)

ms-sis ~"—' ^^

15 mhz Dual Trace Portable Scope $399.MS-1515 mhz Single Trace Scope $299.

SHIPPING $3.50 / California residents add 6% sales tax

ELECTRONICS WAREHOUSE Inc

15820 Hawthorne Boulevard

Lawndale, CA 90260

(213) 370-5551

Circle 130 on inquiry card.

BYTE Aususl 107P 237

What's New?

MISCELLANEOUS

New Fully Implemented Pascal System

The Independent Business System'sBetasystem is a complete operatingsystem that features the UCSD imple-mentation of Pascal. The operating sys-tem contains a powerful screen orientedtext editor, a fast Pascal compiler, fileand library handling systems, linker,Z-80 assembler and more. This Z-80microprocessor comes complete with 48K byte programmable memory, dualquad density (630 K byte formatted)disk drives, serial and parallel ports, 60character per second dot matrix printerwith tractor feed, and intelligent ter-minal with addressable cursor. It sellsfor $5485. For further information con-tact Independent Business Systems Inc,5476 Cleo Ct, Livermore CA 94550.Circle 635 on inquiry card.

16 K Byte ProgrammableRead Only Memory Board

Electronic Solutions 16 K byte pro-grammable read only memory board iscompatible with the Intel SBC 80 busand single board computer. ThePROM-16 accepts sixteen 2708 erasable

read only memories. The board has aconvenient addressing scheme allowingjumper selection of the board base ad-dress at the beginning of any 4 K blockAny number of 1 K byte memory blocksmay be deselected by jumper removal,thus freeing these 1 K byte memory ad-dresses for the processor, programmable

memory, etc. When fully loaded with six-teen 2708 erasable read only memories,the board typically draws 0.31 A (from+ 5 V), 0.48 A (from -5 V), and 0.80 A(from +12 V). For further information,contact Electronic Solutions Inc, 7969Engineer Rd, San Diego CA 92111.Circle 558 on inquiry card.

t—o .«=*«.

■o g

BUILD YOUR OWN LOW COSTMICRO-COMPUTER

POWER SUPPLIES

FOR S-100 BUS, FLOPPY DISCS, ETC.

*M>

m*

POWER TRANSFORMERS (with mounting brackets)

ITEMNO.

USED INKIT NO.

PRI. WINDINGTAPS

SECONDARY WINDING OUTPUTS2x8 Vac 2x14 Vac 2x24 Vac

SIZEWx Dx H

UNITPRICE

T1T2T3T4

0V, 110V, 120V0V, 110V, 120V0V, 110V, 120V0V, 110V, 120V

2x9A2x12.5A

2x9A2x4.5A

2X2.5A2x3.5A2X2.5A

2x2.5A2x4.5A

3%"x35/8"x3V8"33/4"x4%"x31/b"3%"x4Wx31/8"3%"x3%"x3Vb"

19.9525.9527.9519.95

POWER SUPPLY KITS (open frame with base plate, 3 hrs. assy, time)

ITEM USED FOR @+8Vdc @-8Vdc @+16Vdc @-16Vdc @+28Vdc

SIZEWxDxH UNIT PRICE

KIT 1 18 CARDS SOURCE 18A

KIT 2 SYSTEM SOURCE 25A

KIT 3 DISC SYSTEM 18A

KIT 4 DISC SOURCE 8A

1A1A

2.5A3A2A

2.5A3A2A

4A8A

12"x6"x4%"12"x6"x4%"14"x6"x4%"10"x6"x4%"

46.9554.9562.9544.95

EACH KIT INCLUDES: TRANSFORMER, CAPACITORS, RESIS., BRIDGE RECTIFIERS, FUSE & HOLDER, TERMINAL BLOCK, BASEPLATE, MOUNTING PARTS AND INSTRUCTIONS.

REGULATED POWER SUPPLY "R2" assy. & tested, open frame, size: 9" (W) x 5" (D) x 5" (H) $59.95

SPECS: +5V +1%, @ 5A, +24V, +1%, @ 5A. OVERCURRENT PROTECTION AND +5% ADJ. FOR BOTH VOLTAGES.

REMARK. IDEAL FOR ROCKWELL AIM-65 MICROCOMPUTER. ALSO -5V, @ 1A OPTIONAL, $5.00 ADDITIONAL.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

238 August 1979 © BYTE Publications Inc

Circle 354 on inquiry card.

CaMFornja DiqiTAl

Post Office Box 3097 B • Torrance, California 90503

Sankyo MagneticCard Reader

These Sankyo I/O units are capable of storing and'retrieving overr 400 characters of data in under two secords.

The flexability of this device lends itself to numerous applications.I As an input reader to a computerized security system, the com-| puter has the ability of identifying the card holder and admitting] only those individuals who are authorized to enter the premisesI during specified time frames. The device is also suitable forI maintaining customer information files, or any other applicationI where small amounts of information must be quickly entered intoI a data processing system.

I Accepts 2" by 4" HP style mag-cards. (Similar to bank cards. )I Motorized feeder pulls the magnetic card across the four channelI read/write head. NEW surplus, original cost $2*00. Full documentation

CONNECTORS

c2 «» l

H i ,>

your choice

DB25P

male plug & hood

or

DB25S female

»395

Qty. le. male hd.10 3.45 2.4S 1.1525 3.15 2.25 1.05100 2.(5 1.90 95500 2.25 1.C0 85IK 1.57 1.37 .75

Edge

Connectors

GOLD100 PIN

IMSAI/ALTAIR

Ims.i .older .1251.250Imsai ..125c.b1.is• ll.ir joldert.il.HO,o.SPECIALS22/44 Kiraeyelet.lSt"25/50 Slider tab .150"36/72 wide pott » ..156

• 3.95 3/« 9.0044.95 3/413.0045.95 3 115.00

41.95 3/45.0041.09 3/42.0041.95 3/45.00

S-100 Mother Board

QuietBoss

IS slotIMS*

HEXADECIMAL KEYBOARD

Max .-Switch heiadeomai keyboards are designed tor i ^3^1 95microcomputer systems ihat require 4-bit output * %Zp™y ■

in standard hen code. *^ ,:

Each assembly consists of 16 hermetcaliy sealed reed switches and TTL "cshot" debounce circuitry.Reliable low friction acetal resinplungers are credited for the smooth

|uires single + 5 volt supply.

srn^N ft UNIVACKEYBOARD

' (385 Used Dul aua'anieed in Hxceiiunt

TELETYPE M0ML 43

Even if we have to give then■ way, we're joint to ship more43't In 1979 tn.n too off relate

of all our competitors

TTL)

*925. 875. 850. 825.

RS-232 Interface"K"*oo»75.00

Model 43AAAEACH 3

875.

•Ci rED\

torh-vtim APPLE/TRS-80/erDalim Mini Soft i

sector

TEN KEY

Data Entry Pad

$7950

Plugs directly into you Apple II.Allows you to enter numerics,punctuation and upper case alphacharacters, all from the dataentry pad. Sold assembled inwalnut finished enclosure.

50f'3*5

Scotch

a m * n o

Diskettes

8inchSoft(IBM>8 inch 32 sectorMini Soft sec.Mini 10 sectorMini 16 sector

Certified Digital

CASSETTES

Won't drop a BIT!*5?°

%/* Sh

SPECiflL

APPLE II

I6K MEMORY

COLOR • GRAPHICS* SOUND

$1024

PLUS SHIPPING

MfE SueRetail....

MEMORY

CALIFORNIA

INDUSTRIAL

is an

Authorized

Dealer of

Scotch Brand

Data Products

ugart Associates

SA800-R Floppy Disk Drive

The most cost effective way to store data proc-essing information, when random recall is aprime factor. The SA800 is fully compatiblewith the IBM 3740 format. Write protect cir-cuitry, low maintenance & Shugart quality.

54495Q

CALIFORNIA DIGITAL

16 BiT 8086

S-100 CPU Board

Directly addresses one megabyte.8 bit unidirectional & 16 bit bi-directional. 4K of static memoryis supplied on board. $650.00

DiqiCASTA/V-100

R.F. MODULATOR

SOflOl''1'' '',i'-'^' both»fc%J,***audio and vidioon your existing colortelevision. Recommend-ed for the Apple II.

TRS-80SJAPPLE II

16k memory (8)4116's

• As you may be aware, publishersrequire advertisers to submit theirad 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 difficultto project future cost and availability. '.To obtain the best pricing on memory we have madevolume commitments to our suppliers, which in turnaffords us the opportunity to sell these circuits at themost competitive prices. Please contact us if youif you have a demand for volume state of the art mem-ory products.

STATIC

21L02 450nS.21L02 250nS.2114 1Kx4 4502114 1Kx4 3004044 4Kkl 450

4044 4Kxl 250

4045 1Kx4 4504045 lKt.4 2505257 low pow.

1-311.491.696.958.955.959. 958.959.957.95

32-99 100-5C

1K+

1.191.496.508.505.509. 508. 509.507.50

6.00 5.75

1.051. 456.25

8. 00 * *5. 00 * *

9. 00 * *8. 00 * *9.00 * *7.05 6.75 6.45

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.95Floppy Disc ControllersWD 1771 single D. 39. 95WD 1781 Double D 65. 00WD 1791 D/D3740 *

E PROMS 1-15 16-63 64+

1702A 2K 4.95 4.50 4.002708 8K 9.95 9.50 9.00

2716 5vl6K 49.95 45.00 42.502532 32K * * *

$139.50

PORTABLE DATA ENTRY SYSTEM

These used data terminals were originally designed for chain store inventory con-trol 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 intothe recorder, the main warehouse is telephoned, the handset is placed in the acousticcoupler 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 ableto exchange programs and computer information with associates across the country.All units were removed from service in working condition. Original cost $2,500.Each system comes complete with:

•Portable Cassette Drive Unit «Five Gould "D" NiCads "DB25 Cable

•Removable Entry Keyboard ■Acoustical Coupler ..Shoulder starp

with LED Display "Battery Charger -Full Documentation

$.98 s,88 .81.73.66 |SPOT Miniature Toggles

7101 C&K ON NONE ON

7107 jbt ON-OfF(mnt.ON) I

7108 CK ON (moment. ON)

Rocker JBT DPDT

Rotary 3P-4Pos.

Rotary 3P- 6-Pos

Push B (N.O.) $.39ea. 4 SI

DIP Switch

100 infctltti.15 97 83

city 4/or 8pos |

DISCOUNT

Wire Wrap Center

It's not offen that California Digital ven-tures into the distribution of consumer pro-ducts, but we have resently come accrossa product that appears so unique that we just had to add itto our product line. This is the System X-10 manufacturedby the BSR turntable company. This space age system will re-motely control any light or appliance in your home or office. Command sig-nals are transmitted from the command console over your existing wiring.From your bed or easy chair you can control up to 16 different electrical de-vices inside and outside your home. U se the System X-10 to control yourstereo, television or any light fixture on the premises.

The basic sampler package comes complete with command console, batteryoperated ultrasonic controller, one each of the appliance module, lamp mod-ule and wall switch. The basic package is priced at only $99.50 Additionalmodules are available for $13.95 each.

IC SOCKETS

wire wrap low profileea. 25 SO ea. 25 SO

s

14

37< 36 35 18 17 16

16

38 37 36 IS 18 17

24

99 93 85 36 35 34

40

169 1S5 139 63 60 58

.98 S00 1.000 11,000

>9. S15. J105

(213)679-9001

Circle 39 on inquiry card.

iJd 10V

it, ire shlppe

5N7400NSN7401NSN7402NSN7403NSN7404NSN7405NSN7406NSN7407NSN7408NSN7409NSN7410NSN7411NSN7412NSN7413NSN7414NSN7416NSN7417NSN7420NSN7421HSN7422NSN7423NSN7425NSN7426NSN7427NSN7429N

SN7432NSN7437NSN7438NSN7439NSN7440NSN7441NSN7442NSN7443NSN7444NSN7445NSN7446NSN7447NSN7448N

SN7450N

SN7451N

SN7453NSN7454NSN74S9ASN7460N

CO40O0CD4001CD4M2CD4006CD4007C04009CD4010CD4011CD4Q12CD4013CD4014CD4015CQ4016CD4017CD4018CD4Q19C04020CD4021CD4022CD4023CM024CD4025CO4026CD4027

74C0074C0274C0474C0874C1074C1474C2074C3074C4274C4874C73mimSimm

1.15

78MGLM106HLM300HLM301CN/HLM302HLM304HLM305HLM307CN/HLM308CN/HLM309HLM309KLM310CNLM311N/HLM312H 1.95

LM317K 6 50

LM316CN/W 1.50LM319N 130

LM320K-5 135LM320K-5 2 135LM32QK-12 135LM320K-15 1.35LM320K-1B 1.35LM320K-24 1.35LM320T-5 1.25LM320T-5 2 1.25LM320T-B 1.25LM320T-12 1.25LM320T-15 1-25LM320T-18 1 25LM320T-24 1.25LM323K-5 5 95LM324N 1.80

LM339N .99

LM34QK-5 1.35LM340K-6 135LM340K-8 135LM340K-12 1.35LM340K-15 135

74LS0074LS0174LS0274LS0374LS0474LS0574LS0874LS0974LS1Q74LS1174LS1374LS1474LS1574LS2074LS2174LS2274LS2674LS2774LS2874LS3074LS3274LS3774LS4074LS42

29

.74LS42

SN7470N

SN7472N

SN7473N

SN7474N

SN7475N

SN7476N

SN7479N

SN74B0N

SN7482N

SN7483N

SN74B5N

SN7486N

SN7489N

SN7490N

SN7491N

SN7492N

SN7493N

SN7494N

SN7495N

SN7496N

SN7497N

SN74100N

SN74107N

SN741Q9N

SN74116N

SN74121N

SN74122N

SN74123N

SN74125N

SN74126N

SN74132N

SN74136N

SN74141N

SN74142N

SN74143N

SN74144N

SN74145N

SN74147N

SN74148N

SN74150N

SN741S1N

SN74152N

SN74153N

SN74154N

SN74155N

SN74I5bN

SN74157N

C/MOS

CO402BC04029CD4030CO4035C04040CD4041CD4042CD4043CQ4044C04046CO4047C04048CD4049CD4050C04051CD4053CD4056CD4059CD406OCD4066CO4068

74C0O

74C8574C9074C9374C9574C10774C15174C15474C15774C16074<

C161

LINEAR

LM340K-18 1.35LM340K-24 1.35LM340T-5 1.25UU340T-6 126LM340T-8 1.25LM34QT-12 1.25LM340T-15 1.25LM340T-1B 1.25LM340T-24LM358NLM370NLM373NLM377NLM3B0NLM380CNLM3S1N

1.00

4.00

LM3B2N

NE501N

NE510A

NES29A

NE531H/V

NE536T

NE540L

NE544N

NE550N

NE555V

NE556N

NE560B

NE561B

NE562B

NE565N/H

NE566CN

NE567V/H

NE570N

LM703CN/H

LM709N/H

1.79

80C6.00

4953956M6.00J 95

74LS00TTL

74L547 89

74LS51 .29

74LS54 29

74LS55 29

74LS73 45

74LS74 .45

74LS75 .59

74LS76 .45

741S78 49

74LS83 69

74LS85 125

74LS86 .45

74LS90 59

74LS92 75

74LS93 .75

74LS95 99

74LS96 1.15

74LS107 .45

74LS109 .45

74LS112 .45

74LS123 1.25

74LS125 89

74LS132 99

74LS136 49

SN74160NSN74161NSN74162NSN74163NSN74164N5N74165NSN74166NSN74167NSN74170NSN74172NSN74173NSN74174NSN74175NSN74176NSN74177NSN74179NSN74180NSN74I81NSN74182NSN74184NSN74165NSN74186NSN741B8NSN74190NSN74191NSN74192NSN74193NSN74194NSN74195NSN74196NSN74197NSN74196NSN74199NSN74S20OSN74251NSN74279NSN742B3NSN74284NSN74285NSN74365NSN74366NSN74367NSN7436BNSN74390NSN74393N

CD4070

CO4071

CD4072

CD4076

CD4G«1

CD4082

CD4093

CD4098

MC14409

MC14410

MC14411

MC14419

MCI 4433

UC14506

MCI 4507

MC14562

MCI 4583

C04508

CD4510

CD4511

CD4515

C04518

CO4520

CD4566

74C163

74C16474C17374C19274C19374C19574C92274C92374C92574C92680C9580C97

1.5U

LM710N .79

I.M711N .39

LM723N/H 56

LM733N 100

LM739N 1.19

LM741CN/H .35

UI741-14N 39

LM747N/H .79

LM748N/H 39

LM1310N 2.95

LM1458CN/H .59

MC1488N 139

MC1489N 1.39

LM1496N .95

LM1556V 1.75

MC17418CP 3.00

LM2111N 195LM2901NLM3053N

LM3065N 1 49LM39O0N(3401) 49

LM3905N 89

LM3909N 1-25MC5558V

2 95

LM75450N

75451CN

75452CN

75453CN

75454CN

75491CN

75492CN

75493N

75494CN

RC4136

RC4151

RC4194

RC4195

4 95

74LS13874LS13B74LS1S174LS15574LS157741516074LS16174LS16274LS16374LS16474LS17574LS18174LS19074LS19174LS19274LS19374LS19474LSI9574LS25374LS25774LS25874LS26074LS27974LS36774L536B74LS670

EXCITING NEW KITS

JE600 HEXADECIMALENCODER KIT

FEATURES:

■ Full 8 Sil latched output 'or micro-processor use

• 3 User Define keys with one beino bi-stable operation

• Oebounce circuit provided lor all 19keys

• LED readout to wfify entries

• Easy interlacing with standard 16 pinl C connector

• Only +5VDC required tor operations

FULL B BIT LATCHED OUTPUT—19 KEYBOARD

Tlie JE6O0 Encodet Keyboard provides two separate heKadectmaldigits produced from sequential key entries lo allow direct prog-ramming lor 8 Oil microprocessor or 8 brt memory circuits. Three(3) additional keys are provided tot user operations with one havinga bistable output available The outputs are latched and monitoredwith LEO readouts Also included is a key entry strobe

JE600 $59.95

DigitalThermometer Kit

■ Du«l sensors—switching control for In-door/outdoor or dual monitoring

■ Continuous LED .8" ht. display

■ Range: -40°F to 199°F / dO°C to 100°C■Accuracy: ±1°nominal

■ Set for Fahrenheit or Celsius reading•Sim. walnut cese • AC wall adapter incl.

■ Size: 3-1/4"Hx6-5/8"Wx1-3/8"D

JE300 $39.95

DISCRETE LEDS

.200- mi.

XC556R redXC556G greenXC556T r«WXC556C clear

.200- dieXC22K redXC22G greenXC22Y yelkw

.170- III.MV10B red 4

005- dla.MV50 red 6INFRA-RED LED1/4-X1/4-X1/16" Hat 501

5/S14/S14/J14,-11

ssi

4/Sl4/S1

DISPLAY LEDS

TIMEX T1001

LIQUID CRYSTAL DISPLAY

CLASS II

FIELD EFFECT

88 881

4 DIGIT - .5" CHARACTERS

THREE ENUNCIATORS

2.00" X 1.20" PACKAGE

INCLUDES CONNECTOR

T1001 Transmisiive $7.05

TIOOIA-Rellectrn 8 25

TELEPHONE/KEYBOARD CHIPS

AY-5-9100 Push Button Telephone Dialler

AV-5-9200 Repertory Dialler

AY-5-95O0 CMOS Clock Generator

AY-5-2376 Keyboard Encoder (88 keysl

HD0165 Keyboard Encodet (16 keys

74C922 Keyboard Encoder (16 keys)

4 95^

J14

14.954.95

14 957.95

5 95

ICM7045ICM7205ICM7207ICM7208ICU7209

ICM CHIPS

CMOS Precision TimerCMOS LED Stopwatcn/TimerOscillator ControllerSeven Decade CounterClock Generator

24.9519.95

7.5019.95

6.95

NM0S READ ONLY MEMORIES

MCM6571 128 X9X 7 ASCII Shifted vetttl Greek 13.50

MCM6574 128 X 9 X 7 Math Symbol & Pictures 13.50

MCM6575 128 X 9 X 7 Alphanumeric Control 13.50Character Generator

MISCELLANEOUS

TL074CN Quad Low Noise bi-fet Op Amp

TL494CN Switching Regulator

TL496CP Single Switching Regulator

11C90 Divide 10/11 Prescaler

95H90 Hi-Speed Divide 10/11 Prescaler

4N33 Photo-Darlington Opto-lsolator

MK5O240 Top Octave Freq. Generator

DS0026CH 5Mhz 2-phase M0S dock driver

TIL308 .27" red num. display w/integ. logic chip

MM5320 TV Camera Sync. Generator

MM5330 4Vi Digit DPM Logic Block (Special!

LD110/111 3Vi Digit A/0 Converter Set

2.494.491.7519.9511.953.9517.503.7510.5014.95

25.00.set

LITR0NIX ISO-LIT 1

Photo Transistor Opto-lsolator

(Same as MCT 2 or 4N25)

2/990

SN 76477

SOUND GENERATORGenerates Complex SoundsLow Power - Programmable

3.95 each

TV GAME CHIP AND CRYSTAL

AY-3-8500-1 and 2.01 MHZ Crystal (Chip & Crystal - Q- , .

includes score display, 6 games ant] select angles, elc. / . jp/SBI

TYPE

MAN 1MAN 2

MAN 3MAN AMAN 76MAN7YMAN 72MAN 74MAN 82MANB4MAN 3620MAN 3630MAN 3640MAN 4610MAN 4640MAN 4710MAN 4730MAN 4740MAN 4610MAN 4840MAN 6610MAN 6630MAN 6640MAN 6650MAN 6660MAN 5680MAN 6710

POLARITY I

Common Anode -red5 i 1 Dot Matrix-redCommon CartiorJe-redCommon Cattiode-redCommon Anode-greenCommon Anode-yellowCommon Anode redCommon Catfiode-redCommon Anofle -yellowCommon Cathode -yellowCommon Amwe-orangeCommon Anode -orange * 1Common Cathode-orangeCommon Anode-orangeCommon Cathode-orangeCommon Anode-redCommon Anode-red ± lCommon Cathode-redCommon Anode-yellowCommon Cath ode -yellowCommon Anode-orange-D 0Common A node orange ± 1Common CaOrOde-orange-D.D.Common Cathode-oranrje r. 1Common Anode-orangeCommon Cathode-orangeCommon Anode -red- D.O.

TYPE

MAN 6730

MAN 6740

MAN 6750

MAN 6760

MAN 6780

DL701

DL704

OL707

0L728

0L741

DL746

DL747

DL749

DL750

DL33B

FND70

FND358

FN03S9

FND503

FND507

5082-7730

HDSP-3400

HDSP-3403

5082-7300

5082-7302

5082-7304

5082-7340

POUUMTY

Common Anode-red 2 1Common Cathode-red-DOCommon CaUiode-red 1 1Common Anode-redCommon Cathode-redCommon An ode-red 1 1Common Cathode-redCommon Anode-redCommon Cathode-redCommon Anode-redCommon Anode-red ± tCommon Anode-redCommon Cathode-red a 1Common Cathode-redCommon Cathode-redCommon CathodeCommon Cathode t 1Common CathodeCommon Cathode(FNDtjQO)Common Anode (FNO510)Common Anode-redCommon Anode-redCommon Cathode red4 x 7 sgl Ditjit-RHDP4x7 Sgl. Dtgit-LHDPOverranoe character (=1}4x7 Sgl. Digit-Hexadecimal

2.102.101995

RCA LINEAR

CA3013TCA20231CA3035TCA30391CA3046NCA3059NCA3060NCA3080TCA3081N

2 15 CA3082N

2 56 CA3063N

2.48 CA3086N

135 CA3089N

1.30 CA3130T

3.25 CA3140T

3.25 CA3160T

85 CA3401N

200 CA3600N

350

CALCULATORCHIPS/DRIVERS

MM5725 $2.9

MM5738 2.9

DM8864 2.0

DM8865 1.0

OM8687 .7

DM8889 .79374 7 seg.C.A LED driver

CLOCK CHIPS

MM5309 S4.95

M MI. in 4 95

MM5312 4.95

MM5314 4.95

MM5316 6 95

MM5318 9.95

MM5369 295

MM5387/1998A 4 95

MM5841 9 95

MOTOROLA

MC1408L7

MC1408L8

MC1439L

MC3022P

MC3061P

MC4016(74416)

MC4024P

MC4040P

MC4044P

iia ;;

8 pin LP .(17

14 pin LP .20

16 pin LP .22

IB pin LP .29

20 phi LP .34

14 pin ST $.27

16 pin ST .30

18 pin ST .35

24 pin ST 49

8 pin SG $.30

14 pin SG 35

16 pin SG 38

18 pin SG .52

pin WW $.39

10 pin WW .45

14 pin WW .39

16 pin WW .43

18 pm WW 75

it s6lderVail — l6W pMfile (tin) sockets

) 50-100 1-24

22 pin LP « -3724 pin LP 3828 pin LP 4536 pin LP .6030 SOLDERTAIL STANDARD (TIM) « P*n ^ m28 pin ST $ .»36 pin ST 13940 pin ST 1 59SOLDERTAIL STANDARD (GOLO)

24 pin SG $ 7028pinSG 11036pinSG 1-6540pinSG 175

22 pin WW $ .9524 pin WW 1 0528 pin WW 1.4036 pin WW 15940pinWW 1.76

25-49 50-100

.30

WIRE WRAP SOCKETS(GOLD) LEVEL #3

1/4 WATT RESISTOR ASSORTMENTS - 5%

10 OHM 12 OHM 15 OHM 18 OHM 7i OHM

27 OHM 33 OHM 39 OHM 47 OHM 56 OHM SO PCS $1.75

66 OHM 8i OHM 100 OHM 120 OHM 150 OHM

180 OHM 220 OHM 270 OHM 330 OHM 390 OHM 50 PCS

1.7550 pes 1.75so pes 1.75so pcj 1.75so pes 1.75

ASST. 7 5 m 2.7M 3.3M 3.9M 4.7M 5.6M SO PCS 1.75

ASST. 8R lncludesReslstorAssortnrients1-7(350PCS.) $9-95 ea.

$8.404 404.401.5S1.50.39

XR205XR210XR215XR320XP..LS55XRS5SXR5S6XR567CP .99XR567CT 1.25XR1310P 1.30XR1468CN 3.85XR1488 1.39XR1489 1-39

EXAR

JE2206KA 14.95

JE2206KB 1995

XR1800 3.20

XR2206 4.40

XR2207 3.05

XR2208 5.20

XR2209 1.75

XA22K 5.25

XR2212 4.35

XR2240 3.45

XR2242CP

XR2264

XR2556

XR2567

XR3403

XR4136

XR4151

XR4194

XR4202

XR4212

XR4558

XR4739

XR4741

1.50

4.25320299

1 251252.8549S360

2 05.75

1.151.47

TYPE

1N746

1N751

1N752

IN753

1N754

1N757

1N759

1N959

IN965

1N5232

1N5234

1N5235

1N5236

1N5242

1N5245

1N456

IN456

1N485A

IN4001

DIODES

VOLTS W

3 3 400m

5.1 400m

5.6 4O0m

6.2 400m68 400m9.0 400m

120 400m

8.2 400m

15 400m

56 500m

E.2 500m

68 500m

7.5 500m

12 500m

15 500m

4/1.004/1.004/1.004/1.00

6/1.006/1.005/1.0012/1.00

TYPE

IN40021N40031N40041N40051N40061N4007IN36O01N4t481N41541N43051N47341N47351N47361N47381N47421N4744IN11831N11B41N11B51N1186

VOLTS W

100 PIV 1 AMP200 Pi V 1 AMP400 PIV 1 AMP600 PIV 1 AMP800 PIV 1 AMP1000 PIV 1 AMP200m

75

10m

35 10m

12 1w

15 1w

50 PIV 35 AMP100 PIV 35 AMP150 PIV 35 AMP200 PIV 35 AMP400 PIV 35 AMP

PRICE12/100

12/1.0012/1 0010/1 0010/1.0010/1.006/1.0015/1.0012/1.0015/1.002828

SCR AND FW BRIDGE RECTIFIERS

C360 15A (n 400V

C38M 3iA,.i 600V

2N2328 1.6A(y 300V

MOA 960-1 12A @> 50V

MDA 980-3 12A fe 200V

$1.951.95

C1068I

MPSA05

MPSA06

TIS97

TIS96

40409

40410

40673

2N918

2N2219A

2N2221A

2N2222A

PN2222 Plastic

2N2369

2N2369A

MPS2369

2N2484

2N2906

2N2907

PN2907 Plastic

2N2926

MJE2955

2K3U53

.50

.305/1.006/1.006/1 001.751.751.754/1.002/1 004/1.005/1.007/1.005/1 00441.005/1.004/1.004/1.005/1.007/1.005/1 001.262/1.00

TRANSISTORS

FW BRIDGE RECFW BRIDGE HEC.

2N3055

MJE3055

2N3392

2N3398

PN3567

PN3568

PN3569

MPS3638A

MPS3702

2N3704

MPS3704

2N3705

MPS3705

2N3706

MPS3706

2N3707

2N3711

2N3724A

2N3725A

2N3772

2N3823

2N3903

1.005/1.005/1.003/1.004/1004/1 005/1.005/1.005/1.005/1 005/1.005/1.005/1005/1.005/1.005/1.0065

1.00

2N39042N39052N39062N40132N4123PN4249PN42502N44002N44012N44022N44032N44092N50S62NS0872N50882N50892N5129PN5134PN51382N51392N52102N5449?N5951

4/1 004/1.004/1.003/1 006/1.004/1.004/1.004/1.004/1 004/1 004/1 005/1.004/1 004/1.004/1.004/1 005/1.005/1005/1.005/1.005/1003/1.003/1 00

CAPACITOR

CORNER

U lfiJ2 lflSL

180K470K1.2M3.3M

I00K2 70K680Kl.SM

2.2M5.6M

$10.00 Min. Order - U.S. Funds OnlyCalif. Residents Add 6% Sales Tax

Postage-Add 5% plus SI Insurance (if desired!

Spec Sheets — 25c*

1979 Catalog Available - Send 41c stamp

ELECTRONICS

PHONE

ORDERS

WELCOME

(415)592-8097

MAIL ORDER ELECTRONICS - WORLDWIDE

1021 HOWARD AVENUE. SAN CARLOS. CA 94070ADVERTISED PRICES GOOD THRU AUGUST

100 pi220 pl

470 Ot

001ml00220047mt01 mf

1/35V15/35V

22/35V33/35V.47/35V.68/35V1.0/35V

.47/50V

1.0/5OV

3.3/50V

4.7/25V

10/25V

10/50V

22/25V

22/50V

47/25V

47/50V

100/25V

100/50V

220/25V

220/5OV

470-25V

1000/16V

2200/16V

001»iF15 04 03 0047^f15 .04 03 OVF15 .04 .03 .022^F£ .04 03 047,,l» 04 .035 W

1tW VOLT MYLAft FILM CAPACITORS2 ,10 .07 022mt.047mt

.12 .09 075

.12 .10

.07

1ml

.27

22ml

. 2tfV. DIPPED TANTALUMS {SOLID! CAPACITORS

28 .23 .17 1.5/35V 30 2

,26 23 .17 22/25V .31 2

,28 23 .17 3.3/25V .31 2

.28 .23 .17 4.7/2SV .32 .2

28 23 17 6.8/25V 36 3

15/25V .63 .S

a

.17

MINIATURE ALUMINUM ELECTROLYTIC CAPACITORS

.47/25V.47/50V1.0/16V10/25V1.0/50V4.7/16V4.7/25V4.7/50V10/16V10/25V10/50V47/50V100/16V100/25V100,50V220/16V470/25V

.32 26 .25

BYTE August 1979

Circle 200 on inquiry card.

jr Transistor Checker

— Completely Assembled —- Battery Operated —

i ASI Transistor Checker is cap-s of checking a wide range ofypes. either "in circuit"

out

of

simply plug the transistor to bechecked into the front panelsocket, or connect it with the alli-gator clip test leads provided.

identifies low, medium and high-power PNP and NPN transistors.Stze: 3%" x 654" x 2""C" cell battery not included.

Trans-Check $29.95 ea.

Custom Cables & Jumpers

Part No.

DB25P-4-PDB25P-4-SDB25S-4-S

DJ14-1DJ16-1OJ24-1DJ14-1-14

DJ16-1-16DJ24-1-24

OB 25 Series Cables

Cable Length Connectors Price

4 Ft. 2-DP25P 115.95 ea.

4 Ft 1-0P25P/1-25S $16.95 ea.

4 It 2-DP25SDip Jumpers

1 It. 1 14 Pin

1 It. 1-16 Pin

1 ft. 1-24 Pin

1 ft. 2-14 Pin

1ft. 2-16 Pin

1 ft. 2-24 Pin

$17.95 ea

$1.59 ea.1.79 ea.2.79 ea.2.79 ea.3.19 ea.4 95 ea.

For Cusiom Cables A Jumpers. See JAMECQ 1979 Catalog tor Pricing

CONNECTORS

25 Pin-D Subminiature

DB25P (as pictured) PLUG (Meets RS232) $2.95

DB25S SOCKET (Meets RS232) $3.50

DB51226-1 Cable Cover lor DB25P or DB25S $1.75

PRINTED CIRCUIT EDGE-CARD

j-Tio-OouOtn Read-Out — Brfuracted Contacts — Frts DM to 070 P C Cards

156 Spati15/30

16/3622/4450/100 (50/100 (

100 Spacing)125 Spacing)

PINS (Solder Eyelet)PINS (Solder Eyelet)PINS (Solder Eyelet)PINS (Wire Wrap)PINS (Wire Wrap)

$1.95$2.49$2.95$6 95R681-1 $6.95

4-Digit Clock Kit ^B| ~

nts, case and v

transformer

JE730 $14.95

Jumbo6-Digit Clock Kit

* Four .630"ht. and two .30Q"ht. common anode dli

* Uses MM5311 clock chip

* Switches for 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 transform

* Size: 6>/4 x 3V» x l¥»

JE747 $29.95

.right .300 ht. comm. ca

Jses MM5314 clock chipIwitches for hours, minund hold modes

/iewable 1

ated i

JE701

•115 VAC operation

• 12 or 24 hr. operatic

• Incl. all component!

< 3-1/8" x 134"

6-Digit Clock Kit $19.95

REMOTE CONTROLTRANSMITTER & RECEIVER

$19.95

Digital Stopwatch Kit

* Use Intersil 7205 Chip

* Plated thru double-sided P.

* LED display (red)

* Times to 59 min. 59.59 sec. v

* Quart* crystal controlled

* Three stopwatches in one: :(cummulative)& ta:

r(M

je900 $39.95

MICROPROCESSOR COMPONENTS

-aoBM/soaoA SUPPORT devices

8080A CPU !

8212 8-Bit Input/Output

8214 Priority Interrupt Control

8216 Bi -Directional Bus Driver

8224 Cine* Generator/Driver

8226 Bus Driver

8228 System Controller/Bus Driver

8238 System Controller

8251 Prog. Comm. 1/0 (USAHT)

8253 Prog. Interval Timer

8255 Prog. Periph. 1/0 (PPT)

8257 Prog. DMA Control

8259 Prog. Interrupt Control

6800/8800 SUPPORT DEVICES

MC6800 MPU ]

MC6802CP MPU with Clock and Ram

MC6810API 128X8 Static flam

MC6821 Periph. Inter. Adapt (MC6820)

MC6828 Priority Interrupt Controller

MC5830L8 1024X8 Bit ROM (MC68A30-8)

MC6850 Asynchronous Comm. Adapter

MC6852 Synchronous Serial Data Adapt.

MC6860 0-600 Dps Digital MODEM

MC6862 2400 Pps Modulator

MC6880A Quad 3-State Bus Trans. (MC8T26)

MICROPROCESSOR CHIPS—MISCELLANEOUS

ZaO(780C) CPU !

Z80A(780-1) CPU

CDP1802 CPUMPU

MICROPROCESSOR MANUALS -

M-Z80 User Manual

M-CDP1802 User ManualM-2650 User Manual

- ROM'S-

2513(2140) Character Generator!upper case) $9.95

2513(3021) Character Generator (lower case) 9.95

2516 Character Generator 10.95

MM5230N 2048-Bit Read Only Memory 1.95

MM500H

MM503H

MM504H

MM506H

MM510H

MM5016H

2504T

2518

2522

2524

2525

2527

2528

2529

2532

2533

3341

74LS670

CPU

8-Sit MPU w/clock, RAM. 1/0 lines

CPU

16-Bit MPU w/hardware, multiply

& divide

SHIFT HEGISTERS

Dual 25 Bit DynamicDual 50 Bit DynamicDual 16 Bit StaticDual 100 Bit StaticDual 84 Bit Accumulator500/512 Bit Dynamic1024 DynamicHex 32 Bit StaticDual 132 Bit Static512 Static1024 DynamicDual 256 Bit StaticDual 250 StaticDual 240 Bit StaticQuad 80 Bit Static1024 StaticFifo

1101

1103

2101(8101)

2102

21L02

2111(8111)

2112

2114

21141

2114-3

2114L-3

5101

5280/2107

7489

74S200

93421

UPD414

(MK4027)UPD416

(MK4116)TMS4044-

45NLTMS40452117

256X1

1024X1

256X4

1024X1

1024X1

256X4

256X4

1024X4

1024X4

1024X4

1024X4

256X4

4096X1

16X4

256X1

256X1

4K

$.50 MM5262

- RAM'S

Static

Dynamic

Static

Static

Static

Static

Static MOS

Static 450ns

Static 450ns low power

Static 300ns

Static 300ns low power

Static

Dynamic

Static '

Static Tristate

Static

Dynamic 16 pin

Dynamic 16 pin

Static

Static

Dynamic 350ns(house marked)Dynamic

- PROM'S

9.9514.95

1702A

2716INTEL

TMS2516

(2716)

TMS2532

2706

2716 T.

204B FAM0S

16K- EPROM

16K* EPROM

•Requires single +5V power supply4KX8 EPROM

6K EPROM

16K" EPROM

"Requires 3 voltages, —5V,

5203 2048

6301,1(7611) 10246330-1(7602) 256

A-V-5-1013 3QK BAUD

82S2382S11582S123741867418874S287

32X8409632X8

FAM0S

Tristate Bipolar

Open C Bipolar

Open Collector

Bipolar

Tristate

TTL Open Collector

TTL Open Collector

Static

12V

89.95109529.95

CONTINENTAL SPECIALTIES

Proto Board 203

*75.00

Number

LiWiH(Inches)

PricePB-6 6.0x4.5x1.4 $15.95

PB-100 6.0x4.5x1.4 $19.95

PB-101 6.0x4,5x1 4 $22.95

Proto Board 203A

vidn lb-Regulated BVOC suuplyits spent Italians ai PB-203) Renim) sspaiale +1SVOC and -15C D.5A supplies, sach

$124.95

ModelNumberPB-T02PB-103PB 104

LxWxH(Inches)

7.0x4.5x1.49.0x6.0x1.49.8 x 8.0 x 1.4

THE SINCLAIR PDM35

DC Volts (4 ranges]

Range imVto 1000V

Accuracy ot reading 1 0%i 1 count

Mote tOMli input impedance

AC Volts (40 llz-5 kHz)

Range IV to 500 V.

Accuracy of reading 1 0%± 2 counts.

DC Current (6 ranges)

Range 1 n.\ to 200 mA

Accuracy ot reading t 0%±t count.

Note Max resolution 0 1 rtA

Resistance (5 ranges)

Range1 HI to 20 Hit

Accuracy ot reading: 1 5%± 1 count.

Also provides 5 junction-test ranges

Dimensions: 6 in i 3 in x 1ft in.

Weight: 616 oz.

Power Supply: 9 V battery or

Sinclair AC adapter (Battery not incl.)

Sockets: Standard 4mm lor

Options: AC adapter for117 V 60 Hi powerDe-luxe paddedcarrying wallet

resilient plugs.

PDM35: Digital Multimeter . . . $59.95

(completely assembled)

PDM-AC:T17V AC Adapter . . . 6.95

PDM-DP:

Deluxe padded carrying case. . . 6.95

JE200

$

5V-1 AMPPOWER SUPPLY

•Uses LM309K•Heat sink provided•PC Board construction•Provides a solid 1 amp

@ 5 volts•Can supply up to ±5V,

+ 9V and ±12V with

JE205 Adapter•Includes components,

hardware & instructionsJE200 $14.95 •Size;3K'x5"x2"H

100 MHz8-DigitCounter

• 20 HZ'100 MHz Range ■ Four power souces, ie

• 6" LED Display batteries. 1 to or 220V with■ Crystal-controlled timeBase charger 12V with auto

• Fully Automatic lighter adapter and external

• Portable —completely 7 2-10V power supply

.SEor.wr MAX-100 $134.95

*5.63" -«i »■ i ■ _^

ACCESSORIES FOR MAX 100:

Mobile Charger Eliminator

use power from car battery Model 100 — CLA S

Charger/Eliminator

110 V AC

il 100 — CAI S9.9S

REGULATED POWER SUPPLY m

JE205

ADAPTER BOARD- Adapts to JE200 -±5V,±9Vand±12V

•DC/DC converter w/

+5V input•Toriodal hi-speed

switching XMFR'Short circ.protection•PC Brd. construction•Piggy-back to JE200

board•Size:3&"x2"x9/16"h

JE205 $12.95

$10.00 Min. Order - U.S. Funds Only Spec Sheets - 25*

Calif. Residents Add 6% Sales Tax 1979 Catalog Available -Send 41e! stamp

Postage—Add 5%plus$1 Insurance (if desired)

FBEE

J'amecoHM*iiiMf|[«g

PHONE

ORDERS

WELCOME

(415)592-8097

MAIL ORDER ELECTRONICS - WORLDWIDE

1021 HOWARD AVENUE, SAN CARLOS. CA 94070ADVERTISED PRICES GOOD THRU AUGUST

The Incredible"Pennywhistle 103'

$139.95

Kit Only

The PennywhlsHe 103 is capable of recording data to and from audio tape without

critical speed requirements tor the recorder and it is able to communicate directly with

another modern and terminal lor telephone "hamming' and communications. In

addition, it is tree of critical adjustments anil is built with non-precision, readily available

parts.

Oala TransmiMion Method Frequency-Shift Keying. tull-duple» {half-duplex

selectable).

Maximum Data Rale 300 Baud

Dala Formal Asynchronous Serial (return to mark level required

between each character).Receive Channel Frequencies ,. ,2025 Hz lor space; 2225 Hi for mark.Transmit Channel Frequencies . .Swrtch selectable: Low (normal) = 1070 space,

1270 mark; High = 025 space, 2225 mark

Receive Sensitivity - 46 dbm accoustically coupled.

Transmit Level -i5 dbm nominal. Adjustable from -6 dbm

to -20 dbm.Receive Frequency Tolerance ...Frequency reference automatically ad|usts to

allow for operation between 1800 Hz and 2400 HiDigital Data Interlace EIA RS-232C or 20 mA current loop (receiver is

optoisolated and non-polar).

Power Requirement! 520 VAC, single phase. 10 Watts.

Physical All components mount on a single 5" by 9"

printed circuit board. All components included.Requires a VOM, Audio Oscillator, frequency Counter and/or Oscilloscope to align.

TRS-8016K Conversion Kit

Expand your 4K TRS-80 System to 16K. Kitcomes complete with:

* 8 each UPD416-1 (16K Dynamic Rams) 250NS

* Documentation for conversion

TRS-16K

$75.00

COMPUTER CASSETTES

.6 EACH 15 MINUTE HIGHQUALITY C-15 CASSETTES

. PLASTIC CASE INCLUDED12 CASSETTE CAPACITY

. ADDITIONAL CASSETTESAVAILABLE #C-15-$2.95 ea

CAS-6

$14.95

(Case and 6 Cassettes)

SUP R' MOD II

UHF Channel 33 TV Interface Unit Kit

Wide Band B/W or Color System

* Converts TV to Video Display forhome computers, CCTV camera,Apple II, works with Cromeco Daz-zler. SOL-20, IRS-80, Challenger,etc.

MOD II is pretuned to Channel 33(UHF).

* Includes coaxial cable and antennatransformer

MOD II

$29.95 Kit

Function Generator Kit

• Provides 3 basic waveforms:sine, triangle & square wave

• Frequency range from 1 Hz to100K Hz

• Output amplitude from 0-volts toover 6 volts (peak to peak)

• Uses a 12V supply or a ±6V splitsupply

• Incl. chip, PC. board, compo-nents and instructions.

JE2206B $19.95

IDEAL FOR TRS 80

"Plug/Jack interface to anycomputer system requiringremote control of cassettefunctions"

The CC100 controls cassettemotor functions, monitorstape location with its internalspeaker and requires nopower Eliminates ttie pluggingand unplugging of cables dur-ing computer loading opera-tion from cassette.

CASSETTE CONTROLLER

#CC-100$29.50

63-Key Unencoded Keyboard

This is a 63-key, terminal keyboard newly manufactured by alarge computer manufacturer It is unencoded with SPST keys,unattached to any kind of PC board. A very solid molded plastic 13x 4" base suits most application. IN STOCK 529 95/eactl

Hexadecimal

Unencoded

Keypad

19-key pad includes 1-10 keysABC0EF and 2 optional keys and ashift key. $10.95/each

Circle 201 on inquiry card.

BYTE August 1979 241

Circle 171 on inquiry card.

COMPUCOLOR II is here

ll

HERE IS A SURPRISINGLYAFFORDABLE COMPUTERTHAT MAKES THE COMPE-TITION LOOK TWICE I!

STANDARD FEATURES

* 13" COLOR CRT

' SPECIAL GRAPHICS PKG.' EXTENDED DISK BASIC

* MINI DISK DRIVE

* 8K RAM MEMORY

* 72 KEY KEYBOARD

PRICE & OPTIONS

MODEL 3- 8K USER RAM-1495.ooMODEL 4-16K USER RAM-1695.ooMODEL 5-32K USER RAM-1995.oo2nd DISK DRIVE -400.oo

EXPANDED KEYBOARD - 1 3 5 .oo

FORMATTED DISKETTE - 5 .oo

MANY PROGRAMS AVAILABLE *

TO ORDER

SEND CHECK OR MONEY ORDERCALIF. RES. add 6% TAXshipping 1% all orders

HOLLYWOODSYSTEMS

CATALOG - 50<

9100 SUNSET BLVD.

SUITE 112

LA. CALIF. 90069

D

■■■■■■■■ IV ■■■■■■ ■■ * ■■■■■■ ■■■■■■■■■■ ■■ H4T,^r/ri xt r»r^rnnnrrrr Stilk. All Prime Quality — New Parts Only I

BECKIAN ENTERPRISES

All Prime Quality — New Parts Only

Satisfaction Guaranteed

EDGE CARD CONNECTORS: GOLD PLATED. (Not Gold FlashlBODY: Non brittle, Solvent res.. G.E. Valox.CONTACTS: Bifurcated; Phos/Bronze: Gold over Nickel.ABBREVIATIONS: S/T Solder Tail; S/E Sold. Eyelet:

W/W Wire Wrap 3; SW/W Short W/Wrap;

PART »

5010

5020

5030

5040

5050

1450

Description

50/100 S/T ALTAIR50/100 S/T IMSAI50/100 W/W IMSAI50/100 S/E ALT/IMSAI50/100 S/T CROMEMCOIMSAI CARD GUIDES

.100" Contact Center Connectors.

102010401050106010651070107610801085109010931095

13/26 S/E Imsai MIO:25/50 S/E25/50 S/T36/72 W/W Vector.36/72 S/T Vector.40/80 S/E PET40/80 W/W PET40/80 S/T PET43/85 S/E Cos.ELF43/86 S/T Cos.ELF43/86 S/T Cos.ELF43/86 W/W Cos.ELF

POLARIZING KEYS: For Above.156" Contact Center Connectors.

1550 6/ S/E PET.Etc

1560 6/12 S/T PET.NSC.

1575 12/24 S/E PET

1580 12/24 S/T PET

1590 15/30 S/E GRI Keybd.

1620 18/36 S/E

1650 22/44 S/E KIM.VECTOR

1 660 22/44 S/T KIM,VECTOR

1 670 22/44 W/W KIM,VECTOR

1690 36/72 W/W

1710 36/72 S/E

1720 36/72 S/T

1730 43/86 S/T Mot. 6800

1 740 43/86 S/T Mot. 6800

1750 43/86 W/W Mot. 6800

POLARIZING KEYS: For Above

Row Sp.

.140.250.250.140.250

.140.140.140.200.200.140.200.140.140.140.200.200

.140.140.140.140.140.140.140.140.200.200.140.200.140.200.200

1-4

3.753.954.105.006.250.16

2.102.953.004.804.004.805.004.905.005.104.955.500.10

1.301.352.152.102.252.402.20

2 002.40

3 903.503.304.404.354.450.10

5-9

10-24

3.50

3.30

3.75

3.50

3 90

3.70

4.50

4.25

6.00

5.75

0.14

0.12

1.852.752.804.603.754.504.654 604.754.854.705.200.10

1.101.151.951.902.052.202.001.802.203.753.303.104.154.104.250.10

1.752.502.604.303.504.304.354.254.504.604.454.900.10

0.900.951.751.701.852.001.801.702.003.503.102.903.903.854.100.10

RS232 & D TYPE SUBMINIATURE CONNECTORS:

QUANTITYDE9P MaleDE9S FemaleDE1 10963-1DA15P MaleDA15S FemaleDA51211-1DAI 10963-2DB2 5P MaleDB2 5S FemaleDB51212-1DB51226 1ADB1 10963-3DC37P MaleDC37S FemaleDC! 10963-4DD50P MaleDD50S FemaleDD51216-1DD1 10963-5

2pc. Grey Hood

1 pc. Grey Hood2pc. Grey Hood

1 pc. Grey Hood2pc. Black Hood2pc. Grey Hood

2pc. Grey Hood

Ipc. Grey Hood2pc. Grey Hood.

D20418 2 Hardware Sets

1-4

1.451.931.201.952.801.251.222.203.201.301.401.353.704.901.954.404.902.302.400.75

5-9

1.351.801.101.802.601.151.102 103.001.201.301.253.504.701.854.304.702.102.200.70

10 24

1.251.701.001.702.401.101.051.902.701.101.201.153.354.401.754.104.501.902.000.65

I.C. SOCKETS GOLDWIRE WRAP 3 TURN14 pin SO.36 ea.16 pin 0.38 ea.

I.C. SOCKETS.Dip Solder. Tin.

14 pin $0.15 ea.16 pin 0.17 ea.

8080 PRIME$8.00 ea.

2708 EPROMS PRIME

$14.00 ea.

CONNECTORS FOR CENTRONICS 700 SERIES:Amhpenol 57-30360 For Back of Centronics '700' Series:

Price: $9.00ea. 5 pes. $7.50ea.

WHISPER FANS: Excellent for Computer cabinet cooling. Extremely quiet.Dim. 4-3/4" x 11/2" thick. U.L. Listed. _L4 5J) 10-24

$22.00 $19.00 $18.00WRITE FOR LARGER QUANTITY DISCOUNTS. DEALER INQUIRIES AREWELCOME.

WE ARE CONNECTOR (EDGE CARD! SPECIALISTS. IF YOU DO NOT SEEWHAT YOU NEED IN THIS ADVERTISEMENT, PLEASE WRITE US. WE WILLREPL Y.

TERMS: Minimum Order $10.00: Add $1.25 for handling and shipping. All ordersover $25.00 in USA and Canada: WE PA Y THE SHIPPING.NOTE: CA residents please add 6% sales tax.

NO COO. SHIPMENTS OR ORDERS ACCEPTED.

mail orders to:geckten EnterprisesP.O. Box 3089Simi Valley, CA 93063

242 BYTE August 1979

Circle 30 on inquiry card.

PRECUT WIRE

WIRE WRAP TOOLS

#1

#30 WIRE KITS

$7.95 #2 $19.95

250

3"

100

4W

250

21/2"

250

5"

250

3'/2"

100

5"

500

3"

100

51/2"

100

4"

100

6"

500

3V2"

250

6"

500

4"

100

61/2"

250

41/2"

100

7"

#3 $24.95

#4 $44.95

500

21/2"

500

41/2"

1000 2V2"

1000 4V2"

500

3"

500

5"

1000 3"

1000 5"

500

3'/2"

500

51/2"

1000 3V2"

1000 51/2"

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 for tubes.

In_

2'A3

3'/>4

AV,

5

5%

100

500

1000

5000

10Addl In.

1.04

2.98

5.16/K

4.67/K

1.08

3.22

5.65/K

5.06/K

1 13

3.46

6.14/K

5.46/K

1.18

3.20

6.62/K

5.87/K

1.23

3.95

7.12/K

6.25/K

1.28

4.20

7.61/K

6.62/K

1 32

4.48

8.10/K

7.03/K

1.37

4.72

8.59/K

7.43/K

1.60

5.37

9.84/K

8.48/K

1 66

5.63

10.37/K

8.91/K

1.73

5.89

10.91/K

9.33/K

1.78

6.15

11 44/K

9.79/K

1.82

6.41

11.97/K

10.19/K

1.87

6.76

12.51/K

10.62/K

1.92

6.93

13.04/K

11.05/K

1.99

7.26

13.57/K

11,48/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

INDUSTRIALWIRE WRAP TOOL

BW 928

BW 928BF (Back Force)#30 Bit & Sleeve#26 Bit & SleeveBatteries & Charger

$49.95*

52.95*29.5029.5011.00

ELECTRICAL INDUSTRIALWIRE WRAP TOOL

EW7D

EW 7D BF (Back Force)#30 Bit & Sleeve#26 Bit & Sleeve

$85.00*

92.90*

29.50

29.50

'Industrial Tools do not include Bit & SleeveSpring Loaded bit on Back Force models.

d

EDGE CARD CONNECTORS

44pm Solder Tail $1.95 $17.50/10 ALLareGold100pm Solder Tail $3 95 $35.00/10 100pinare IMSAI

100pin Wire Wrap $3.95 $35.00/10 spacing.

TT

IT

h

r

INTERCONNECT CABLES

^v

Ribbon cable connectors tor connecting boards to front panels, or board to board.

SINGLE ENDED

DOUBLE ENDED

14 pin 16 pin 24 pin

14 pin 16 pin

24 pin

6"

124 134 2 05

2.24 2.45

3.37

12"

133 144 2 24

2.33 2.55

3.92

24"

152 165 2 63

2 52 2.76

431

48"

191 2 06 3 40

2.91 3.17

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

MOS 40

40 pi

i Insertion Tool

7.50

EX-1

IC Extractor Tool

1.49

H-PCB-1

Hobby PC Board

4.99

WSU 30

Hand Wrap/Unwrap/Strip

Tool

6.25

WSU 30M

Same as WSU30 with Modified Wrap

750

SOLDERLESSBREADBOARDSSK 10 $16.50

2.2" x 6.5" 4-*,

MB10

$18.95

SK10 mounted on boardW74 Binding Posts &Rubber Feet

WIRE WRAP SOCKETS

1-9 10-24 25-99 100-249 250-999

8 pin"14 pin*16 pin"18 pin"20 pin22 pin"

24 pin

25 pin strip28 pin

40 pin

.70

.90

.95

.95

1.25

1.25

1.65

.36

.39

.42

.60

.80

.85

.85

1.15

1.15

1.45

.34

.37

.40

.55

.75

.80

.80

1.00

1.00

1.35

.31.34.36.50.65.70.70.95.951.20

.27

.32.3445.62.65.6590.901.10

Gold 3-Level Closed Entry Design

'End & Side Stackable

2-Level Sockets Available

M Ilia BUMMB

135 E. Chestnut St. #5 Monrovia', 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 & Mastercharge

Catalog available on request

LOGIC PROBE

PRB-1

$34.95

• Compatible with allLogic Families

• 10 Nsec pulse response

Dealer Inquiries Invited

I

Circle 298 on inquiry card.

BYTE August 1979 243

Circle 387 on inquiry card.

WAMECO

THE COMPLETE PC BOARD HOUSEEVERYTHING 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 BOARDControls 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 2114 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

W7J7C

tnC. WAMECO INC. 111 GLENN WAY #8, BELMONT, CA 94002 (415)592-6141

€

CALIFORNIA COMPUTER SYSTEMS

16K RAM BOARD. Fully buffered addressable in 4Kblocks. IEEE standard for bank addressing 2114's

PCBD $26.95

Kit 450 MSEC ,. $259.95

PT-1 PROTO BOARD. Over 2.600 holes 4" regu-lators. All S-100 buss functions labeled, gold fingers.

PCBD $26.95

PT-2 PROTO BOARD. Similar to PT-1 except set-up to handle solder tail sockets.PCBD $26.95

-357

FORMERLY CYBEFICOM SOLID STATE MUSIC.

PB-1 2708&2716 Programming Board with provisionsfor 4K or 8K EPROM. No external supplies require

textool sockets. Kit $124.95

CB-1 8080 Processor Board. 2K of PROM 256 BYTERAM 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 PCBO $26.95

MB-7 16KX8. Static RAM uses «P410 Protection,

fully buffered Kit $299.95

MB-8A 2708 EROM Board, S-100. 8K8X or 16Kx8

kit without PROMS $75.00 PCBD $28.95

MB-9 4KX8 RAM/PROM Board uses 2112 RAMS or82S129 PROM kit without RAMS or PROMS $72.00IO-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 handshaking20/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, 11x11VzxVe".

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

rY/mc/ine WAMECO INC.

FDC-1 FLOPPY CONTROLLER BOARD will driveshugart, pertek, remic 5" & 8" drives up to 8 drives,on board PROM with power boot up, will operatewith CPM (not included).

PCBD $42.95

FPB-1 Front Panel. IMSAI 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 in-terrupts. 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

OM-9 MOTHER BOARD, Short Version of QM-12.

9 Slots PCBD $30.95

MEM-2 16K x 8 Fully Buffered

2114 Board PCBD $26.95

8080A $9.95

8212 2.49

8214 4.49

8224 3.49

2708 9.49

5101-1P 6.90

5101-8P $ 8.40

2114 (450 NS) lowpwr 7.252114 (250 NS) lowpwr... 7.99

2102A-2L 1.50

2102A-4L 1-20

4116 8/89.95

m

(415) 592-1800P. 0. Box 424 • San Carlos, California 94070

Please send for IC, Xistorand Computer parts list

AUG SPECIAL SALEON PREPAID ORDERS

(charge cards not included on this otter)

VB-1B WITH MIKOS #6 KIT . $84.958KX8 RAM Fully buffered 450 NSEC.2.5 amp typical assembled parts maybe unmarked or house numbered.

$99.99

MIKOS PARTS ASSORTMENTWITH WAMECO AND CYBERCOM PCBDS

MEM-2 with MIKOS =7 16K ram

with L2114 450 NSEC $249 95

MEM-2 with MIKOS =13 16K ram

with L2114 250 NSEC $279.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

OM-9 with MIKOS #12 9 slot mother

board $79.95

FPB-1 with MIKOS =14 all parts

for front panel $134.95

MIKOS PARTS ASSORTMENTS ARE ALL FACTORY PRIMEPARTS. KITS INCLUDE ALL PARTS LISTED AS'REQUIREDFOR THE COMPLETE KIT LESS PARTS LISTED. ALL SOCKETSINCLUDED.

VISA or MASTERCHARGE. Send account number, Interbanknumber, expiration date and sign your order. Approx. postagewill be added. Check or money order will be sent post paid inU.S. It you are not a regular customer, please use charge,cashier's check or postal money order. Otherwise there wiltbe a two-week delay for checks to clear. Calif, residents add6% tax. Money back 30 day guarantee. We cannot accept re-turned IC's that have been soldered to. Prices subject tochange without notice. $10 minimum order. $1.50 service chargeon orders lass than $10.00.

244 BYTE August 1979

Circle 230 on inquiry card.

• •••••.••*■

••••

••••■

:•••••••■•••••••••••••••••••••••••

•••••

•••••

{•••••••••••••

••••••••••••••••••••

• ••.-

••••

•••••

••••

••••

••••

••••

•••■-•••••

•••••■

•••••••••

••••••••••••♦••••••■

• ••••

• ••••

• ••.-

• •••■• ...

•••••

••••••

•••••

••••■

• •♦••

••••

•••••

•••••

• •••-•••••

•••••

• •••-

•••••

{••.-«...«...

• ••••

• •••-

••••

•■•.

•••••

•••••

• •••■•••••••••••••••

••••••••••

{•••■••••

• •••-

••••••••••

• •••■••»••••••••••••

:•••.•••■

• •••■••••••••••••••••••••

•••••

:•»..••••

16K EPROM CARD-S 100 BUSS

OUR

BEST

SELLING

KIT!

USES 2708s!

Thousands of personal and business systems aroundthe world use this board with complete satisfaction.Puts 16K of software on line at ALL TIMES! Kit featuresa top quality soldermasked and silk-screened PC boardand first run parts and sockets. All parts (except 2708's)are included. Any number of EPROM locations may bedisabled to avoid any memory conflicts. Fully bufferedand has WAIT STATE capabilities.

OUR 450NS 2708'SARE $8.95 EA. WITHPURCHASE OF KIT

ASSEMBLED

AND FULLY TESTED

ADD $25

8K LOW POWER RAM KIT-S 100 BUSS250 NS SALE!

'ADD $5FOR250NS!

$129

KIT

(450 NS RAMS!)

Thousands of computer systems rely on this rugged, workhorse, RAM board. Designed for error-free, NO HASSLE,systems use.KIT FEATURES:

1. Doubled sided PC Board with soldermask and silk screen layout.Goldplated contact fingers

2. All sockets included.

3. Fully buffered on all address and datalines.

4 Phantom is jumper selectable to pin

67.5. FOUR 7805 regulators are providedy\^ on card

Blank PC Board w/Documentation

$29.95

Low Profile Socket Set 13.50

Support ICs (TTL & Regulators)

$9.75

Bypass CAP'S (Disc & Tantalums)

$4.50

ASSEMBLED AND FULLYBURNED IN ADD $30

16K STATIC RAM KIT-S 100 BUSS

\r

$295

KIT

jlllllIIIIIIIIIII111 IIIII111IIIIII

FULLY

STATIC, AT

DYNAMIC PRICES

WHY THE 2114 RAM CHIP?

We feel the 2114 will be the next industry standardRAM chip (like the 2102 was) This means price,availability, and quality will all be good' Next, the2114 is FULLY STATIC We feel thts is the ONLYway to go on the S-100 Buss' We ve all heard theHORROR siones about some Dynamic RamBoards having trouble with DMA and FLOPPYDISC DRIVES Who needs these kinds ofproblems'* And finally, even among olher 4KStatic RAM's the 2114 stands out' Not all 4K staticRams are created equal' Some of the other 4K'shave clocked chip enable lines and various timingwindows fust as critical as Dynamic RAM's Someof our competitor's 16K boards use these "tricky"devices Bui not us! The 2114 is the ONLY logicalchoice tor a trouble-tree, straightforward design

KIT FEATURES

1 Addressable as four separate 4K Blocks

2 ON BOARD BANK SELECT circuitry(Cromemco Standard') Allows up to 512K online!

3 Uses 2114 (450NS) 4K Static Rams

4 ON BOARD SELECTABLE WAIT STATES

5 Double sided PC Board, with solder mask andsilk screened layout Gold plated contact fingers

6 All address and data lines fully buffered

7 Kit includes ALL parts and sockets

8 PHANTOM is jumpered to PIN 67

9 LOW POWER under2amps TYPICAL from the*6 Volt Buss

10 Blank PC Board can be populated as anymultiple of 4K

BLANK PC BOARD W/DATA—$33LOW PROFILE SOCKET SET—$12 ASSEMBLED & TESTED—ADD $30SUPPORT ICS & CAPS—$19.95 2114 RAM'S—8 FOR $69.95

16K STATIC RAM SS-50 BUSS

$295

KIT

FULLY STATICAT DYNAMIC PRICES

KIT FEATURES:

FOR SWTPC6800 BUSS!

5.6.

BLANK PC BOARD—$33

SUPPORT ICS AND CAPS

Addressable on 16K Boundaries

Uses 2114 Static Ram

Runs at Full-Speed

Double sided PC Board. Solder

mask and silk screened layout.

Gold fingers.

All'Parts and Sockets included

Low Power: Under 2 Amps

Typical

COMPLETE SOCKET SET—$12$19.95

TM990 BUSS PROTOTYPE & WIREWRAP BOARD

For use with the Texas Instrument Series of 16 BitMicrocomputer Modules. Fully buss compatible. Aninexpensive and quick way to expand the capacityof your Tl computer. Made of G-10 Epoxy PCmaterial. Gold plated contact fingers all platedthrough holes. High density, up to over 100 DIP's.

Fully documented. $70 each (OEM Discounts Available)

Z-80 PROGRAMMING MANUAL

By MOSTEK. orZILOG The most detailed explanationever on the working of the Z-80 CPU CHIPS. At leastone full page on each of the 158 Z-80 instructions. AMUST reference manual for any user of the Z-80. 300pages Just off the press. $12.95

450 NS!

2708 EPROMS

Now full speed! Prime new units from amajor U.S. Mfg. 450 N.S. Access time.1K x 8. Equiv. to 4-1702 A's in onepackage.

$16.76 oa.

$g

95

A For $50.00

PRICE CUT

NOT ASSOCIATED WITHDIGITAL RESEARCH

OF CALIFORNIA,

THE SUPPLIERS OF

CPM SOFTWARE.

ANNOUNCEMENT:

To better serve our customers we

are splitting Digital ResearchCorp of Texas into two operatingsections Parts and ComputersWe 'eel this change will allow usto offer you lower prices betterservice and many more newproducts Continue to orderparts clock modules etc IromDRPPO Box 401247 Garland.TX 75040 To order computerparts and computer kits orderfrom Digital Research Compu-ters PO Box 401565 GarlandTX 75040 „___^

16K DYNAMIC RAM CHIP

16K X 1 Bits 16Pin Package SameasMostek4116-4 250NS access. 410 NS cycle time Our best price yet for thisstate of the art RAM 32K and 64K RAM boards using thischip are readily available. These are new. fully guaranteeddevices by a maior mfg VERY LIMITED STOCK!8 FOR $79.50

X

Digital Research: Computers

** (OF TEXAS) r

P.O. Box 401565 • GARLAND, TEXAS 75040 • (214) 271-2461

TERMS: Add 50C postage we pay balance Orders under $15 add 75C handlingNo C O D We accept Visa MasterCharge and American Express cards TexRes add 5% Tax Foreign orders (except Canada add 20% P & H 90 Day MoneyBack Guarantee on ail items

■••••*••••••••••••••••••

• •••••••••

<•••••

• ••••••••••••••

• •••••••••

■•••••

-..••••••••

••••••

••••••

••••••

••••••

-••if••••••

■•••••

■•••••

■•••••

••••••

•••••

••••••

••••••

•••»••••••••

■•••••

••••••

••••••

••••••

••••••

■•••••

—•••"•••••

• ••••

••••••

■•••••

• ••••

••••••

-.••••

••••••

••••••

••••••

-•••••

• ■••••

•••••§

•>••••••••••

■ ■•••#■•••••

••••••

■•••••

••••••

.-•••■•••••

—•••

••••••

••••••

••••••

••••••

-•••••

■•••••

• ••••

••••••

■■••••

■•••••

■•••••

■•••••

■•••••

•*••••

■•••••

■ ••••

-••••

■•••••

••••••

■•••••

■•••••

•■••••

•••••§

■•••••

••••••

■ ••••••••••••••••••••■•••••••••••••••••§

■ •••#•••••*•••••••••••••••••••••••••••••■••••>■••••

%::••*•

Circle 100 on inquiry card.

BYTE August 1979

245

Circle 151 on inquiry card.

so met* bill

G6DB0VT SAYS70 Cttj

ult ad'! Bufj um rtptM)He. acf deadline n -b#crr#Jand toe. chrt,+ havt, iimt -firi¥HteHto cr pJic+cs orcttufayM* % soys, "Uj

t*-Ht iheit, frieet *(h*f toon't-mincf. v/i/sf -frc*hctfi4 )k orsme,+h)*iv. oK, 8;//, her**

1&uns of SH£'- &$• it**** «f*&-•#*£■

la.it. for VlStP°r Wasterthn^1ontercUl( our & hr. order dak. of OH5~)S62-

0636 ■ Ca/iforni* reside* ft add Sales -fat-r\dd S% -br ShippinjI excess rt faded, .COD OK uM Street address fir UPSdelivery, for mre. 'info sec **~ -M-

pUje., 5ametJiaf i**re -/or/no! ad elic -Ulcere. id "ft'S ^Ojizine

Si// Sodboirtr Bkc-HtnitS-. fuiUi'ni 72S>Oakland Air/Hrf, cA 94&4

-fhii'i a ltdr &f /x&mery ejf-paxsi<m -fir f$7.2o! Our te-hmdada 2&> is Ate pooer-Mips, dip thmfi* and -full S~CuiHenia+fon *wt /unto m-

a Iua. *+ -HiS price fa^Is no */a«eu pzckatiM > buf-weVe- gor- re a I product> df-recil prioiij uii-iA a// *#«• per~

-BsfMMc*, i-feu. or yeuf Cimpahtlull/ &ey m.e4-

tt!2ft jgyatt^sffiUffixff? f

bat -jnct rearrds in Hie Indus fry-f»r ndtable, fad Coih-effechVe '

K)o tiJdifa - $129 I Our bnu\d -*&J

gone Km J% fe &(. faf ^ 5hfj favc

Stmt, Gcmrmrt JC u*k!k around a.n<L °Per*t'<»> ■ Our unb'h hat a!/

Wmt -h dQarihem aJh. €v*« bf-kekuk s°,j, *"«/&?*% CaPs P*'

S^arfo. ihc eld &mrmT s ar> $T 'lAf -fiC Ui1 > M\'j

hijJi

'e«f 4K b/c^S, and Me af ^ l1m' RS.^VSSfljJ

FREE!

PET SPECIALS

PET 16N 16K full size graphics keyboard S 995

UP TO S170 IN PET 16B 16K full size business keyboard S 995

merchandise PET 32N 32K full size graphics keyboard $1295

PET 32B 32K full size business keyboard $1295

WITH THE PURCHASE OF ONEOF THE FOLLOWING PET-CBMITEMS!!

m ASK ABOUTEDUCATIONALDISCOUNTSON PET

IEEE - RS232 Printer Adaptor for PETBETSI PET to S-100 Interface & Motherboard

PET Connectors- Parallel or IEEE $ 2.25

- Cassette Port $ 1.60Personal Information Management System—

Add S3 for PET program cassette $ 8.90

Protect-A-Pet dust cover $ 9.50

EXS 100 Floppy Disk Controller For PET $299.00

MICROCHESS for PET (Peter Jennings) $ 17.90

PET 4 Voice Music Board (MTUK-1002-2) $ 49.00

Music Software (K-1002-3C) for PET . $ 19.00

CmC Word Processor program for PET $ 25.00

Bridge Challenger program for PET $ 13.50

Play and reply bridge hands against the PET

Graphics Utility Package for PET $ 13.50

Stimulating Simulations-Book & PET tape $ 13.50

Kite Flight - 2 player action game $ 7.95

Write for PET Software List

Auto-Repeat Hardware for PET $ 24.50

Word Processor for PET — Machine Language

version. Auto scroll, insert, delete, form letter append, etc.

8K Version $ 24.00 16K or 32K with disk $ 95.00* Amount of Free Merchandise with Purchase of PET-CBM Item

PET 16S 16K small keyboard, integral cassette $ 995PET 32S 32K small keyboard, integral cassette $1295PET 8K 8K small keyboard, integral cassette $ 795PET 2040 Dual Disk Drive — 343,000 bytes $1295

PET 2040A Single Disk Drive - 171,000 bytes $ 895PET 2022 Tractor Feed Printer $ 995

PET 2023 Pressure Feed Printer $ 849

PET C2N External Cassette Deck $ 95

$ 79.50

$119.00

FREE*

$130

S130

$170

$170

$130

$170

$100

$170

$115

$130

$110

$ 12

WRITE FOR 6502 ANDS-100 PRODUCT LIST

FREE!

UP TO $170 INMERCHANDISE

KIM-1 $159 (Add$30forPowerSupply)SYM-1

BAS-1 Microsoft ROM Basic for SYMMemory Plus

SEA-16 New 16K Static RAMSeawell Motherboard-4K RAM

spaceKTM-2 Synertek Keyboard and

Video Interface with Graphics

CapabilityRAM 16 4MHz 16K Static S-100

RAM2114 L 450 ns 4K Static RAM2716 EPROM (5 Volt)6550 RAM (for PET 8K)6502 Microprocessor Chip6522 VIA6502 PIA

BOOKS

Programming the 6502 (Zaks)6502 Applications Book (Zaks)6500 Programming Manual (MOS)Programming a Microcomputer:6502Basic for Home Computers

$229$139$199$325

$ 99

$290

$309$6.95$ 38$16.20$ 9.95$9.75$10.50

$ 9.90$11.90S 6.50$ 8.90$ 5.90

3M "Scotch'

8" disks

10/S31

3M "Scotch'

5" diskettes SALE

10/S35

Verbatim 5"

diskettes(Write for quantity prices)

10/S28

Minimum Order $10.00

A B Computers

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.00C-30 10/7.00 50/30.00 100/57.00

115-A E. Stump RoadMontgomeryville, PA 18936(215) 699-8386

246 BYTE August 1979

Circle 1 on inquiry card.

COMPUTER TERMINAL

BREAKTHROUGH

$795

BUY A PET" AND GETA TERMINAL FREE

m00 «fJ^> Cr commodore

This is not the first terminal built around amicroprocessor, but there has never been aterminal at this price which could also be usedas a complete computer system. Now the sameunit you use for talking to a large time-sharingsystem can also be used for many other taskswithout requiring outside computer support.With the proper software you can handle smalljobs such as complex calculations and animatedgraphics.

Economy through mass production

If an entirely new product was designed specifi-cally to do all the things you can do with theT/C 2001, it would have to cost thousands ofdollars. NCE/CompuMart has bypassed a lot ofexpensive design work by employing a mass-produced computer as the heart of the T/C2001. The Commodore PET has now been inproduction for nearly two years and more than50,000 units have been sold worldwide. Thereis no other computer at this price which has allthese built-in features: 9" TV monitor, 73-keykeyboard (larger sizes available), cassette tapedrive for loading programs and data, high-levelBASIC language, four interfaces and a 24-hourclock. And it's expandable! If you find thatyou need faster data storage, you can plug in afloppy disk. If you want to be able to printforms or listings,you can attach a printer.

Free tape drive

The 8K PET which costs $795 comes witha built-in tape drive but its keyboard is smallerthan the standard typewriter you may be usedto. The $995 16K PET and the $1295 32K PEThave a standard-sized keyboard but they requirean external cassette tape drive for operation.Normally $95, we include it free with each 16Kor 32K PET. The T/C 2001 package, worth$69 if purchased separately, is free with anyPET ordered from this ad.

CAT ACOUSTICMODEM

$189.00

Novation's new 300 baud acoustic modem, theCAT sets a new price standard for units withoriginate and answer capabilities. It's theperfect T/C 2001 companion, making thefinal link with your timesharing service. It'sRS-232 with full or half duplex using any Bell103 compatible modem. This amazingly com-pact unit comes with acoustic self-test, too.

FREE 10 DAY TRIAL

NCE/CompuMart has been selling computers by mail since 1971 and we know ourbusiness. We know that you need to have complete confidence in the product and thecompany behind it so we offer you this unconditional guarantee: Try it for 10 days andif it does not meet all of your expectations, return it for a full refund of your purchaseprice. In addition, since the PET is one of the most reliable systems we've ever sold,we're doubling the manufacturer's warranty on machines ordered from this ad to protectyou for a full 6 months against defects in parts or workmanship. You can't lose; it'sour way of assuring satisfaction to those who aren't able to visit our showroom at theNCE/CompuMart store and warehouse in Ann Arbor.

Accessories

Cassette Tape Drive — A second cassette tape drive is requiredwhenever you need to update long files or perform backup copyoperations. It plugs directly into the PET and is accessed throughthe BASIC language. Note: All PETs ordered through this adinclude the first tape drive.

Dual Floppy Disk Drive — Programs which take 3 minutes toload from a tape require only seconds to load from a disk. ThePET 2040 Dual Floppy Disk Drive requires no extra memory orexpansion box, it plugs right in for fast, reliable program anddata storage up to 36K. The 2040 is compatible only with the16K and 32K PETs.

T/C 2001 Terminal Package - If you already own a PET, you

can add this valuable option by simply plugging in our special

adapter and loading a program from the included tape. Please

specify which model PET you have. The output is TTL in the

standard serial format, input is RS-232.

How to order - Simply fill out the order blank below or call (313) 994-3200

to place charge card orders. If you don't already have our all-new 48-page NCE

Mini-Micro Computer Catalog, check the box and we'll send you one right away.

NCE/COMPUMART* P.O. Box 8610. 1250 N. Main St. • Ann Arbor, Ml 48107

PHONE ORDERS ACCEPTED (313)994-3200

D 8K T/C 2001

$795.00 PAYMENT

COCDGO

plus $10.07 shipping and handling16K T/C 2001 $995.00

plus $10.07 shipping and handling32K T/C 2001 $1,295.00

plus $10.07 shipping and handlingDual Floppy Disk Drive $1,295.00plus $7.16 shipping and handlingT/C 2001 Terminal Package $69.00plus $3.99 shipping and handlingCAT ACOUSTIC COUPLER $189.00plus $3.35 shipping and handlingD Send me my FREE catalog

D check #

□ money orderD charge□ VISAD MASTERCHARGE

Acct. #

Name

Address

City

State

<&

Member

Computer DealersAssociation

Interbank # .

Zip.

Circle 283 on inquiry card.

BYTE August 1979 247

r

Computer Products

THE PIGGY MAINFRAME

This steak new mainframe is neatly trimmed to hold six S-100boards, two mini-floppy drives, and is available in five colors Powerrequirements: 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 vofts at 3 amps uregulated. -16volts at 3 amps unregulated. 5 volts at 3 amps regulated. 12 volts at3 amps regulated. ___.

THE PIGGY IS HERE!

THE PIGGY (Without Drives]

S475.00

VIDEO INTERFACE

S-100 Compatible Serial Interface with Sockets included.Kit $117.95

Assembled & Tested $159.95Bare Board w/rnanuai $ 35.00

MEM-216 K Static RAM Board

Kit- (450ns) S250 00

Kit- (250nsl S285 00

Assembled- (450ns) S325.00

Assembled- (250ns) S350.00

DYNAMIC RAM BOAROSEXPANDABLE TO 64K32K VERSION «KITS

Uses 4115 (8Kx 1. 250ns) DynamicRAM's, can be expanded in 8Kncrements up to 32K

• K $159.00 24K $249.001SK $199.00 32K $299.00

4115 SALE8 for $39.95

64K VERSION -KITS

Uses 4116 (16Kx 1, 200ns) DynamicRAM's, can be expanded in 16Kncrements ud to 64K

$245

6502 Dased single board

computer with key board/display, KIM-1 hardware compa-tible, complete documentation.

SYM—1 CASE $39.95

JADE

ISO—BUSMOTHERBOARDSComes in either 6, 12. or18 slot sizes. Theseboards with a specialground plane assures asilent operationJADE 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

AssembledBare Board

$129.95

$149.95S59.95

f SD SYSTEMS

Z-80 STARTER KITBased on the powerful Z80CPU, this kit is an idealintroduction to micropro-cessors. It has an on-boardkeyboard and display, pluscassette tape Interface andexpansion provisions fortwo S-100 connectors. This"Do-it-all" Board will alsoprogram the 2716 2KEPROM

Kit $249.95

Assmbld and Tstd $399.95

PROTO BOARD

Includes gold platedfingers. S-100 size, holds72-16 pin dips, accomo-dates all 8 thru 40 pin dippackages.

Reg -$19 95 Special Prlce-S16.95

PARALLEL/SERIALINTERFACE

S-100 compatible. 2 serial I/O

ports. 1 parallel I/O.Kit JG-P/S $124 95

Assembled & TestedJGP/SA $1 79 95

Baro Board W Manual $ 30 00

3

JTRS 80'APPLESORCERER'TRS 80'APP'_'

> JADE MEMORY

j EXPANSION KITS For^

TRS—80. Apple, & Exidy I

4116-. 2

Everything a person needs to .

pdd 16K of memory. Chips .

come neatly packaged with i

< asy to follow directions. In "

minutes your machine is y

ready for games and more g

advanced software. >

$82.00 I

—-

Solid State Music's

I/O 4

2 Serial & 2-Ports S-100shakingKIT

AssembledBare Board

Parallel I Ovith lull hand

S14995

$199.95

S29 95

fpee

^ fR£t'-

7 ^^^k^—

The €xidySORC€ReR

Flexibitty is the key. The Sorcerer Computer gives you the flexibility of using ready-to-run, pre-packaged programs or doing your own thing and personalizing the programs toryourself. Which ever you choose, the Sorcerer is the personal computer that speaks yourlanguage.

The Sorcerer also provides full graphics capabilties. Each character, formed by an 8 x Bdot cell, can be programmed as a graphic symbol set. High resolution (512 x 240addressable points) gives a total of 122.880 locations for super animation and extremelytight plotting curves. The alphanumeric set gives 64 x 30 characters on the video screen

With 16K of memory

$1150.00

16K32K

$249.00$369.00

4IK $469.0064K $569.00

+ STATIC RAM 4,SPECIALS

2114'i. low power (1024x4)

115 16-99 100 ♦

4S0ns [ i.00 1 i.SS I S.S0

300ns 9.00 t.00 S.S0

-TMS4044/MM5?S7.

Mill

300n

54044/MM52S7. low pc

ns It.00 7.50 It.5ns $.$■$ S.7S 1.0

ower000

4200A (4Kxl, 200ns)

J».»5 I ISO It.I

410D (4K x 1, 200 ns)

|t.2S ] 7.00 [t.7S

STATIC RAMBOARDS

JADE 8K

Kits: 450ns $125.95

250ns $149.75

Assembled sV Tested:

450ns $139.75

250m $1(9.75

Bare Board: $ 25.00

16K - Usai 2114s (low cower)

Assembled & Tested:

RAM 1$ (2S0nt) $375.00RAM HJBJ450nsi $325.00

16K with memory management

Assembled & Tested:

RAM C5 (250ns) $390.00RAM tSB (450ns, $350.00

32K Static

Assembled & Tested:

250ns $795.00

450ns $7.25.00

250n» Kit $575.00

Rockwell AlM-65: The Head-Startin microcomDuters

A KIM I compatible machine withon-buard printer and a real keyboard'

$375.00 w/IK RAM

$450 00w/4K RAM4K assemDier/editcr tn MOM8K BASIC in ROM:Power supplyCase for AIM-6S

$ 80 00

$100.00$ 59 95$ 49.95

Special Package Price: $599.00

AIM 65 (4K), Power Supply. Case, and bK BASIC ROM

SD SYSTEMSSBC-100

An S-100 single board com-puter Z 80 CPU with 10?4bytes ol RAM 8 10 32K bytesot PROM Serial I O port

Kit S239 95

Assembled S369 95

TARBELLCassette Interface

Plugs into your IMSAI OfALTAIR 4 extra status lines37 page manual included. 4

tra control lines

t S99 95

Assembled S175 00

B Board S40 00

Ma.'.ual S8 00

POW€R

supplies

PSD-249A For a Single 5 t 4 Diskle By Power-One or Alpha Power5V al 7A. '..r- '•'• = '. "

PSD-205A For Single 8 Disk Drive

By Power One 5V at 1 A, -5V at 5A

24V al 1 5A S89 95

PSD 206A For Two 8 Disk DrivesBy Power One or Alpha Power 5at 2 5A -5V at 5A 24V at

3A S12500

Rockwell Aim-SS Power SupplyPSX-030A $5995

KIM-1 or SYM-1 Power SupplyPSX020A S59 95

DIP SWITCHES

Part No positions 1-9

SWD 103!WD '04SWD '05SWD 106SWD 107SWD 108SWD 109SWD 110

51 18SI 20SI 24SI 28SI 30SI 34SI 36SI 38

TEXTOOLZIP*

DIP* IISockets

•ZEROINSERTION FORCE

i ■ -jprottoektlt

I B™-S? J PRICES:

16 pin Zip Dtp II $6.50

24 pin Zip Dip II $7.50

40 pin Zip Oip II $10.25

.OH Sg-J-.U3dJ3bOS.J1ddV.U9 SMI

CHIPS

MICROPROCESSORS

F8

Z8u (2MHz)

Z80A (4MHz)

CDP1802CD

6502

6800

6802

8008-1

8035

8035-8

8080 A

8085

TMS9900TL

S16.9S$10.95S14 95S19 95S11 95S9 75

514 00

515 95S24 00S24 00S1000S23 00S49 95

8080A SUPPORT DEVICES

8212

8214

8216

8224 {2MHz!

8224-4 (4MHz)

8226

8228

8238

8243

8251

8253

8255

8257

8259

8275

8279

IS2350

UAYS 1013AAY5 1014ATR1602BTMS6011IM6403

S2 90S4 65S2 75

54 30S9 95S2 75S6 40

56 40S8 00

57 50S20 00

S6 40S18 00S18 00S51 20S17 70

S10 95

$525

58 25$5 25

55 95

59 00

BAUD RATE GENERATORS

MC14411 S10.O0

14411 Crystal S4 95

6800 PRODUCT

6821P SS 25

6828P S9 50

6834P S169S

6850P S4 80

6852P S5 25

6860P S925

6862P S1200

6875L S7.30

6880P S2 50CHARACTER GENERATORS

2513 Upper (1-12 5|2513 Lower (1-12 5)2513 Upper (5 volt)2513 Lower (5 voll)MCM6571 up scanMCM6571A down scanPROMS1702A2708

2716 (5 1212716 (5v)2758 (5v)

DYNAMIC RAMS416D 4116 (200ns)2104 40962107B 4TMS4027 4096

STATIC RAMS21L02(450ns)21L02 (250ns)2101-12111-12112 1

1 —IS

S1 50

51 75

52 95

53 25S295

S6 75S6 75S9 75S10 95$10 95S10 95

S5 00S12 95$49.00S49 00$30 00

S12.50S4.00$3 95S4 00

16-100S1 20

51 50$2 60S3 00

52 65

FLOPPY DISK CONTROLLERS

1771801 S3995

1791 S49 95

KEYBOARD CHIPS

AY5 2376 $13 75

AYS 3600 S13 75

MM5740 S1800

248 BYTE August 1979

Circle 195 on inquiry card.

PLACE ORDERS TOLL FREE

800/421-5809 Continental U.S.800/262-1710 Inside California

—~~*jamm ii i

■ ■,,mmmUiJmmmii

'■■'■•'■'•'■'■'-'■•-■-•-■ --

CPU BOARD FROM JADE

Features Include: ■ S-100 Compatible, available in 2MHz or 4MHzversions. ■ On-board 2708, 2716. 2516, or 2532 EPROM can beaddressed on any 1K. 2K, or 4K boundary, with power-on jump toEPROM. ■ On-board EPROM may be used in SHADOW mode,allowing lull 64K RAM to be used. ■ Automatic MWRITE generationit tront panel is not used. ■ On-board USART lor synchronous orasynchronous RS232 operation (on-board baud rate generator). ■Reverse-channel capability on USART allows use with bufferedperipherals or devices with "not-ready" signal.

2MHz- 4MHz'

;it:CPU-30200K, 2 lbs $149.95 Kit: CPU-30201K. 2 lbs S159.1

Assembled and Tested: Assembled and Tested

CPU-30200A, 2 lbs S199.95 CPU-30201 A, 2 lbs S209.!

•H

; ' ~ " ' '

JADE'S

DOUBLE DENSITY

KIT: S249.00Assmb. & Tstd: $299.00

■ Single or Double DensityRecording

■ Full Size or Mini Floppy

■ CP/M Compatible in eitherdensity

■ Programmed Data Transler,no DMA

■ Controls up to 8 drives

■ IBM format in either density

■ Software SelectableDensity

■ This controler utilizes the proven reliability of the IBMstandard format as well as the lastest phase-locked-loop fordata separation ■ All clocks are generated from an on-boardcrystal oscillator ■ Right precompensation is used to enhancedata recovery reliability in the double density mode ■ Densityselection is entirely transparent to the user ■ Single and doubledensity diskettes can be mixed on the same system

•mm^mm

LEEOEX MONITOR

• 12" Black and White

• 12MHZ Bandwidth

e Handsome Plastic Case

$139.00

CABLES

INTEGRAL DATA SVST€MS MOD6L 440

$995.00

MINI-DISK CABLE KIT: To connedtwo 5 1/4" drives to disk controllerboard. Contains assembled and tested5 long signal cable with 34 pin edgeconnectors. Also includes cables andconnector tor D.C. power supply.WCA-3431K $34.95

8" DISK CABLE KIT: To connect two 8"disk drives to edge-type controller(e.g.. Versafloppy. Double-D).'Contains assembled and tested signalcable with connectors plus cable andconnectors lor both A.C. and D.C.power.WCA-5031K $38.45

8 DISK CABLE KIT: Same as WCA-5031K except controller end of signalcable uses "Header" type connector,e.g., for Tarbell Controller.

WCA-5032K $38.95

SIGNAL CABLE ONLY: For one 5 1/4"drive to edge type controller connector(e.g., TRS-80 to Vista Disk Drive)

WCA-3421A $24.95

Same as Above, except for two 5 1/4"drives. WCA-3431A $29.95

TH€ PAP€R TIG6R

PRINT6R

I Up to 198 CPS

I 1.75" to 9.5" Adjustable Tractor Feed

I Parallel and Serial Interface

I 96 Character ASCII Set 4&3S*

I 132 columns- 6 or 8 lines/inch ■•liVr

I 6ight software selectable Character sizesW..

I 110. 300, 600, 1200 Baud Rate

fOfl TH€ GRAPHIC OPTION WITH 2K, RDD $199.00

o o o o o

SPECIAL

5'A" Diskettes$29.95/8ox of TGN

SP€ClfV SOFT, 10, or 16 S€CTOR

8" SINGLC SID€, SINGL6 DENSITY$34.95/Box of T€N

Plugboards

8800VUniversal/Microcompu-ter/Processor PlugboardUse With S-100 Bus.Complete With Heat Sink& Hardware.

5.3" x 10" x 1/16"

$19.95

8801-1Same as 880V ExceptPlain, 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" ... $7.65

3662-2 9.6" x 4.5" $11.45.

Hi-Density Dual-ln-LlnePlugboard For Wire WrapWith Power & Grd. BusEpoxy Glass 1/16" 44 PinCon Spaced .1563682 9.6" x 4.5".. $10.973682-2 6.5" x 4.5. $9.81

Gen Purpose O.I.P.Boards With Bus PatternFor Solder Or Wire Wrap.Epoxy Glass 1/16" 44 PinCon. Space .1563677 9.6" X4.5".. $10.903677-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

DISK DRIVES

MPI B51 5 1/4" $295.00

Single or double density, up to 40tracks, track to track access timeonly 5ms.

MPI B52 5 1/4" $450.00

Double head version of MPI B51

Shugart SA400 5 1/4" $325.00

Single Density, 35 Track

Siemens FDD100-8 8" $495.00

Shugart 801R replacement, Single ordouble density, runs cooler andquieter.

Siemens FDD200-8 8" $575.00

Double head version of FDD100-8capable of double density, doublesided storage.

Shugart 801R 8 " $875.00

Hard or soft sectored, 400K BYTEdrive. .

NOVATION CAT

ACOUSTIC MODCM

Features Include: 300 Baud

Answer/Originate, Sell 103, Comes

Assembled ond Tested

MidsummerSpecial

SI 89.00

■*■■ Computer Products

4901 W. ROSECRANS AVE., HAWTHORNE, CALIFORNIA, 90250

ORDER TOLL FREE800-421-5809 Wg£ 800-262-1710

■■ INSIDE CALIFORNIA

CONTINENTAL U.S.

WRITE FOR OUR FREE CATALOG

Cash, checks, money orders, and credit cards accepted.Minimum order: S10 00. Calitornia residents add 6 sales laxMinimum shipping and handling charge: $2.50. Discountsavailable at OEM quantities

■ Two Drives Siemens/GSI 8" Floppy

■ Power Supply for Above

■ Jade Double DensityBoard (KIT)

■ CP/M Operating Systemwith Basic E

■ Package of 10 Blank 8"Diskettes (Double Density)

■ Includes InterfaceCables

Price if Purchased

Separately

S1544.95

Jade Special Package

Deal

$1225.00

FLOPPY DISK INTERFACE

JADE FLOPPY DISK (Tarbellboard)

Kit $195 00

Assembled & Tested S250 00

S.O. Computer ProductsVERSA-FLOPPY

K" $159.95

Assembled 8, Tested S239.00

uista V80mini dish

SYSTEMFOR TRS—80$395.00^

Includes disk drive, power supply,regulator board, and compact case.The V-80 otters 23° g more storagecapacity. Simply take it out of the boi,plug in the cable, and it s ready to run.Requires 16K. Level II. expansioninterlace.

Interface Cable .. $24.95

Circle 195 on inquiry card.

BYTE August 1979 249

Circle 340 on inquiry card.

4002 -

4007 -

4009 -

4010 -

C/MOS (DIODE CLAMPED)

4023 - 32 4089 - '

22 4023 -

4049 -

4060 -

4061 -

4055 -

4518 -

48» -T4C00-T4C02-74COB-74C10-74C20-74C42-74C73-

74C83-74C86-

74C90-

PRINTED CIRCUIT BOARD

4" x 6" DOUBLE SIDED EPOXY

BOARD 1/16" thick

$.60 ea

7WATTLD 65LASER DIODE IR Sa95

2N 3820 P FET $ 452N 5457 N FET $ 452N2646 UJT s 45ER 900 TRIGGER DIODES 4 S! 00?IM 6023 PROG UJT $ 65MINIATURE MULTI-TURN TRIM POTS100, IK, 2K, 5K, 10K, 20K, 50K,200K, IMeg, 2Meg, $ 75 each 3/S2.00

25 watt Infra Red Pulse

Laser Diode (Spec sheet included! $24.95

VERIPAX PC BOARD $12.95

Our new Prototyping is a hi density 4.3** x 6»"single sided 1/16" opoxy board It wilt hold 4024, 16 (34 units). 14 ■"- B pin IC's. There arethree busses, »5V, ground and a floating bussThere is a pad for a TO-220 regulator. There is a22 pin edge connector with , 1 56" spacing,

FP 100 PHOTO TRANS S .50

RED,YELLOW,GREEN

LARGE LED's. 2" 6/$l .00

TIL-118OPT0-ISOLATOR $.75

MCT-6 0PT0 ISOLATOR $.80

1 WATT ZENERS: 3.3, 4,7, 5.1, 5.6,9.1,

10, 12, 15, 18, or 22V 6/S1.00

MCM 6571A 7 x 9 character gen . . $ 10.75

UNIVERSAL 4Kx8 MEMORY BOARD KIT$69.95

32-2102-1 fully buffered. 16 address Unas, onng for any 4 of 64

■ ■ f 8 8.

TRANSISTOR SPECIALS

2N6233-NPN SWITCHING POWER' $ 1-95MRF 8004 a CB RP Transistor NPN $ 75

2N3772 NPM Si TO 3 $1.00

2N1546 PNP GE TO-3 $ .75

2N4908 PNP S. TO 3 S I 00

2N5086 PNP S. TO 9? 4 S 1.00

2N3137 NPN Si RP $ .55

2N3919 NPN Si TO-3 RF S 1 50

2N1420NPNSITO5 3/$ 1.00

2N3 76 7 NPN Si TO 66 . . . .S .70

2N2222 NPN Si TO-18 . . 5 S 1.00

2N3055 NPN Si TO 3 . S .50

2N3904 NPN Si TO 92 . 6/$ 1.00

2N3906 PNP Si TO 92 6/$ 1.00

2N5296 NPN Si TO 220 . . S 50

2N6109 PNP Si TO 220 $ .55

2N3(i:i« PNP Si TO 5 . . 5 S 1 00

MPSA 13 NPN Si 4/$ l .00

TTL IC SERIES

TANTULUM CAPACITORS

■CRYSTALS $3 4Sea

2.000 MHz 6.144 MH;4.000 MHz 8.000 MH;3.57 MHz 10.000 MH;5,000 MHz 20.000 MH;6.000 MHz

IIBBON CABLE

iT (COLOR CODEDI

*30 WlREi cond. - .50/per loot

CTS 206-8 eight position dip switch $1.60

CTS 206-4 four position dip switch $1

LIGHT ACTIVATED SCR's to 18. 200,V 1A. .$.70

SILICON SOLAR CELLSr diameter ,4V at 1 AMP $10.00

FND 359 C.C. .4" $ .60 LED READOUTSFCS8024 a digit DL-704 C.A. .3" $ .75

C.C. 8" display $5 95 DL 747 C.A. 6" $1.50FND 503 C.C .5-'$ 85 HP3400 .8"CC $1.95DL°7<M03""C.C5"$ 85 HP34G5 .8"CA $1.95

Silicon Power Rectifiers

• :-'r;.

3A

'\G M

24QA

100 06 14 .35 .90 3 10 5.00

200 0 7 .20 -"0 1.30 4.25 6.50

400 09 25 -65 1.50 6.50 9.5Q

600 M_ 30 .80 2.00 8 50 12.50

800 '5 35 1.00 2.50 10 50 16.5010Q0 20 45 1.25 300 12 50 20.00SAD 1024a REDICON 1 024 stage analog •'Buck"B'igaile sn^t register. S14.95

IN 4148 ifN914t 15/S1.00""

.1 ut 25V ceramic caps 16/81.00. $5.00/100

RS232 DB 25P male $2 95

CONNECTORS DB 25S female. S3.50

HOODS $1.50

REGULATORS

323K - 5V 3A , .$ 5.75 340K ■ 12. 15

309K $ 1,60 or 24 V .... $ 1 50

723 $.50 340T-5,6,8, 12

320T- 15, 18 or 24V$ 1.40

5, 12, or 15 V 78 MG $ 1.35

__ ■ ■ ■$ 1.40 79 MG $ 1.35

DATA CASSETTES 1/2 HR $ .95

14 pin headers

MM5387AM7001 . .MM5369 .

CLOCK CHIPS

NO. 30 WIRE WRAP WIRE SINGLESTRAND 100' $1.40

.22UF 35V 5/$ 1.00.47UF 35V 5/81.00.68UF 35V5/$1.001UF 35V 5/S1.002.2UF20V5/$1.003.3UF 20V4/$1.004.7UF 15V 5/$ 1.00

mmm

6.8UF 35V4/$1.0010UF 10V $ .2522UF 25V $ .4015UF 35V 3/$1.0030UF 6V 5/$ 1.00150UF 15V $ ,9547UF 20V $.35

68UF 15V

LINEAR CIRCUITSLM 201 -.75

LM 301*748 25LM30T - 30

LM 308 - 7SLM3I1 - 75

LM31B - 1 70

rf^^OZOFF 20 OFF

YOUR OWN TRS-80 SYSTEM AT TREMENDOUS SAVINGSOTRS-80 Complete System DISK DRIVES NOW IN STOCK!

Includes: CPU/Keyboard, Power Supply,Video Monitor, Cassette Recorder, Manual,and Game Cassette.

©Line Printer©Mini Disk SystemOC-10 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 II 16 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 Kit-(16K)

$ 199.00

$ -98.00

•FREE INSTALLATION

Verbatim Diskettes ea.

$ 5.95

$ 4 95

3

$ 17.89

$ 12.00

10

$ 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 (or your system

• RAM—tests for Random Access Memoryerrors

• ROM—tests for Read Only Memory errors

• CPU—tests for errors in Processor func-tions

• I/O—tests for Input/Output errors in peri-pheral equipment

The one "necessity" for anyTRS-80 system—use as pre-ventive maintenance for de-tecting circuit malfunctionsand as a diagnostic tool forpinpointing hardware problems.$34. 95

There are new developments every day—write or call for the latest information.

Outlet Hours: Mon.-Fri.; 9 am.-Sat. 12—5 pm.

-7 pm.

wsfo

777 Henderson Boulevard N-6Folcroft Industrial ParkFolcroft PA 19032(215) 461-5300

Classroom Instruction offered in Level II Basic—$49.95; and DOS/Disk Basic—$69.95

THiiimiTMininuiiniim

250 BYTE August 1979

Circle 384 on inquiry card.

10-DAY FREE TRIAL

$100 FREE ACCESSORIESWITH 16K Or 32K PET

1&

T/C 2001 PET TERMINAL OPTION

SAVE$69

4K - Keyboard C $ 595

8K - Keyboard C $ 795

16K • Keyboard B $ 995

16K • Keyboard N $ 995

32K • Keyboard C $1195

32K - Keyboard B $1195

32K - Keyboard N $1195

C — calculator keyboard (only version with tape deck)B — large business keyboard without graphics symbolsN — large keyboard with graphics symbols

PET ACCESSORIES

Commodore Dual Floppy Disk Drive $1295.(

New1 PET Terminal Package $69 (

Second Cassette — from Commodore $95.C

Commodore PET Service Kit $30.C

Beeper - Tells when tape is loaded $24.E

Petunia - Play music from PET $29.S

Video Buffer - Attach another CRT $29. <

Combo - Petunia and Video Buffer $49.<

New Serial Printer Interface for PET S79.S

Integral Data Printer w/new interface $878.S

PET • Compatible Selectnc in Desk S895.C

TTY KSR-33 Screen Printer for PET YTffB. S395.COriginate'Answerback Modem for PET T". ' S320.C

Bi-directional FtS-232 Interface S280.C

Betsi 4-slot S-100 Motherboard $160.0

S-100 PET Interface was $289.00 SALE $99.C

apple II

••200 FR€€ flCC€SSORI€S|

Buy a 48K Apple II. mention this ad and take $200 inaccessories free (if ordered together). This offer is goodfor $150 on 32Kand$100 on 16K Apple ll's Now you canenjoy more of the best for less.

16K Apple II — $1195 (take $100 in tree accessories)32K Apple II — $1345 (take $150 in free accessories)48K Apple II — $1495 (take $200 in free accessories)

Apple II Accessories

Centronics Printer Interface $225

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

4*£ CENTRONICS PRINTERS |tiy UP TO 76% OFF LIST

We had purchased an entire truckload of Centronics printers and terminals andwhen the semi arived we were amazed. Used Centronics were stacked from floorto ceiling and from end to end! We realized that we have to move these terminalsand printers fast. So we're offering these reconditioned Centronics at incrediblylow prices. However, some models are in limited quantities and the 779 and 703models are already gone! Call today to get in on this great opportunity.

MODEL

301

306

306C

306SC

30B

330

500

500D

501

508

530

700

701

703

761

SPEED(1pm)

70-17560-15055-14555-145

165

16540-150

12050-175

165

16513-9025-12070-370

60

WIDTH(cols)

80

8080-13280-13280-13280-132

132132-218

132

132

132

132

132

132

132

PRINTMATRIX

Character ElongationCharacter ElongationVariable DensityVariable DensityTeleprinterTeleprinter, 96 char.Character ElongationMultiple FormCharacter ElongationTeleprinterTeleprinter, 96 Char,Character ElongationChar. Elong . BidirectionalChar, Elong. BidirectionalTeleprinter. Bidirectional

CENTRONICSLIST

$2,2752.0552,3603,9503 1002.7002,9953.2003,3154,11029501,5201.8152,8051.850

90-DAY1WORKING' WARRANTY

PRICE PRICE

$595595695695715550750750750775900660695

$695

695

795

795

815

650

850

850

850

875

1,000

1,075

1.175

SOLD OUT

695 1025

"Model 761 includes Keyboard

779 21-90 80-132

780 21-90 80

781 43-120 80

; x 7 Variable Density 1,250

j x 7 Character Elongation 1 905

5x7 Char, Elong Bidirectional 1.980

All machines require a parallel interface except the 330,530 & 761 models which require serialAll machines feature 64 character ASCII code unless otherwise indicated

995

1 0951,125

1 Guaranteed in working condition when shipped Comes with a 10-day free trial

2 Comes with a 10-day tree trial and our 90-day limited warranty.

INTERFACES AVAILABLE FORCENTRONICS PRINTERS

TRS-80 Serial versions can use

the GPA TRS-80 interface($69.95 from NCE) or theRadio Shack Expansionunit. Parallel versions usethe Radio Shack Expan-sion unit.

PET Serial Versions can use

the GPA PET interlace($79.95 from NCE)

APPLE Serial versions can use

the Apple Serial Card($195.00 from NCE) Paral-lel versions can use theApple Centronics Card($225 00 fron NCE)

SORCERER

S-100COMPUTERS

CRTTERMINALS

No hardware is requiredfor serial versions a cable($24.95 from NCE) is re-quired for parallel ver-sions.

Cromemco and othersmake interfaces for bothparallel and serial ver-sions of the CentronicsPrinters.

Our Centronics Printerscan be connected to aHazeltine 1510 or 1520with a cable ($50 fromNCE). Contact us for usewith other terminals

NCE/CompuMart

<&

SELLING COMPUTERSBY MAIL SINCE 1971

1250 North Main Street, Department BY89P.O. Box 8610 Ann Arbor, Michigan 48107

IMPORTANT ORDERING INFORMATION

All orders must include 4% shipping and handling. Michigan residentsmust also add 4% for state sales tax. All foreign orders (except Canada)need an additional 10% for shipping and handling. We cannot processyour order without these.

(313)994-3200

V£l

Phones open from 9:00 a.m. to 7:00 p.m. EST Monday-Friday, 10:00 a.m. to5:00 p.m. Saturdays • P.O.'s accepted from DAB rated companies — ship-ment contingent upon receipt of signed purchase order • Open accountsinvited — call for credit application • Most items in stock for immediateshipment — call for delivery quotation • Sorry, no C.O.D.'s • All pricessubject to change without notice • In the Ann Arbor area? Retail store open11:00 a.m. to 7:00 p.m. Tuesday-Friday, 10:00 a.m.to 5:00 p.m. Saturdays(Closed Sunday and Monday)

Circle 284 on inquiry card.

BYTE August 1979 251

INTEGRATED CIRCUITS MICROPROCESSOR LED'S SOCKETS CAPACITORS DIODES TRANSISTORS RESISTORS POTENTIOMETECO

z3

<

co

oc

o

I-o

Ul

zzou

<

co

>-ocu

CO

Ui

X

u

s

CO

m

5ui

<

CO

<o

tooc

UJ

0-

o

CO

I-

co

oo

CO

a.

(A

UJ

I-

CO

OCIU

D-JO

I

UJCO

o

LL

co

z

CO

l-<

Ui

XCO

oco

H

o

UI

zzou

CO

-J<

>■OC

u

CO

Ul

X

u

I-

5

CO

im

electronic components

One-Stop Componentand Kit Center

JC600 HexadecimalEncoder Kil

FULL 8 BIT LATCHED OUTPUT - 19 KEY BOARD

The JE600 Encoder Keyboard provides two separate hexadecimal digitsproduced from sequential key entries to allow direct programming for8 bit microprocessor or 8 bit memory circuits. Three (3) additional keysare provided for user operations with one having a bistable output avail-able. The outputs are latched and monitored with 9 LED readouts. Alsoincluded is a key entry strobe.

FEATURES:

• Full 8 bit latched outputfor microprocessor use

• 3 User Define keys with onebeing bistable operation

• Debounce circuit providedfor all 19 keys

• 9 LED readouts to verifyentries

• Easy interfacing with standard16 pin IC connector

• Only +5VDC required foroperations

NOW!!! OVER 300 AUTHORIZED DISTRIBUTORS ... HERE'S JUST A SAMPLING:

ALABAMA

Mobile

ALASKA

Anchorage

ARIZONA

CALIFORNIA

AntiochBei I flowerBerkeleyFul/ertonMission ViejoMontereyOcean sidePalo AltoPasadenaSacramentoSacramentoSan CarlosSan DiegoSan FernandoSan FranciscoSan Francisco

San Luis ObispoSanta AnaSanta CruiSanta MariaSanta MonicaSuisun CitySunnyvaleVallejo

Walnut CreekCOLORADO

Durango

CONNECTICUT

Avon

Bridgeport

DELAWARE

New Castle

FLORIDA

Ft. Lauderdale

H,aleah

GEORGIA

Atlanta

Columbus

Stone Mountain

HAWAII

Honolulu

IDAHO

Idaho Falls

ILLINOIS

Evanston

Grovel and

Mount Prospect

Lafayette Radio Electronics

Yuma Electronics

Heathkii Electronic Center

Radio Mart

Earl's Hobby Shop

Al Lasher Electronics

Orvac Electronics Inc.

Tower Electronics Corp.

Zackit

Electronic Center

Zack Electronics

Dow Radio Inc.

Heathkit Electronic Center

Zack.t

J 8 H Outlet Store

Radio Shack A.SC.-Mira Mesa

San Fernando Electronics

Zack Electronics

Zenith Distributing Corp.

United Radio & TV Supply

Mid-State Electronic Supply

Quality Electronics

Santa Crui Electronics

Caps Electronics

Mission Control

Byte Shop

Sunnyvale Electronics

Zackit

MicroSun Computer Center

Delaware Amateur Supply

Atlanta Computer Mart

Radio Wholesale

Coleman's Electronics

Audiotronics

Tri-State Electronic Corp.

Moyer Electronics

Tri State Electronic Corp.

ILLINOIS ICont

nued)

MISSOURI

RHODE ISLAND

Oak Park

Spactronics

El Dorado Springs

Beckman Electronics

Cranston

Jabbour Electronics City

Rock ford

Computer Store of Rockford

MONTANA

Pawtucket

Jabbour Electronics City

Schaumburg

Data Domain

Billings

Conley Radio Supply

Warwick

Heathkit Electronic Center

INDIANA

Bo reman

Electronic Service 8 Dist.

TENNESSEE

East Chicago

Aero Electronics Corp.

NEBRASKA

Chattanooga

William's Data Comp Div.

E vans vi lie

Hutch 8 Son Inc.

L mcoln

Altair Computer Center

Clarksville

Masstronics

IOWA

Lincoln

Scott Electronic Supply Inc.

Cooke ville

Wagnons Stereo Center

Indianola

Electronic Limited

Omaha

Heathkit Electronic Center

Knox vi lie

Eastern Micro

KANSAS

Omaha

Omaha Computer Store

Nashville

Electra Distributing Co

Sal ma

Electronics, Inc.

NEVADA

TEXAS

Wichita Amat

ur Radio Equipment Company

Las Vegas

Century 23

Amarillo

Computer Encounters Inc.

KENTUCKY

NEW JERSEY

Dallas

CompuShop

Lexington Radio-Electronic Equipment Co.

Brick town

Radio Shack Associate Store

Dallas

Heathkit Electronic Center

Louisville Peerless Electronic Equipment Co.

Cherry Hill

The Computer Emporium

Houston

CompuShop

LOUISIANA

Fair Lawn

Heathkit Electronic Center

Houston

Interactive Computers

Baton Rouge

Pelican Electronics

Ocean

Heathkit Electronic Center

San Antonio

Appliance & Equipment Co.

Houma

Pelican Electronics

Pennsauken

Lafayette Radio

San Antonio Sherman Electronics Supply Inc.

Metane

Pelican Electronics

Pompton Lake

Computer Center of N.J.

UTAH

MARYLAND

Ramsey

Typetronic Computer Store

Mid vale

Heathkit Electronic Center

Annapolis

J & M Electronics

NEW MEXICO

Provo

Alpine Electronic Supply Co.

Baltimore

Harco of Baltimore

Las Cruces

Mannie's Electronic Supply

VIRGINIA

Churchville

Churchville Electronics

NEW YORK

Alexandria

Computer Hardware Store

Damascus

Damascus CB

Endwell

Computer Tree Inc.

Alexandria

Heathkit Electronic Center

La Vale

J 8 M Electronics

Jericho

Heathkit Electronic Center

Blacksburg

Scotty's Radio 8 TV Inc.

Rock ville

Computer Workshop

Kingston

Greylock Electronics

Charlottesville

Graves Electronics

Rock ville

Heathkit Electronic Center

New York

Computer Mart of New York

Falls Church

Crossroad Elect ionics

Towson

Baynesville Electronics Inc.

North White Plain

Heathkit Electronic Center

Hampton

Lafayette Radio

Towson

Heathkit Electronic Center

Rochester

Heathkit Electronic Center

Norfolk

Avec Electronics Corp.

MASSACHUSETTS

Troy

Trojan Electronics

Richmond

Avec Electronics Corp.

Peabody

Heathkit Electronic Center

Utica

Am-Com Electronics

Roanoke

The Computer Place

Pittsfield

Pittsfield Radio Co. Inc.

NORTH CAROLINA

Virginia Beach

Heathkit Electronic Center

Walt ham

Computer Mart Inc.

Boone

Alpha Digital Systems

WASHINGTON

Welle si ey

Heathkit Electronic Center

Durham

Futureworld

Progress Electronics

Worcester

RM Electronics Inc.

Greensboro

Byte Shop

Moses Lake

Ron's Electronics

MICHIGAN

Raleigh

Byte Shop of Raleigh

Pasco

Riverview Electronics

Ann Arbor

Eric Electronics

NORTH DAKOTA

Seattle

Amateur Radio Supply

Ann Arbor

Wedemeyer Electronic Supply

The Computer Company

Seattle

CCom

Canton

Electronic Connection

OHIO

Seattle

Empire Electronics

Clawson

Radio Supply 8 Engineering

Bucyrus

Mead Electronics

Spokane

Personal Computers

Detroit

Heathkit Electronic Center

Cincinnati

Heathkit Electronic Center

Tacoma

C & G Electronics

East Detroit

Heathkit Electronic Center

Columbus

Heathkit Electronic Center

WEST VIRGINIA

East Lansing

Eric Electronics

Reynoldsburg

Universal Amateur Radio

Morgantown

Electro Distributing Co

Flint

Hobby Electronic Center

Youngstown

Rots Radio Company

Wheeling

Lafayette Radio

Garden City

Computer Center

OKLAHOMA

WISCONSIN

Grand Rapids

Radio Parts Inc.

Oklahoma City

Bits. Bytes & Micros

West Allis

Olson Electronics

Lansing

Fulton Radio Supply Co.

Oklahoma City

Heathkit Electronic Center

CANADA

Lansing

Wedemeyer Electronic Supply

OREGON

Alberta (Calgary)

The Computer Store

Livonia

Eric Electronics

Albany

Oregon Ham Sales

Ontario (Toronto}

House of Computers

Livonia

Radio Supply 8 Engineering

Coos Bay

Her rick Electronics

Ontar:o (Willowdalel Home Computer Centre

Midland

Computronix Corp,

Portland

Portland Radio Supply

Quebec (Montreal

Wang's Microcenter

Niles

Niles Radio Supply

Salem

Computer Pathways

ENGLAND

Oak Park

Eric Electronics

PENNSYLVANIA

Berkshire

NewBear Computing Store

Sterling Heights

Eric Electronics

Drums

Mr, D's Digital Electronics

GUAM

Marianas Electronics

MINNESOTA

Microcomputer Systems Inc.

PANAMA

Duluth

Northwest Radio of Duluth

Philadelphia

Heathkii Electronic Center

Panama City

Sonitel. S.A.

Hopkins

Heathkit Electronic Supply

Pittsburgh

Heathkit Electronic Center

SINGAPORE

Inter-trade (PTEI Ltd.

St. Paul

Heathkit Electronic Supply

York

G.Y.C. Company

JIM-PAK®

ASK YOUR ELECTRONICS STORE TO STOCK JIM-PAK® TODAY!!1021 HOWARD AVENUE, SAN CARLOS, CALIFORNIA 94070 • (415)592-8097

RS

CO

zco

(-<

Ul

XCO

cco

zzou

CO

>ccu

CO

Ul

X

u

s

CO

00

UlCOCO

<

<

CJ

CO

oc

5

Q

CO

CO

OOm

CJco

co

OC

UlD

-I

o

Xuico

U.CO

*:

z

CO

t-<

Ul

X

CO

oco

I-o

Ul

ou

<

1-co>oc

CJ

CO

Ul

X

u

3

CO

INTEGRATED CIRCUITS MICROPROCESSOR LED'S SOCKETS CAPACITORS DIODES TRANSISTORS RESISTORS POTENTIOMETERS

252 BYTE August 1979

Circle 203 on inquiry card.

Circle 296 on inquiry card.

COMMERCIAL GRADE PERIPHERALS FOR THE MICROCOMPUTER

PRINTER.TERMINALS

('":T::.iH

MODEMS

TAPE DRIVES

•ASCII SELECTRIC PRINTER/TYPEWRITER: Why settle for less thanletter-quality printout from your computer? Refurbished IBM Model 725can 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 to8 tables for use with various type spheres. Feedback signals on completion ofeach print cycle insures fastest printing speed {15 cps.)

Price: programmed w/3 translation tabjes (one type sphere): $695.00

•SELECTRIC I/O TERMINALS (by GTE/Information Systems). Both ASCII& IBM code versions with microcomputer interface software & hardware (RS-232 connector.) Cassette drive models permit up to 2400 baud data transferrate as well as off-line data storage, use as memory typewriter, & use as dataentry device for office personnel familiar with Selectric typewriters but notcomputers. Wide-carnage, interchangeable type spheres; optional built-inmodem. 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 1550 "DAISY-WHEEL" TERMINAL: Refurbishedletter-quality terminal with Hytype I printer (30 cps), full ASCII key-board, 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, completeand tested. Requires power supply, case & mCPU interface. 15 day return

privilege - no other warranties. LIMITED QUANTITY! $750.00

-6' Ribbon cable & connector for printer Main Logic PCB $10.00

— 14-pin Winchester connector & 1 8" power supply cable $5.00

-"As-is" spare printer PCB's for parts (Logic, Heat Sink, Control): ea. $20.00-New Pin-feed Platen (14"): $50 if bought w/printer; separately . . . $100.00

• POS 103/202 "MIX or MATCH" MODEM: BELL 103 and/or BELL 202FREQUENCIES: Unique POS control design permits use in one housing ofboth Bell-compatible 103 (0 - 300 baud) and 202 (0 - 1200 baud) modemmodules 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-answerDAA (sold separately.) FULLY ADJUSTED; no special tools required.3,000 mite 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 W mag tapes.

Software provided for 8080 or 2-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:

a)Model 565P for 15" Carriage IBM Selectrics (new): $50.00

bIModel K81 for QUMEor DIABLO Hytype I or II printers (new): .... $90.00

•POWER SUPPLIES for Disk Drive, mCPU, tested under load shown:-No. 519 (w/fan Si AC cord): +5V reg., +12V reg., +24V, @4A (101b.). .$39.95-LAMBDA No. LMEE5w/OV protect: +5V reg. » 25A (35 lb.) $69.95

NO RISK! 15 DAY APPROVAL ON ALL MAIL-ORDERS-

Full documentation included PLUS interface instructionswhere indicated. All equipment is shipped insured FOBPalo Alto within 14 days after check clears or COCorder is received. Prices may change without notice.

J£ PACIFIC OFFICE SYSTEMS, INC. tt

m 2600 El Camino Real, Suite 502 ffi

Palo Alto, Calif. 94306

(415) 321-3866

Call or write for details, quantity prices, catalog. 1 5 dayreturn privilege PLUS 90 day no charge replacement ofdefective parts. All orders shipped from stock. No backorders, no substitutions. M/C & VISA accepted.

ProComp/New England

120 Boylston Street Fourth Floor

Boston. MA/02116 Phone 617-482-4450

HOURS: M-F 10-5, S 10-4

Seattle 16K Static RamMeasurement Systems 48 64K Dynamic RamMicromation Doubter Disk ControllersComputalker CT-1Cromemco Single Card ComputerAND MORE

Compucorp 625 Mkll & 665

Imsai VDP42 & VDP80

Complete Double Density Disk Systems

Graham-DorianStructured Systems GroupNational Software ExchangeSelector III...AND MORE

DiskettesStorage BindersPrinter Ribbons

a SPECIAL BARGAINS ON USED EQUIPMENT!!!

n Special prices on these and other in-stock items during our Grand Opening Salenow through September 30 th.

□ Write, call or stop in tor our catalog and Grand Opening Sale Price List.

□ VISA andMASTERCHARGE

Circle 69 on inquiry card.

BYTE August 1979 253

Electrolabs new

POB 6721, Stanford, Ca 94305 CATALOGUE

TLX

""415-321-5601800-227-8266345567

FLOPPY SYSTEMS

8" Siemens FDD 120-8 Drive

All Siemen's options includedin this drive which can be con-figured hard or soft and singleor double density. (Others giveonly stripped unit) $399.00

"Power One" Model CP206Floppy Power Unit For twodrives going full-out, and poss-ably more on less severe service.2.8A@24V, 2.5A@5V, 0.5A@-5V.Beautiful quality. $99.00

DISKETTES (Standard)

<$S

8"

SV,"

Boxed 10Boxed 10

S39.00S34.95

Tarbell ("It Works") Interface(Includes cable set for 2 drives)$265.00 BUT ONLY $219.00with purchase of two drives.

Cable Kits 10' with 50 cond.cable and connectors and alsoMolex connectors and powercable. For one drive: $27.50For two drives: $33.95, andfor three drives: $38.95

CABINETS for FDD120 and801 R Drives, or CP206 powersupply. Matte finish in marresistant black epoxy paint.

ng type design. $29.99

Crystals

Integrated circuits

Keyboards

Lasers

LSI-11

Media

RAMs

S-100 Components

Z-80 Components

ELECTRO LABS is proud to announce appointment asDISTRIBUTOR by CI I-Honeywell Bull.

PRICE BREAKTHROUGH on SUPERDISK 10MBY! $3495.00

General purpose controller (requires 2 parallel I/O ports) 1500.00

S-100 Controller (DMA) 995.00

"RL-01/RK-05" surrogate 1900.00

(transparent to RT, RS, RX)

SOFTWARE: (CP/M Compatible)

SUPERD0S1 i iffliifrfff

(Z-80) $695.00

MICR0D0S1

(TRS-80)... $199.00Power supply (switching)

$395.00

Enclosure (desktop)

$ 99 00 * Removeable Media Cartridge Drive

'■ ' ■ '

Used Sylvania 12" Video Moni-tors. Composite video 15mhz,115vac, 50/60hz New Tube. Asshown $109 OEM style withoutcase: $99, Anti-glare tube optionadd $12. Specify p4 or p39

5V4"MINI-FLOPPYDRIVE$299.00

- single or double dens-ity - quick access time

- high reliability &durability

Mini-floppy CABLE KIT:for TRS-80 or yourTarbell controller.$24.95

Daisy Wheel PrintersQume Sprint: 3\45

Print wheels $8.95 Ribbons $5.95

OEM Style mechanism $1399.00

ESAT 200B

-»=

BILINGUAL 80x24

COMMUNICATING

TERMINALScrolling, full cursor, bell,8x8 metrix, 110-19,200baud. Dual Font Appli-cations. 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 makean entire system.

254 BYTE August 1979

Circle 115 on inquiry card.

RCA Cosmac Super Elf Computer $106.95

Compare features before you decide to buy anyother computer. There is no other computer onthe market today thai has all the desirable bene-fits of the Super Elf for so little money. The SuperElf is a small single board computer that doesmany big things. It is an excellent computer fortraining and for learning programming with itsmachine language and yet it is easily expandedwith additional memory, Tiny Basic. ASCIIKeyboards, video character generation, etc.The Super Ell includes a ROM monitor for pro-gram loading, editing and execution with SINGLESTEP for program debugging which is not in-cluded in others at the same price. With SINGLESTEP you can see the microprocessor chip opera-ting with the unique Quest address and data busdisplays before, during and after executing in-structions. Also, CPU mode and instruction cycleare decoded and displayed on 8 LED indicators.An RCA 1861 video graphics chip allows you toconnect to your own TV with an inexpensive videomodulator to do graphics and games. There is aspeaker system included for writing your ownmusic or using many music programs alreadywritten. The speaker amplifier may also be usedto drive relays for control purposes.A 24 key HEX keyboard includes 16 HEX keysplus load, reset, run, wait, input, memory pro-tect, monitor select and single step. Large, on

Super Expansion Board with

This is truly an astounding value! This board hasbeen designed to allow you to decide how youwant it optioned. The Super Expansion Boardcomes with 4K of low power RAM fully address-able anywhere in 64K with built-in memory pro-tect and a cassette interface. Provisions havebeen made for all other options on the sameboard and it fits neatly into the hardwood cabinetalongside the Super Elf. The board includes slotsfor up to 6K of EPROM (2708, 2758. 2716 or Tl2716) and is fully socketed. EPROM can be usedfor the monitor and Tiny Basic or other purposes.A IK Super ROM Monitor S19.9S is available asan on board option in 2708 EPROM which hasbeen preprogrammed with a program loader/editor and error checking multi file cassetteread/write software, (relocatible cassette file)another exclusive from Quest. It includes registersave and readout, block move capability andvideo graphics driver with blinking cursor. Breakpoints can be used with the register save featureto isolate program bugs quickly, then follow withsingle step. The Super Monitor is written withsubroutines allowing users to take advantage ofmonitor functions simply by calling them up.

board displays provide output and optional highand low address. There is a 44 pin standardconnector for PC cards and a 50 pin connector forthe Quest Super Expansion Board Power supplyand sockets for all IC's are included in the priceplus a detailed 127 pg. instruction manual whichnow includes over 40 pgs. of software info, in-cluding a series of lessons to help get you startedand a music program and graphics target game.Remember, other computers only offer Super Elffeatures at additional cost or not at all. Comparebetore you buy. Super Ell Kit $106.95, Highaddress option $8.95, Low address option$9.95. Custom Cabinet with drilled and labelledplexiglass front panel $24.95. Expansion Cabinetwith room for 4 S-100 boards $41.00. NiCadBattery Memory Saver Kit $6.95. All kits andoptions also come completely assembled andtested.

Ouesldata a 12 page monthly software publica-tion for 1802 computer users is available by sub-scription for $12.00 per year.

Attention Eif Owners

New products in hardware and softwarecoming soon.

Tiny Basic cassette $10.00, on ROM $38.00,original Elf kit board $14.95.

Cassette Interlace $89.95

Improvements and revisions are easily done withthe monitor. If you have the Super ExpansionBoard and Super Monitor the monitor is up andrunning at the push of a button.Other on board options include Parallel Inputand Output Ports with full handshake. Theyallow easy connection of an ASCI I keyboard to theinput port. RS 232 and 20 ma Current Loop forteletype or other device are on board and if youneed more memory there are two S-100 slots forstate RAM or video boards. A Godbout 8K RAMboard is available for $135.00. Also a 1K SuperMonitor version 2 with video driver for full capa-bility display with Tiny Basic and a video interfaceboard Parallel I/O Ports $9.85, RS 232 $4.50,TTY 20 ma l/F $1.95, S-100 $4.50. A 50 pinconnector set with ribbon cable is available at$12.50 for easy connection between the SuperElf and the Super Expansion Board.The Power Supply Kit for the Super ExpansionBoard is a 5 amp supply with multiple positive andnegative voltages $29.95. Add $400 for shipping.Prepunched frame $7.50. Case $10.00. Add $1.50for shipping.

Auto Clock Kit $17.95

DC clock with 4-.50" displays. Uses NationalMA-1012 module with alarm option. Includeslight dimmer, crystal timebase PC boards. Fullyregulated, comp. instructs. Add $3.95 for beau-tiful dark gray case. Best value anywhere.

RCA Cosmac VIP Kit $229.00

Video computer with games and graphics.Fully assem. and test. $249.00All VIP options avail.week deliv.

Not a Cheap Clock Kii $14.95

includes everything except case. 2-PC boards.6-.50" LED Displays. 5314 clock chip, trans-former, all components and full instructions.Orange displays also avail. Same kit w .80displays. Red only. $21.95 Case $11.75

60 Hz Crystal Time Base Kit $4.40

Converts digital clocks from AC line frequencyto crystal time base. Outstanding accuracy. Kitincludes: PC board, IC, crystal, resistors, ca-pacitors and trimmer.

Digital Temp. Meter Kit $39.95

Indoor and outdoor. Switches back and forth.Beautiful. 50" LED readouts. Nothing like itavailable. Needs no additional parts for com-plete, full operation. Will measure -100° to+200T, tenths of a degree, air or liquid.Beautiful woodgrain case w/bezel $11.75

NiCad Battery Fixer/Charger Kit

Opens shorted cells that won't hold a chargeand then charges them up, all in one kit w/fullparts and instructions. $7.25

PROM Eraser Will erase 25 PROMs inlb minutes. Ultraviolet, assembled $34.50

Rockwell AIM 65 Computer

6502 based single board with full ASCII keyboardand 20 column thermal printer. 20 char, al-phanumeric display, ROM monitor, fully expand-able. $375.00. 4K version $450.00. 4K Assem-bler $85.00, 8K Basic Interpreter $100.00.Power supply assem. in case $60.00. AIM 65 inthin briefcase with power supply $485.00.

P.O. Box 4430X Santa Clara, CA 95054For will call only: (408)988-1640

™^^^For will call only:«°8) 988-1640^^^^^k. 2322 Walsh Ave. ^

^^P^T^ ELECTRONICS

"^^ttf CLOCK MODULES Complete alarm clocks

IC SOCKETS

Solder Tin Law Prollle

PIN HIP PIN 1UP

8 .15 22 .30

14 .14 24 .35

ready to hook up with transformer andswitches Very compact witfi.84" digits.

MA1002A C Or E .50"102P3 TransformerMA1010A. CorE .84102P2 TrinilarmerSpecial Irinjformer and 111imltchei whan purchased

E WRAP LEVEL 3

PIN

.25 24 86

.33 28 100.57 40 1.23

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.

74175N74190N74192N74193N7422IN7429BN74365N74366N74367N

T4LS00 TIL

74LS00N74LS02N74LS04N74LS05N74LSD8N74LS10N74LS13N74LS14N74LS20N74LS22N74LS2BN74LS30N74LS33N74LS3BN74LS74N74LS75N74LS90N74LS93N74LS95N74LS107N74LS112N74LSI13N74LS132N74LS136N74LS151N74L5155N74LS157M74LS162N74LS163N74LS174N74LS190N74LS221N74LS258N74LS367N

LINEAR

CA3045

CA3046

CA3081

CA3082

CA3089

LM30 IAN/AH

LM305H

LM307N

LM308N

LM3Q9H

LM309K

LM311WN

LM317T/K

LM318

LM320K-5

LM323K-5

LM320K-I2

LM32GK-15

LM320T-5

LM320T-8

LM32QT-12

LM320T-I5

LM324N

LM339N

LM340K-5

LM340K-8

LM340K-12

LM340K-15

LM340K-24

LM340T-5

LM340T-8

LM340T-12

LM340T-15

LM340T-13

LM340T-24

LM343H

LM350

LM370

LM377

79L05

78M05

75108

75491CN

75492CN

75494CN

A to D CONVERTER

8T0960 8T1060 8T1370 8T2D.85 8T23175 8T24-50 8T25.55 BT2689 8T288T97

8700CJ

8701 CN

8750CJ

L0130

9400CJWF

ICL7T03

ICL7107

6702

CMOS

CD34001 Fair

CO4000

CO4001

CO40O2

CD40O6

CD4007

CW 008

CD4009

CD4010

CD4011

CD4012

CD4013

CD4014

CD4015

CD4016

CO4017

CD401B

CD4019

CD4020

C04021

CD4022

CD4023

CD4024

CD4025

CD4026

CD4027

CM02B

CD4029

CD4030

CD4035

CO4040

CD4Q42

CD4043

CD4044

CD4046

CD4049

CD4050

CD4051

CO406O

CD4066

CD406B

CD4069

CD407O

CD4071

CD4072

CD4073

CD4075

CD4076

CD4078

CD4081

CD4082

CD4116

CD4490

CD4507

CD4508

CD4510

C04511

CD4515

CD4516

C04518

CD4520

C04527

C04528

C04553

CD4566

C04583

4.50

8T9B

13.95 MOS/MEMORV HAM

15.95 2101-1

13.95 2102-1

9.95 2102AL

7.40 21L02-1

9.50 21F02

14,25 21Q4A-4

17.95 2107B-4

UART/RFO.95 AV5-1013.85 AV5-1014.95 3341.95

1 25 PROM4.50 1702A3.00 N82S235.50 N82S123310 N82S1263.50 N82S1293.20 NB2S1311G9 N82S136

2 75 N82S1371.69 27081.69 DM8577

82232716T12716 Intel

95

CRYSTALS

1-12112-2

.50 21HL-3

.16 4116

28 25136

?B MM5262

i'in MM5280

28 MM5320

"28 MM5330

'30 PD411D-3

39 PD411D-4

28 P5101L

28 *200A

'36 82S25

86 91UBA

« HD0165-5

'36 MM5710O

pj GIAY3B50O-1MCM6571A9368

3.75

3.753.95

5MH*OMH?

RESISTORS % watt 5%10 per type 03 10OO per type 01225 per type .025 350 piece packlOOptrtype .015 5pertype 6.75KEYBOARDS

56 key ASCII keyboard kit S67.50Fully assemoled 77.50

53 key ASCII keyboard kit 60.00

Fully assembled 70.00 Enclosure 14.95

LEDS

Red T018 .15

Green. Yellow T018 .20

, ,n Jumfio Red .20

Ifi Green, Orange. Yellow Jumbo .25'■.-,,■ Cliplite LED Mounting Cllpi 841.25isfwaty.red, amber, green, yellow, clear)CONTINENTAL SPECIALTIES In flock3 95 'CBmplele line of breadboard test equip2 95 MAX-100 6 digit Fnq.Ctr. S12B.95OK WIRE WRAP TOOLS In ttochPortable Multlmeler S18.D0

DIGITAL THERMOMETER Mfl.50

Batt oper. General purpose or medical32'-230°F. Disposable probe cowr? .2' accuracy. Comp. Assy incompact case. Switches from F° to C.COMPUTER BOARD KITS8K RAM Board Kit J135.00

4K EPROM Kit 114.95

I/O Board Kit 44.50

Extender Board w/connector 12.50

16K EPROM board kit w/o PROMS 74.50$665.00415.00

3.753.753.75

.281.021.02

.86

4I0D

,c IB MHz6 75 a MHz

6-30 32768 MHi■"0 1.8432 MHf300 3.5795 MHz995 2.0100 MHz5.94 2.097152 MHz* 00 2.4576 MHz5,00 3.2768 MHz*3.95 5 0688 MHz995 5,185 MHz5.7143 MHz6.5536 MHz4,31818 MHz8.432 MHz9 95 22,1184 MHz

CONNECTOHS

6 95

9.953.50

„ CLOCKS

g MM5309 3.0

2 MM5311 3.6I* MM5312 4.8%l MM5313 3.6ll MM5314 3.9

3 MM5315 4.002 MM5316 5.028 MM5318 3.602 MM5369 2.12? MM5841 14.4U MM5B65 7.963 CT7001 5.863 CT7010 B.9%l CT7015 8.936 MM5375AA/N 3.936 MM5375AB/N 4.S13 7205 16.5» 7207 7,5S 7208 15,9<0 7209 4.S40 DSO026CN 3.7*2 0SO056CN 3.7\« MM53104 2.5

MICROPROCESSOR

.28.281.75.40

1 ™*

47 82'2

550 8214

I'm 8216

425 S224

V02 "

6802 IB.75

aoBOA with data 8.958085

82288251

,'o B2531 10 B255

535S.50

74C92274C923H00165-5

TRANSISTORS

2N1893

2N2222A

2N2369

2N2904A

2N2907A

2N3053

2N3636

2N3643

2N3904

2N3906

2N3055

2N4400

2N4401

2N4402

TIP31

TIP33A

8259

1802CPplas

1B020P plas.

1861P

COP1B02CO

COP1B02O

CDP1B61

1 RS23225 Pin Submlniatures

9.25 OB25P 2.95 8000

1950 DB25S 3.95 lOQOO

19.50 Cover 1.50 12000

13.95 RS232 Complete Set 8.60 35000

'7.95 QE9P 1.50 55000

11.50 DE9S 1.95 82000

19-95 DA15P 2.10 fiMQO

25.00 DA15S MO H'2-95 1*20000

SPECIAL PRODUCTSMM5865 Slopwalcfi Timer 9.00PC board 7.50

Switches Mom. Pushbutton .27

3 pos. slide .-25

Encoder HD0165-5 6.95

3 Dion UnitermCounter Board KitOperates 5-18 Volt DC to 5 MHztyp .125" LED display 10.60Voice actuated twitch 50

Panlronlu 100A LogicAMlyzerKll $235 00

Mode! 10 Trigger

Expander Kit S229.00

Model 150 Bus

Grabber Kit 1369 00

Sinclair 3Vi Digit

Mullimeler S59.95

Clock Calendai Nil 123.95

TRANSFORMERS6V 300 ma 3.25

12 Volt 300 ma transformer 1.2512.6V CT 600 ma 3.75

12V 250 ma wall ptug 2.95

S12 50 12V CT 250 ma wall plug 3.501795 24V CT 400 ma 3.95

5 50 10V 1.2 amp wall pfuo 4855'SO 12V 6 amp 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 OL7D7/OL707R CA .300 1.00

DL727/728 CA/CC .500 1.9014.50 DL747/750 CA/CC .600 1.95sock. OL7SO CC .600 1.95

FN0359

FN 0500/50740 FND503/5101B FNDB00/8O730 3 digit Bubble20 4 digit bubble25 DGB Fluorescent40 DG10 Fluorescent25 5 digit 14 pin display25 NSN69 9 digrl display

■o 7520 Claire* photocells18 TIL311 Hex

3200

riMJO5800eioo6100

CC .357 .70

CC'CA .500 1.35

CCrXA .500 .90

C&CA .800 2.20

Multi-volt Computer Power Supply

8v 5 amp, ±18v .5 amp, 5v 1.5 amp, -5v.5 amp, 12v .5 amp, -12 option. ±5v, ±12vare regulated. Kit $29.95. Kit with punched frame$37.45. Woodgrain case $10.00.

Video Modulator Kit $8.95

ConvertyourTV set into a high quality monitorwithout affecting normal usage. Complete kitwith full instructions.

2.5 MHz Frequency Counter Kit

Complete kit less case $37.50

30 MHz Frequency Counter Kit

Complete kit less case $47.75

Prescaler kit to 350 MHz $19.95

79 IC Update Master Manual $3500

Complete IC data selector, 2500 pg. master ref-erence guide. Over 50,000 cross references. Freeupdate service through 1979. Domestic postage$3.50. Foreign $5.00. 1978 IC Master closeout$19.50.

Stopwatch Kit $26.95

Full six digit battery operated. 2-5 volts.3.2768 MHz crystal accuracy. Times to 59min., 59 sec. 99 1/100sec. Times std., splitand Taylor. 7205 chip, all components minuscase. Full instructions.

Hickok 3V2 Digit LCD Multimeter

Batt/AC oper. 0.1mv-1000v. 5 ranges. 0.5%accur. Resistance 6 low power ranges 0.1ohm-20M ohm. DC curr. .01 to 100ma. Handheld, Vz" LCD displays, auto zero, polarity, over-range. $69.95.

S-100 Computer Boards

8K Static RAM Kit Godbout $135.00

16K Static RAM Kit 265.00

24K Static RAM Kit 423.00

32K Dynamic RAM Kit 310.00

64K Dynamic RAM Kit 470.00

6K/16K Eprom Kit (less PROMS) $89.00

Video Interface Kit $139.00Motherboard $39. Extender Board $8.99

FREE: Send for your copy of our NEW 1979QUEST CATALOG. Include 28c stamp.

Circle 311 on inquiry card.

BYTE August 1979 255

PERQOM SAMPLER

a r

For your SS-50 bus computer — theCIS-30+

• Interface to data terminal and two cas-sette recorders with a unit only 1/10the size of SWTP's AC-30.

• Select 30, 60, or 120 bytes per secondcassette interfacing, 300, 600 or 1200baud data terminal interfacing.

• Optional mod kits make CIS-30+ workwith any microcomputer. (For MITS680b, ask for Tech Memo TM-CIS-30+—09.)

• KC-Standard/Bi-Phase-M (double fre-quency) cassette data encoding. De-pendable self-clocking operation.

• Ordinary functions may be accom-plished with 6800 Mikbug™ monitor.

• Prices: Kit, $79.95; Assembled,$99.95.

Prices include a comprehensive instructionmanual. Also available: Test Cassette, Re-mote Control Kit (for program control ofrecorders), IC Socket Kit, MITS 680b moddocumentation, Universal Adaptor Kit(converts CIS-30+ for use with any com-puter). MIKBUG®Motorol«, Inc.

In the Product DevelopmentQueue . . .

Coming PDQ. Watch for announce-ments.

6809 Processor Card — With this SS-50bus PC board, you'll be able to upgradewith the microprocessor that Motoroladesigners describe as the "best 8-bitmachine so far made by humans."

The Electric Crayon™ — This colorgraphics system includes its own pP andinterfaces to virtually any microcomputerwith a parallel I/O port.

Printer Interface — For your TRS-80™.Interface any serial RS232 printer to yourTRS-80™ with this system.

'"ELECTRIC WINOOW, ELECTRIC CRAYON, Pilon-30 and Pilon-10 are trademarks of Percom DataCompany. Inc.

TRS-80 is a trademark of Tandy Corporation and RadioSnack which has no relationship to Percom Data Company.

Orders may be paid by check or money order,or charged to Visa or Master Charge creditaccount. Texas residents must add 5% salestax.

For your data storage — Pilon-30™ andPilon-10™ data cassettes

• Orders-of-magnitude improvement indata integrity over ordinary audio cas-settes.

• Pilon-coated pressure pad eliminateslint-producing felt pad of standardaudio cassettes.

• Smooth pilon coating minimizes erra-tic tape motion.

• Foam pad spring is energy absorbing.Superior to leaf spring mounted padwhich tends to oscillate and cause flut-ter.

• Five-screw case design virtually pre-cludes deformation during assembly.

• Price: $2.49.

For your S-100 computer—the Cl-812

• Both cassette and data terminal inter-facing on one S-100 bus PC board.

• Interfaces two recorders. Record andplayback circuits are independent.

• Select 30, 60, 120, or 240 bytes persecond cassette interfacing, 110 to9600 baud data terminal interfacing.

• KC-Standard/Bi-Phase-M (double fre-quency) encoded cassette data. De-pendable self-clocking operation.

• Optional firmware (2708 EPROM)Operating System available.

• Prices: kit, $99.95; assembled,$129.95.

Prices include a comprehensive instructionmanual. In addition to the EPROM OperatingSystem, a Test Cassette, Remote Control Kit(for program control of recorders), and an ICSocket Kit are also available.

CASSETTE SOFTWARE

For 8080/Z-80 pCt...

BASIC ETC — Developed by the co-authors of the original Tiny BASIC, BASICETC is easy to use yet includes com-mands and functions required for power-ful business and scientific programs aswell as for hobby applications. 9.5K bytesof RAM. 1200-baud cassette and 42-pageuser's manual $35.00

Cassette Operating System — EPROM(2708) COS for the Percom Cl-812 dualperipheral interfacing PC card .. $39.95

If you're programming on a 6800 /*C,you'll want these development and de-bugging programs written by Ed Smith ofthe Software Works:

Disassembler/Source Generator — Dis-assembles SWTP Resident Assembler,TSC Mnemonic Assembler/Text Editor orSmoke Signal Mnemonic Assembler/TextEditor and produces compacted sourcecode suitable for re-editing. Prints or dis-plays full assembly-type output listing.4K bytes of RAM.

(Order M68SG) $25.00

Disassembler/Trace — Use to examine(or examine and execute) any area ofRAM or ROM. "Software-single-step"through any program, change the con-tents of CPU or memory location at anytime, trace subroutines to any depth.2.3K bytes of RAM.

(Order M68DT) $20.00

EPROM Support/Relocator Program —This program relocates a program in anycontiguous area of RAM or ROM to any-where in RAM. Use to assemble and testprograms in RAM, adjust programs forEPROM operating addresses and thenblock move to your EPROM burner ad-dress. 952 bytes of RAM. Loads at hex1000.

(Order M68EP) $20.00

Relocating Assembler & Linking Loader

(M68AS) $50.00

Relocating Disassembler & SegmentedSource Text Generator (M68RS) $35.00

Americana Plus — 14 tunes for the New-tech Model 68 Music Board in machinelanguage ready to load and run. Cassettecompatible with Percom CIS-30+ andSWTP AC-30. Order MC-1SW .. $15.95

HARDWARE

Newtech Model 68 Music Board — Pro-duces melodies, rhythms, sound effects,morse code, etc. from your programs.Includes manual with BASIC for writingmusic scores and assembly languageroutine to play them. Installs in SWTP I/O

slot. Assembled & tested $59.95

The Percom ELECTRIC WINDOW™ —Memory-resident and programmable,this video display character generatorboard for your SS-50 bus displays up to24 80-character lines. Features dualcharacter generators, dual-intensityhigh-lighting. One programmable regis-ter controls scrolling. Compatible withstandard video monitors $249.95

SS-50 Prototype Cards:

Large card (up to 70 40-pin ICs) $24.95I/O size card $14.95

PERCOM™ 'peripherals for personal computing'

PERCOM DATA COMPANY, INC.

DEPT.B

211 N. KIRBY • GARLAND, TX. 75042

To order products or request additional lit-erature, call Percom's toll-free number:1-800-527-1592. For detail technical in-formation call (214) 272-3421.

256 BYTE August 1979

Circle 301 on inquiry card.

Circle 126 on inquiry card.

The 1XVEVTRAJVS1000

A completely refurbishedIBM Selectric Terminal withbuilt-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 ORDERDATA-TRANS 1000

1. We accept Visa, MasterCharge. Make cashiers checks orpersonal check payable to:

DATA-TRANS

2. All orders are shippedF.O.B. San Jose, CA

3. Deliveries are immediate

For orders and information

DATA-TRANS

2154 OToole St.

UnitE

San Jose, CA 95131

Phone: (408) 263-9246

r MICRO-

PROCESSORS:FROM CHIPS TOSYSTEMS

This book cover all as-pects of microp-rocessors, from thebasic concepts to ad-vanced interfacingtechniques, in a pro-gressive presenta-tion. It is independentfrom any manufac-turer, and presentsuniform standardprinciples and designtechniques, includingthe interconnect of astandard system, aswell as specific com-ponents. It intro-duces the MPU, howit works internally, thesystem components(ROM, RAM, UART,PIO, others), the sys-tem interconnect,applications. pro-gramming, and theproblems and tech-niques of system de-velopment. By R.Zaks. SYBEX. Ref.C201. $9.95

MICRO-PROCESSORINTERFACINGTECHNIOUES

Microprocessor in-terfacing is no longeran art. It is a set oftechniques, and insome cases just a setof components. Thiscomprehensive bookintroduces the basicinterfacing conceptsand techniques, thenpresents in detail theimplementation de-tails, from hardwareto software. It coversall the essential per-ipherals, from key-board to floppy disk,as well as the stan-dard buses CS100 toIEEE 488) and intro-duces the basic trou-bleshooting tech-niques. (2nd Ex-panded Edition). ByAustin Lesea and R.Zaks. Ref. C207SYBEX. $11.95

PROGRAMMINGTHE 6502

PROGRAMMINGTHE Z80

PROGRAMMINGTHE 8080"It covers all essentialaspects of program-ming, as well as theadvantages and dis-advantages of the6502 and shouldbring the reader tothe point where hecan start writingcomplete applicationsprograms. For thereader who wishesmore, a companionvolume is available:The 6502 Applica-tions Book. By R.Zaks. 6502: Ref.C202; Z80: Ref.C280: 8080: Ref.C208. SYBEX. Each$10.95

44 BUS MOTHERBOARD

Has provisions for ten44 pin (.156) connec-tors, spaced 3/4 of aninch apart. Pin 20 isconnected to X, and22 is connected to Zfor power and ground.All the other pins areconnected in parallel.This board also hasprovisions for bypasscapacitors. Boardcost $15.00 Part No.102. Connectors

$3.00 each Part No.44WR

AN INTRODUCTION

TO PERSONAL AND

BUSINESS

COMPUTING

No computer back-ground is required.The book is designedto educate the readerin all the aspects of asystem, from the se-lection of the mic-rocomputer to therequired peripherals.By Rodnay Zaks. Ref.C200, SYBEX $6.95

TVT COOKBOOK

Bk 1064 — by DonLancaster. Describesthe use of a standardtelevision receiver asa microprocessorCRT terminal. Ex-plains and describescharacter genera-tion, cursor controland interface infor-mation in typical, easy-to- understand Lan-cascaster style.$9.95

COMPUTER

PROGRAMMING

HANDBOOK

A complete guide tocomputer programm-ing & data process-ing. Includes manyworked-out examples.By Peter Staak, TAB$9.95

DIGITALCASSETTE

5 min. each side. Boxof 10 $9.95. Part No.C-5.

JO OrdGr! Mention Part no- description, and price. In USA shipping paid by us for orders accompanied by check or money order.We accept C.O.D. orders in the U. S. only, or a VISA or Master Charge no., expiration date, signature, phone no.,Mami shipping charges will be added. CA residents add 6.5% for tax. Outside USA add 10% for air mail postage and han-^M dling. Payment must be in U. S. dollars. Dealer inquiries invited. 24 hour order line [408) 226-4064.

Send for FREE Catalog ... a big self-addressed envelope with 41* postage gets it fastest!

ELECTRONIC SYSTEMS Dept- B' P- ° Box21638,SanJose, CAUSA95151

Circle 1 25 on inquiry card.

BYTE August 1979 257

COMPUCRUISE

Put a computer inyour car, which givesyou the most effec-tive and functionalcruise control everdesigned, plus com-plete trip computing,fuel management sys-tems, and a remark-able accurate quartzcrystal time system.So simple a child canoperate, the newCompuCruise com-bines latest computertechnology withstate-of-the-art re-liability in a packagewhich will not likely beavailable on new carsfor years to come •Cruise Control 'Time,E.T., Lap Timer, Alarm

• Time. Distance, Fuelto Arrival • Time, Dis-tance, Fuel to Empty •Time, Distance andFuel on Trip • Currentor Average MPG,GPH'Fuel Used, Dis-tance since Fillup •Current and Aver-age-Vehicle Speed •Inside, Outside orCoolant Temperature

• Battery Voltage •English or MetricDisplay. $199.95

FLOPPY DISKSTORAGE BINDER

This black vinylthree-ring bindercomes with tentransparent plasticsleeves which ac-commodate eithertwenty, five-inch orten, eight-inch floppydisks. The' plasticsleeves may be or-dered separately andadded as needed. Acontents file is in-cluded with eachsleeve for easy iden-tification and organiz-ing. Binder S. 10 hol-ders $14.95 Part No.B800; Extra holders95« each. Part No.800

OPTO-ISOLATED

PARALLEL INPUT

BOARD FOR

APPLE II

There are 8 in-puts that can be dri-ven from TTL logic orany 5 volt source.Thecircuit board can beplugged into any ofthe 8 sockets of yourApple II. It has a 16 pinsocket for standarddip ribbon cable con-nection.

Board only $15.00.Part No. 120. withparts $69.95. PartNo. 120A.

TIDMA

• Tape Interface DirectMemory Access • Re-cord and play programswithout bootstrap load-er (no prom) has FSKencoder/decoder fordirect connections tolow cost recorder at1200 baud rate, anddirect connections forinputs and outputs toa digital recorder atany baud rate • S-100bus compatible • Boardonly $35.00 Part No.112, with parts $110Part No. 11 2A

SYSTEMMONITOR

8080. 8085. or Z-80System monitor for usewith the TIDMA board.There is no need for thefront panel. Completewith documentation

$12.95.

How to Profit fromYour Personal

Computer:Professional,Business, and HomeApplications'...useful reading forthe small business-man, contemplating acomputer, or for thepersonal computeradvocate contemplat-ing a business appli-cation." Kilobuad. ByT. G. Lewis. HAYDEN7B-2780. $8.95

ASCII KEYBOARD

TTL & DTL compatible • Full 67 key array

• Full 128 character ASCII output • Positivelogic with outputs resting low • Data Strobe

• Five user-definable spare keys • Standard22 pin dual card edge connector • Requires+5VDC, 325 mA. Assembled & Tested.Cherry Pro Part No. P70-05AB. $135.00.

ASCII KEYBOARD

53 Keys popular ASR-33 format • RuggedG-10 P. C. Board • Tri-mode MOS encoding• Two-Key Rollover • MOS/DTL/TTL Compat-ible • Upper Case lockout • Data and Strobeinversion option • Three User DefinableKeys • Low contact bounce • Selectable Par-ity • Custom Keycaps • George Risk Model753. Requires +5, -12 volts. $59.95 Kit.

ASCII TO CORRESPONDENCECODE CONVERTER

This bidirectional board is a direct replace-ment for the board inside the Trendata 1000terminal. The on board connector providesRS-232 serial in and out. Sold only as anassembled and tested unit for $229.95.Part No. TA 1000C

DISK JACKET™

Made from heavy duty.0095 matte plasticwith reinforced

grommets. The mini-diskette version holdstwo 5-1/4 inch disk-ettes and will fit anystandard three ringbinder. The pockets tothe left of the disk-ette can be used forlisting the contents ofthe disk. Please orderonly in multitudes often. $9.95/10 Pack.

INTERNATIONAL

MICROPROCESSOR

DICTIONARY

English, French, Dan-ish, German, Italian,Hungarian. Norwe-gian, Polish. Spanish,Swedish. 10 lan-guages, 28 pp.SYBEX. Ref. IMD.$4.95

TTLCOOKBOOK

Bk 1063 — by DonLancaster. Explainswhat TTL is, how itworks, and how to useit. Discusses practi-cal applications, suchas a digital counterand display system,events counter, elec-tronic stopwatch, di-gital voltmeter and adigital tachometer.$8.95

B

MICRO-PROCESSOR LEXICON —ACRONYMSAND DEFINITIONS

Bk 1040 — compiledby the staff ofSYBEX, is a conven-ient reference inpocket-size format.Sections include ac-ronyms and defini-tions, part numbersand their definitions,S-100 signals.

RS232 signals, IEEE499 signals, micro-computers and mi-croprocessors.JETDS summary (mil-itary) and a code con-version table. $2.95*

RS-232/20mAINTERFACE

This board has twopassive, opto-isola-ted circuits. One con-verts RS-232 to20mA, the other con-verts 20mA to RS-232. All connectionsgo to a 10 pin edgeconnector. Requires+12 and -12 volts.Board only $9.95.part no. 7901. withparts $14.95 PartNo. 7901A.

COMPUCOLOR II

Model 3. 8K $13.95.Model 4, 16K $15.95,Model 5, 32K $18.95.Prices include colormonitor, computer,and one disk drive.

PET COMPUTER

With 32K & monitor -$1195. Dual DiskDrive-$1195.

mpifgi

^cippkz

ii

16K - $1095. 32K -$1195. 48K - $1293.Disk&cont. $589

\

6502

APPLICATIONS

BOOK

Z80 APPLICATIONS

BOOK

This book will teachyou how to connect aboard to the outsideworld and implementpractical applicationsfor the 6502, (orZ80). Applicationsrange from home con-trol (a complete alarmsystem, includingheat sensor), to in-dustrial applications.You will learn tech-niques ranging fromsimulated traffic con-trol to analog-digitalconversion. All exper-iments can be realizedwith a minimum of ex-ternal (low-cost)components. They aredirectly applicable toany 6502-basedboard such as SYM,KIM, AIM 65. Thisbook also studies indetail input-outputtechniques and com-ponents, and is thelogical continuation ofC202 (or C280). ByRodney Zaks.

SYBEX. 6502: Ref.D302; Z80: RefD380. Each $12.95

TV. INTERFACE

• Converts video toAM modulated RF,Channels 2 or 3. Sopowerful almost notuning is required. Onboard regulated powersupply makes this ex-tremely stable. Ratedvery highly in DoctorDobbs' Journal. Recom-mended by Apple •Power required is 12volts AC C.T.. or +5volts DC • Board only$7.60 part No. 107,with parts $13.50 PartNo. 107A

OatHHm

PARALLEL TRIAC

OUTPUT BOARD

FOR APPLE II

This board has 8 tnacs capable ofswitching 110 volt 6 a>np loads (660 wattsper channel) or a total of 5280 watts Boardonly $15.00 Part Nit 210, with parts$119.95 Part No. 210A.

' "IX rjrrjpr • Mention part no. description, and price. In USA shipping paid by us for orders accompanied by check or money order.VJ VJIUCI . ^ acCept COD. orders in the U.S. only, or a VISA or Master Charge no., expiration date, signature, phone no.,

!MMB shipping charges will be added. CA residents add 6.5% for tax. Outside USA add 10% for air mail postage and han-9H dling. Payment must be in U. S. dollars. Dealer inquiries invited. 24 hour order line (408) 226-4064.

Send for FREE Catalog ... a big self-addressed envelope with 41« postage gets it fastest!

ELECTRONIC SYSTEMS DePl- B' P- °- Box 21638,SanJose, CAUSA95151

258 BYTE August 1979

Circle 125 on inquiry card.

TRS-80ESSERIAL I/O

• Can input into basic

• Can use LUST andLPRINT to output, oroutput continuously •RS-232 compatible •Can be used with orwithout the expansionbus • On board switchselectable baud ratesof 110,150.300,600.1200, 2400, parity orno parity odd or even,5 to 8 data bits, and 1or 2 stop bits. D.T.R.line • Requires +5,-12 VDC • Board only819.95 Part No. 8010,with parts $59.95 PartNo. 801OA, assembled$79.95 Part No. 8010C. No connectors pro-vided, see below.

EIA/RS-232 con-nector Part NoDB25P S6 00, with9'. 8 conductorcat-IB $10 95 PortNo OB25P9

3' nbbon cablewith attached con-nectors to fitTRS-BO and our serialboard $19 95 PartNo 3CAB40

RS-232/ TTLINTERFACE

• Converts TTL to RS-232, and converts RS-232 to TTL • Two sep-arate circuits • Re-quires -12 and +12volts • All connectionsgo to a 10 pin goldplated edge connector

• Board only $4.50Part No. 232. withparts $7.00 Part No.232A 10 Pin edgeconnector $3.00 PartNo. 10P

MODEM

• Type 103 • Full orhalf duplex • Works upto 300 baud • Origi-nate or Answer • Nocoils, only low costcomponents • TTL in-put and output-serial

• Connect 8 O. speak-er and crystal mic.directly to board •Uses XR FSK demod-ulator • Requires +5volts • Board only$7.60 Part No. 109,with parts $27.50 PartNo. 109A

DISKETTES

Vfeifoatim

Box of 10. 5" $29.95.8" $39.95.Plastic box, holds 10diskettes, 5" - $4.50,8"-$6.50.

RS-232/TTYINTERFACE

This board has twoactive circuits, oneconverts RS-232 to20mA, and the otherconverts 20mA toRS-232. Requires+12 and -12 volts.Board only $4.50 PartNo. 600, with parts$7.00 Part No. 600A.

PART *£ $?^

S-100 BUSACTIVE TERMINATOR

Board only $14.95 Part No. 900. with parts$24.95 Part No. 900A

APPLE IK-SERIAL I/OINTERFACE

Baud rate is continuously adjustable from 0to 30,000 • Plugs into any peripheralconnector • Low current drain. RS-232 inputand output • On board switch selectable 5 to8 data bits, 1 or 2 stop bits, and parity or noparity either odd or even • Jumper selectableaddress • SOFTWARE • Input and Outputroutine from monitor or BASIC to teletype orother serial printer • Program for using anApple II for a video or an intelligent terminal.Also can output in correspondence code tointerface with some selectrics. • Alsowatches DTR • Board only $15.00 Part No.2. with parts $42.00 Part No. 2A, assembled$62.00 Part No. 2C

8K EPROM pmceon

Saves programs on PROM permanently (untilerased via UV light) up to 8K bytes. Programsmay be directly run from the program saversuch as fixed routines or assemblers. • S-100 bus compatible • Room for 8K bytes ofEPROM non-volatile memory (2708's). • On-board PROM programming • Addressrelocation of each 4K of memory to any 4Kboundary within 64K • Power on jump andreset jump option for "turnkey" systems andcomputers without a front panel • Programsaver software available • Solder mask bothsides • 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, with4 EPROMS $179, with 8 EPROMS $219.

WAMECO PRODUCTS

WITH

ELECTRONIC SYSTEMS PARTS

FOC-1 FLOPPY CONTROLLER BOARD willdrive shugart, pertek, remex 5" S. 8" drivesup to 8 drives, on board PROM with powerboot up, will operate with CPM (notincluded). PCBD $42.95

FPB-1 Front Panel. (Finally) IMSAI size hexdisplays. Byte or instruction single step.PCBD $42.95

MEM-1A 8Kx8 fully buffered. S-100, uses2102 type RAMS.PCBD $24.95, $1 68 Kit

QMB-12 MOTHER BOARD, 13 slot, termi-nated, 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

RTC-1 Realtime clock board. Two independ-ent interrupts. Software programmable.PCBD $25.95, $60.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-1 2. 9 Slots PCBD $30.95

v $67.95 Kit

MEM-2 16Kx8 Fully Buffered 2114 BoardPCBD $25.95, $269.95 Kit

T.V.TYPEWRITER

• Stand alone TVT

• 32 char/line, 16lines, modifications for64 char/line included

• Parallel ASCII [TTUinput • Video output

• 1K on board memory

• Output for computercontrolled curser •Auto scroll • Non-destructive curser •Curser inputs: up, down,left, right, home, EOL,EOS • Scroll up, down

• Requires +5 voltsat 1.5 amps, and -12volts at 30 mA • All7400, TTL chips •Char. gen. 2513 •Upper case only •Board only $39.00Part No. 106. withparts $145.00 PartNo. 106A

TAPEINTERFACE

• Play and record Kan-sas City Standard tapes

• Converts a low costtape recorder to adigital recorder • Worksup to 1200 baud* Dig-ital in and out are TTL-serial • Output ofboard connects to mic.in of recorder • Ear-phone of recorder con-nects to input on board

• No coils • Requires+5 volts, low powerdrain • Board only$7.60 Part No. 111.with parts $27.50 PartNo. 111A

UART&BAUD RATEGENERATOR

• Converts serial toparallel and parallel toserial • Low cost onboard baud rate gener-ator • Baud rates:110. 150. 300. 600,1200, and 2400 •Low power drain +5volts and -12 voltsrequired • TTL com-patible • All characterscontain a start bit, 5to 8 data bits, 1 or 2stop bits, and eitherodd or even parity. • Allconnections go to a 44pin gold plated edgeconnector • Board only$12.00 Part No. 101,with parts $35.00 PartNo. 101 A. 44 pin edgeconnector $4.00 PartNo. 44P

HEX ENCODEDKEYBOARD

E.S.This HEX keyboardhas 19 keys, 16 encod-ed with 3 user defin-able. The encoded TTLoutputs. 8-4-2-1 andSTROBE are debouncedand available in trueand complement form.Four onboard LEDsindicate the HEX codegenerated for eachkey depression. Theboard requires a single+5 volt supply. Boardonly $15.00 Part No.HEX-3. with parts$49.95 Part No. HEX-3A. 44 pin edge con-nector $4.00 Part No.44 P

DC POWER SUPPLY

• Board supplies a regulated +5volts at 3 amps.. +1 2. -12. and -5volts at 1 amp. • Power required is8 volts AC at 3 amps., and 24 voltsAC C.T. at 1.5 amps. • Board only$12.50 Part No. 6085, with partsexcluding transformers $42.50Part No. 6085A

TX (")rf|pr • Mention part no. description, and price. In USA shipping paid by us for orders accompanied by check or money order.' We accept C.O.D. orders in the U. S. only, or a VISA or Master Charge no., expiration date, signature, phone no.,

g.«fifi>J shipping charges will be added. CA residents add 6.5% for tax. Outside USA add 10% for air mail postage and han-%mm dling. Payment must be in U. S. dollars. Dealer inquiries invited. 24 hour order line (408) 226-4064.

Send for FREE Catalog ... a big self-addressed envelope with 41* postage gets it fastest!

ELECTRONIC SYSTEMS DePl B' po- Box 21638,SanJose, CAUSA 95151

Circle 125 on inquiry card.

BYTE August 1979 259

Circle 312 on inquiry card.

t our new retail location!

The EXP AN DOR AM is availablein versions from 16K up to 64K, sofor a minimum investment youcan have a memory system thatwill grow with your needs. This isa dynamic memory with the in-visable on-board refresh, and ITWORKS!

• Interfaces with Altair, IMSAI, SOL-8,Cromenco, SBC-100, and others.

• 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 1*Uu*hoU S-fOO fcwf

• Extensive documentation clear-ly written

• Complete Kit includes allSockets for 64K

• Memory access time: 375ns,Cycle time: 500ns.

• No wait states required.

• 16K boundries and Protectionvia Dip Switches

• Designed to work with Z-80,8080, 8085 CPU'S.

EXP AN DO 64 KIT (4116)

16K $249

32K $324

48K $399

64K $474

Sugart SA400 51/i"with attractive metal case

$325

Sugart 801with attractive metal case

$495.00

Siemens FDD 200-8 8'double-sidedI double density

$650.00

DISC CONTROLLERSD "VERSAFLOPPY" Kit

Only »15901

The Versatile Floppy DiskController

'JSx5w«lfb

lit* £ O 1 ' 1

FEATURES: IBM 3740 Soft Sectored Compati-ble. S-100 BUS Compatible tor Z-80 or 8080. Con-trols up to 4 Drives (single or double sided).Directly controls the following drives:

1. Shugart SA400/450 Mini Floppy

2. Shugart SA800/850 Standard Floppy.

3. PEFtSCI 70 and 277.

4. MFE 700/750.5 CDC 9404/9406

6. GSI/Siemans FDD120-8.34 Pin Connector for Mint Floppy. 50 Pin Con-nector for Standard Floppy. Operates withmodified CP/M operating system and C-BaslcComptler. The new "Versafloppy" from SOComputer Products provides complete controlfor many of the available Floppy Disk Drives,Both Mini and Full Size. FD1771B-1 Single Density Controller Chip Listings for Control Soft-ware are included in price. - . /\/\nn

CPM for SD Versafloppy S10UUU

SAVE $10000

DM2700S DISK &

CABINET withPOWER SUPPLY

DM2700S includes Siemans or

Shugart Disk Drive

with the following features:

*o>.

'****

V/

tONTINtNTAL SPECIALTIES CORPORATION

• Single or Double Density

• Hard or Soft Sector Cabinet includes:

• Write Protect • 110V to 125V 60 Hz power supply

• Hard Sector Detection • Data Cable

• 500 KB/S Transfer • Fan

• 800 KB unformated • Accepts per SCI, Shugart, Siemans

• Bit density 6536 BP1 8" Drives

• Sugart 800 Series Compatable DM2700 Cabinet, less DriveDM2700S ^^-p&RCaEbine, ^^ ^^ ^^

SPECIAL: SD Versafloppy Kit, CPM, and DM2700S *888 ^T—

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; just clip power leads to circuit's power supply, set logicfamily switch to TTUDTl or CMOS/MTL. Touch probe to test node. Tracelogic levels and pulses through digital circuits. Even stretch and latch foreasy pulse detection. Instant recognition of high, low or invalid levels, opencircuits and nodes. Simple, dual-level detector LEDs tell It quickly, correct-ly. 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 squarewave frequencies up to 1.5 MHz. Pulse LED blinks on for Vi second duringpulse 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.000 ohms Minimum Detectable Pulse:50 ns. Maximum Input Signal (Frequency): 10 MHz. Pulse Detector (LED):High speed train or single event Pulse Memory: Pulse or level transitiondetected end stored. -^ —

^CSC Model LP-1 Logic Probe—Net Each J**.9S $42.70

Logic Probes andDigital Pulsers

MODEL LP-2

Economy version of Model LP-1. Safer than a voltmeter. More accurate thana scope. Input Impedance: 300.000 ohms. Minimum Detectebie Pulse: 300ns. Maximum Input Signal (Frequency): i .5 MHz. Pulae Detector (LED): Highspeed train or single event. Pulse Memory: None. ^ ^

CSC Model LP-2 Logic Probe—Net Each Q4^5 *23.70

MODEL LP 3

High speed logic probe Captures pulses as short as 10 ns. Input Im-pedance: 500,000 ohms. Minimum Detectable Pulse: 10 ns. Maximum InputSignal (Frequency): 50 MHz Pulae Detector (LED): High speed train orsingle event. Pulse Memory: Pulse or level transition detected and stored.CSC Model LP 3 Logic Probe—Net Each S&JfitfjS $66.45

DIGITAL PULSER

The ultimate in speed and ease of operation. Simply connect clip leads topositive and negative power, then touch DP-Vs probe to a circuit node;automatic polarity sensor detects circuit's high or low condition. Depressthe pushbutton and trigger an opposite polarity pulse into the circuit. Fasttroubleshooting includes injecting signals at key points in TTL, DTL. CMOSor other popular circuits Test with single pulse or 100 pulses per secondvia built-in dual control push-button; button selects single shot or con-tinuous modes. LEO indicator monitors operating modes by flashing oncefor single pulse or continuously for a pulse train Completely automatic,pencil-size lab/field pulse generator lor arty family of digital circuits Out-put: Trl-state. Polarity: Pulse-sensing auto-polarlty. Sync and Source: 100mA. Pulse Train: 100 pps LED Indicator: Flashes tor single pulse; stays litlor pulse train.CSC Model DP 1 Digital Pulser-Net Each $74C95 $71.20

SD COMPUTER BOARDS

"Twirls •

J* *- :.. ..." «...

|$319KIVVDB-8024 Video Display BoardWith On-Board Z80 Microprocessor

• FidloWCharacu-rsrniMllncsdlsplBy

• Characters displayed by High Resolu-tion 7x 10 Matrix

• Keyboard Power and Interlace

• Composite Video Output

• Separate TTL Level Synchronizationand Video Outputs

• 2K Bytes Independent On HoardMemory

• On-Board Z80 Microprocessor

• Gilch Free Display

• 96 ('operand LowcrCasc Characters

• 32 Special Character Set

• 188 AddlUonal user Programmable

$239 KIT*

SBC-100 Single Board Computer

with Onboard RAM, PROM, CTC

MM

ubmbb;..

• Full Cursor Control

• Forward and Reverse ScrollingCapability

a Operates as an Independent Terminal

• Variable Speed Display Rate

• Blinking. Underlining, Field Reverse,Field Protect and ComblnaUons

• Four Channel Counter/Timer(Z8&CTC)

• Software Programmable Baud RateCtcnerator

a S-100 Bub Compatible

• No Front Panel Required for Operation

• Optional Vectored Interrupts

• ZSOCemral Processing I nit

• 1034 Bytes of Random Access Memory

• 8K Bytes of Available PROM

• Serial lnput/Oulput Port with bothSynchronous and AsynchronousOperation

• Parallel Input and Output Ports

$249

Z80 Starter Kit

A Complete Microcomputer on a Board I

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 taxMinimum order $10.00. Prepaid U.S. orders less than $75.00 include 5% shipping and handlingminimum $2.50. Excess refunded. Just in case . . . please include your phone no.Prices subject to change without notice

• ZH0 Central I*niccssing I nit with 1S8 • Two ill-directional Kbit [.<Instructions PIO)

• On Board Keyboard und Display • Switch Selectable PROM

• KmMmQq Standard ( nssettcIntcrfocc

• PROM Programmer Built on-boare

• Expansion pnnlslon lor two S- 1UU

Mm,

w custom circuitry

We will do our best to maintain prices thru August 1979.

phone orders welcome (213) 894-8171, (800) 4235633

OEM and Institutional .4Channel Hardware

Inquiries invited.

Co

• Wire Wrap a

• SlngleSVoliOucruiloiprogramming

• IK Bvtcs af RAM (Expandable IIhles)

• IK Bytes of RAM {Expandable IBvte»)

Ur/Tln(ZHO-CTC)

• L'K Byte /lit (, Monitor In K(>M

• Memory Examine and Change

• Port Examine and Change

• ZrtOl 1*1' Register Examine and Change

• I'p loft Programmable Breakpoints

• Single Step dimugh RAM or PROM

• Audio Cassette Load and Dump2K • VecUind lnurrupth provided by

ZHO-CTC ami ZHOPIO

-K • Ideal for Experimental"" und

Evaluating die ZHflCFT

ORDER TOLL FREE 1-800-423-5633 ORDER TOLL FREE 1-800-423-5633

Visit our new retail location!

Circle 312 on inquiry card.

A Portable, Dual Trace Oscilloscope with Big Performance and a Low, Low PriceNEW MS-230 Dual Trace Miniscope with 30 MHz Bandwidth!

Non-Linear Systems, IncProgress Since 1952

$559

00

PORTABLE BATTERY OPERATED • MADE IN THE U.S.A.!With Rechargeable Batteries & Charger Unit

FEATURES

• Dual Trace—2-channel; separate, chopped or alternate modes.

• 30-megahertz bandwidth. • External and Internal trigger.

• Time Base—0.05 microseconds to 0.2 Sec/div—21 settings. • Battery of line operation

• Line synchronization mode. • Power consumption less than 50W.

• Vertical Gain—0.01 to 50 volts/div—12 settings. Size: 2.9" H x 6.4" W x 8.5" D.

• Weighs only 3.5 lbs with batteries.

• TEST MOST DIGITAL LOGIC CIRCUITS INCLUDING MICROPROCESSORS

From the originators of the Digital Voltmeter, the people who have broken sales and performancerecords for Osciloscopes, Non-Linear Systems, comes the MS-230 miniscope.

Non Linear Systems took their engineering and modular construction skills and made a dream areality, a Dual-Trace 30 MHz miniscope, small enough to fit in most briefcases with room to spareat an affordable price.

VERTICAL

Mode: CHI, CH2, CHI & CH2 (Chopped) & CH2(Alt.)(The following specifications apply to eachchannel.)Bandwidth: DC to 30 MHz, ± 3 db @ 3 divisiondeflection. Typical 4 division deflec-tion is obtainable up to 20 MHz.Coupling: AC, DC or ground, switch selectable. Low

frequency 3 db point on AC is 3 Hz.Rise Time: Approximately 10 nSec @ 3 division

deflection.Vertical Input: 10 mV/div to 50V/dlv in 12 calibratedranges. Accuracy is 3% of full scalewith vernier in full clockwise posi-tion. Vernier provides continuouslyvariable deflection factors betweenfixed ranges, uncalibrated.Input Impedance: 1 megohm In parallel with 50 pF.Maximum Input Voltage: 250V (DC and Peak AC).

HORIZONTAL

Mode: Internal Time Base or External Horizontal,switch selectable. In the XY mode, verticalinput Is through CH1 and horizontal inputthrough CH2.Time Base: 0.5u Sec/div to 0.2 Sec/div In 21calibrated ranges. Accuracy is 3% offull scale with vernier in fullclockwise position. Vernier providescontinuously variable settings bet-ween fixed ranges, uncalibrated.Amplifier

Bandwidth: DC to 1 MHz (± 3 db)

Coupling: AC, DC or ground, switch selectable.

Low frequency point on AC is 3 Hz.Deflection Factor: 10 mV/div to 50V/div in 12 cali-brated ranges. The ranges canbe calibrated with the CH2gain control.Input Impedance: 1 megohm in parallel with 50 pF.Maximum Input Voltage: 250V (DC and Peak AC).

TRIGGER

Modes:

Automatic: trigger Is disabled, time basefree runs.

Internal: In the dual trace modes, the internaltrigger source is CH1. External and Line(line not functional when MS-230operates on batteries.) Input impedanceIs 1 megohm on External Trigger.

External: Controls function as lor internal triggeringfl Megohm

input impedence)Line: Trigger is derived from line frequency when using the

battery charger

Slope: + or -, switch selectable.

Coupling: AC

Sensitivity: Less than 1 div for internal trigger and

less than 1 volt for external trigger.Level: Trigger level control permits continuous ad-justment of trigger point in all modes except Auto.

L/ALlDnATOH! A square-wave signal of 1volt p-p Is provided. Voltageaccuracy is ±5%, frequen-cy is approximately 1 KHz.

DISPLAY

Graticule: 4x5 dlv, each division Is 0.25 Inch,Viewing area 1.1" H x 1.35" W.

CRT! Bluish-white phosphor, medium persistence.CRT uses low power filament for low batterydrain.

POWER SOURCES

Internal: Three sealed, rechargeable lead-acid cells.Operating time using fully charged cells isapproximately 45 minutes. Charging cir-cuitry is integral and functions when theMS-230 is connected to power line throughplug-in transformer (supplied with eachstrument). Battery charge time with instru-ment non-operating is 16 hours.External: Operates continuously from 115 vacsource 50 - 400 Hz when connected viaplug-in transformer. (230 vac is available)Power consumption from AC line is lessthan 50 watts.

ENVIRONMENT

Operating Temperature: 0° to 40°C

Shock and Vibration: Will withstand normal shockand vibration encountered incommercial shipping andhandling.

PHYSICAL MEASUREMENTS

Size: 2.9" H x 6.4" W x 8.5" D. (73.7 mm x 162.6mm

X215.9 mm)Weight: 3.5 lbs. (1.59 kg) with batteries.

FURNISHED ACCESSORIES:

Tilt stand, bettery charger, 2 input cables, and 3miniature banana plugs

WARRANTY: One year parts and labor.Made In the USAIMS-230 with Rechargeable Batteries and Charger

s55900PROBES

Deluxe 10 to 1 probe with 10 megohm Input. 100 MHzprobe with 4 interchangeable tips: Spring-loadedretractable cover tip, Insulating tip, BNC tip, IC tip,also included cap adjustment tool and zlppered vinylcase.

41-141 $27.00

DELUXE COMBINATION PROBE

Same as above except the probe has a switch toselect; 10 to 1,1 to 1 or a ground reference position.41-37R Red probe body41-37G Grey probe body $38.50

LEATHER CARRYING CASE

The leather case has 2 separate compartments One to hold the scope, theother to hold the charger, probe, shoulder strap, etc The case can be wornon the belt, or over the neck

The snaps used on the case are "one way", thus accidental striking ofthe case against an ob/ect will not undo the snaps or let it be pulled off yourbelt41-180 $45.00

I

75.00 OFF

on any accessories purchasedI with MS-230 Miniscope. Just send or ■| mention this COUPON and Byte || Magazine. j

PRIORITY ONE

16723B Roscoe Blvd. Sepulvedo, CA 91343

Terms: Visa, MC, BAC, Check, Money Order, COD. U.S. Funds Only. CA residents add 6% sales taxMinimum 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 August 1979. OEM and Institutional

orders welcome (213) 894-8171, (800) 4235633 inquiries invited.

ORDER TOLL FREE 1-800-423-5633 ORDER TOLL FREE 1-800-423-5633

HICKOK LX303$7495*

.5%, 3% digit 19Range OVM. Vi" LCD displaysruns 200 hrs on 1 battery. 10 MegOhm Input. 1 yr. guarantee, made inU.S.A., test leads included.

Available Accessories

RC-3 115V 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

FREE

Just for Asking.FREE BATTERY with your meter.

RS232 & "D" TYPE CONNECTORS

: Plug-Male S = Socket-Female C = Cover-Hood

HICKOK LX303 $74.95

3 LEVEL GOLD WIRE WRAP SOCKETS

PART NO. DESCRIPTION

DE-9P

9 Pin Male

>E-9S

9 Pin Female

)E-9C

9 P'n Cover

DA1SP

DA1SS

15 Pin Male j

15 Pin Female

)A15C

15 Pin Cover

)B25P

25 Pin Male

)B-25S

25 Pin Female

JB51212-1

1 pc. Grey Hood

DB1226 1A

2 pc. Black Hooc

0B110963-3 2 pc. Grey Hood

OC37PDC37SDC37CDD50PDD50SDD50CD20418-S

37 Pin Male

37 Pin Female

37 Pin Cover

50 Pin Male

50 Pin Female

50 Pin Cover

Hardware Set (2 pair)

—r~~fEMALE—1—i

V4 5-9 10-24

150 130 1.10

2 00 180 1-55

2 90 2-70 245

180 160 1.30

2.50 2.20 2.05

3.50 3.10 2.95

1.65 1-35 120

1.80 1.50 1.35

1.70 1.40 125

3.95 3 75 350

5 50 5.25 4.90

2 00 1805.00 4756.50 6.00

Connector for CENTRONICS 700 SERIES:

Amphenol 57-30360 (or back ol Centronics 700 Sen 1-4-$9.00 5-up-$7.50

S100-WWO 50/100 Cent. .125 ctrs.LEVEL WIRE WRAP .025" sq. posts <:.250 spaced rows GOLD PLATED.1-4 5-B 10-24

44.00 4375 S3 50

S100ALT SO/100 Cont. .125 ctrs. DlSOLDER TAIL on .140 spaced rows ItALTAIR motherboards. GOLD plated1-4 5-9 10-24

S4.50 S4.25 44.00

S100-STG 50/100 Cont. .125 ctrs. DIPSOLDER TAIL on 250 spaced rows (orVECTOR. IMSA1, CROMENCO motherboards GOLD plated.

1-4 5-9 10-24

S3.50 S3.25 S3.00

S100SE 50/100 Cont. .125 ctrsSOLDER EYELET tails GOLD1-4 5-9 10-24

45.00 S4.50 44.00

PIERCED

Other Popular Edge Connectors

D2244-SSE22M4Cont. 156ctrs PIERCEDSOLDER EYELET tails GOLD plated.1-4 5-9 10-24

43.00 42.60 42.20

D2244-5WW 22/44 Cont .156 ctrs. WIREWRAP tails. GOLD.

1-4 5-9 10-24

43.95 43.70 43.40

CG-1 1MSAI Style Card Guides 5/41.00

See our July Ad for many other connectors.

Sockets purchased in multiples of 50 per type may be combined tor best price.

1-9

1024

2599

100-249

250999

Spin

.40

.36

.34

.31

.27

14 pin

.39

.38

.36

.32

.31

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 are GOLD 3 level closed entry. 2 level Tail, Low

Profile. Tin Sockets_ano^ip_^luo!s_ayailable CALL FOR QUOTATION.

THE MICROBYTE M32KSSI32K STATIC MEMORY BOARDl

Fully StOO Bus Compatible, IMSAI, SOL, ALTAIR, ALPHA MICRO

Uses Nalional's Low Power 5257 4K x 1 Static Rams

2 MHz or 4 MHz operation

Gold contacts for higher reliability

On board single 5 amp regulator

Thermally designed heat sink (board operating temperature 0° -70"C)

Commercially designed power bus. 7 ground bus bars. 0.1 uf decoupling capacitors. I

Fully trl-state buffered

inputs fully low power Shottky Schmltt Trigger buffered on all address and data lines. I

Phantom is jumper selectable to pin 67

Each 4K bank addressable to any 4K slot with in a 64K boundry.

4K hardware or software selectable

One on board 8-bit 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 pane)

Compatible with ALPHA MICRO, with extended memory management for selection I

beyond 64K

No DMA restriction

Low power consumption 2.3 — 2.5 amps

Fully warranted for 120 days from date of shipment.

32K 2-MHz $619 32K 4MHz $648

mm h 8803

iiw *S. +12. MOTHER

t'mmmjm- BOARD FOR

0 mourning spiers SI00 BUS

mg MM shown Com- »1uu B"s

en! ude bam tpoiy MICRO-

« wilt) mm marking* for COMPUTERS

M accidental sMfl

DO conuctl [2'owiion .125 centers wirh .250 row seating.Vicloi part number R681 -2. or mounts 10 receptacias plti!

• includes etcned circuits and instructions for option ofactive. puH-trp. or floating terminations

• Laid* buws + 5V»ndGND(10AMPS), ±12Vor 1AMPS) Current ratings are per MIL-STD-27S with if

Price:$29.50

Plugboards

O

8800V

Oniversal Microcomputer/processorplugboard, use with S-100 bus Com-plete wilh heat sink & hardware 5.3" x10"x1/16"

1-4 5-9 10-24

$19.95 (17.95 S15.95

8801-1

Same as 8800V except plain, less power

buses & heat sink1-4 5-9 10-24

$15.22 $13.79 JJ12.18

3682 9.6" X 4.5"

$10.97

3682-2 6.5" X 4.5"

19.81

Hi-Density Dual-ln-LinePlugboard tor Wire Wrapwith Power & Grti. BusEpoxy Glass 1/16" 44pin con. spaced .156

3677 9 6" x 4.5"

$10.90

3677-2 6.5" x 4.5"

$9.74

Gen. Purpose O.I.P.Boards with Bus Patternfor Solder or Wire Wrap.Epoxy Glass 1/16" 44pin cm. spaced .156

3662 6.5"x4.5"

$7.65

3662-2 9.6"x4.5"

$11.45

P pattern plugboards forIC's Epoxy Glass 1/16"44pincon. spaced .156

IlllHi'i'll'lt'il'TlBm

3690-12CARD EXTENDER

Card Extender has 100 con-tacts 50 per side on .125centers-Attached connec-tor-is compatible withS 100 Bus Systems. $25.833690 6.5" 22/44 pin .156ctrs. Extenders .... $13.17.

\Oi*4 14 & 16 PIN

GOLD 3 LEVEL

WIRE WRAP

SOCKES

14 - G3 100 for [$33.00

16 - G3 100 for$33.0050 of each for $35.00 J

a

PhenolicPART NO.64P44XXXP169P44XXXP

1/16 ])&M BOARD

.042 dia holes on

0.1 spacing for IC's

PRICE

1-9 10-19

$1.56 $1.40

$3.69 $3.32

TRS-80/APPLE

MEMORY EXPANSION KITS4116's RAMS

from Loading Manufacturers

<16Kx1 200ns)

8 for $75.00

Add $3.00 for programming Jumpersfor TRS-80 Keyboard

IC SOCKET SALE

14 pin tow Profile10/52.10 100/$14.0016 pin Low Profile10/52.20 100/S16.0024 pin Low Profile3/51.00 4(W$ 10.0040 pin Solder Tail3/51 00 40/510.00

24 pin Dip Plug with

cover

3/$1.0040/$10.00

MEMORY MEMORY

2102LIPC Low Power 450ns In lots of 2$2102AL-2 Low Power 250ns in lots of 25

$1.10$1.25

2114-4LlKx4450ns Low Power2114-3L 1Kx4 300 ns Low Power525?-3L4Kx1 300ns Low Power2708 8K 450ns EPROM271616K 5 Volt Only EPROM

aft

8/$45.00

8/550.00

#$50.00

$9.00

$45.00

WRAP. POST

for .042 dia. holes lJ {all boards on this page) 1|T44/Cpkg 100 J 2.34|T44/Mpkg

1000 $14.35 '

IA-13 hand installing

tool t 2.94

IM10A List $89.00 1

SPECIAL$56.95 with tube

Perfectly balanced fluorescent lightingwith precision magnifier lens. Toughthermoplastic shade. Easy lens re-moval. New wire clip design permitseasy installation and removal olfluorescent tube. Comes with plasticshield to protect tube from soiling anddamage.

Colors: Gray, Black, and Cnocolete BrownComas wltti ona 22 watt Tfl clrellna liuorvscan! lube. 3 Oloplar lana. ^

} ELECTRONICS

CA 91343

+

ORDER TOLL FREE

1 80042354

except CA., AK., HI.. Call(213) 894-8171

16723B Roscoe Blvd. Sepulveda

Terms: Visa, MC, BAC, Check, Money Order, C.O.D. U.S. Funds Only. CA residents add 6% sales taxMinimum 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 August 1979. OEM and Institutional

hone orders welcome (213) 894-8171, (800) 423-5633 ^inquiries invited

Sf£PRECISION m

TEST

EQUIPMENT

CALL FOR

SPECIAL PRICES

ORDER TOLL FREE 1-800-423-5633 ORDER TOLL FREE 1-800-423-5633

s&w L\a. ISSltlfPPOLICY

Readers who have equipment, software or other itemsto buy, sell or swap should send in a clearly typed noticeto that effect. To be considered for publication, an adver-tisement must be clearly noncommercial, typed doublespaced on plain white paper, contain 75 words or less, andinclude complete name and address information.

These notices are free of charge and will be printed onetime only on a space available basis. Nonces can be ac-cepted from individuals or bona fide computer users clubsonly We can engage m no correspondence on these andyour confirmation of placement is appearance in an issue ofBYTE

Please note that it may take three or four months for anad to appear m the magazine.*

Unclassified Ads

FOR SALE: SwTPC MP-A2 processor board (latest),with SWTBUG monitor, $105. Four 4 K program-mable memory boards with premium 350 ns lowpower chips, $65 each. AC-30 cassette interface,$50. All assembled, burned in and running. Pricesare 1 /3 less than kit. Robert Levine, 32 King St, NewYork NY 10014, (212! 691-2897 evenings.

FOR SALE: Digital Group 8 K static programmablememory board. In original package, unassembled,complete with all new chips, etc. Best offer over$80 takes. Will guarantee. Bob Waber, 6564 EMichigan Av, Apt 52, Saline Ml 48176, (313)429 7174.

FOR SALE: AMS memory system, 32 K by 16 bitsplus parity. Includes rack mount cabinet, power sup-ply, two fans, battery backup, 25 slot dual backplane, no documentation. Originally used with Ad-vanced Memory Systems 2100 processor. Has 66 Kbytes of Intersil/AMS 6002 dynamic memory 11 024by 1). $500 plus shipping. Dan S Parker, 1007 3rdSt, Davis CA 95616, (916) 758-2341.

FOR SALE: IMSAI 8080 mainframe with 11 edgeconnectors. Dual serial input/output ports. 8 K staticprogrammable memory with hardware memory pro-tect. 8080 processor board. Documentation andsoftware. ASR33 Teletype with paper tape readerand punch. $ 1 600 or best offer. Rich Levinson, 1 24Nashoba Rd, Concord MA 01742, (617)369-8471.

FOR SALE: Digital Group Z-80 system. Includesdress cabinet, 10 K static memory, TVC-64, l/O-F,1 2 A power supply, complete documentation andsoftware including Assembler, MaxiBASIC anddiagnostic/demonstration tape. Add a keyboard andmonitor and you're ready to run. $850 or will con-sider reasonable offer. W Colsher, 4328 Nutmeg LnApt 111, Lisle IL 60532, (312) 964-1 168 anytime,

FOR SALE: An IBM type 1004 used Selectric ter-minal. It can be converted into a microcomputerSelectric printer with high quality printout. Alldocuments and the reprints of the articles fromvarious journals will be included for free. The firstcashier check for $245 will get all. Please sendcheck along with your telephone number to H TChen, Physics Dept UGA, Athens GA 30602.

FOR SALE: 6502 microcomputer system built onOSI number 400 series boards. Includes 1 6 K staticprogrammable memory (four number 420c memoryboards), TIM monitor (1 K read only memory), 20mA or RS-232 serial input/output, 8 slot motherboard, MOS Technology manuals, wire wrap kludgeboard, cabinet, oversized power supply and soft-ware on paper tape. Software includes BASIC,Editor/Assembler and games. Asking $350 for allthis, you ship. Kenneth A Scharf, 34 Royal Crest Dr,Marlboro MA 01752, (6171 481-5534.

FOR SALE: PET Printer adapter with built-in powersupply and connectors, $90 complete. GE computergrade caps. 2900 mF, 350 V, $6.50, 850 mF, 450V, $3.50. All new but surplus. J Gatliff, POB 627,Eau Gallie FL 32935.

FOR SALE: MMD-1 with 256 bytes programmablememory, alt documentation plus BUGBOOKS threeand five. Excellent tutorial system. $250 plus UPS.Frank DeBolt, 1 14 Eastpines Rd, Savannah GA31410, (912) 897-1384.

MUST SELL: New, unused equipment for 8080 orZ-80 based systems with S-100 bus. Purchasedbefore deciding to buy a PET. North Star Micro-DiskSystem: controller, drive in cabinet with power sup-ply, DOS and BASIC on diskette, documentation,cost $800. North Star Hardware Floating PointBoard: greatly speeds up math calculations in BASICcost $400. Will sacrifice. Karta S Khalsa, 32 TheHollow, Amherst MA 01002, (413) 256 0391.

FOR SALE: Texas Instruments 30 cps Silent 700printer/keyboard terminal in good condition $380.Teletype BRPE 11 0 cps PT punch $160. Caelus 2.5M bytes top loading disk drive $ 700. Also NOVA extender board. NOVA wire wrap board, mountingslides, AMP and TRW connectors, etc. Nemeth, 560Upr Mountain Av, Montclair NJ 07043.

FOR SALE: Heathkit H9 video terminal with fulldocumentation, RS-232 input/output scrolling, 1 10to 9600 bps, $400 postpaid. Excellent condition.Charles E Zalenski, 9 River Ter, Johnson City NY1 3790, (607) 797-5777 days.

FOR SALE: September 1975 thru December 1978BYTE. Good condition except some response cardsused. No missing covers or pages. Sell one or all forbest total price (over $99) by end of month this adprinted. High bidders notified, send SASE if responsedesired otherwise. Jim Matthews. 2028 Merrily Dr,Montgomery AL 36111.

FOR SALE: 64 K plus memory - Interfaced forS100 buss. General Electric 16 K by 40 corememory complete with all cables, power suppliesand total documentation. Only $350 plus shippingfrom Kansas City MO. Jon Smirl, 1927 Orrington AvApt 8209, Evanston IL 60201, (312) 492-0794.After June 15th the address will be: 5817 HutsonRd, Kansas City MO 641 51, (816) 741 5688.

FOR SALE: Diablo Hytype II (1345WP) word pro-cessing printer (with metal wheel), with cover andfriction feed platen. Never used. Interfaceable toSOL, 6800 or 8080s. $1599 without power sup-ply. Roger Gersonde, 301 1 N Sherman Blvd.Milwaukee Wl 53210, (414) 332-9202 day, (414)445-7880 nights.

FOR SALE: Two 16 K 250 ns TDL static programmable memory boards, one 16 K 250 ns Seattlestatic programmable memory board, TDL Z-80 pro-cessor, SMB board and software (cassette and papertape), separately or together. All working perfectly;just changing to different system configuration.Barry Gordon, 31 E 31st St, Baltimore MD 21218.

WANTED: Radio Shack TRS-80. Any quantity, anycondition. Immediate cash available. Some usedunits available. Write with description, condition andphone number for immediate quote. DEC PDP-8/Eand M modules, RK05, ASR33, RK8E, etc. buy, sell,trade, repair, custom interface. Jim Simpson, POB632, W Caldwell NJ 07006, evenings (201)226-9185 or 342 3110.

WANTED: Information on the TC-71 sold by NCEfrom anybody who has one or has worked on one.Also, have one Radio Shack keyboard for sale,reasonable. Burl E Anderson, 71 Edwards Av,Galesburg IL 61401, (309) 342-5660.

FOR SALE: Altair S-100 bus single drive, single den-sity 8 inch PERTEC floppy disk system with AltairExtended BASIC Version 4.1, read only memorycard with Bootstrap read only memory, floppy diskcontroller boards, cables and complete documenta-tion. Excellent working condition. Reliable. Selling toreconfigure system for hard disk drive. $2800 new.Make offer. Mike Harris, 3750 S Maple Grove Rd,Boise ID 83705, (208) 362-51 54.

FOR SALE: Two 4 K by 1 6 Heath memory boards,$125 each. One H10 paper tape punch with fiverolls and three boxes of fanfold tape, $125. Twoparallel interface boards, one assembled $130, oneunassembled at $85. Digital cassette recorder,$175. James E Tarvid, 2735 N Frederick, Mil-waukee Wl 53211,(414)964-8633.

FOR SALE: 16 bit minicomputer, Interdata 5/16complete on one 1 0 by 10 inches board with 24 Kbytes programmable memory, microprogrammablewith monitor in read only memory, Micro-l/0 (input-/output) buss interfaces with microcomputer styleperipherals, ASCII terminal port and Interdatamultiplexor buss. Large Interdata software library in-cluding BOSS, BASIC, FORTRAN, FFT's, processorand memory tests, etc. Brand new with fulldocumentation, asking $2750. Also, Interdatauniversal logic interface for I/O, status and controlports with wire wrap area, $ 300. David Rosenboom,POB 543 Sta Z, Toronto, Ontario CANADA M5N2Z6, (416) 593-4179.

FOR SALE: Beehive SuperBee II video display ter-minal. 8008 microprocessor controlled. Scrollmode, page transmit or line transmit. 24 line by 80character screen, but can hold 200 plus lines in ownmemory to scroll/page backward and forward.Editing features: line insert/delete, character insert/-delete. Function keys. Tabs settable anywhere, maybe set by computer. Formatted screen (fill in blanks)can be specified. Truly the Rolls Royce of terminals.$900 or best offer. Michael J Eager, 481 CenturyDr, Campbell CA 95008. You must send SASE.

FOR SALE: Heath H8 with 48 K, two each SIO/-cassette, interface; $ 1 975. Heath WH1 7 dual flop-py disk system; $925. Heath H9 video terminal;$550. Heath cassette plus recorder;$45. All factorytested and running, some under factory warranty.Reason selling: I have two computer systems. Buypackage for $3300 or separately. All offers con-sidered. Ray King, 915 El Rancho, Pocatello ID83201, (208) 237-0979.

FOR SALE: 32 K static programmable memory fac-tory assembled and tested. Four Industrial Micro 8 KS-100 boards, cost $884 new, asking $650 (ranout of slots). Teletype ASR33 teletypewriter withpaper tape reader/punch, stand, $595 plus shipping.Mark Lyon, 6320 Red Prairie Rd, Sheridan OR97378.

WILL TRADE: Have written programs for Bally HLCwith audio cassette interface such as: CheckbookBalancer, Number Sort, Math Quiz, Tic-Tac-Toe, SlotMachine, Hourglass Graphics. I am interested in ac-quiring other Bally BASIC programs on audio cas-sette. Chuck Zellers, 2921 Roselawn Dr, GrandIsland NE 68801.

FOR SALE: Data Products portable terminal, 10 cps,hard copy, built-in modem and coupler, ASCII/-Teletype, RS-232 interface. The first check for$550 will receive this device which is excellent fortimesharing or as a microcomputer terminal. CarlEchols, 112 Creekside Ln, Noblesville IN 46060,(317) 849-5247.

FOR SALE OR TRADE: REMEX high speed paper tapereader with stop on character, $150; Burroughsdigital cassette drive, $50; 5 V at 70 A power supply, $50. All work fine. Trade any or all for X,Y plot-ter/recorder. Jim McCord, 330 Vereda Leyenda,Goleta CA 9301 7, (805) 968 6681.

FOR SALE: DEC MPS microcomputer. Includes 16 Kprogrammable memory plus 4 K bytes eraseableread only memory. Also has vectored interrupt boardwith parallel input/output. Price $395 plus shipping.Curtis P Hoffman, 169 Millham St, Marlboro MA01762, (617) 481 7827.

August 1979 © BYTE Publications Inc 263

Reedep Service

To get further information on the products advertised in BYTE, fill out the reader service card with your name and address. Thencircle 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 BYTE. This helps us bringyou a bigger BYTE.

Inquiry No.

Page No.

Inquiry No.

Page No.

Inquiry No.

Page No.

Inquiry No.

Page No.

* Abbot 221

1 AB Computers 246

8 Administrative Systems 166

4 Advanced Computer Products 2353 Aladdin Automation 131

6 Altos 41

5 American Square Computers 21912 Anderson Jacobson 203

9 Apple Computer 17

10 AP Products 95

11 ASAP Computer Products 233

19 ATV Research 230

18 Automated Simulations 184

20 Avery Label 230

21 Avionic Enterprise 219

29 base 2 inc. 109

30 Beckian Enterprises 242

34 Beta Business Systems 219

31 Biotech Electronics 35

* Bits Inc. 117, 160, 16133 Body Peripherals 120

32 Buss/Charles Floto 232' BYTE Back Issues 210

36 BYTE Books 49, 53, 85-88, 130, 155

* BYTE Subscriber 203

* BYTE WATS Line 201, 23441 California Data Corp 234

39 California Digital 239

45 Central Data 97

43 Chatsworth Data 62

47 Chrislin Industries 78

44 CODEX 54

53 COMPCO 102

54 COMPCO 11456 COMPCO 116

48 COMPRINT (Computer Printers Int'l I

46 CompuServe (MicroNET) 64, 65

49 Computer Bookkeeping Services Inc

50 Computer Dealer Co-op 105

* Computer Factory NY 226, 227

* Computer Headware 194

55 Computer Lab of NJ 19775 Computerland 8, 9

66 Computer Mart of NJ & PA 12

* The Computer Repair Co 232

68 Computer Service Center 219

69 Computer Service Systems Network65 Computers Plus Inc 201

70 Computer Store of San Leandro 23273 Computex Corp 98

71 Computhink 124, 125

40 CTC 111

78 CT Micro Computer 128, 217, 224

83 Corvus Systems 45

* Creative Software 18280 Cromemco 1, 2

85 Cybernetics Inc 156

87 Data Communications Int'l 218

89 Data Decisions 180

919496931269899102868895100115120121125130131132133134

143144145146150151152153159161162170171nc) 39 172168

142

253

169173174175176177179180190191195200201203377

207202199205215

Data Discount Center 181 216

Datamation 100 217

Data/Print Publishing Co 150 212

Datasearch 196 213

Data-Trans 257 211

Delta Products 73 214

Diablo (Div of Xerox) 74 220

Digital Engineering 197 221

Digital Pathways 137 219

Digitan 195 223DRC (CA) 188

DRC (TX) 245 204Electrolabs 254

Electronic Control Technology 99 208

Electronic Packing Co 127 198

Electronic Systems 257, 258, 259 209Electronics Warehouse 237

Emerge Systems 213 231

Escon 202 233

Falcon Publishing 158 234

FMG Corp 208 " 230

Forethought Products 103 236

GFN Industries 115 237

Gimix 83 238

GLA Enterprises 232 255

Gledhill Electronics 232 256

Godbout Electronics 175 257

Godbout Electronics 246 258Graham Dorian Enterprises Clll

G W Computers Ltd 20 281

HSE Computronics 163 282

Hayden Book Co 106 280

Heath Company 33 283

Hobbyworld 231 284

Hollywood Systems 242 285

Houston Instruments 23 286

HUH 187 290

HUH 187 291

Industrial Micro Systems 149 287Infinite Inc 234

Information Unlimited Software 201 288Intecolor (Div Intelligent Systems) 13 289

Integrand 48 293

Interactive Microware 186 292Intertec Data Systems 141

Ithaca Audio 110 299

Ithaca Audio 229 294

Jade Co 248, 249 296

Jameco 240 298

Jameco 241 ' 297

Jim-Pak 252 305Kalbro Computer Brokers (formerly 306US Brokers Co Div Kalbro Corp) 232 301

Lifeboat Associates 92, 93, 123 304

Loweco Computer 234 302

Mad Hatter Software 193 303

The Mail Mart 232 312

Marketline Systems 210 313Measurement Sys & Controls 183 315

GCMG-

GYTE's Ongoing Monitor Box

Measurement Sys & Controls 219 317Measurement Sys & Controls 234 81

Micro Age 179 311

Micro Ap 133 310

Micro Applications Group 130 314

Micro Architect 118 322MicroDaSys 5

MicroDaSys 223 324

Micro Diversions 91 325

Micromail 159 326Micro Management Systems 234 316Micro Mike's 217

Micropolis 134, 135 320

Micro Products 202 331

MicroSoftware (CAI) 188 319Microtek 15

Microware 205 329

The Micro Works 42 330

Microworld 63 328Micro-Z Co 234

Mikos 244 327

Mini Computer Suppliers 195 333

Mission Control 113 335

Mission Control 177 340

Morrow/Thinker Toys 11 341

Morrow/Thinker Toys 37 350

Mountain Hardware 58 352

Mountain Hardware 153 353

M.T.I. 157 356

NEECO 101 354

NEECO 121 357

Netronics 222 358Newman Computer Exchange 247 355Newman Computer Exchange 251 360

North Star Computer 21 363

ODS Inc 234 364

Ohio Scientific Instrument CIV 365

OK Machine and Tool 203 366

Omikron 191 368

onComputing 81 369On Line 219

Optimal Technology 185 370

Oregon Software 104 374

Osborne & Associates 169 375

Owens Associates Inc 126 376

P.K.C. Inc 234 379

Pacific Exchanges 219 378

Pacific Office Systems 253 384

Page Digital 243 387PAIA Electronics 189

PerCom Data 60 389

PerCom Data 61 390

PerCom Data 256 391

Personal Computing 79 173 393

Personal Software Inc 138, 139 394

Practical Applications 196 392

Priority I 260,261,262 401Prog 80 199Programmer's Software Exchange 230

PRS 47

Q Kit (DivJ R Conwell Corp) 57

Quest Electronics 255

RACET Computes 184

Radio Shack Auth Sales Center 219

RCA 69

The Recreational Programmer 230

RNB 129

RNB 154

Rochester Data 14

S-100 Inc 211

St Jude 232

Sara Tech 185

S C Digital 181

Michael Shrayer Software 165

Shugart Associates 6, 7

68 Micro Journal 215

SMA 80

Smoke Signal Broadcasting 29

Software Dev and Training 167

Software Dynamics 190

Software Ingenuity 230

SSM 16

Solid State Sales 250

Soroc Technology Inc 43

Southwest Technical Products Corp CM

Structured Analysis Systems 142

SubLOGIC 119

Sunflex 230

Sunny International 238

SuperSoft 151

Sybex 25

Synchro Sound 79

Tarbell Electronics 71

Technical Systems Consultants 75

Technology Transfer 122

Technology Transfer 148

3 G Co Inc 180

3/M Company 27

Robert Tinney Graphics 55

Tora Systems Inc 230

Total Information Services 190

TRS-80 Software Exchange 198

Ucatan 230

Upper Case Books 201

US Robotics 204

Vista Computer 189

V R Data 250

Wameco 244

Whales 99

Wintek Corp 230

Wintek Corp 232

Worldwide Electronics 219

XComp 151

XComp 164

Xitex212

Zg Systems 211

^Correspond directly with company.

May BOMB Maps a Winner

Article No.

ARTICLE

1 Allen: An Overview of LISP

2 Laubsch, Fischer, and Bocker: LISP Based Systems for Education

3 Prini and Rudalics: Lambdino Storage Management System

4 Kornfeld: Pattern-Directed Invocation Languages

5 Ciarcia: Anyone Know the Real Time?

6 Albus: A Model of the Brain for Robot Control, Part 3

7 Yeager: Exploring TRS-80 Graphics

8 Powers: The Nature of Robots, Part 3

9 Taft: The Design of an M6800 LISP Interpreter

10 Pratt: A Mathematician's View of LISP

11 Halsema: A Preview of the Motorola 68000

12 Stoutemyer: LISP Based Symbolic Math Systems

13 Weyhrauch and Graves: LISP Applications in Boolean Logic

14 Gass: An Overview of Long Division

Page

10

18

26

34

50

66

82

94

132

162

170

176

206

220

The May 1979 first place BOMBaward of $100 went to William DJohnston for taking a direct route tothe top with "Computer GeneratedMaps," page 10. The second placeprize of $50 went to Steve Ciarcia for"Communicate on a Light Beam,"page 32. Placing third was "Represen-ting Three Dimensional Objects InYour Computer," page 14 by RichardBlum, with Bob Haas' "Single ChipVideo Controller," page 52 takingfourth place.

264 August 1979 © BYTE Publications Inc

"■' '

Gpaham Ocpian's Integrated, Cn Line ProgramsApe Fast, Efficient, And Easy Tc Use.

Rely on Graham-Dorian, a full-linecomputer software manufacturer, forsophisticated programs — the most detailedon the market today. They're ready to go towork immediately or to be tailored for evenmore specific needs.

On-line capabilities enable you to make asingle entry and update all affected files. Aninquiry into a file at any time providesup-to-date information — no batching orsorting of input data.

The programs are easy to use. Messageson the video display guide you each step of theway. Programs make use of indexedsequential and chained files for fast andconvenient retrieval of data with efficient use ofdisk space.

Order in standard eight-inch disk eitherdouble or single density, or various mini-floppyformats. Each program contains a freeCBASIC-2, plus user's manual and hard copysource listing.

• Accounts Receivable — Records invoices, preparesstatements and trial balance reports, etc. Automaticallyreports aging of accounts in periods of 30, 60, and 90days, 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, andvendor list. Ideal for analyzing expenditures by vendor andby due date.

• General Ledger— Includes lookup and change, makingjournal entries, trial balance, transaction register, chart

of accounts, financial statements, and monthly closing.

• Job Costing — Provides work order lookup, enterslabor transactions, material set-up, progress report ofhours, labor distribution report, weekly labor reset, actualversus estimated cost per job.

• Inventory — Can be connected with cash register forpoint of sale inventory control. Number of on-line itemslimited only by disk space available.

• Cash Register— Creates daily sales reports containinginformation on gift certificates, paidouts, overrings,refunds, and how much in each category a salesperson sold.

• Payroll — Handles 100% of all necessary payrollfunctions including state income tax tables for your state.Ideally suited for both large and small companies.

• Apartment — Said one user, "Obviously, this wasdeveloped by apartment owners." The package fillsvirtually all the needs of apartment owners and managers.Ideal for projects with 75 units or more.

• CBASIC-2 — The most comprehensive and powerfulcommercially oriented BASIC available today.Enhancements over CBASIC-1: integer variables, multipleline functions, CHAINing with COMMON variables,additional predefined functions, etc. Comes free with anypackage, 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, Micropoiis MOD II, Vector MZ, andother 8080, 8085, and Z-80-based systems.See your GDSS dealer or send for informationpacket and sample runs.

G^

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 IIIcomputer and married it to the new Shugart 29 Mega-byte Winchester Drive. The result is the C3-C. This newmicrocomputer now fills the vacuum that existed forcomputer users who need more mass storage capa-bility than floppies can offer —yet until now, could notjustify the additional cost of a larger capacity hard diskcomputersuchasourC3-B 74 Megabyte disk system.

Winchester Technology

Winchester hard disk drives offer small business andprofessional computer users the logical solution tomass storage problems that are beyond the capabilityof floppy disks. In addition, Winchesterdisksfeatureatrackseek-time that is much betterthan floppies and becausethey spin at eight times the Irate of floppies, Winches-ters have a shorter latency.Both of these points reflectone remarkable speedadvantage Winchester diskshave over floppies.

Coupled to the ChallengerComputer

Ohio Scientific's award win-ning Challenger III computeris a classic. It is the only com-puter series that utilizes thethree most popular microproc-essors-6502A, 68B00 andZ-80. This tremendous proc-essor versatility enables one toutilizeaseemingly endless selec-tion of quality programs availablefrom Ohio Scientific's softwarelibrary as well as from manyindependent suppliers.

And Advanced Software

For instance, there are single user,multi-user and network operatingsystems. A complete turnkey smallbusiness package, OS-AMCAP pro-vides accounts receivable, accountspayable, disbursements, cash receipts, general ledger, etc. OS-CP/Moffers a complete FORTRAN andCOBOL package. And there is WP-2, acomplete word processing system. Forinformation management, OS-DMS,features an advanced file handling systemand program library that simplifies information storage and recall and routinely per-formstasks which usually require specialprogramming on other systems.

Yields the Microcomputer of the Future

With an eye toward the future, the C3-C, like all otherChallenger Ill's was designed with provisions for futuregeneration 16 bit microprocessors via plug-in options.There are ten open slots for lots of I/O and multi-user operation. Truly, the Ohio Scientific C3-C is acomputer with a future.

The new C3-C computerwith 29 MegabyteWinchester Hard Disk.

$9340 with 48K staticRAM and OS-65Uoperating system!

600K byteDual 8" floppys

Easy to configure

and service.

Rack slide mounting

on all subassemblies..

10 open slots for

expansion.

1333 S. CH1LL1COTHE RD., AURORA, OHIO 44202 (216) 562-3101

OEM pricing available

Circle 290 on inquiry card.