Byte Magazine Volume 04 Number 08 - LISP (THIRD SCAN)

This book was produced in EPUB format by the Internet Archive.

The book pages were scanned and converted to EPUB format automatically. This process relies on optical character recognition, and is somewhat susceptible to errors. The book may not offer the correct reading sequence, and there may be weird characters, non-words, and incorrect guesses at structure. Some page numbers and headers or footers may remain from the scanned page. The process which identifies images might have found stray marks on the page which are not actually images from the book. The hidden page numbering which may be available to your ereader corresponds to the numbered pages in the print edition, but is not an exact match; page numbers will increment at the same rate as the corresponding print edition, but we may have started numbering before the print book's visible page numbers. The Internet Archive is working to improve the scanning process and resulting books, but in the meantime, we hope that this book will be useful to you.

The Internet Archive was founded in 1996 to build an Internet library and to promote universal access to all knowledge. The Archive's purposes include offering permanent access for researchers, historians, scholars, people with disabilities, and the general public to historical collections that exist in digital format. The Internet Archive includes texts, audio, moving images, and software as well as archived web pages, and provides specialized services for information access for the blind and other persons with disabilities.

Created with abbyy2epub (v.1.7.2)

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

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

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

A Selectric typewriter interface and a daisy wheel printer

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

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

SOUTHWEST TECHNICAL PRODUCTS CORPORATION

219 W. RHAPSODY

SAN ANTONIO, TEXAS 78216 (512) 344-0241

Circle 350 on inquiry card.

Latched Outputs

4 MHz Crystal Clock

On Card

Voltage

Regulation

Parallel I/O Port #1

\

Parallel I/O Port #2

/

Parallel I/O Port #3

\

RS-232 or Current Loop I/O Port #4

/

8KR0M Capacity

IK RAM

Standard Bus

for System

Expandability

Programmable Baud Rate UARTwith

Interval Timers

4 MHz Z-80A

Completely Buffered Bus Interface

The single card computer

with the features that help you in real life

COMPLETE COMPUTER

In this advanced card you get a professional quality computer that meets today's engineering needs. And it's one that's complete. It lets you be up and running fast. All you need is a power supply and your ROM software.

The computer itself is super. Fast 4 MHz operation. Capacity for 8K bytes of ROM (uses 2716 PROMs which can be programmed by our new 32K BYTESAVER® PROM card). There's also IK of on-board static RAM. Further, you get straightforward interfacing through an RS-232 serial interface with ultra-fast speed of up to 76,800 baud — software programmable.

Other features include 24 bits of bidirectional parallel I/O and five onboard programmable timers.

Add to that vectored interrupts.

ENORMOUS EXPANDABILITY

Besides all these features the Cromemco single card computer gives you enormous expandability if you ever need it. And it's easy to expand. First, you can expand with the new Cromemco 32K BYTESAVER PROM card mentioned above. Then there's Cromemco's broad line of SlOO-bus-compatible memory and I/O interface cards. Cards with features such as relay interface, analog interface, graphics interface, optoisolator input, and A/D and D/A conversion. RAM and ROM cards, too.

Card Cage 32K BYTESAVER PROM card

EASY TO USE

Another convenience that makes the Model sec computer easy to use is our Z-80 monitor and 3K Control BASIC (in two ROMs). V^ith this optional software you're ready to go. The monitor gives you 12 commands. The BASIC, with 36 commands/functions, will directly access I/O ports and memory locations — and call machine language subroutines.

Finally, to simplify things to the ultimate, we even have convenient card cages. Rugged card cages. They hold cards firmly. No jiggling out of sockets.

AVAILABLE NOW/LOW PRICE

The Cromemco Model SCC is available now at a low price of only S450 factory assembled ($395 kit).

So act today. Get this high-capability computer working for you right away.

Q

Cromemco

incorporated Specialists in computers and peripherals 280 BERNARDO AVE., MOUNTAIN VIEW, CA 94040 > (415) 964-7400

Circle 80 on inquiry card.

BYTE August 1979

^ iim^

You can do surprising things

when you have 64 kilobytes of fast RAM

on one card

4 MHz FAST—AND EXPANDABLE

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

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

EXPANDABLE ON TWO LEVELS

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

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

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

This expandability we call your obsolescence insurance.

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

r3

BENCHMARK IT

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

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

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

SEE IT NOW

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

Cromemco

incorporated

For high reliability all Cromemco memory

cards are burned in at the factory In these

temperature-controlled ovens.

^ti^A

Cromemco Multi-User System shown with 7 stations

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

Tomorrow's computers now

2 BYTE August 1979

Circle BO on Inquiry card.

I

In the OueuG

illTE August 1979 Volume 4, Number 8

Foreground

50

66

94

132

206

220

10

18

26

34

82

162

170

176

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

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

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

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

LISP APPLICATIONS IN BOOLEAN LOGIC, by Richard Weyhrauch and Hereon Graves Perform Boolean logical operations with LISP

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

Background

AN OVERVIEW OF LISP, by John Allen Developing a feel for LISP

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

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

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

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

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

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

LISP BASED SYMBOLIC MATH SYSTEMS, by David R Stoutemyer The 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, 200 BYTE's Bits, 204 Programming Quickies, 212 Book Reviews, 218 What's New?, 225 Unclassified Ads, 263 Reader Service, BOMB, 264

page 18

1

utmt

1

1 "1

1 NAMt 1

1

AODRCSS

1 1

1

1 I

STBCer

l^agc 50

(DE TAUT(WFF1(TAUT1 (SIMP WFF)||

IDE TAUT1 (W) (COND

IdSCONST W] W) (T (TAUT

((LAMBDA (X) (MKAND (SUBST (SUBST (FIRSTVARW)))!))

(DESIMP(W)

(COND ((OR (ISCONST W) (ISVAR Wll

((ISNOT Wl (SIMPNOT (SIMP |

(dSORWl (SIMPOB (SIMP (Ih

(SIMP('hi

IdSAND Wl (SIMPAND (SIMP

(SIMP(

((ISIMPLIESW)(SIMPIMP(Slfc

(SIk

(dseouiv Wl (SiMPEOuiv (S

(S

(DE SIMPNOT (Wl (COND HiSFALSE Wl IdSTRUE Wl h (T (MKNOT W

(DE SIMPOR (Wl W21 (SIMPANDOR

IDE SIMPAND (Wl W21 (SIMPANDOR

(DE SIMPIMP IWl W21ISIMPOB ISIUP

(DE SIMPEQUIV |W1 W2I

ISIMPAND (SIMPIMP Wl W2XSIMPI

(DE SIMPANDOR I0PW1 W2 VI V21

ICOND (IISTRUE V

page 206

Cover Art: New Worlds of LISP, by Ken Lodding

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

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

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

Subscription WATS Line: (800) 258-5485

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

August 1979 © BYTE Publications Inc 3

InTEiiseYTE

About the Cover

This montli, Ken Lodding has created a fantasy on far-out appUcations witli a LISP theme. The surface of some asteroid has been discovered. A monohth engraved with the S-expression form of a LISP program is gazed upon by some astronauts. We presume some archeology of this monohth will have to be done to uncover the balance of the program. We leave it to readers familiar with LISP to identify the textbook from which these S-expression fragments were taken, and the purpose of the program.

LISP is often described as a special-purpose, listprocessing language. However, there is much more to the language than list manipulation. As an introduction to this language, guest editor John Allen provides An Overview of LISP. Page 10

In LISP Based Systems for Education, J Laubsch, G Fischer, and H D Bocker discuss the evolving computer culture and they argue that the basic concepts and approach to computation that LISP represents offers significant advantages within the contemporary educational framework. Page 18

The management of memory space is very important in any computer language. To the user of a LISP system, memory seems to magically appear out of the "ether" as needed. LISP

systems contain a storage reclamation package that scavenges new storage from discarded computations. Authors Gianfranco Prini and Martin Rudalics describe the Lambdino Storage Management System. Page 26

William A Kornfeld shows an application of LISP ideas in the artificial intelligence domain. Pattern-Directed Invocation Languages are powerful tools for representing and manipulating facts in data bases. The implementation of these ideas involves 2 facets of LISP: the generalized record structures, called property lists; and the ability to store procedures as data structures. Page 34

The addition of a realtime clock to your computer system expands the dimensions you can explore. A real-time clock is also the

basis of any multiprogramming system. Steve Ciarcia provides several different real-time clocks in Anyone Know the Real Time? Page 50

In parts 1 and 2 of A Model of the Brain for Robot Control, James Albus described a neurological brain model. Part 3 shows how this structure might be used to produce perceptual and cognitive phenomena. Page 66

The mystery of graphics on the Radio Shack TRS-80 is now dispelled. George H Yeager reveals the details in Exploring TRS-80 Graphics. Page 82

In the third part of The Nature of Robots, William T Powers describes the how and whys of his particular model of human behavior. Mr Powers develops a 2-level control-loop simulation of a 3-muscle system to further the understanding of how our own control system works.

Page 94

Other articles this month discuss many of the applications for LISP. It is only fitting that S Tucker Taft discusses The Design of an M6800 LISP Interpreter. Page 132

Several LISP articles have centered on some of the unique features of LISP to aid solution of nontrivial problems. Mathematician and computer scientist Vaughan Pratt views languages from a more distant perspective. He

shows that features found to be attractive in special cases are instances of general principles that a programming language must observe if generality and expressibility are not to be compromised. Vaughan Pratt gives us A Mathematician's View of LISP.

Page 162

A I Halsema provides us with a quick description of the M68000 and some possible applications of the new processor in A Preview of the Motorola 68000. Page 170

Are you interested in working with symbolic mathematics? Perhaps you manipulate many algebraic formulae. David Stoutemyer discusses several LISP Based Symbolic Math Systems that help perform these functions. Page 176

The actions of digital circuits may be described by Boolean expressions. These expressions can be manipulated by a program to test for correctness, simplify the equation, and many other logical manipulations. Richard Weyhrauch and Henson Graves discuss some LISP Applications in Boolean Logic.

Page 206

Most processors do not have division instructions. Therefore, if you wish to perform division, you will have to write your own. In An Overview of Long Division, Geoffrey Gass provides the background needed to write a division routine. Page 220

Publishers

Virginia Londoner Gordon R Williamson Associate Publisher John E Hayes Assistant JIM ECallihan

Editorial Director

Carl T Helmers Jr

Executive Editor

Christopher P Morgan

Editor In Chief

Raymond G A Cote

Senior Editor

Blaise W Lifflcli

Editor

Richard Shuford

Assistant Editor

Kent Richard

Editorial Assistants

Gale Britton

Faith Ferry

New Products Editor

Clubs, Newsletters

Laura A Hanson

Drafting

Jon Swanson

Production Editors

David William Hayward

Ann Graves

Faith Hanson

Warren Williamson

Art Director

Ellen Bingham

Production Art

Wal Chiu Li

Christine Dixon

Holly Carmen LaBossiere

Deborah Porter

Advertising Director

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

Traffic Department

fvlark Sandagata Thomas Yanni

Circulation Manager

Gregory Spitzfaden Assistants Pamela R Heaslip Agnes E Perry Melanie Bertoni Barbara Ellis Dealer Sales Ginnle F Boudrieau Anne M Baldwin Receptionist Jacqueline Earnshaw

Typographers

Cheryl A Hurd Stephen Kruse Debe L Wheeler Photostat Technician

Tully Londner

Comptroller

Kevin Maguire Assistant

Mary E Fluhr

National Advertising Sales Representatives:

Hajar Associates inc

East

280 Hillside Av

Needham Heights MA 02194

(617) 444-3946

621 Fifth Av

New York NY 10017

(212) 682-5844

Midwest

664 N Michigan Av

Suite 1010

Chicago IL 60611

(312) 337-8008

West, Southwest

1000 Elwell Ct

Suite 227

Palo Alto CA 94303

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

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

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

August 1979 © BYTE Publications Inc

Circle 220 on inquiry card.

#

:a--SE'

illiKibii-Ji' ip-|^f^^«ilfei -mm

m ■

i^^L.. n&- -=s

< 11 i^Vu^^^HRi

Qua

'W;

h'

r^ ■ :

3

^ = ••

1

.ipVf';^' -f

i t - s' •:

:!..- . j^..^^

"-■^ wr, •-• ~_N

ft< tfc<>

|//U\\#r

S-100 Compatibittfy. 6809 Computabilify.

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

MD-690 b Single Board Computer $239 Kit $299 Assembled

• 6809

16 bit internal arithmetic Hardware multiplication Two stack pointers Two index registers 18 addressing modes Fully relocatable code Five interrupts Up to three times the throughput of a 4MHz Z-80

Micro DaSys

mi^r^

1

P.O. BOX 36051, LOS ANGELES, CA 90036, USA

/*

Look for

Shugart driven

in personal

comptiler systems

made by these

companies

Altos Computer Systems

2378-B Walsh Avenue Santa Clara, CA 95050

Apple Computer

10260 Bandley Dr. Cupertino, CA 95014

Digital Microsystems Inc.

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

Imsal Mfg. Corporation

14860 Wicks Blvd.

San Leondro, CA 94577

Industrial Micro Systems

633 West Kctella, Suite L Orange, CA 92667

North Star Computer

2547 9th Street Berkeley, CA 94710

Percom Data

318 Barnes Garland, TX 75042

Polymorphic Systems

460 Ward Dr.

Santo Barbara, CA 93111

Problem Solver Systems

20834 Lassen Street Chotsworth, CA 91311

Processor Applications Limited

2801 E. Valley Viev*/ Avenue WestCovina, CA91792

SO Sales

3401 W. Kingsley Garland, TX 75040

Smoke Signal Broadcasting

6304 Yucca Hollyvi^ood, CA 90028

Technico Inc.

9130 Red Branch Road Columbia, MD 21045

Texas Electronic Instruments

5636 Etheridge Houston, TX 77087

Thini<er Toys

1201 10th Street Berkeley, CA 94710

Vista Computer Company

2807 Oregon Court Torrance, CA 90503

fc^.Shugart

August 1979 © BYTE Publications Inc

EditopisI

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

fay Carl Helmers

This is the August issue of BYTE. It is also the third consecutive year that we've chosen to have a computer language as an issue content theme—a choice which is reflected in a number of articles, as well as the cover painting by Ken Lodding.

In the past two years, the August issues have had themes of APL (1977) and Pascal (1978). This year, we continue the August emphasis on languages with a special issue devoted to the language LISP. An experiment in editorial policy is also reflected in this issue. John Allen was responsible for the solicitation and technical reviewing of the articles concerning LISP in this issue, truly functioning in the capacity of "Guest Editor" of BYTE. John has been involved with computation research involving LISP for some time, and he is in touch with many of the members of the artificial intelligence community. Some of his comments on LISP appeared in the March 1979 issue of BYTE in the form of a guest editorial. As a result of his earlier writings about LISP as an appropriate tool of expression for personal computing, we asked him to take charge of the LISP 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 the history of LISP's utility in artificial intelligence and computation research. The language is derived from the work of John McCarthy in the early 1960's. LISP will have its place in personal computing, alongside a number of other styles of expression. For lack of appropriate systems software, I have not personally used LISP to any extent, but I believe that I have the beginnings of an abstract appreciation of its potential. This perspective comes from personal contact with individuals who use LISP regularly, as well as reading which includes the articles in this issue as collected by John Allen.

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

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

Text continued on page 154

to 5 inmifloppy "now« works nights and weekender

"I own a fast-growing business and before 1 bought my computer system I put in a lot of late hours keeping up with my accounting and inventory control. Now the computer does my number crunching quickly, so I hove time after hours to have some fun with the system. My son and 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 all the unique features of the minifloppy. I've got to admit that at first I didn't really understand all the technical details. But now that 1 use the system every day, I really appreciate the minifloppy's fast random access and data transfer. I like the reliability, 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 good value. Do what I did. Ask for the system with the minifloppy."

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

^® Shugart Associates

435 Oakmead Parkway, Sunnyvale, California 94086

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

TM minifloppy is a registered trademark ot Shugart Associates

BYTE August 1979

Letters

More Puzzling

Puzzling Rotation Explained

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

Any number N which has a repeating, periodic decimal expansion of 1/N with maximum period length (N —1) gives rise to a magic number X = INT((1/N)*10(N-1)). As he pointed out, any multiple of X such as KxX (with K less than N) contains the same digits as does X, but cyclically rotated. N = 7 is the only example in base 10 arithmetic less than 10; larger values of N are, for example, 17 (yielding X = 0588235294117647) and 19 (which gives X = 052631578947368421). In base 8, some interesting numbers are given by N = 5 (X = 1463, base 8) and N = ll (base 10) (X = 0564272135 base 8); in base 15, a magic X is 124936DCA5B8.

I have not been able to find any magic numbers in base 4, base 16, or base 64; perhaps some reader can prove that npne exists for bases which are powers of 4.

If the length of the repetition period of 1/N is shorter than the maximum, then the magic number X generated by the above algorithm will still re-appear with digits cyclically permuted, but other numbers also appear in the course of the multiplication. Try, for example, N=13, X = 076923, in base 10.

For some insight into why these numbers are magic, you might want to try calculating by hand, long-divisionstyle, some examples like 1/7, 2/7, 3/7, etc. According to E T Bell's biographical book Men of Mathematics (page 225), one of the greatest mathematicians of all time, Carl Friedrich Gauss, worked out the decimal expansions of 1/N for all N up to 1000 while he was a teen-ager. (And in the 1790's, he didn't have a home computerl) The results of his calculations inspired him to discover and prove one of the most beautiful theorems of number theory, "quadratic reciprocity." Playing games with numbers is still a fine route to inspiration. Good luck!

Mark Zimmermann Caltech 130-33 Pasadena CA 91125

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

First, let me admit that when I glanced through the puzzle rules, I mistakenly assumed that all subtraction operations, as well as the addition operations, were prohibited in the solution. The reason I made this slip is that the problem now becomes a little harder (something akin to the business of multiplying using addition instructions only).

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

XRA A

LOOPl INR A

DCR B

JNZ L00P1

L00P2 INR A

DCR A

JNZ L00P2

HLT

This works by initializing a counter using the byte-saving exclusive-or operation. The counter is then incremented once for each time that register B must be decremented, until the register reaches zero. Repeating this sequence using register C results with the sum in the accumulator. Of course, this approach ignores overflow detection, as did the original solutions published in BYTE.

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

A,B A C LOOP

LOOP

MOV

INR

DCR

JNZ

HLT

Interestingly, this is only 2 bytes more than the optimum solution presented in the Puzzler, where subtraction is permitted.

Steve Duerksen Microcomputer Consultant 15 Dearborn St Wellesley MA 02181

Attention: Gamblers

A newsletter is being started for computer enthusiasts interested in analyzing gambling systems, the Stock and Futures Markets, etc. The first issue will be priced at $1 and those interested should indicate preference for form, content, and subscription rate. Contact Michael R Downing, c/o Joe Computer, 22713 Ventura Blvd, Suite F, Woodland Hills CA 91364."

CompulerLcmcl®

Huntsville, AL Phoenix, AZ Little Rock, AR Belmont, CA Dublin, CA El Cerrito, CA Hayward, CA Lawndale, CA Los Altos, CA Los Angeles, CA Marin, CA Pasadena, CA Sacramento, CA Saddleback Valley, CA San Bernardino, CA San Diego, CA San Diego East, CA San Francisco, CA San Jose, CA Santa Maria, CA Santa Rosa, CA Thousand Oaks, CA Tustin, CA Walnut Creek, CA Colorado Springs, CO Denver, CO Fairfield, CT Hartford. CT Newark, DE Boca Raton, FL Ft. Lauderdale, FL Jacksonville, FL Atlanta, GA Honolulu, HI Arlington Heights, IL Downers Grove, IL Mundelein, IL Niles, IL Oak Lawn, IL Peoria, IL Indianapolis, IN Overland Park, KS Louisville, KY Boston, MA Rockville, MD Grand Rapids, Ml Rochester, Ml Southfield, Ml Bloomington, MN Hopkins, MN Springfield, MO St. Louis, MO Nashua. NH Cherry Hill, NJ Bergen County, NJ Morristown, NJ Buffalo, NY Ithaca, NY Nassau County, NY Charlotte, NC Cleveland East, OH Cleveland West, OH Columbus, OH Oklahoma City, OK Portland, OR Harrisburg, PA Paoh, PA Austin, TX Dallas, TX

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

12051 539-1200

Call D Call D

Call D Call D

Call D

1602) (501) (415) (415) (415) (415) (213) (4151 (213) (415) (213)

irectory In (714) (714) (714) (714) (415) 1408) (805) 1707) (805) (714) (415) (3031 (303) (203)

rectory In (302) (305) (305) (9041 (4041 (808) (3121 (312) (312) (312) 1312) (309)

rectory In 1913) (5021 (617) (3011 (616) (313) (313) 1612)

rectory In (417

rectory In 16031 (6091 (201) (201) (716) (607) (516) (704) (216)

rectory In (614)

rectory In (503) (717)

rectory In (512) (214) (713) (713) (801) (7031 1206) (206) (206) (608) (414)

956-5727 224-4508 595-4232 828-8090 233-5010 538-8080 371-7144 941-8154 776-8080 459-1767 449-3205 formation 770-0131 886-6838 560-9912 464-5656 546-1592 253-8080 928-1919 528-1775 495-3554 544-0542 935-6502 574-4150 759-4685 255-9252 formation 738-9656 3681 122 566-0776 731-2471 953-0406 521-8002 255-6488 964-7 762 949-1300 967-1714 422-8080 688-6252 formation 492-8882 425-8308 235-6252 948-7676 942-2931 652-9000 356-8111 884-1474 formation 883-7085 formation 889-5238 795-5900 845-9303 539-4077 836-6611 277-4888 7422262 53&8500 461 1200 f ormanon 888-2215 (ormation 620-6170 763-11 16 lormation 452-5701 363-2223 9 7 7-0909 488-8153 364 4416 893-0424 746-2070 8389363 581 0388 273-2020 466-8990

22 35 083

07 221 9777

62 55 81

Call Directory Information

29-3753

(02) 511-34-45

14161632-5722

Call Directory Information

(416) 485-6700

1204) 772 9519

58-36-66

8 August 1979 & BYTE Publications Inc

Circle 75 on inquiry card.

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

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

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

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

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

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

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

FORTHEHMIE

ComputerLand Corp.

14400 Catalina St.

San Leandro, CA 94577

(415)895-9363

Franchise Opportunities Worldwide.

.t ComputerLand Corp., 1978

ll

*\

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

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

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

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

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

CompulerlciAcI

WE KNOW SMALL COMPUTERS

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

BYTE AuBusl 1979 9

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 a beautiful blend of foresight and fortuity. LISP is a programming language, often characterized as a special purpose list-processing language. But LISP is no more a special purpose programming language than mathematics is a special purpose language for floating-point computations. Just as there's more to mathematics than the accounting and bookkeeping properties present in "general purpose" programming languages, there's much more to LISP than "just another programming language."

The best description of the LISP programming language is that it is a high level machine language. That is, it shares many of the facets of contemporary machine language —the necessity for attention to detail and the freedom to manipulate the machine's data and programs without restriction— yet LISP is high level in that the language contains the expressive power and convenience of traditional high level languages. The contradiction is resolvable: a LISP machine is just a higher level machine whose data items are organized differently from the binary bit patterns of most machines, and the LISP programming language is the assembly language for this machine.

LISP Data Structures

Before introducing the constructs of the language, we must discuss the data items of the language. In a traditional language we would find numeric constants. In LISP, the analogous constants are called atoms. An atom is either a numeral or a literal atom —a string of upper case alphanumeric characters such that the first character in the string is an alphabetic character. For example, ABC123, 12, and MI are atoms, but 1A2 and (A B) are not.

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

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

• Given any collection e,, ..., 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

]ohn Allen, our guest editor for this special LISP theme issue, is the author of the hook Anatomy of LISP and currently product engineer at Signetics Corporation. He is also founder of The LISP Company, an organization to produce LISP related products.

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

Atoms and lists are the basic LISP data structures. However, a robust production version of LISP includes many more data objects including arrays, arbitrary precision numbers, strings, and representation of functions as data objects. Regardless of the scope of the data representations in a specific LISP implementation, it is a fundamental property that all data objects are "first class objects," constructible, testable and available without restriction. This uniform behavior of data is a property shared by few other languages.

First

We need some operations on these data structures. Just as we should have a subtraction operation in arithmetic machines to decompose numbers, we have LISP instructions to decompose lists. One such operation is first; it extracts the first element of a list. For example:

firstKA B C)j gives: A

This example is written in LISP's external syntax called meta-LISP or M-LISP; it is an instance of prefix notation. The programming language, the ititernal notation, is called S-expression LISP or S-LISP. Initially, we will present algorithms in M-LISP since it is closer to traditional programming notation. However, since S-LISP is our machine language we will insist on developing facility with that notation.

In a traditional architecture, both instructions and data are stored in memory. The processor usually has complete freedom to manipulate any of these objects as either data or instructions. An object accessed by the instruction counter is interpreted as an instruction; other accesses to items usually imply a data interpretation. One goal is the representation of LISP instructions as data items in the LISP machine such that the processing unit of the LISP machine will have equal flexibility in interpreting the encoded information. An object may sometimes play the role of program, and sometimes of data.

To represent program as data we must specify a translation of each M-LISP instruction into a list representation:

External Notation

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

List Notation

f<operation>^< operand> i'^... < operand>„'j

10 August 1979 © BYTE Publications Inc

Circle 255 on inquiry card..

DOUBLE DENSITY

SOLID SAVIN

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

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

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

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

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

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

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

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

*CP/M is a trademark of Digital Research.

CS^Morrow makes disk memory for

Thuiker Toys"

The raised T means perform the translation process recursively.

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

An operation in external notation is something like first or +, whereas an operationT must be an atom or a list. We translate the operation name to an appropriate atom: first translates to FIRST, and + to PLUS.

The operand of firstKA B C)l is the constant (A B C). We will translate a constant a to the construct (QUOTE a). For example, we represent the constant (A B) as (QUOTE(A B)). This solution is similar to the quoting convention of natural language: Cleveland is a city, but "Cleveland" is a 9-letter word. The QUOTE operator is more than simple pedantry; it will play a critical role in the fetch operation of the LISP machine.

To summarize, our list notation consists of a representation of the operation followed by the representations oi the operands. Those operands themselves may specify operations, or they may specify constant operands by using the quote operation. For example, we represent firstKA B C)I as (FIRST (QUOTE (A B C))) and (FIRST (FIRST (QUOTE ((A B) C)))) represents firstlfirstl((A B)

cm.

Values are obtained on a LISP machine in much the

computer mart of new jersey computer mort of penrisylvonio

5S

■-■ the k^i I microcomputer people®

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

Compufw Mort of H*w J«wy

SOI RsuM 37 ll>lln. KJ 0S60O (104)a8»««00

STOUHOUM TuM.-Sot.10am-6pm TuM. 6 Thun. 'till 9pm aOSEO MONDAYS

Computer Mort of Ponnsylvanlo

9S0D*KolbPlk* KlngolPniulo. PA 494M (91S)ai5-2S80

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

The leftmost FIRST must wait since its operand requires evaluation; similarly the next FIRST must wait to take care of its argument. But its argument is a quoted expression. QUOTE is kind, requiring no further computation, but it always returns its argument as value. Here it returns the list ((A B) C). The inner FIRST completes now, returning (A B) to the outermost FIRST; it is nudged into activity and finally 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 ... ), therefore it is simply a list; ie, a constant. The final result of the evaluation will be the atom FIRST (since the computation encodes the M-expression first[(FIRST (QUOTE (A

B)))]). Since quoted expressions appear so frequently, we will introduce 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 times throughout the LISP articles in this and following issues.

Rest

We also have an instruction named REST. You may think of the instruction as either a machine operation or as the translation of an M-LISP expression. REST, like FIRST, expects a list as its argument. However, REST returns a value representing the list with the first element removed. The expression:

yields:

(REST '(A B O)

(BC).

Similarly, the expression:

(REST '(B O) yields:

(C)

What about (REST '(C))l When we remove the last element from a list we get the empty list. Its representation in LISP is ( j.

The operations first and rest are called selector functions since they are used to select components from a composite data object.

12 August 1979 © BYTE Publications Inc

Circle 66 on inquiry card.

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

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

Our 8070 Series I Business System is a perfect example of rel iable, yet extremely reasonable products. Its a complete 8080A microcomputer system that includes the following standard features; A dual floppy disk drive with 591K bytes of storage; a 19" color data display with an easily readable 80 characters x .. Jl

48 line format; and a 60 CPS Impact Matrix printer All for a remarkable -$7000, single unit price.

And that price doesn't stop at hardware. Intecolor's 18K Business BASIC in ROM has 16 digit accuracy and a

PRINT USING feature that tailors output to any specifications.

If you need greaterstorage capabilities, choose the 8071 —same system, but with a dual doubleheaded floppy disk drive. Giving you 1182K bytes of storage, for only S800 more, single unit.

Either way the Intecolor Series I can relieve your business of a considerable amount of paperwork, without costing you a great deal of money (Terms—5% discount for prepayment, or net 20 days.)

For more information and a complete demonstration, see your nearest computer store, or contact you r ISC sales representative. Color Communicates Better

'^

Unretouched photo of screen

Furniture not included

U.S. domestic prices

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

Angeles 213/476-1241, l^ounlain 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-55C5,

Fl Lauderdale 305/776-4800, Melbourne 305/723-0766, Tallahassee 904/876-6642, GA: 404/455-1035, HI: 808/524-8633, ID: (UT| 801/973-7969, IL: INo 1 312/564-5440, (So.I (MOI 816/765-3337

IN: (ID 312/564-5440, IA:(MOI 816/765-3337 KS: (MO) 816/765-3337 KY: 606/273-3771, LA: 504/626-9701, ME: (GAI 404/449-5961, IMD: (VAl 703/569-1502,MA: (GAl 404/449-5961,

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

NV: (AZl 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, Columbus 614/436-2051,

OK:(TX)214/840-2169, OR: 503/620-5800, PA: 412/922-5110, Rl: (GAI 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: Brussels02-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: Bournemoulh 0202-293-115,

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

Dalamex. Ltd (Dislribulori Dorval 514/636-9774, Otiavia 613/224-1391, Toronto 416/787-1208, Vancouver 604/684-8525, CENTRAL & SOUTH AMERICA & CARIBBEAN: (GAI 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 891143, 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 servrce mother countries contact ISC headquarters in Norcross, GA,, U,S,A.

Intelligent Systems Corp. n 5965 Peacmree comers East n Norcross, GA 30071 D Telephone404-449-5961 D TWX 810-766-1581

Circle 176 on inquiry card.

BYTE August 1979 13

An operation which builds new objects is a constructor.

List

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

yields:

yields:

(LIST 'A 'B 'O

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

(2B)

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

yields:

(LIST)

().

t

At last... the mechanical Interface

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

^

30 Day Delivery User list

5395°°

Price increase September 1st. Dealer Inquiries Invited.

<i^

O

<^<>^°°'

^>^' <^^

^c

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 lor more Information.

Incorporated \!^ 3100 Monroe Avenue, Rochester, New York 14618

J

As with the other instructions, except QUOTE, LIST can 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 have responded (A (B) C). There's an equal probability that you got mired in parenthesis-counting and responded ( 7 $ f i). One solution is to resort to M-LISP and recast the expression as: listlfirstl(A)l:rest[(A B)I;C1

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

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

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

or:

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

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

Concat

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

Note that LIST takes an arbitrary number of arguments and builds a list whose elements are those arguments. On the other hand, CONCAT takes only two arguments, an element and a list, and adds the element to the front of the list. For example:

gives:

while:

gives:

(LIST '(A) -(O)

((A) (O)

(CONCAT '(A) '(C))

((A) C)

14 August 1979 © BYT': Pufalicalions Inc

Circle 326 on Inquiry card.

what makes the Microtek Printer so different? Nothingl

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 minute nominal throughput

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

• Vertical Format Unit

• 96-character ASCII (upper and lower case)

• Forms width continuously adjustable between 4.5 inches and 9.5 inches (including sprocket margins)

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

(714) 278-0633

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

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

D Parallel interface *? $750. D Serialinterface "^ $835. D IEEE-488 interface @ $895

n Check or Money Order enclosed. D Ctiarge my VISA card. D Charge my Master Ctiarge card.

name (please print)

card number

address

cardholder's signature

city

state

zip

exp date

phone

Add $1 5.00 for packaging & shipping.

Dealer inquiries invited.

California residents add 6% sales tax.

Circle 209 on inquiry card.

BYTE August 1979 IS

Why not

kill two birds

with one stone?

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

Serial Interface.

The RS-232 standard assures maximum compatibility with a variety of serial devices. For example, with the AIO you can connect your Apple* to a video terminal to get 80 characters per line instead of 40, a modem to use time-sharing services, or a printer for hard copy. The serial interface is software programmable, features three handshaking lines, and includes a rotary switch to select from 7 standard baud rates. On-board firmware provides a powerful driver routine so you won't need to write any software to utilize the interface.

Parallel Interface.

This interface can be used to connect your Apple* to a variety of parallel printers. The programmable I/O ports have enough lines to handle two printers simultaneously with handshaking control. The users manual includes a software listing for controlling parallel printers or, if you prefer, a parallel driver routine is available in firmware as an option. And printing is only one application for this general purpose parallel interface.

Two boards In one.

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

2U6 Walsh Avenue

Santa Qara, California 95050

(408)246-2707

These constructors can be used at anytime to compose new data objects. Now we can decompose lists and make new ones. We can perform evaluation of simple expressions, much like the facilities of a hand calculator. Soon we will show how to add new operations to the LISP calculator.

Recognizers and Predicates

In traditional assembly language programming we find instructions which test for zero or compare two numbers. In LISP we manipulate data objects built from atoms and lists. The "zero" of lists is the empty list, (); and so we include a test for (). Since elements of a list can either be atomic or lists themselves we include a test for "atomness", atom. Finally, we must be able to distinguish between two nonidentical atoms using an equality test.

All LISP operations compute values. The values which our previous operations produced were atoms or lists; these new operations called predicates produce "truth values" —true or false. In M-LISP, we represent true and false as t and /; however, in S-LISP, these truth values must be represented as data items, so we pick the atoms 7 and NIL as their representations:

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

two-operand instruction which gives value T just in case those operands represent the same atom.

ATONi: This single-operand instruction gives T if its operand is an atom, and gives A//L 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 ML (EQ 'A 'B) gives ML (NULL '(A B)) gives ML

M-LISP

atomlAj gives f atoml(A)j gives / eqlA;BI gives / nullKA B)l gives /

Since the predicates are value-producing they can be 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 different character than eq and null Namely, atom is performing a "type test" on a data structure; such predicates are called recognizers.

Text continued on page 118

Circle 335 on inquiry card.

Circle 9 on inquiry card.'

Howtoiwy personal con^uter.

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

A hobbyist in Michigan starts a local Apple g Computer Club, to challenge other members €Jl ^° computer games of skill and to ^%^ trade programs.

^^ Innovative folks everywhere , have discovered that the era of the

; personal computer has already begun—with Apple. Educators and students use Apple in the classroom. Businessmen trust Apple with the books. Parents are making Apple the newest family pastime. And kids of all ages are learning how much fun computers can be. Circle 9 on inquiry card.

>lsit 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 show you exactly what you can use a personal computer for.

What to look for

Your neighborhood computer store has several different brands to show you. Chances are the salesman will recommend an Apple Computer. Apple's the one you can program yourself. So there's no limit to the things you can do. The more you use your Apple the more uses you'll discover So it's important that Apple is the computer with more expansion capability. You can't outgrow Apple.

It's your move

Grab a piece of the future for yourself—we'll give you the address of the Apple dealer nearest you when you call our toll-free number. Then drop by ot

and sink your teeth into an Apple. j>Nff.C

(800)538-9696. --"OIV*^

In California, (800) 662-9238.

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 computer systems will become as powerful as today's computer systems used in artificial intelligence research. Within the artificial intelligence community people are concerned about possible uses of computers in an evolving computer culture. The basic goals of artificial intelligence are to:

• synthesize systems that behave intelligently;

• understand intelligence in terms of computational concepts.

The human needs a personal computer system will one day help to satisfy cover the range of playing, learning, recreation, artistic creation, and personal assistance to expand one's own memory and reasoning power. Using a computer to build an intelligent tutor and an educational environment that stimulates learning by discovery (ie: through simulation, exploratory problem solving) are of central importance to artificial intelligence. Although canned software for educational applications will be widely available there remains a need for programming to tailor the system to the user's individual needs and requirements.

Our notion of what programming is all about will drastically change: it will cover a wide range of possible relationships between man and machine where a person creates and manipulates dynamic information structures according to personal tasks and taste. Program writing, in the historical sense of writing individual statements, is just one aspect of using a computer and will become less relevant, if not obsolete, compared to the understanding and modification of prefabricated software components.

LISP Based Systems

Historically, LISP has been used as the basic tool of artificial intelligence since the computational ideas embedded in it, together with the program development system built around the language, lend themselves most naturally 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, illstructured, poorly understood problems at already early stages (eg: problem formulation, approximations to the final solution, support of debugging and program modification), rather than only the final step of coding a well understood problem or an already known algorithm in a given programming language. Program constructs and programming methodology in the LISP culture were particularly concerned with cognitive efficiency (ie: to make programs understandable by humans). It was one of the gratifying results of this work that these programs, with the help of program transformation systems, can also be proved correct and run efficiently.

Designing a Personal Information System

Suppose you want to design a personal notebook containing people's names, addresses, interests, programs they use, messages you are sending them, appointments you make with them, etc. Such a system will consist of frequently changing information structures. As a personal information system it should model and extend that information system in our head. By using the system, we will feel the need for new features that should be incorporated (ie: an easy to learn command language or an instructional help facility to introduce a new user). A more advanced version of the system should be able to perform simple deductions. For instance, if we tell the system at some point of time, "My friend Jim has moved to San Francisco" and later ask it to, "List all friends in California," Jim should be included in the set. Eventually this system could "grow up" to become a personal assistant.

We will show that the computational ideas of LISP, as developed in the artificial intelligence community, are particularly well-suited for this kind of application.

Basic Computational Ideas

We list those ideas which are relevant to the design of complex programs and transcend the capabilities of other languages and systems. In almost all interesting educational applications of computers, complex programs will be involved:

18 August 1979 © BYTE Publications Inc

• Incremental design. E Sandewall feels that interactive middle-out programming (besides top-down and bottom-up approaches) is a natural way to build a complex system in a process of structured growth. We construct a simple version of the system, try it out, identify our misunderstandings and debug it. This knowledge, and our critique, will lead to modified specifications, and a new cycle of exploratory programming begins. Since LISP systems are incremental, old modules may be modified and new building blocks can be added with an immediate effect. The compilation of fully debugged code is available as an optional feature.

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

We define data structures abstractly through functions: constructors to build a datum; selectors to extract an attribute, and predicates to examine the type of a data structure. Including other representations, such as graphics, is easy since most LISP systems contain a higher level assembly language that gives access to the machine level.

• Data-program equivalence. A typical strategy to attack problems in artificial intelligence is to define layers of languages, each suited to a particular level of abstraction (eg: <user interface language > — < 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))))

4J^

User Input Translation

Evaluation System Output

List of Addresses

Table 1: A typical problem approach may be to take a user command and translate it into program instructions. These program instructions are then executed by the computer. This is an example of taking a high level user language and converting it into efficient machine language.

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

LISP facilitates this approach since the function EVAL lets the user evaluate any data as a program! The inverse is also true; it is quite easy to write programs which manipulate other programs as if they were data.

• Pattern matching and data driven programming. The system should respond to situations where the order in which certain actions are to be taken is not specified in advance. Furthermore, in many situations it will be impractical to specify a question literally: we might have to leave slots open which can be filled in by the system, using the knowledge contained in its data base. In our example, many other types of requests are possible. To translate them, patterns to decompose and recompose them can be defined.

NAME

1

INTERESTS

-

LISP

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 only move in one direction, forward in the direction of the arrow. In a doubly linked list, the user can retrace the steps taken to arrive at the present location.

August 1979 © BYTE Publications Inc 19

Pattern languages like these are easy to implement in LISP (see Winston, Bocker and Fischer, and Kornfeld's article in this issue). Constructs consisting of condition action pairs form the basis of production systems as described by Newell and Simon. Procedure calls are triggered (and thus, data structures are manipulated) by the global state of a world (ie: the data/knowledge available) and not according to a predefined calling structure.

• Property lists. Property list-like structures form the basis of an associative memory. They were developed in list processing languages (eg: IPL-V and LISP) and have been generally (ie: in many programming languages) accepted as constructs which are conceptually easy to handle.

They allow procedures to be linked to data items and evaluated depending on the current state of the system. For example, to update the address of Jim we may write:

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

The first argument of APPLY is an address updating function, which is stored on the property list of JIM under the property UPDATE/ADDRESS. The second argument of APPLY is the argument the update function will become applied to. In our example these data will be requested from the user through the function READ.

The educational value of these ideas is that they provide powerful ideas for the personal computer user who wants to shape a reactive environment to his needs.

LOGO Based Learning Environments

LOGO is, up to surface structure, more or less equivalent to LISP. LOGO as a programming language (developed by W Feurzeig and S Papert) was designed and developed to form the basis for learning environments in which the student taking an active role can learn about computers and use them to investigate issues in education and cognitive psychology. The LOGO system supports two different (by no means disjoint) environments: the Turtle, Graphics and Musicbox world (ie: peripheral devices which are controlled by a command language) and the LISP world. A well-engineered programming environment, based on an LSI-11, is commercially available as a stand alone, personal computing system. It integrates the language processor, editor, tracer, debugger, file management, document facilities and text processing into one system (comparable efforts to build similar systems around Pascal are still in their infancy).

LOGO projects working on computers and education can be found in many places around the world. We briefly summarize the experiences we gathered in our project in Darmstadt (see also Fischer):

• Basic computational ideas like recursion, the con

/T

K

G. W. COMPUTERS LTD.

This is how your business appears on the screen

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

♦PROGRAMS ARE INTEGRATED - SELECT FUNCTION BY NUMBER

=\

01 = ENTER NAMES/ADDRESS, ETC 13 =

02 = *ENTER/PRINT INVOICES 14 = 03=*ENTER PURCHASES 15=

04 = *ENTER A/C RECEIVABLES 16 =

05 = *ENTER A/C PAYAI3LES 17 = 06=ENTER/UPDATE INVENTORY 18 =

07 = ENTER/UPDATE ORDERS 19 =

08 = ENTER/UPDATE BANKS 20 =

09 = EXAMINE/MONITOR SALES LEDGER 21 = 10=EXAMINE/MONITOR PURCHASE LEDGER 22 =

11 = EXAMINE/PRINT INCOMPLETE RECORDS 23 =

12 = EXAMINE PRODUCT SALES 24 =

WHICH ONt? (bNTER1-24)

ttich program goes to sub menu, e.g.: (9) allows. A, LIST ALL SALES; R, MONITOR SAI.l S HY STOCK CODES; C, RFTRIf.VE INVOICI: Dl TAILS; D. AMEND LEDGER FILES; t, 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 %7^{). or full listing, $.100.

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

PRINT CUSTOMER STATEMENT

PRINT SUPPLIER STATEMENTS

PRINT AGENT STATEMENTS

PRINT TAX STATEMENTS

PRINT WEEK/MONTH SALES

PRINT WEEK/MONTH PURCHASES

PRINT YEAR AUDIT

PRINT PROEIT/LOSS ACCOUNT

UPDATE END MONTH EILES

PRINT CASH ELOW EORECAST

ENTER/UPDATE PAYROLL {NOT YET AVAILABLE)

RETURN TO BASIC

confacL Tony Winter on 01-636-8210 21 B Dryden Chambers 119 Oxford Street London W1, UK

circle 153 on inquiry card.

J

20 August 1979 © BYTE Publications Inc

Circle 285 on inquiry card.

North Star Announces —

Double Density x 2 Sides = Quad Capacity!

The North Star Horizon now delivers quad capacity by using two-sided recording on our new mini drives! That's 360,000 bytes per disl<ettel A four drive North Star system accesses over 14 megabytes of information on-iine! Thinl< of the application flexibility that so much information storage can give you I

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

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

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

NorthSfraf

.^

North Star Computers

1440 Fourth Street

Berkeley, CA 94710

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

d

•ilfjtA»1»AKKK«IS:i*K:VM.:cV'Ki:;3

NortriSfcif

TRADITIONAL APPROACH

LOGO APPROACH

MATHEMATICS

APL

PASCAL

Figure 2: Two different approaches to bridging the gap between natural language and the formal symbols of programming languages 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 having to become involved with the language of mathematics.

cept of an interpreter, list processing and those mentioned above can be naturally integrated into interesting projects, caused no difficulties for students to understand, and can be considered as powerful in the sense that they are widely applicable (even in problem solving situations without the computer).

• Graphic devices, music box, etc, provide strong motivational support, excellent entry points to explore the world of computation because early success is possible and interaction with the machine is based on observable and intuitively understandable events.

medium to test one's own understanding of concepts and of poorly understood systems (ie: if we really understand something, we can write a computer program that will do it).

• Group projects are easy to realize since the program development system supports the organization of modules as building blocks. In our example of a personal information system, one person could write the module to translate inputs into an internal representation, another person may write a deductive component and a third person could deal with the problem of how to answer requests or questions from the user.

• Our experiences, especially with young students, indicate that programming in LOGO may serve as a bridge between natural language communication and reasoning and the formal and abstract symbols and reasoning in mathematics and programming languages. The findings differ greatly from the traditional approaches where computer scientists try to keep things linked as closely as possible to mathematics, assuming that mathematics could serve as a bridge to programming (which we all know is questionable because most people are more alienated by mathematics than attracted). Figure 2 illustrates the two different approaches.

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

• Our programming methodology differed in an essential way from other approaches. Procedures, including parameters and recursion as basic control structures, were introduced long before the concept of a variable was mentioned. These two aspects are not independent of each other. They basically introduce the learner to "pure LISP" (ie: a version of LISP without variables) and avoid the problems associated with side-effects and global variables.

• Our empirical evidence indicates that learning other programming languages (eg: BASIC, Pascal) after having learned LOGO was easy because constructs in these languages could be easily mapped into known concepts, whereas this statement does not hold in the other direction.

• Our programming environment stimulates learning by discovery. New concepts are discovered by solving a problem through incremental writing and debugging of programs. The computer serves as a

Intelligent Computer Assisted Instruction

Despite our belief that the most important impact of computers for educational applications will be the active independent use described in the previous section (the

22 August 1979 © BYTE Publications Inc

Graphics for small systems were too expensive...

TM Until Now

digital plotters

The perfect small system output device

• Displays data In easy to read graphical format

• Bothi serial and parallel Inputs built-in

• Uses standard 8V2" x 11" paper

• Plotting speed up to 2.4 Ips

• Resolution of botti 0.01 and 0.005 in.

• Baud rate and step size easily changed

• Completely assembled and ready to use

• Priced at $1085*

AlPM

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 selectable at the connector

• Accuracies of ±0.015 in. (0.4mm)

• Optional LG display shows

actual values being Inputted

• Digitizing surface 11" x 11"

• Priced at $795*

11

'^

ii,

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

liousl:oii

insTrument

ONE HOUSTON SQUARE (512) 837-2820

"the graphics - recorder company" EUROPEAN OFFICE

DIVISION OF BAU8CH & LOMB (^

AUSTIN, TEXAS 78753 TWX 910-881-2022

Rochesterlaan 6 8240 GIstel Belgium Phone 059/277445 Telex Bausch 81399

Circle 172 on Inquiry card.

BYTE August 1979 23

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

The traditional computer aided instruction was modelled on a reduced view of learning: present a stimulus item to the learner, receive a response and give a reinforcement. More advanced programs select the material to be presented according to how well the student is doing, or give him a possibility to select the particular topic he wants to study or practice. From a more comprehensive view of learning, it is essential to diagnose the learner's cognitive development and support him through a tutor who is himself an expert in the problem and can infer the conceptual difficulties this learner may encounter. A prototype is the Buggy program written by artificial intelligence researchers J Brown and R Burton, which goes far beyond traditional computer aided instruction programs by integrating artificial intelligence techniques 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 a few cases but tend, rather, to answer a different question or compute a result according to a different algorithm. They behave, in many cases, with absolute consistency with respect to their own theories. To provide real help, the teachers have to deduce the underlying misunderstanding (ie: the deep structure) from scarce observations on the surface. Buggy is a program which does this for simple arithmetic skills. The knowledge to draw an inductive inference is stored in a diagnostic model, which tries to capture possible deviations from the correct way of doing the task.

Another example that uses a diagnostic model is the Wumpus advisor (called Wusor II), which teaches inference strategies in the Wumpus game created by Gregory Yob. The program teaches the knowledge of an expert player by tailoring its advice and explanations to its current estimation of the player's knowledge. These programs may serve as prototypes of intelligent tutoring programs to teach the playing of games.

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

A crucial component of friendly, intelligent, computer aided instruction systems is natural language (eg: the Sophie system). Rapid advances in artificial intelligence make it seem likely that natural language interfaces will be available for many applications of interest to the general public.

It is not possible to explain the details of these programs here down to an implementation level, because these systems are large and complex as compared to current standards. The historical evidence may suffice to show that all these systems have been implemented in large sophisticated LISP systems (eg: InterLISP) which have matured over more than a decade to support the development of systems of this size.

Conclusions

LISP remains a tool in artificial intelligence and educational research, even though it has contributed greatly to our understanding of computational issues and their relevance to intelligent behavior.

We do not want to give the impression that all interesting uses of computers are centered around LISP. Some of the most innovative work was done by the Learning Research Group at Xerox Research Center in their development of the Dynabook and the Smalltalk language.

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

Bibliography

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

2. BROWN, J S, BURTON, R R, and BELL, A G, "Sophie: A Step Toward Creating a Reactive Learning Environment," International Journal of Man-Machine Studies, volume 7, 1975, pages 675 thru 696.

3. BROWN, J, and BURTON, R, "Diagnostic Models for Procedural Bugs in Basic Mattiematical Skills," Cognitive Science, volume 2, 1978, pages 155 thru 191,

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

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

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

7. FEUERZEIG, W (editor). Programming Languages as a Conceptual Framework for Teaching Mathematics, BBN Report Number 2165, Cambridge MA, 1971.

8. General Turtle Corporation, 120 Boulevard Industriel, Boucherville Ouebec, 34B 2X2 CANADA.

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

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

11. McCarthy, J, "A Mlcromanual for LISP—not the Whole Truth," SIGPLAN Notices, volume 13, number 8, August 1978, pages 215 thru 216.

12. PAPERT, S, "Uses of Technology to Enhance Education," Logo Memo 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 Computer assisted Instruction at Stanford, TR number 265, IMSS, Stanford University, Stanford CA, 1975.

15. WINSTON, P, Artificial Intelligence, Addison Wesley, Reading MA, 1977.

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

24 Aususl 1979 & BYTE Publications Inc

SYBEX

LEADER IN

COMPUTER EDUCATION

■'■'■■■ -■■ SYBEX. INC.

2020 Milvia Street

Berkeley, California

94704

D PROGRAMMING THE Z80, rel C280, by Rodnay Zaks, 330 pp $11,95

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

U 6502 APPLICATIONS BOOK, ref D302, 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

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

U FREE DETAILED CATALOGUE

TO ORDER:

By Phono:(415) 848-8233. Visa, Maslercharge,

American Express. By Mall: 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

COMPANY ADDRESS _ CITY

.STATE.

.ZIP,

n Charge my: D Visa D Mastercharge D American Express

Number Exp. Date,

Signature

Circle 358 on inquiry card.

BYTE Aususl 1979 25

The Lambdino Storage Management System

Gianfranco Prini

Instituto di Scienze dell'Informazione

Universita' di Pisa

Corsa Italia 4(X 1-56100 Pisa ITALY

Martin Rudalics

Institut fuer Mathematik

Johannes Kepler Universitaet Linz

A-4045 Linz/Auhof AUSTRIA

Lambdino is a statically scoped dialect of LISP (see glossary for definitions). The name Lambdino is a combination of lambda, Landin, and ino, where lambda stands for itself, Landin refers to a person, and ino is an Italian suffix for small. The reference to Peter Landin is due to the fact that he designed the first statically scoped applicative language based on the interpretive philosophy of LISP (as described in his paper entitled "The Mechanical Evaluation of Expressions"). Other predecessors of Lambdino include the anonymous language used by Reynolds in his work Definitional Interpreters for Higher-Order Programming Languages and in Scheme as described by G Sussman and G Steele.

A detailed description of Lambdino and the problems posed by its implementation are beyond the scope of this paper. Here we only want to sketch some ideas on which we have based its storage management system. Thus LISP or Scheme may be substituted for Lambdino throughout this paper.

An explicit design goal of Lambdino is its transportability onto a wide class of computers, including microcomputers. Particular care has been put into the development of the Lambdino storage management system in order to fit the space and time constraints of microcomputers. A machine independent version of Lambdino, implemented in MagmaLISP, has been realized and will be bootstrapped in the near future on several machines, including an IBM System/370 Model 168 (IBM 74) and a Zilog Z-80 Development System. The only assumption made in this implementation is that the memory of the host machine is structured into directly addressable bytes.

Storage Management in LISP

Implementors of LISP systems have developed various techniques to make efficient use of free storage (ie: that part of the memory not occupied by the operating system and the LISP kernel including the data structure manipulating primitives and the garbage collector). In all these techniques, objects are manipulated via pointers, and arbitrary run time type checking is possible in both system programs and user defined functions. This is normally achieved by using typed pointers in a more or less explicit way. A typed pointer is a pair <T,A> which identifies an object type T located at address A. The length of A usually coincides with the address length of the host machine (eg: 18 bits in the PDP-10, 24 bits in the IBM System/370). In this way, the hardware addressing mechanism may be efficiently used for the implementation of most data structure manipulating primitives. The representation of T usually requires only a few bits (typically 2 or 3 in small systems with a limited number of 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 representing T and A, in some systems only A is represented explicitly, while T is implied by (ie: is a function of) A.

Acknowledgements

The work reported in this article has been partly supported by CNR during a period of four months spent by Martin Rudalics at the Instituto di Elaborazione dell Informazione with a scholarship of the Italian Foreign Office.

26 August 1979 © BYTE Publicalions Inc

*X)iir inventory is our existence^

Think we^d trust it to anything less

than Scotch Brand IKskettes?^

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

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

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

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

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

If it's worth remembering,

it's worth Scotch

Data Recording Products.

3M

Circle 368 on inquiry card.

BYTE AugusI 1979

A one-to-one correspondence between partitions and data types is implicitly established.

There are basically three ways of implementing typed pointers.

Contiguous Partitions

Free storage is divided into a number of areas called partitions which consist of contiguous memory cells (ie: bytes or words). Each partition is allowed to contain only data belonging to the same type (also referred to as the type of the partition, see figure 1). A one-to-one correspondence between partitions and data types is implicitly established by the implementation of the data structure manipulating primitives. The type T of an object is obtained by comparing its address A with the boundaries of the partitions.

This technique has been adopted by the PDP-10 implementation of LISP 1.6 and some early versions of MacLISP. In fact it is particularly suited to those computers in which typed pointers are not allowed to contain an explicit representation of T without a considerable waste of space. As an example, one word in the PDP-10 is 36 bits long and may contain exactly two addresses. If one half word were reserved for representing T, several bits would remain unused.

Contiguous partitions may be disadvantageous when the partition associated with a type T becomes full and the allocation of a new object of type T is requested. The garbage collector may then fail to recover sufficient space for allocating the new object, even though other partitions are nearly empty. This drawback may be eliminated by enlarging the overpopulated partition and contracting the underpopulated ones. A compacting garbage collector with additional phases is required for this purpose. After the compaction phase, the boundaries of the partition are redefined, data is moved to fit the new boun

daries and all pointers to moved data are updated accordingly.

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 512 words). A page is referred to as busy or free, according to whether or not it currently contains data. Like contiguous partitions, each busy page may contain only data belonging to the same type, further referred to as the type of the page. The correspondence (usually many-to-one) between busy pages and their respective types is dynamically realized by a type table, which also keeps track of the free pages (see figure 2).

The type T of an object located at address A may be retrieved by accessing the type table using the most significant bits of A as an index (this is possible if the page length is a power of 2). When a object of type T is to be allocated and no more space is available in pages of type T, a new free page is used and its type is set to T. Thus, the partition associated with a given type is distributed over several pages. The garbage collector compacts all data of a given type into as few pages as possible.

This technique, which has been developed as an alternative to contiguous partition for the same class of computer architectures, has been empleyed in the PDP-10 implementation of INTERLISP and recent versions of MacLISP (as described by G Steele in Data Representation in MacLISP).

As for the efficiency, paged partitions and contiguous partitions with variable boundaries are comparable: the necessity of accessing the type table may lead to a slower type checking, but the garbage collector need not recompute boundaries and move data accordingly. A nice property of this technique is its compatibility and smooth interaction with timesharing operating systems that have paged virtual memories. In fact, the page table used by the operating system and the type table may be easily combined.

Paged Partitions with Tagged Pointers

This technique is identical to the preceding one, except

PI

(Tl)

P2 (T2)

P3 {T3)

• • •

• • •

Pn (Tn)

1

k

1 • 1

•

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

PI

P2

P3

P4

P5

• • •

Pn

■

(

Tl

T2

Tl

• • •

T3

» • • 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 serious hobbyist or a serious businessman, the Chieftain 6800 microcomputer with capabiHties that surpass the Z-80 is made for you.

Smoke Signal's quality-packed Chieftain I features two 5.25-inch minifloppy drives and Chieftain II features two 8-inch floppy drives. «.«***'

Both microcomputers ,^ provide 32K static memory, ^ ^ two serial I/O ports, a 2 0*^ MHz processor board, a 2K RAM monitor, a nine-slot motherboard with builtin baud rate generator and gold connectors for high reliability. The Chieftain's stylish leather-grained cabinet houses the above with its own cooling fan and regulated power supply.

Every Chieftain is complete with system software and is totally burned-in as well as tested to further insure high reliability.

And it's expandable to 64K memory with up to 2 megabytes floppy disk storage.

So see your nearest Smoke Signal dealer, he'll be glad to show you how to get your wampum's worth. Systems j^_^^ start at $2,595.

n Send information on your Chieftain microcomputer D Send name of nearest dealer

Name

Address

Company

City

SMOKE SIGNU BUUDCISnNG

31336 Via f'olinas. Westlake Village. California 91361, (213) 889-9340

Dealer inquiries invited.

Hail to the Chieftcun

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

1

T2

1

1

INT

347

LISP does not contain primitives for declaring new data types.

Tl

T2

<

Tl

»

• • •

T3

1

1

■

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

T /

<FIE>

<FOE>

<FUE>

Figure 4: Storage representation of an object created by MKFOO.

•I • •• • ■ K- • •

FOO

<FIE>

<FOE> <FUE>

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

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

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

Tagged pointers allow for a quick retrieval of the type of an object. Moreover, short constants such as characters, small integers, etc, may be directly represented in the address part of a typed pointer (see figure 3). The type T identifies them as immediate data not to be manipulated as pointers (note that no private pages are needed to store immediate data). The main drawback of this technique is that information is somehow duplicated: in fact, a

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

How To Get Rid of Most Terminating NILs

LISP (unlike ALGOL 68 and Pascal) does not contain primitives for declaring new data types. However, S expressions are an effective tool allowing the user to program new data types explicitly.

As an example, consider a record class named FOO whose instances contain the fields FIE, FOE, and FUE. The data type FOO may be programmed in LISP using proper 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 is shown in figure 4. It is immediately evident that this representation is space consuming: in fact, the last cell may be eliminated, and the pointer turned into a pointer to < FUE> (see figure 5). To this purpose, MK-FC3o and the 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 by MK = FOO are printed by the standard output routines of LISP (eg: for debugging purposes), their readability decreases considerably. For instance, (MK-FOO 1 2 (MKFOO 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 FOO 3 4.5), thus introducing an irritating extra dot while omitting one pair of significant parentheses.

It is possible to both maintain the clean formalism of proper lists, and represent them efficiently (as indicated in figure 5) by introducing the concept of NULLCDR cells. To this purpose an additional bit, B, is associated with each typed pointer, thus yielding a triple <T,B,A>. When B is clear, <T,B A> represents a typed pointer as usual. When B is set, <T,B,A> represents a LISP cell whose CDR is NIL (ie: a NULLCDR cell) and whose CAR has type T and is located at address A. 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 Publicalions Inc

lists are allowed in Lambdino. This fact has several consequences:

• Space is not only saved in the implementation of user defined data structures, but also in the list representation of interpreted functions. Most lists in purely applicative programs contain less than 3 or 4 elements, hence the introduction of NULLCDR cells allows a save of 25 to 33% in space.

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

• The time required by CONS for checking the type of its second argument is largely compensated by the time saved using NULL (or, better, NULLCDR) instead of NLISTP as a predicate for terminating recursions. Also, the functions CAR, CDR and NULLCDR need not make a storage access when their argument is a NULLCDR cell. This may lead to 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 (EVLISl X A))))

(DEFINE EVLISl (X A)

(CONS (EVAL (CAR X) A)

(COND ((NULLCDR X) NIL)

(T (EVLISl (CDR X) A)))))

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

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

Standard garbage collectors (including the SchorrWaite algorithm) are unaffected by the presence of NULLCDR cells (pointers having the NULLCDR bit set are treated exactly as usual pointers).

Lambdino Design Issues

The Lambdino storage management system is a mixture of contiguous partitions and tagged pointers with NULLCDR bits. More precisely, the free storage is divided into two variable partitions FIXLEN and VARLEN (see figure 7).

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

• Atoms have a TOPVAL field which may be any datum (eg: a function definition) and a PNAME field, which must be a string (property list lovers will be allowed to use this field for holding property lists in special ver

0 t I * If It ► I • 0 .

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

VARALL FIXALL

Figure 7: Overall organization of the free storage in the Lambdino storage management system.

b3

b2

bl

bO

ADDRESS

Figure 8: Tagged pointers in the Lambdino storage management system.

sions of Lambdino).

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

• Interpreted closures have a FUN field which must contain a LAMBDA and an ENV field which contains an ALIST (they are similar to FUNARG objects in LISP).

VARLEN is reserved for variable length data, ie: data which must contain explicit information on their memory occupation. There are three variable length data types in Lambdino, namely strings, compiled functions and compiled closures:

• Strings are mainly used for representing atom print-names.

• Compiled functions are binary code produced by the Lambdino compiler.

• Compiled closures contain a pointer to a compiled function (which corresponds to the FUN field of interpreted closures) and pointers to the values of its free variables (they correspond to the ENV field of interpreted closures).

A new datum is allocated by moving FIXALL to the left or VARALL to the right according to whether it is a FIXLEN or a VARLEN datum. When FIXALL and VARALL collide, a standard compacting garbage collector is invoked to contract VARLEN to the left and FIXLEN to the right. The common length of FIXLEN data

August 1979 © BYTE Publicalions 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 Development System.

TAG 1

ADDRESS 1

TAG 2

ADDRESS 2

■• 4 BYTES ►

•• 4 BYTES J

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

allows the garbage collector to operate properly during the compaction phase without knowing the type of the objects. This guarantees an optimal use of the limited memory 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 garbage collector.

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

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

The datum type is determined by bits bl and bO as follows:

• When either bl or bO is set, A is interpreted as the address of a fixed or variable length datum, according to whether A points into FIXLEN or VARLEN. In this case the three possible configurations of bl and bO are sufficient to cover the three types of FIXLEN and VARLEN data, respectively.

• When bl and bO are both clear, A is to be interpreted as an integer number. Integers constitute the seventh data type of Lambdino and are always represented as immediate data.

Implementation Details

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

(GETBYTE A) returns an integer representing the contents of the byte located at address A.

(PUTBYTE A V) stores V into the byte located at address A.

(GETCHAR) reads the next character from the input

stream and returns its integer representation.

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

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

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

The Lambdino storage management system, which is entirely written in terms of these primitives, contains parameters to define the size of addresses and to specify whether or not two tags have to be packed into one byte. When bootstrapping the system on a Zilog Z-80 Development System, 16 bits for the representation of addresses and the packed version of tags are recommended (see figure 9), while 24 bit addresses and unpacked tags should be used on an IBM System/370 (see figure 10).

Concluding Remarks

We have developed an experimental implementation of Lambdino written in Lambdino itself. It includes a Lambdino interpreter, an interpreter for the stack machine SM and a compiler which translates Lambdino functions into SM programs. All these Lambdino functions have been debugged using a simple Lambdino interpreter written in MagmaLISP. As all functions of the system eventually call the previously defined primitives, the system can be (and will be soon) bootstrapped by compiling it to the machine code of SM using it own compiler, and by macroexpanding the resulting code to the machine 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, Massactiusetts Institute of Technology, 1977.

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

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

5. Montangero, G, Pacini, G, Turini, F, "MAGMA-LISP; a Machine Language, for Artificial Intelligence," Proceedings of the Fourth International Joint Conference on Artificial Intelligence, Tbilisi, 1975, pages 556 thru 561.

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

7. Guam, L, Diffie, W, Stanford LISP 1.6 Manual, Artificial Intelligence Laboratory, Stanford University, 1972.

8. Reynolds, J, "Definitional Interpreters for Higher-Order Programming Languages," Proceedings of the ACM National Convention, 1972, pages 717 thru 740.

9. Steele, G, "Data Representation in MacLISP," Memo Number 420, Laboratory for Artificial Intelligence, Massachusetts Institute of Technology, 1977.

10. Sussman, G, Steele, G, "SCHEME: an Interpreter for Extended LAMBDA Calculus," Memo Number 349, Laboratory for Artificial Intelligence, Massachusetts Institute of Technology, 1975.

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

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

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

32 Augusl 1979 © BYTE Publications Inc

no loose ends

All-ln-One: computer, floppy, l/0,16K RAM. $1595

^ I i L L I L I i. . . . . . u u \i

li ii 1 i-l-i i i 1

CN> Tn m •ierorrociitort ClKtl 2.HIXH2

|i l(r tytii mill (ipindiblr to «SK

lllfliyi 23 linti by 91 chiricliri

Cbirictirii 5 « ? dot

upp«r 1 loutr cm

iriplllcil 93 ipiciti gnphict chirictlrl

IPItPirdi » kiyl, (I ilph<nu»rlc t 12 function control (8 ui>r-dtflnibli)

Itiirlc Iwipidi 12 kill

Cv»r HdrHilnfi rplitivi I dlrict for Ml eiirior eonirol

Hit Functlonii Iniirt op-dtlttp chiractpr or lino

IIMtl Ntrill ind rovtrti by chiricttr for hl|hll|hlln| _

»%i

New Heathkit* H89 All-ln-One Computer

Heath takes the risk out of selecting a balanced computer system. Now, video terminal, floppy, keyboard and 8-bit computer are brought together in one self-contained, compact unit. Nothing hangs out.

Two Z80's

The personal computer has never been simpler. Or smarter. Two Z80 microprocessors mean terminal never shares power with computer, as do most desk-top units. So this terminal is capable of a multitude of high-speed functions, all controllable by keyboard or software.

'$1195 without floppy. Mail order kit price, F.O.B. without notice.

102K bytes storage

Built-in floppy disk system gives you fast access to programs and data. Each SV*inch diskette has more than 102K bytes of storage area, enough to hold entire files. The All-ln-One comes with 16K RAM, expandable to 48K.

Hundreds of uses at home or work

The All-ln-One Computer runs programs written in MICROSOFT™ BASIC and ASSEMBLER Languages. And it accepts all current software written for the popular Heathkit H8 computer. You can choose from scores of practical programs for home and business.

Learn by building

What better way to learn about computers than to build one yourself? The Allln-One is available in easy-to-build kit form, as well as completely assembled. Like all Heath electronic kits, it comes to you with its own easy-to-follow assembly manual and a nationwide network of service centers to assure smooth sailing.

FREE CATALOG

For complete details on the Heathkit H89 All-ln-One Computer and nearly 400 other electronic kits for your home, work or pleasure, send today for the latest Heathkit Catalog of values.

Benton Harbor, Ml. Also available at Heathkit Electronic Centers at slightly higher prices. Prices subject to change

Heathkif

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

CP-165

Circle 162 on inquiry card.

BYTE August 1979 33

Pattern-Directed Invocation Languages

William A Kornfeld

MIT Artificial Intelligence Laboratory

545 Technology Sq

Cambridge MA 02139

LISP was first developed for use in artificial intelligence research, the branch of computer science concerned with understanding the nature of intelligent activity by simulating it on a computer. LISP has proved so successful that it is the only high level language currently supported at the MIT Artificial Intelligence Laboratory. Much of its success is due to its syntax and data structures which make it a convenient base upon which to implement very high level special purpose languages.

One very important class of these high level languages is the so-called pattern-directed invocation languages. They made their first appearance in about 1970 with the Planner system at MIT. Since then, dozens of these languages have been built at sites around the world with different sets of features. The basic concepts involved can be traced back to the work of such logicians and philosophers as Frege, Russell, and Carnap in the earlier part of this century. They were concerned with representing and manipulating facts about the world. They began with atomic facts and described methods that could be used to deduce new facts from old. Pattern-directed invocation languages treat facts, represented as LISP lists, as elementary data types and usually collect them together into one or more data bases. Procedures can be written to derive new facts (or to decide if it is possible to derive a given fact) from those already in the data base.

In this article we will be mostly concerned with the basic concepts involved in pattern-directed invocation languages. Toward the end, a brief summary is given of some of the more advanced ideas that have found their way into these languages. Special attention is given to the problem of implementing these languages in a LISP system. Much of this implementation is surprisingly

About the Author:

William Kornfeld is a graduate student at the MIT Artificial Intelligence Laboratory. He is currently doing research in the semantics of pattern-directed invocation and extensions of these ideas to parallel processing.

straightforward, once the basic concepts of LISP are understood. In fact, the task of implementing a system almost identical to the one described here was given to students in a beginning programming course at MIT. The students had had only a few weeks experience with LISP, and a total programming experience of a couple of months, but they had little problem with the assignment.

Retrieval of Information by Pattern

Suppose we wanted to represent the knowledge, inside of our computer, that Lena is the mother of Paul. This sentence contains three important items; the two people, Lena and Paul, and the relationship — one being the mother of the other. This fact can be represented using the data structures of LISP as a list with three elements. We are free to choose any arrangement of the items in the list; 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 relationship first, and having the arguments follow. This fact will be represented as:

(MOTHER-OF LENA PAUL)

We could have many such facts similarly represented by list 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 are pieces of arbitrary list structure (as far as the LISP interpreter is concerned). So that they may be used in our pro

34 August 1979 © BYTE Publications Inc

m in pfvji

APHieS BOARD

SISi! Bl'S

Screen images are as photographed, unretouc hed

Main Features

p 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 1 character and Inverse video.

2 scmigraphlc modes with 8 colors In 64 X 32 and 64 x 48.

" 8 full graphic modes with 2 sets of 4 colors ranging from 64 x 64 to 128 X 192, and 8 sets of 1 color in ■ 256 X 192.

>n-board 8085 microprocessor.

^'^1 bytes of on board static RAM.

_ b4K bytes of EPROM.

riie S-100 compatibility.

,CGS-808

Biotech Electronics proudly annourie__ the CGS-808, a highly sophisticated color graphics board for the S-100 bus.

The CGS-808 is a single board graphics processor which is Incredibly simple to use. It is I/O mapped and requires no memory space. It wiU operate in any S-100 system or as a stand-alone graphics processor. By changing the firmware pack, the CGS-808 can be upgraded to perform additional complex or custom graphic functions. It also provides a parallel I/O port to interface with digitizers, Joysticks, light pens, or directly into a keyboard.

The CGS-808 is designed for a fow cost, high quality, professional display for applications in medicine, business, education, science, industry, and video games.

■^-TSIrele 31 on Inquiry card.

Immediate Availability

The CGS-808 is available assembled and tested for g385.00, or the bare "kit" with the MOS chip set for g99.00 (Chip set includes the MC6847, MC1372, 8085 and 2708 EPROM with graphics driver subroutines). Color monitors are available for g495.00. Delivery is from stock.

Dealer Inquiries are invited.

For more information, call or write

Biotech Electronics P. O. Box 485 Ben Lomond, CA 95005 ^*r08) 338-2686

BYTE Augusl 197P

Simple Pattern Matcher

A simple pattern matcher can be implemented as a LISP function of two arguments, an assertion and a pattern. Here are some examples of assertions and patterns

that 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) ? 7)

Recursive procedures, such as this pattern matcher, are often thought of as procedures that take complex problems and convert them into simpler problems. Eventually this will reduce the calls to procedures that are sufficiently simple that they can be solved using already existing LISP functions.

The simple cases for this pattern matcher occur when either the pattern or the assertion is an atom. If the pattern is the atom ?, then the match should succeed because ?, by definition, matches anything. If the pattern is some other atom then the match should only succeed if the assertion is an atom, and the same atom. If the pattern is not an atom but the assertion is, the match should fail. These rules cover all cases where either the pattern or the assertion is an atom.

Now, suppose that neither is an atom. One way of converting the matching problem into a simpler problem is by decomposing both the pattern and the assertion into substructures and checking corresponding parts for a match. The LISP primitives FIRST and REST provide an easy way of doing this. Suppose we tried matching the pattern:

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

against:

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

The pattern does match the assertion; we would like the matching function to decompose it correctly. When applied to a list, the function FIRST selects the first element, and the function REST selects everything but the first element. We can think of the subparts of the patterns (and assertions) selected by FIRST and REST as patterns themselves. A pattern matches an assertion if and only if the FIRST of the pattern matches the FIRST of the assertion and the REST of the pattern matches the REST of the assertion. The FIRST of the pattern in the example is (A ? B) and the FIRST of the assertion is (A A B). These match. Similarly, the REST of the pattern is (?(C D)) and the rest of the assertion ((X Y)(C D)). These also match. By successively taking FIRST and REST of patterns and assertions, atomic elements must eventually be reached. We already know how to handle all forms of atomic arguments to the matching function. No other cases can occur. Let us list the various cases discussed:

• If the pattern is the atom ? then the match should succeed.

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

• Otherwise, if the pattern is an atom the match should fail.

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

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

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

(DEF MATCH (PATTERN ASSERTION) (COND ((EQUAL PATTERN ' 7) 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 a data base. In LISP, the easiest way of making a data base of objects is to make a list of them and let this list be the value of some variable. (There are more efficient ways of collecting assertions into a data base. These are described in the box.) As we discover more assertions that we would like to include in the program, they can be added to the list. Assertions can be just as easily removed if we determine the fact to be no longer valid. Two LISP functions, ADD and REMOVE, can be written to add assertions to and remove assertions from the data base. Any program that wanted to change the contents of the data base would make use of these two functions. A function call of:

(ADD ' (MOTHER-OF LENA HAROLD))

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

(REMOVE ' (MOTHER-OF LENA ARTHUR))

would remove that assertion from the data base.

Next we will need some way to retrieve information stored in the data base. If we want to know whether or not Fay is the mother of Robert, the data base (really just a list) can be searched for the assertion:

(MOTHER-OF FAY ROBERT)

A function called RETRIEVE can do this easily. RETRIEVE takes one argument, an assertion, and returns T or NIL (yes or no) depending on whether or not the

36 August 1979 © BYTE Publicalions Inc

Circle 256 on inquiry card.

r^

■i.^.

^♦1

••«•»»•?? ,>MMmr,, |TT:?T?t,, "■«•■"■••

.ok< 1"?;?H'G l>AOr

Ig^&^Btail^lliMIMIUUJUJJ^^

IIB^

h^ih'f «m$tn mum

BJIII lillllll

.^^..■wa Mi^W

r;)'

Ml"

II: Ii; II

.^-JLd^

1-- ■• --i-' ■ --+■- m — iiiiiM iiwm uwni

' ' ' : ■ \ ( f

1 '' . 1 ;< iiiutii :

M

.^te- ■' ^'sS^ii.i^''^^ ... ■-■ "• jife tt^-"i

i 1

■ ■ 1

MM16K/$349=2.W

MM24K/$499 = 2C

SR16K/$299 = 1.8C

SR32K/$649 = 2<J

Now you can afford to sink your teeth into some big. feature-packed static memories. Because George Morrow's ultra-efficient designs have brought S-100 memory down to 2C a byte.

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

The SuperRam™ MemoryMaster 16K Static may be the most sophisticated S-100 memory at any price. The MM16K is switch-programmable to write-protect any of the four 4K blocks... or to open invisible IK "windows " to accommodate VDM's or disk controllers. An on-board I/O device and jumper block allow you to use the memory-extending Bank Select Logic features of your software.

Yet, the SuperRam™ MemoryMaster 16K kit is just 2.1C a byte at $349. Assembled and tested, $399. The SuperRam™ MemoryMaster is also available in 24K configuration: 3 individually vin-ite-protectable 8K blocks with Bank Select Logic capability. MM24K Kit, $499. Assembled and tested, $549.

Or, get your memory at a rock-bottom L8C a byte with the SuperRam™ 16K Static. It gives you 4 individual 4K blocks... plus the ability to switchenable 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 individual 16K blocks for 2C a byte.- $649 in kit. Assembled and tested, $699.

Whichever Morrow memory suits your taste, it will run perfectly in 2 MHz 8080.4 MHz Z-80 or 5 MHz 8085 systems. And meets the Proposed IEEE S-100 Standard.

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

(V) Morrow Designs

Thinker

Toys

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

(RETRIEVE ' (MOTHER-OF FAY ROBERT))

One of the nice features of LISP is that it is so easily extensible. It is possible to build languages on top of the basic LISP system that deal with higher level concepts as if they were primitives. The functions ADD, REMOVE, and RETRIEVE are three operations in a language we are building to manipulate assertions. So far, the language is very simple. The function RETRIEVE, for example, can only ask about specific assertions.

There are many more interesting questions that we would like the system to be able to answer, such as "Who is the mother of Robert?" In terms of these assertions this question could be answered by finding an assertion that has three elements, the first and third being the atoms MOTHER-OF and ROBERT, and the second element being anything at all. One way of saying this to the machine is by using a pattern such as:

(MOTHER-OF ? ROBERT)

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

One function, RETRIEVE, is modified to go down the list of assertions in our data base and compare the pattern with the individual assertions. If an assertion and a pattern match, the assertion will be returned as the value of RETRIEVE. Matching means that atoms in corresponding positions are the same, except for ?s in the pattern that require only that something be in the corresponding position in the assertion. Using our data base, the pattern given above will only match one assertion:

(MOTHER-OF FAY ROBERT)

By taking the second element of this list we will have found the mother of Robert. In general, more than one assertion in the data base can match a given pattern; it just happens that a person has only one mother, so we would not expect more than one assertion to tell us the mother of Robert. Suppose our question is "Who are the children of Fay?"< We can make a pattern that represents this question by specifying a MOTHER-OF assertion with FAY in the mother position, and a ? in the child position:

(MOTHER-OF FAY 7)

The function RETRIEVE actually returns a list of all the assertions that match the given pattern so that it can accomodate 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 extract the names of Fay's children.

The examples of assertions presented thus far have been in the form of a list of atoms. Assertions can be arbitrary pieces of list structure. The use of nested lists is an important tool for representing the structure inherent in the knowledge being represented. For example, we may wish to represent facts about the courses students have taken at a university. There might be one assertion for each student for each term he or she is registered. A possible record would be:

(COURSES BARBARA (SPRING 1978) (PHYSICS-2

ALGEBRAIC-TOPOLOGY AESTHETICS))

The first element of the list designates it as a record of courses taken by a given student for a given term. This assertion expresses the fact that Barbara was registerd for the Spring term of 1978 and took three courses: Physics II, Algebraic Topology, and Aesthetics. With records of this kind and our pattern matcher we can ask various kinds of questions and have RETRIEVE return the list of assertions that pertain to the problem. Here are some examples:

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

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

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

There are certain questions that the simple pattern matcher we have described cannot address, such as "Who was registered for Algebraic Topology in the Spring of 19787". More sophisticated schemes for pattern matching will be described later. A simple pattern matcher that can handle ?'s in patterns is very easy to write using the recursive control structures of LISP. It is described in the "Discrimination Networks" textbox.

Simple Deductions

There are a number of facts that are not explicitly contained in the data base of family relations described above that people can easily deduce. We might want to be able to answer the question "Who is the grandmother of Robert?". This question is posed to the system by the function call:

(RETRIEVE ' (GRANDMOTHER-OF 7 ROBERT))

The data base contains no explicit GRANDMOTHEROF assertions, so the function RETRIEVE, as defined thus far, would fail. The data base does contain enough facts that it is capable of answering this question. Looking at the assertions given earlier it is obvious that the answer is Lena. How do we arrive at this? First we find a

Text continued on page 42

38 August 1979 © BYTE Publications Inc

M^

tA^V^

oo'

vv^^

^v»r^

^^

.vv^

^^

^Vx

vS^^

vO<>^

w>OX>.

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 S!^" wide paper

■ Quiet, non-impact operation

■ 6 month warranty

Available now at computer stores and industrial distributors.

Computer Printers international, inc. 340 E. IVIiddlefield Rd., Mt. View, CA 94043 • 415 969-6161

Circle 48 on inquiry card.

BYTE August 1979 J9

CAR

PAUL '^1^

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

Discrimination Networks

Simple data bases can be represented as lists of the assertions contained in them. Each time we want to determine whether or not a pattern matches any of the assertions in the data base, the entire list must be scanned and the pattern matcher applied to each of its elements. For a large data base this may take too long. We would like to represent the data base in such a way that the average search through the data base will take much less time than a linear scan of all the assertions. One way of doing this is to arrange the assertions into groups so that a partial test of the pattern can eliminate a number of the groups from consideration. Let's suppose that we have a data 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 the given list, is by the first elements of the assertions. Thus,

all the MOTHER-OF assertions would be together, as would 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 examined. Some of these groups can be further subdivided; the MOTHER-OF assertions can be divided into three groups depending upon the second element of the list (the mother). The group of assertions can be represented as a tree structure where the nodes of the tree represent locations within the assertion. The above assertions would appear as in figure 1.

This tree can be easily constructed using the pointers of LISP. 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 subnode marked with MOTHER-OF. If this is found, the search continues, otherwise a failure is reported. The pointer is followed to the MOTHER-OF node. This is then searched for a LENA subnode. This is found, the pointer followed, and a search is made for a FAY subnode. This also is found, and it contains a NIL subnode indicating that the assertion ends there. Tracing the path leading to this point gives the assertion. By representing the knowledge in this way, much of the data base no longer 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 paths must be taken. And this example deals only with flat list structure (ie: lists of atoms). The concept can be extended to arbitrary list structure. The result is less intuitive and beyond the scope of this article. It is an interesting problem to think about.

40 Augusl 1979 © BYTE Publications Inc

ALTOS presents a new standard in quality and reliability

^■^

WE'RE ALTOS COMPUTER SYSTEMS. Our SUN-SERIES ACS8000 business/scientific computer 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-reliable Shugart family of 8 inch, IBM compatible, disk drives. A choice of drives is available: single or double density, single or double sided. Select the disk capacity you need, when you need it: 'AM, IM, 2M, or 4M bytes. The ACS8000 features the ultimate in high technology hardware: a fast 4 MHz Z80 CPU, 64 kilobytes of 16K dynamic RAM, 1 kilobyte of 2708 EPROM, an AMD 9511 floating point processor, a Western Digital floppy disk controller, a Z80 direct memory access, Z80 Parallel and Serial I/O (two serial RS232 ports, 1 parallel port), and a Z80 CTC Programmable Counter/Timer (real time clock). In essence, the best in integrated circuit technology.

COMPUTER SYSTEMS

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

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

PRICE ACS 8000-1, single density, single-sided ['A Mb] $3,840

ACS 8000-2, double density, single-sided [1 Mb] $4,500

ACS 8000-3, single density, double-sided [1 Mb] $4,800

ACS 8000-4, double density, double-sided [2 Mb] $5,300

Brackets show disk capacity per standard two drive system. All

models come standard with 32 Kb RAM and two 8" disk drives as

shown above. Expansion to 64 Kb is $363 per 16 Kb. FPP, DMA,

software optional. Dealer/OEM discounts available. Delivery: 30

days ARC, all models.

Circle 6 on inquiry card.

*Z80 is a trademark of Ziloji. Inc.

•*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 a parent for Robert. Here we end up with:

(MOTHER-OF FAY ROBERT)

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

(MOTHER-OF LENA FAY)

The individual in the mother position of that assertion is the desired grandmother. To incorporate this kind of knowledge in the system, the language is augmented with procedures that explain how to derive certain facts if they are not in the data base. There are two GRANDMOTHER-OF derivation procedures; one that checks for mothers of fathers, and one that checks for mothers of mothers. 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 the names to variables. RETRIEVE has to be extended again. In addition to checking the data base for already known facts, it checks a library of procedures for those whose patterns match the request, trying them one at a time. When we execute the RETRIEVE function, trying to find the grandmother of Robert, the pattern:

(GRANDMOTHER-OF ? ROBERT)

is matched against the head pattern in the TO-DERIVE construct:

(GRANDMOTHER-OF ?X ?Y)

The match is successful. Y will get the value ROBERT, and X the value ? (really no value at all, just a place holder). The first line causes the system to find an assertion that has MOTHER-OF in the first position and ROBERT, the value of Y, in the last line. Whatever is found 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 ?X ?Y) (FIND (FATHER-OF ?Z Y)) (FIND (MOTHER-OF X Z)))

The first procedure looks for the mother of the person in the third slot (eg: the grandchild), and then her mother; the second procedure for the father of that person, and then his mother. We have added a little more complexity to the simple patterns described earlier. These patterns have variables associated with the question marks. The first pattern in these procedures expresses, in effect, what the procedure can do. It says "If you want to determine if someone is the grandmother of someone else, try the following." In order for the rest of the pro

will be found and Z will get the value FAY. When the next line is executed, a MOTHER-OF assertion is looked for with FAY in the third position, and anything at all in the middle. (Remember X has the value ?.) The assertion it 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 individual is the uncle of another:

WE'RE NOT JUST THE VIDEO PEOPLE

It's true we built our reputation on high precision video digitizers, but that's not all we offer.

Take B-08 for example, a 2708 EPROM Programmer for the SWTPC 6800. All programming voltages are generated on board and controlled by a safety switch with an LED Indicator. An Industrial quality Textool socket and extended board height allow effortless EPROf>^ Insertion and retrieval. The source listing of U2708, our utility to test, burn verify and copy EPROMs Is Included. B-08 was our first product and we've never had one of them returned for repair. Price: $99.95

If you're programming EPROI^s a lot, you might take a look at our PROM System Board. PSB-08 features space for up to eight 2708 EPRON^s and 1K of high-speed scratchpad RAN4. The EPROMs are dip-switch addressable for convenience. An exclusive I/O select option permits the user to move the I/O locations in memory to any block In EPROM and expand to 56K bytes of contiguous user RAM. Price: $119.95

UIO is another of our popular 6800 products; It's Just the thing for custom Interfaces. DIG has space for a 40-pln wire wrap socket Into which you can plug any of Motorola's 40 or 24-pin interface chips. The data and control lines are connected to the appropriate edge connector pins with all other bus connections brought out to a 16-pin socket pad. Build circuits In half the time with UIO. Price: $24.95

One of our most exciting new products Is a home controller system. It won't cost several hundred dollars and you won't need any electrical engineering experience to use It. By mid-summer we will have units available for the S-50, S-100, TRS-80 and Apple computers. Don't write us now; we'll let you know when we are ready to ship.

Of course we still make video gear. The DS-80 for S-100 computers and the DS-68 for 6800 machines are In stock. Our first production run for the Apple will be available In early July. So even though we think video is one of the most creative areas opening up for micros, we're not just the video people.

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

42 August 1979 © BYTE Publicalions Inc

Circle 231 on inquiry card.

A Beautiful Way To luterf aee

1^140

SOROC's first

and foremost

concern, to - .

design outstanding \

remote video displays, has •

resulted in the development

of the IQ 140. This unit

reflects exquisite appearance

and performance capabilities

unequaled 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 —i

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 Lear Siegler's ADIVI-2. 2) Polling discipline compatible with Burroughs.

ISO

I The SOROC

\ IQ 120 is the result

of an industrywide demand for a capable remote video display terminal which provides a multiple of features at a low affordable price. The IQ 120 terminal is a simple self-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 characters per line.

Circle 341 on inquiry card.

IBS FREEDOM AVE., ANAHEIIVI, CALIF. SSBOI

C7ial S9B-S860 / CaOOl BS4-0147

lomputer Mssionals

A major division of a Fortune 50 connpany lias several openings in its Software Department. These openings are a result of expansion within our modern Midwest facility. We are currently seeking professionals in the areas of programming, systems analysis, computer design, software engineering and computer system engineering. A background or knowledge or interest in any of the following areas may qualify you to become a member of our industry-leading team:

Mini Computers l\/licro Processors Real-time Control Systems Performance l\/lodeling Operating Systems Queuing Theory Structured Software Design Large Systems Development Custom Software Design Software Utilities l-lardware/Software Trade-Offs Data Base Management Software Maintenance ' Distributive Processing Language Development

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

Our benefit package including group insurance, company paid dental plan, tuition aid, liberal vacation and holiday schedules, stock-option plan, relocation plan, etc Is among the best in the industry, and the salary structure we have to offer is an incentive for you to explore our opportunities.

Our working environment is conducive to professional growth and it is geared to the results oriented individual. Candidates interested in any of these exciting areas, please rush a resume to:

Dept. R W 0801

500 N. Michigan Ave., Suite 544

Chicago IL 60611

Equal Opportunity Employer M/F

The system chains backwards through facts until it finds some simple ones it knows.

(TO-DERIVE (UNCLE-OP ?X ?Y)

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

"To show one person is the uncle of another, find a person that is a sibling of the first and a parent of the second."

This procedure would work if we had SIBLING and CHILD-OF assertions in the data base. Since we don't, we must specify procedures that can determine these things 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, see if 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 if the 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 if the second is known to be the father of the first."

There are now two different procedures for deciding CHILD-OF relations as was the case with the earlier GRANDMOTHER-OF relation. If the system doesn't already have the answer to the question in its data base, it will try one, and if that fails, it will try the other.

Our set of assertions does not happen to contain FATHER-OF assertions, so they too should be specified by procedures. We do have MOTHER-OF and HUSBAND-OF assertions. These are sufficient:

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

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

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

The control used by this system is often referred to as backward chaining. Determining if someone is the uncle of someone else may result in attempts to determine CHILD-OF relations that may then result in determining FATHER-OF and then HUSBAND-OF relations. The sys

44 August 1979 © BYTE Publicalions Inc

MOVING DATA AT A SNAIL'S PACI BECAUSE YOU'RE FLOPPY BOONOP

Let Corvus Systems put you back in the race!

^^' - .dtt#. w*>yj>»t^.,-;.^

------ ~--*L-''.._»^ "

WM^^

^^^v;

CORUUS lift CATALOC VOL OIRECTOKY ORIUE HUIOES I

1 |WinM^

1 ^j^^Mm

HC SOURCE

■ For TRS-80t, Apple*, S-100 Bus*.

■ Fully compatible hardware/software.

■ 10-millionbytedisk:IMI-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 solution to the mass storage problem of micro computers. In a pacitage smaller than a briefcase, we provide an intelligent controller, disk, and personality module. Call or write today for additional information.

Get up to speed with Corvus.

■'i i-V!

.s^fil

tTRS-80 is a registered trademark of Radio Stiack. a Tandy Co. tApple is a registered trademark of APPLE Computers, Inc. •S-100 pricing siiglitly tiigher.

CORVaS SYSTEMS, Inc.

900 S. Winchester Boulevard San Jose, California 95128 408/725-0920

circle 83 on Inquiry card.

BYTE August 1979 45

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

The TO-DERIVE procedures are similar in concept to subroutines in many other computer languages. The difference is that subroutines are usually called by name. If I want to compute a cosine I call the subroutine COS. Procedures in these languages are invoked by a pattern that indicates what they can accomplish. The procedure that determines if one person is the uncle of another has no name; it indicates by its pattern (UNCLE-OF ?X ?Y) that it is capable of determining whether or not one person is the uncle of another. This distinction is an important one. As shown, more than one procedure may have the same pattern. This will not disturb the system. It will try one, and if that fails, it will try others until it finds one that works. One TO-DERIVE procedure can serve several purposes. The UNCLE-OF procedure is capable of answering 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 the language depends significantly on the sophistication of the pattern matcher. The pattern matcher described so far is of the simplest kind. Many things we would like to say are difficult or impossible to do with it. There is no such thing as an "ideal pattern matcher." One can always come up with more sophisticated ways to create patterns. This section is devoted to discussing two fairly well known extensions known as unpack and multisets.

Earlier we were concerned with a data base of assertions representing information about students taking courses at a school. The assertions were of the form:

(COURSES BARBARA (SPRING 1978) (PHYSICS-2

ALGEBRAIC-TOPOLOGY AESTHETICS))

and it was impossible to phrase questions of the form Who took Algebraic Topology in the Spring of 1978?" The reason that this is impossible to indicate is that the atom ALGEBRAIC-TOPOLOGY can occur as any element of a list with zero or more atoms in this list, before and after it. The problem can be dealt with by the introduction of the unpack operator. This operator, represented by an exclamation point !, is placed before the question mark variable. A 7 without a ! matches exactly one object. A !? combination will match zero or more objects. Here are some examples of patterns:

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

(FOO BLATZ BAR)

(FOO TOM LARRY BAR)

(FOO BAR)

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

(FOO)

(FOO BAR)

(FOO BAR BLATZ)

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

(XYZ FOO) (XYZ ABC FOO TOM LARRY)

With the unpack operator the question "Who took Algebraic Topology in the Spring of 19787" can be phrased:

(RETRIEVE ' (COURSES 7 (SPRING 1978)

(I7ALGEBRAIC-TOPOLOGY !7)))

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

Another question we cannot ask with the simple pattern matcher is "Who took Algebraic Topology and Aesthetics in the Spring of 19787" We cannot ask this question because whenever we have a list there is an intrinsic order to its elements. To be sure of covering all cases we would need two patterns:

(COURSES 7 (SPRING 1978)

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

as well as:

(COURSES 7 (SPRING 1978)

(!7 AESTHETICS !7 ALGEBRAIC-TOPOLOGY !7))

If there were three courses then six different patterns would be necessary. We need a more general solution. To handle the case where matches should be made regardless of the order of the elements, multisets are introduced. A multiset will be denoted by curly brackets { and }. A multiset is said to match a list if each of its elements match a corresponding element of the list (7s and !7s are allowed). Here are some examples of multisets:

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

(ABC)

(CAB)

(BCA)

{A B 7} will match any three element Hst containing A and 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

VI81MIZE VOIR WCaEMS GftAPHQAUy

Y=SQR((-2»X^2-3«X)/4+SQR (X'-a-X^'i+C (2*X''2 + 3»X>'^2)/4) )

A2FP GIVES YOU EXTENSIVE PLOniNG CAPABILITIES

Whether you're q businessman, engineer, student, researcher or doctor, A2FP con plot for you 2dimensionol functions in HIRES graphics. And on Cartesian coordinotes.

You tell A2FP the domain of definition ond it plots the rest giving complete parameters of plotted curves. You con even superimpose different function graphs. A whole array of disk commends is included in the disk version. Whatever your plot, you utilize the full screen (280 x 192 points).

POWERFUL CODE FULLY TESTED A2FP is engineered to think human. To Qsk the questions newcomers, non-mothemoticions and non-progrommers need. Then every test imaginoble is used to moke sure the progrom performs flawlessly.

CLEAR, COMPLETE AND LOGICAL DOCUMENTATION

The Electronic Field Engineer recently wrote: "What wos particularly pleasing about the informotion we received on the A2FP is the documentation. It is ottroctively pre

DAhF'tD FUNCTION; BIN(X)/X [1-25,25]

Y=(siN<X))^(i/x) c-io.io:

WiteiA2FP The Awie IL Function Plottep

sented, highly legible, clearly organized, and thorough. The quality of the documentation tends to support the cloims PRS mokes in other areas."

DISK VERSION (46K REQ.) NOW AVAILABLE

VISIT YOUR NEAREST DEALER

Let your dealer derhonstrate the excellence of A2FP. Only $34.95 per cassette. $54.95 per disk. Let him show you the new concept In PRS documentation. Use the coupon to obtain the nomes of dealers in your oreo.

r'

I

I

PRS—THE PROGRAM OF THE MONTH CORPORATION

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

D Send me A2FP The

Apple ][ Function Plotter

Cassettes ($34.95 eo.)

Floppy Disks (S54.95 eo.)

Documentotlon only ($10 eo.)

n Send me list of dealers in my oreo

D Check enclosed (5% discount for poyment with order)

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

Cord* Exp. Dote

Donk&#

Your cassette (or disk) and monuol ore protected in this beoutiful goldimprinted folder.

Circle 317 on inquiry card.

I I I

L.

Signoture

Nome

Corporation

Address (no P.O. Box) City

Telephone,

State _

Reference 8D9

-Zip

BYTE August 1979

.J

47

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

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

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

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

History

The basic concepts of pattern-directed invocation originated in the PhD thesis of Carl Hewitt at MIT in 1969. The original Planner language that was the subject of his thesis was never implemented. A cut down version of Planner, roughly equivalent to our language with ADD, REMOVE, and RETRIEVE, was implemented in 1970 and called Microplanner.

Microplanner was used as a tool in subsequent research in artificial intelligence at MIT. The best known system to make use of Microplanner was the SHRDLU program of Terry Winograd. SHRDLU was a program about a simulated world consisting of a table, variously colored toy blocks, and a box. A person could type in English language questions and imperatives to which the system would take an appropriate action, such as: "What blocks are in the box?" or "Pick up the big red block." Assertions were used to store knowledge about the current state of the world, such as:

Main/Frames.. $20O

Main/Frames o. $200

> 14 Basic Models Available ' Assembled & Tested

• Power Supply:

8v@15A, ± 16v@3A « 15 Slot Motherboard

(connectors optional) ■ Card cage & guides

> Fan, line cord, (use, power & reset switcties, El^l filter

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

Rack mounted from S200

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

Write or call for our brochure which includes our

application note: 'Building Cheap Computers'

INTEGRAND

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

(IN PYRAMID BOX)

Procedures implemented simple reasoning involved with answering questions and constructing plans to carry out commands. Microplanner proved to be quite limited in its capabilities and spawned several immediate successors that embodied sophisticated improvements.

QA4, developed by Rulifson and associates at the Stanford Research Institute, introduced the notion of multiple contexts. Contexts are a way of having more than one data base inside the machine, each representing a different aspect of the problem at hand. One context might model (ie: contain assertions pertaining to) the state of the world at some point of time in the past, while another might model the current state of the world. Another common use of the context mechanism is to reason about hypothetical worlds, collections of assertions similar but not identical to the current one. A hypothetical world might represent what would happen ;■/ the machine took some action.

Conniver, developed by Sussman at MIT, introduced certain notions of control structure that seemed lacking in the original Microplanner. The system has a data base of facts and procedures that are capable of deducing facts that are not explicitly in the data base. When a call is made to RETRIEVE, it is entirely up to the system to choose which procedures to try, and in what order to try them. The simple minded scheme picks one procedure and tries it. If this does not work it picks another. There is no way in Microplanner that a program can have control over the order in which procedures are chosen. Conniver supplies facilities that allow the program to have access to possible choices and then order or otherwise process them.

AMORD, developed by deKleer and associates at MIT, keeps a trace, by means of justifications, of how each fact in the data base was derived. If a fact is determined to be no longer valid, all facts that derived from it, as determined from the justifications, are automatically removed by the system. This facility allows a program to conveniently change certain premises and automatically update the rest of the data base to reflect this change.

ETHER, developed by the author, allows the program writer to let many operations in the program be done in parallel. The program can maintain conflicting world models (ie: collections of assertions) that can be reasoned about concurrently.

A General Information Storing Tool

These languages have been developed explicitly as artificial intelligence research tools. We have not discussed in any detail the issues involved in modeling a situation in the world and reasoning about it. The examples given are meant to suggest the possibilities for pattern directed invocation as a more general tool for storing facts. The need to store facts (ie: to create data bases) comes up in all sorts of situations. As computation becomes cheaper, more and more stores of information will move from paper to electronic storage media. There are, of course, more efficient ways to store information than by representing them in list structure in a LISP environment. The disadvantage of some loss of efficiency seems to be far outweighed by the increased flexibility in accessing the information. ■

48 August 1979 © BYTE Publications Inc

Circle 177 on inquiry card.

Solve Prolilems JLy Simulation

With simulations of many concepts, including

• wave motion

• flying objects

• artificial intelligence

• electronic circuits

• and robot motion!

zZyjBa[i%sL\\^

SIMULATION is a collection of

the best articles from BYTE Magazine on this useful computer technique,

plus exciting new material on the subject.

SIMULATION is the second volume in the Programming Techniques series on the art and science of computer programming from byte books. Editor Blaise w. Liff ick's selection of material furnishes not only background information from which the personal computer user is able to write and maintain simulation programs, but also actual programs for simulating many situations. Theoretical and practical applications of this technique are explored in articles dealing with specific aspects of simulation.

Learn how to find solutions to your problems through SIMULATION.

ISBN 0-931718-13-9

$6.0

• t

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

E|i¥i

"BOOKS OF INTEREST TO COMPLTER PEOPLE"

70 Main street, Peterborough, New Hampshire 03458

BYTE August 1979 49

Anyone Know the Real Time?

Steve Ciarcia

FOB 582

Glastonbury CT 06033

Copyright © 1979 by Steven A Ciarcia. All rights reserved.

I'm sure you've all heard the term real-time, such as a real-time operating system. But, how many really understand its meaning? A simple definition of a real-time system is: a system that operates in real time, that is, it responds to the need for action in a period of time proportional to the urgency of the need; first things are done first. In control applications the system can be depended on to provide the information necessary to base time-dependent decisions on information that is up to date as of the minute or the hour. Real time describes the processing of

information in a sufficiently rapid manner that the results of the processing are immediately available to influence control of the process being monitored.

While there are particular architectural enhancements in high-speed process monitoring and control systems, basically any computer can be configured to perform some semblance of real-time operations. The essential criterion is that the computer be capable of performing a specific action at a particular time. The extent of real-time operation then becomes dependent upon execution

•T

r.-nro o o .-■ o .

■• r. -■

n o e r> r r

^'Wv i.i -y-' j

)> « c • * p Ki (;. n - ■ r. •

r ,- r, m r r.

) . , . )r-r

■

1 i'miiTrtC»*,t;'f\'.

• •

• •

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

speed. If a program that takes 1 second to analyze a data input and display it on the video display is to run in real time, it can only be called once per second. For continuous sampling this also means that the computer cannot be tied up doing any other task without provision being made for that program to be interrupted so that the analysis program can run. Most often, computers utilize hardware priority interrupts to provide this capability. A direct benefit of this approach is that all programs can execute asynchronously, since interrupt logic synchronizes the computer's action upon the occurrence of a real-time event. Further discussion of interrupts will continue later in this article.

A second, slightly less complex method of synchronizing computers to real-time events is through a technique of status scanning (or device polling). This softwareintensive situation requires that all devices demanding real-time interaction set status flags to indicate ready conditions. The computer scans these flags periodically and performs the appropriate action. The flags are reset when the devices have been serviced. It is important to keep in mind that all the programs that the computer normally executes must be short enough to allow the computer to service every device. Also, care must be taken to design the system so that a second event cannot occur on an individual device before the computer has acknowledged the first event.

Most sophisticated real-time sys

50 August 1979 © BYTE Publications Inc

Qa 80

1C3

7490

-10

"on) "0(21 "9(1) "g(2) Oo

rn

0

TTL LEVEL INTERRUPTS TO COMPUTER

figure 1: A simple time-base generator for an interrupt-driveri real-time clock.

terns use a combination of these two methods. A clock circuit, such as that in figure 1, provides a time "tick" to the processor's nonmaskable interrupt line. This can be every 60th, 10th, or 1 second, as suggested in this schematic. When the computer acknowledges the interrupt, it first saves all registers from the program it was executing, and then services the realtime interrupt. Frequently the first action is to increment an internal counter which keeps track of elapsed time. Usually it will be a value equivalent to the total number of clock ticks, whether in seconds or milliseconds. Once this regular interval has been established, it is easy for the computer to scan all status flags from real-time devices. The addition of more real-time activities for the processor does not entail multiplying the number of interrupt lines, but rather it simply entails placing another status flag on the list of those to be checked on each clock tick.

The choice of a totally interruptdriven real-time system, a combina tion scan and interrupt type, or a total scanning system is dependent upon the quantity of real-time operations and their frequency. An interrupt-driven system can process information faster than the same system configured for real-time scanning.

Real Time Applications for Personal Computers

So far I have emphasized the system attributes, but nowhere have I discussed applications, particularly

personal computing applications. Clock divisions down to milliseconds sound great and make interval timing extremely accurate, but I doubt that the majority of home computerists would want something that complex to integrate into their system. If my mail is any indication of this, they would prefer the design of a real-time clock which can be directly applied in home control applications. Automatically turning on the percolator at 6:45 AM would be far more stimulating than a high-speed data acquisition system which few would need.

Build a Real-Time Clock

Essentially, the kind of real-time system which might appeal to personal computer users is one with a resolution of perhaps 1 minute rather than 1 ms. It should be read directly in hours and minutes like a 4- or 6-digit clock and not just total counts. A direct benefit of low resolution is reduced overhead. The computer does not have to acknowledge the clock update or scan status flags as often. It may not seem like much of a time savings, considering instruction execution speeds of 1 fis. However,

DEUICE

fCTIUfiTION

DEfaiUfiTION

HWSFNTSTftTE

l.Night Light Z.Driueway flood 3.Coffee Perk 4. Water Softener 5.Outside Lights 6.Thermostat Dn 7. Bedroom TU e.Dehufflidtfier

m

e645

2800 2300

0700 0300

8130 2230

am

0430 0530

1800

ON

OF

OF

OF

CF

ON

OF

CF

PRESENT Tin

—23 Hours 47 Minutes—

SYSTEM STftTUS

*iK«*K0K

GREEN mm

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

August 1979 © BYTE Publications Inc 51

50 Hz OR 60Hz

C^

FAST/SLOW I—V. SET I ^

MULTIPLEXER CLOCK I—v>_

-5 OR -6

TIME PRESET LOGIC

V HOURS

i MINUTES

12 OR v24

r60

SECONDS

■^60

HOURS, MINUTES. AND SECONDS MULTIPLEXER

MULTIPLEX TIMING

DECODER

-d> BCD OUTPUT

I—^ 7-SEGMENT ~ OUTPUTS

-[3> DIGIT ENABLE

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

TYPICAL 7-SE6MENT CLOCK DISPLAY

SEGMENTS

■hi'

BCD

a

b

c

d

e

f

g

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

X

X

X

X

X

/ I u

I I

3 _l

w

5

S

-i

n o o

D

Figure 3: A comparison of output codes from 7-segment and BCD (binary coded decimal) clock chips.

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

the interrupt routine could be 30 bytes and 100 /xs long. If called every millisecond it would eat up 10% of the total cycle time—just to increment a counter! When it comes to real time, be careful not to byte (sic) off more than you can process.

The easiest way to provide an hourly and minute by minute input is to interface the computer to an MOS/LSI (metal oxide semiconductor/large scale integrated) clock device such as that found in most digital clocks or watches. The block diagram of a typical clock chip is shown in figure 2. This LSI device replaces about 22 TTL (transistortransistor logic) chips once necessary to perform the same function, and consumes very little power, allowing battery standby operation. The circuit of figure 1 uses inexpensive TTL rather than CMOS (complementary metal oxide semiconductor) because battery backup is irrelevant if the computer cannot acknowledge interrupts in a powered down state. Figure 3 illustrates the logic of the BCD (binary coded decimal) and 7-segment output lines.

There are two approaches to the design of a clock interface. One approach is to let the clock circuit operate independently from the computer, attached in such a way that the computer is able to monitor this acti

52 AugusI 1979 © BYTE Publications Inc

A New, Easy to Learn Microcomputer r^ Language /

BASEX

ISBN 0-931718-8 ^^^

$8.00

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

Add 60<p for postage and handling.

BASEX Is a fast and compact language which improves on some of the best features of both BASIC and the 8080 Assembly language. BASEX programs typically execute five times faster than equivalent BASIC programs, while requiring less than half the memory.

The BASEX compiler is written in the BASEX language and combines the functions of editing, compiling, and initiating the execution of programs to improve memory efficiency. Author Paul Warme has even included a BASEX loader program i-^-^.

to relocate programs anywhere y imUlr

in memory.

-BOOKS OF INTEREST TO COMPUTER PEOPLE

TO Main Street, Peterborough, New Hampshire 05458

Circle 36 on inquiry card.

BYTE AuBUsI 1979 53

CLOCK GENERATOR

r t

CRYSTAL

60 Mz

0

b c

SEGMENTS( d

e

f

.9 HIO

HI MIO

Ml SIO > SI

TYPICAL

MOS

CLOCK CHIP

DIGIT (

CD4050

CMOS/MOS TO TTL CONVERSION

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

6 DIGIT DISPLAY

V

V

V

a b c d e f g

iD-un-~/r M_ • I u • _i O

V

V

Y

V

V

V

V

13

14 CD4050

V

I 2 3 4 5 6

j 74147

' C B A

PRIORITY ENCODER

000

be b| bo

b7 be

t>5 b^ 63

PARALLEL INPUT PORT

DIGITAL LOGIC DESIGN ENGINEERS - MARKETING PRODUCT SPECIALISTS

M DC LU UJ

o

Z UJ

< o

_l

Q.

<

in

oc

LU

< oc a o cc a.

CO

cc m

OC

<

GET TO KNOW CODEX

We're Codex, producers of high speed state-of-the-art data communications equipment, and we're known as the best in the industry. Because we're growing at a phenomenal rate, we need individuals with all l<inds of bacl^qrounds, experience, and interests who'd like the challenge and excitement of working with the leader in its field.

GET TO KNOW CODEX EVEN BETTER

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 about Codex so you can get to know us even better. Then if you think we've got what it takes to improve your career, send us the enclosed application.

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

Clip out this coupon and send to: Gary Davis, Corporate Employment Manager, CODEX CORPORATION, 20 Cabot Boulevard, Mansfield, MA 02048.

Dear Mr. Davis:

Please send me information about career opportunities at Codex Corporation.

Name_

Address

Street My current job title is.

City

State

Zip Code

BY

code>^

coOorOTion

A Subsidiary ol MO TOROLA INC 20 Cabot Boulevard, Mansfield, MA 02048

An Equal Opportunity Employer M/F

SOFTWARE DESIGN ENGINEERS - MICROPROCESSOR DESIGN ENGI

CO

>

m w 33 m ■o

30

m m

< m en

m

rO CO

m

30

<

o m

m

z o

z m m

30 CO

H

m

CO

-i m z o

z m m

30 CO

NEERS

vity and extract a time value. The second approach, which I prefer, is to give the computer complete control over the information flow of the clock in a synchronous manner. This design makes the interface speed independent and allows it to be used directly with high-level languages.

Figure 4 shows the typical real-time clock interface. In this design the clock is configured in the usual manner to drive a 6-digit light emitting diode display. The clock runs independently with the display multiplexing rate (about 1 kHz) set by a resistor/capacitor combination attached to the chip. Five of the 7-segment drive lines are level shifted and buffered for TTL through a CD 4050, and the 6 digit lines are priority encoded to produce a 3-bit binary value for transmission to the computer of the energized digit-enable line. The 3-bit digit and 5-bit segment codes are combined to produce a single 8-bit byte interfaced to a parallel input port.

In operation, the computer program first looks at bits bo thru b2 to determine which digit of the display to activate. Then it reads bits h^ thru hy and compares them to a table to

54 August 1979 © BYTE Publicalions Inc

Circle 44 on inquiry card.

25^750

THE TRAP DOOR

DJAJEY

September 1977

March 1979

Byte Cover Prints Limited Editions

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

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

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

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

II out and

Send me "Breaking the Sound Barrier"

prints at $25 each, and "Trap Door"

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

D I have enclosed check or money order

to Robert Tinney Graphics. D 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 Augusl 1979 55

12V CRYSTAL

4 5-36pF 3.579545MHz

■^ lOO^F '^ 25V

rh

r"

l_.

-^

20pF

CRYSTAL

-^1 1 — |22M

33pF -^1

OSCILLATOR IN

IC2 MM5369

OSCILLATOR OUT

60H2 I 16

H2V

y Y.

^~^ r

I I

I I

+ i2V

IC3 I I

C04049 I

♦ lOK 't' IOK ♦ lOK I—Vy«—(I I—VA—II I V^r-<i

6 4 2

Ag o IC5

A A""

IOK 22

({^ INPUT

BCOl BCD2 BCD4 BCD8

Ml

ICI MM53I2

I PPS

FAST SET MIO

SLOW SET HI

MULTIPLEX HIO 50/60H2

1?

r'

24

1>

0,1

'^

■^

I CD4049 I

I CD4049 I

21 I 3| , 2

20 I 5

I 19 I

^

^

18 I 9

o

'^

~^

_j I

0 0

0 0

5a

0

OPTIONAL INTERRUPT INPUTS

FROM PARALLEL OUTPUT PORT

ODODOOOO

b7 be bg b4 bj b2 b| bg

DIGIT ENABLE BCD VALUE OUTPUTS

TO PARALLEL INPUT PORT

5b

HIO Hi MIO Ml SIC SI 9 ^ Q ^ ^ ^

r"

V

!C7 CD4060

L.

+ 5V

V

V

V

V

n

V

6 5 4 3 2 1

INPUTS

IC6 74147

8 I INPUTS

9 I OUTPUTS

y

C

B

~-^- 0 0 0

b? be bg b4

5c

+ 12 TO 15V FROM

COMPUTER A

IN4002

IN4002

-H4—

CLOCK INTERFACE

T

tI^ 12V

BATTERY

Number

Type

+ 5 V

GND

+ 12 V

ICI

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 realtime clock which can be synchronously controlled by a BASIC or machine language routine. 5a shows the schematic diagram; asterisks indicate lines which should be opened to prevent loss of time data when the computer is powered down and the interface is used with battery backup. 5b shows an alternate configuration for a 6-digit clock when using an MM5311 integrated circuit. 5c shows the circuit for battery backup operation. The clock interface requires 12 mA from the battery during standby (indicated by the arrow).

56 August 1979 © BVTE Publications Inc

determine which character is being displayed. (Only 5 of the 7 segments are necessary to perform this comparison.) This process is repeated 5 more times as the chip sequences through the other digits. The final result is formatted into hours, minutes, and seconds. The entire operation takes about 10 ms and requires that the program be written in machine language.

If you can believe the claims of the manufacturers, there are now more computers in use that run BASIC rather than machine language as their primary mode of interactive communication. While it is still possible to manipulate individual bits and write machine language device control subroutines for these computers, their owners are obviously more familiar with high-level languages and would necessarily feel more comfortable with a clock design which could be controlled in BASIC as well as machine code. Figure 5 demonstrates such a design.

This circuit, which can be man

MULTIPLEX TIMING INPUT

Ji n n n_ji

MINUTES (UNITS)

MINUTES (TENS)

HOURS (UNITS)

HOURS (TENS)

INDICATES THAT BCD LINES CONTAIN VALID DATA FOR RESPECTIVE DIGIT DURING THIS PERIOD (AFTER APPROXIMATELY 200/iSEC SETTLING TIME )

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

ually or automatically preset, is fully static and allows the display output lines to be completely under program control. The basic 5-chip interface consists of a 4-digit BCD/7-segment output clock type MM5312, an

MM5369 time-base generator, 2 MOS to TTL buffers to send data to the microprocessor, and 1 TTL-toCMOS converter for processor control over the clock chip. Time is read by the computer as 4 binary coded

a new star

•Xvf .1

~ " most kits offer stand-alone application ability P.O. BOX 35879 TUCSON, ARIZONA 85740

in western skies...

NALOG FUNCTIONS

in kit form <

SENSORS

,SDUCERS

I MEMORIES

»S FUNCTIONS

, CONVERTERS

_ ID OTHER INTERFACE FUNCTIONS

FOR INDUSTRY • BUSINESS • EDUCATION • COMPUTER HOBBIESTS • WM

QK-100 QK-101 QK-103 QK-105 QK-110

QK-112

QK-122

QK-124 QK-900

AVAILABLE NOW!

"Q = QUALITY"

TRIPLE A-> D CONVERTERS $36 ^^

DUAL AIR TEMPERATURE SENSORS 26.^5

POWER SUPPLY & DUAL SOCKETS..29.^^

DUAL PHOTO DETECTORS 27.^^

MULTIPLIER, VOLTAGE-CONTROLLED

AMPLIFIER COMBINATION. 43.''

PEAK-SENSE & HOLD/SAMPLE

AND HOLD 28.^^

DUAL INSTRUMENTATION

AMPLIFIERS 24.5=

LOG & ANTI-LOG COMBINATION .. 40.'=

SOCKET/MOUNTING BOARD 8.'=

Q

— »

master charge

L. '"■ -■

ViSA'

(602) 299-9831

dealer inquiries welcome

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

100 110 120 130 140 150 160 170 180 190

200 210 220 230 240 250

REM

REM

REM

REM

REM

REM

OUT

1 f

REM

REM

DEC

Ml^

M2==

H1 ■■■■:

H2^=

PR I

OUT

REAL TIME CLOCK

COF'YRIGHT 1979 STEVEN CIARCIA

THIS SIMPLE PROGRAM ALLOWS A COMPUTER TO TELL TIME BY

INTERF-.-1CING A DIGITAL CLOCK CHIP TO AN I/O PORT. (PORT 8 IN THIS EXAMPLE)

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

IT IS SET ON THE LEAST SIGNIFICANT DIGIT

8»1 :OUT 8.0 : T==INP(8) :D = T and 16

D=16 THEN 200 ELSE 160 ONCE THE LSD POSITION IS SET THE 4 SUCESSIUE READINGS ARE TAKEN THE INPUT PORT DATA IS ANDED WITH 15 TO OBTAIN THE BCD iJALUE (REMEMBERrBASIC USES

I MAD

T AND 15 :G0SUB 250 :REM

T AND 15 :G0SUB 250 :REM

T AND 15 JGOSUB 250 JREM

T AND 15 :G0SUB 250 :REM

NT h2;hi?":";m2;mi :goto

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

8fi :ouT 8r0 :t==inp(8):return :rem advance display mux

RE ADY

decimal numbers. In a 4-digit clock like the one in figure 5, the data appears as a digit-enable output and an

associated BCD value. The tens of minutes data is available when bit bj is high (bits b,, be, and h, are low). It

NOW, FROM MOUNTAIN HARDWARE.

THE 100,000 DAY CLOCK.

Put your S-100 Computer on the clock.

A real time clock could (double the utility of your computer. Time events in 100/LtS increments for up to 100,000 days (over 273 years). Program events for the same period with real time interrupts that permit preprogrammed activities to take place...without derailing on-going programs. Maintain a log of computer usage. Call up lists or appointments. Time and date printouts. Time events. An on-board battery keeps the clock running in the event of power outage.

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

ss

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 bits bo thru hi. Unlike the circuit of figure 4, this unit is static and has no display to drive. It will stay on a particular digit until it is instructed to sequence to the next digit. This is accomplished by controlling the display-multiplexer input line of the clock.

Figure 6 shows how the multiplexer line is controlled in this application. Bit 0 of an output port (port 8 in my example) is used to pulse multiplexer input pin 22. At any time, 1 of the 4 digit-enable output lines will be low (at the chip), indicating that the multiplexer is set on that digit. The data on the BCD lines is for that digit. Reading the next digit is simply a case of pulsing bit bo again. There is no time constraint either. You can wait 10 minutes between digits if you wish (but the data won't mean much). It is best to read the 4 digits sequentially. The circuit is easily interfaced and exercised in BASIC as demonstrated in listing 1. The flow diagram of this program is shown in figure 7.

The addition of 2 more gates connected to output bits bi and b2 facilitate automatic time preset. Figure 8 follows the logic of how such a program could be written. Two magnetic reed switches shown in photo 1 can be attached between pins 14 and 15, respectively, and ground to allow manual preset as well. I find that it is easier to just turn on the

58 August 1979 © BYTE Publications Inc

Circle 257 on inquiry card.

c

START

"*

3

PULSE

DISPLAY MULTIPLEX

INPUT

IS DISPLAY I MULTIPLEX IN ^

I Ml POSITION

Ml = MINUTES (UNITS) M2= MINUTES ( TENS)

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

READ Ml IN BINARY CODED DECIMAL

PULSE

DISPLAY MULTIPLEX

INPUT

READ M2 IN BINARY CODED DECIMAL

PULSE

DISPLAY MULTIPLEX

INPUT

READ HI IN BINARY CODED DECIMAL

PULSE

DISPLAY MULTIPLEX

INPUT

READ H2 IN BINARY CODED DECIMAL

1 PRINT HOURS 1 AND MINUTES

f RETURN OR "\ V^ REPEAT J

f START J

♦designates LOGIC BOXES WHICH MAY REQUIRE INTERNAL TIME DELAYS DEPENDING UPON PROGRAM EXECUTION SPEED

DESIGNATE DESIRED PRESET TIME H = HOURS M=MINUTES

TURN ON SLOW * SPEED SET

READ MINUTES

I 1

I IS DESIRED PRESET

GREATER THAN \— ■ I CURRENT READING I I

IS CURRENT READING EQUAL

I TO PRESET H

I I

h —

~\ ? ^

YES

LET DESIGNATED PRESET H BE

H = H- 1

NO

. .

READ HOURS

<r ^ /

NO

TURN ON *|

FAST

SET 1

YES

READ MINUTES

I IS CURRENT I READING EQUAL TO PRESET M

I

TURN ON SLOW SET

( RETURN j

Figure 7: Flowchart of the program given in listing 1.

Figure 8: Flowchart for the automatic reset routine.

clock program in continuous display mode and adjust the clock as I read it. If a battery back-up capability is added, the 2 TTL automatic set gates should be disconnected. When the computer is powered up, random data can appear on bits bi and b2, accidently causing it to enter the set mode. This is not a problem on the input. While a 4-digit, 24-hour clock is quite enough in my application (an example is shown in photo 2), there are those who need a second designation. Substituting an MM5311, the s^

and Sio digit-enable line can be added as 2 more parallel input bits and treated exactly as the present circuit, or binary encoded to reduce input bits, as shown in figure 5b. This method will require a slight software change but should be an equally viable approach. The present program in listing 1 executes in approximately 50 ms when used with Micro Com 8 K Zapple BASIC, but it works equally well with a machine language routine.

Whatever your final configuration.

I am sure you will find that accurately timed control outputs are a definite advantage on any system. And there is no reason for the hardware of any interface to constrain the operator's choice of software interaction if it is not dictated by the frequency of events themselves. ■

Next month the topic of "Ciarcia's Circuit Cellar" will be various joystick interfaces.

August 1979 © BYTE Publications Inc 59

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

additionai on-line storage for your TRS-80'.

• Choose either 40-track TFD-100^" drives or 77-lracl( TFD-200™ drives.

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

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

'vTFD-lOO^" drives accommodate "flippy disks." Store 205K bytes per mini-disk.

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

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

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

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

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

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

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

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

In the Product Development Queue ... a printer interface for using your TRS-80* with any serial printer, and... thef/ecfr/c Crayon^" to map your computer memory onto your color TV screen — for games, animated shows, business displays, graphs, etc. Coming PDQ!

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

60 BYTE August 1979

»" TFD-100. TFD-200, PATCH PAK and Electric Crayon are trademarks ol PERCOM DATA COMPANY.

•TRS-80 and TRSDOS are Irademarks ol Tandy Corporalion and Radio Shack which have no relalionship lo PERCOM DATA COMPANY

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

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

Percom 'peripherals for personal computing'

Circle 305 on inquiry card.

For your S WTP 6800 Computer...

PERCOM's" ROPPY DISK SYSTEM

the

[fr

i°Mff

n

-b

^ HJIL

I .

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

fully assembled and tested shipping paid

PERCOM DATA COMPANY, INC.

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

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

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

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

RAM at $A000. Diskette includes numerous utilities $99.95

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

prepared using a text editor described below $49.95

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

disk CHAINing $17.95

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

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

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

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

diskette $29.95

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

assembly $79.95

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

assembler $49.95

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

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

source document. User defines account numbers $199.95

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

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

TM trademark ol PERCOM Daia Company. Inc. 7M trademark of Hemenway Associates Company.

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

PERCOM 'peripherals for personal computing'

J

Circle 306 on inquiry card.

BYTE August 1979 61

LISP Notes

John AUen

Signetics

811 E Acques Ave

Mail Stop 38

Sunnyvale CA 94086

• Symbolic Expressions (or S-expressions) are the primitive data items of LISP. Ttie usual interpretation of these expressions is a binary tree where LISP atoms appear at the tips of the tree, and the internal nodes, called COWS nodes, have 2 branches. The left branch is called the CAR branch; the right branch is called the CDR branch. For example:

CONS f" NODES

B C

These CONS nodes are also called dotted

pairs because the linear notation for these trees, called dot notation, represents the nodes as dots. For example, the tree above would be written as (A . (B . C)) in dot notation. The LISP functions car and cdr select the CAR and CDR branches respectively. The function cons constructs a new binary tree from 2 fragments.

• M-Expressions of an external notation for LISP, while a special kind of S-expression, called list notation, are used for both the programming notation and the data notation. All articles in this month's BYTE use list notation for their data items. To emphasize the distinction between the idea of a list and its implementation as a dotted pair, the functions first, rest, and concat will sometimes be used instead of car, cdr, and cons, even though the func

tions are Identical in traditional implementation.

Within the LISP language are several powerful and distinctive features. One, called iambda notation, gives LISP the ability to describe and manipulate functions as data objects. We use a simplified form of this concept in the LISP operators DEF and DEFINE. Another LISP distinction involves its concept of a scope rule: basically a rule to apply when finding the value of a nonlocal variable from within a function call. The default rule in LISP (and in APL) is called the dynamic scope, meaning "use the latest binding of a variable" (ie: the binding which was available when the function was called). ALGOL and Pascal use a rule called static scope which says, "use the value which was current at the time the function was defined."■

r> ^i-i^.

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

it's the new, fast way to enter data into your

microcomputer;"

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

Good news! Now, all you need is a standard #2 pencil, a card, and our new MR-500 nnark sense card reader to quickly and easily enter data into your favorite 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 turns on, the card is fed through, and data is instantly entered into memory. It's the simple 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's ideal for inventory, time cards, labor distribution (just to name a few). Educators will find that the MR-500 streamlines test scoring, attendance records, and grade reporting. Bet you can find a use already.

The Small Reader for the Small Computer

The MR-500 is lightweight - 4 lbs. Compact - .j^toteatatu. Phone or write

a 4'/z-inch cube. And at $750, it's the only mark ."mSSm^nM^ '°' details.

sense card reader that makes sense for the I^^^Sf^l^H ^ better yet,

small computer. I ^'"^^H onJer yours tod

^

CHATSXA/ORTH DATA

czs e=> p^ P=» c=) i=» >c:^.-T— I C3 r«*j

20710 Lassen Street • Chatsworth, California 91311 (213) 341-9200 . CIrole 43 on inquiry oatd-./a;^.^.-,.

MICRO

TOLL-FREE

1-800-528-1418

LOWEST PRICES • FAST DELIVERY • 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 MicroWorld systems . . . Autoscribe — The Paperwork Manager- and Bookkeeper — The Office Accountant". Single density still runs on your new Horizon, or you can copy and convert all North Star software and pro grams to double density.

• exclusive application software

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

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

NEW!

Call for low assembled prices. Double density also available on North Star disk sub-system, $599 kit. y

MICROPOLIS DISK DRIVE FOR TRS-80

HEATH DATA SYSTEMS PRINTER

MicroWorld Specials

Integral Data Printer $749

Add for Tractors $150

Mime Terminal $ 742

Hazeltine 1410 Terminal . $765 Hazeltine 1500 Terminal . $1097 Teletype 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 .... $CALL Centronics 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

IPSI1620 Diablo RO .... $2705

Hitachi 9" Monitor $184

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

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

Circle 233 on inquiry card.

VISA I No extra charge for credit card orders

Freight collect, F.O.B. Tempe No other handling charges

Formerly Byie Shop Mail Order

CALL TOLL-FREE 1-800-528-1418

Get big system performance from your small computer

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

^^

li

I.

jr^\

m

Our large-scale computer time sharing system

is 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!

^ I MicraHIET

IWUcraHIET

What is it?

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

Who is it?

MicroNET service is provided by the Personal Computing Division of CompuServe incorporated, one of the nation's leading time sharing computer service companies. We are a multi-million dollar company serving many Fortune 500 companies and large government agencies for the last ten years.

What services do I get?

• Practical personal programs

• Ability to communicate with other small computer users

• Opportunity to buy and sell software through the network.

• 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 iVIicroNET?

The minimum requirement is a terminal with communications Interface and a telephone. However,

the full capabilities of the MicroNET service will be realized by using a microcomputer with modem interface and a modem set for "originate" mode at 300 BAUD.

What does it cost?

By using our equipment during off-peak hours, we can keep our rates extremely reasonable. There is a one-time charge of $9.00 to sign up. Then you will be billed (via Master Charge or Visa cards only) at the rate of $5.00 per hour. Minimum charge per access is $1.00 for up to 12 minutes of computer time.

Can I store data?

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

I want to know a bit more.

Good. Send in the coupon. You'll receive more detailed information and an application. When you return the application, including your Master Charge or Visa number (because we bill electronically to help keep the price low), we'll send your user identification number and password, user guide, and local phone number so you can put the power of our large system to work for your small computer.

r

Mall to:

^

CompuServe

Name

Address.

City/State/Zip _

C

Personal Computing Division 5000 Arlington Centre Blvd. Columbus, Ohio 43220

Send me information on MicroNET.

'/WUoraH/ETi

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

Circle 46 on inquiry card.

BYTE August 1979 65

A Model of the Brain for Robot Control

Part 3: A Comparison of the Brain and our Model

In parts 1 and 2 we have shown how a neurological model called the Cerebellar Model Arithmetic Computer (CMAC) can compute functions, recognize patterns, and decompose goals. We have also shown how a crosscoupled hierarchy of CMACs (see figure 1) can memorize trajectories, generate goal directed purposive behavior, and store an internal model of the external world in the form of predicted sensory data. In this third article we will attempt to show how this structure and its capabilities can give rise to perceptual and cognitive phenomena.

The fact that the mathematical details of the CMAC model were derived from the cerebellum, a portion of the brain particularly regular in structure and hence uniquely suitable for detailed neurophysiological analysis, does not mean that the results are inapplicable to other regions of the brain as well. The basic structure of a large output cell (sometimes called a principal, relay, or projection neuron) served by a cluster of local interneurons is quite typical throughout the brain. Such

About the Author:

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

James Albus

Project Manager

United States Dept of Commerce

National Bureau of Standards

Washington DC 20234

clusters commonly receive input from a large number of nonspecific neural fibers similar to the mossy fibers in the cerebellum. In many instances they also receive specific inputs which are more or less analogous to climbing fibers. As we might expect, there are many differences in size and shape of the corresponding cell types from one region of the brain to another. These reflect differences in types of computations being performed and information being processed, as well as differences in the evolutionary history of various regions in the brain. Nevertheless, there are clear regularities in organization and similarities in function from one region to another. This suggests that, at least to a first approximation, the basic processes are similar.

The implication is that the general model of information processing defined by CMAC (the concept of a set of principal neurons together with their associated interneurons transforming an input vector S into an output vector P in accordance with a mathematically definable relationship H) may be useful in analyzing the properties of many different cortical regions and subcortical nuclei. This is particularly true since the accuracy, resolution, rate of learning, and degree of generalization of the CMAC H function can be chosen to mimic the neuronal characteristics of different areas in the brain.

Hierarchical Control

The idea that the central nervous system, which generates behavior in biological organisms, is hierarchically structured is an old one, dating back considerably more than a century. The analogy is often made to a military command structure, wherein many hundreds of operational units and thousands, even millions of individual soldiers are coordinated in the execution of complex tasks or goals. In this analogy each computing center in the behavior-generating hierarchy is like a military command post, receiving commands from immediate superiors and issuing sequences of subcommands which carry out those commands to subordinates.

Feedback is provided to each level by a sensory-processing hierarchy which ascends parallel to the behavior-generating hierarchy, and which operates on a data stream derived from sensory units which monitor the external environment as well as from lower level command centers which report on the progress being made in carrying out their subcommands. Feedback is processed at many levels in this ascending hierarchy by intelligence analysis centers that extract data relevant to the command and control functions being performed by the behavior-generating module at that level.

Each of these intelligence analysis centers makes predictions based on the results expected (ie: casualties, rewards, sensory data patterns) as a consequence of actions currently being taken. The intelligence centers then interpret the sensory data they receive in the context of these predictions. For example, in military in

66 August 1979 © BYTE PublicaMons Inc

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

telligence analysis a loss of 60 men in an operation where losses had been predicted at 600 implies an unexpectedly easy success, and perhaps indicates a weakness in the enemy position which should be further exploited. In the brain, the observation of 60 nerve impulses on an axon where 600 has been anticipated may imply an unexpectedly weak branch in a tree, upon which the placing of any weight will result in a fatal fall from the treetop.

The response of each command post (or data analysis center) in the hierarchy to its input depends on how it has been trained. Basic training teaches each soldier how to do things the "army way" (ie: what each command means and how it should be carried out). Each operational unit in the military has a field manual which defines the proper, or ideal response of that unit to every foreseeable battlefield situation. Each field manual is essentially a set of IF/THEN production rules or case statements, corresponding to a set of CMAC functions, P = H (S) or Q = G (D). At the lowest level in the military analogy these rules define the proper procedures for maintaining and operating weapons, as well as the proper behavioral patterns for surviving and carrying out assignments under battlefield conditions. At higher levels they define the proper tactics for executing various kinds of maneuvers. At the highest level, they define the proper strategy for deployment of resources and achievement of objectives.

In the case where each unit carries out its assignment "according to the book," the overall operation runs smoothly and the goal is achieved on schedule as expected. To the extent that various units do not follow their ideal trajectories, either because of improper training or because of unforeseen difficulties in the environment, the operation will deviate from the expected or planned schedule. Alternate tactics may be required. If a change in tactics still does not produce success, new strategies may be required. Of course, there is always

1

1

,C4

E4

H4

04

JX4

G4

R„

M4

P4

Ca

»

E4

F3

H3

03

iX3

G3

R3

M3

P3

.02

T

Ej '

F2

H2

02

jX2

Gz

R2

M2

Pz

LCi

»

E2

F,

Hi

0|

^x,

G|

Ri

Ml

P|

ACTION

E, J

i

SEN

5ATI0N

ENVIRONMENT

the possibility that failure will occur, despite every effort. The goal will not be achieved or, worse yet, the organism may suffer a catastrophic setback.

There is considerable anatomical, neurophysiological, and behavioral evidence that the analogy between the brain and a military hierarchy is quite accurate. However, in saying this, it is important to keep in mind that the highly schematic hierarchy shown in figure 1 is a grossly oversimplified diagram of the vast interconnected hierarchical network which is the brain. Every motor neuron in the nervous system can be thought of as being controlled by its own hierarchy which interleaves and overlaps extensively with the hierarchies of nearby synergistic motor neurons. Each sensory-motor system has its own set of overlapping hierarchies which become increasingly interrelated and interconnected with

Figure 1: A crosscoupled, processinggenerating hierarchy. The H modules decompose input goals C into output subgoals P using feedback F. The M modules recall expected sensory data R which is compared with observed sensory experiences E. The G modules recognize sensory patterns Q and compute feedback errors F.

each other at the higher levels. Thus, the entire brain may have the topological shape of an inverted paraboloid as shown in figure 2.

Triune Brain Hypothesis

There is in fact some evidence to suggest that the human brain is topologically similar to three (or more) concentric paraboloid hierarchies as illustrated in figure 3. Paul MacLean and others have hypothesized a triune brain wherein the inner core is a primitive structure (ie: the reptilian brain) which provides vital functions

August 1979 © BYTE Publications Inc 67

SMELL

TOUCH

TASTE jAvys LIPS TONGUE

LEGS FEET

BALANCE ^°^5°

FORCE

PROPRIOCEPTION

♦

SPEECH

LUNGS

LARYNX

TOUCH FORCE PROPRIOCEPTION

ARMS

HANDS

FINGERS

such as breathing and basic reflexive or instinctive responses such as eating, fighting, fleeing, and reproductive activities. Superimposed on this inner core is a second layer (ie: the mammalian brain) which is capable of more sophisticated sensory analysis and control. This second layer tends to inhibit the simple and direct responses of the first so as to apply them more selectively and to delay responses until opportune moments. This second brain thus provides the patient waiting behavior necessary for effective hunting of prey. On top of this is yet a third layer (ie: the primate brain) which possesses the capacity to manipulate the other two layers in extremely subtle ways; to imagine and plan, to scheme and connive, to generate and recognize signs and symbols, to speak and understand what is spoken.

The outer layers employ much more sophisticated sensory analysis and control algorithms that detect greater subtleties and make more complex decisions than the inner more primitive layers are capable of performing. Under normal conditions the outer layers modify, modulate, and sometimes even reverse the sense of the more primitive responses of the inner layers. However, during periods of stress, the highly sophisticated outer layers may encounter computational overload and

Figure 2. In the brain different processinggenerating hierarchies represent different sensory-motor systems. These become increasingly interrelated at the higher levels and eventually merge into a unified command and control structure. This enables a complex organism to coordinate its actions in pursuit of high level goals.

become confused or panicked. When this happens, the inner core hierarchy may be released from inhibition and execute one of the primitive survival procedures stored in it (ie: fight, flee, or freeze). A similar takeover by the inner hierarchy may occur if the more delicate circuitry of the outer is disrupted by physical injury or other trauma. Thus the brain uses its redundancy to increase reliability in a hostile environment.

Of course, all three layers of the behavior-generating hierarchy come together at the bottom level in the motor neuron — the final common pathway.

Motor-Generating Hierarchies in the Brain

In the military hierarchy analogy, the motor neurons are the foot soldiers. They produce the action. Their firing rates define the output trajectory of the behavior-generating hierarchy. A CM AC representing a spinal motor neuron and its associated interneurons receive feedback

F from stretch receptors via the dorsal roots, as well as from other motor neurons reporting ongoing activity in related muscles. The command vector C to this lowest level comes from the vestibular system, which provides inertial reference signals necessary for posture and balance, as well as from the reticular formation and basal ganglia (and in primates, also directly from the motor cortex).

There is nothing analogous to climbing fibers for the motor neurons, but this is not surprising since there is evidence that little or no learning takes place at this first level in the behavior-generating hierarchy.

Evidence for second, third, and fourth levels in the behaviorgenerating hierarchy comes from experiments with animals and observations of injured humans where the spinal cord is severed at different levels. If, as is shown in figure 4, the cord is severed from the brain along the line A-A, most of the basic motor patterns such as the flexor reflex and the reflexes that control the basic rhythm and patterns of locomotion remain intact. However, coordinated activation of these patterns to stand up and support the body against gravity requires that the regions below B-B be intact.

The stringing together of different postures to permit walking and turning movements requires the regions

68 August 1979 © BYTE Publications Inc

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

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

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

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

EPROM Programmer. VP-565 EPROM Programmer Board comes complete with software to program, copy and verify 5-volt 2716 EPROMs—comparable to units costing much more than the VP-565 and VIP put together! Programming voltages generated on board. ZIP PROM socket included. $99r

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

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

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

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

COSMAC VIP lets you add, computer power a board at a time.

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

Simple but powerful—not just a toy.

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

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

"Suggested retail price. CDP18S711 does not Include video monitor or cassette recorder. ••Available 1st Quarter. 1979,

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

The fun way into computers.

RCil

Circle 322 on inquiry card.

BYTE August 1979 69

JAWS VISION

LIPS EYES

TONGUE HEAD

SPEECH LUNGS LARYNX

LEGS. FEET, BALANCE, FORCE, PROPRIOCEPTION

ARMS. HANDS, FINGERS TOUCH, FORCE, PROPRIOCEPTION

Figure 3: The human brain is hypothesized to be a composite structure consisting of at least three layers: (1) a reptilian brain which provides basic reflexes and instinctive responses; (2) a mammalian brain which is mare sophisticated and capable of delayed responses; and (3) a primate brain which can imagine, plan and manipulate abstract symbols. The outer layers inhibit and modulate the more primative tendencies of the inner layers.

HYPOTHALAMUS

PRESTITIAL NUCLEUS

RETICULAR FORMATION

SUBTHALAMIC NUCLEUS

NUCLEUS PRECOMMISSURALIS

INTERSTITIAL NUCLEUS CEREBELLUM

RED NUCLEUS VESTIBULAR NUCLEUS

SPINAL CORD

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

below C-C to be undamaged. In particular it is known that the rotational movements of the head and eyes are generated in the interstitial nucleus; raising and lowering of the head in the prestitial nucleus; and flexing movements of the head and body in the nucleus precommissuralis. Stimulation of the subthalamic nuclei can cause rhythmic motions including walking. A cat with its brain sectioned along C-C can walk almost normally. However, it cannot vary its walking patterns to avoid obstacles.

Animals whose brains are cut along the line D-D can walk, avoid obstacles, eat, fight, and carry on normal sexual activities. However, they lack purposiveness. They cannot execute lengthy tasks or goals. Humans with brain disease in the basal ganglia may perform an apparently normal pattern of movements for a few seconds and then abruptly switch to a different pattern, and then another. One form of this disease is called St Vitus' dance.

Higher levels of the behaviorgenerating hierarchy become increasingly difficult to identify and localize, but there is much to indicate that many additional levels exist in the cerebral cortex. For example, the motor cortex appears to be responsible for initiating commands for complex tasks. The ability to organize lengthy sequences of tasks, such as the ability to arrange words into a coherent thought or to recall the memory of a lengthy past experience, seems to reside in the posterior temporal lobe. Interactions between emotions and intentional behavior appear to take place in the mediobasal cortex, and long term plans and goals are believed to derive from activity in the frontal cortex. Hierarchies of different systems (ie: vision, hearing, manipulation, locomotion, etc) merge together in the association areas.

Sensory-Processing Hierarchies in the Brain

It is a well established fact that hierarchies of sensory-processing modules exist in the brain. In a famous series of experiments, Hubel and Wiesel demonstrated four clearly distinguishable hierarchical levels in the visual system. Similar sensoryprocessing hierarchies have been extensively studied in the auditory

70 Auguse 1979 © BYTE Publications Inc

The TARBELL Connection

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

Tarbell Floppy Disk Interface Tarbell Disk BASIC

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

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

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

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

• Full 6-month warranty and extensive documentation.

• Kit $190 Assembled $265.

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

Runs on 8080, 8085 or Z80 Searches a file quickly for a string. Up to 64 files open at once. Random Access. Assignment of 1/0. Alphanumeric line labels allowed. Read and Write string or numeric data.

• Unlimited length of variable names and strings.

• Procedures with independent variables.

• Number system 10 digits BCD integer or floating point.

• Chain to another program.

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

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

Occupies 24K of RAM. Tarbell BASIC

on CP/M Disk $48.

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

Tarbell 32K RAM Memory

32K Static Memory

S-100 Bus Connector

9 regulators provide excellent heat distribution.

Extended addressing (bank switching.)

Phantom line.

Low power requirement.

20-Page operatmg manual.

Full 1-year warranty.

Assembled and tested full price only $625

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

Tarbell Cassette Interface

• Plugs directly into your IMSAI or ALTAIR.

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

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

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

• 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, plus these added features:

Assignment of I/O.

Alphanumeric line labels.

Unlimited length of variable names and strings.

Number system 10 digits BCD integer or floating point.

Procedures with independent variables.

Read and Write string data.

Multi-file capability. Full price with complete documentation $48.

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

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

75. $8.

950 DOVLEN PLACE • SUITE B CARSON, CALIFORNIA 90746

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

BYTE August 1979 71

Q| = G, (D|)

D, = E, + R,

system and also the proprioceptive and kinesthetic pathways. CrosscoupHng from these ascending hierarchies of sensory-processing modules to the motor-generating hierarchies provides the many different levels of sensory feedback information required at the various stages of the task or goal decomposition process. At each level, output vectors from the previous level of the sensoryprocessing hierarchy provide inputs to the next higher level, as well as feedback to the same level of the behavior-generating hierarchy.

In the case of vision, the twodimensional nature of input from the surface of the retina causes the computational modules in the visual processing system to be organized in sheets. This implies that a CMAC model of a typical level in the visual processing hierarchy would resemble

Figure 5: A two-dimensional array of sensory-processing Cerebellar Model Arithmetic Computers such as might exist in the visual system. The observed sensory image E^ plus the prediction vector Rj enters and is recognized by the operator Gj as a pattern. The vector R^ may select one of many filter functions or provide an expected image or map to be compared against the observed image.

the structure shown in figure 5. In this structure the sensory input Di might consist of a pattern of sensory variables Ej defining light intensity (perhaps in a particular color band) together with predicted variables R^ which select a particular filter function. The output Qi = G^ (Dx) then might define a pattern of edges or line

segments. This output forms part of the input E2 to the second level. Output from the second level, Q2 = G2 (D2), might define patterns of connected regions or segments.

Recent work by David Marr at the Massachusetts Insititute of Technology and Jay Tennenbaum at SRI International suggests that the output vectors Qj at various levels may define more than one type of feature. For example, a single level in the visual processing system might contain a depth image (derived from stereo disparity, light gradients, local edge-interaction cues, etc), a velocity image (derived from motion detectors), and an outline drawing image (derived from edge detectors, line, and corner finders) in addition to brightness, color, and texture images of the visual field. These and many other kinds of information appear to

72 August 1979 © BYTE Publications Inc

DOUBLE DENSITY!!

from

For the last year the Micro industry has been promising double density, and indeed some have been delivered. But if you're still waiting for your order or grown tired of flaky performance, call Delta. After a year of engineering and months of production planning — 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-SO CPU — 32 and 16K RAM — Video Interface

WE HAVE iMcVizR H

AL*

A FIELD RETURN!

m

Designed for CPM

•

2 Data separators; one

®

On Board Boot

digital, one analog

m

2MHz-4MHz Operation

•

Runs without occupying any

#

Switch Selectable Write

system RAM

Precomp.

•

Complete Documentation

•

"Personality Board" to

•

Transparent Density Select

Modify Drive Configurations

•

Drive Diagnostic Software

(No jumper wires)

included

West:

DEL TA PRODUCTS

1653 E. 28th Street Long Beach, Calif. 90806 Tel; (213) 595-7505

Circle 98 on inquiry card.

East.

DELTA PRODUCTS

1254 South Cedar Road New Lenox, Illinois 60451 Tel: (815)485-9072

BYTE August 1979 73

Circle 99 on inquiry card.

Whenyou

want to

makea

good

impression,

Pick ADaisy.

Diablo invented the Daisy Wheel. Which is why today, more people pick one of over 100 different Diablo Daisy Wheels when they want print quality at its finest.

So, the next time you want to make a good impression, pick our daisy and you're sure to look your best.

Diablo Systems

XEROX

Diablrf and Xirrox arc registered trademarks of XEROX CORPORATION.

74 August 1979 © BYTE Publications Inc

exist in registration at several different levels of the visual information processing hierarchy so as to make possible the extremely sophisticated visual recognition tasks which our brains routinely perform. These different types of images interact, sometimes reinforcing each other so as to confirm a recognition, and sometimes contradicting each other so as to reject one possible interpretation of the visual input in favor of another.

Crosscoupling

Cross links from the descending hierarchies of motor-generating modules provide the many different levels of contextual and predictive information required at various stages of the pattern recognition or sensory analysis process. In the visual hierarchy, as well as in all other sensoryprocessing hierarchies, context variables Rj may define expected values of the Ej vectors. This implies that the addresses Pj and Xj have stored data from previous experiences when what is currently recalled as Rj was experienced as Ej. In this case the recalled context Rj is essentially a stored image, or map, which is accessed by an associative address created by the behavior-generating hierarchy being in a state more or less similar to that which existed when the remembered experience (ie: the map) was stored.

This implies that the sensory data processing hierarchy is a multilevel map (or template) matching process, and that in order to generate these maps the behavior-generating side of the crosscoupled hierarchy must be put into a state (or pulled along a trajectory) similar to that which existed when the template was recorded.

When this occurs, the interaction around the loop formed by the G;, Hj, and Mj modules at each level is similar to a phase-lock loop, or a relaxation process. The data E; enters the module Gj which recognizes it to be in a certain class Q; with perhaps an error of Fj. The recognition Q; triggers an appropriate goal decomposition (or subgoal selection) function in the Hj+i (or higher) modules which generates a command (or hypothesis) Cj. This command, modified by the error Fj, generates a subcommand (or subhypothesis) Pi and hence a predicted data vector Rj. The prediction R; may confirm the preliminary recognition Qj and pull the context P;

into a more exact prediction via the feedback loop involving Fj. Alternatively the prediction R; may cause Gj to alter or abandon the recognition Qi in favor of another recognition

QV

Loops and Rhythms

Obviously such looping interactions involve timing and phase relationships which may themselves have information content. Many sensory data patterns, especially in the auditory, visual, and kinesthetic pathways, are time dependent and involve some form of rhythmic or harmonic temporal patterns as well as spatial relationships. For example, activities such as walking, running, dancing, singing, speaking, and gesturing all have a distinctly rhythmic and sometimes strictly periodic character.

As was discussed in part 1 of this series, temporal patterns at various levels correspond to trajectories with different time rates of change, and hence (assuming approximately the same information content stored as trajectories at each level) different periods or complete rhythmical patterns. For example, at the lowest level of the auditory system, brain cells are excited by mechanical and electrical stimuli with frequencies ranging from about 20 Hz to 20,000 Hz. These sensory inputs thus have periodicities from 0.00005 to 0.05 seconds.

The highest frequency a nerve axon can transmit is about 500 Hz, but the brain handles higher frequencies in a manner somewhat reminiscent of the cerebellum's encoding of precise position. It encodes pieces of information about the phase of a wavefront on a number of different fibers. This means that by knowing which fibers are firing in which combinations at which instants, one can compute not only what is the fundamental pitch of the temporal pattern but what are all of its overtones. Thus, the CM AC G function at the lowest level (or really the loop comprised of the lowest level G, H, and M modules) can compute the Fourier transform, or the autocorrelation function, and presumably even the Bessel function describing the modes of vibration of the cochlear membrane.

Assume for example, that the G, H, and M modules in figure 6 constitute a phase-lock loop such that the input PATTERN is a signal f(t) and the

\\^e

s\erns

sr.=<oi-==^>.=

00^

a\Srnc.on^^^^;ao9svs'

xe^^

^°^:n( 6809,^^=6809

o

CO(T»^

ov

o

o

o

o

o

0

0

o

a\eci ^hVs^ed

£quwe

o

po*c

asser^^^^^Jppons

"^^ss

(Tiac

o

O

o

0

o

and

^6*0^

and co'^"":.^ \ot 680?-;-g:d\QA '

dN/f^'

o

arn\c

capa

,b*W

O

o

0

o.

o

cof^'

dA^o'^'^ and

f t£>^

a\\c'

ode V den^'

pfice

P<°'^".';., 6809 ..!:,^^';ndeP«^^;;;acW^^e

E.ceP:;j,d>!:?:.ua\sa'

enW^'^'^ruset's

an^a' 0? cas'

maf^ code

Si*"

d\s\^'

on d^s\^

o

o

0

o

oo-vv5°Tofs>'-'°-"*"

duc^s

ab\e

avaWa'

^ov a P^j 30/0 \ot

^\\

^-°tS-^e^'

.nd ^an'

on

o

o

0

c

1^^^

o

41906

O

o

o

0

0

Circle 363 on inquiry card.

BYTE August 1979 75

0

NAME

Pi Pl

HYPOTHESIS

PHASE ERROR

LOW PASS

PREDICTION f(t-T|)

f(t-Ti_)

PATTERN f(t) CONTEXT CONTEXT

Figure 6. A phase-lock loop consisting of a G, H, and M module. If the H and M modules produce a set of signals with nearly the same periodicity as the incoming signal E, the G function can compute a phase error signal F which pulls the R prediction into lock with the E observation. The G module can then also compute an autocorrelation function which gives a perception of pitch.

PREDICTION is another signal f(t —t). If the processing module G computes the product of the PATTERN . PREDICTION, then the output NAME is f (t) • f (t - r). When r corresponds to 1/4 of the period of the input f(t), a low pass filter applied to the output will produce a phase ERROR signal which, when applied to the H module, can enable the PREDICTION signal f(t-T) to track and lock on to the input PATTERN f(t). If the loop consists of a multiplicity of pathways with different delays (t > 0), the output, when processed through low pass filters, will produce an autocorrelation function:

T -T

such that:

qi = <t>fATi) qz = <^//(t2)

•

Q= •

qt = <^//(t£) where:

0<Ti<T2 ... <ri It has been shown that such an

autocorrelation function produces a perception of pitch which is in good agreement with psychophysical data. In figure 6 the presence of an output on element qj would correspond to

the perception of pitch at a frequency

1

Ti

Music and Language

Figure 7 suggests how a hierarchy of phase-lock loops might interact to recognize the variety of periodicities which provide the information content in spoken language and music. The coefficients that q; obtained from the lowest level loop form the input (together with other variables) to the second level.

If we assume that the sensory input to the first level consists of a pattern rich in information, such as music or speech, then as time progresses the trajectory of the input vector to the second level will also contain many periodicities. The principal difference from the standpoint of information theory is that the periodicity is now on the order of 0.05 seconds to 0.5 seconds. The trajectory input to the second level can, of course, be subjected to a quite similar mathematical analysis as were the trajectories of hair cell distortions and cochlear electrical stimulation which were input to the first level.

The principal difference is that at the second level and higher, informa

tion can be encoded for neural transmission by pulse-frequency rather than pulse-phase modulation. Also, some of the mechanisms by which time integrals are computed may be different. Nevertheless, processing by a CMAC G function can transform sections of the input trajectory into output vectors so as, in effect, to give them names. Characteristic patterns, or periodicities, at the second level are named notes, when the sensory stimulus is music. Where the stimulus is spoken language, they may be called phonemes.

The output of the second level forms part of the input to the third. The G function at the third level computes the names of strings of phonemes which it calls words, or strings of notes which it calls tunes. The G function at the fourth level computes names of strings of words which it calls sentences (or ideas), strings of tunes which it calls musical passages, etc. In music, the pattern in which the different periodicities match up as multiples and submultiples (ie: the beat, notes, various voices, melodies, and chord sequences) comprise the inner structure, harmony, or "meaning." The ability of the sensory processinggenerating hierarchy of the listener to lock on to the periodicities and harmonies at many different levels (and hence many different periodic intervals) is the ability to "appreciate" or "understand" the music.

Similarly in speech the ability of the audio-processing hierarchy to lock on to periodicities at each level, and to detect or recognize and pass on to the next level the information bearing modulations or deviations in those periodicities, constitutes the ability to "understand" what is spoken. If the audio system locks on only at the first level, it detects phonetic sounds but not words. If it locks on the first two levels but no higher, it detects words but not meaningful phrases. If, however, the audio hierarchy locks on at the third, fourth, fifth, and higher levels, there is excited in the mind of the listener many of the same trajectories and sequences of interrelated and harmonious patterns (ie: goals, hypotheses, sensory experiences) as exist in the mind of the speaker.

This gives the speaker the ability to transmit messages and, even more important, 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 of sophisticated signals related to dominance, submission, and social interaction. Furthermore, by this mechanism he can induce into the highest levels of the sensory processing hierarchy of the listener recalled memories of his own experience. He can tell tales, relate stories, and thereby provide others with secondhand information as to what strategies and goal decomposition rules he personally has found to be successful.

Origin of Language

One of the most basic features of language is that it is a form of behavior. That seems an obvious thing to say, but evidently it is not. Many experts feel that because language is connected with the intellect (ie: a higher function) it is quite divorced from mere motor behavior. However, there is no such thing as mere motor behavior. All behavior is the final output trajectory in the decomposition of high level goals. The intellect is not something distinct from behavior. It is the deep structure of behavior. It is the set of nonterminal trajectories which generate and coordinate what finally results in the phenomena of purposive or intentional action.

Language is certainly like other behavior in that it results from the coordinated contractions of muscles; in the chest, throat, and mouth. Like any other behavior such as walking, dancing, making a tool, or hunting for prey, language is both learned and goal directed.

The infant is born with only the most basic verbal reflexes. At first primitives are learned (coos, gurgles, cries, and phonetic sounds of various types), then strings of primitives (words), and finally strings of strings (phrases), etc. The sensory processing system stores (ie: records) sounds from the environment as R; trajectories. Later the behavior-generating system learns to produce verbal outputs which mimic or duplicate these stored trajectories.

As with all behavior, the purpose of language is to obtain reward, to avoid punishment, and to achieve success in the social dominance hierarchy. The unique feature of language behavior is that it allows

CONCEPT DETECTED

LANGUAGE GOAL TO BE ENCODED

PHRASE ERROR

PHRASE DETECTED

PREDICTED PHRASE

PHRASE SELECTED

WORD ERROR

PREDICTED WORD

WORD DETECTED

PITCH ERROR

PHONEME

(PITCH) DETECTED

PREDICTED PHONEME (PITCH)

PHASE ERROR

PREDICTED FREQUENCY

FREQUENCY DETECTED

FEEDBACK FROM STRETCH RECEPTORS IN MUSCLES

LUNGS, LIPS LARYNX, TONGUE

VOICE OUTPUT

Figure 7. A crosscoupled hierarchy in the hearing-speech system. The generating hierarchy decomposes language goals into strings of verbal output. When speech is being generated, the sensory processing hierarchy provides feedback to control intensity and modulation. When listening only, the generating hierarchy provides hypotheses and predictions for use in detecting, recognizing, following, and understanding the sensory input.

communication between individuals to enlist help, to issue commands, to organize group behavior, and to receive feedback information from the sensory experiences of others.

Writing

Certainly written language, at least, had its origins in goal-seeking activities. For example, the earliest writing in China began around 2000 BC as ideograms or symbols, engraved on bones and shells for the purpose of asking questions of heaven. Each stroke or series of strokes asks a certain question or seeks guidance for a particular branch point in the behavioral trajectory of the life of the asker.

The earliest of all known writing is

the Uruk tablets discovered in the Mideast and dated about 3100 BC. This writing appears to be almost exclusively a mechanism for recording business transactions and land sales. These written symbols are now thought to be pictorial lists of tokens used for keeping track of merchandise or livestock. The tokens themselves first appeared 5000 years earlier during the beginning of the Neolithic period in Mesopotamia when human behavior patterns related to hunting and gathering were being replaced by others related to animal husbandry, agriculture, and the village market place.

This token method of accounting apparently served its purpose well, for the system remained virtually un

August 1979 © BYTE Publications Inc 77

changed for about 5 millennia until the early Bronze Age when cities and city-states became the most advanced social organizations, and commerce grew into a large scale and complex enterprise. Then the requirements for more efficient accounting procedures led to the pictorial listing of tokens by writing on tablets — an early form of double-entry bookkeeping.

Once skill in this form of writing became widespread and commonly practiced, only a few additional symbols and some rules of syntax were required to express decrees, record dates, and relate accounts of significant events.

Thus, the language skill of writing

evolved in small increments over many generations from the goal directed manipulation of physical objects; first the objects themselves, then token objects, and finally images or symbols representing the tokens. The meaning of the symbols, as well as the rules of syntax, were obvious to anyone having an everyday familiarity with the manipulation rules for tokens. These in turn mimicked the rules for manipulation of the objects of merchandise. The manipulation of symbols in written language is a form of goal-seeking behavior which evolved from, and remains similar to, the manipulation of physical objects. Skill in writing, as any other com

64KB MICROPROCESSOR MEMORIES

S-100-$750.00 LSI - $750.00

m

CI-S100 64K X 8

iliiiiii •lilliii iiiiiili

CI-1103 32KX 16

j_-.-..lia:i'i

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 Bus computers. No wait states even with ZBO at 4Mhz. Addressable in 4K increments. Power requirement 6 watts. Price $750.00.

CI-1103 — 8K words to 32K words in a single option slot. Plugs directly into LSI 11, LSI 11/2, H11 & PDP 1103. Addressable in 2K increments up to 128K. 8K X 16 $390.00. 32K x 16 $750.00 qty. one.

CI-6800 — 16KB to 64KB on a single board. Plugs directly into Motorola's EXORcisor and compatible with the evaluation modules. Addressable in 4K increments up to 64K. 16KB $390.00. 64KB $750.00.

CI-8080 — 16KB to 64KB on single board. Plugs directly into Intel's MDS 800 and SBC 80/10. Addressable in 4K increments up to 64K. 16KB $390.00. 64KB $750.00

C

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 acquired through painstaking training, endless practice, and numerous corrections of mistakes by a teacher. It is learned in stages, the lowest level primitives first (forming letters), then strings of primitives (words), then strings of strings (sentences), and so on. Only when the rules of spelling, grammar, and composition are more or less mastered can the scribe express or encode a thought (ie: a high level trajectory) into a string of written symbols.

Speech

The origin of speech is much less certain since it dates from an earlier period. In fact, if we include the sounds of whales, animals, birds, and even insects as a form of speech, spoken language predates the origin of humanity itself. Surely any behavior pattern which communicates a threat, signals submission, expresses fear or acceptance, is a form of language whether it be audible speech or sign language, whether it be expressed by a mouse or a human. By this definition, some speech is very simple — a single facial expression, gesture, chirp, growl, or squeak for each emotional state encoded or intent expressed. Throughout the animal kingdom however, there exists a great variety of modes of expression and many different levels of complexity. Clearly sounds such as the growls, whines, barks, and howls of the wolf express an extremely complex variety of social communications. One can easily feel caught up in a primitive community sing-along when listening to a recording of a wolf-pack chorus.

As we ascend the ladder of behavioral complexity, we find a corresponding increase in the ability to communicate complex messages. In most cases this appears to be not so much an increased vocal capacity as an increased complexity of deep structure underlying overt behavior. This implies that the ability to speak derives, first of all, from having something to say (ie: from having internal trajectories of sufficient complexity that to attach facial expressions, gestures, and audible sounds to them results in complex and subtle messages).

Primitive Human Speech

The most ancient forms of human speech that survive today are the tribal dances of the few remaining

78 August 1979 © BYTE Publications Inc

Circle 47 on inquiry card.

MAl<^

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

If I niiNVJi yuu iiecu iii oiiiaii v^Vyrii

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

.^'

SOFTWARE

.00

^ecatr/

,luHVioe

ot-Vei'as

H/VZE^"^^^^

1AA0.A500.

'AAO.--i,

A3. ^ot P'f'*^®

WWcfO \ ol^V.t

779-2 ■ ■ ■ ■ \ ^ot

703-0-•■•' ^

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

c^tL*

\ot

pnces

/ Here are nine packages thati

enable you to make full use of

tne potential in your small

computer system:

ACCOUNTS RECEIVABLE

INVENTORY

ORDER ENTRY

WORD PROCESSING

PAYROLL

REAL ESTATE IWGT

MEDICAL-DENTAL

MAILING PROGRAM

SHIPPING & RECEIVING

and MORE!

Microsoft Basic, Fortran, Cobol

available

CALL* for prices

COM^'

W pnce

^1*

DSC-2--, Ob\eOen'

^9!!;Ss^

\ pnces

MORE SPECIALS

Decwriterll $1595.00

Qume Sprint 5/45

RO 2795.00

Persci 277 Dble

Density 1395.00

lnisaiPCS80/15 599.00

\ Anadex DP 8000

Printer 995.00

44 Column Printer .. ..$295.00

Livermore Accoustic

Coupler 249.00

Javelin 9" Monitor 159.95

Centronics

Micro P-1 Printer ... 495.00

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

SYNCHRO-SOUND

The Computer People

193-25 Jamaica Avenue, Jamaica, New Vbrk 11423

212/468-7067 TWX 710-582-5886

ENTERPRISES, INC.

Hours 9-4 Daily and Saturday

Visit our new stiowroom Working units on display

BankAmericard Master Charge

Circle 355 on inquiry card.

BYTE August 1979

79

stone-age peoples. In such rites, information on vital subjects such as hunting (including the habits, ferocity, and vulnerable areas of the prey), the proper techniques of stalking, using weapons, etc, are conveyed by dance, symbolic gestures, pantomime, songs, and shouts, as the hunters relate (indeed reenact) the exploits of the hunt. The storytellers replay the behavioral trajectories of their own actual hunting experience and attach verbal symbols and gestures to the portions which cannot be literally acted out.

Even in modern cultures, the majority of everyday speech consists of relating experiences ("...he did this, and I said that...," etc). This is simply the straightforward encoding of behavioral trajectories, or the recalled sensory experiences addressed by those behavioral trajectories, into a string of language tokens or symbols such as gestures, vocal cord, tongue, and lip manipulations. Thus, in the final analysis, all language is a form of goal-directed manipulation of tokens and symbols. The ultimate result is a manipulation of the minds.

and hence the actions, of other members of the society. Language is a tool by which a speaker can arouse or implant in the listener a great variety of behavioral goals, hypotheses, and belief structures. By the use of these means, a speaker can command, instruct, threaten, entertain, or chastise other persons in his group to his own benefit and for his own ends.

The implication for research in language understanding is that there is much to be learned from the relationship between language and other forms of behavior. How, for example, can behavioral goals and trajectories be encoded into strings of language symbols for making requests, issuing commands, and relating sensory experiences? How can patterns of trajectories be encoded and transmitted by one processing-generating hierarchy so as to be received and reconstructed by another?

Clearly, language recognition depends on many of the same mechanisms by which the rhythms, periodicities, and harmonic patterns of music, song, and poetry are recog

nized, tracked, and predicted at many different levels. Consider that children are fascinated by rhythmical sounds, rhymes, and the repetition of familiar stories. Why do adolescents find it so rewarding to hear the same popular song over and over? Is it not the predictability, the lock-on which can be achieved due to a correspondence between the stored internal model and the observed sensory data stream? And why are the rhythmic movements of dancing and marching to music so compelling? Is it not the correlations and harmonic relationships between trajectories in the behavior-generating and sensoryprocessing hierarchies?

Music is a relatively simple domain for the study of the time dependent interactions between stored models and input data, and the study of music recognition by computer in an almost completely unexplored field. Thus, it is a fertile area for computer hobbyists and other researchers with limited resources.

Part 4 will discuss some operations of the highest hierarchical level such as will, emotion, and creativity. ■

SINEWAVE MARKET

ANALYSIS

CAN YOU USE YOUR MICROCOMPUTER TO OUTWIT THE STOCKMARKET?

Stockmarket cycles and sinewave forms have been correlated with fascinating results. Forecasts with unusually low prediction error can now be made. They were developed by a degreed engineer who possesses a rare mathematical mind and has nineteen years experience with business computer applications. An early interest In the stockmarket led him to the striking similarity between sinewave forms and stockmarket cycles. For two decades he studied the market and collected data. But, it wasn't until he recently acquired his own microcomputer that it became feasable to make the necessary correlations.

THE RESULTS • His programs, contain multiple sinewave functions AND make twenty-four month projections that yield prediction errors of less than 372% over the 40 years of historical base data. Although he makes no claims about the predictive accuracy of this method for the future, he is doubtful that anyone can develop a more accurate mathematically based predictive tool. • A programmed trading method that utilizes projections of the historical data to select buy/sell opportunities. Annual yields of 25% were derived from trades over the 40 year historical (^ period.

THIS IS THE MOST IDEAL AND PRACTICAL APPLICATION FOR MICROCOMPUTERS DEVELOPED TO DATEI

• It is not a "kids" game designed to occupy idle time.

• rr [S an unusual challenge for anyone who wants real action.

HERES WHAT WE'LL SEND YOU

ON 5%" 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 or other by special arrangement.

ORDER DIRECT SMA; P.O. Box 415; Burlington, Iowa 52601

I

Name

Street

City, State, Zip_ Credit Card No. _

Signature

D Checl<

D Monev Order

Exp. Date.

D

D

a

a n

a

.J

80 August 1979 © BYTE Publications Inc

Circle 330 on Inquiry card.

p ^ p ^ ^ pi ^

prppp

imiiJ © mmin) uat i im s

A newquaiterly t^ the staff of BYTE

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

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

Add onComputing to your library of 'must' publications. Act now, subscribe and receive four (4) issues a; $8.50 for one year (U.S.); Canada and Mexico; $10.00.

GUIDE TO PERSONAL «^ COMPUTING

SGBSCRiBE NOW! COMPLETE AND AVML ATTACHED POSTAGE PAID REPLY CARD

onComputing, Inc. D 70 Main St D Peterborough, MH 03458 n Dial toil free 800-258-5485 (In NH 924-7217)

TM

Exploring TRS-80 Graphics

George H Yeager

223 Riverside Dr

St Albans WV 25177

/~

CONTROL BYTE

"X

DIGIT I

DIGIT 2

"X/^

8'

GRAPHIC MOOE

UNUSEO

2'

I SETS A CELL ELEMENT ON "O" RESETS A CELL ELEMENT

■

2

4

8

11

2'

Figure 1: Cellular division of a graphics cell on the video display screen. The control byte is divided into 2 hexadecimal digits. Individual bits of digit 1 are marked with primes (1'), and bits are designated by their corresponding power of 2 (rather than sequentially). Bit 8' controls the graphics mode. Bit 4' (marked X) is not used.

Radio Shack seems to hide the neat little jewels of information a hobbyist needs to make a treasure of the TRS-80. One jewel is how to use the computer's graphics capability once you squeeze into the world of machine language by use of the T-BUG monitor. Beyond the excellent Level 1 User's Handbook, there has been little information until recently.

Between sessions of disassembling the undocumented control routines for keyboard, video, and cassette, I employed a "crystal ball" to unravel the mystery of machine language graphics control. (TRS-80 owners must be resourceful.) Here is what I found.

First, video display is in main memory address space and resides between hexadecimal locations 3C00 to 3FFF. Address 3C00 corresponds to the upper left corner of the monitor screen and 3FFF to the lower right corner. Anything placed in this block of memory will appear on the display at a specific cell (section of display grid) as a dot-matrix alphanumeric character or as a 6 element graphic character (the TRS-80 hardware does that).

The Radio Shack video display work sheet shows the location of each of the 1024 cells in the video display format. There are 64 cells per line and 16 lines on the page. Figure 1 shows how each cell is divided into six elements for graphics. The bottom two elements are always dark in the alphanumeric mode, providing line spacing.

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

450 B

OE

450C

45

450D

C9

Return to caller

450E

01

*show three*

450 F

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 use with T-BUG or other monitor. This displays the starship Enterprise. Call this as a subroutine after preserving necessary registers. In the subroutine, registers H and L hold the output table pointer. Registers D and E contain the upper left corner location of graphic symbol within the display memory. Registers A, B, C, D, E, H, and L will be altered. This is meant only as a demonstration; it may not be general enough for other

specific cell on the screen, data with a value of hexadecimal 80 or above must be placed into the memory location with which it corresponds. The most significant bit of the byte sets the graphics mode; placing a value of 7F or lower in a location activates the alphanumeric mode for the related cell.

Looking at figure 1, note that bits 1' and 2' of digit 1 control the bottom two elements in the cell. (These read as "one prime" and "two prime"; primes indicate digit 1.) Note also that bits 1, 2, 4, and 8 of digit 2 control the top four cell elements. In the graphics mode, bit 4' is a "don't care" (ie, it is not used). If the cell element control bit is set to a 1, the element will be lit on the screen. If the element control bit is reset to 0, the element will not be lit.

The element control bits are identified in figure 1 by their decimal weight. The sum of the bits set to 1 in

each section of the cell can be converted to hexadecimal to determine the code for each digit in the graphic control byte. Figure 2 (on page 84) shows all graphic characters and the proper generation codes, so that manipulation may be made easier.

The system is simple and flexible, allowing many shapes to be generated with one byte of code. It is unfortunate that the cell shape is unsymmetrical, thus complicating rotation and transformation of graphic displays. However, the mystery is now solved. A whole new world of more finely detailed and faster displays is available for TRS-80 fans.

I have provided a small demonstration program shown as listing 1. Running it under T-BUG will give an idea of the capabilities provided by machine language control of the TRS-80 graphics. Good luck, and let me know what you find out from your crystal ball.

16K Static RAM Boards 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.

8368^8

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 24 VIDEO BOARD

With hardware scrolling, x-y addressable cursor and multiple character generators. It includes a TMS 2716 EPROM that contains a full 128 upper and lower case ASCII character set with true descenders; plus a socket for another TfvlS 2716 for an optional 128 character set; plus 2K of RAM for user-defined programmable character sets. This gives the user the ability to create his own heiroglyphics, alphabet, graphic elements, etc., and store them on PROM, disk, or tape.

The user can choose and intermix 384 different characters from any or all of the character generatcrs and display up to 256 at one time, normally or inversely. and at full or half intensity, at any location on the screen. Contiguous 8x10 character cells permit solid lines and connecting patterns with user definable graphic elements.

It is addressable to any 2K boundary. GHOSTable addressing allows multiple boards al ttie same address, making it ideal for multiuser applications. The available software includes a GMXBUG video based 3K ROM monitor, stand alone driver routines, and a program to create 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 PLACE CHICAGO, ILLINOIS 60609 (312) 927-5510 • TWX 910-221-4055

The Company that delivers.

Quality Electronic products since 1975.

Auguse 1979 © BYTE Publications Inc 83

J3

rsi

S

a o

s

!

I

6

3

o

Fuq^ ^B= W=U^ ^S'

H!^3" SiHS^

H

Fffq

1%

-o —

3 O

a 5

ai a, 3 ^

84 August 1979 © BYTE Publications Inc

"BOOKS OF INTEREST TO COMPUTER PEOPLE"

More BYTE

:^f •

S

in your future

Circle 36 on inquiry card.

BYTE AugusI 1979 85

And the future

THE BYTE BOOK OF COMPUTER MClSIC combines the best computer music articles from past issues of BYTE Magazine witin exciting new material—all written for the computer experimenter interested in this fascinating field.

You will enjoy Hal Chamberlin's "A Sampling of Techniques for Computer Performance of Music", which shows how you can create four-part melodies on your computer. Forthe budget minded, "A$19Music Interface" contains practical tutorial information—and organ fans will enjoy reading "Electronic Organ Chips For Use in Computer Music Synthesis".

New material includes "Polyphony Made Easy" and "A Terrain Reader". The first describes a handy circuit that allows you to enter more than one note at a time into your computer from a musical keyboard. The "Terrain Reader" is a remarkable program that creates random music based on land terrain maps.

Other articles range from flights of fancy about the reproductive systems of pianos to Fast Fourier transform programs written in BASIC and 6800 machine language, multi-computer music systems, Walsh Functions, and much more.

For the first time, material difficult to obtain has been collected into one convenient, easy to read book. An ardent do-it-yourselfer or armchair musicologist will find this book to be a useful addition to the library.

^^

ISBN 0-931718-11-2 Editor: Christopher P. Morgan Pages: approx. 128 Price: $10.00

1 rKHffit'li iiu,

SaPERWOMPaS is an exciting computer game incorporating the original structure of the WGMPaS game along with added features to make it even more fascinating. The original game was described in the book What To Do After You Hit Return, published by the People's Computer Company. Programmed in both 6800 assembly language and

BASIC, SaPERWGMPGS is not only addictively fun, but also provides a splendid tutorial on setting up unusual data structures (the tunnel and cave system of SCPERWUMPUS forms a dodecahedron). This is a PAPERBYTE™ book.

ISBN 0-931718-03-1 Author: Jack Emmerichs Pages: 56 Price: $6.00

Tiny

AssemMar

6800

\s_

sss:as^l

J

TINY ASSEMBLER 6800, Version 3.1 is an enhancement of Jack Emmerichs' successful Tiny Assembler. The original version (3.0) was described first in the April and May 1977 issues of BYTE magazine, and later in the PAPERBYTE™ book TINY ASSEMBLER 6800 Version 3.0.

In September 1977, BYTE magazine published an article entitled, "Expanding The Tiny Assembler". This provided a detailed description of the enhancements incorporated into Version 3.1, such as the addition of a "begin" statement, a "virtual symbol table", and a larger subset of the Motorola 6800 assembly language.

All the above articles, plus an updated version of the user's guide, the source, object and PAPERBYTE''''*^ bar code formats of both Version 3.0 and 3.1 make this book the most complete documentation possible for Jack Emmerichs' Tiny Assembler.

ISBN 0-931718-08-2 Author: Jack Emmerichs Pages: 80 Price: $9.00

A walk through this book brings you into Ciarcia's Circuit Cellar for a detailed look at the marvelous projects which let you do useful things with your microcomputer. A collection of more than a year's worth of the popular series in BYTE magazine, Ciarcia's Circuit Cellar includes the six winners of BYTE's On-going Monitor Box (BOMB) award, voted by the readers themselves as the best articles of the month: Control the World (September 1977), Memory Mapped lO (Novemberl977),ProgramYourNextEROM in BASIC (March 1978), Tune In and Turn On (April 1978), Talk To Me (June 1978), and Let Your Fingers Do the Talking (August 1978).

Each article is a complete tutorial giving all the details needed to construct each project Gsing amusing anecdotes to introduce the articles and an easy-going style, Steve presents each project so that even a neophyte need not be afraid to try it

^^

ISBM 0-931718-07-4 Author: Steve Ciarcia Pages: approx. 128 Price: $8.00

is right now!

BASEX, a new compact, compiled language for microcomputers, has many of the best features of BASIC and the 8080 assembly language—and it can be run on any of the 8080 style microprocessors: 8080, Z-80, or 8085. This is a PAPERBYTE™ book.

Subroutines in the BASEX operating system typically execute programs up to five times faster than equivalent programs in a BASIC interpreter—while requiring about half the memory space. In addition, BASEX has most of the powerful features of good BASIC interpreters including array variables, text strings, arithmetic operations on signed 16 bit integers, and versatile 10 communication functions. And since the two languages, BASEX and BASIC, are so similar, it is possible to easily translate programs using integer arithmetic data from BASIC into BASEX. The author, Paul Warme, has also included a BASEX Loader program which is capable of relocating programs anywhere in memory.

^s^

ISBN 0-931718-05-8 Author: Paul Warme Pages: 88 Price: $8.00

PROGRAMMING TECHNIQCJES is a series of BYTE BOOKS concerned with the art and science of computer programming. It is a collection of the best articles from BYTE magazine and new material collected just for this series. Each volume of the series provides the personal computer user with background information to write and maintain programs effectively.

The first volume in the Programming Techniques series is entitled PROGRAM DESIGN. It discusses in detail the theory of program design. The purpose of the book is to provide the personal computer user with the techniques needed to design efficient effective, maintainable programs. Included is information concerning structured program design, modular programming techniques, program logic design, and examples of some of the more common traps the casual as well as the experienced programmer may fall into. In addition, details on various aspects of the actual program functions, such as hashed tables and binary tree processing, are included.

ISBN 0-931718-12-0 Editor: Blaise W. LIffick Pages: 96 Price: $6.00

SIMULATION is the second volume in the Programming Techniques series. The chapters deal with various aspects of specific types of simulation. Both theoretical and practical applications are included. Particularly stressed is simulation of motion, including wave motion and flying objects. The realm of artificial intelligence is explored, along with simulating robot motion with the microcomputer. Finally, tips on how to simulate electronic circuits on the computer are detailed.

ISBN 0-931718-13-9 Editor: Blaise W. Liffick Pages: approx. 80 Price: $6.00 Publication: Winter 1979

RA6800ML: AN M6800 RELOCATABLE MACRO ASSEMBLER is a two pass assembler for the Motorola 6800 microprocessor. It is designed to run on a minimum system of 16 K bytes of memory, a system console (such as a Teletype terminal), a system monitor (such as Motorola MIKBGG read only memory program or the ICOM Floppy Disk Operating System), and some form of mass file storage (dual cassette recorders or a floppy disk).

The Assembler can produce a program listing, a sorted Symbol Table listing and relocatable object code. The object code is loaded and linked with other assembled ' modules using the Linking Loader LINK68. (Refer to PAPERBYTE™ publication LINK68: AN M6800 LINKING LOADER for details.)

There is a complete description of the 6800 Assembly language and its components, including outlines of the instruction and address formats, pseudo instructions and macro facilities. Each major routine of the Assembler is described in detail, complete with flow charts and a cross reference showing all calling and called-by routines, pointers, flags, and temporary variables.

In addition, details on interfacing and using the Assembler, error messages generated by the Assembler, the Assembler and sample lO driver source code listings, and PAPERBYTE"'''^ bar code representation of the Assembler's relocatable object file are all included.

This book provides the necessary background for coding programs in the 6800 assembly language, and for understanding the innermost operations of the Assembler.

ISBN 0-931718-10-4 Author: Jack E. Hemenway Pages: 184 Price: $25.00

to order books see next page

LINK68: AN MGSOO LINKING LOADER is a one

pass linking loader which allows separately translated relocatable object modules to be loaded and linked together to form a single executable load module, and to relocate modules in memory. It produces a load map and a load module inMotorola MIKBGG loaderformat. The Linking Loader requires 2 K bytes of memory, a system console (such as a Teletype terminal), a system monitor (for instance. Motorola MIKBGG read only memory program or the ICOM Floppy Disk Operating System), and some form of mass file storage (dual cassette recorders or a floppy disk).

It was the express purpose of the authors of this book to provide everything necessary for the user to easily learn about the system. In addition to the source code and PAPERBYTE^'^ bar code listings, there is a detailed description of the major routines of the Linking Loader, including flow charts. While implementing the system, the user has an opportunity to learn about the nature of linking loader design as well as simply acquiring a useful software tool.

ISBN 0-931718-09-0 Authors: Robert D. Grappel & Jack E, Hemenway Pages: 72 Price: $8.00 Winter 1979

TRACER: A 6800 DEBGGGING PROGRAM is for

the programmer looking for good debugging software. TRACER features single step execution using dynamic break points, register examination and modification, and memory examination and modification. This book includes a reprint of "Jack and the Machine Debug" (from the December 1977 issue of BYTE magazine), TRACER program notes, complete assembly and source listing in 6800 assembly language, object program listing, and machine readable PAPERBYTE^'^ bar codes of the object code.

ISBN 0-931718-02-3 Authors: Robert D. Grappel & Jack E, Hemenway Pages: 24 Price: $6.00

MONDEB: AN ADVANCED M6800 MONITORDEBOGGER has all the general features of Motorola's MIKBGG monitor as well as numerous other capabilities. Ease of use was a prime design consideration. The other goal was to achieve minimum memory requirements while retaining maximum versatility. The result is an extremely versatile program. The size of the entire MONDEB is less than 3 K.

Some of the command capabilities of MONDEB include displaying and setting the contents of registers, setting interrupts for debugging, testing a programmable memory range for bad memory locations, changing the display and input base of numbers, displaying the contents of memory, searching for a specified string, copying a range of bytes from one location in memory to another, and defining the location to which control will transfer upon receipt of an interrupt This is a PAPERBYTE™ book.

ISBN 0-931718-06-6 Author: Don Peters Pages: 88 Price: $5.00

BAR CODE LOADER. The purpose of this pamphlet is to present the decoding algorithm which was designed by Ken Budnick of Micro-Scan Associates at the request of BYTE Publications, Inc., for the PAPERBYTE^'^ bar code representation of executable code. The text of this pamphlet was written by Ken, and contains the general algorithm description in flow chart form plus detailed assemblies of program code for 6800, 6502 and 8080 processors. Individuals with computers based on these processors can use the software directly. I ndividuals with other processors can use the provided functional specifications and detail examples to create equivalent programs.

ISBN 0-931718-01-5 Author: Ken Budnick Pages: 32 Price: $2.00

BYTE BOOKS Division • 70 Main Street • Peterborough, New Hampshire 03458

Please send the books I have checked.

□ Computer Music $10.00 D SOPERWOMPOS $6.00

□ Tiny Assembler (3.1) $9.00 D Circuit Cellar $8.00

□ BASEX$8.00

□ Program Design $6.00 D Check enclosed

Card No.

D Simulation $6.00 nRA6800ML$ 25.00 nLink68$8.00 D TRACER $6.00 nMondeb$5.00 n Bar Code Loader $2.00 D Bill Visa □ Bill Master Charge Exp. Date

Total Books Add 60c per book Postage/Handling

Grand Total

Company

City

State/Province

Code

I I

J

BYTi; August 1979

Circle 36 on inquiry card.

IIIIIIIIIIIIHIHIHinillllllllNIMNinilllllllllllllllllNIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIHIIIHIIIIIIIIIirilllinillllllllllllllllllllllHIilllllllHIIIIIIIIIIIIIIIIIIMH

BYTE News ....

iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiriiiiii I iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiNiiiiiiiiuiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiimiiiiiiiiiiiiiiiiiiiii iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

BUBBLE MEMORY ARRIVES FOR PERSONAL COMPUTERS. Rockwell International has introduced a bubble memory board for a personal computer system. The board contains 128 K bytes of storage and plugs directly into the expansion bus for the AIM-6502 processor (which is the same as the KIM-1 bus). Rockwell also supplies a controller card which allows the bubble memory to function as a floppy disk replacement. The controller will control up to 16 memory boards for a total of 2 M bytes of bubble 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 and Rockwell are currently supplying bubble memories. Texas Instruments and Rockwell devices contain 256 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 producing limited quantities of the bubble memory devices and they do not expect to begin volume production until 1980. Furthermore, one Japanese manufacturer, Fujitsu, appears to be near bubble memory introduction.

MORE LARGE COMPANIES RUMORED ABOUT TO ENTER PERSONAL COMPUTER MARKET. Rumors continue that RCA, Hewlett-Packard and Zenith are seriously considering entering the personal computer market. Each is known to have a personal computer system development project in progress. Other companies seriously investigating the market include IBM and Bell Labs, each of which is known to have personal computer projects at the research facilities.

Several Japanese companies also introduced personal computer systems at the June NCC show in New York, Matsushita introduced its JD-700 to sell for $5,000 to $6,000. It has a 2 K byte read only memory, 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-2G ($7,500) which is Z-80 based, has two 5 inch 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" was formed in late 1978 to establish guidelines and standards for pulse code modulation (PCM) recordings. The council includes 35 companies and is an international group. The standard is expected to be 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 virtually eliminates distortion and noise. The record will also include an address code for random access of selections. 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-MOS memories. Intel has made 35 million of these units since its introduction in 1971.

TI INTRODUCES SPEAKING TRANSLATOR. At the June Consumer Electronics show, Texas Instruments introduced a hand-held language translator which displays and speaks the translated words through the use of a speech synthesizer circuit. This is a significant advance over the Craig and Lexicon 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 be available, with Russian, Japanese and Chinese to follow later. The unit displays 1000 words, 500 of which 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 their service accessible to personal computer users. The UPI wire can be dialed as a local number in most US 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 NY has disclosed their development of logic circuits with switching speeds of 13 picoseconds. Based on

AugusI 1979 © BYTE Publications Inc 89

Josephson junction technology, the devices are still in an experimental form. The new circuits are called "Current Injection Logic" and they generate thousands of times less heat than previous types of logic. 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 for international standardization. Commonly referred to as the Eurodisk, it is a square package that measures 4.12 inches (10.5 cm), will store 400 K bytes, use 50 tracks per side, and have a 300 K bps data transfer rate. The standard 5.25 inch (13.3 cm) floppy disk holds 125 K bytes on 40 tracks and has a 125 K bps data transfer rate (double these figures for double density). Olivetti is also expected to announce a very low cost 2.55 inch (6.5 cm) disk which will store 8 K bytes. It will take several seconds to read or write, there is no provision for random file access, it will be thicker, and will not use a jacket. It is rumored to be intended for use in a personal computer that is now nearing introduction. Rumors also continue that IBM will use the 3.25 inch (8.3 cm) disks, currently used in their dictating 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, several Japanese companies demonstrated prototype flat panel displays that are now in an advanced stage of development. Ise Electronics showed a 240 character (40 characters by 6 lines) vacuum-fluorescent display that was 250 mm wide by 100 mm high and 14.5 mm thick. It operated off of low voltage and was low power. Hitachi exhibited an 80 character LCD panel which was 280 mm by 50 mm by 23 mm, and operated from 5 VDC and dissipated only 100 mw. NEC showed a storage type LCD 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 systems will be introduced to the US market by the mid 1980s. Viewdata is a system that connects the home to a 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. Trial systems are already in operation in England and West Germany.

Teletext transmits data on a television signal, fitting the data into the blank space between picture frames. Micro-TV, a Philadelphia-based company has been doing this for over two years, while KSLTV, Salt Lake City, has done the same for one year. Texas Instruments is supplying the decoders for the KSL test.

The Electronic Industries Association is currently evaluating Teletext. Some companies believe that by the late 1980s the home system will include Viewdata, Teletext, video disk, and a personal computer system to control them. In fact, Apple Computer already offers a service, in conjunction with Dow Jones and Co, which permits Apple owners to display stock market information by dialing a phone number.

Viewdata and Teletext are viewed as complementary services to help bring advanced household management, home environmental control, teaching, and entertainment into the home. Some experts feel 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 means that they will know immediately if a set is stolen. The cable company will also be able to cut off nonpaying subscribers, thereby rendering stolen units useless.

A Miami-based company, Knight-Ridder Newspapers Inc, has formed a subsidiary named Viewdata Corporation of America, which will undertake a two year, $1.3M test. The Hong-Kong Telephone Company also expects to implement a Viewdata system next year.

The Canadian government and telephone companies are currently testing systems which transmit data 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 were built by Bell Northern Research. Bell Canada expects to have 1,500 to 2,000 units installed in homes next year. Several others are conducting tests.

Sol Libes

AGGNJ

1776 Raritan Road

Scotch Plains NI 07076

MAIL: I receive a large number of letters each month as a result o£ this column. li you wish a response, please include a stamped, self-addressed envelope.

90 August 1979 © BYTE Publications Inc

Wordsmith is the video text editing system you've been waiting for. Its power, flexibility and simplicity help you carve any text editing task down to size —in a way you can understand. We wanted a system that allows you to think in traditional ways about text layout, yet at the same time makes the traditionally tedious operations such as cut and paste simple and fast. We think we've done it. We want you to decide for yourself ^^^^^^^^^^^^^^^^^^^^^m^^^^^^^

Flexibility

Logical/Physical Page Distinction. Define your own hardcopy size. Wordsmith remembers the difference between the screen size and the hardcopy page size.

Modular Hardcopy Driver. Drive a QumeiS' Sprint-5 or TTY-like device directly now, Diablo. NEC and other hardcopy devices soon.

Pure Text. Wordsmith files are pure text with no control characters mixed in. This universal format keeps you as compatible with the world as possible. What you see on the screen is what you get as hardcopy.

Page Templates. Snapshots of the block layout of a page can be saved as named disk files, then later recalled and superimposed on the current page. Use such "templates" for standard multicolumn layouts, common letter formats, and fixed-field forms. A single keystroke dispatches you quickly from block to block as you fill in your page.

Take a

snapshot

of a

page's

windovw

layout

1

1

en

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, ^m

Power

Page Driented Philosophy. A document is a collection of pages. The screen displays one entire page at a time. Simple random access page flipping commands take you quickly to any page in the document. Equally efficient commands allow you to insert, delete, copy and move pages both within one document and across documents.

' Extensive Block Manipulation Capabilities. Using "windows", portions of text, charts, etc., can be quickly and effortlessly moved around on the current page, or across pages. The shape and size of any window can be changed in real time, with the contained text automatically reformatting itself (heeding word and paragraph boundaries) to conform to the new shape.

Move Text Blocks

Set Up

Multiple Text

Regions

Change Text Shape

Instantaneous Formatting. Compacting (extraneous blank deletion) and right justifying are simple commands that tidy up a full page or window's worth of text in the blink of an eye. Random access cursor movement, line and character insert and delete, line and page split and join, and a host of other line and character level commands help you put text in its place quickly and accurately.

Simplicity

Auto Word Break. Forget the right margin. Wordsmith notices when you won't be able to complete the current word and moves it to the next line for you as you continue typing.

Understandable Commands. The most frequently used commands are single keystrokes. The rest are easily remembered abbreviations.

Informative Status Lines. The top two screen lines constantly display page number information, document name, cursor position, tab stops and status/error phrases. You're always in touch with your document.

Page 3 of B

File=ADV1

Cursor row 28, col 43

1 1

\

f 1

Protection Against Catastrophic Errors. It's nearly impossible to ruin your document with a single bad command. Wordsmith's page oriented design and doublechecking user interface help you do what you mean!

The ,^

TEXT EDITOR

Defining the New Generation of Text Editing

from Micro Diversions, Inc. B455-D Tyco Rd. Vienna, Ua. 22180 (703) 827-0888

Direct CP/M® and North Star DOS compatibility

Available for 40x86, 24x80 and 16x64 memory-mapped video boards

Fully reentrant for efficient multi-programming environments (6K program space, 5K data area) 8080 and Z80 compatibility

Ordering Information:

S2ao

(Screensplitter"" Owners

Manual only: SI 5

Check, VISA. Mastercharge

S801

1. CP/M or North Star DOS version?

2. TTY or QUME interface?

3. Brand and memory address of video display board?

4. Ship on single or double density. 5" or 8" diskette?

Inquire about our custom keyboard.

Circle 219 on inquiry card.

BYTE Augusl 1979 91

Aw, cut it out!

Save these pages It's our latest, up-to-the-minute list of super software.

r

Heffective

Software /

with /Manual Manual/ Alone

DIGITAL RESEARCH

D CP/M* FDOS — Diskette Operating .System complete with Text Editor, Assembler, Debugger, File Manager and system utilities. Available for wide variety of disk systems including North Star, Helios II, l\/licropolis, iCOM (all systems) and Altair. Supports computers such as Sorcerer, Horizon, Sol System III, Versatile. Altair 8800, COMPAL-80, DYNABYTE DB8/2, and iCOM Attache. Specify desired configuration $145/$25

D MAC — 8080 Itflacro Assembler. Full Intel macro definitions. Pseudo Ops include RPC, IRP, REPT, TITLE, PAGE, and MACLIB. Z-80 library included. Produces Intel absolute hex output plus symbols file for use by SID (see below) $100/$15

n SID — 8080 symbolic debugger. Full trace, pass count and break-point program testing system with back-trace and histogram utilities. When used with IVIAC, provides full symbolic display of memory labels and equated values $85/$15

n TEX — Text formatter to create paginated, page-numbered and justified copy from source text files, directable to disk or printer $85/$15

n DESPOOL — Program to permit simultaneous printing of data from disk while user executes another program from the console $50/$1

MICROSOFT

D Disk Extended BASIC — Version 5, ANSI compatible with long variable names, WHILEWEND, chaining, variable length file records $300/$25

D BASIC Compiler — Language compatible with Version 5 Ivlicrosoft interpreter and 3-10 times faster execution. Produces standard Ivlicrosbft relocatable binary output. Includes ^ ,, Macro-80. Also linkable to FORTRAN-80 or COBOL-80 code / ^>rij modules $350/$2S ( ^y^. "Vg

D FORTRAN-80 — ANSI '66 (except for COMPLEX) plus ^Co^^^^^^ many extensions. Includes relocatable object compiler, linking ^ '^/^ ® loader, library with manager. Also includes MACRO-80 (see , V~^-^'' below) $400/$25 .^

n COBOL-80 — ANSI 74 Relocatable object output. Format

same as FORTRAN-80 and MACRO-80 modules. Complete

ISAM, interactive ACCEPT/DISPLAY, COPY, EXTEND

$625/$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/$15

D EDIT-80 — Very fast random access text editor for text with or without line numbers. Global and intra-line commands supported. File compare utility included $89/$15 x f^* »

XITAN (software requires Z80" CPU) ( ^^oes a^^v

D Z-TEL — Text editing language. Expression evaluation itera- ^-^' i tion and conditional branching ability. Registers available for ^

text and commands. Macro command strings can be saved on c

disk for re-use $69/$20

n ASM Macro Assembler — Mnemonics per Intel with Z-80 extensions. Macro capabilities with absolute Intel hex or relocatable linkable output modules. New version 3 with added features $69/$20

n LINKER — Link-edits and loads ASM modules ., .$69/$20

D Z-BUG debugger — Trace, break-point tester. Supports decimal, octal and hex modes. Dissassembler to ASM mnemonic set. Emulation technique permits full tracing and break-point support through ROM $89/$20

D TOP Text Output Processor — Creates page-numbered, justified documents from source text files $69/$20

•CP/M is a trade name ol Digilal Research "•Z80 is a trademark of Zllog, Inc. ■"Good until August 31. 1979

Software / ' witfi /Manual

Manual/ Alone

n A4 package includes Z-TEL, ASM, LINKER, Z-BUG, TOP $299/840

EIDOS SYSTEMS

n KISS — Keyed Index Sequential Search. Offers complete Multi-Keyed Index Sequential and Direct Access file management. Includes built-in utility functions for 16 or 32 bit arithmetic, string/integer conversion and string compare. Delivered as a relocatable linkable module in Microsoft format for use with FORTRAN-80 or COBOL-80, etc $535/$23

D K BASIC — Microsoft Disk Extended BASIC with all KISS facilities, integrated by implementation of nine additional commands in language. Package includes KISS.REL as described above, and a sample mail list program $995/$45

MICROPRO

D Super-Sort I — Sort, merge, extract utility as absolute executable program or linkable module in Microsoft format. Sorts fixed or variable records with data in binary. BCD, Packed Decimal, EBCDIC, ASCII, floating, fixed point, exponential, field justified, etc. etc. Even variable number of fields per record! $250/$25

n Super-Sort II — Above available as absolute program only $200/S25

D Super-Sort III — As II without SELECT/EXCLUDE

$150/$25

□ Word-Master Text Editor — In one mode has super-set of CP/M's ED commands including global searching and replacing, forward and backwards in file. In video mode, provides full screen editor for users with serial addressable-cursor terminal $150/$25

n Word-Star — Menu driven visual word processing system for use with standard terminals. Text formatting performed on screen. Facilities for text paginate, page number, justify, center, underscore and PRINT. Edit facilities include global search and replace, read/write to other text files, block move, etc. Requires CRT terminal with addressable cursor positioning. Word-Master users may upgrade for $395"!. .$495/$25

SOFTWARE SYSTEMS

D CBASIC-2 Disk Extended BASIC — Non-interactive BASIC with pseudo-code compiler and runtime interpreter. Supports full file control, chaining, integer and extended precision variables etc S90/S15

STRUCTURED SYSTEMS GROUP

D General Ledger — interactive and flexible system providing proof and report outputs. Customization of COA created interactively. Multiple branch accounting centers. Extensive checking performed at data entry for proof, COA correctness etc. Journal entries may be batched prior to posting. Closing procedure automatically backs up input files. All reports can be tailored as necessary. Requires CBASIC $899/$25

n Accounts Receivable — Open item system with output for internal aged reports and customer-oriented statement and billing purposes. On-Line Enquiry permits information for Customer Service and Credit departments. Interface to General Ledger provided if both systems used. Requires CBASIC $699/$25

D Accounts Payable — Provides aged statements of accounts by vendor with check writing for selected invoices. Can be used alone or with General Ledger and/or with NAD. Requires CBASIC $699/$25

n NAD Name and Address selection system — interactive mail list creation and maintenance program with output as full reports with reference data or restricted infonnation for mail labels. Transfer system for extraction and transfer of selected records to create new files. Requires CBASIC $79/$20

EFFECTIVE JUNE 19, 1979

92 BYTE August 1979

Software for most popular 8080/Z80 computer disk systems including NORTH STAR, MICROPOLIS, iCOM, SD SYSTEMS, DYNABYTE DB8I2, ALTAIR, EXIDY SORCERER, VECTOR MZ, 8" IBM, HEATH H17 & H89, HELIOS, IMSAI VDP42 & 44, REX and OHIO SCIENTIFIC formats

Software

with

Manual

Manual Alone

D QSORT — Fast sort/merge program for files with fixed record length, variable field length information. Up to five ascending or descending l<eys. Full bacl<-up of input flies created. Parameter file created, optionally with interactive program which requires CBASIC, Parameter file may be generated with CP/M assembler utility $95/$20

GRAHAM-DORIAN SOFTWARE SYSTEMS

n PAYROLL SYSTEM — fvlaintains employee master file. Computes payroll withholding for PICA, Federal and State taxes. Prints payroll register, checks, quarterly reports and W-2 forms. Can generate ad hoc reports and employee form letters with mail labels. Requires CBASIC. Supplied in source code. $590/$35

n APARTMENT MANAGEMENT SYSTEM - Financial management system for receipts and security deposits of apartment projects. Captures data on vacancies, revenues, etc. for annual trend analysis. Daily report shows late rents, vacancy notices, vacancies, income lost through vacancies, etc. Requires CBASIC. Supplied in source code. . .$590/$35

D INVENTORY SYSTEM — Captures stock levels, costs, sources, sales, ages, turnover, markup, etc. Transaction information may be entered for reporting by salesman, type of sale, date of sale, etc. Reports available both for accounting and decision making. Requires CBASIC. Supplied in source code S590/$35

D CASH REGISTER — I\/laintains files on daily sales. Files data by sales person and item. Tracks sales, overrings, refunds, payouts and total net deposits. Requires CBASIC. Supplied in source code S590/$35

MICRO FOCUS

D CIS COBOL — Version 3 is ANSI 74 subset with extensions which offer powerful interactive screen formatting and built in cursor control. Version 4 additionally offers full level 1 ANSI for Nucleus, Table Handling, Sequential Relative and Indexed I/O, Inter-Program Communication and Library

Version 3, $650/$50

Version 4, $850/$50

n FORMS — Interactive utility to create CIS COBOL source code to perform CRT screen handling in application programs. Supports full prompt text, protected fields and input validation

against data type and range expected $1 S0/$15

When purchased with CIS COBOL $125/$15

OTHER

n tiny C — Interactive interpretive system for teaching structured programming techniques. Manual includes full source listings $75/$40

D C Compiler — Supports most major features or language, including Structures, Arrays, Pointers, recursive function evaluation, linkable with library to 8080 binary output. Lacks data Initialization, long & float type and static & register class specifiers. Documentation includes "C" Programming Language book by Kernighan & Ritchie $110/$15

D Z80 Development Package — Consists of; (1) disk file line editor, with global inter and intra-line facilities; (2) Z80 relocating assembler, Zilog/lvlostek mnemonics, conditional assembly and cross reference table capabilities; (3) linking loader producing absolute Intel hex disk file for CP/M LOAD, DDT or SID facilities $95/S20

D DISTEL — Disk based disassembler to Intel 8080 or TDU Xitan Z80 source code, listing and cross reference files. Intel or TDL/Xitan pseudo ops optional. Runs on 8080. Standard CP/M and TRS-80 CP/M versions available $65/$10

D DISILOG — As DISTEL to Zilog/Mostek mnemonic files. Runs on Z80 only $6S/$10

Software

witfi / Manual Manual/ Alone

D TEXTWRITER II — Text formatter to justify and paginate letters and other documents. Special features include insertion of text during execution from other disk files or console, permitting recipe documents to be created from linked fragments on other files. Ideal for contracts, manuals, etc $75/$5

n WHATSIT? — Interactive data-base system using associative tags to retrieve information by subject. Hashing and random access used for fast response. Requires CBASIC $125/$25

D XYBASIC Interactive Process Control BASIC — Full disk BASIC features plus unique commands to handle bytes, rotate and shift, and to test and set bits. Available in Integer, Extended and ROI^able versions.

Integer Disk or Integer ROMable $295/$25

Extended Disk or Extended ROMable $395/$25

D SMAL/80 Structured Macro Assembled Language — Package of powerful general purpose text macro processor and SMAL structured language compiler. SMAL is an assembler language with IF-THEN-ELSE, LOOP-REPEAT-WHILE, DOEND, BEGIN-END constructs $75/$15

□ Selector II — Data Base Processor to create and maintain single Key data bases. Prints formatted, sorted reports with numerical summaries. Available for Microsoft and CBASIC (state which). Supplied in source code $195/$20

n Selector III — Multi (i.e., up to 24) Key version of Selector II. Comes with applications programs including Sales Activity, Inventory, Payables, Receivables, Check Register, Expenses, Appointments, and Client/Patient. Requires CBASIC Supplied

in source code $295/$20

Enhanced version for CBASIC-2 $345/$20

D CPM/374X Utility Package — has full range of functions to create or re-name an IBt^3741 volume, display directory information and edit the data set contents. Provides full file transfer facilities between 3741 volume data sets and CP/M files $195/$10

n Flippy Disk Kit — Template and Instructions to modify single sided 5V4" diskettes for use of second side in singled sided drives $9,75

n BASIC Comparison — A comprehensive features and performance analysis of five 8080 disk BASIC languages — CBASIC, BASIC-E, XYBASIC, Microsoft Disk Extended BASIC, and Xitan's Disk BASIC. Itemizes results of 21 different benchmark tests for speed and accuracy and lists instructions and features of each BASIC (send 20(4 S.A.S.E.) FREE

Orders must specify disk systems and formats: e.g. North Star single or double density, IBM single or 2D/256. Altair, Helios II. Micropolis Mod I or II, 5'A" soft sector (Micro iCOMISD Sales! Dynabyte), etc.

Add $1 litem shipping ($2 min.). Add $1 additional for UPS C.O.D.

Manual cost applicable against price of subsequent software purchase.

The sale of each proprietary software package conveys a license tor use on one system only.

n

TM

Lifeboat Associates, 2243 Broadway, n.y., n.y. 10024 Teiex: 668-585 (212) 580-0082

'" The Software Supermarket is a trademark of Ufeboat

_J

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 demonstrated that the concept of behavior is not as clear as certain people would indicate. The patterns that we call behavior result from the convergence of many influences, only a part of which can be attributed to the organism that we say is behaving. Yet the behaving organism varies its own actions so that when the influence of these actions is added to all that is unpredictable, the result is recognizable as patterns of behavior.

In part 2 we observed that a control system controls its input, not its output. It acts on its environment to make its own sensory or perceptual signal match a reference signal received from elsewhere, and to automatically counteract the effects of disturbances. It does not have to sense the cause of the disturbance: it senses the quantity it is controlling, and reacts to deviations of that quantity (or the signal representing it) from a reference level that is set by the reference signal.

The reference signal acts just as an intention ought to act. It specifies some state of affairs that is to be achieved, and serves as a target toward which action always urges the perception of the controlled variable. Under normal circumstances the control system can make its perceptual signal track a changing reference signal, and still oppose the effects of disturbances.

There are two main rules of thumb:

About the Author

William T Powers has been exploring the meaning of control theory for studies of human nature since 1953. He spent a number of years (to 1960) in medical physics, and then another 13 (to 1975) as Chief Systems Engineer for the Department of Astronomy at Northwestern University. His occupation has been designing electronic, optical, and mechanical systems for science.

• The reference signal reaching a good control system controls the perceptual signal in that system.

• The actions of the control system vary so as to oppose the effects of disturbances, even if the reference signal remains constant.

Let's see how this control system model applies to one small human subsystem: a spinal reflex arc (reflex just means "turned back on itself"). This will lead to some concepts that will be of use to the designers of robots.

The Tendon Reflex

In the early 19th century. Sir Charles Bell established the fact that sensory nerves are separate from motor nerves, and described the "circle of nerves" found in a spinal reflex. A sensory nerve that is part of a spinal reflex arc (we will talk about one that is stimulated by the stretching of a tendon) sends its signal to the spinal cord, and the same cell that receives this signal emits a motor signal that reaches a muscle. When the muscle contracts, it has physical effects that stimulate the same sensory nerve. These are closed loops; the effects of sensory nerves that are stimulated by muscle action affect the same muscle action.

In all such loops that have been discovered, the sense of the feedback is negative. This is true of the tendon reflex. If signals from cells in the spinal cord cause a muscle to contract, the resulting stretch of the tendon stimulates sensors clustered around the tendon. The signals from these sensors reach the same cells in the spinal cord to inhibit their firing.

Apparently the materials are present for a control system, but before we discuss this, a digression is necessary.

All or None or Some

One of the most unfortunate accidents to occur in neurology was the discovery that signals in nerves are carried by impulses. The effect was as if the discoverers of electricity had discovered the electron before they had formulated laws of current flow, and thus developed the whole theory of electricity on the basis of collisions between one electron and another electron. As soon as there were instruments to detect nerve signals it was known that the amplitude of an impulse generated by a nerve cell was independent of the source; there was a trigger effect, so that either an impulse was generated, or it was not.

As a result, almost all neurological research has focused on single impulses. The "all-or-none" principle became so firmly entrenched that by the time digital computers arrived on the scene, most people were led off the track. "Aha," they said, "if a nerve-cell has a threshold that is just high enough, 2 impulses will have to reach it simultaneously to fire it: behold, an AND gate!" Since inhibition (an impulse tending to reduce the sensitivity of a nerve cell to an impulse arriving by a different path) can occur, we clearly have the NOT operator, and with the addition of OR (a nerve cell that can be fired by an impulse from any of several paths), we have all of the ingredients for a generalized logic circuit.

There is no longer sufficient reason to believe that the nervous system works in this way. Those who tried to analyze nerve nets as logic devices had to make a lot of assumptions, such as synchronism or clocking, that are incompatible with experimental facts. This more modern under

Figure and listing numbering continued from part 2.

94 August 1979 © BYTE Publications Inc

standing was reflected in Dr Ernest Kent's recent BYTE article series, 'The Brains of Men and Machines" (January 1978 BYTE, figure 2, page 16). It now seems that single impulses are not a significant unit of information for most neurons. What counts is frequency of firing. The sum of frequencies of excitatory and inhibitory impulses reaching a given neuron has an effect on the rate of that neuron's firing so that the output frequency is a function of a set of input frequencies. Most neurons, in other words, compute analog, not digital, functions. As we all know, it is perfectly possible to build digital circuitry out of analog components. Digital integrated circuits are all constructed from analog transistors.

Therefore, when I begin to identify components of a control system, as I will do in a moment, the signals will be thought of as continuously variable frequencies, not as on/off binary quantities. The functions that combine some signals will be functions of continuous variables. While any one neuron behaves as a rather nonlinear device, a collection of neurons performing essentially the same function in parallel yield an overall pleasantly linear input/output relationship, especially if we consider the normal, rather than extreme range of frequencies (zero or saturation rates of firing).

The spinal reflex systems we will now examine involve several hundred — sometimes several thousand — control systems operating in parallel, although they will be drawn as simple control systems. A perceptual signal is really the mean rate of firing in a whole bundle of pathways, all starting from sensors that are measuring the same input(eg: stretch in a tendon). The signal that enters the muscle in this system is a bundle of signals, each exciting 1 or 2 small fibers out of the thousands that make up 1 muscle. Thus, we will be dealing with neural impulses in much the way electronic engineers deal with electrons. In the majority of cases, the number of impulses passing through a cross-section of a bundle of redundant pathways per unit time will be "the signal," just as the number of electrons passing through a crosssection of a conductor per unit time is called "the current."

The way you check line-by-line with an A P Intra-Switch or Intra-Connector.

You plug your Intra-Switch In-line with standard socket connectors, and instantly you've got a separate, independent on-oft switch for each and every line in your flat ribbon cable. To switch, you nudge with a pencil point. It's that quick.

Imagine how much time and trouble Intra-SwItch will save you in your diagnostic and quality testing, your programming and selective line inhibiting.

Or, plug In your Intra-Connector (see box) the same way, and you have an extra set of male contacts

at right angles. Instant llne-by-line probeabllity—and an easy way to tap your system and daisy chain It into new areas.

Both Intra-Connectors and IntraSwltches come In 20,26,34,40 and 50-contact models.

Where? At your nearby A P dealer. Where's that? Phone (toll-free) 800-321-9668. And ask for the complete A P catalog. The Faster and Easier Book.

AP PRODUCTS INCORPORATED

Box 110D • 72 Corwin Drive Painesville, Otiio 44077 Tel. 216/354-2101 TWX: 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 this series. Figure 13b is a spinal reflex arc. FNI is the input function; P, the perceptual signal; C, the comparator; R, the reference signal; E, the error signal; FNO, the output function; O, the output quantity; FNF, the feedback function; I, the input quantity; FND, the disturbance function; and D; the disturbing quantity. Roots are bundles of nerve fibers entering or leaving the spinal cord. An actual spinal reflex arc may involve several hundred systems like the one in figure 13b, with as many motor cells all operating in parallel. Thus, a signal is a bundle of signals that carry similar information.

(a)

R

■*

c

p

E

FNI

FNO

L

A

-N

A

-Od

fbj

BIFURCATION

DORSAL ROOTS

Level-1 Control System

Figure 13b is a schematic diagram of the tenders reflex. Figure 13a is the diagram of a general control system that I have already shown and discussed earlier. Figure 13a has an input function FNI, a perceptual signal P, a comparator C, a reference signal R, an error signal E, an output quantity O, a feedback function FNF and an input quantity I completing a closed loop. Entering this loop at the same point as the input quantity are the effects of a disturbing quantity D, affected by the disturbance function FND.

Figure 13b contains the same components in the same relationships. The input function is a sensor which emits a signal P, the frequency of which depends continuously on the amount of stretch I of the tendon at the end of the muscle. This signal P travels to the spinal cord, and the local branch enters an inverter which is specialized to produce inhibitory effects on any neuron it reaches (these actually exist in the spinal cord as Renshaw cells). This inverted copy of the perceptual signal reaches the cell body of a motor neuron C, which also receives an excitatory input from a pathway descending from centers that are higher in the nervous system (the reference signal R).

The signal emitted by this motor neuron represents the excess of excitation over inhibition, and thus represents the difference between the reference and (inverted) perceptual signal: it is clearly the error signal E. The error signal enters the muscle, where it is converted into an average shortening of the contractile fibers in the muscle FNO. The output quantity O is the net stretch of the connective tissue that links the individual contractile fibers together. The feedback function FNF consists of the mechanical relationships that sum all these individual little forces into one force that will tend to stretch the tendon.

I have shown the disturbance as a string that pulls directly on the tendon. It is rather hard to disturb the tendon control system without dissecting the organism, a procedure that always leaves one wondering whether or not this is the original system. The reflex that is tested with a hammer just under the kneecap is a different one, a muscle-length control

96 August 1979 © BYTE Publications Inc

■ •■

!pr«

>1

^^^^*1

m

III

7 HI

■ m 1

[ 1

j

11'

olli.

s.

J

H«

1

i

i

1

m

If;;

Mir v

I|

riii

•j -ufr'

^|M;I:il

J " " ■ J

ififfl

,„■:;;., m

I'-fcij

1------

Bte'rv-Hi^ ^ ,.,."';, ffl *—

—^^^—

-^M^

1 \^\\'-/'/z>-pj-\\

^.^i-^v'^i. . -•^••v,!]

Wiiiiiiiiiiriiiliiiiiiiriiiiilli

mxmm

if^ ^

32K Board Pictured Above

New RAM Prices.

From The Dynamic Memory Company.

16K—$249 48K—$500

32K—$375 64K—$625

Ever since we started making these memory boards over a year ago we have continued to lower our prices to stay competitive. Due to your confidence in us, we are again able to lower our pricesi Our reliability has been proven by months of superior performance in thousands of installations. Our low-power boards are being used by quality-minded systems manufacturers across the country and overseas.

4MHz boards now available.

After receiving hundreds of requests, our engineering staff has come up with a new version of our board which runs on 4MHz Z-80 systems. It wasn't easy to come up with a high speed board which would operate as reliably as our 450ns version, but after months of careful design and testing, we did it. The price of the 250ns board is $10 per 16K additional.

Circle 45 on inquiry card.

All of our features remain.

Our boards didn't become great sellers only because of the price. We still offer you our deselect feature which allows our RAM to overlap with any fixed memory areas in your system. Also, the RAM area of our board is fully socketed so that you can expand the board yourself.

Other standard features include: plug selectable addressing on 16K boundaries (shorting plugs are placed over wire-wrap pins to address the board — located on the top of the board for easy changes), S-100 and Z-80 compatability and totally invisible refresh — no wait states.

Fully assembled, tested, and guaranteed.

All of our boards go through a rigorous testing procedure. They are then placed on burn-in running a series of memory tests to detect any other possible faults. After you receive the board, you are backed by us with a one year warrantee.

Low power consumption keeps your computer from "losing its cool."

The total power consumption of our 16K board is typically less than 4 watts (-I-8V @ 300ma, +16V @ 150ma and -16V @ 20ma). Boards with additional memory typically increase power consumption only 1 watt per 16K!

Standard S-100 Interface.

Our board is designed to interface with any standard S-100 CPU. Ail of the timing of the board is Independent of the processor chip, and the board is set up for different processors by changing two plugs on the board.

Contact your local dealer.

To find out more about our RAM boards, contact your local dealer. If he is unable to help you, call or write us for a fast response. Central Data Corporation, 1207 North Hagan Street, Champaign, IL 61820. (217)359-8010

Central Data

BYTE August 1979 97

Circle 73 on inquiry card.

Psscsl MICROENGINF" 16-bit P-code CPU

Pascal executes 13x faster tlian on an LSI-11 and 3x faster than on a PDP11-34!

^2695*

^WWW READY TO RUN

^2995 ListpHce

^1795* 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 & Basiccompilers, text editors, file manager, CPU & memory diagnostics, symbolic Pascal debugger, linker, utilities, etc.

The MICROENGINE"- P-Machlne architecture implements direct execution of P-code (UCSD Pascal version 3.0) replacing software interpreters. All data and I/O paths are 16 bits wide. Both single and multi-byte instructions are available. Floating point hardware using the proposed IEEE standard supports the execution of floating point instructions. P-fvlachine architecture optimizes memory utilization. Stack design renders Pascal programs automatically reentrant and recursive with no performance penalty. Extensive compiler error checking and high level language sustains high reliability. Programs are transportable to other systems running Pascal.

Built-in floppy disk controller handles up to 4 drives, switch selectable for 5V* or 8 inch, single or double sided. A hard disk controller will be available soon.

$799'

List price ^956 PERKIN-ELMER (Model 550)

Shugart

floppy disk (Model SA850) »695*

Shugart

floppy disk (Model SA800) »595'

Taxas Inatrumante

printer (Model 810) M895'

X-p«rt Systama'" designed by Computax are integrated and cost effective. Complete 16-bit systems are available starting as low as '3139. Cuatomar aatlafactlon ia guarantaad.

Full refund with the return of any product within 10 days. Service contracts available. Systems catalog $1. MICROENGINE'" owners manual »19.95 postpaid.

*LIMITEDTIMEcashprlca. 10%down

guarantees priority, IL residents add 5% sales tax. Master Charge and VISA cards accepted.

(312)684-3183

COMPUTE)^

"THE COMPUTER EXPERTS " 5710 Drexel, Chicago, IL 60637

system. Artificially stretching the tendon will tend to relax the muscle, since the feedback is inhibitory.

In part 2 I described how control systems work. We now immediately know what this spinal reflex loop does. It maintains the perceptual signal P matching the reference signal R. Since P is a measure of tension in the tendon, we can say that this control system controls the sensed tension, and not the degree of contraction of the muscle. It also varies the amount of contraction in the fibers of the muscle to oppose any extraneous effects that tend to alter the tension in the tendon, either increasing or decreasing it.

We know that muscles are attached to bones, generally across a joint, and that when a muscle changes tension it often changes the angle at the joint that it spans. In this way movements are created and forces are applied to objects, or against gravitational and other forces. However, this little control system knows nothing of that. The only behavior it produces is sensed tension. It controls a neural signal which represents the net force being created by the muscle and any active disturbances. The control system does not know this — it has, after all, only the one kind of sensor. It knows only how much signal it is getting from the outside world, and not even what kind of signal this is. It is just an amount. It would need many other sensors and a very intelligent computer in order to know that this amount is measured in units of tension.

First Level of Behavioral Control

Every muscle that is used in voluntary behavior (as opposed to internal or visceral) is involved in a control system like that in figure 13b. There are no exceptions. Thus, there is no way that any higher process in the brain can directly produce a muscle tension. The brain can produce a muscle tension only by providing a reference signal which specifies how much tension is to be sensed. This does not even determine how tense the muscle will be, for if there is a steady external disturbance working, the muscle will adjust its degree of contraction to compensate for the disturbance. Pull steadily on the tendon, and the muscle will completely relax, even with the presence of a

nonzero reference signal. Inject Novocain into the perceptual pathway, and the muscle may go into a violent spasm because it is trying to create a perceptual signal. The brain cannot command the muscles to contract. It can only tell level-1 control systems how much tension to sense. It is up to those control systems to do what is necessary to create the demanded signal.

Gray's Anatomy names about 200 muscles, most of which occur in pairs, and many of which consist of numerous subdivisions capable of having different effects. There are perhaps 500 to 800 muscles which can be distinguished on the basis of different directions of effect. Thus, we own 500 to 800 level-1 control systems. Every human action must be performed by adjusting the reference signals for these control systems. The behavior of these control systems need not be simulated for the simple reason that this has been done to a sufficient degree in part 2 of this series.

There are actually more level-1 control systems than muscles. For example, every muscle also contains length sensors, which are involved in level-1 control systems that govern not force, but something related to the stretching of the muscle itself. Length and force can be controlled quite independently under suitable circumstances; however, we won't be getting into such details here. The main point is that we chew, scratch, talk, walk, run, and swim by using level-1 control systems, and by telling them not what to do, but what to sense.

Higher Levels of Control

We have accounted for all outgoing signals from the brain that are concerned with overt actions (in the sense that all will act on level-1 control systems, although there may be, at level 1, control systems we haven't considered here). We have not, however, accounted for all incoming signals. The nervous system has hundreds of millions of sensory endings, most of which are not involved in level-1 control systems.

You'll notice that in figure 13b the perceptual signal branches. This is a real branch; all level-1 perceptual signals involved in these control systems branch, sending one branch

98 Augusl 1979 © BYTE Publiiralions 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 STATIC MEMORY

ECT-100-F

RACKMOUNT CARD CAGES

ECT"

'''"I'm, t^,

'""°'2,.cft„„,,

'•'m

POWER SUPPLIES, CPU'S, MEMORY, OEM VARIATIONS

TT-10

TABLE TOP MAINFRAMES

763 RAMSEY AVE. HILLSIDE, N.J. 07205

ELECTRONIC CONTROL TECHNOLOGY (2oi) 686 soso

SAVE THE WHALE

The Fm Whale is the ivorld's greatest long-distance communicator.

Scientists believe that loud, deep-tone, low-frequency sounds made by Fin Whales (frequencies around 20 hertz, or cycles per second) actually travel underwater for distances of at least 500 miles, and under optimum conditions might carry for a radius of over 4,000 miles, potentially reaching an area greater than the entire Atlantic Ocean.

Drawing by Don Sinf/i

Fin Whales, the second largest

creatures ever to have lived on planet earth, grow up to 24 meters in length (exceeded only by the 30-meter Blue Whale), and habit all the oceans of the world. Tens of thousands of Fin Whales have been "harvested" in recent years, by agreement of the International Whaling Commission, for the sale of products for which substitutes are readily available.

The CONNECTICUT CETACEAN SOCIETY is a small, totally volunteer, non-profit education and conservation organization dedicated to seeking the abolition of all whale killing. Any concerned citizen can help our efforts by sending name and address and a $1 5 or more contribution to: CCS, P. 0. Box 145, Wethersfield CT 06109.

BYTE August 1979 99

upward. Many of the branches — enough to represent what is going on in all the muscles — continue upward to the next level of organization. The perceptual signals from level-1 input functions that are not parts of control systems do likewise. Thus, we can imagine a higher part of the nervous system that is completely surrounded, with regard to input and output, by level-1 systems and input functions.

The signals going downward from this higher part end up in control systems of the general type shown in figure 13b, controlling sensed tension and a few other simple variables. The signals going upward, the level-1 perceptual signals, all reach the next higher level of organization, which happens to be represented in the brain stem, the cerebellum, and one part of the cerebral cortex.

Imagine a second level of control systems. The input functions of this new layer will not be equipped with sensors; instead, they will receive the perceptual signals generated by level-1 input functions (or in the case

of signals involved in level-1 control systems, copies of them, courtesy of the bifurcation of the dorsal roots). These signals, in subsets, are the realtime inputs to level-2 input functions, each of which generates one level-2 perceptual signal. We define a level-2 input function in terms of the way a single level-2 perceptual signal depends on some set of level-1 perceptual signals.

It is now clearly possible to construct a level-2 comparator, provide it with a reference signal, and make it generate a level-2 error signal. That error signal can then be wired to the input of a level-2 output function, and copies of the output of that FNO can be fanned out to serve as reference signals for level-1 control systems.

In fact, we can construct as many level-2 control systems as we like, until we run out of neurons that are located where the level-1 perceptual signals terminate and the level-1 reference signals originate. All outgoing signals that are further inward will be accounted for; they will be

READ THE MAGAZINE THE PROS READ.

For over 20 years DATAMATION has been the magazine for the data processing professional. Now DATAMATION magazine is available to hobbiests, business men, accountants, engineers, programmers . . . anyone with a deep curiosity about the real world of data processing.

Written by the data processing professional for the data processing professional, DATAMATION magazine's articles cover a wide range of subjects . . . industry trends, "how to do it better" articles, budget and salary surveys, new computer applications, advanced technology, new products and services.

Whether your interest in computers is for fun or profit, DATAMATION magazine has a world of information for you every month . .. plus an annual Special

Edition, the Industry Profile featuring the "DATAMATION" 50" - the top U.S. DP companies.

Technical Publishing

nn acompunyof

WMMB ThcDun&BradstrcctCorporation

FOR A ONE YEAR SUBSCRIPTION (13 ISSUES) SEND $32.

TO: SUZANNE A. RYAN

DATAMATION magazine 666 FIFTH AVENUE NEW YORK, NY 10019

Name

Address City

L

State/Zip.

magazine

level-2 reference signals. (If you can figure out why they can't be level-1 reference signals, bypassing level 2, you are beginning to understand control theory. Hint: Level-1 reference signals are adjusted by level-2 systems: what happens if an arbitrary signal is added to the output of a level-2 system?)

Some level-1 perceptual signals may be combined to produce level-2 perceptual signals, without involving the new perceptual signals in any level-2 control system. Perceptual signals that are involved in level-2 control systems branch, just as their counterparts at level 1 do: one of the branches heads further inward and upward in the brain. We can now repeat the process of going from the first to the second level of control. Clearly, a third level of control systems can be constructed, then a fourth, and so on, until we run out of brain and find ourselves looking at the inside surface of the skull.

This is my model of the brain. It will be discussed in greater detail in the next article of this series. At present we will develop a clearer understanding of the relationship between one level of control and the next higher level of control through the use of BASIC. As you will see, the relationship has some rather amazing and challenging properties.

Two-Level Control Hierarchy

We are going to model a very elementary 2-level control system. I won't attempt to model a real human system because it would get too complicated. The imaginary system will consist of 3 level-1 control systems, each controlling sensed force (just as in the tendon reflex system) and 3 level-2 systems, each controlling a separate aspect of the forces controlled by level-1 systems.

The 3 muscles will be laid out in a plane, one end of each being joined at a common central point, and the other being anchored to a point in the plane. If the angles between the muscles are equal, they will form a Y. We will assume that the common connection does not move; the muscles will apply a force there but, as in the case of flying a stick-controlled airplane, any movement will be negligible. This allows us to ignore some complex interactions between the muscles. Those interactions would not in

100 August 1979 © BYTE Publications Inc

Circle 94 on inquiry card.

^^MINIMAX

^^ TULLY INTEGRATED COMPUTER SYSTEM"

MINIMAX SERIES COMPUTER

THE MINIMAX SERIES WAS DESIGNED

TO OFFER THE MARKET MINICOMPUTER

CAPABILITIES AT MICROCOMPUTER PRICES.

COMPARE THE CAPABILITIES & PRICE!

CONTACT NEECO FOR FULL SPECS - FREE MINIMAX MANUAL.

MEET THE MINIMAX COMPUTER """"^^ minimax series computer was designed by industry professionals.

COMPARE THE price AND features TO ANY OTHER COMPUTER IN ITS CLASS!

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

MINIMAX I MINIMAX II

PRINTER NOT INCLUDED IN PRICE

$4495 $5995

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

SPECIAL DEALER PRICING AVAILABLE ON DEMONSTRATION

MINIMAX AND SOFTWARE PACKAGES TO QUALIFIED

SELECTED DEALERS. CONTACT NEECO FOR INFO.

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

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

THE MINIMAX IS NOW AVAILABLE FOR QUANTITY DELIVERY. DOMESTIC DEALERSHIPS AVAILABLE.

EUROPEAN DISTRIBUTORSHIPS/DEALERSHIPS AVAILABLE TO QUALIFYING COMPANIES WITH

SUPPORT CAPABILITIES. SOFTWARE HOUSES AND OEM INQUIRIES INVITED. CONTACT NEECO.

NEECO

NEW ENGLAND ELECTRONICS CO., INC.

679 HIGHLAND AVE., NEEDHAM, MA 02194

MON-FRI, 9:00-5:30, E.S.T.

(617)449-1760

TELEX 951021, ANSWERBACK "NEECO"

Circle 281 on inquiry card.

BYTE Aususl 1979

101

terfere with control, but would make the model very complicated. In simulating a control organization, it is always the simulation of the environment that creates complexities. The geometric interactions between the muscles are properties of the world in which these control systems live, not of the control systems proper.

There will be 3 level-1 control systems, 1 for each muscle. Each will sense the force being generated by its own muscle. Each will have a loop gain of 10, and a slowing factor of 0.07 (see part 2 for discussion of these properties).

There will also be 3 level-2 control systems. One will use the 3 muscles to control a force in the X direction (left and right), another will control a force in the Y direction (up and down), and the third will control the sum of the 3 forces, this sum corresponding to what physiologists call "muscle tone." We will see why there is such a thing as muscle tone (the steady mutually cancelling tension that is always there in muscles). Each level-2 control system will have a

loop gain of 50, and a slowing factor of 0.01.

I hope that this arrangement looks a little amazing, fiere we have 3 muscles spaced at roughly 120-degree intervals around a common point. No one muscle pulls in either the X or the Y direction. To pull in the X direction, all 3 muscles must alter their tensions. To pull in the Y direction, all 3 must alter their tensions. To vary the muscle tone all 3 must once more alter their tensions. We will be able to set reference values for these 3 variables at the same time, throw in a disturbance of arbitrary size and direction to boot, and there will be no interference among the systems that cannot be easily taken care of. Each level-2 force-controlling system will be able to keep its perceptual signal matched to any reference signal, while the others do the same thing at the same time.

It may add interest to know that the outputs from the level-2 systems to the level-1 systems will not be accurately weighted: the only choice will be whether or not a given level-2

Interactive Computer Graphics Software^

For Microsoft and DEC Fortran

Sf the

GSP. The tqp graph was made on a X-V-Z self-refreshed display. The botfcw or.v-,]-, \-'iK made on a Diablo' 16'-:

fr^':.,. : , ■

merrtal plotters, and even hish speed self-rafreshcd raster scan displays. The complete package Is written in standard Fortran IV, makina it portable to all computers, including mini and micro systems.

The entire set of over 20 subprograms, including drivers for a CRT im minal and a Diablo 1620 printer, sel for $400. Drivers for other devices may be added.

•Ti-ad«nMrk of Digital Equipment Corp,

Compco

8705 North Port Washington Road X Milwaukee, Wis, 53217 414/351 34041

COMPUTER SPECIALISTS

m

output reaches a given level-1 comparator after multiplication by 1, 0, or —1. All 3 level-2 outputs will reach and be added together in all 3 level-1 comparators. The neat separation of X, Y, and tone control is not accomplished by carefully balancing the amount of output sent to each level-1 system. Only the crudest adjustment has to be made on the output side, essentially the choice between positive and negative feedback, with negative always being chosen.

We now come to what is perhaps the most fundamental concept of this theory of brain function. The organization which determines that an X vector, a Y vector, and a tone or scalar force will be controlled is found in the input functions, not in the output functions. The organization of behavior is determined by the perceptual, not the motor organization of the brain. By the time we finish this installment you will see exactly how that happens.

Setting Up the Model

Let us start by looking at a typical control system of unspecified level in a hierarchy of control systems. This system will receive multiple input signals from lower-level systems and multiple reference signals from higher-level systems. It will emit just 1 output signal (we will assume that the only need for an explicit output function is to provide error amplification and to smooth; otherwise the error signal could be used directly as the output signal). Figure 14 shows this typical system.

Perceptual Inputs from Lower Levels

The input function will now be a little too complicated to be represented as a BASIC function since we need a set of weighting factors so that each input can be assigned a weight before summing all of the inputs together. The easiest way to deal with weighting factors for a generalized system is to use a matrix that contains all of the factors for all of the levels. For the input function we designate the matrix as S (for sensory) and write it as:

S(L,J,K), where: L = level

J = system at that level K = weight of Kth signal from level L —1.

102 Augusl 1979 © BYTE Publicalions Inc

Circle 53 on inquiry card.

TO HIGHER LEVELS

A

FROM HIGHER LEVELS

^ Q U Q

0 0 () (]

FROM LOWER LEVELS

0

TO LOWER LEVELS

Figure 14: A typical control system in the middle of a hierarchy of control systems. This system receives multiple reference signals, given a positive or a negative sign by an appropriate entry in the M matrix (no other weighting). The sum of these reference signals is the effective reference signal. The system also receives multiple input signals which are copies of perceptual signals in lower-order systems. These signals are given quantitative weightings by the S matrix and summed in the input function FNI of the system to create this system's perceptual signal P. A duplicate of the perceptual signal travels 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 is amplified and smoothed by the output function FNO with the result being emitted to lower-level systems as the output signal O.

The perceptual signal for this Jth system at the Lth level will be designated P(LJ). The perceptual signal can thus be written as the sum of contributions (weighted) from some set of lower-level systems, a weighting of O in the S matrix meaning absence of a connection:

N(L-1)-1

P(LJ) = I] S(L,J,K)XP(L-1,K)

K=0

where N(L —1) is the number of systems in the next lower level.

Reference Inputs from Higher Levels

A similar operation is performed to calculate the net reference signal R(LJ). A matrix M(LJ,K) is used to select a connection factor (1, 0, or — 1) for each output of a higher-level system; the net reference signal is the sum of all the outputs of the higherlevel systems, each multiplied by its appropriate factor. A 0, of course, means no connection.

The M matrix is filled by looking at the sign of the corresponding entry in the S matrix for the next higher level.

NEW! Internal Power Supply! Plus External

The Best of Both Worlds

Looking for multi-purpose PET* expansion? The Beisi S-IOO Interface/Motherboard has a new inboard power supply, for the best of both worlds.

Outside the PET, the versatile BeIsi interface provides four S-100 slots for instant plug-in expansion. The availability of S-100 boards puts a wide range of applications within easy reach of a PET/BeIsi system.

The new Betsi Power Supply mounts inside PET, eliminating excess clutter. It takes only minutes to install, plugs into PET's existing connectors, and even turns on and off with your PET!

Betsi features:

• Dynamic Memory Controller for use of S.D. Systems "Expandoram" board. (Gel full 32K PET expansion on a single S-100 card!)

• Direct plug-in connection to PET. No additional cables or backplanes required.

• Accepts nearly, all S-100 boards, including memory I/O, speech processors and more.

• On-board sockets for 8K of PROIVl Tirmware (no extra hardware needed).

The new Betsi Power Supply makes a PET/ Betsi system easier than ever to use. With prices worth a second look, you can afford to have multi-purpose PET expansion now!

BETSI INTERFACE/MOTHERBOARD-KIT With all components, one 100 pin connector, and complete assembly and operating instructions

S119

BETSI INTERFACE/MOTHERBOARD ASSEMBLED & TESTED With four 100 pin connectors, complete assembly and operating instructions, 6-month warranty $165

BETSI POWER SUPPLY & TESTED

ASSEMBLED

$34

See Betsi and its new power supply at your local dealer or write directly to;

FORETHOUGHT PRODUCTS

87070 Dukhobar Road #F

Eugene, Oregon 97402

(503) 485-8575

ORDERS NORMALLY SHIPPED WITHIN

24 HOURS/VISA, MASTERCHARGE

ACCEPTED

August 1979 © BYTE Publications Inc 103

To understand how this correspondence is figured, think of the second index in the matrix as the destination of the signal, and the third index as the source.

Suppose that we wanted to fill in the M matrix for 1 level of systems. An entry will be —1 if the corresponding S matrix entry of the next higher level is negative, 0 if the S matrix entry is 0, and 1 if the S matrix entry is positive. But which is the entry in the S matrix for level L-l-1 corresponding to M(L,J,K)?

The answer is simple: M(L,],K) corresponds to S(L-I-1,K,J). The source and destination indices are simply interchanged. If a higher-level system gives a negative weight (of any amount) to the perceptual signal from a given lower-level system, it sends a copy of its output to the comparator of the same lower-level system with a negative (inhibitory) sign. A negative connection factor means that the output of this higherlevel system will subtract from the contributions of other higher-level systems to the lower-level net reference signal.

Thus, once the S matrix for the next higher level has been filled in, we can calculate the entries in the M matrix:

M(L,J,K) = SGN (S(L + 1,K,J))

where SGN is the Sign function that generates the appropriate 1, 0, or —1.

You may choose to skip these procedures and simply spell out each connection one at a time. My thought in using a general solution is not merely to save lines of program, but to point the way toward expanding the simulation both horizontally (adding more systems at each level) and vertically (adding more levels).

The reference signal for level L, system J, is found by summing over the outputs of all systems of level L-hl, multiplying the output from each higher-level system by the appropriate connection factor from the M matrix:

N(L+1)-1

R(L,J) = X) M(L,J,K)xO(L-t-l,K)

Discover why hundreds of PDP-11 users have turned to us for Pascal.

They're in process control. In data base management. In education, research and communications. Running on LSI-11's, PDP11/70's and everything in between. RSTS/E, RTI1, RSXor IAS — it makes no difference, they praise our Pascal.

Because they all have one thing in common. A desire to get more from their PDP-11 than another language — or another Pascal — can provide.

We've captured the elegance of Pascal in a real world compiler It converses directly in machine language, giving remarkable execution speed and efficient memory use. It features straight-forward

program structure, uncluttered syntax, and other advantages of full standard Pascal.

But there's more, in the form of real-time extensions. 15 digit (double precision) arithmetic. In-line assembly code. I/O hardware access. FORTRAN interface. Directaccess files. Overlays. Plus others. There's even an interactive symbolic debugger

Reliability? Introduced in 1975, we're at over 400 sites now. We guarantee stated performance and provide 1 year of follow-up support. Give us a call; we have a demo library, manuals, and benchmark, ready for your inspection.

minicomputer Siu <3 inc.

2340 SW Canyon Road Portland, Oregon 97201 (503) 226-7760 TWX 910-464-4779

PDP.II.LSI-11, PDP-11/70, RSTS/E, RT11, RSX, and IAS are Irademarks of Digital Equipment Corporation

Distributors;

Australia; Sydney; Network CompLJter Services.

290 3677

Canada; Vancouver; Valley Software.

(6041524-9741

England; Stafford; Hourds Computing Ltd.

0785 44221

Japan; Tokyo; Rikel Corporation, 03-345-1411

To complete this general model we need only calculate the error signal E and the output signal O. The required slowing factor and the error sensitivity are put in the output function.

E(L,J) = R(L,J) - P(L,J)

0(L,]) = 0(L,J) + K(L) X (G(L)x E(L,J) 0(L,J)) where K(L) is the slowing factor for all systems of level L (see part 2), and G(L) is the error sensitivity for all systems of level L.

Top and Bottom of the Model

We do not have a complete control system at the top of this hierarchy where we will be injecting reference signals for the highest complete level. Therefore we designate those signals as (in this case) 0(3,I), output signals from 3 imaginary level-3 systems (us) indexed by I = 0 (X force), 1 (Y force), or 2 (tone). The M matrix for level 2 is set up so that M(2,1,I) is 1, I running from 0 to 2; this establishes connections from each level-3 output to 1 corresponding level-2 reference input. All other entries are left at 0 (my North Star BASIC zeros arrays when they are first dimensioned).

At the bottom, the output signals 0(1,I) are supposed to create muscle tensions that affect 3 input quantities; the amount of stretch in the tendon attached to each muscle. To avoid treating a special case, we will designate these input quantities as "level 0 perceptual signals," P(0,I). The value of each input quantity is found by adding the magnitude of the corresponding output to the component of a disturbance that acts along the length of the associated muscle. The value of the input quantity P(0,I) represents the net stretch in a tendon created by the muscle contraction and this component of the disturbance as they act together.

The level-1 S matrix simply connects each input quantity, multiplied by 1, to its respective input function. Thus, we set S(0,I,I) = 1, for I = 0, 1, and 2. All other entries in this matrix are 0.

The geometry of the muscles is adjustable. Since setting up this geometry is the opening phase of the BASIC program, we will take a quick run through this program and discuss the 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 tor a true word processing capability for your TRS80 ... STOP! WORDP II is it!

WORDP II allows you to enter, edit, and print various amounts of text (witti rigint margin justification) in one program. Tfie EDIT program permits addition, insertion, and deletion of whole lines and ctiaracters within lines. The TYPESET program fills and right justifies paragraphs automatically.

Otherfeatures include: indent, center, right justify non-paragraph text, count and label pages by number or without headings, and lots more.

SPECIAL INTRODUCTORY PRICE

$75.00

Send SI for operating manual - see

what the system will/will not do before

you buy!

DEALER INQUIRIES INVITED

(714) 774-1270 AJA SOFTWARE

P.O. Box 2528 • Orange, CA 92669

Improve TRS~80

performance

with new DOS^

Enjoy the wizardry of your TRS-80 to its fullest: maximize and expand all of its magical capabilities with the new DOS+, Just look at the capabilities you can evoke.

Modifications, corrections, and enhancements to Radio Shack's TRSD0S2.1.

• A Basic REFerence command for variables and numbers.

• A super-fast machine language RENUM program executable under BASIC.

• A built in kevboard-debounce routine.

• A print screen option under DOS or BASIC to your line printer. Simply press JKL keys.

• Newcopy commands for backup, allows you to copy from drive to drive keeping the same filespec.

• Execution of DOScommands while in BASIC.

• New BASIC scrolling and invocation commands and more.

• Apparat'sown SUPERZAP, a Hex dump utility to examine or or modify disk or memory locations,

• Modified EDITOR ASSEMBLER with Disk I/O and new cross reference feature.

• A super-fast machine language DISASSEMBLER program.

• A LOAD MODULE for transferring machine tapes to disk,

• Fasterdisk 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 the contents in alphabetical order with extensions.

You don't have to pull a rabbit out of a hal,.. Send S99 for the Apparat/MTl New DOS-h (on diskette). See all the magic unfold before your eyes.

INTRODUCTORY SPECIAL NEW DOS+ and the very Best of Apparat's disk utility programs S99.00(aS250.00value).

To Ofder yoin diskette of tricks, wnie or call one of our dealers.

Apparat Inc., 6000 E. Evans Ave., BIdg 2. Denver, CO 80222,

303-758-7275 Microcomputer Technology Inc., 2080 S. Grand Ave..

Santa Ana, CA 92705, 714-979-9923

COMPUTER DEALER CO-OP 5082 SHIRLEY DRIVE, LA PALMA, CA 90623

(714) 979-9925

Circle 50 on inquiry card.

BYTE August 1979 105

Circle 161 on inquiry card.

TO HAYDEN

FOR YOUR

LANGUAGE

NEEDS...

New! APL: An Introduction (Peelle) This workbook/textbook offers a problem-solving approach to learning computer programming in APL. #5; 220. SH.50

COBOL WITH STYLE: Programming Proverbs (Chmura & Ledgarcl) Covers structured COBOL, programming, and how to use the top down approach with COBOL. #578 i-4, SG.OS

Meu'i FORTRAN WITH STYLE: Programming Proverbs (Ledgard & Chmura) Programming style guide that conforms to the new FC:)RTRAN 77. #5eH2-G. $(x93

New! Z-80 AND 8080 ASSEMBLY LANGUAGE PROGRAMMING

(Spracklen) An extensive introductory look at assembly language programming for the 8()80 and Z 80 processors. #5 /evo. S7.05

Sew! PASCAL WITH STYLE: Programming Proverbs (Ledgard &Nagin) A style guide specially written for PASCAL users and how to use the top down approach with PASCAL. #.S124 7 Sfi.n.S

New! BASIC FROM THE GROUND

UP (Simon) Explores computers and the BASIC language in a simple direct way, without relying on a heavy mathematical background. #3700-1. SH.95

Available at your

local computer

store!

[Tri Hayden Book '-*-' Company, Inc.

50 Essex Street, Rochelle Park, NJ 07662

visualize how everything works. Figure 16 is the same system, more closely representing l:he organization of the brain.

The Simulator

Muscle angles. After the dimension statements and the statements that set slowing factors and error sensitivities for each level have been called, the program calls a subroutine that asks for the angle at which each of the 3 muscles is to be set (in degrees). You can use 30, 150, and 270 degrees (for equal spacing). There is nothing to prevent the choice of any angles you like, although you should draw a diagram to determine the effect on the system. It is hard to create a force in a direction in which there is no component of force from any muscle.

Sensory weightings. Lines 9 to 15 organize the perceptions of this system, and thus organize its behavior. For values of I from 0 to 2, all 3 levels of sensory matrix are set up. You can now see how X and Y forces are sensed. The weights for level 2, system 0, correspond to the cosine of the angle between the positive X axis and the angle of each muscle. Those for level 2, system 1, correspond to the sine of the same angles. Each input function is weighting the perceptual signals from the muscles according to the component of force that is aligned with the direction being sensed. The tone system, level 2, system 2 adds the signals together to yield a totalforce signal.

Motor weightings. Lines 19 to 23 use the already entered values of the S matrices to create the connection matrix M. The sign function selects the sign that will preserve negative feedback.

Highest-level reference signals. In

line 24, the program calls a subroutine that asks for 3 reference signals: one designating the amount of X force, another designating the amount of Y force, and a third designating the sum of forces, or muscle tone. Positive or negative numbers are allowed. A real nervous system cannot handle negative frequencies, but the same effect can be created by suitable use of inverters so that one (positive) frequency means a positive quantity and another (also positive) frequency means a negative quantity. In reality there would be 6 systems of level 2 in this 4-quadrant system.

I have set up level 1 to behave realistically like a muscle control system; neither negative signals nor negative forces can be produced.

Disturbance. At line 25, the program calls a subroutine which asks for the amount and direction of a constant disturbance. A disturbance might be created by seizing the place where the 3 muscles join, moving it, and holding it in the new position. Despite the fact that the control systems are neither detecting nor controlling position, arbitrary movement of this junction in space will stretch or relax the muscles, creating changes of force due to the spring constants of the muscles. Therefore it is reasonable to suppose that a force disturbance can be created, one which projects into the direction of each muscle according to the cosine of the angle between the disturbance vector and the axis of the muscle.

Calculating the behavior. Lines 29 through 37 call a subroutine that actually does the calculation of signals in all 6 control systems. You will notice 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 each control the amount of tension in 1 muscle, as represented by the 3 level-1 perceptual signals. Copies of these 3 perceptual signals reach all 3 level-2 systems, where they are weighted and summed so as to represent the X component of muscle force (P(2,0)), the Y 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 signal as an output signal to all 3 lower-level systems. Each output signal splits into 3 identical branches, 1 for each level-1 system. When a branch reaches a level-1 comparator, it may be connected directly or through an inverter before being summed with other reference inputs. There is no other weighting of output signals. If necessary, an inverter is used to preserve negative feedback for a particular path.

Each level-1 system amplifies and smooths its error signal to make an output signal reaching just 1 muscle.

A higher-level system determines the reference signals for X, Y, and total force. These are specified by the operator of the simulator. All systems correct their own errors simultaneously.

106 August 1979 © BYTE Publicalions Inc

August 1979 © BYTE Publications Inc 107

(PERCEPTUAL SIGNALS) X Y T

MIDBRAIN

(REFERENCE SIGNALS) X Y T

MOOJ (lOl) (l°2J (no) ("l) ("^) ('2°) V'^O

.. I j. 1 j. j. /.

^ COMPARATOR |-^ ^ COMPARATOR

'^

COMPARATOR

- DORSAL ROOTS. TO SPINAL CORD

LEVEL 2

LEVEL I

Figure 16: Topological transform of figure 15 shows how control systems are arranged in the human nervous system, at least according to some cybernetic theoreticians. The major difference from figure 15 is that all sensory functions are lumped together at each level, and comparison and output functions are also lumped together. The S and M matrices are represented in a nervous system as synaptic connections, the weighting of which is determined by the number of branches (from one to hundreds) that form just as a nerve fiber reaches the next cell body. The sign of a weighting is determined by whether or not a Renshaw cell (specialized to produce 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 memory is best for you?

bQ/e 2* offers the following products to the S'lOO market at the industry's lowest prices:

tMHMMMI'WMH

B ^^^M^^W .^^■■^•W ^ r^^W^n W^^^^ff rW^tvrl ^^^^^T. f ^^^^^W ^^^^^ff

^ ^^^^^M ^^^^^« .J ^^^^^^J ^^U^Ut ^^^^^^^ ^^^^^^ ^ '^^^^^^ ^^^^^^^

' ^^W^^« ^^WWW B ^^^W^W ™^W^*- ^n^^^^ .^^^^tK ,^^^^^^^ff .^^^^^ff

■ ^^^^^^^ ^^^^^^^ ~ ^^^^^^^ ^^^u*^^ ^^^u^u ^^^^^^^^ ^^^^^^^

SK Static Memory Board

This 8K board is available in two versions. The 8KS-B operates at 450ns for use with 8080 and 8080A microprocessor systems and Z-80 systems operating at 2MHz. The 8KS-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 for all IC's. Support logic is low power Schottky to minimize power consumption. Address and data lines are fully buffered and 4K bank addressing is DIP switch selectable. Memory Protect/Unprotect, selectable wait states and battery backup are also designed into the board. Circuit boards are solder masked and silk-screened for ease of construction. These kits are the best memory value on the market! Available from stock... 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 popular BK RAM. This kit includes 8K bank addressing with 4K boundary address setting on DIP switches. This low power unit provides on-board bank selection for unlimited expansion... No MUX board required. Using highest q uality boards and components we expect this kit to be one of the most popular units on the market. Available in two speed 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. TheCPZ-1 operates at 2MHz and the CPZ-2 operates at 4MHz. These cards offer the maximum in versatility at unbelievably low cost. A socket is included on the board for a 2708 EPROM which is addressable to any 4K boundary above 32K. The power-on jump feature can be selected to address any 4K boundary above 32K or the on-board 2708. An On-board run-stop flip-flop andoptional generation of Memory Write allows the board to run with or without a front panel. The board can be selected to ru n in either the 8080 mode, to take advantage of existing software, or in the Z-80 mode for maximum efficiency. For use in existing systems, await state may be added to the Ml cycle, Memory request cycle, on-board ROM cycle, input cycle and output cycle. DMA grant tri-states all signals from the processor board. All this and more on too quality PC boards, fully socketed with fresh IC's. CPZ-1 $110 CPZ-2 $125

S-lOOfor Digital Group Systems

This kit offers, at long last, the ability to take advantage of S-100 products within your existing DigitalGroup mainframe. Once installed, up to four S-100 boards can be used in 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-100 board 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

bo/e

2

inc.

Send for more details on these products. Get on our mailing listfor information on more soon to be announced products at factory-direct prices from BASE 2. Why pay more when you can get the best at these 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 AuRusl 1979 109

Circle 190 on inquiry card.

Thousands of users know the Ithaca Audio Simple Upgrade™ as the best memory expansion available — and with good reason.

Our clear, concise, step-by-step instructions and illustrations make upgrading a snap. Jumpers are packaged just as they appear in the diagrams, no hunting for the correct part.

Fully-tested RAMs and preprogrammed shunts provide a kit that works the "first time." In fact, a Simple Upgrade is the only memory expansion that requires no cutting or customizing to install.

Each kit has a 100% guarantee; if a part ever fails we replace it absolutely free. No other manufacturer has the confidence to offer that kind of warranty and support.

Now the best gets even better: the Simple Upgrade is just $119.00.

The full line of Upgrades is available nationwide at Computerlands, Byte Shops and Independent computer retailers.

For the name of the dealer nearest you, contact:

ITHACA AUDIO

P.O. Box 91

Ithaca, New York 14850

(607) 257-0190

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.

u

S<3,I,I)=1

15

NEXT I

16

REM

17

REM

18

REM

19

FOR L=1/'T0

2

20

FOR 1=0 TO

2

21

FOR J=0 TO

2

Listing 3: North Star BASIC simulation of a 3-muscle system. The muscles have 3 operations they are to perform: movement in the X direction, movement in the Ydirection, and tone control. A sample run of the simulator is shown in listing 4. The exclamation point is used as an abbreviation for the PRINT statement.

1 on, P(2,2),R(2,2),E(2,2),0(3,2),S(3,2,2),M(2,2,2),A(3),K(2)

2 DIM GC2)

3 G(1)=10\ K(1)=.07\ G(2)=5D\ KC2)=.01

4 P=3.1415927/180

5 GOSUB 99\ REM (SET UP MUSCLE GEOMETRY)

6 REM *************************

7 REM SET UP SENSORY WEIGHTINGS

8 REM *************************

9 FOR 1=0 TO 2

10 S(1,I,I)=1

11 S(2,0,I)= COS(A(I))

12 S<2,1,I)= SIN(A(I))

13 S(2,2,I)=1

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

SET UP MOTOR WEIGHTINGS *************************

22 M(L,I,J)=SGH(S(L+1,J,I))

23 NEXT J\ NEXT I\ NEXT L

24 GOSUB 109\ REM (SET UP REFERENCE SIGNALS)

25 GOSUB 116\ REM (SET UP DISTURBANCE)

26 REM *************************

27 REM CALCULATE SYSTEM BEHAVIOR

28 REM *************************

29 !\FOR Q=1 TO 5

30 FOR J3=0 TO 1

31 L=2\ GOSUB 50\ REM CALCULATE SYSTEMS AT LEVEL L

32 FOR J2=0 TO 1

33 L=1\ GOSUB 50

34 FOR 1=0 TO 2

35 P(0,I)=0(1,I)+D*C0S(A(I)-A(3))

36 NEXT n NEXT J2\ NEXT J3

37 GOSUB 69\ REM (PRINT TABLE OF VALUES)

38 NEXT Q

39 !"(A)rJGLE? (R)EFS? (D)IST? (C)ONT? (P)RIflT MATRICES? "

40 INPUT "",AS

41 IF A$<>"A" THEN 42\ GOSUB 102\ GOTO 29

42 IF AS<>"R" THEN 43\ GOSUB 109\ GOTO 29

43 IF A$<>"D" THEN 44\ GOSUB 116\ GOTO 29

44 IF A$<>"C" THEN 45\ GOTO 29

45 IF AS<>"P" THEN 46\ GOTO 76

46 !" ???? "\ !\ GOTO 39 ********************************

CALCULATIONS FOR LEVEL L SYSTEMS ********************************

2

47 REtl

48 REM

49 REn

50 FOR J=0 TO

51 v=n

52 FOR K=0 TO 2

53 V=V+P(L-1,K)*S(L,J,K)

54 NEXT K

55 IF L=1 AND V<0 THEN V=0

56 P(L,J)=V\ V=0

57 FOR K=0 TO 2

58 V=V+0(L+1,K)*M(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 REfi ***********************

67 REtl DATA LISTING SUBROUTINE

68 REM ***********************

69 !\! "ITERATION # ",;;2I,Q,"

70 FOR J=2 TO 1 STEP -1,

71 !\! "LEVEL ",5!2l ,J ,;:#7F2

72 FOR 1=0 TO 2\!" ",R(J,I)/* ",\ NEXT I

73 !\FOR 1=0 TO 2\!" ",P(J,I)," ",0(J,I)," ",\ 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 every iteration of the higher-level system. This proves to be an exceedingly useful, easy way to stabilize the 2-level system. (I have also tried this with a 3-level system, and it worked just as well.) I have no formal rationale for why this works; informally, it seems to be a good idea to let the lower-level system correct most of its error before the higher-level systems take their own errors seriously.

The inner loop, line 35, simply calculates the values of the input quantities for the level-1 systems, using the angles of the muscles and of the disturbance. This is, in effect, the simulation of the environment (the muscles are in the environment of a neural control system).

At line 37 a routine is called which prints out the signals for all systems; the reference signal on 1 line, the

perceptual signal to the lower left of it, and the output signal to the lower right for each system. Line 38 closes the iteration loop; 5 iterations are called for.

Lines 39 through 46 ask what action is to be taken after 5 iterations.

Calculation subroutine. Lines 50 to 65 calculate the signals for each system. The V that occurs here and there is simply a way to reduce the number of times a subscript has to be calculated. The perceptual signal is calculated first, then the reference signal, the error signal, and the output signal, for each system of level L. The level is set at lines 31 and 33 by the calling program. Line 62 contains the slowing routine which appeared in part 2. Lines 55 and 63 determine whether or not level 1 is being calculated; if it is, the perceptual and output signals are prevented from going negative.

75 !\

76 !\

77 FO

78 !"

79 FO SO !"

81 FO

82 i;

83 NE SA ME

85 !

86 NEXT L i!"I10T0R f, )R L=1 TO 'LEVEL ",'/, ^R J=0 TO

RETURN !"SCflSORY R L=1 TO LEVEL ",'/, R J=0 TO

It

R K=0 TO 6F2,S(L,J

!!T K XT J

87 !\! 86 For

89 !"l

90 For

91 !"

92 FO 9 9A NE

95 NE

96 !

97 NE

98 ! \

99 RE

100 R

101 R

102 !

KATRIX"\ ! 2

II,L 2

2

ATRIX"\! 2

II,L 2

10

104 A

105 R

106 R 107 108 109 110 111 112 113 R 1U R

115 R

116 ! 117 118 119

R K=0 TO

;;6F2,r'i(L,

XT K XT J

XT L

GOTO 39 H

EM EM

\!"nUSCLE MPUT1 "^1 (0)=A(0)* ETURN Eh EM El^i

\!"REFERE MPUT1 "X: NPUT1 " ETURN EM EM EM

\! "DISTU flPUTI "HA (3)=A(3)* ETURN

2

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

SET UP MUSCLE GEOMETRY

********************** ANGLES:" \ ",A(0)\ iriPUTI " t!2\ ",A(1)\ IMPUT1 P\ A(1)=A(1)*P\ AC2)=A(2)*P

*********************** SET UP REFERENCE SIGNALS ************************* NCE SIGNALS:"

",0(3,0)\ INPUT1 " Y: ",0(3,1) TONE: ",0(3,2)

************************** SET UP DISTURBANCE & ANGLE **************************

RBANCE:"

GNITUDE: ",D\ INPUT1 " ANGLE: ",A(3)

P

r/3\ ",A(2)

READY

(S^

HAS IT!

Texas Instruments

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

CTC'SDISCOUNTPRICEFORTHECOMPLETE SYSTEM CONSOLE & 13" COLOR MONITOR

$1099

Price subject to change witfiaut notice. Refunds guaranteed.

CTC The Computer People

San Diego's largest Discount Computer & Calculator Store. 5560 Ruffin Road, San Diego, CA 92123

PiBBta ship ma thfl following merchondiia. Tl & HP CALCULATORS

Tl-Programme

HexOclal Calculator

S 49.95S

TI-58C

99.95 S

TI.59

programmable mag cards

219.95!

TI.50

slimline scientitic

33.95!

TI-5025

printing handheld

G9.95 S

TI-5225

business desktop

179.95 S

TM025

5 function w/memory

10.95 $

TIIOOO

5 function

8.95 S

Spilling B

electronic spelling aid

25.95 S

Speak & Spsll

spelling aid that talksll

59.95 S

HP33E

76.95 S

HP-38E

programmable business

98.95 %

HP-92

desktop business

399.95 S

HP-67

361.95 S

HP97

597.00 S

Tl HOME COMPUTER PRODUCTS

PHC004U TI-99/4 Home Computer S1099.00 t.

PHA2000 Oual Cassette Cable E.9S s.

PHP1100 Remote Controls (Pairl 29.95 S_

PHP1S0O Speech Symhesizer 149.95 $ _

COMMAND MODULES

PHM3000 Diagnostic

PHM3001 Demonstration

PHM3O02 Early Learning Fun

PHM3003 Beginning Grammar

PHM3004 Number Magic

PHM3005 VldecGraphs

PHM3Q06 Home Financial Decisions

PHM3007 Household Budget Management

PHM3003 Video Chess

PHM3009 Football

PHM3010 Physical Fitness

TOTAL S

Shipping, add 3% S

Cal. residents add 6% tax $

Amount enclosed S

(check or money order)

(Credit Cards for Sales of 1700 or less)

Charge to my □ VISA □ MASTER CHARGE

Acct # Bank « Exp. Date —

Name

29.95 S.

89.95 s_

29.95 S_

29.95 S_

19.95 S.

19.95 S_

29.95 S.

44.95 S.

69.95 S.

29.95 S.

29.95 S.

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 initialized, the user is allowed to set up several values: the 3 muscle angles, the reference signals, and the disturbance magnitude and angle. For each iteration the values for level 1 and level 2 are output in the following form. First the reference signal for the particular muscle is printed. The perceptual signal is printed on the next line, just to the left of the reference signal, and the output signal is printed to the right. This is repeated for every muscle.

RUN

MUSCLE ANGLES:

^f^\ 30 /;2\ iso uz\ 270

REFERENCE SIGNALS:

X: -30 Y: AO TONE: 175

DISTURBANCE:

MAGNITUDE: 0 ANGLE: 0

ITERATION # 1

REFERENCE LEVEL 2 PERCEPTUAL SIGNAL OUTPUT

-30.00 SIGNAL AO.OO 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.A6 37.83 36.14

ITERATION U 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 # 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 # 4

LEVEL 2

-30.00 40.00 175.00

-29.54 -18.83 40.19 12.57 172.81 65.13

LEVEL 1

58.87 96.52 33.73

53.51 53.52 87.72 87.74 30.57 30.64

DISTURBANCE:

HAGNITUDE: 40 ANGLE: 135

ITERATION tl 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.00 173.67 65.75

76.90 57.11 93.27

Listing 4 continued on page 114

Data listing subroutine. This subroutine is called after every complete iteration of both levels. It prints only the perceptual signal, reference signal, and output signal from the 3 systems at each level.

Running the Program

After the RUN command is given, the program asks for all adjustable parameters and then does 5 iterations, printing out the values of all signals each time. It then issues a prompting message, the answer to which determines what happens next. The C command means do 5 more iterations. The P command causes the sensory and motor matrices to be printed out. To get an idea of the time scale on which human Ievel-1 and level-2 systems work, imagine that each iteration takes about 1/20 of a second. (If you are looking for mental exercise, you might adapt the plotter from part 2 to show the variables in this simulation.)

What the Simulator Shows

There has always been a problem in conventional models of the brain that have to do with coordinated actions. The standard description is that something high in the brain thinks of a general command like "push!" and sends the equivalent signals downward toward lower systems. Those lower systems receive the general commands, and elaborate on them, turning them into more detailed commands at every step. At the lowest level, all of the detailed commands converge into the final common pathway, the relatively few channels running from the spinal cord to the muscles. There, at last, the neural signals are turned into tensions that create motions that create behavior.

The problem that nobody has ever been able to figure out is how a simple general command gets turned into specific commands that will have effects that satisfy the general command. Unfortunately, neurology is full of sentences that sound like explanations but are really restatements of the effect that is to be explained. When such sentences are uttered, they create the impression that the problem has been solved and needs no further investigation.

The simulator described here shows a different way for commands to get turned into actions. The command that specifies an X force doesn't

112 AugusI 1979 © BYTE Publications Inc

it's on the douabnutl

INTRODUCING — LOUMAR MANAGEMENT SYSTEMS SOFTWARE

di

programs to give you a comprehensive pacl^age for business management

The Loumar General Accounting System is a versatile, fully integrated soltware package designed tor small and medium sized businesses. It is also suitable for CPA's and bookkeeping service films.

The complete software system is composed of four main modules: GENERAL LEDGER, ACCOUNTS RECEIVABLE. ACCOUNTS PAYABLE AND PAYROLL. Each module may be used separately or in combination with any other module. Supplied on disk as run-time modules. Source not available.

All software is written in 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 presented 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. format CRT with at least a 64 character by 16 line display CP/M and CBASIC II

Write for our brochure — Dealerships still available Contact: Distributor

MISSION CONTROL • 2008 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 — $550 ACCOUNTS PAYABLE: Up to 1000 vendors and 1300 monthly

transactions — $400 GENERAL LEDGER: Up to 200 accounts with 2000 entries

$450

Circle 237 on inquiry card.

BYTE AugusI 1979

113

Circle 54 on inquiry card.

Control System

Software

!ji,:iu<:l« i:>o'

•*oot Ic.

• Tttnc R«*pui<

Ali of tht ilb«ve

aoao or zaof -4

tf^--: ■ -m

(s + Vi) (s+1) (s+5)^{s + 50) (s+100)

!ll)l[.ll '<>ME<I1

ill Ijjl

:::!:!:! "■;;!:::

ITU (systems cJeva Sin the Mid- ->■ '•'f i variety oi . ] performs custom ■ programming.

COMPCO 16 a distributor of At (Computer systems and also sell& "General Rnhotir<; \.Sl^^^* f^y^.tptw: 'Iradcmsrv

Compco

Listing 4 continued from page 112:

ITERATION # 2

LEVEL 2

-30.00 AO.OO

-12.87 -16.21 21.ni 20.17

LEVEL 1

66.48 98.91

59.89 69.9A 90.08 54.02

175.00 180.28 62.52

26.14 25.92 50.56

ITERATION # 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 H 5

LEVEL 2

-30.00 40.00 175.00

-29.55 -IS.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 ainong the muscles. It is a request for a perception, not a command to act. The system receiving this request perceives the X force through a convergent, not a divergent network. A divergent network cannot be treated as a function; a convergent network can. When the perceived X force matches the reference X force, the cause of the perception must be in one of the states that will, in fact, create that component of force in the X direction. There is an infinity of different muscle tensions that could create the same component of force. If I were not also specifying 2 other functions of force, there would be no way to predict the exact muscle tensions that would exist when the X control system experienced zero error.

Since we are specifying 3 functions of 3 variables, and setting reference levels for the value of each function.

there is only one state of the muscles that will allow zero error in all 3 systems at once. What we have done, in fact, is set up an analog computer for the simultaneous solution of 3 equations in 3 variables.

This simulator shows that the reference signals for the lower-level systems do not correspond to any one output from a higher-level system. Nevertheless, the perceptual signal sensed by each higher-level system matches the corresponding reference signal. The higher systems each sense a different function of the set of lower-level perceptual signals. Independent control is possible only because the functions represent independent dimensions of variation of the lower-level world.

In the environment of this 2-level system, there is no such thing as X force, Y force, or tone. There are simply 3 tendons in various states of tension. I have created the idea of

114 August 1979 © BVTE Publicalions Inc

Designing Digital Systems

Two programmed learning courses: hardware and software; theory and application.

Design of Digital Systems ■ six volumes

ADVANCED COURSE DESIGN OF DIGITAL SYSTEMS

Six large-format volumes — each 11'A x 8V4".

CONTENTS

The contents of Design of Digital Systems include:

Book 1: Octal, hexadecimal and binaryv; number systems; representation of negative numbers; complementary systems; binary multiplication and division.

Book 2: OR and AND functions; logic gates; NOT, exclusive-OR, NAND, NOR and exclusive - NOR functions; multiple input gates; truth tables; DeMorgan's Laws; canonical forms; logic conventions; Karnaugh mapping; three-state and wired logic.

Book 3: Half adders and full adders; subtractors; serial and parallel adders; processors and arithmetic logic units (ALUs); multiplication and division systems.

Book 4: Flip-flops; shift registers; asynchronous counters; ring, Johnson and exclusive-OR feedback counter; random access memories (RAMs); read-only memories (ROMs).

Book 5: Structure of calculators; keyboard encoding; decoding display data; register systems; control unit; program ROM; address decoding; instruction sets; instruction decoding; control program structure.

Book 6: Central processing unit (CPU): memory organization; character represen^ tation; program storage; address modes: input/output systems; program interrupts interrupt priorities programming; assem biers; executive programs, operating systems, and time-sharing.

OUR CUSTOMERS

Design of Digital Systems has been bought by more than half the 50 largest corporations in America, and by Motorola, Intel, DEC, National Semiconductor, Fairchild, General Instrument, HewlettPackard, Heath Co., M.I.T., NASA, Smithsonian Institute, Bell Telephone Labs. And many, many more, as well as corporations and individuals in over 50 countries.

BASIC COURSE

Digital Computer Logic & Electronics

CONTENTS

Digital Computer Logic and Electronics is designed for the beginner. No mathematical knowledge other than simple arithmetic is assumed, though you should have an aptitude for logical thought. It consists of 4 volumes — each HVz" x 8V4" — and serves as an introduction to the subject of digital electronics.

Contents include; Binary, octal and decimal number systems; conversion between number systems; AND, OR, NOR and NAND gates and inverters; Boolean algebra and truth tables; DeMorgan's Laws; design of logical circuits using NOR gates; R-S and J-K flip-flops; binary counters, shift registers and half-adders.

NO RISK GUARANTEE

There's absolutely no risk to you. If you're not completely satisfied with your courses, simply return them to GFN within 30 days. We'll send you a full refund, plus return postage.

TAX DEDUCTIBLE

In most cases, the full cost of GFN's courses can be a tax deductible expense.

PHONE ORDERS- FREE

To order by phone, call (603) 224-5580 with your credit card information. It won't cost you a dime, because we'll deduct the cost of your call from the price of the courses you order.

TO ORDER BY MAIL

You may u$e the order form below if you wish, but you don't need to. Just send your check or money order (payable to GFN Industries, Inc.) to the address below. If you don't use the order form, make sure your address is on your check or the envelope, and write "DDS" (Design of Digital Systems). "DCLE" (Digital Computer Logic & Electronics), or "both" (both courses) on your check.

There are no extras — no sales tax. And we pay all shipping costs.

We also accept company purchase orders.

AIR MAIL

The prices shown include surface mail postage anywhere in the world. Air mail postage costs an extra $10 for both courses (10 volumes).

DISCOUNTS

Call or write for details of educational and quality discounts, and for dealer costs.

gP

GFN Industries, Inc.

BIdg. 7-20

203 Loudon Road

Concord

NH 03301

Call (603) 224-5580 to order by phone - free.

7 days, 24 hours

Circle 143 on inquiry card.

Order free by phone No sales tax No shipping charges Money-back guarantee Tax deductible Save $5

SAVE $5

If you order both courses, you save $5 Order at no obligation today.

To: GFN Industries, Inc., BIdg. 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 ctieck/money order (payable to GFN Industries, Inc.) for total $

NAME

ADDRESS

CITY/STATE/ZIP .R8

BYTE AuBUSl 1979 115

these 3 forces, by designing input functions that will sense them. I could have made one system that would sense force along a set of curved lines representing direction, and another that would sense force along a different set of curved lines crossing the first set; a coordinate system without any straight lines in it. This would result if the sensors were nonlinear, as we know they are. It would have made no difference, except for the fact that there would not have been a simple label like X force to assign as a meaning for the perceptual signals. It would still be possible to specify 3 reference signals and thus set the 3 perceptual signals to specific values, thereby creating a specific state of tension in all 3 tendons that would automatically resist disturbances. The way in which the external situation is represented is almost immaterial, as long as 3 reasonably independent perceptual functions are created. There is no coordinate system in the outside world. The behaving system makes up one of its

If there were sensors on each muscle to detect muscle length as well as force, we could add 3 more control systems at level 1, and 3 more independent aspects of the external world to control at level 2. In fact, there are muscle-length sensors, and I am working on several models that take them into account.

If you now imagine 500 to 800 muscles involved with at least twice as many level-1 control systems (length and force surely; rate of change highly likely), you will begin to perceive the richness of the world in which level-2 systems exist. Add to this the millions of sensors for heat, cold, vibration, joint angle, light, sound, taste, smell, hunger, pain, illness, angular acceleration, joint compression, and so on, and you might begin to glimpse the complexity of the real system we are modeling. Since perceptions that arise from sources other than direct effects of muscles exist in large numbers, there can clearly be far more level-2 systems than level-1 systems, although the number of level-2 systems that can

Bowling Bookkeeper

Tested in Actual League Use for Two Seasons

,v

\^^

r \

SowPrTOSlWl^

■(\ \

F^hat does evcivthfe wouici do — and

kcepcr-f- will IfSt ecK-ri 'juwikp s myn bi-'iie.i ui tiie ygl

each bowler's high game of the year every week.

The Bowling Bookkeep«rt prompts the user through each ; -irt so even a non-computerite can easily use the package i I le Bowlins Bookkeepert runs under standard CP/M*.

Ihe entire Bowling Bookk«epert system which includes .i start \ up program, a score entering program, a posting program, and an \. error recovery program costs $400. A complete computer system consisting of an Altos 8000-1 microcomputer, a Microterm M\MS. terminal, CP/M* operating system, and the Bowling Bookkeepert is available from COMPCO for under $5,000

■nrademark of COMKO 'Trddemafk ot Digital Research

,V

rO

$400 for Complete Packase

Col .__

8705 North Port Washington Road Milv^aukee, Wis. 53217 414/351-3404

tmpco

act independently at the same time is limited by the total number of comparators available at level 1.

Perhaps you can now see why this approach to a model of a human being (rudimentary is it is at this point) has some powerful implications for the building of robots. I suggest a formal distinction between a robot (an imitation of a living system) and an automaton (a device which automatically produces complex actions). An automaton is designed to create preselected movements; a robot is designed to control preselected perceptions (its own). In order for an automaton to produce precise and repeatable behavior, it must be built so strongly that normal disturbances cannot alter its movements, or it must be protected from disturbances that might interfere with its movements. In order for a robot to create, for itself, precise and repeatable perceptions (and thus precise and repeatable consequences of behavior), it need only perceive precisely, have a sufficiently high error sensitivity, and be capable of producing forces as large as the largest disturbances that might reasonably occur.

There is much more that can be said about the general relationship of one level of control to another, but this installment has raised enough points to ponder. To prepare for part 4, you should run this simulator and observe what happens to all of the variables in it. Try keeping the disturbance constant in magnitude and rotating its angle; try altering the muscle angles; change line 3 to use different error sensitivities (G(x)) and slowing factors (K(x)). Use the C command for longer iterations, and convince yourself that a steady state has really been reached. See what happens if the muscle tone isn't set high enough (there is a very good reason for muscle tone control). Do a series of iterations with slowly changing reference signals, and plot muscle tension against each reference signal. Get the feel of this small extract of the whole human hierarchy because in part 4 we will widen the field of view to include everything, and we will begin to look at some experiments with human subjects. These experiments will be noninvasive, nondestructive — more like video games than science — but far more useful than the games. ■

116 Autjubl i979 V-: BYTl: Pulilicilioiib Inc

Circle 56 on inquiry card.

180

Ws®"'

TH€V

5«.,!f

'%,

»»«

*C3'

»t<i

s;'«^ ?*•

^w^

>I^ „. ft

Hfif -

€R€

^B I «5 '.^ ff °; » "l^ ► ^"It »''' \ ^» — ^^H

^e vouf **^^ ^ortxi, o"sW^„oA, 6800, ^'^"^ a\on9 g^^dress co\^ri ^^ a o ^^cVa'

V3l ■ ^ r Pa^*

°^-" --r*" -'SS'^vo Lr'?s:.f-rv■ pasier ^o ^ jgan pro^ maximum o^ *_— ^ o-ic

earW an^ ^"^ ;; oo/pa^^^^^!:!!^-^^

, and rur.;; oo/pa^J^^!:!!;^-^

^

,nr VO^f P'°^ obect code, --- - pore^Qr^:^::i:-^^-;:^ 058-bA' • ^^

"^^ avoseS2i^^£2S!. ■ Neuj from BR

'i(ic 622!^-^^^^^—— ' Osborne ond flssociotes! ^^B

ZeOASSEMBI

b

^ros^il^i^^^^^^^— Ncuj from

— Osborne and flssociotes!

BLY LANGUAGE PROGRAMMING by Lance A. Leventhal

n Hot off tfie press, fiere's the Z80 assembly language and Its use in Lance Leventhal's graphic style A parallel to his earlier bool< 6800 LANGUAGE PROGRAMMING, it covers the Z80 instruction set in depth and nrnnrammina technioues for its use. Included are more than 80 sample programs in sour( mpthnds_ assembler conventions, an

j:—-—— Z8O ASSEMBLY LANGUAGE PROeRAMMINli

by Lance A. Leventhal

n Hot off the press, here's the Z80 assembly language and its use in Lance Leventhal's graphic style A parallel to his earlier bool< 6800 LANGUAGE PROGRAMMING, it covers the Z80 instruction set in depth and programming techniques for its use. Included are more than 80 sample programs in source and object code, Z-80 I/O devices and mterfacing methods, 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 161 , — — — ————— — ———— — ——— „.„„

for ordering the above books. Pl^^^e send me the following BITS PROGRAMMER PADS

' n Z80 n 6800 n 6502 D BOSOA D I8O2 @ $2.50 each

Please use order form on page 16I for ordering the above books.

*fltt0ntion Dealers:

BITS PROGF^AMMER PADS™ are

in great demand among microcom

BITS PROGF^AMMER PAUS'" are

in great demand among microcomputer programmers and users everywhere. We invite your inquiries. Please write or call today.

V .

_pads $_

Post. & Handl.

TOTAL 1B2089

BYTE August 1979 117

TRS-80

AT LAST! HIGH-QUALITY SOFTWARE

AT MASS-PRODUCTION PRICES.

WORD PROCESSOR DOS & 16K $39

Be selective! Avoid 'word processor' converted from another system. It is hard to load (an object program), and the worst is you cannot store your text file in disk. Our WORD-III is the first word processor specifically designed for TRS-80 that uses disk storage for text. Written in BASIC. No special hardware, no text size limit. 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. Random access. 2-digit selection code used.

INVENTORY DOS &16K $39

While others use inefficient sequential file, we use 9digit alphanumeric key for fast on-line random access. Record has key, description, level, safety level, order amt., unit cost & price, annual usage, location and vendor code. Reports give order info, performance summary, etc.

KEY RANDOM-ACCESS UTIL DOS & 16K $19

Lets you access a record by specifying a key. Features hashing, blocking, buffering technique, auto I/O error retry, etc.

DISKETTE DATA BASE DOS & 32K $49

You can use it to maintain a data base & produce reports without any programming. Define fields, type, screen & report formats on-line. Almost use up all 32K.

ACCOUNT manage client accounts & account receivable. Remark fields for general use. Automatic billing & transaction recording. 32K req. DOS $59.

SORT & LINKEDLIST ACCESS UTIL Lev. II

Unlimited # of sort-keys. All data type. Link & unlink a record in a list. 4K. $10 each or $16 both.

CASSETTE WORD PROCESSOR Lev. II & 16K $29 Level I or II cassette software:

data base manager, inventory 16K $20 each check balance & stock security 4K $10 each

or $15 both Our competitors offer $99 cassette word processor, $90 sequential 'on-memory' inventory, inflexible mail system that does not produce report, 16K data base. Compare all these basic features first. If still not convinced, send $1 and 2 self-addressed stamped envelopes.

MICRO ARCHITECT

96 Dothan St. Arlington, MA 02174

Text continued from page 16:

Conditional Expressions

Clearly, the meaningful use of predicates and recognizers requires the existence of language constructs to modify the program flow. Such constructs are called control structures. One basic control unit in LISP is called the conditional expression. In M-LISP it is written:

[<p,> —<ei>;<p2> —<e2>;...f-<e„>]

The meaning follows:

of such a conditional expression is as

Each <p,> is a predicate; the <e,>s are arbitrary LISP expressions. We evaluate the < p,> s from left to right, finding the first which evaluates to true. The value of the conditional expression is the value of the corresponding <e,> . If none of the <p,> s are true, then the value of the conditional is <e„> . Notice that this last case is really forced upon us since the last predicate is the constant f. It is common to read t used in this context as "otherwise."

We extend our M-LISP to S-LISP mapping to include this new construct, mapping it to:

(COND (< predicate, >^ < expression, >''J (< predicate! > ^ < expressiona >'^j

(T< expression„ > '^))

The evaluation of a conditional expression is different from the technique we have used in previous LISP instructions. Previously we have insisted that we evaluate all of the operands in an instruction. In the conditional expression, we evaluate the minimal part of the conditional which gives us a true predicate; then we evaluate the corresponding expression.

For example: (COND ((ATOM 'A) 'FOO) (T1)) gives value FOO, since (ATOM 'A) gives T. (COND ((ATOM '(A)) 'FOO) (T D) gives value 1 since (ATOM '(A)) gives ML.

We have introduced all the instruments in the LISP orchestra. Now it's time to make some music.

The Factorial Function

Our first example is the venerable LISP program to compute the factorial function:

I if n is 0 n! =nX(n-l)! ii n^^O

We want to convert this description into a LISP algorithm. The "if" structure can be converted into a conditional expression, and we can name the new operation fact. We assume our LISP machine has such a multiplication operation named times; we also assume the existence of a simple subtract-by-one function, subl. Here's the body of a factorial algorithm in M-LISP:

leqln:Oj~'l; f — timesln;fact[subl[n]]]]

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 we get tired of reducing.

body; it is the name of the function we are defining, and somehow we must associate that name with the body. We symbolize that association using "< =". For example:

fact[nl< =leqln;0]-'l;

t^ timesln;factlsubl[nl]jl

Here is its pretty-printed translation in S-LISP:

(DEF FACT (N) (COND ((EQ N 0) 1)

(T (TIMES N (FACT (SUBl N))))))

The new ingredient in these definitions is the use of recursion. A typical recursive definition has several characteristics;

• The body of the definition should be a conditional expression. A definition like foolxj < = bazlfoolbarlxllj will cause nothing but grief. The conditional expression will contain two basic parts: the termination case and the general case(s).

• The termination case describes what to do when a primitive data structure is recognized. We consider the integers built from zero, using the successor function, addl. Therefore, our termination case in FACT involves recognition of 0, and terminates with value 1.

• The general cases involve "composite" data structures. We can decompose a positive (composite) integer down to zero by a sequence of subtract-byone operations. The essential idea is that reducing the complexity of the argument in a recursive call will thereby reduce the complexity of the problem. That's an old trick; what recursion says is that we can solve the original problem by reducing it to a simpler case of the same problem. If we persist, the problem will solve itself before we get tired of reducing; it's like dieting.

Recursive definition is similar to inductive description, like those we gave for defining lists or the M-LISP to S-LISP mapping. The techniques involved in finding the right inductive steps are similar to those involved in finding the right decomposition in a recursive definition. Recursive definition is a powerful descriptive technique; fortunately it can also be implemented as a very efficient computational mechanism.

Equal

For a further example, assume that we want to test the equality of two lists, where equality means that each element of two lists is identical and the order in which those elements occur is identical. The identity relation also extends to sub-elements of lists. For example:

equal

(A BC) (AB C) (A(B C)D) (A(B C)D) ()()

nonequal

(A B C) (AB D) (A(B C)D) (A D(B O) (A(B(C)D)) (A BCD)

Let EQUAL be an algorithm to compute this extended equality; it will be recursive. Regardless of the complexity of objects, all we need to do is find the right way to decompose them, and then pounce on the pieces. The decomposition operators we have for lists are FIRST and REST. We also have to stop the decomposition. In FACT we tested for the occurrence of zero; in EQUAL we test for the occurrence of an empty list, and since we are assuming that elements of a list may either be sublists or atoms, 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 have equality if y is also empty, otherwise we will have an inequality:

(DEF EQUAL (X Y)

(COND ((NULL XXCOND ((NULL Y) T)

(T NIL)))

Note that we embedded a conditional expression within a conditional expression. Note also that the interior conditional returns either T or NIL; but that's what we wanted

It's

for graphics!

NEW

ASSEMBLY LANGUAGE

3D GRAPHICS

FOR THE APPLE II...

Our 3D packages allow you to animate 3D or 2D data bases created with standard XYZ coordinates.The two users manuals (90 pages total) are written at different technical levels to give all Apple users a quick understanding ot access and uses from BASIC and assembly language. The smalt 8K memory requirement lets you use the subroutine with most of your educational, scientific, and game programs.

$45 (available August 25, 1979). Disc and relocatable cassette option available.

We re open 9 to 6. Monday Ihru Friday, central lime 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 ML are our representations of the truth values f and /. Note too that we depend on the order dependence of the conditional evaluation; we won't test the (NULL Y) expression unless (NULL X) is true. We won't get to the "... ?" condition unless (NULL X) is false.

We can still have x non-empty, and y empty; let's take care of that:

(DEF EQUAL (X Y)

(COND ((NULL XXCOND ((NULL Y) T)

(T NIL)) ((NULL Y) NIL) ...?)

Now the "... ?" has been reduced to the case that both lists are non-empty, and we can massage the pieces with FIRST and REST. We look at the FIRST pieces; if they're equal, then our decision on the equality of the original lists depends on the equality of the remainders (or RESTs) of the lists. If the FIRSTs are not equal, then we can stop immediately with a false indication. This analysis yields two cases: if the first elements are atomic, then use £Q to check their equality; otherwise use EQUAL itself on the first elements. Here we go:

(DEF EQUAL (X Y) (COND ((NULL X)(COND ((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 existing lists; we will certainly want to write algorithms which build new lists. Consider the problem of writing a LISP algorithm to reverse a list x. There is a simple, informal computation: take elements from the front of x and put them 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 produce the sequence:

X

y

(ABC)

()

(BC)

(A)

(C)

(BA)

()

(CBA)

The reverse function will build the new list by concatenating the elements onto the second argument of

rev':

reverseIxj< = rev 'lx;()] rev'lx;y]< =jnulllx]^y;

t^rev' [restlxl;

concatlfirstlxj;y]]]

Since y was initialized to ( ) we are assured that the resulting construct will be a list.

We leave it to the reader to translate this algorithm into S-LISP.

Summary

Those of you who have already heard about LISP programming know that LISP's two major characteristics are: lots of parentheses, and strange function names like car, cdr, and cadadr. By now you should at least understand why the parentheses are used, if not totally understand why the representation is a benefit rather than a curse.

LISP's second characteristic is definitely a blemish. More to the point, it's a commentary on the state of LISP

'^ODY T'ERIPHERALS

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 for $18.00) Out ol U.S.A. Send $8.00 US Currency International Money Order for Each Shirt.

Our Shirts are Made in America and Do Not Shrink!

Custom Designs Available for Your Club - Dealer Inquiries Welcomed. BODY PERIPHERALS P. O. Box 945 Chanute, Kansas 66720

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 the announcement of these Peripherals.

«! Floppy Disk anO Prnie' b &:ness system tor most prolessional eWs iTiecJicino. law. Ocmai, rcseatcT I making, printing, cducalion. energy cun

tie PET'- Busii.ur,s Syslcm as a t>r dGliversin(oitnatinnli)allleve]ao( o siyaitairaOleonlywiineqijipmenr

eipensive The PET'"Business o He most cost cHirieni business icos

lOOay It otters a wiOe range of applications trom logging management strategy m maicr corporaiions to cganizmg accounts antJ invenlo/y control ol small tjJSmesses Here are jusi a lew otihe cost-saving uses inltie corporation, prolossionat office ot small I)usiness' slock conlroi, purctiasing, forecast ing, manutactunng costing, customer records, mailing lists, etc The PET". Floppy Disk and Printer, a compatible business syslcm al a reasonable priC'j — Take a closer took al these Pei pncrals

LARGE TYPEWRITER KEYBOARDS NOW AVAILABLE!

PRODUCT

PET 2001—4K

PET 2001—8K

PET 2001 —16KN (Large

PET 2001—32KN (Large

PET 2023 PRINTER

PET 2022 PRINTER

PET 2040A

PET 2040

PET C2N

•The 16K/32K (large keyboai 2040 Floppy Drive requires

DESCRIPTION PRICE AVAILABILITY

4K RAIVI $ 595 IMMEDIATE

8K RAM $ 795 IMMEDIATE

Keys)16K RAM* $ 995 IMMEDIATE

Keys)32K RAM $1295 IMMEDIATE

ROLL FEED $ 850 IMMEDIATE

TRACTOR/ROLL $ 995 IMMEDIATE

SINGLE FLOPPY $ 895 JUNE/JULY

DUAL FLOPPY* $1295 IMMEDIATE

2nd Cassette $ 100 IMMEDIATE

rd) units do not include a cassette drive. Order C2N Cassette, a 16K or 32K unit. 8K RAM Retrofit available July.

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

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!

24K Expandamem Memory'525 SIOQ^

32K Expandamem Memory'615 Ifc33

COMPUTHINK .4 & .8 MEGABYTE DISK DRIVES FOR THE NEW 16/32K PETS!

DISK SYSTEMS INCLUDE DISKMON OPERATING SYSTEM IN ROM AND INTERFACE TO 16/32 PETS!

• Dual Minifloppy Drives wilh 200K per diskette side for total -lOOK/SOOK on line.

• 800K model accesses all 4 diskelle Sides via dual read and write arm system

• Dual Density Hardwaie and DOS loads 30K (with verification) m 4.2 seconds complete.

• DISKMON (DOS) adds 17 commands to BASIC including Random Access and printer support

• System comes ::omplGte with plug in internal boa'd containing 8K RAM, DOS. and Disk Conlroiler Hardware—Board plugs directly onto internal memory expansion pins

• System does not utilize IEEE or USER Port, systetr; functions directly from memary port

• All DISKMON DOS commands reside interactively with BAStC-disk directory command and lormai command do not interfere with program m RAM —DOS command were designed (or simplicity of US2 System was manufactured for heavy commercial use

• System installs completely m less than ten minutes—immediately ready for use

• M295 and'1595 prices include al! hardware. DOS.complele user manual, and demo/ulililydiskelte.

• Available software includes PLM Compiler ('250), Relocatable Assembler ('70). Source-Edilor Program ('70). Aulolmk Linking Loader (»7D), and a complete Database system (Pagemate '495)

• Call or write lot 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 '1595

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

..1 PAPER • UPPER & LOWER CASE—M099 PRICE INCLUDES

— - INTERFACE TO lEEEPORT. AVAILABLE AUG/SEPT.

$1099

TRS-80 USERSI-THE

MODEL 730 IS AVAILABLE FOR USE WITH THE TRS-80. PRICE INCLUDES CABLE

only

$995

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

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

NEECO

NEW ENGLAND ELECTRONICS CO., INC.

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

(617)449-1760

IVIASTERCHARGE OR VISA ACCEPTED TELEX NUMBER 951021, NEECO

Circle 282 on inquiry card.

BYTE August 1979 121

DP SYSTEMS

SEMINARS

OF EXCELLENCE

LOCAL PtflFORMANCE^

NETWORKS j EVALUATION

I IMAGE / SS? 1 ntSOURCEl

I PROCESSING I PROCESSING ^ SHARING

J.-- --L^

^■^ " ' ' -.

^CAPACITY ' COMPUTER ' QUEUEING ^

PLANNING ' CRIME , NETWORKS ,

SIX DYNAMIC 3-DAY SEMINARS BY THESE EXPERTS

DENNING

PERFORMANCE EVALUATION

WASHINGTON, DC. ■ OCTOBER 3-5, 1979

FARBER-JENSEN

DISTRIBUTED COMPUTER ARCHITECTURE

WASHINGTON, D.C. ■ OCTOBER 8-10, 1979

ANDREWS

STOCKHAMaSAWCHUCK

DIGITAL IMAGE PROCESSING

WASHINGTON, DC. ■ OCTOBER 24-26, 1979

BUZENDENNING-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

!£B!TFis¥TTUTe

P.O. BOX 49765, LOS ANGELES, CA.90049 (213)476-9747

programming, rather than the language. When we examine the very low level representation of LISP operations, we see that the primitive selection operations of LISP data structure can be described as selecting either the left or right branch of a binary graph. Car and cdr are these selection functions, and cadadr is an abbreviation for a composition of these operations. Since all LISP data structures (in our simple subset, remember) must ultimately be representable as combinations of atoms and binary graphs, then all algorithms must ultimately be expressible as manipulations of graph structure involving car, cdr, and a function to construct new graphs, cons.

Most LISP programs are constructed in just such a fashion. The result is unsatisfactory from at least two views. First, the programs become almost totally unreadable. Instead of couching the data structure abstractly in

terms of the concept ,recognizer: is doglxj; selectors:

left_eyelx], tailfx],...; and constructor(s): make_doglxi:...xJ—, the programmer performs the transformation mentally and gives us eqlcadrlxj; DOGI,cadaddr[x], and conslx; cons/z;y/.../, which borders on gibberish. Neither the programmer nor a reader has much chance of remembering what is going on.

An equally serious problem is that this style of programming deeply intertwines conception and implementation. Given that a new representation of "dog-ness" is required, the programmer must search out all areas of program which use the arcane encoding and replace them very carefully.

Essentially there are two solutions to this problem. One solution is to require the programmer to spell out detailed rules for data structuring a la Pascal. Of course there's no reason to suppose that the programmer's ability to remain abstract will survive any better here. Indeed since Pascal really supplies "abstract storage structures" rather than "abstract data structures," along with the requisite verbiage of a typed language, there are reasons to believe that the programming process will suffer in the long run. The alternative is to supply the programmers with an exceptional programming tool and an understanding of abstraction, modularity and the power of their tool. It may be naive to believe that programmers can be self-disciplined, but the alternatives are not at all attractive.

The other LISP articles in this issue explore detailed examples of LISP applications. Throughout these articles a recurrent theme is the delicate balance between realistic abstraction and overspecification. One of the real wonders of LISP is that it allows you to work with ideas.

Traditionally, all LISP implementation problems have been dealt with in software. An exciting alternative is to build LISP machines in hardware, thereby raising the programming floor to a much more acceptable machine level than previously available. Several very healthy projects exist, from re-microcoded machines, through specially constructed hardware, to experiments with very large scale integration LISP devices. For those readers who are interested in more details, several of these efforts will be documented in an issue of the IEEE Transaction on Computers later in 1979. It is clear to me that LISP is only beginning to have an impact upon the computing community. ■

122 August 1979 © BYTE Publications inc Circle 364 On inquiry Card.

-^^ for users ot ^, ^ Uadin Stack's m-""*'

J_l!^^^-^^iS^^=u^ Liieboat Associates, specialistsjn ™ .-.„. ^^gsed language and feSS£%rHS5 TRSDOS. The software is supplied on

H?:;'.'^-.^la^fslndTauated values ^^^^ '"^j,^, ^V^TnSfer fo^ANsVPORTRAN X3.9 ,.,,,3ble modules ^o' TORTRAN ^

t53'J^^S^S»^^^»^^ gSSpllxvana.es). ^°?^^SS;^^c^;S-^-ta,s, etc.

S^°°^'^W^°e?r'—^^'Ss? WWIRO ASSEMBLM ad^g niSKTEKT EDITOR to create and

iKis^SSSsS'^Jail «°« ™'«°^ H50.

^,^.»^»;...Sffi-ffi=e"SSS Sdefwor. and cross SenWofunotlonsalone . SgU

„,h ma.i laDeis M .^„t cvsTEM - F'^a""^! wSm 9948 Broadway ^ Tplex'668-585

,P,RTMENT «ANAG^^^^^^^^^ ^^M ^NewY^^k. N.Y. 10024 Telex.

^^^l£«-nSS^-^-^- -^^^mm ,,^endU;etonow^

rMVE^vSlM - Cap.u^ . ^" ^ □,rone

INVENIU"' ^ turnover. marKup.B'^ type ot ,„ . , ' '

S:«|a?SS;Kisi teoattesoaates ^ ^^

*:i;^2-».»n'«£i*s"s.'- r THE risrssS"..iir

S£««iss-£=2K-:*S r MARKET

9'^ ^ _, ,^ Dacp Processor. Appointments^ Enhanced version lor CBAblo ^ ^^^^^^gggj^K,,,,^

'^^^^^^^^^:^;:^i^^^ 2248 eroadwa. New^^^ork N.Y. 10024

powertu, ex.ens-s^»„^-^^;io'r"^l\sages. .eyboarci de^ 6 ^^^^^gg

cassette tape. ^orkQ nf Tandy Corporation.

• Badio ShacK .ndTRS-80aretrader.arKsotTan y ^^

MINIMAX. THE COMPUTER Th

1;«»'

No microcomputer in the world can match Minimax incredible feature tor incredible feature.

Simply stated, Minimax is the most advanced, least expensive computer ever created.

NEVER BEFORE HAVE THESE FEATURES BEEN AVAILABLE ON A MICROCOMPUTER AT ANY PRICE LET ALONE $4495.

More Memory. Minimax comes in two sizes. Both with 108,544 bytes of semiconductor internal memory.

In addition, the Minimax 1 has an external storage capacity of 800k while the Minimax II features an enormous 2.4 megabytes of on-line disk storage. It's the most memory for the least money.

More Speed. Minimax's speedy 15,000 character per second data transfer rate is substantially faster than any other microcomputer

Split screen combination of character and graphic information.

More Graphic Resolution. Minimaxs screen has the highest resolution graphics of any microcomputer 122,880 (240x512) individual points, each program addressable.

More Screen Capabilities. Minimax offers the most advanced full screen

data entry and editing capabilities of any microcomputer They include word or character insertion or deletion, split screen modes, individual field editing and automatic skip to next field.

More ProgramabUlty. Minimax features exceptionally advanced software development tools. The CPU comes complete with 64 user definable opcodes and ROM resident software. Plus Microsoft BASIC, PLM, DOS operating system, FIFTH language interpreter a machine language monitor with Tiny Assembler Disassembler, Dump Facility and Debugging Aid.

More Applications Software.

Minimax's superior software selection allows you to perform most of the common data manipulation, accounts receivable, accounts payable, general ledger, inventory, payroll and software development functions with

Circle 71 on inquiry card.

AT OUTCOMPUTERS THEM AU.

out expensive or time consuming programming.

YOU GET 2.4 MEGABYTES WITHOUT TAKING A BIG BITE OUT OF YOUR BUDGET.

At S4,495 for the 8001< Miramax I and $5,995 for \he 2.4M IVIinimax II, it is not only incomparable feature tor feature, but dollar for dollar as well.

While these prices do not include a printer, a wide range of character, high speed and word processing printers are available.

High resolution graphics for original design development.

THERE'S MORE INSIDE A SINGLE MINIMAX THAN MOST COMPUTERS TWICE ITS SIZE AND FOUR TIMES ITS PRICE.

Minimax's remarkable sophistication also makes it remarkably versatile for business, scientific or engineering applications.

For business, everything from payroll checks to accounting ledgers can be instantly processed, printed and filed.

Engineers, architects and scientists can use the high resolution graphics as a visual research and planning tool.

Because of its comprehensive software capabilities, software engineers can develop finished programs for other microcomputers or the most sophisticated mainframes.

PEOPLE CALL IT INCREDIBLE. WE CALL IT MINIMAX.

There has never been so much capacity, flexibility and sophistication built into a computer so affordable.

To obtain the complete Minimax story — including ordering informa

Complete business software packages.

lion — please send the reader service card or contact us directly.

The more you know about IVIinimax, the more incredible it becomes.

WHAT MAKES ONE COMPUTER BETTER THAN ANOTHER MAKES MINIMAX THE BEST.

MINIMAX

Developed and IManufactured by COI\/IPU/THINK™ 3260 Alpine Road, IVIenIo 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 desl<-top design. Feels and operates like a typewriter. 128 ASCII character set. Switch selectable 110 and 300 baud rates. 30 cps. Adjustable character widths 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. With 220v 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 (with software) 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 required for 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,12 slot 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

Teclinicsl Fopistn

Permutation Bibliography

Eduardo Kellerman

IBM

Endicott NY 13760

In the article "Solving the Eight Queens Problem" (October 1978 BYTE, page 122) Terry Smith asked readers for information on algorithms for generating permutations. In April 1975, I compiled the following bibliography on the subject (I have not updated it since then). I think some readers may find it useful.

I Generation of Permutations

Mark B Wells, "Generation of Permutations by Transposition," Mathematics of Computation, volume 15, 1961.

Frank Harary, "Permutations with Restricted Position," Matliematics of Computation, volume 16, 1962.

J R Howell, "Generation of Permutations by Addition," Matfiematics of Computation, volume 16, 1962.

Selmer M Johnson, "Generation of Permutations by Adjacent Transposition," l^athematlcs of Computation, volume XVII, number 83, July 1963.

D H Lehmer, "The Machine Tools of Combinatorics" in Applied Combinatorial Mathematics, edited by E F Beckenbach, John Wiley and Sons Inc, New York.

G G Langdon Jr, "An Algorithm for Generating Permutations," Communications of the ACM, volume 10, number 5, May 1967.

M Renaud and S Regnier, "Programme de Permutations," Revue Francaise d' Informatique et de Recherche Operationell, MayJune 1967.

D Pager, "A Number System for the Permutations," Communications of the ACM, volume 1 3, number 3, March 1970.

126 August 1979 © BYTE Publications Inc

E Kellerman, "Method for Generating Permutations," IBM Technical Disclosure Bulletin, volume 13, number 8, January 1971.

E W Stacy, "Exact Evaluation of Determinants Via Permutation Arrays," IBIVI Technical Disclosure Bulletin, volume 18, number 9, February 1976.

Kazuaki Harada, "Generation of Rosary Permutations Expressed in Hamiltonian Circuits," 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 Generation of Rosary Permutations," Communications of the ACM, volume 15, number 8, August 1972.

C T Fike, "A Permutation Generation Method," IBM Technical Report TR73.002, Systems Research institute. New York.

Mohit Kumar Roy, "Reflection-Free Permutations, Rosary Permutations, and Adjacent Transposition Algorithms," Communications of the ACM, volume 16, number 5, May 1973.

R A Davis, "Permutation of Bits in a Bit String," IBM Technical Disclosure Bulletin, volume 16, number 5, October 1973.

E Kellerman and D J Lorch, "Generation of Permutations and an APL Implementation," IBM Technical Disclosure Bulletin, volume 15, number 5, October 1972.

M M Halpern, "Permutations," Proceedings of the Fifth international APL Users Conference, May 15 thru 18 1973 (Canadian Printco Limited).

B M ZIotnik, "An Algorithm of Permutation Enumeration," Avtomatikai Vychislitel'naya Tel^nika, number 2, 62, 1972.

S Even, Algorithmic Combinatorics, Macmillan. New York, 1973, pages 2 thru 11.

C K Wong and D Coppersmith, "The Generation of Permutations in Magnetic Bubble Memories," IBM Technical Report RC5174, IBM Research, December 1974, Yorktown Heights, New York.

B M ZIotnik and V S Kogan, "A Method of Transforming Permutation n!-Codes,"/4i/t^omatika i Telemekhanika, number 1, January 1975, pages 139 thru 142.

F M Ives, "Permutation Enumeration: Four New Permutation Algorithms," Communications of the ACM, volume 19, number 2, February 1976.

Nachum Dershowitz, "A Simplified Loopfree Algorithm for Generating Permutations," BIT 15 ]975, pages 158 thru 164.

Algorithms in the Communications of the ACM: 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 interactive dialog on the tedinology ol personal computing. The subject matter is open-ended, and the intent is to foster discussion and comtnunication among readers of BYTE. We ask that all correspondents supply their full names and addresses to be printed with their commentaries. We also ask that correspondents supply their telephone numbers.

TTL-WT

100 Prime Pieces of the most needed TTL (7400 series) contained in a unitized steel cabinet with 24 transparent doors. All packed and clearly labeled. Ready to use.

You get 20 different types (5 of each) or buy the "Designer TTL Kit", 40 different types (5 of each), 200 pieces of hard to find TTL neatly packaged for your project.

aqaa

(+3.50 shipping)

The TTL Kit

(20 types, 5 each, 100 total) $39.95

(-1-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

Technicsl FopiKn

TI Has Faster Solutions

Marvin A Larson, 345 Birchwood Dr, Moraga CA 94556

Before reading Mr Arp's article, "The Power of the HP-67 Programmable Calculator, Part 2" (April 1979 BYTE, page 176), I was under the impression that the Hewlett-Packard HP-67 and the Texas Instruments TI59 programmable 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 simultaneous equations program can be applied, with minor reprogramming, to the TI59. The resulting program would then be capable of solving 29 simultaneous equations in 29 unknowns, as opposed to 9 equations in 9 unknowns with the HP-67.

The TI59 can use up to 100 data storage registers, compared to 26 registers for the HP-67. It can read/write data from/to magnetic cards in banks of 30 values. Each card can thus contain the 29 coefficients and one constant term for one complete row of the solution array.

The Library Module supplied with the TI59 contains a program for solving simultaneous equations which will solve up to 8 equations with 8 unknowns, as compared to 4 equations with 4 unknowns for the HP-67.

Mr Arp did not tell us how much time is required to solve the set of 9 equations given in his listing 4 (page 186), or the resultant accuracy of the solution. It appears to involve one hundred or more read/write operations from/to magnetic cards, a considerable amount of external manual bookkeeping to keep track of the cards, hand copying of coefficients, and the like. My guess is that solution time is about 90 minutes, provided the wrong card does not slip in. With regards to accuracy, Mr Arp gives his solution results with 6 digit values, but does not state the closure error on back substitution in the original equations.

For comparison, I tried the library program in the

TI59. To reduce the problem to eight equations instead of nine, I deleted cell 9 in figure 1 (page 180). This has the effect of deleting the ninth coefficient of the first eight equations and the entire ninth equation of table 1 (page 180).

This was my first experience with using the TI59 to solve simultaneous equations, so I read the instructions carefully. Then I timed the operation. From the beginning at the start of data entry, to the end after all eight unknowns had been copied down, the procedure took just 13 minutes.

All answers came out as 10 digit numbers. On back substitution all equations closed out with a maximum error of 4.6E —9 and a mean absolute error of 2.2E —9. Most of the functions and operations on Mr Arp's "wish list" are already available on the TI59. He would be well advised to check out the TI59.

Incidentally, Texas Instruments software isn't always quite as good as its hardware. The TI59 has sufficient computing capacity to solve 10 simultaneous equations in 10 unknowns with the program entered from magnetic cards, and 11 equations in 11 unknowns with the program resident in a library module. This is with a full set of equations with non-zero values for all coefficients.

6809 Commentaries,

Continued...

Don't Be So Superficial!

]im Howell, 5472 Playa Del Rey, San ]ose CA 95123

I would like to correct some statements made by David Kemp concerning the 6809 microprocessor in "Compare New Microprocessors Carefully" (Technical Forum, May 1979 BYTE, page 213).

The 6809 has several more 16 bit instructions than those mentioned by Mr Kemp (ADDD, SUBD, and CMPD). The CMPX, CMPY, CMPS, and CMPU instructions compare the X, Y, S, or U register with (up to) 16 bits of data. The ABX instruction adds B (8 bits, unsigned) to X (16 bits) putting the 16 bit result into X.

c

Eiil

c KIM ANALOG INPUT

Analog to Digital Conversion System for the KIM Computer

Give ir<e KIM U>e abilit-u to sense* nieasure* and crontrol tJ-»e uarld around It uiiU-t DAM SYSTEMS iMsdule^. Just f=-lua th*G KIMSETl into the KIM to Set 16 cH-»3nnels or analog input* Sc^ew teominals are Pr-ovided 1*or- eaolt cl~kannel so you can ^looK up Joasticks* pots> or ufTatever aF-propriate sensors ttou )-\3ve*

EacH of tt^te 1& anaioS inputs* in U-*e ranae of 0 to 5.12 volts» is conver ted to a deciiiial nund^er tketueen 0 and 255 ( 20 millivolts per count >• Conversion tin>e is 100 niicrosconds.

Tlie KIMMOD provides one user port as well as a tiAM SYSTEMS port.

Softuare is provided.

1-AIMI81 I-KIMMOD 1-CABLE A24 I-MANM0D1 1-POWl

KIHSET 1

- 16 ANALOG INPUTS-e BITS-TOO MICnOSEC

- 34 INCH INTERCONNECT CABLE

POWEfl MODULE

KIHSETIo for 110 VAC $269 KIMSETl* tor 230 VAC $293

[ 'ss ] [ "i-^" 3

CONNECTICUT microCOMPUTER, Inc.

150 POCQNO ROAD BROOKFIELD, CONNECTICUT 06S04

TEL: (203) 775-9659 TWX: TLX: 7104560052

<>PIB<IE€E-4BSI

128 August 1979 © BYTE Publicahons Inc

Circle 78 on inquiry card.

The major 16 bit arithmetic instruction of the 6809, however, is the Load Effective Address instruction. This instruction is actually four instructions: LEAX, LEAY, LEAS, and LEAU, depending on which register gets the result of the arithmetic. This instruction computes an address in the same way as the indexed addressing mode, but puts the resulting address into a register (X, Y, S, or U). Load Effective Address adds any one of the registers X, Y, S, U, or PC to any of the following: a signed immediate value (5, 8, or 16 bits), the sign-extended A or B register, or the D register (A and B together as a 16 bit register), and puts the result in any of X, Y, S, or U — not necessarily the same as the source register. The PC (program center) can actually be the destination for such a calculation using the branch instruction with the indexed addressing mode. I think Mr Kemp is exaggerating when he states that the user pays "heavily" for the generality of being able to transfer (or exchange) any register with any (like-sized) register. The designers of the 6809 included instructions to transfer and exchange between any pair of the four 8 bit registers A, B, DP (direct page), and CC (condition code), and between any pair of the six 16 bit registers X, Y, S, U, D, and PC. Excluding transfers or exchanges of a register with itself, this gives 42 different transfers and 21 different exchanges. (TFR A,B and TFR B,A are different but EXG A,B and EXG B,A are the same.) Each of these is a 2 byte instruction, the first byte specifying transfer or exchange, and the second byte specifying those registers which are involved. It would have been possible to provide a (small) subset of these transfers and exchanges as 1 byte opcodes at the expense of making some other instructions longer. Transfers and exchanges not provided for in this scheme would take at least two instructions and two bytes (probably three of each for exchange) and would operate more slowly than the 2 byte transfer or exchange. If some transfers and exchanges are allowed and others are not, the assembly language programmer also has to remember which ones these are. Either scheme of register transfers and exchanges would have been possible, but since these instructions are not that common in programs (falling into the "11.3% other" category), I think the designers of the 6809 made the better choice.

I cannot comment much on the 6516 mentioned by Mr Kemp, since my knowledge of that processor is limited to what he wrote in his letter. (Are you sure that's an 8 bit

processor?) The comparison of number of cycles, used in the letter, is valid only if the cycle times of the two processors are the same (or are related in a known ratio). In any event, comparing cycle times of some isolated instructions does not necessarily indicate the relative speeds of the two processors on real programs. The 6516 may have 16 bit AND, OR, and XOR instructions, but how often would these be used? As for Mr Kemp's comment that the 6809 "costs more" (more than other 8 bit processors?) because it uses a larger piece of silicon and has more logic gates than other 8 bit processors, how much will a $20 difference in microprocessor cost make in the final product cost? Besides, doesn't the 6516 "suffer" from this same cost problem?

6809 Commentaries, continued

Richard F Serge, 655 Lewisville-Vienna Road, Lewisville NC 27023

Never, until now, have I been compelled to respond to any magazine article I have read. I refer to David Kemp's commentary "Compare New Processors Carefully" (May 1979 BYTE, page 213).

As a designer of microprocessor systems I have followed the instructions in the title of Mr Kemp's article with great care. In comparing the 6809 with other processors in its performance range, it may take an hour or so of comparing data sheets to get a feel for the typical hardware required, the addressing modes available, the relative execution times, and the number of bytes required for the more common instructions. To stop at this point and decide which is "best" is the equivalent of flipping a coin. At this point several passes through the programming manuals are required, along with a study of any other literature pertaining to the processors in question.

Only after a designer tias a thorough understanding of the processors' instruction set and addressing modes, and how to efficiently utilize these features, can the task of careful 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 power supply, It's ready to start working for you. It has an addressing capability up to 65K bytes, and comes with a user-dedicated IK or 4K RAM.

• Thermal Printer

• Full-Size Alphanumeric Keyboard

• True Alphanumeric Display

• Proven R6500 Microcomputer System Devices

• Built-in Expansion Capability

• TTY and Audio Cassette Interfaces

• ROM Resident Advanced Interactive Monitor

• Advanced Interactive Monitor Commands

PRICE: $375.00,

(IK RAM)

Plus $4.00 UPS (shipped in U.S. must give street address), $10 parcel post to APO's, FPO's, Alaska, Hawaii.Canada, $25 air mail to all other countries

We manufacture a complete line of high quality expansion boards. Use reader service card to be added to our mailing list, or U.S. residents send $1.00 (International send $3.00 U.S.) for airmail delivery of our complete catalog.

ENTERPRISES

INCORPORATED

2967 W. Fairmount Avenue • Phoenix, AZ 85017 • (602) 265-7564

Circle 324 on inquiry cara.

AugusI 1979 © BYTE Publications Inc 129

Circle 211 on inquiry card.

n/iMESMnn"

KEYED FILE MANAGEMENT

Put data at your fingertips.. easily accessed, displayed and updated by key. Designed to meet all of your data management needs. lulAGSAlyl'" allows you to quickly implement soptiisticated keyed file structures ttirough simple CBASIC statements. Standard MAGSAIul'"features include record retrieval Willi random by key. sequential by key. and generic ("wild card") searcfi. and complete compatibility witti all CBASIC file facilities. Each tvlAGSAIvl'" Package includes the lyiAGSAM'" file manager. MAGSAfvIX'" tutorial program, MAGSAMD'" file dump utility. User Guide. Reference Card, and one year update service. Select the version of MAGSA(vl'"that meets your requirements. All versions of fVIAGSAM'" are completely upward compatible and may be upgraded at any time for the price difference.

• MAGSAM III'" — Ivlost advanced version. Ivlultiple Key support (any number of keys), and RecordandKey Deletion with automatic reclamation of disk space $145t

• MAGSAM II'" — Single Key support with full Delete capability S99t

• MAGSAM I'" — Entry level version. Single Key support without Delete capability $75t

• User Guide only - comprehensive tutorial and reference

manual $15

Available for 8" soft sector. Micropolis, and TRS-80 disk formats. Requires CP/M' or derivative and CBASIC. Distributed as CBASIC subroutines in source form.

Visa and Ivlasterchagre welcome. Dealer and OEM inquiries invited.

fVlMB

MICRO APPLICATIONS QROUP

7300 CALDUS AVENUE VAN NUYS. CA 91406

' Trademark of Digital Researcfi t Single site license

and how they could have been implemented on the processors being compared is an excellent way to make a fair comparison (not just one or two projects, but several). The real test is laying out $30 K for a couple of development systems and actually doing it, but....

The procedure which I have outlined is more of a study than a comparison. It takes a long time, and a concentrated effort to be fair right up to the end.

Although I disagree with most of Mr Kemp's article, I take special issue with the light regard he appears to have concerning the multitude of various addressing modes offered by the '09. The difference between having and not having just one of these modes can very easily alter the entire design of a software package, making the execution times of even most instructions seem like trivia compared to what can be saved. Being able to write recursive, position independent code with the '09 should also weigh heavily in any comparison being attempted with the '09.

There is another point I would like to clarify. Mr Kemp states that "many 6809 instructions require 4 bytes to specify." Many readers may have gone away thinking "most," rather than "a few," since no further explanation followed. Motorola says that they chose these 4 byte instructions as some of the lesser used op codes, and I find that these 4 byte instructions occur about once per page of assembly listing (typically 50 lines of code). The vast majority are 2 bytes.

I have been designing with the 6809 (a real part) since mid-March 1979. The reason: it is the most powerful 8 bit MOS microprocessor. And I do not work for Motorola. ■

Tumiiig piograitimeis into composeis!

Buv this book at your favorite computer

bookstore or order direct from BYTE BOOKS.

Add 60<: per book to cover

postage and handling.

For the first time hard-to-obtain computer music has been collected into one convenient, easy-to-read book. The BYTE Book of Computer Music combines the best from past issues of BYTE magazine along with exciting new material.

This fascinating book, edited by Christopher P. Morgan, includes articles discussing four-part melodies, a practical music interface tutorial, electronic organ chips, and a remarkable program that creates random music based on land terrain maps.

$10.00

ISBN 0-931718-11-2

IEI<TEi

70 Main St., Peterborough, NH 03458

130 August 1979 © BYTE Publications Inc

Circle 36 on inquiry card.

€t(^(^t^(yuA4j

mi£j

inouncement I. The first eight Personal ograms®from Aladdin Automation are aiting for you now at your neighborhood imputer retailer or direct from Aladdin.

)w you can get your full share of Aladdin agic in every one of these Personal

0 grams'"*:

^^ ath-Ter-Mind® A delightful, ^^B educational learning experience kT ML, for your pre-school child Watch e smile on your child's face as a correct iswer makes the mathematician smile on the reen before you. A nursery song also serves a reward for learning elementary addition td subtraction. With Aladdin's Math-Terind® your child's pathway to learning will be n-filled . . for both of you. Math-Ter-Mind*. le first release from the Aladdin Education® ;ries (nursery song currently available only

1 Apple 11** program)

Lunar Lander In a controlled descent, you're |ust seconds away from your first landing on the cold, rbidding surface of the moon. As you ivigate your delicate spacecraft downward to e safety of Moonbase, you must be ever atchful of the dangers rising to meet you with ich passing moment: a fuel level fast )proaching zero; deadly meteor showers that )me from any direction, at any time: sheerced rock cliffs and rough terrain; choosing e correct landing pattern and rate of descent, addin's Lunar Lander. Your chance to reach jt and touch the stars . , . without leaving the ifety and comfort of your own chair. The first lease from the Aladdin Simulation® Series.

Craps All eyes in the casino are on you. The dice are in your hands. Lady Luck sits at your shoulder, whispering . . . "Just one more time. Try your luck just one more time." You throw . . and watch the dice tumbling on the screen. With Aladdin's Craps you play against the computer, so it's awfully tough to win. But when you do. it's an experience you're likely never to forget. Craps. An exciting, heartpounding Personal Program^. The first release from the Aladdin Las Vegas® Series.

Mastermind A challenging game of intrigue, centuries old, that will give you full chance to test your powers of logic, deduction and reason. And test them you will, as you try and solve the computer's puzzle, using clues as they're provided one-by-one. You control the degree of difficulty in this classic Personal Program® that offers one simple, yet all-consuming challenge: beat the Mastermind in a direct, one-on-one battle of wits. Aladdin's Mastermind. The first release from the Aladdin Old Favorites® Series.

Tic-Tac-Toe Five different levels of difficulty allow a person of any age or skill to take part in this relaxing, enjoyable game that can act as a learning tool, as well. Level I, for example, is suitable for children and is excellent also for teaching simple mathematics. The computer plays just about perfectly at Level V. Just about, that is, so go ahead and take your best shot. See if you can beat the computer in this traditional favorite of young and old alike. Tic-Tac-Toe Another first release from the Aladdin Old Favorites® Series.

Jungle Island® Shipwrecked in a raging storm at sea, miraculously you survive only to find yourself stranded on a seemingly deserted jungle island. Without food, water or supplies of any kind, you begin to try and find your way to safety. The computer will be your eyes and ears as you explore your jungle island and all the mysteries and dangers that lie in wait for you. Jungle Island® A captivating first release from the Aladdin Adventure® Series.

Stix" Aladdin's Stix® can be played with 2 to 5 piles of sticks and between 1 and 1 9 sticks in each pile. The object: to be the one to pick up the last stick. Sounds simple? Yes. but you're playing against the computer. Take heart, though, because you can control the degree of difficulty in this update of the ancient game of Nim. Stix". Another first release from the Aladdin Old Favorites'" Series.

Super Pro Football® Here's your chance to be more than just an armchair quarterback. With Aladdin's Super Pro Football® you can replay any Super Bowl game, from the first, between Green Bay and Oakland, to last year's classic victory by Pittsburgh over Dallas. For once you can turn back the clock and go for that one big play that made the difference between victory and defeat in pro football's biggest game of all. Super Pro Football®. The first exciting release from the Aladdin Super Pro® Series.

Visit your neighborhood computer retailer or contact Aladdin direct to get your full share of the magic in Announcement I, the first eight Personal Programs® from Aladdin Automation.

ath-Ter-Mind*' Lunar Lander Craps

Mastermind Tic-Tac-Toe Jungle Island** Stix''

Super Pro Football**

Welcome to the All-New World of laddin. And Get Ready to lake Your Own Magic

^^5;^^ A/DDM AS\OMAWON, NC.

^^t^^/AyCow coMPure? corr

3420 Kenyon Street, Sle. 131, San Diego. CA 92110

pyrighi 197B by Aladdin Automation

Design and copy by Campbell Marsh Graphic Communications

Circle 3 on Inquiry card.

BYTE August 1979 131

The Design of an M6800 LISP Interpreter

S Tucker Taft

Harvard University Science Center

1 Oxford St

Cambridge MA 02138

The primary data structure is the Hst.

Anyone exposed to small computer systems has used a language interpreter of some sort, and certainly may have thought about implementing their own interpreter. Unhappily, implementing an interpreter for a complete version of most computer languages is a difficult and time-consuming job, unsuitable for a part-time personal computer enthusiast. The language LISP provides a unique opportunity in this respect. The foundation for a very complete interpreter can be programmed by a single person in several months of part-time effort. As a bonus, the resulting interpreter provides the user with a high level language in which to express algorithms.

The Language

From the user's point of view, the primary data structure in LISP is the list. Every element of a list is either an atom or another list. An atom is a primitive named object, the name being an arbitrary string of characters:

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.

( 0 0 ) is a hst of two elements, both being lists of

zero elements. A list of zero elements, the null list, is

identified with the atom NIL.

The feature of the language LISP which makes it at the same time a uniquely interesting language, and relatively

About the Author

Tucker Taft first programmed a computer in 9th grade. He spent the following summers at various programming jobs until he graduated fromHarvard in 1975 with a degree in chemistry. Since his graduation, Tucker has spent two years as the full-time systems programmer for Harvard's Student Timesharing System, combined with teaching some introductory computer courses at Harvard.

Tucker is now starting a microcomputer software consulting business based on a multilanguage compiler being written in LISP. In what is left of his free time, he is found on a squash or tennis court, in a Cambridge coffee shop, in a bookstore, or in a Chinese restaurant.

easy to implement, is that all program elements are represented using these same kinds of objects: atoms and list. Constants, variables, expressions, conditionals, even function definitions are all represented using only atoms and lists.

A value is associated with each atom, allowing atoms to represent program variables and constants. A symbolic atom, like XYZ, would represent a variable. A numeric 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 -f 5. (SIN (MUL 2 Y)) would represent the expression sin(2y).

Conditionals, loops, and function definitions are also represented by list expressions, as illustrated by this recursive function implementing Euclid's greatest common 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)

)

))

This would be equivalent to the Pascal program:

function gcd(x,y.integerj:integer begin

a x>y then gcd := gcd(x-y, y) else

\i y>X then gcd : = gcd(x, y~x) else

gcd : = x end.

An important difference to note in the above comparison is that no explicit assignment to a function return value is made in LISP, whereas in Pascal one must explicitly say gcd := ... to specify the return value. In Pascal, and most other procedural languages, a distinction is made between program statements and expressions. In such languages some program statement must be

132 August 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 MICROi-AP MICRd-AP MICRO-AP MICRO-AP MICR lP MICRO-AP MICRO-AP MICRO-AP MICRORO-AP MICRO-AP MICRO-AP MICRO-AP MICR O-AP MICRO-AP MICRO-AP MICRO-AP MICROICRO-AP MICRO-AP MICRO-AP MICRO-AP MICR ,CRO-AP MICRO-AP MICRO-AP MICRO-AP MICROP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICR MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICROi-AP MICRO AP MICRO-AP MICRO-AP MICRO-AP MICR MICRO-AP MICRO-AP MICRO-AP MICRO^P MICRO-AP MICRO-AP MICRO-AP MICR MICRO-AP MICRO-AP MICRO-AP MICRO\P MICRO-AP MICRO-AP MICRO-AP MICR MICRO-AP MICRO-AP MICRO-AP MICRO\P MICRO-AP MICRO-AP MICRO-AP MICR

-ap micro-ap m :ro-ap micro-af -ap micro-ap m :ro-ap micro-af -ap micro-ap m

:R0-AP MICRO-AF -AP MICRO-AP M :R0-AP MICRO-AF

)-AP MICRO-AP Ml RO-AP MICRO-AP r >-AP MICRO-AP Ml RO-AP MICRO-AP t >-AP MiCRO-AP Ml RO-AP MICRO-AP t >-AP MICRO-AP Ml ,RO-AP MICRO-AP t

-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP Ml ;R0-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP R -AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP Ml ;R0-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP t

RANDOM, MULTI-KEY RECORD RETRIEVAL under CP/M, CDOS, IMDOS, ADOS

SELECTOR III ALLOWS INSTANT RECALL OF ANY RECORD USING ANY INFORMATION ITEM IN THE RECORD. That statement deserves re-reading, because that ability makes SELECTOR III the most powerful Date Base Management System in microcomputers today!

With SELECTOR III

you can...

• define a record format, assign retrieval keys, and begin entering data in minutes.

• create sorted pointers to records matching your specif or range of requirements.

Circle 213 on inquiry card.

• automatically generate reports with control-break summaries and unlimited variety.

• bring an application online in hours instead of months.

SELECTOR III comes complete with eight application programs that perform the tasks listed at top of page. And, since it's distributed in source code form, you can easily add subroutines to do specific computations or file updates.

SELECTOR III runs under CBASIC Vers. 1 or 2, and is priced at $295. SELECTOR

111-02 is dedicated to Vers. 2 only, runs about twice as fast, and costs $345.

Both systems are available in a variety of OP/M, diskette size and density formats including IBM 8"; North Star; Micropolis; TRS-80; Processor Tech Helios II; Altair; iOOM; 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

(A B C) IS BUILT UP OUT OF THREE DOTTED PAIRS

(J(KLM)N) IS BUILT UP OUT OF SIX DOTTED PAIRS

K

-c

Figure 1: In most LISP systems, lists are built up out of dotted pairs which are two address cells. The left cell points to the first element 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 atom used to signify the end of a chain of dotted pairs.

executed to specify the return value, usually either a return statement or an assignment to the function name. In LISP, and other applicative languages, no such distinction 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 COND used above. COND takes a list of two element lists as argument. It goes down the list of pairs, evaluating the first element of each pair. If the result is true (the atom T), the result of the entire COND is the value of the second element of the pair. If the value of the first element

of the pair is false (the atom NIL), COND proceeds to the next pair. If COND reaches the end of the list, the result of the entire COND is simply NIL. In the above example this would never happen because the first element of the last pair is the atom T (whose value is always guaranteed to be itself, the atom T). This is the normal technique in LISP for using the COND function. The expression:

(DEF GCD (LAMBDA (X Y)...

defines the atom GCD to be a function (or lambda expression) taking two arguments, to be called X and Y in the body of the definition. Notice that no explicit specification of the type of X or Y is provided. In LISP any arbitrary value, atom, or list may be the value associated with an atom. In this sense LISP is a typeless language. In fact the type of a value (ie: whether it is an atom or a list) is always determinable at execution time. Functions must check the types of the values of atoms if only certain types are legal arguments. In the above example the calls on GREATER and SUB would fail if the values associated with X and Y were not numeric atoms.

CARs and CDRs

Thus far we have only shown how to re-express algorithms written in a more conventional language, in the language LISP. The real power of LISP comes from its ability to directly manipulate lists, a data type not normally accessible in other languages. Three primitives, CAR, CDR (pronounced could-er), and CONS are pro

Our MacroFloppy goes twice the distance.

For %95.

Introducing the Micropolis MacroFloppv'":1041 and :1042 disk drive subsystems. For the S-100/8080/Z-80 bus. Packing 100% more capacity into a 5;4-inch floppy disk than anyone else. 143K bytes, to be exact For as little asS695.

The MacroFloppy:1041 comes with the Micropolis Mod I floppy packaged inside a protective enciosure (without power suppiy). And includes an S-100 controller Interconnect cable. Micropolis BASIC User's Manual. A diskette containing Micropolis BASIC, and a compatible DOS with assembler and editor The :1041 is even designed to be used either on your desk top, or to be integrated right into your S-100 chassis.

The MacroFloppv: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, and tested again. For zero start-up pain, and long term reliability. They're also backed up by our famous Micropolis facton/ warranty.

And both systems are priced just right. $595 for the MacroFloppv:1041 and $795 for the MacroFioppy:1042.

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 Micropolis Corporation, 7959 Deering Avenue, Canoga Park, California 91304. Phone (213) 703-1121.

Or better yet, see your local dealer

^^.^c.v^

MICROPOLIS

More bytes in store for you.

134 August 1979 © BYTE Publications Inc

vided for list manipulation. The function CAR takes a list as argument, and returns the first element of the list, which may either be an atom or another list. The function CDR takes a list as argument, and returns the tail of the list, that is, all but the first element of the orginal list, as a new list. The function CONS takes two arguments, a new first element, and the tail of a list, and reconstructs a list, 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 element, and a function called CADR is frequently defined as a kind of shorthand for CAR of the CDR.

You might wonder what would result if you gave two atoms as arguments to CONS, rather than an atom and a list. In most LISP systems this is in fact legal. The result reveals the underlying representation used for lists in LISP. In virtually all LISP systems, lists are built up out of dotted pairs, two-address cells, the left cell pointing to the first element of a list, and the right cell pointing to the rest of the list. This can be diagrammed schematically as in 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 CAR and the right cell the CDR. (In fact the genealogy of the words CAR and CDR runs the other way. Dotted pairs were used in the initial implementation of LISP, and CAR and CDR referred to the address field and the decrement field of a word on the IBM 704.) Now you can perhaps guess that when you pass two atoms as arguments to CONS, you simply get a dotted pair with an atom in both the CAR and CDR. For example:

A

B

would be printed as:

(A.B)

The notation (A . B) is used whenever the CDR of the last dotted pair forming a linked list is a non-NIL atom. In general (D E F . NIL) would be equivalent to (D E F), whereas (D E F . G) could not be expressed without the dot notation.

Given the three primitives CAR, CDR, and CONS, and understanding the underlying representation of lists using dotted pairs, it is possible to write powerful listmanipulating programs in LISP. For example, suppose it is desirable to edit a large data structure, and change all occurrences of the symbol APPLE to ORANGE. In LISP we could easily write a routine called REPLACE which, given the data structure (ie: list structure), the original symbol (the atom APPLE), and the replacement symbol

TM

MetaFloppy

The Micropolis MetaFloppy" gives you more than four times the capacity of anyone else's 5;^-inch floppy Because it uses 77 tracks instead of the usual 35,

The field-proven MetaFloppy with thousands of units delivered, comes in a complete family of models. And, like our MacroFloppv™ family of disk drives, MetaFloppy is designed for the S-100/8080/Z-80 bus.

For maximum capacity, choose our new MetaFloppy: 1054 system. Which actually provides you with more than a million bytes of reliable on-line storage. For less money than you'd believe possible.

The MetaFloppy:1054 comes complete with four drives in dual configuration. A controller Power supply Chassis. Enclosure. All cabling. A new BASIC software package. And a DOS with assembler and editor There's even a builtin Autoload ROM to eliminate tiresome button pushing.

If that's more storage than you need right now, tn/ our MetaFloppy:1053, with 630,000 bytes on-line. Or our MetaFioppv:1043, with 315,000 bytes on-line. Either way you can expand to over a million bytes on-line in easy stages, when you need to. Or want to.

In other words, if your application keeps growing, we've got you covered. With MetaFloppy

The system that goes beyond the floppy

For a descriptive brochure, in the U.S. call or write Micropolis Corporation, 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,

goes beyond

August 1979 © BYTE Publications Inc 135

(the atom ORANGE), would go through the structure and do the replacement, using itself recursively to do the replacement 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 for the possibility that the input data structure is simply an atom (which may or may not be equal to the atom to be replaced). In addition, notice that the entire body of this function definition is a single COND, just as it was in the GCD example given above. This is frequently true in LISP programs. Finally, notice how the function simply passes the buck to recursive calls on itself if the STRUC argument is not an atom, CONSing together the results of the two inner calls. The reader is encouraged to go through an example of the execution of this function when the argument OLD is the atom APPLE, the argument NEW is the atom ORANGE, and the argument STRUC 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 are relatively easy to write in LISP, but very difficult in more conventional languages, include formula manipulation programs which might take in the list representation for a function (eg: (SIN (MUL 2 X)) ), and return the list representation for its derivative according to the rules of the calculus (eg: (MUL 2 (COS (MUL 2 X))) ).

The author's system is being used for the development of a compiler/interpreter system which generates the list representation for a program written in a programming language, and then either interprets it directly, or generates the list of machine language statements to implement 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) in LISP, the same routines used to read and print data objects may be used to read and print programs. Furthermore user functions, like a general list editor, can be used also to edit programs. This uniformity vastly simplifies the task of writing an interpreter for LISP. Only three basic modules need be produced: READ, EVAL, and

PRINT . READ accepts a LISP list expression from the terminal, in full parenthesized notation, and builds the internal representation of the list, sometimes called a forum. EVAL takes a form as its single argument, and evaluates the form according to the LISP convention that the first element of such a list specifies the function, with the rest of the list as arguments.

The result of EVAL is another form. (The term form is sometimes reserved for LISP expressions which are legal input to EVAL. The term S-expression covers all types of lists, whether or not the first element is a legal function name. Within this paper, form will be used to refer to the internal representation of any type of LISP expression.)

PRINT takes a form as its argument, and types it on the terminal in fully parenthesized form. The top level loop of the LISP interpreter simply prompts the user for input ( — > is the LISP prompt), READs in the users input, EVALs the resulting form, and PRINTs the result of EVAL. In a conventional high level language syntax, this would be:

while true do begin

patomC'— > ");

form : = read( ); form : = eval(form); print(form) end.

or in M6800 assembly language:

BIGLUP LDX PRMPAT get prompt atom JSR PATOM print the atom JSR 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 a form is known to be an atom. In an assembly language implementation, it would be very convenient to pass forms in the M6800 index (X) register. This register is 16 bits long, so it requires that forms be only 16 bits. Some representation must be chosen for all LISP objects so that a single 16 bit number may uniquely specify any arbitrary object. Dotted pairs are used to represent lists. Dotted pairs hold two forms, a CAR and a CDR, so they must be 32 bit objects. A natural choice is to allocate 4 consecutive M6800 memory bytes for dotted pairs, and specify dotted pairs by the address of their first byte. This means that any two different dotted pairs will be easily differentiated by the forms that specify them.

This still leaves the problem of deciding on an internal representation for atoms, including symbolic atoms, numeric atoms, and NIL. In the author's LISP system only two items of information are needed for each symbolic atom, the string of characters which are the print name of the atom, and the value currently associated with the atom (which is an arbitrary form). Again a 4 byte representation is chosen, with the first two bytes used as a memory address pointing to the first character of the print name, and the third and fourth bytes used to hold 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* break the28K K

With our Bank-Switchirig family

In LOCAL mode our memory is functionally just like DEC memory. But when you run out of memory space you're not lost. Add an inexpensive Bank-Switch Controller (BSC-256) and you can go to two megabytes. Add another and go to four megabytes. So don't get boxed in with other brands of LSI-11 * memory. Break free. Join the family:

RMA-032

32K by 16 bit RAM. On-board refresh

$1200 (Single qty.)

RMS-016

16K by 16 bit ROM. (Intel 2716)

$300 (Single qty.)

BSC-256

The Bank-Switch

$300

Controller

(Single qty)

Substantial quantity discounts are available. For a free copy of our Bank-Switching manual, call or write on your company letterhead.

Digital Pathways Inc.

4151 fJliddlefield 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!

Ml

CHESS

The Industry's First

Gold Cassette

Over 50,000 Sold

MICROCHESS is the industry's best selling computer game. And no wonder—because MICROCHESS gives you more than just a chessplaying program: A convenient, foolproof set of commands and error checks... complete instructions in a SYz" by 8'/2" booklet... a cassette that's guaranteed to load, with disk versions coming soon ... and several levels of difficulty to challenge you not just once, but time after time. It's available through well over three hundred computer stores and many mail order sources ... always

originating from Personal Software. What's more, every Personal Software product is selected to give you these same benefits of easy availability, reliable cassettes, readable documentation, a carefully thought out user Interface ... and most important, continuing challenge and enjoyment, not just once but time after time. If you haven't already, order your own gold cassette; MICROCHESS, by Peter Jennings, for 8K PETs, 16K APPLES, and 4K Level I and II TRS-BOs $19.95

TIME TREK

A Tour De Force

In Real Time Action

Strategy Games

TIME TREK by Brad Templeton for 8K PETs and Joshua Lavlnsky

for 4K Level I and II TRS-BOs adds a dramatic new dimension to the classic Star Trek type strategy game: REAL TIME ACTION! You'll need fast reflexes as well as sharp wits to win in this constantly changing game. Be prepared—the Klingons will fire at you as you move, and will move themselves at the same time, even from quadrant to quadrant—but with practice you can change course and speed, aim and fire in one smooth motion, as fast as you can press the keys. Steer under power around obstacles—evade enemy

shots as they come towards you—lower your shields just long enough to fire your phasers, betting that you can get them back up in time! With nine levels of difficulty, this challenging game is easy to learn, yet takes most users months of play to master. ADD SOUND EFFECTS with a simple two-wire hookup to any audio amplifier; the TRS-80 also produces sound effects directly through the keyboard case, to accompany spectacular graphics explosions! You won't want to miss this memorable version of a favorite computer game $14.95

BLOCKADE by Ken Anderson for 4K

Level I and II TRS-80s is a real time action game for two players, with high speed graphics in machine language. Each player uses four keys to control the direction of a moving wall. Try to force your opponent into a collision without running into a wall yourself! A strategy game at lower speeds, BLOCKADE turns into a tense game of reflexes and coordination at faster rates. Play on a flat or spherical course at any of ten different speeds. You can hear SOUND EFFECTS through a nearby AM radio—expect some razzing if you lose! 14.95

GRAPHICS PACKAGE by Dan Fylstra for 8K PETs includes programs for the most common 'practical' graphics applications; PLOTTER graphs both functions and data to a resolution of 80 by 50 points, with automatic scaling and labeling of the axes; BARPLOT produces horizontal and vertical, segmented and labeled bar graphs; LETTER displays messages in large block letters, using any alphanumeric or special character on the PET keyboard; and DOODLER can be used to create arbitrary screen patterns and save them on cassette or in a BASIC

ELECTRIC PAINTBRUSH by Ken Anderson for4K Level I and IITRS-BOs: Create dazzling real time graphics displays at speeds far beyond BASIC, by writing 'programs' consisting of simple graphics commands for a machine language interpreter. Commands let you draw lines, turn corners, change white to black, repeat previous steps, or call other programs. The ELECTRIC PAINTBRUSH manual shows you how to create a variety of fascinating artistic patterns including the one pictured. Show your friends some special effects they've never seen on a TV screen! $14.95

program $14.95

WHERE TO GET IT: Look for the PERSONAL SOFTWARETM display rack at your local computer store. If you can't find the product you want, you can order direct with your VISA/Master Charge card by dialing 1 -800-325-6400 toll free (24 hours, 7 days; in Missouri, dial 1-800-342-6600). If you have questions, please call 408-745-7841. Or you can mail your order to the address below.

Personal Software

592 Weddell Drive Sunnyvale, Calif. 94086

TM

138 BYTE Augusl 1979

Circle 302 on inquiry card.

Look for Personal Software™products at the dealer nearest you!

ALABAMA

BYTE SHOP

Hunlsville. At 35805

COMPUTERLAND

HunlSBille, SL 35805

CPU, INC.

Monlgomefy, AL 36104

THE LOGIC STORE

Opelika.AL 36801

ALASKA

ALPHA ELECTRONICS

AnchoraEc AK 99503

ARIZONA

MILLET'S TV S RADIO

Mesa, AZ 85204

PERSONAL COMPUTER PLACE

Mesa. AZ 85202

COMPUTERLAND OF PHOENIX

Phoenix, U 85016

COMPUTER SHOWROOM

Tucson. A2 85710

ARKANSAS

COMPUTERUND

Lillle Rock, AR 72212

DATACOPE

Liltle Rock. AR 72204

CALIFORNIA

JAY-KERN ELECTRONICS

Bakerslield, CA 93305

BYTE SHOP

Bufbanli. CA 91506

SILVER SPUR

Chmo. CA 91710

BYTE SHOP Of SACRAMENTO

Cilrus Heights, CA 95610

COAST COMPUTER CENTER

Cosla Mesa, CA 92627

CAPITOL COMPUTER SYSTEMS

Davis. CA 95616

COMPUTERUND SAN DIEGO EAST

El Caion. CA 92020

COMPUTERUND OF EL CERRITO

El Ccrnio, CA 94530

COMPUTERWARE

Encmilas. CA 92024

BUSINESS ENHANCEMENT

COMPUSERVICE

Escondido, CA 92027

CHANNEL DATA SYSTEMS

Golela. CA 93017

RAINBOW COMPUTING

Granada Hills. CA 91344

JADE COMPUTER PRODUCTS

Hanlhoine. CA 90250

BYTE SHOP Of HAYWARD

Haywan). CA 94541

COMPUTERUND Of HAYWARD

Hayward. CA 94541

COMPUTERUND Of WEST LA

Inglemood. CA 90302

PROFESSIONAL COMPUTER STORE

La Ciescenla. CA 91214

COMPUTER COMPONENTS

Of SOUTH BAY

Lawndale. CA 90260

COMPUTERUND Of SOUTH BAY

Lawndale. CA 90260

A-VIDD ELECTRONICS

Long Beach, CA 90815

COMPUTERLAND

Los Alios, CA 94022

BYTE SHOP

Mounlain View, CA 94040

HOBBY WORLD ELECTRONICS

Northridge, CA 91324

COMPUTERS-MADEEASY

Palmdalc, CA 93550

BYTE SHOP Of PUCENTIA

Placentia, CA 92670

COMPUTER CENTER

Riveiside, CA 92503

CAPITOL COMPUTER SYSTEMS

Sacramenlo. CA 95821

COMPUTERUND

San Bernardino, CA 92404

COMPUTER AGE INC.

San Diego, CA 92111

COMPUTERUND Of SAN DIEGO

San Diego, CA 92111

COMPUTER MERCHANT

San Diego, CA 92115

COMPUTERUND Of

SAN FRANCISCO

San Francisco, CA 94105

VIDEO GAMES & COMPUTERS

San Francisco, CA 94118

VILLAGE ELECTRONICS

San Francisco, CA 94121

COMPUTERUND OF SAN JOSE

San Jose, CA 95129

COMPUTERUND ICenlcal)

San Leandro, CA 94577

BYTE SHOP

San Luis Obispo, CA 93401

MARIN COMPUTER CENTER

San Ralael, 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

Circle 302 on inquiry card.

THE COMPUTER STORE

Santa Monica, CA 90401

SANTA ROSA COMPUTER CENTER

Sania 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

COMPUTERUND

Walnut Creek, CA 94598

BYTE SHOP

Weslminslei, CA 92683

COMPUTER COMPONENTS Of

ORANGE COUNTY

Westmnsler, CA 92683

COLORADO

BYTE SHOP

Boulder, CO 80301

COMPUTERUND

Colorado Springs. CO 80917

AMPTEC

Denver. CO 80216

COMPUTERUND

Denver, CO 80222

BYTE SHOP

Englewood, CO 80110

MICRO WORLD ELECTRONIX

Lakewood, CO 80226

CONNECTICUT

COMPUTERUND OP fAIRflELO

Fairlield, CT 06430

JRV COMPUTER STORE

Hamden, CT 06518

THE COMPUTER STORE

Hartlord. CT 06103

COMPUTER UB

New London, CT 06320

THE COMPUTER STORE

Windsor Locks, CT 06096

WASHINGTON DC.

COMPUTER CABLEVISION

Washington. D.C. 20007

FLORIDA

COMPUTERUND

Boca Raton. FL 33432

THE COMPUTER STORE

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

COMPUTERUND

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 303O5

THE LOGIC STORE

Columbus. GA 31906

COMPUTERLAND Of ATLANTA

Smyrna. GA 30080

HAWAII

COMPUTERUND

Honolulu. HI 96813

MICROCOMPUTER SYSTEMS

Honolulu. HI 96813

RADIO SHACK (Dealer)

Lihue. HI 96766

IDAHO

NORTHWEST COMPUTER CENTER

Boise. ID 83704

ILLINOIS

COMPUTERUND Of

ARLINGTON HEIGHTS

Arlington Heights. IL 03904

FARNSWORTH COMPUTER CENTER

Aurora. IL 60505

KAPPELS COMPUTER STORE

Belleville. IL 62220

DOWCOM

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

Deerheld. IL 60015

COMPUTERUND

Downers Grove. IL 60515

COMPUTER STATION

Granite City. IL 62040

ORCUTT BUSINESS MACHINES

La Salle. IL 61301

ILLINI MICROCOMPUTERS

Naperville, IL 60540

COMPUTERUND OF NILES

Niles. IL 60648

COMPUTERUND

Oak Lawn. IL 60453

BIES SYSTEMS

Oak Park. IL 60302

COMPUTERUND OF PEORIA

Peoria, IL 61614

WALLACE ELECTRONICS

Peoiia, 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

Lalayette, IN 47904

COMPUTER CENTER

So Bend, IN 46637

IOWA

SYNCHRONIZED SYSTEMS

Des Moines. lA 50310

COMPUTER SHOP

Spencer. lA 51301

THE COMPUTER CENTER

Waterloo. lA 50701

KANSAS

THE COMPUTER ROOM

Overland Park. KS 66212

PERSONAL COMPUTER CENTER

Overland Park, KS 66206

COMPUTER SYSTEMS DESIGN

Wichita, KS 67214

KENTUCKY

BARNEY MILLER'S INC

Leiington, KY 40507

LOUISIANA

COMPUTER SHOPPE

Metaire, LA 70002

MARVLAND

COMPUTERUND

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

Charleslown, MA 02129

MAD HAHER SOfTWARE

Dracul, MA 01826

NEW ENGLAND ELECTRONICS

Needham. MA 02194

MICHIGAN

NEWMAN COMPUTER EXCHANGE

Ann Arbor. Ml 48104

NEW DIMENSIONS IN COMPUTING

East Lansing Ml 48823

COMPUTER HOUSE DIV

Jackson. Ml 49202

COMPUTERUND Of

GRAND RAPIDS

Kenlwood. Ml 49508

COMPUTRONIX

Midland. Ml 48640

COMPUTER MART

Cliwson. Ml 48017

TBI CITY COMPUTER MART

Saginaw. Ml 48603

COMPUTERUND

Soulhheld. Ml 48034

LEVEL FOUR PRODUCTIONS

Westland. Ml 48185

MINNESOTA

COMPUTERUND

Bloomington, MN 55431

ZIM COMPUTERS INC.

Brooklyn Center. MN 55429

MINN. MICRO SYSTEMS

Minneapolis. MN 5' 54

MISSISSIPPI

OXfORD SOfTWAR 0.

Oilord. MS 38655

MISSOURI

fORSYTHE COMPUTERS

Clayton. MO 63105

COMPUTER COUNTRY

Florissant. MO 63031

FUTUREWORLD. INC.

St. Louis. MO 63131

GREATEST GRAPHICS

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

Millord, NH 03055

COMPUTERUND Of NASHUA

Nashua. NH 03060

BITS, INC,

Peterborough, NH 03458

NEW JERSEY

COMPUTER UB Of NJ

Budd Lake. NJ 07828

COMPUTER EMPORIUM

Cherry Hill. NJ 08002

COMPUTER MART OF NJ

Iselm. NJ 08830

MSM ELECTRONICS

Medlord. NJ 08055

COMPUTERUND

Morristown. NJ 07960

COMPUTERUND

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

COMPUTERUND

Bullalo, NY 14150

COMPUTERUND

Carle Place, NY 11514

COMPUTER SHOP OF SYRACUSE

De Will, NY 13214

THE COMPUTER TREE

Endwell, NY 13760

COMPUTERWORLD INC

Great Neck, NY 11021

LONG ISLAND COMPUTER

GENERAL STORE

Lynbrook, NY 11563

COMPUTER MICROSYSTEMS

Manhasset, 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

DATEL SYSTEMS

New York, NY 10036

AUTOMATIC SYSTEMS

Poughkeepsie, NY 12603

COMPUTER HOUSE

Rochester. NY 14609

THE COMPUTER STORE

Rochester, NY 14618

HOME COMPUTER CENTER

Rochester. NY 14607

THE COMPUTER CORNER

White Plains. NY 10601

READOUT COMPUTER STORE

Williamsville, NY 14221

NORTH CAROLINA

BYTE SHOP

Charlotte. NC 28212

COMPUTERUND

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

COMPUTERUND Of CLEVELAND

Maylield Heights. OH 44121

RADIO SHACK (Dealer)

St. Clairsville, OH 43950

OKLAHOMA

HIGH TECHNOLOGY

Oklatioma 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

COMPUTERUND Of PORTLAND

Tigart, OR 97223

PENNSYLVANIA

BYTE SHOP

Bryn Mawr, PA 19010

PERSONAL COMPUTER CENTER

frazer. PA 19355

COMPUTER AID

Lalrobe. PA 15650

THE COMPUTER WORKSHOP

Murrysville. PA 15668

A B COMPUTERS

Monlgomeryville. PA 18936

MICROTRONIX

Philadelphia. PA 19106

COMPUTER HOUSE

Pittsburgh. PA 15220

SOUTH CAROLINA

DATA MART

Greenville. SC 29607

TENNESSEE

MICROCOMPUTER STORE

Knoxville, IN 37919

COMPUTER UBS Of MEMPHIS

Memphis. IN 38117

OOC'S COMPUTER SHOP

Nashville. TN 37211

TEXAS

COMPUTER POST

Arhngton. TX 76011

COMPUTERUND Of AUSTIN

Austin. TX 78757

COMPUTERS N THINGS

Austin. TX 78731

MICRO COMPUTER SHOPPE

Corpus Christi. TX 78411

MICROSYSTEMS SERVICES INC.

Corpus Christi. TX 78411

COMPUSHOP

Dallas. TX 75243

COMPUTER IMAGINEERING

Dallas. IX 75234

COMPUTERUND

Dallas. IX 75231

KA ELECTRONICS SALES

Dallas. TX 75247

COMPUTER TERMINAL

El Paso, IX 79901

RAM MICRO SYSTEMS

fort Worth. TX 76116

COMPUIERCRAfT

Houston. TX 77063

COMPUTERUND Of HOUSTON BAY

Houston. IX 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 AnIonio. TX 78229

MICRO MART

San Antonio. TX 78205

WICHITA COMPUTER SYSTEMS

Wichita Falls. TX 76301

UTAH

ADP SYSTEMS

Logan. UI 84321

IRI-POWER ELECTRONICS

Murray. UT 84017

COMPUTER SPECIALISTS

Ogden, UT 84402

COMPUTER CONCEPTS GROUP

Salt Lake City. UT 84109

COMPUTERUND OF SALT LAKE

Salt Lake City, UT 84111

THE HI Fl SHOP

Salt Lake City, UI 84117

VERMONT

COMPUIERMART

Essex Junction, VT 05452

VIRGINIA

COMPUTER HARDWARE STORE

Alexandria, VA 22314

COMPUTERS PLUS

Alexandrra, 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

Sprmglield, VA 22151

COMPUTERUND

Vienna, VA 22180

HOME COMPUTER CENTER

Virginia Beach, VA 23452

WASHINGTON

COMPUTERUND

Bellevue, WA 98007

OMEGA NORTHWEST

Bellevue, WA 98004

COMPUTERUND 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

COMPUTERUND

Tacoma. WA 98499

WISCONSIN

BYTE SHOP OF MILWAUKEE

Greenlield. Wl 53227

COMPUTERUND

Madison. Wl 53711

MADISON COMPUTER STORE

Madison. Wl 53711

COMPUTERUND

Milwaukee, Wl 53222

FOX VALLEY

COMPUTER STORE

Neenha, Wl 54956

WYOMING

COMPUTER CONCEPTS

Cheyenne, WY 82001

AUSTRALIA

ELECTRONIC CONCEPTS PTY, LTD

COMPUTERUND

Sydney, N.S.W.

CANADA

COMPUSHOP

Calgary, Alberta T2N 2A4

THE COMPUTER SHOP

Calgary, Alberta I2T 4T9

ORTHON COMPUTERS

Edmonton, Alberta T5N 3N3

UB MICROSYSTEMS

Edmonton, Alberta T5M 0H9

CONTI ELECTRONICS

Vancouver, BC V5W 2Z4

COMPUTER CITY

Winnepeg Manitoba R3P 0H8

COMPUTERUND

Winnepeg, Manitoba R3G 0M8

INTERACTIVE COMPUTER SYSTEMS

Frederickton, New Brunswick

MINICOMP SYSTEMS

Halilax, Nova Scotia B3K 2G1

KOBEIEK SYSTEMS

Wolh/ille, Nova Scotia BOP 1X0

COMPUTERUND

Burlington, Ontaiio

LYNTRONICS

Downsview, Ontario M2J 2W6

COMPUTER CIRCUITS

London, Ontario N6A 3H2

COMPUMART

Ottawa, Ontario K2A IJ2

COMPUTER INNOVATIONS

Ottawa, Ontario K1B4A8

RICHVALE TELECOMMUNICATIONS

Richmond Hill. Ontario

THE COMPUTER CENTRE

Sarnia. Ontario N7T 1B4

COMPUTER MART

Toronto, Ontario M4G 3B5

THE COMPUTER PLACE

Toronto. Ontario M5V IZl

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 HIJ 1Z4

FUTUR BYTE

Montreal, Quebec H3B 3C9

CUSTOM COMPUTING SERVICES

Saskatoon. Saskatchewan S7K 285

DIGITAL SERVICE

Saskatoon. Saskatchewan S7J 3A9

PUERTO RICO

MICROCOMPUTER STORE

RioPiedras. PR 00921

BYTE August 1979

139

Text continued from page 136

this 4 byte object can specify the atom uniquely from all other atoms and from all other dotted pairs.

Unfortunately this does not provide a simple way of distinguishing atoms from dotted pairs, when just given the form. Several solutions to this problem are possible. One is to restrict dotted pairs to a certain part of memory, then the address would determine whether the form specified an atom or a dotted pair. A second method is to add an additional byte to both dotted pairs and atoms which simply contains a type specifier, say 1 for dotted pairs and 2 for atoms. This method makes future expansion of types simple, but is somewhat wasteful in terms of space. The third method, the one chosen for the author's system, is to align all dotted pairs and atoms on 4 byte boundaries, that is, with addresses which are a multiple of four. This means that the low order two bits of the address are expected to always be zero, and hence may be used to encode type information. In the author's system, dotted pairs are specified by forms with both bits zero, and symbolic atoms by 01 in the lower two bits. One of the bits is still unused, but will become very handy when garbage collection methods are discussed below.

With numeric atoms, their name determines their value, and hence only their name (or their value) need be specified by a form. On the author's M6800 system only hexadecimal memory addresses 0000 thru 7FFF were accessible for storage of dotted pairs and atoms, meaning that the high order bit of forms specifying either of these was always zero. A representation for numeric atoms was chosen to be a form with the high order bit set, 14 bits of numeric value, and one bit left for garbage collection.

A special representation for the NIL atom is used both because the value of NIL is, like numeric atoms, required always to be the atom itself, and because it is used universally to represent the end of a list. The form chosen to specify NIL is simply the value zero. In fact any form with the high order byte zero is treated like NIL to simplify the test for NIL in certain cases. This means that the 256 byte page starting at zero is not usable for storing atoms or dotted pairs, but this restriction causes no problem at all, since both are allocated starting at the highest address available, and the allocator runs into program long before it reaches page zero.

When writing a LISP interpreter, the implementor must decide relatively early on how forms will specify all types of LISP objects. Unfortunately, it may not be until well into the implementation that the implementor discovers that certain choices were inefficient or inconvenient.

One important requirement affecting this decision not yet mentioned is the need to implement the LISP EQ function. This function takes two arbitrary forms, and returns the atom T or the atom NIL depending on whether the forms specify the same dotted pair, or whether the forms specify the same atom. Whenever an atom is input by READ, it must return the form specifying that atom to the caller. Whenever the same symbolic atom name is typed, READ must return the same form, ie: a pointer to the same 4 byte cell. This is accomplished by retaining a linked list of all defined symbolic atoms (called the OBLIST).

Before allocating a new 4 byte eel] for an atom, READ scans the OBLIST for an atom of the given print name. If found, READ returns a form specifying that pre-exisiting atom. (Otherwise it must copy the name into some area used for storing names, allocate a 4 byte cell, initiahze the left cell to point to the name, and the right cell to NIL, and return a form specifying the new atom.) This method guarantees that two forms specify the same symbolic atom if and only if they have the same address.

In some implementations of numeric atoms, this same rule cannot be guaranteed. In such systems, numeric atoms are simply allocated an appropriately large cell to store their numeric value (and hence allowing numeric atoms greater than 14 bits), a new cell being allocated every time a new number is generated (which happens at every ADD, MUL, etc). In these systems it would be impractical to scan a list like the OBLIST every time any arithmetic calculation is done, and so the LISP function EQ may not rely on the rule that unequal forms indicate unequal atoms. In such systems, EQ must look at the contents of the cell specified by a numeric atom form, and make the comparison that way. In systems like the author's, EQ simply compares the forms themselves, no matter what type of atom the form may specify.

The choices made in representing the various types of LISP objects can be summarized in the high level language (Pascal-like) data structure specification in listing 1.

type lisptype =

(dtprlype, symatmtype, numatmtype, nilatmtype): dtprrecord

car: form; cdr: form end; symatm = record

name: \ array [0..n] o\ char; value: form end; form =

packed record gcbit: boolean; case objlype: lisptype of

dtprlype: (dtprform: I dtpr);

symatmtype: (symatmform: \ symatm); numatmtype: (numatmform: - 5000..4999); niiatmtype: ()

end.

Listing 1: A Pascal data structure specification that could be used to represent various types of LISP objects.

READ Function

READ is the basic input routine for the LISP interpreter. READ accepts a fully parenthesized expression from the terminal, and builds up the internal representation, allocating new dotted pairs and atoms as necessary. If the expression is a list, READ returns a form specifying the first dotted pair of the constructed list. If the expression typed in is simply an atom, READ returns a form specifying the atom.

The logic of the READ routine is straightforward because the syntax of LISP expressions is so simple. READ calls a function RATOM to return the next input atom. RATOM actually does the work of allocating new 4 byte cells for symbolic atoms (when necessary) as ex

140 Augusl 1979 © BYTE Publications Inc

NTE^TEC DATA SVaaVIS

;■'■".■■.'•■:■■] J J i I

The Honor Graduate

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

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

'Quantity one. Dealer inquiries invited. Circle 180 on inquiry card.

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

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

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

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

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

J

sinte^tec Cdata

£ SYSTEMS.

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

BYTE August 197° 141

Circle 352 on inquiry card.

"Programming." Whether in Arabic or English, can sometimes be as confusing as learning a foreign language.

With this in mind, Structured Analysis Systems developed SP80, an innovative concept providing structured programming capabilities within assembly language.

Designed specifically for the 8080/Z80 systems, SP80 can be used with most macro assemblers; TDL, Cromemco Z80, Microsoft, or Digital Research.

Statements include:

• Iteration; LOOP-EXITIF, REPEAT-UNTIL, 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 code generation

SPSO's manua includes; functiona 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 $5 overseas 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-ll tor the LSl-11 and PDP-11. Laminated SP80 reference cards available at $5 each.

plained above. RATOM returns a form specifying the atom typed. If this atom is anything but the atom "(" READ simply returns the atom as its result. If the atom returned by RATOM is "(", READ calls itself recursively until it gets the atom ")", meanwhile stringing the forms returned together as the CARs on a linked list of dotted pairs. This could be written as in listing 2.

In the LISP functions we are assuming that the atoms LPAREN and RPAREN were initialized to point to the atoms with print names "(" and ")" respectively. Notice that in the LISP version, READ accomplishes the loop ot the machine code version with recursion in READL. The routines LSTINI, LSTADD, and LSTEND used in the assembly language version build up a linked list of dotted pairs, using two pointers on a stack, one to the first dotted pair, one to the dotted pair at the current end of the linked list. The pointers are on a stack so that READ may call itself recursively. The stack is actually a linked list itself. The linked-list stack is manipulated with the routines in listing 3. With these routines it is straightforward to implement LSTINI, LSTADD, and LSTEND for use in READ. These routines are shown in listing 4.

The primitive function RATOM turns out to be the real workhorse of READ. It is stuck with the job of accepting characters one at a time from the terminal, and building them up into an atom. RATOM must distinguish symbolic atoms from numeric atoms, and build up the corresponding forms. Atoms are in general separated by spaces, tabs, or carriage returns. However a few special characters always form single-character atoms

Text continued on page 145

PTDOS + CBSort = FAST!, FAST!, FAST!

CBSort IS NOW AVAILABLE FOR PTDOS® — HELIOS® SYSTEMS

SPEED AND COMPATABILITY CBSort is fully compatible with the incredible power of PTDOS. CBSort, written in 8080 Assembler, coupled with the power of PTDOS buffering produces lightning speed sorts.

FLEXIBLE YET EFFICIENT CBSort can sort any file with a fixed record length of up to 4095 bytes. CBSort sorts up to 5 fields of any length, up to the length of the record. Each field can start on any byte of the record and each field can be ordered in ascending or descending sequence. The file can be fully described in the calling parameters or based on the TYPE parameter standard defaults for that type can be assumed. CBSort is a logical byte sort so that any bit convention, ASCII, EBCDIC, BCD, Packed Decimal or binary can be sorted in ascending or descending order.

EASE OF INTERFACING CBSort works well either as a stand alone sort or with production and turnkey systems. Special linking programs are included with CBSort to allow insertion into a stream of programs. CBSort is compatible with Extended Disk Basic, FOR

TRAN, Pascal or any other language available on the HELIOS system.

PRACTICAL CBSort can really sort a full disk because it does not require extra space on your disks for merge and work files as other sorts do. CBSort sorts files so you do not have to contend with the overhead of memory consuming indexed tags in order to get sequential data. CBSort is practical for the micros and not a transplant from the gluttonous dinosaurs.

EXTRACTION CBSort has the ability to extract from the main file and create a sorted secondary file that contains only the selected fields and a pointer to the main file. This can be extremely useful when using a binary search technique for field verification, for quick file summarization or further field extraction.

EASY TO USE The User's Manual describes in detail the features and operation of CBSort and contains many examples of its use. CBSort does extensive error checking 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

(cbslComputer Bookkeepine Services, Inc.

Micro Division * ' ^^

1446 Leimert Blvd. • Oakland, CA 94619 • (415) 531-7427

142 August 1979 © BYTE Publications Inc

Circle 49 on inquiry card.

.*;

_v

sz

"S

o

CD

4-)

e

e

c

fO

o

-*J

rj

«

-S

■H

■H

T?

(«

0;

"H

1

C

•5

TT

T,

E

01

C

<«

^

TO

CJ

z:

c=

T?

■H

V

(

^

r-H

CL

[/)

ct

i^

,__,

,„-^

vj

a

TO

CXH

o

>.

C//

JD

,—(

Ul

c:

TD

c=

(U

-w

O

a;

E^

>.

>

.^

jj

O

W

-.-'

■«

c ■2

u

c

5

o

^ s

•H nj to -H

l_ CL (U O

(c o a.

Q. 4-> -»J CO

« to

^

X.

i

cS

to

t^ 1

>

C-1

tjj

Ul

0

<a;

-'i

4J

^

•J

^

c;

c:

i-i

_c

lU

L>

ti:

01

(■- X

C

a'

0/

0

en

-u

<J

CJ

C

f"

Q.

tTi ,-

I*

i_

t^

*—

o

c

O

1

o;

I

to

V,

k.

4->

L

u

1)

3

0 ^

3

r.

H-,

sz

c

u

UJ

=)

1

t»

tt^

d:

0

D

,—■

x:

r-! CU

f?

jj

J51:

o

4-J

ni

x:

C\j

CL' s:

4~>

•

X

0

OJ

Cl

x:

jj

4->

o;

QJ

0

CL

0)

0

d;

■2

4_>

x:

SZ JJ

Oj

1

rr

,—I

x:

t.i

jj

0

Cb

jn

OJ

"O

j_

rc

<;:

(«

(U

c:

x^

-->

i_

•r^

GJ

4->

1

^

0

jj

^

c- a

1

4->

tJ

0

4->

c

ro

c

0)

n

-C

D.

(U

a.

c

j-J

4->

l«

c;; x:

X

■r.

to

,,-^

•t^

fC

■fH

Q

OJ V

TT

li—I

4->

D

^

0,

sz

■^

Ti

OJ

4->

c:

J^ e

a

"J

o

cl:

jJ o

C;

0

4-)

J-)

C

£7

4-1

t:

0;

C-.

0 i_

c

K

3

o

.-<

=t

O

rj jj

ra

■D :■::

Ol

_v

e

fO

,—1

n;

0

c

n:

e

i_ ^

n;

0

ro 3

r~\

»—1

u

t: to

OJ

>

u

+J

•rH

T?

Q

•>-< i::

C

4-> 4J

(L

r-H

• >H

■w

a o

41 0

to

0

rx

0;

■r-l

t«

0

Q.

tr ■'-H

n.

to <u

>

re

C-.

«—

3 U

jj iJ

V)

n.

t:

3

•—

ti

"^

Q.

^

I—

ex.—'

r—

0

L.

^

+

X

0

X +

X

>;

tr

X +

+

X

4-1

c

a.

01

—1

c=

cc

cn

T- Cr:

en

UJ

p=

-c::

.—

>

a

cc

a

-Cl

, )

X) D=

cc

..

0 Q=

j::

UJ

H

X

("

t^x

CJl

t

Ul

X H

— t-

X

X

+

E

X H

■- (—

UJ

a.' E—

X

E

1- X

4-)

E

X

J.)

u

CL

*.

D

+ CU ►

JO Ou

Q

cc

-Q

+ c_

..

+

D_

.

Ci_

+

1

a.

-Cu

+ CU

u

4J o

Cl,

+

ro

4-> G

r.

t

i^

a:

1-^

IX

i^ en:

0

^

u:

u.

CX Ul

r; UJ

cc

en

".

f:;

T

cc:

X

;_

c:: i^

cr U

Ul

4J UJ

cc

UJ

cc cc

■rH txT

CC

o

n

UJ

E

Ci

t- d h =c

C fU E

CC

C"i

Cl fr

f.J cc

0

Cl

f

■< t- -a:

(-•

C3 t-.

Cl t- Ct

0 or:

c

cc

Cl <r.

0

H

<c

o

(U u

C

CJ

CO u c/; o

,r:

X

u.

(. 1 U.

0 u.

(.'

t-J

X

tj

X

u

Cu

0 7

0 L.

u c/;) u

-0 L

C_J

u.

0 U

3

OJ c/";

0

00

>

r; 4-j

c

.—I

>

^

fD

<c

eC

<

<

«: 't:

ci; er

"-C

•^J"

=1:

4->

<r <^

*= <

r3 -r

<r.

<r

»j;

(Q

rc

s

I/:

cc

,

<

et

■<

X X

o;

0> J-)

X

X

o

<r. <C

«— ej'

cc

:x

rT

<=:

*-r

«i

V"j

X

•j: <^

cC «<

13:

•^

C-*

■^ X

CO

>

C. X

X CO

■<

o

G H

C: i-

E- Q E

jJ c

E

Q

UJ

0 E

Cl E-'

—1

_1

Cl

E"

.• 1

t-

H

OJ

CJ

0 E

a E-

on

D.C1

t

ci E- Cj

E

,-< Cl

Q t^

X

C"l

LT

. 1

CT;

t-"j —i

(X.

lU CT

cO

„j

Cl

^ t.:j

.—1 t ;

LJ

tJ

. 1

C-)

. ,

t)

cr:

,_

, ,

_l 0,

—1 CO

c:,

3 ^

00

-t (/) _j

q;

C

J

—1 cc

r^

"

0

0

J

4-1

.s

CO

0 -0

1

4J

OJ ^

3

ro

X

.-■ C

UJ

to

W Ul

4-)

J3

D

—

rH ™

LJ

0.

X

i_ 0

0)

^-'X

■*

'-T

03

t

1

D,

(mUI

k

a.

O O f^ --< O- O TJ

4-1 4-3 O ■»

(13 ft 4-> TD O f

fU O) 4-1

+J = J:^: =

3 w Q; c >>'

CXr ^ --H r-- r

■a -u OJ -a

4-> (0

■^ SI

O 4->

a.

rj c

4-> i

tio ct;

Cl

<:

c c: c to (L

> 4-1 r4 3 o

4-1 x; cr 4-1

crCL-^-^: CTt: oc o

D. QJ F C I4-. OJ •'-I I—I •'-' "—<

0

^^

,_,

UJ

^

0

CK

s 5

^-^

<r

<=

.-.

u

CL

Cl

Cl

0

en

Cl

CQ

^

;■

>:

-^

eC

«=:

<:

<r

c

"T

CC

a

d

'^

^

0

Ul

<t

-^

S

CC

cr

E

—1

c;

LU

CJ

Cl

■^^

a c

?^

<c

^

<c

r'

<c rr

ru

UJ

Ul

0

UJ 0

^

lC

cc

or.

tj

cr 0

►-J

U,

U

U.

Ul

(lJ

UJ

fN

£3

.^

a

^-,

Q

tX)

w

^

^.

^

Q-th

- to ,-H to

O Oj CC to OJ

cc .-H o •"

(T CD X) ;_

x: 3

Q. 4J jJ 4J

o to a.'

1' 1- V

N -H

■H <»-. T3

i-H C

ta 0) (u c: x:

E- i-i E- s: cij CJ

OCCUJ»-hCC.C!< ^lUJ

t—<:cnE— ^^-^l—jE-- .—it-'

< Q, O t ■) UJ C- C-1 to Cl CO

tc-jcc—ic^cccr—i £C_j

cc X UJ fc Cl. >: CJ- ci;

CO CL. 2: CO CO C_ UJ CT

-3 C.J en -3 a. tj Cl -3

: cc

,

q:

t—\

Cl

7Z

C-l

Q)

d)

r

,c

4-1

4-1

•i-H C„

4-1 4-1

0

C -r-l

.

CL_j

■H

Cl

I-H

0 -c

o

m 2:

CLtO

«T

3

h

c ro

n: c

U)

Cli

x:

-J

j= .:*:

J^ 4J

t« ^ 10

to

Q.

XI -DO

c o ro 3

4-1 O) t

• c r:

QJ (U cc Cj

4-1 c Q. O

c: I

■rH cQ -a (O •

o <u to

Q. ID 4-J CL

C 4J k

4.1 CO O T?

■rH - CD

nH rV) ro

Oj iu O k. .U >

Qj (ij

no to

Js: ^c cc

CJ X E-- X

CD CT] O X Cu X

+J cc CO ^ CO

to .^ UJ ID h-« ZZ3

CJ M CL. CO Q

cr (c x: 4-1

4J tOXCCXXXQ

Q CO Q UJ UJ ?:

Cl4-i-j'-o—iQC; -^ 3 to

t

ci

CO

01 -.„i en k- WUl (— I OJ CJ Cl, X t, h- _j I UJ UJ

c X to u

(D -rH Q,

1_ ^ t- 3

+ X X

t-. X (_ .- f— X >

xcL -Q.+au - + o-^jo: -jccitrcccc

oujtiujcih-.a;'^

E- CJ t_J CJ O CO C_) CJ

to ec < CD en eC CJ

E cD::Xci:.rr:=i:<<cx<£.<c/:) V- CJ CO E- CO Cl H Q E- c:i E- f-- EO XI "^ CO -3 _j C/1 ^ t/3 ^ CJ to QC

a- ^

01 ■♦-»

Ts .i:

o a. .2 ^

~ "S a o

a S

3 °

tTl "« -J *.

g^ Q S

hi C

(n o

k-j ,

s =

g «^

>-j c ~

00 cy c

■S -S^

•*-!.= _

.20^

-J EL'S

10

01

x;

c

4-1

10

4-1 to

■.-I

0

I-H

l-t

D"; cu x: ■■-' 1

^ jJ Cl t-H

CJ to o o

4-1 t.

CJ -rH a Cl

OJ OJ X X

4-1 D- Q.

4.1 ceo

(0 -rH ex. C

0= CU

c c: CO :?:

C, l„ -3 —J

O 3

4J n

Q. CU ;^

O C UJ CL H

CO

* * ^

August 1979 © BYTE Publications Inc 143

OZ. .^

|^f O V, 3 c:

i- ^ jr. 0} <i'

I tu o V- c

4-J o

k, c a; to

4-> JJ

--C

L

•>

c rt

a.'

" 0

a;

■■H i_

a^

a o

£1

'^. .^

o ^

o a'

o

O.^

c; (z

>i m

c

Ci- a. cc rr: tc

V ;v X a, a, >%■ a.

h- !-- -^" :r -;-,

>^ X c; o u ■- tj

o

3

Q.

o

o

O E

c:

■o

jj

t^

1*;

4->

10

I

to OJ

M

(V hO

N O

0) cc C -»-> H

DEO

GJ O C/i 1_ t^

4-3

- O OJ Q. > 10

(u ro <u

p [„ X H =3 E- f

o ci_ - <c ii.'. O ?i c- a- ?:

4JE-CE:^[-cctr:>:tjQ=

ra 01 <r i-i u.i uj o •< a. o _jU2:ct:rN;U-."cO U,

Q) 4_)

i

I- tH

1- o

.«

■ r^ t—

r- en

x;

ro

a« 1—<

CU l-H

D-t^

-r- -J

0) ^

o

■■0 iCi

nH a (U ^

a» Ce:

r

(-.

■no

o

k, Ll_

<

3 ■"*

ai

tJ

0 n,

+J D ^

O 4-3 -r^ 4J '/!

-P cc UJ CD UJ

I en >* cri -^ uj

t-« -■'-«•+- cc

_j 11=: -_j ce I—

tf, i=. gc, Q <r

en c_i CD (o iZr:

•zz

^

it;

V

o

tlJ

r

t^-i

O C3

i_ t:: c^ r.

; o --^ (i: •

(/) 4-) ■<-< 4-1 •

(.-.

3 ■.-< OJ o k- w

4-i O

4J JD JJ W J

OJ 3 O ->-< '

to to c: ^ 1

1 k, c

» o

' O I

::z z z:: O ?: X o 1^ o X CJi CO cc

-- <r: c^ «£ -<; <rv cj

X) (.-1 tt" O QJ

3- 0) I

-4J X

r-1 >,

(M ■■->

O C —I - 3 D I

GJ

■iJ O C 3

X) t/1

+ K OS

oo

U.1JU

Xis O-LUh-U'n.uJf— 0-X>s;XXXX.a;C':) e-" t-1 >: ;^ t-) LiJ ;■; :: o") ui x^ :t H cj i^ :;- cc Hc"j ^ o rr: H- CJ tj to t— r-j i-H (-. c/: ,^ i-« t-- en CK

OJ —I _i U Cj —I C') ^ O _i C:^

(U X c= X X ci: Q o =z: !~ en

Q

*r <r <r *x -I i=f !— & h- cc

CI cc

3 :c

r^ ci: •=:: cc e= DT cc cc

03 OJ Xcr:CQH'CLf-'f— Ujrccca::^^!^,^^;,-"..

• "^ •; o c) ^ i::i E-- c:) o c.) c o t-- CI ^ f- ui H

[0 o Ci 3 ^ ^„ ^ V ,

c —J -J c J a u c-i [ ■

<C X O CO O C/)

J C/") c^ ct: •=: fc cc c/^.

I U C; C; CC

3

"a

C 0)

: 0) p : a (C

! JJ E 11 n: t^ nj

C' O -J

tn w 0/ X

>, rH O •

l-J O rj

O i^

.-:; Q- > 0?

'.0 r:

- 3 t/i

d'c: cc

u O. Cu ;

I u r^ I

X a, .cc I

t,. :.- I

■ CM «r < ti

! <':■ '.Z b-l Ui . ^ O cr: r.-.

o

_

K

i_ <r <c

■=c

O X X -,-: Q- E- ur. <^

t^ :.j E- • Cj r; O (.■ ,• cu:

^ w

^ c; _i t„) cu rr d.

c

3 n.

' i.; r^ .

■ c cr 3 L-J

D s: TO I—> n. h3 X

3 CO

0; c- p tn

c: k. o ■'-J

o TO 4J x: •

c^' "u jc fo jj ri.

i_ o o

o .-^ -Tj >, o

jj .-I .-< c a.w

a; ni ra Cj o

cu - y - c

CL W QJ to - Ct

OJ c:: CI. a, o

it'; >. (0 >, £L

O U t,J 1^- o o tJ r^ u O o c^

(L o- tj —J "a; "^ cC r\j "^ c:j cft c, ^

O Cl- CJ IJ LJ LU *-J O CL u tj tJ

(*- O t', rr; cc c; Ci =fc CO CT; o o cc

e: cc cc uj cr: .r.-: c:; CL UJ ti qj n-. <r.

m c: :^ L.> c c-3 ;:_ _j c/i lu Cj cc 4J cf^ tr: CO t.; L! en u r.j en lO r.i en

a Q. in tn

c 4-> r^: Q)

cc cxx: x:

E o J-)

W_ 4_J 4J <1/

a: c:

4-J Qj <1>

OJ c; i- u

F ■--< O O

ftp a,

CJ LJ X

I c-j c

a

E

x:

cy

o

cc

e

O

n.

C/J

F ■•-'

x:

4-)

P

EJ CC

■r-l

4-'

t.

1—(

4'

Cj

iJ

H

4J

CT

a.

O V.

c

to D

to

a

CO

c„ O

r;

3

t^

- ;r

■,-H

jJ

c;)

o

Q,

t^

4-*

C]J

F «:

X

X

F

CJ

c

t

o ^

Q,

OJ

+j

z:

-^ H

4-)

o

4^

1

C

<u

CO

c

V- CO

L

OJ

--: 4-)

C;

w

o

a. HH

jO

4J

n?

o

to

Ci

E -»

r;

OJ

Ci

4J

jj

x:

<

3 c:

a4J

x:

x: 4J

-r-l

4J

(J

c c:

to

4-) nj

c

c

JD

o

•i-t

o

3

k,

x:

k

1

■r-l

c;

\~

C 0

4J

F

Cj

O 4J

3

rv)

i_

-i->

a.

k- x:

E x:

4J

4J

o

c^

OJ

a

F

3 4->

cc

O

k.

OJ

hfl

c x:

c

c

3

Jj

H

J-)

4~)

O

U 4J

l

O 4J

3

■r-i

c:

a- a

ex.

w

cz

1

CI -rH

•.

u —1

E

F

k, c:3

H

•rH

3

*J 3

>.

,—(

nj 3

CJ

c-j

jj

O

c

Jj

Q.

t«

0;

■I-'

o in

—1

X

•H 0;

-iH

3

C

—t

+J

t.n

(^

<L'

0 1

c:j

-n:

f.

n

C

Q. (V

TJ

QJ

i- D

.:i:

,—'

c>

- dJ

c

c

a.

C

4->

u

i—f

o

a a

•1-1

jJ

c

4-> F

3

JJ

1 q;

C'

3

s:

0; '■i

CO

£:

U,

,-■

OJ o

O

O

O i

^

C

o

>i t.

3

Q)

bj

o

a; CJ

c^^

c

cT

I X

<:;

X

X

rn

IX O Cl, CO

CU ^

E

H

h

t^ :?. LU :- F'

SZ —J

V,

y—i

Ui

tr

.n-( t_! r;-] o CC

fj

'i

>^

o rr

ac3

C C_) >H

'-, >

O CU

O CJ C_)

^J

Cu CU

W CJ

* 0") C'^

>, 0; <-• E

dJ-*

SZ

s: f:

o

ai

4-) 3

rj

3

?-■' c

4->

Qj

1- 4-»

-U

1 rc

X

f.fiX

c

CJ 4J

c

k- Oj c;

1 > rH

JJ

c;.. > t- cc r-: m r: cc

o > :3 Cj F- H X X cr: H [ ■

>- u r; t J cu <f; - - t'. cc o.

cu r; £ • —J t- -■: Cii d: LU c; H

o i-: Cii en c/^ u) cc cc r: ^ ci

O C ) L-:: CJ) ^ IT u U u Cj ^

: cr. D- i_i X X CJf X X x cc o x

J L, (.n <~.i c^ F- u 1 CJ uj ci i: lu c-j ) m -3 ■» ^ CJ C- ^ o ^ en t.:i ^

f^ «■.-:

Cl. CtJ

.-r:

7.

X X

CD u

-'

H

^

.. ..

CJ c:

to cr

1

X

0 •

-iJ

X

«^ C3

to 4J

X

X

a I'

Ci

to

f—

CJ

CJ CJ

—' '"^

Ci, to

r.

c .

'—'

-J -J

C--r-1

J2

^.;

F Xi

'■i

<rr

O 1

rH

7

1

C> r-o

CJ

Cu

)iC ^

*

O

C.J

144 August 1979 © BYTE Publications Inc

(a) (DEF PRIMT CLA^IBDA (F)

(PROGiJ

(PRINR F) CPATCM \'E',VLINE)

))

)

(DEF PRINR (LAMBDA (F) (COtlD

((ATOM F) (PATOH F)) (T (PRCGM

(PATOH LPARFt:) (PRIMR (CAR F)) (PRINL (CCR F))

))

))

(PATCM RPAREN)

(L)

(DEF PRIML (LAMBDA (CCtJr

((DTPR L) (PRCG!; (PATCM SPACE) (PRIHR (CAR L)) (PRINL (CDR D) ))

))

)

(b) * type out

PRIIIT JSR BSR LDX BSR JMP

• type out £

* clobbers

a form, fuljy parenthesized, and then go to a new line.

PRItlR

PRIN'L

PRPAR

JSR PCC JSR LDX BSR JSR LDX

:;sR

JSR LDX JSR 3CS JSR LDX BSR BRA LDX BRA

PUSIIX PRINR CRLFAT PA TOM POPX

forin , with X-re?,

isA TOM

PA TOM

PUSHX

LPAFAT

PATOM

TOPX

CAR, X

PRI':R

POPX

CLR, X

isdtpr

PRPAR

PUSliX

SPACAT

PATOM

PRItJL

RPARAT

PATCM

save X-reg or. stack

simply pass the buck to recursive PRItJR

type out CR/LF

usins PATOM restore X-reg and return.

no CR/LF

is the form an atom? yes, pass the buck to PATOM nope, stack the X-reg type out a "("

restore the X-reg type out the CAR

(recur sively!) restore pointer to the advance to next dotted

is there a next dotted pair? nope, JO type a ")"

dotted pair

pair in 1 inked 1ist

yep, type

and

type

and

save the out a space

w X-re^ again

loop around .

out a ")"

return (through PATC

Listing 6: LISP and M6800 assembly code of the PRINT routine.

Text continued from page 142

when encountered (eg: "(" and ")") without any separator

characters necessary.

In the author's LISP system RATOM is relatively sophisticated, allowing for atoms with spaces in their names if they are quoted ("..."). Also the single quote character ("'") is given special significance, as are "['' and "J". However a simpler RATOM is quite enough for an initial implementation. To make this exposition simpler, only single digit numeric atoms will be allowed. Certainly in an eventual implementation, multidigit numeric atoms, optionally preceded by a minus sign would be accepted.

In this RATOM, the characters are copied into an area set aside to hold the names of atoms as they are input. A null character (ASCII code zero) is used to terminate the name, when a separator or special character is encountered. If the name is entirely numeric, then the atom is a numeric atom, and the form is simply the value of the number, with the high order bit set, and one other bit left zero for use in the garbage collector. Otherwise the atom is a symbolic atom, and a scan is made of the OBLIST for a pre-existing atom with the same name. If one is found, the characters just typed in are thrown away and a form specifying the pre-existing atom is returned. If the atom is a new one, a 4 byte cell is allocated (using GETCEL defined in listing 4) and a pointer to the new atom is added to the 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 comprising the LISP interpreter. It takes a single form as argument, and types the value as a fully parenthesized LISP expression. PRINT simply calls the more primitive function PATOM when it is given an atom to type. Otherwise, PRINT types a left parenthesis, calls itself recursively to type out the elements of the list, and then types a right parenthesis. In any case, PRINT always types out a carriage-return/line-feed at the end. This can be coded as in listing 6.

In the LISP routines, the special function PROGN is used. PROGN simply evaluates all of its arguments in sequence, and then returns the value of the last one as the value of the entire PROGN. The two functions ATOM and 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 returns NIL. DTPR is the exact opposite. It returns T if the argument evaluates to a dotted pair, and returns NIL otherwise. Such functions which return either T or NIL are called "predicates" in LISP in analogy with predicates as used in symbolic logic. Such functions in other languages are called Boolean functions.

Nowhere in the routines for PRINT, nor for that matter in the routines given earlier for READ, is the allowance made for the input or output of list structures which require the use of "dot" notation. A structure like (A B C . D) could not be input, and the above PRINT routines would type it out as (A B C), simply assuming that the atom which ended the linked list was NIL. It turns out that the changes necessary to implement dot notation are quite straightforward. For example, to add it to the LISP version of PRINT, only the routine PRINL need be rewritten, as follows:

(DEF PRINL (LAMBDA (L) (COND

((DTPR L) (PROGN

(PATOM SPACE)

(PRINR (CAR D)

(PRINL (CDR D) ))

((EQ L NIL) NIL) (T (PROGN

(PATOM SPACE)

(PATOM DOT)

(PATOM SPACE)

(PATOM L) ))

))

August 1979 © BYTE Publications Inc 145

A corresponding change could be made to the assembly language routines.

As with the primitive function RATOM, the function PATOM turns out to be more difficult to implement than the recursive PRINT. PATOM must distinguish between symbolic atoms, numeric atoms, and NIL, and act accordingly. With symbolic atoms, PATOM simply types the null-terminated name of the atom. With numeric atoms, PATOM must convert back from the internal representation of the numeric value, to the string of ASCII characters which represent the number. With NIL, PATOM simply types 'NIL'. Listing 7 is a simplified version of PATOM with numeric atoms of only a single digit.

EVAL Function

The EVAL function is the heart of the LISP interpreter. EVAL accepts one form as an argument, and evaluates it according to the LISP convention: the value of NIL is NIL, the value of a numeric atom is itself, the value of a symbolic atom is the form associated with the atom, and the value of a list is determined by applying the function specified by the CAR of the list to the list of arguments which make up the CDR of the list.

In most LISP systems at least two distinct kinds of functions exist, SUBRs and LAMBDAs. SUBRs are the built-in functions of the LISP system, written in machine code (like CAR, CDR, PATOM). LAMBDAs are the user-defined functions, defined like (DEF GCD (LAMBDA (X Y) ...)). The effect of such a DEF is simply to define the list (LAMBDA (X Y) ...) as the value associated with the atom GCD.

The type of object used to specify a SUBR function varies among LISP systems. Frequently a new type of object is defined, called CODE, distinct from atoms and dotted pairs. A second alternative is to treat SUBRs like a funny kind of atom. The author's LISP system treats the bytes which make up the machine code of the SUBR like the print name of an atom. The SUBR is then specified by a dotted pair, with the CAR being the atom "SUBR" to identify the type of function, and the CDR being this atom with the funny print name. In fact the print name is prefixed with a special string which is unlikely to occur in a normal atom's print name, and hence PATOM could detect that the print name was not typeable, and simply type, say, "!" instead. In addition EVAL can check for the presence of this special string at the beginning of the print name to avoid treating a normal atom's print name as machine code. This method for specifying SUBRs avoids introducing an additional type, but the added complication in PATOM and EVAL may rule out the method in some implementations.

When EVAL is given a list to evaluate, it first evaluates the CAR of the list (recursively). The evaluation of the CAR should be either a LAMBDA expression, or a SUBR expression. If the evaluation of the CAR is an atom, or a list 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, the arguments to the function call are evaluated one at a time and saved on a list. The value associated with the "for

mal" arguments of the LAMBDA expression (eg: X and Y to the GCD routine given earlier) are saved on the stack. These formal arguments are then set one at a time to have the value of the corresponding actual arguments to the function (which were evaluated already). Finally, the "body" of the LAMBDA expression is evaluated, with the formal arguments now holding their new values. The result of evaluating the body is the result of the original function call. As a last step, EVAL restores the original values of the formal arguments.

Following the details of evaluation of such a function call is very difficult at first. The sequence of these steps is critical: evaluate actual arguments, save old values of formal arguments, set new values of formal arguments, evaluate body of LAMBDA, restore old values of formals. With any other sequence there is a chance that changes to the formal arguments of this function might interfere undesirably with the values of atoms in the calling routine's environment. These formal arguments are supposed to be strictly "local," that is, the choice of a name for a formal argument should be a strictly local decision, having no impact on variables with the same name in calling routines. Observing these rules allows LISP functions to be freely recursive. As the above examples of routines demonstrate, this recursion is in fact heavily 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, and passes them as a list to the machine code subroutine. EVAL expects the result of the SUBR to be left in register X when the subroutine returns.

This much of EVAL can be implemented on the M6800 as in listing 8.

The routines EVLALS, POPFRE, EVLNSV, EVLRSO, and EVLRST have not been included in listing 8 for brevity's sake. They are all relatively straightforward routines, making heavy use of GETCEL, PUSHX, POPX, and FRECEL to build up and then release the lists of saved values.

Two additional types of LISP functions, normally recognized by an EVAL function, are called NLAMBDAs and NSUBRs (or FSUBRs, or FEXPRs if you prefer). These types of functions take their argument lists unEVALed. NSUBRs are simply passed the CDR of the original function call list, instead of a list of evaluated arguments. Similarly, NLAMBDAs are provided with only a single argument, the list of unevaluated arguments. Without NSUBRs it is necessary for EVAL to recognize functions like COND as special cases, so that their argument list is not immediately evaluated. NSUBRs are specified in the same way as SUBRs, with the atom "NSUBR" replacing "SUBR" in the CAR of the dotted pair. PRINT will type out NSUBRs as "NSUBR .!)"

NLAMBDAs are very useful for creating elaborate user-defined functions which take argument lists that are as or more complicated than COND. NLAMBDAs are necessary 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

146 August 1979 © BYTE Publications Inc

01

BO

w. cc tJ3 E

--O ^ o

a \.

U- O — 4-3

X <u

G. 4-) >i CD

OJ X

4->

■< Qj cc 0; c:

«—1 -iH

n <z > m

ra <u

c: -D o -w

w

rH O M -IJ

OJ o

.-* (U u .-f

rH 4J

4-J O 4J 3 D

>-t

rH ra o n

•H Q£

rH :3 01 <u

C

C rH rH i_ l_

-■rH

> w 03 --^

W 4J

TO X > W

(U c

—I <£ > CO :

< U LiJ l-H [

O [it: 0) -^

X en a; o o o o: CO o ^ -s

J CQ -3 CO to Q

**- <r:

•O CQ c <

4-> i

O U 4->

<U 4->

- o

r-t tX

(X <v Q. i_

O (U

0; OZ

> 3 CD

CD O =3

to c: CO

o r

CD 4-1

0,0 QJ O

-CQ ".J O •'-< <f

to ^:

(0 «a:

(U >

4-J a. cc CO

CD v-J < =3

I u, u w

. H O 0

CO J u

CD E-' : CO CQ .

-J rc ► > <c :

CfX (

UJ CL t

CD O C

0)

J C/0 iKi

:; cc CD y cc cc H UJ a:

T =:;; Li)

c c cu

O 1- —I

■rH 3 :=

JJ 4->

TO 01 QJ

3 i_ j„

rH O

tD (^ +J

> > (0

(D CD 0;

1

D

O

rH >»

X

O

4-J t^

<=

>>

ro w

l_

CL>

o

c

■rH

L

JD

1- t:

4->

c

O W

■rl

3

<u

CD

(1) -rH

tfl

4J c:

r~4

c

cxj::

JJ

c o

. 1

r-f

to 4-i

OJ

hH

CD t^H

u

T)

O 4J

iz

o

<" c

to

O

Q. o

-l->

o o

0)

a

--^ c:

i

CO

0;

V

3

O

E

QJ -D

q;

10 t^

r

CO

O OJ

x:

c:

bO

o

o

c

tu to

jj

■H

k.<"

■r-t

4->

(U 3

• rl

x:

m o

L,

CO

■t-J

to

3

o

a>

c

tu O

nj t-t tt;

E

4->

k. o

c;

•

E

OC)

3

O

1

CX*'>

1

?:

u

CJ

c:

CL

..

3 a:

OJ

4-)

i_ •—

j->

o

jr

to J-)

t^

c^

o

O CM

QJ

u.

j->

•rH CO

■rH

• rH

4->

t" **

L_

r-l

•u

r^

Jj

k

I

-»->

Jit: X

XJ

c

rH

^ c

o

o

c

cj at

c

ro

CD

<C .,-11

^

i_

•r^

OJ x:

to

O

> o

L

o

s: ^

UJ Q.

OJ

tU

a

o

3 tr; a. o- a- a. n o o —I o —I 01 u. cu ::: G, u

0} 4J

) X cc

Q CO

3 X DC X cc X H CO t- CO t-

c on -3 01 -3 CO

0^ a, CO O -I O G- < u

CK X X CO t/T f- Ci h"D CO —1 (X

X

O ixlt^

to L- -H X 3

-iC 3 rH 4->

O -^ OJ (U

O OJ CL i- U

rH k, 3 O

4-) -O

CC Q> CJ to C

CD > OJ a> to

cc

CO

-liJ OU) 5:eC2CX

CCXCM^XO^XCCCUCC^

< --tfi. > -«<>> -o c o >

UO^UJ'^'&UJOJU.CL.U.UJ

«c W ft «

to CO cc T. oz

■H ^ X (x O cc

rH «3: -LJ H lU

^ G, cc _i -a: ^

tiD> _i Q > 00 > i_ UJ U- C_J UJ l-H Ul

to

D:XXujCEC0xx<i:G.uj<cG-uja:Xccx-c: OicoQQ—icooujCic:32:2:Ci^^coHoocjcc

jJ-3_J^Ca'-3 CQCl_l_lC_(CC—lUOi'-^CO-J.-JCQ

to

3 H 03

> w

i- o <c

CD <^ tw ^

o

U-t to (^

O 10 OJ o

<U 3

^-s 4-) 3 rH >i

• to rH to "O

• -rH CD > O

• rH > X>

3

^^ a> XJ flj o

i«; 4J rH C 4J

CO o

-3 3 OJ 4J

v-- rH O^ k- C

cc > O -H

<i: > CO 4J o

c-:i Qj tn tn CL

CQ

e:

<£ 00 > O

^ ^ CO OO X

—^ -a: :^ CC

^ ^ ^ ci, cc

tu > > > —I -t:

O Ul UI UJ u. tj

E O

O 4J T3 Ik.

^ rH rH X 3

3 O 4J

Oi (o a; CI

4-3 a- OJ i- i

co v_ i_ o

3 O 4-3 "D

rH OJ 4-J to C

CO > to QJ CO

> fo at k

a; to k.

'^ G. J CL ^

> ^ > ^ >

Ul U, UJ u. Ul

:a:ccxx ccxccx*^: icocooo OOHCOdCC

)r3-3_J^ '-3C0-3_JCQ

rH p:

CD <C

> —j

3 O

QJ

C

c;

k.

5

^

•rH

o

0)

Zj

4-3

<M4J

c

o

3

■H

•H

,,-^

E

2:

O

<u x>

.P

B

4-3

k

=

k

4^

:3

H^

OJ

O

>t (0

o

iSo

to

t- E

tiO

OJ

k.

<D

X>

^ *

O

c:

E

CD

E

•P

3

-5

_,

4-3

(« 4-3

s:

CL

t. •«-l

o u

^

(0

O

■ri

O CO

k.

4-)

o

C

<1>

c n]

c;

k.

JD

4-3

•D 4J

x:

bo

■rH

a'

4J t^

B

to

(0

4J

t«

k. <«

k. o

.C

E

N

x;

■rH O

i~

3

o

O -rH

o

vi

k,

CiD-O

O

X)

4J

D.

x:

O

(.^ 4J

<V

to

•iH

Q>

(^

Qi

CO

k

3 to

k.

O

3

s

4-3

x:

3 E

4-3

k.

a;

o

QJ

4J

= a •

O CO

-J

CO

01

O

4-3

>-* T3

N

■rH

« e:

C

E

i-t c:

t—i

,~^

c

c

4->

CJ

C

bO

= k. o

3

0

k.

E

k.

o

to

4-3 4-3 CO

Ol

k.

O H*

k.

O

O

k. -t-3

4-3

0

E

c:

k

3 CD

o

XJ

4J 4-3 ■<

8

a;

CJ

t»

4J

CO c;

3

u

4-3

u

to

o

co

O

f\J

(^

3 -rH G.

E

4-3

CD

OJ -rH

o

O

to

ai

k.

*.

E

s:

1 ^ QJ

QJ

o c

^

CD

CD

f*-.

1-* k.

{«

f

4-3

CD

U

V

•

C O 4-3

•—

QJ

r-i

O E

,tj

a

■r^

O

o a -u

•H

1

x:

to s:

-D

n. o >i

o

XJ

to

at E O

'r^

4-3

E

CJ

x: o

4->

C

>»rH XI

/\

O

C

a k.

^

4J

l_

.

k.

- o

t:

k.

I-*

o

cc

X

3

4-3

1

4-3

o

■rH

>» o <«

3

3

o -J

0)

E -^

OJ

•rH

01

3

OJ

at

O

too

>t k.

1

•r^

to

4J 4-3

o

t»

hH

E

o

CL

k.

4-3

C

x:

o

c

k.

dj

C

E rH <U

X3 M

c;

i

^

3

4-3 k

>,

D.

-P

,—1

£

CO

k.

u

OCT)

=T

hH

CD

>.4J k.

c

00

c

tO Qj

4->

rH

to

3

4-3

o

1

3

4-3 O L

/\

CJ

rH -rH 3

a

0)

4-3

O

rH

-h>

C

4-3

Q.

X

4J

CD O

ro

1

CO

c:

a. b0 4-3

K,

>,

k.

■U

4-3

o c

o

4-3

3

o

3

bD

O

QJ

1

-a:

CD

E -rH QJ

^

4-3

c

C

bO

C

4-3

O

c;

OJ

0

at

k.

a • 3

C%J

x:

■H XJ k.

X

rH O

W

■iH

o

r-*

k.

■H 5; O

O

c:

4.3

[0

a.

.

k.

u

o a.

x>

c:

C'

4-3

o

4-3

to

c

o

■D

k. Q: rH

to

•rH

X) x:

o

CO

a^

ex

D.X)

z:

x:

C

CL C

3

CO

X)

4J

C

Ov O

4-3

4-3

at

- c c

a;

>

E J->

CO

i_

4-3

■rH

>.

3

>

c;

to

CO

E U. 4-3

■t-\

'r-i

X!

k.

to ot to

u

(0

o

O

>, <u

4-3

o

4-)

■o

CO

(U

3 QJ

J3

XI

•c

o

QJ to

c

1

to

no

bP

to t30

to

Q.

CD

y_

c: c tiT

CD

E

>>

o

X

<«

'2

c:

H

t

y:

xz

o -D »

z

ttl

•rH

«c

■<

X

UJ

<

ZD

Ul

at +

:r>

p

5:

s:

.

s:

, 1

Q

LJ

I^

7-.

c k-:?.

t\J

<j) a

TS

E

q:

1—1

ID

cc

«=:

HH

J X t- t-

<c

az

o O cc

O

CT.

7^

* H t-^

k.

bno

:z

z

•<

z:

Z

hH

<i: 3

O

•H 4J O

o

S:

- ID -a;

cu

0

a>

U- G.

o

C_)

CL

o

^

o

G.

CL

CL

U

w to U.

^

^

:%

0

=^.. CL G.

vC,

Ci-i

k

k.

1

QJ >.

a.

o

X

> TD

E

to

E

to

<i:

-o QJ •=!:

<z

•a:

<s:

■a:

■x

tn

0

QJ

X CD- (

X X

<

u

CO

X

<c

Occ

X

•s:

X

00

Qj 1- <3:

cc

o

Q

G.

UJ

«a: oc <i:

^5:

4-)

>

H Ul

. [

UJ Ot

CC

c_t

u

o

o

U) CO

:^

cc

en

H

•rH rH O

00

o c:i

E

1—1

Q to cc

(C

k.

CO CO

ca

O -J

CO

u.

u.

wJ

. 1

CQ ^

hH

CD

^

c=:

(•-< CO _l

^

<£

<

u

CO

-j -3 CQ

tx

c

QJ (0

•rH

^ E

1

0)

0/

r

E

Q. u h

>

k.

5!

<i;

■EC

UJ

=3

E O <C

-rH

Q.O

^

t:

c:i

■rH t« ?:

C\J

•a

tlO

H

J

hH

•o:

^

(0 rD

>:

<C

hH

-"

^

<c

-:

a:

>-j

»

at

G.

m

S

»

ex.

CL

»

G.

» » 0

0

2

bo

•a

4-3 -O Qj

o

CJ 4J'

X3 O ,

E

k. to z; ■

k.

c o k. k. CL o 3 E

4J 0) E

QJ 4J O

k. 4-3

E TO - k

bO O O

Qj tM •ri ■

k- k- , I at o> .

X > E

CD 3

e to c ■

Qj hH -f

to cc ^ £C

(D O O O

Q-U. z: u.

cc cc Ci o t-J u.

XUJetCCUXXXcO Qjf——lOOOUJClh-E-*

4-3ooa3jcccQQ-Jcocc

(Tl

CL O

_( CD

< XI

3 4J

O C

e X X X

ox s: X s:

•rH CL CO G, CO CL CO cc

4-3^rj_i=Dj:=iO o<cg,u.g_:tO-U.

X d: X a: X cc X ajOtOf^toc^ooQ

August 1979 © BYTE Publications Inc 147

COMPUTER/ COMMUNICATION

SEMINARS

OF EXCELLENCE

SNA " TELEPROCESSING"

1 SYSTEMS ^

COMPUTER NETWORKS

I NETWORKS I "='"""" I PROTOCOLS 1

- " PACKET I DATA ' ,

SWITCHING ' COMMUNICATIONS ' ENCRYPTION J

SIX DYNAMIC 3-DAY SEMINARS BY THESE EXPERTS

LUCKY-GREEN

DATA COMMUNICATION SERVICES AND PROTOCOLS

CHICAGO ■ OCTOBER 8-10. 1979

KONHEIM

ENCRYPTION FOR COMPUTER COMMUNICATION SECURITY

WASHINGTON, D.C. ■ OCT. 31 -NOV. 2, 1979

KLEINROCKFRANK-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

!£B!TPi5TTTU¥e

P.O. BOX 49765, LOS ANGELES, GA. 90049 (213)476-9747

EVAL routines, two additional checks must be added immediately prior to EVLERR:

BEQ EVLLAM CPX NSUBAT BEQ EVLNSU

CPX NLAMAT BEQ EVLNLA

* illegal exp... EVLERR

NSUBR?

yes, go call machine code

subroutine

NLAMBDA7

yes, pass list of args as single

argument

and the additional routines EVLNSU and EVLNLA must be included. Both of these routines are simpler than the corresponding routines EVLSUB and EVLLAM.

To make EVAL useful, some number of built-in SUBRs and NSUBRs must be written. The number of such builtin primitives can be kept quite small in LISP if they are chosen carefully. Most routines can be implemented as user functions if a few primitives exist. The primitives will certainly include PATOM, RATOM, EVAL, CAR, CDR, CONS, COND, SET, ADD, SUB, EQ, GREATER, ATOM, and NUMBER. All but SET and NUMBER have been used in the LISP function listings. SET is the primitive LISP assignment function. SET takes an atom and a value, and sets the value associated with the given atom to be the given value. NUMBER is a predicate function like ATOM, and simply returns T when its argument is a numeric atom. Listing 9 is an example of one of these primitives, the SUBR EQ.

Notice that the SUBRs and NSUBRs will start with the preface string (hex 21, 00 is used in this system). The argument list is always pointed to by ALP. Also notice that the SUBR may not assume that the proper number of arguments were supplied. The general rule is to treat

» two argument SUBR EQ

• return T if given identioel forms, NIL otherwise EC5BR FCB $21 special preface string

FCD J 00

• ALP points to the list of evaluated arguments

LDX

ALP

get first arg

BEO

TRUE

no args is equivalent to (EO HIL MIL)

«

which should return T.

LDX

CAR,X

save first arg tettipor ar i 1 y

STX

XTMP

LDX

ALP

pick up second arg

LDX

CDR.X

BEQ

EQSHIL

(EC X) is equivalent to (EQ X NIL)

LDX

CAR.X

EQSNIL

CPX

XTMP

are the forms identical?

DEQ

TRUE

yes, return T.

LDX

ZERO

no, return the NIL form

RTS

TRUE

LDX RTS

TATOM

return T atom

Listing 9: EVAL may have built in primitives to expand the language. This is an example of the primitive SUBR EQ.

148 Augusi 1979 © BYTE Publications inc Circle 365 OH inquiry card.

The face is (becoming) familiar

No surprise...it stands out in the crowd.The quality and reliability that Industrial Micro Systems' customers have grown accustomed to is now available in our complete system. A system that will grow with your needs.

You can start with a minimum 16K, single disk system. The system shown above can be expanded to 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 systems users are developing an impressive array of application software.

The system is offered in rack mount and table top versions and also in our own desk enclosure.

In addition to gaining in familiarity, the Industrial Micro Systems picture for total system products should be coming into focus for everyone. Advanced, reliable electronics... industry standard software... and functional, high quality enclosures.

Industrial Micro Systems, your source for complete systems. And the prices are right.

Ask your dealer to see the full Industrial Micro Systems line of products and be watching for exciting new additions soon to come from Industrial Micro Systems, 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

WITH YOUR LEVEL II TRS-80

TRcopy is a cassette tape copying system that lets you SEE what your computer is reading.

COPY ANY CASSETTE TAPE*'^' With the TRcojjy system you can copy any TRS80 Level II cassette tape whether it Is coded in Basic or in machine language. You can also copy data created by progi'ams and you can copy assembler listings.

YOU CAN SEE THE DATA

As the tape is heing loaded, you can SEE the actual data byte-for-byte from the beginning to the end of the program. Up to 320 bytes arc- displayed at one time. ASCII characters are displayed on the first line and hexadecimal code is displayed on the following two lines. Data is displayed exactly as it Is input including memory locations and checksums.

IDENTIFY PROGRAMS With TRcopy you can identify programs on cassette tapes without written documentation because you can SEE the filename. If you forget to label a tape, you can use TRcopy to display the tape contents and identify the cassette.

VERIFY CASSETTE TAPES With TRcopy you can verify both the original tape and the tape copies. You can make certain that your machine reads the original tape correctly and that it makes byte-for-byte copies, TRco|)y also counts as it reads giving you the exact length of the data.

MAKE BACKUPS FOR YOUR PROGRAMS Now you can make backup copies of your valuable programs. Many times a cassette that you make will load better than one that is mass produced. The original can then be kept as a backup in case the copy is damaged.

MAKE COPIES OF YOUR SOFTWARE If you are in the software business you can use TRcopy to make tested copies of your programs for sales distribution. TRcopy produces machine language tajies that are more efficient than those produced by the assembler itself.

RECOVER FAULTY DATA

With TRcopy you can experiment with the volume and level controls and you can SEE what the computer is reading—even if your computer will not read the data through normal read instructions! In this way it is possible to read and copy faulty lajies by adjusting the volume control until you SEE that the data is input properly.

SIMPLE - FASCINATING - FUN

TRcopy is not only a practical utility program.lt is also a fascinating graphics program that lets you SEE, for the first time, cassette data as your comjjuter is reading it. And it's as simple as 1-2-3. Just load, verify and copy. You will now be able to use cassette tapes with confidence knowing that TRcopy is there when you need it.

The TRcopy system is a machine language program with documentation explaining tape leaders, sync bytes, check sums and other formattingconventions. With the TRcopy system, you can SEE what you arc doing!

TRcopy System Including Cas&clle Tope and

YOUR ORDER

V *-l

£ s = s

^ ^ -T3 2

I- 6

^ 01 -D

a.

^3 01

>■ -i

>

a. o u

° o = "■ "

»i o c ■^ S

TOLL FREE

SAME DAY SHIPMENT

unspecified arguments as though they were NIL. In EQ above, this gives some rather strange behavior, where simply (EQ) will always return T. It still remains for the implementor to initialize the atom EQ to point to a dotted pair, (SUBR . funny-atom), with the print name of the funny atom set to point to the code at EQSBR as shown in listing 9. The final section of this article goes over some of the problems involved with this kind of initialization.

Garbage Collector

A garbage collector eventually becomes essential in any LISP system. It is possible to create dotted pairs that are no longer accessible to a LISP program by any path. This happens, for example, if a function like REPLACE is called and then the value returned simply PRINTed but not saved as a LISP atom. This cannot go on for long before all of the free space is used up with dotted pairs. The garbage collector's job is to find all of the dotted pairs.

The various algorithms for locating such jetsom of the LISP function evaluation process are all quite intricate. The basic idea is always to trace systematically down every list structure to its component atoms, marking every dotted pair encountered along the way. If a dotted pair is encountered which is already marked, then that branch of the list structure is assumed to be already fully traced. The garbage collector then makes a sequential scan of all of memory space occupied by dotted pairs, and links together all unmarked dotted pairs onto a special list, the free list. During the scan, the marked dotted pairs are simply skipped over, because they are assumed to still be a part of some useful list structure. When a marked dotted pair is skipped over, its mark is also cleared in anticipation of future garbage collections, when it might no longer be so lucky.

The difficulty with this trace and collect algorithm is that each dotted pair points to possibly two more dotted pairs, so during the tracing phase the garbage collector must eventually follow both paths. What this means is that a second indication must be made on each dotted pair, indicating that the garbage collector is now busy tracing the CAR of this dotted pair, and will be returning later to trace the CDR of the dotted pair.

During the tracing phase, the garbage collector might very well be thought of as an ant determined to visit every branch of a tree. It goes out to the tip of each branch, but as it returns it must remember whether it has already traversed the other paths going out from each branching point. Even this analogy underrepresents the difficulty of a garbage collector, because the ant can simply turn around when it reaches the tip of a branch, but the garbage collector would normally have no clue as to how to climb back toward the root of a list structure once it gets out on a distant dotted pair.

The solution to the garbage collector's problem is to either reverse all the pointers in the list structure as it forays out to the terminating atoms and then reset the pointers on the way back in, or to keep a list of all dotted pairs which still require that their CDRs be traced. The first solution is like stringing a spool of thread behind you as you venture into an unexplored cave, following the thread back toward the mouth of the cave when you reach a dead end. Of course the same danger exists; that

ISO August 1979 © BYTE Publications Inc

Circle 96 on inquiry card.

Circle 357 on inquiry card.

The garbage collector may run at any moment.

the delicate thread leading you back to the starting point might get tangled or broken.

The second solution is simpler, but suffers from the grave problem that it requires room to store the list of partially visited dotted pairs, and garbage collectors tend to be called upon at times when there is no more room to spare. In fact, the list of partially visited pairs need get no longer than the maximum "depth" of any list structure in the system, so that by setting aside a small portion of memory reserved for the use of the garbage collector's list, the implementor can get by with coding a much simpler tracing algorithm.

The author's system uses the pointer reversal method, and he will testify to the unlimited number of obscure problems which can appear during the debugging phase of its implementation.

It should be clear now why it was important to leave one bit in each form, and hence two bits per dotted pair, free for the use of the garbage collector. The bit in the CAR form can be used to indicate that the dotted pair has been visited once, and the bit in the CDR can be used to indicate that both paths from the dotted pair have been traced. These bits are only used during garbage collection, but because the garbage collector may be called at any time when GETCEL finds that there are no more 4 byte cells on the free list it may, in fact, run at almost any moment.

Because of this unpredictability, a LISP system with a garbage collector must be coded "defensively," jealously protecting any dotted pair allocated but not yet added to some accessible list structure. The machine code routines given in the listings do not all adhere to this rule. The reason for ignoring the garbage collector in the development thus far was simply to keep the design of the routines simple and relatively intuitive.

If the reader intends to include a garbage collector in an implementation of a LISP interpreter, more care must be taken. For example, two versions of the routine PUSHX would be defined, normal PUSHX and PROPSH (protected push). The PROPSH would be used when the 16 bit value being pushed on the stack pointed to list structure which might not be accessible in any other way, and hence might get collected in the next garbage collection scan. PROPSH avoids this danger by marking the cell used to store the saved value so that the garbage collector will know to trace this form and its descendents.

Initialization

It is ironic, but somehow appropriate, that the section on initialization comes at the end of this article. Frequently it is in fact one of the last things an implementor thinks about. That is probably because initialization is one of the biggest difficulties facing the implementor of any language: assembler, interpreter, or compiler. By initialization is meant the inevitably awkward methods of getting the symbol tables, or the OBLIST in LISP preloaded with the names which are to be built-in to the system. Most of the routines written to enter symbols in

TINY' PASCAL for TRS-80®

& NORTH STAR®

Now you too can have Pascal! The Chung/Yuen 'Tiny' Pascal has been specially designed for TRS-80 & North Star owners. The full power & elegance of 'Tiny' Pascal is at your command. Programs written in 'Tiny' Pascal run at least 4 times faster than the same program in BASIC! 'Tiny' Pascal is also a great way to learn Pascal Programming, & fun too.

The minimum system requirements are: Level II, 16K for TRS-80, & 24K for North Star (specify single or double density).

SOURCE TOO! But most important, you also get source to 'Tiny' Pascal written in Pascal with each purchase! You can even compile the compiler! You can customize your own version, or just use it the way it is.

'Tiny' Pascal is a subset of Standard Pascal & includes: RECURSIVE PROCEDURE/EUNCTION, 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 for

North Star.

You get all this & more, plus a user's manual for $40.00.

available from:

P.O. Box 1628 Champaign, IL 61820

(217) 344-7596

_^All orders pre-paid, Illinois residents add 5% sales tax

HARD DISC FOR S100 MICROS

The XCOMP DCF-10 Disc Controller provides the OEM with a high perfornnance, low.cost interfaceforfixed and removable (2315 or 5440) cartridge disc drives. The DCF-10 is currently supported by two operating systems. For information or manuals, contact XCOMP.

XCOMP

INCORPORATED

9915-A Businesspark Ave., San Diego, CA 92131 • (714) 271-8730 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 the language processor. The initialization phase of the system becomes quite complicated because of this orientation. The methods finally chosen are, in general, tedious, requiring a lot of special preparation by the writer of the intialization routine.

The best way to avoid these initialization difficulties is to spend a little extra effort in designing a few nice routines for taking information out of tables which are convenient for the implementor to set up and modify, and let these routines do the intricate bit-twiddling work necessary to get the objects in shape for the symbol table, or the OBLIST.

In the author's LISP initialization module are routines to build up dotted pairs in the form required for SUBRs and NSUBRs, and routines to allocate 4 byte cells for built-in atoms. The atom initialization routines are given the address of a contiguous table of null-terminated ASCII names, each followed by the address of a memory cell where the form specifying the new atom should be stored. This is where the symbols like TATOM, SUBRAT, LAMBAT, etc came from. They refer to memory locations in the base page of the M6800 (0 thru 255), where the forms specifying the atom T, SUBR, and LAMBDA, etc, are stored. The table to initialize these atoms was simply:

ATMTAB FCC

'T'

FCB

0

FDB

TATOM

FCC

'SUBR'

FCB

0

FDB

SUBRAT

FCC

'LAMBDA

FCB

0

FDB

LAMBAT

FCC

FDB FCB

0

null-name terminates table

Although writing the special initialization routines was initially time-consuming, it was more than compensated for by the ease of adding more built-in atoms as the system grew.

Conclusion

We have traced through the implementation of a LISP interpreter and looked at a specific example for the M6800 processor. For further information on the garbage collecting routines and a complete listing of the interpreter, order BYTE document number 112. ■

NyMil68

The Nybbles Library is an inexpensive means for BYTE readers to share some interesting but specialized forms of software. These programs are written by readers with small computers and printer facilities, and are therefore designed for particular systems. The algorithms and programming techniques in these programs can be directly used by readers with similar equipment, or can serve as

an inspiration for improvisation on computers of different characteristics.

Potential authors for such programs should send us a self-addressed stamped envelope, with a request for a copy of our "Guideline for Nybbles Authors." Payment for 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 for collection in loose leaf binders.

This month "An M6800 LISP Interpreter" has been added to the Nybbles Library. To order your perso)ial copy at $10.00 (US and Canada), $12.00 (foreign airmail) postpaid, fill out the coupon below.

Please send

copies of BYTE Nybble L

at $_

postpaid.

Please remit in US funds only.

Check Enclosed

Bill my VISA #

Bill my MC #

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 l<eep your BYTE intact.

152 August 1979 © BYTE Publicalions Inc

NEW POWER FOR

•m:9i,VJ'Jn:-§i§:i^l»'i,^,

MOUNTAIN HARDWARE.

ROMPLUS+

. "^

''i,*

NEW EXPANDABILITY.

ROMPLUS+ is a peripheral board whose added features can turn the Apple II* into the most powerful personal computer available today.

NEW POWER.

ROMPLUS+ provides six sockets to accept individually addressable 2K ROM's or EPROM's. Keyboard Filter'-, a 2K ROM program, comes installed on the ROMPHJS+ board and adds many useful features to your Apple II, including:

• Upper and lower case letters. The only system that offers keyboard input and standard shift key operation.

• Multiple user-defined character sets.

• Colored or inverse-colored letters.

• Keyboard macros—two key-stroke, automatic typing of multiple, user-defined words or phrases. Including BASIC 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 includes demonstration programs and two Editors that allow you to define your own characters or keyboard macros. SOPHISTICATED FIRMWARE.

In addition to the Keyboard Filter ROM, ROMPLUS-f offers five sockets for ROM or EPROM, plus "scratchpad" RAM. And, sophisticated firmware on ROMPLUS-fallows one, two, or more of its chips to be used simultaneously for programs longer than 2K. EXPANDED UTILITY.

Many software programs really ought to be utilized as firmware. ROMPLUS-l- makes that an actuality for the Apple II by providing six additional ROM sockets.

AT YOUR DEALER. NOW.

$169. Complete and tested. Including the powerful Keyboard Filter ROM and full documentation. Ask your dealer for a demonstration.

OS Mountain Hardware, Inc.

'&

LEADERSHIP IN COMPUTER PERIPHERALS

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

Sounds great.

n Please send me all the details on ROMPLUS+ and Keyboard Filter.

Name

Address.

City

Phone

. State.

_Zip_

"Apple II Is a trademark of Apple Computer, Inc.

Circle 258 on Inquiry card.

BYTE Augusl 1970 153

Text continued from page 8:

Gary also wanted readers to understand that the LISP of the "Lots of Infernal Stupid Parentheses" does not represent the essential beauty of this approach. This relatively awkward notation is the assembly language of a LISP machine. It suffers from all of the disadvantages of assembly languages. Relatively simple to program, this "S-expression" form of LISP notation is one that is most often implemented, and it tends to give a distorted view of the language. Gary wanted readers to understand that the alternative "M-expression" form of LISP, with special characters noting relationships, is perhaps the most elegant and natural form of expression for many problems. Rarely, however, does anyone implement an "M-expression" oriented version of LISP at the user software level.

The problem is similar to that of the language APL, with one notable difference. In APL a special character set was invented and assigned to the language for use in representation of the new abstractions involved. The same could be done for LISP if an "M-set" and an automatic "pretty-printer" were employed at the user's terminal interface, instead of a lot of parentheses and ASCII codes.

One explanation for the reason that LISP has not yet caught on as generally as APL might be the fact that APL was first developed on large IBM computer equipment with an elegant user interface. IBM Selectric printing terminals were available to be adapted to a natural expression APL via the "APL-ball," while LISP was seldom used with IBM equipment during its period of development as a tool. With today's technology of personal computer graphics, the same principle can be adapted to the user interfaces of LISP software. The best LISP packages for personal computers should incorporate an appropriate display philosophy which allows the elegance of the language to shine.

[While on this subject of "today's technology," we have also heard some exciting words about a computer system design from the Laboratory for Computer Science at MIT. This is only an advance hint of what may come. The machine is described as an experimental computer with a very high resolution (1024 point) black and white display, 32 bit internal architecture, an advanced LSI processor such as Z-8000 or 68,000, gobs of memory implemented with 65,536 (64 K) bit parts, and an advanced operating 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, is that the technology has been transferred by license to a commercial firm which has existing interests in personal computing products. MIT's motivation with respect to having a commercially manufactured version is to be able to buy several hundred of the machines for local use in its technological community. We may have thought that the past two years were exciting, but the field has hardly begun its maturation...]

This series of BYTE August issues on languages emphasizes the fact that no one language will optimally satisfy all uses. Just as people continually create new forms of expression in any art, the history of computing has demonstrated a similar tendency toward a variety of forms of expression for algorithmic and data concepts. Our coverage of APL, Pascal, and LISP by no means exhausts the possibilities. In my own biased space of language concepts, I see potential future August issue attention to the concept of threaded interpretive languages such as FORTH, and languages which it inspired, like URTH. Other possible linguistic points of discussion might include string languages such as SNOBOL, and even macro languages like GPM and Calvin Mooers' TRAC. Then there are such concepts as data base languages, and the whole issue of designing language technologies for special applications such as music, architectural concepts, graphics, etc.

The fundamental point of this essay still remains: no one language will optimally satisfy all the needs of all users. Some people care only about quick implementation 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 to strain to think in sequential processing forms. To the extent that programming concepts are universal, choice of a language is often a matter of personal aesthetics. And where languages go off in one or more partially or wholly orthogonal conceptual directions, then the choice of language is based upon the underlying uses of the tool. (Fuel for a number of heated arguments is present in the determination of just what is an orthogonal conceptual direction.)

While on the subject of different languages and choices of tools, I should mention one of the most exciting items seen 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 service card to be added to our mailing list, or U.S. residents send $1.00 (International send $3.00 U.S.) for airmail delivery of our complete catalog. 'Product of MOS Technology

PRICE: $129.00

We also carry the SYM-1 Microcomputer with manuals $269.00

i]RNB>

ENTERPRISES

INCORPORATED

2967 W. Fairmount Avenue • Ptioenix, AZ 85017 • (602) 265-7564

1S4 August 1979 © BYTE Publications Inc

Circle 325 on inquiry card.

Buy this book at your favorite computer bookstore or direct from BYTE BOOKS.™

Add 60c per book for postage 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.

zaJB[l[l^sL\X^

"BOOKS OF INTEREST TO COMPUTER PEOPLE"

70 iviain Street Peterborough, New Hampshire 03458

Circle 36 on inquiry card.

BYTE AugusI 1979 155

is a whole new language for interaction with computers at an intellectual user's level. As a tool for use with computers, this language-like method of structuring an interface is completely orthogonal to any conventional sequential language from BASIC to Pascal, although its conceptual underpinnings are very LISP-like. The product has roots in the artificial intelligence community, and it is a direct result of the programming efforts of two gentlemen with strong ties to the MIT computer science scene, Dan Bricklin and Bob Frankston. It is presently available on the Apple-II computer, and will soon be available on Atari, Pet and TRS-80 computers.

Dan and Bob have formed a firm of their own called Software Arts Inc. Their only customer is Personal Software, a company formed last year by another graduate of the Cambridge computer scene, Dan Fylstra (along with Peter Jennings of Microchess fame). The Personal Software company distributes this new product exclusively, at retail cost and through manufacturers. The product is called "Visi-Calc." The first "public" showing of VisiCalc occurred last May in the form of a hospitality suite at the Fourth West Coast Computer Faire in the San Francisco Convention Center. The display was oriented to dealers and manufacturers. Advertisements have appeared earlier this year, and we should see more detailed publicity 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 relationships. This last phrase, "along with relationships," is the key element of the concept. When I record some

giaciniioiiootooooimcinmocoooooimooiiooiooiiDOooaogaoiiooooooai

TRS-80... all business! !

...with CP/M, CBASIC2, & applications software.

CP/M Operating System (w/Editor, Assembler,

Debugger, Otilities & 6 manual set) $150

CBASIC2 Compiler (w/manual) $ 95

DESPOOL Print Spooler (w/manual) S 75

*Osborne & Assoc. PAYROLL W/COST

ACCTNG $250

*Osborne & Assoc. ACCTS. RECEIVABLE &

ACCTS. PAYABLE $250

*Osborne & Assoc. GENERAL LEDGER $250

*=CBASIC2 source programs; add $15 (each) for applicable O & A book.

APH - Self-administered Automated Patient

History $175

DOWNLOAD-TR-80 (or other) CP/M to CP/M $95

data/program (source or object) transfer over RS232link

Send 30<i SASE for add'l. Software avail, (including CP/IVl Users Group software) and FREE "CP/M Primer." CA residents add 6% tax. Visa, M/CIVI/O,Check OK.

(714) 848-1922

8041 NEWMAN AVENUE • SUITE 208 • HUNTINGTON BEACH. CALIFORNIA 92647

number, eg: 3.1415927, at an intersection of the blackboard's coordinate grid named [B:32], that number is stored in that location on the blackboard.

Since available memory is much larger than the visible screen, I can use cursor controls to make my display window examine any portion of the total blackboard. I might move to location [A:12] and write the value of some angle, perhaps 0.33 radians. I can refer to other locations in defining a relationship for some location instead of raw data.

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 upon locations [A:12] and [B:32]. I can then move the cursor back to [A:12] and put in any angle that I like, for example 1.2. On changing any such location, Visi-Calc automatically searches the tree of dependent expressions and evaluates new data for such locations. The dependency can effectively go through many levels of calculation so that we can look at any intermediate stage of a calculation by noting it on the blackboard. When I return to location [Z:21] with the cursor controls, I will find the results of the [Z:21] expression as calculated with the new data. All pointing is done via cursor movements, so for the most part users never even refer to the "[letter:number]" coordinates of places on the blackboard.

The same technique can be applied to many programming tasks of an ad hoc nature; for personal, business, engineering and scientific applications. The software handles strings as well as arithmetic data and includes a full set of engineering and scientific functions such as the transcendentals used in the above example. Visi-Calc has to be one of the neatest software innovations of 1979, if not the most fundamental new concept to date in the personal computing field. It will certainly be used as a practical piece of software by many of our readers with various mass-marketed small computers.

An interesting comment was noted by authors Bricklin and Frankston and relayed in a recent conversation with Dan Fylstra of Personal Software. The comment was that the techniques used in Visi-Calc are possible only when a full processor is totally available to one user as a personal computer. The calculational bandwidth required to support this sort of technique is impossible to find at reasonable cost in a traditional large computer time sharing system. It only works when the concept of "one user, one processor" is employed, ie: when the computer power is "personal." As part of Visi-Calc's authors' experiences at MIT over the past decade, they often had this kind of relationship with traditional main frame computers like PDP-lO's and IBM 370's. Such excessively expensive computing power devoted to one user is not possible outside of a research context. With the coming of the current age of microcomputing however, the personal (one user, one processor) approach is possible on a wider and less expensive scale. The products that are now available in this market for under $3000 are getting very close to the level of power which was restricted to research laboratories. Software products like Visi-Calc take advantage of this.

156 August 1979 © BYTE Publications Inc

Circle 85 on inquiry card.

Model 9SSrtJ:tCSll*git LCD display ' It^e^ 3% digit LCD tjiptay

DIGITAL MULTIMETER $149 DIGITAL CAPACITANCE METER ..$149

New Data Precision super-accurate portables. To use 'em is to love 'em. Or your money back.*

Both meters feature Vz' LCD display, 200 hour battery life (9 volt alkaline), pushbutton ranging, tough construction, good electrical protection, and only one calibration adjustment. These meters boast the best accuracy specs in their 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 (S 5149

Please add the following options:

BE9 Battery Eliminator (120VAC±10%. 50-60H2),.(9i $15

CSll lOA Current Shunt (a $20

.IP151 Clamp-On Current Probe (2-1 BOA) (s>S65

IPlOOl Clamp-On Current Probe (10-1000A) @ $139

FF471 RF Probe (to TOOMHzl @ $99

RFHl Retractile hook probe tip for RF471 @ $5

T5 Test Leads @ $5

T7 Uniuersa! Test Lead Kit @$12

.TPl 51 Temperature Probe (-60°to+ 150° C) @ $95

V41A High Voltage Probe (40kVDC) (a $45

Please send me.

.Model(s)938 (5)S149

Please add the following options:

BE9 Battery Eliminator (120VAC±10% 50-B0Hz)..(a $15

CC35 Carrying Case @ $5

^LCl Plug-in Lead-Clip Test Fixture (Si$7.50

T9 12" Test Leads with Alligator Clips @>$5.50

SUB TOTAL $

STATES. LOCAL TAX (if any) $

SHIPPING & HANDLING $ 5.00

TOTAL AMOUNT OF ORDER $

mti

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!

n Check/IVI.O. enclosed □Bill Visa JZlBill American Express

Card No. Expiration Date

Signature .

Name (Please print)

Title

Company

Address

City

Phone

.State.

-Zip.

''If 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 157

HONEST

, useD IcompuTeRS

Zo,ooo

oft. 2o DAV5

^^•\^»ss

'\,.and this one was owned by a little old lady who only used it once a month to balance her checkbook. "

Belals' Master Index Can Give You Access to $14,836.14 Worth of Computer Programs for Just $5.95!

Special Pre-Publication Offer

You paid hundredsor even thousands of dollars for your new microcomputer. By now it may be dawning on you that a SI.000 computer with no software Is just StOOO worth of scrap melal!

But computer programs cost money. In a recent survey of 1.984 computer programs offered for sale in the top three home computer magazines. the average price was found to be S27-94. What a rip-off!

You don't need lo spend hundreds of dollars to get a complete library of programs for your computer. That is. you don't if you haveBelals'Master Index to Computer Programs in BASIC.

Belals' Master Index gives reviews of 531 programs that have appeared in 10 major home computer magazines—programs that you can type into your computer for free!

This is not just a simple listing of a bunch ot article titles, but a complete reference work! Each BMI review is complete—it has everything you need to know about a program. A brief index line capsulizes the review tor quick reference. Source information shows you where the program can be found. Any updates or corrections are shown so you know the information is accurate and complete. The text of the review gives you a full description of what the program does. In addition, the review gives you detailed technical information about what hardware and software the program needs. Everything you need to know is right at your fingertips!

You don't have to be a programming wizard to use Belals'Master Index. That's because BfVll lists only finished, ready-to-run programs in BASIC, the easy-to-use language enjoyed by millions.

Even if you're a master programmer, you'll appreciate Belals' Master Index. Why slave away hours, days, or even weeks writing a program when someone else has probably already done the work 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 have trouble answering that question, "But what are home computers good for?"

Then again, there's always MONEY, fvlaybe you haven't thought of all the ways your "fun" computer could turn out a little of the green stuff for you. Maybe you haven't—but a lot ot other people have, and they've written up their ideas lor you to use. fle/a/s'/Was/ef/f)tfex lists dozens of programs that you can use to set up your own business.

If you already have a business, Belals'Master Index has the programs lo turn your home computer into a full-fledged business system. General ledger, billing, payroll, mailing lists, word processing—no matter what type of business you have, Belais' Master Index has the programs you need.

All this and save $4.00, too! The west coast paper mill strike has delayed publication oi Belais' Master Index. Because of this, we're making a special pre-publication offer. Reserve your copy now and you can have it (or just S5.95—S4 off the S9.95 cover price, But don't wait: when our presses start rolling again IT WILL BE TOO LATE!

To order, write the words "Belais' Master Index" on a check. Be sure your name and address are printed on the check. Make out the check for S5.95 plus SI shipping (Calif, residents add SBC sales tax). Send your order to Falcon Publishing, Oept. D-1,140 Riverside Ave.. P.O. Box 688, Ben Lomond, CA 95005.

If you want to use your VISA or Master Charge card, write "Belais' Master Index" on a piece ol paper. Give the total for your order, your account number, expiration date, and signature.

We absolutely guarantee you'll love your copy of Belais' Master Index. If you're not completely satisfied, return it to us and we'll refund every cent you paid. You can't lose, so order NOW!

Returning to the LISP theme of our current issue, VisiCalc is an example of a tree-oriented parallel data structuring problem for which LISP is a most appropriate language of expression. Due to a lack of availability of LISP as a software development tool for personal computing hardware, its authors did not use LISP. They also had to make a number of compromises and tradeoffs as a result of the small size (eg: 16 K to 48 K bytes) of the main memory of personal computers. But they did use many of the tree concepts of artificial intelligence research. This provides us with the ultimate example of the relevance of LISP-like languages and approaches to personal computing: one of the most generally useful new user software tools for small machines, Visi-Calc, tackles just the sort of problem for which LISP is an appropriate tool of expression.

Notes on the Appearance of BYTE...

by Carl Helmers

Readers will notice a number of changes in the appearance of the design layout of BYTE, starting with this issue. These changes are the cumulative result of several trends in our organization.

Perhaps the biggest such trend, from our readers' point of view, is the arrival of a form of computerized typesetting for BYTE magazine. I have often felt during the four years since BYTE started that we have been like the proverbial shoemaker's children who went barefoot. We have been producing a computer magazine without the benefit of any computer technology in the actual operation of our business. My own personal recovery from this situation occurred last fall when I began using a machine capable of running UCSD Pascal for all of my programming and writing. At about the same time, we were able to specify and order a computerized system of typesetting and page layout produced by Compugraphic. With this August 1979 issue, approximately 80% of the copy for the magazine was produced using the Compugraphic system. (Of course this measure is exclusive of advertisements which are generally prepared in final form by advertising agencies.)

The new magazine layout beginning in this issue was designed by Ellen Bingham and Nancy Estle of our production department. One of its major features is the use of symmetrical page layouts employing 2, 3, and 4 column widths on a page, depending upon the demands of subject matter and placement in the magazine. In the old layout, an asymmetrical two and a half column format wasted a lot of blank space. It also greatly complicated the 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 were committed to either a right or left-hand side of an open magazine, the relative placement of pages became quite involved, sometimes even requiring last minute modification of "final pasted" pages to switch them from left to right-hand asymmetry!

The new format, aside from freeing up placement in the magazine, also allows more information to be placed on each page. It simplifies the problem of embedded equations or examples since the column width is greater in the two or three columns used for articles. When an article includes many long examples and equations, these will often fit on one line in the two column format, making the result easier to read. When an article does not have a large proportion of such embedded illustrations, the three column variant is available for use by our designers.

One question that we are frequently asked is related to magazine layout: Why do certain articles get split into sections, with portions of text continued at the back of the magazine? One reason for this is the use of color in the magazine. Approximately half of each issue is printed in color. Color pages are printed in groups of sixteen, called forms. It is sometimes necessary to begin two color articles in the same form, continuing one of the articles in another location in the issue. The relative length of articles also plays a part in how they are laid out in the magazine. We make every effort to keep each article in one contiguous piece whenever possible.

Speaking of computers for magazine production, we hope eventually to be able to accept articles from authors on floppy disks, using either the CP/M or Pascal format on full-size floppy disks. This means 8 inch single or double density, IBM compatible; for nonstandard information formats, documentation sufficient for conversion would have to be included. We will report on this subject as matters progress.

Changing the format of a magazine requires months of preparation and hard work. We want to reassure our readers that we plan to keep the content of BYTE just as it is. The new typeface, new column layouts, and updated feature pages are designed with you in mind. We would appreciate your comments and suggestions.

Coming Up in BYTE...

With next month's September issue of BYTE, we begin our fifth year of publication. Returning to the genesis of personal computers in the hands of inveterate hackers, the theme of that issue is "homebrewing." In future issues we will see such special interest theme topics as education and computers, "domesticated computers," music, data bases, and a special theme on computer games of the Adventure/Dungeons and Dragons variety. Other topics we are contemplating for the coming year include continued attention to themes of voice input and output, graphics, languages, artificial intelligence and robotics...CH

ANNOUNCING

New from DEC

LA34 DECwriter IV

^1,199."°

110 or 300 baud, RS 232C serial • Upper/lower case, 9 x 7 dot matrix

ASCII . 10, 12,13.2,16.5 characters /inch

Friction feed, paper width to 15" • 2, 3, 4, 6, 8, or 12 lines/inch

• 22"Wx7"Hx15y2"D, 25 lbs.

New from DIABLO

DIABL01640 $2,690.00 Receive-only $2,331.°°

High-quality daisywheel printing at 45 cps.

DIABLO 1650 $2,779.00 Receive-only $2,419.00

Metal daisywheel printing at 40 cps.

S0R0CIQ120 $795.00

• RS 232C, upper/lower case full ASCII

• Numeric keypad, protected fields

• Cursor keys plus addressable cursor

• Auxiliary extension port

Teletype 43 $999.00

• RS 232C, 110 or 300 baud

• Upper/lower case full ASCII

• Pin feed, 12" x S'A" paper

T.I. 810 printer $1,695.00

• 150 characters per second

• RS 232C serial interface

• Adjustable forms tractor

• Upper/lower case option $90.00

soRociguo $1,250.00

• RS 232C and 20mA current loop

• Extensive editing features

• 25th line terminal status display

• 16 function keys (32 with shift)

To Order: Send certified check (personal or company checks require two weeks to clear) including handling* and 6% sales tax if delivered within California.

'Handling: Less than $2,000, add 2%; over $2,000, add 1%. Everything shipped freight collect in factory cartons with manufacturer's warranty.

i:^JCHa^flii..i

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 impossiblo

LfiNGUnG€

^e)J\

LET'STALKLISP by Laurent Siklossy

D This is a discussion of LISP, the most important non-numeric language in use today. All features of the language, including elementary functions, recursive functions, the PROG feature, MAP functions, generators, property lists, and the "cell value" concept, are carefully explained while avoiding the details of any particular LISP implementation. For experienced programmers a quickie introduction to LISP is included. Good programming is emphasized throughout and a full complement of exercises help to illuminate the material. If Al is your direction, LISP is your language.

235 pp $16.95

^e^'

QUICKTRAN by C. Kevin McCabe

D Learning a language can be made easier if one begins by mastering a small part of the language and then adds the remaining features as needed. Kevin McCabe has taken this approach in teaching standard FORTRAN IV. He starts with the basic concepts of computing and Quicktran, a fundamental subset of FORTRAN IV that allows the student early programming experience. Part II expands the readers' proficiency and adds other features of the language and by the end of Part III all of standard FORTRAN IV has been covered. Example programs abound.

220 pp. $8.95

i^eui^

ffl[p[L

A PRACTICAL INTRODUCTION TO PASCAL by I.R. Wilson and A.IVI. Addyman

D PASCAL will soon supercede BASIC, and for good reason. It is a simple and efficient language, encouraging structured programming. Wilson and Addyman have written an introduction to PASCAL suitable for first time or experienced programmers. Describing PASCAL using syntax diagrams, the book encourages the stepwise refinement technique of structured programming. Over 60 programs are included as examples, and seven of Its 14 chapters are devoted to data structures. This book comes highly recommended and complements PASCAL-User Manual and Report by Jensen and Wirth.

148 pp. $7.90

PASCAL USER IVIANUAL AND REPORT

(Second Edition)

by K Jensen and N Wirth

167 pp. $7.90

STRUCTURED PROGRAMIVIING IN APL by Dennis Geller and David Freedman

n APL is a rich computer language. Most books on APL concentrate on its powerful operators and their use, leaving program design and structure to be learned elsewhere. This book by Dennis P. Geller and David P. Freedman takes a better approach, presenting APD with the structure and programming techniques you need to program successfully in APL. From the preface: "Overall, our approach is to present the fundamentals of programming in APL. Students may go on from here to learn to write faster programs, or more compact programs, or more aesthetic programs: this, we hope, is where they will learn to write working programs."

[^©ffiTTffiffl

LNj

COMPUTING WITH FORTRAN IV: A PRACTICAL COURSE by Donald M. Monro

D A book for those who have had some programming ex perience, expecially BASIC, and who want to learn FORTRAN programming. Monro claims that most experienced programmers are self-taught. In his book you'll find yourself programming immediately and learning through experience. Designed as a learning aid, the book carefully relates all of the components of standard FORTRAN IV plus some essential nonstandard features. Throughout the book all subjects taught are compared with their BASIC counterparts. This book will have you learning FORTRAN first hand, making it interesting and challenging.

242 pp. $16.95

A FORTRAN COLORING BOOK by Roger E. Kaufman

D Who says learning FORTRAN isn't fun? Inside this book are the repetitive doloop bird, your mommy's bureau drawers, and a flowchart for making a rug from bellybottom lint! You'll also find everything you need to know about programming in FORTRAN, in a very clever instructional style. Learn FORTRAN programming painlessly.

285 pp. $6.95

160 BYTE August 1979

324 pp. $10.95

APL —AN INTRODUCTION M^\\3 ^• by Howard A. Peelle •**

D This is APL for the self-taught programmer or experimenter. Nine U-Program chapters present the APL functions and expressions through examples followed by exercises designed to assure comprehension. Answers to all problems are included and access to a computer is not required. This method of learning APL won 't put you to sleep!

242 pp. $8.50

ALGORITHMS & DATA STRUCTURES = PROGRAMS by Niklaus Wirth

D "Programs, after all, are concrete formulations of abstract algorithms based on particular representations and structures of data". Niklaus Wirth here presents the fundamental concepts of algorithms and data structures and their interdependence. In his lucid treatment he covers fundamental data structures, sorting, recursive algorithms, dynamic information structures, language structures and compilers, using PASCAL in the examples and exercises. An important text.

366 pp. Hardcover $19.95

Working in assembly languages? Good programming deserves good Protect your efforts using

documentation.

,TM

The Bits Programmer Pad

See ad on page 117

L€nRNING

6502 APPLICATIONS BOOK by Rodnay Zaks

n 6502 microcomputer board users, here's your book! It is the key to putting your KIM, 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. Applications examples include displays, computer music, alarms, and A/D conversion. Standard peripheral interfacing is explained. The appendices contain applications programs and a 6502 assembler in BASIC. The only prerequisite is some familiarity with 6502 assembly language programming. This is the definitive 6502 "input/output" book. Get it!

284 pp. $12.95

PROGRAMMING THE 6502 by Rodnay Zaks

D Here is the 6502 microprocessor from top to bottom: basic concepts, hardware organization, basic programming techniques, the 6502 instruction set, addressing techniques, input-output techniques, data structures and program development. This book is a systematic course in 6502 assembly language programming, including excercises and application examples. Solid for you KIM and Apple users!

304 pp. $10.95

^&^^

LIVING

FUNDAMENTALS OF RECORDKEEPING AND FINANCE FOR

THE SMALL BUSINESS

by Robert C. Ragan, CPA, And Jack Zwick, Ph.D.

D Once you have your organization or business up and running, records must be kept. What should I keep, and how do I record them? 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 a starting point for owner-managers who want to sharpen their financial 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 business or get an existing business out of neutral and into high gear. Written for the person willing to work hard at being successful in business, it is intended to save time, money and possible heartache by eliminating false starts and "blind alley" approches where appropriate. All drawn from the author's extensive experience in entrepreneurial business. This is the most comprehensive reference we've seen on the subject. For the programmer-consultant or the basement homebrewerturned-entrepreneur, this is your book. It is recommended in the Bank of America Small Business Reporter and Changing Times magazines.

372 pp. Hardcover $14.95

3v3S^

^vvW®'

RUNNING WILD

THE NEXT INDUSTRIAL REVOLUTION

by Adam Osborne

D Many of the uses to which computers are being put today could cause profound problems tomorrow. In industry, government, medicine and commerce, the full effects of computer technology - the next industrial revolution - have not yet been realized. That is why Running Wild has been written. Dr. Adam Osborne, a well-known writer and consultant in the world of microelectronics, has written this book for the layman. Its purpose 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 N\^V\j *

by Donald M. DIble »^

D So you've written a program that's of use to microcomputerists everywhere? Got a circuit the world's waiting for. The next crucial step is to secure rewards for your ideas and work. This book is a distillation of the latest information available covering trademarks, copyrights and patents. Each topic is covered in a simple stand-alone style designed to communicate all of the essential points with a minimum of legalistic jargon. As an entrepreneur you should be familiar with your rights and responsibilities under these laws.

254pp. Hardcover $10.00

BITS

TM

DIAL YOUR BANK CARD ORDERS TOLL FREE 800-258-5477

inc

Bool^s to erase the impossible

25 Route 101 OJest, PC Box 428, Peterborough, NH 03458

Name

Adrire.s.s

City

State

Zip

[J Check enclosed

n Master Charge

n VISA

Card#

Expire.1

Signature

QTY.

TITLE

PRICE

TOTAL

Doc-TAz-c o $-75 for each book domestic u A Kin, ,M^ $■• -00 for each book foreign

P&H

"^^ (maximum postal charge - $3.00)

Total

(in N.H. dial 924-3355) MON-FRI 9-5 Jgt

181089

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 programmer mechanisms for simplifying and clarifying programs. Viewed from the distance that mathematicians such as myself prefer, away from the distractions of detail, LISP stands out as the first language to pay serious attention to the following issues:

• Mobility of data.

• Modularity of function.

• Declarative programming.

• Metalinguistics (the ability of a language to talk about language).

Since the development of LISP, two other languages (APL and, to a lesser extent, SNOBOL) have joined LISP in dealing with at least some of these issues. As such, one would assume that they would have improved on LISP. I believe that LISP outclasses these languages despite its having been developed earlier. Other languages, such as FORTRAN, BASIC, ALGOL, PL/I, and Pascal (or FBAPP as Professor Alan Perils of Yale University refers to them collectively) are, in Perils' opinion and mine, not in the same class as LISP and APL with respect to the issues discussed here. (I do not know Professor Perils' opinion of SNOBOL.)

Mobility of Data

In a computer, data flows between three major classes of sites: storage, functions, and devices. Storage consists of registers and main memory in assembly language, and variables (simple and subscripted) in higher level languages. Functions (or procedures, or subroutines) are quite alike in all languages, though with minor technical

About the Author:

Vaughan Pratt joined the MIT faculty in 1972 in the Department of Electrical Engineering and Computer Science and is associated with the Laboratory for Computer Science and Artificial Intelligence Laboratory. He received his PhD under Donald Knuth at Stanford University (Shell Sort and Sorting Networks). He is currently the head of the Theory of Computation Section at the Laboratory for Computer Science. His work includes natural language, algorithms, program semantics, 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 programmer for expediting this flow of data are fetch and store instructions, parameter passing and value returning constructs, and read and write commands.

A mobile datum is one which can be moved from one site 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? For example, on your microprocessor, can you move a 2 byte address around as a unit, or do you have to move each byte separately? In your favorite language, can you read in an array from floppy disk or paper tape using one instruction, or must you write a loop to read the array elements individually?

Length test. Are intermediate sites needed to get data from one site to another? For example, to take the logarithm of a number that the user types in from a keyboard, do you have to store the number in a variable first 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 two steps, requires six steps altogether.

It is often possible to enhance the mobility of data by writing the appropriate subroutines. For example you might write a routine to read an array from a device. This observation shows that mobility is a concept that is relative both to the available programming language constructs and to the available software.

Promised mobility is the possibility of writing such subroutines. Promised mobility is not as good as real mobility, as it requires the programmer to do the work of supplying the mobility, which may be more effort than it is worth for the particular application the programmer has in mind.

One basis for classifying programming languages is the mobility of their data types in the absence of additional subroutines such as the above mentioned one for reading

162 August 1979 © BYTE Publications Inc

RADIO SHACK COMPUTER OWNERS

TRS80

MONTHLY NEWSLETTER

/

^

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

iCQUIRJTHQWlCS"

M&T>^KVcncAL AW^-Ctfnorse S€f^v/ce~

Box 149 New City, New York 10956

ONE YEAR SUBSCRIPTION $24 _ TWO YEAR SUBSCRIPTION $48 _ SAMPLE OF LATEST ISSUE $4

HOUR 94 ORDER ^^ LINE (914) 425-1535

.^

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 even then generally not for I/O (input/output). Only numbers and Booleans, and sometimes strings, are truly mobile in BASIC, FORTRAN, and ALGOL.

The major languages developed in the 1950s and 1960s whose structured data types are mobile are (in order of development) LISP, APL, and SNOBOL, the respective types being lists, arrays, and strings. LISP and APL also have mobile strings. In LISP, atoms serve as strings. In APL, a vector of characters is printed without spaces between its characters and so can play the role of a string. LISP and SNOBOL have arrays that are not nearly as mobile as APL's arrays, though some implementations of LISP come close, namely to within the ability to read and write them from and to devices.

Lists are preferable to arrays as a general-purpose data type since anything that an array can represent can be conveniently represented by a list, whereas the converse is far from true. You can't have arrays of differently shaped arrays in APL, for example: LISP, however, permits any data type to be a list element. In this respect, APL data types are not fully mobile with respect to array elements 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 relatively light use of random access. (This is a potential source of endless and quite technical debate between LISP and APL enthusiasts, and is not by any means an easy issue to

WINCHESTER DRIVE CONTROLLER

The XCOMP DC/M Controller provides the OEM with a high performance, low cost interface to the Marksman® drive. An eight bit bus permits the DC/M to be used with all popular microcomputers.

H

IM^BvM*

XCOMP

INCORPORATED

9915-A Businesspark Ave., San Diego, CA 92131 • (714) 271-8730

dismiss.) Moreover, as compiler optimizers get progressively "smarter," it will become progressively harder to infer properties of the implementation from properties of the language definition.

For example, often the compiler has enough information to infer that a LISP list is being used array-style, and it can then choose to represent the list as an array. Conversely it may spot that an APL array would best be implemented as a LISP-style list (eg: when much concatenation of APL arrays is being performed and no random access is used).

An aspect of APL not shared with LISP is its insistence on homogeneous arrays. In APL you can have arrays of numbers, or arrays of characters, but not arrays of a mixture. An advantage of this is that you don't need to store type information for every array element, leading to efficiency gains. A disadvantage is that it restricts the programmer's options considerably. LISP programmers take full advantage of the ability to mix types in lists.

LISP and APL (and to an extent SNOBOL) have mobile expressions. In LISP you can treat the expression (PLUS X (TIMES Y 5)) as an ordinary datum. It can be bound, that is, assigned to variables, passed as an argument to a function, returned as the value of the function, printed out, and read back a year later, still meaning the same thing. And, of course, it can be evaluated by applying the LISP function EVAL to it.

The mobility of an expression is inherited from that of its representing medium, just as the mobility of an integer in the range —128 to 127 is inherited from that of the 8 bit byte that represents it.

With some restrictions, the same is true of APL. The string (ie: character vector) 'X-fYX5' can be passed around just as freely in APL, and of course it can be executed by applying the APL function Execute to it. One restriction is that Execute cannot handle more than one line at a time, effectively preventing the use of APL's version of Goto in conjunction with Execute. Another restriction is that there is no APL expression whose execution results in an APL function becoming defined; instead one uses a separate function, DFX. LISP observes neither of these restrictions.

LISP goes beyond APL by also having mobile functions. From a programmer's viewpoint the main difference between an expression and a function is that functions are objects that explicitly take arguments, whereas the only way to pass information to an expression is to store it in some variables before evaluating the expression.

LISP implements mobile functions by using lambda expressions, a method of representing functions due to the logician Alonzo Church. For example, the function that computes the length of a two-dimensional vector whose coordinates are X and Y could be represented with the list:

(LAMBDA (X Y) (SQRT (PLUS (TIMES X X)

(TIMES Y Y))))

Such an object can be read, printed, assigned to variables, passed as an argument to another function, returned as the result of a function, and of course applied to 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"

^ " 1978 Michael Shrayer Check the appropriate box{es): You love typing the same copy 20 thousand times a day.

□ Your secretary can type 250 words per minute.

□ You're dying to spend $15,000 on a word processing system, just for the tax investment credit.

m All your capital assets are tied up in a 10-year supply of correction fluid.

□ You never commit a single thought to paper.

If you have checked one or more boxes, you do not need The Electric Pencil. On the other hand, you may want to join the thousands of people who haven't checked a single box.

The Electric Pencil II is a Character Oriented Word Processing System. This means that text is entered as a string of continuous characters and is manipulated as such. This allows the user enormous freedom and ease in the movement and handling of text. Since line endings are never delineated, any number of characters, words, lines or paragraphs may be inserted or deleted anywhere in the text. The entirety of the text shifts and opens up or closes as needed in full view of the user. The typing of carriage returns or word hyphenations is not required since lines of text are formatted automatically.

As text is typed and the end of a line is reached, a partially completed word is shifted to the beginning of the following line. Whenever text is inserted or deleted, existing text is pushed down or pulled up in a wrap around fashion. Everything appears on the video display as it occurs, which eliminates guesswork. Text may be reviewed at will by variable speed scrolling both in the forward and reverse directions. By using the search or search and replace functions, any string of characters may be located and/or replaced with any other string of characters as desired.

Numerous combinations of

line length, page length, line spacing and page spacing permit automatic formatting of any form. Character spacing, bold face, multicolumn and bidirectional printing are included in the Diablo versions. Multiple columns with right and left justified margins may be printed in a single pass.

IVide screen video

Versions are available for Imsai VIO video users with the huge 80x24 character screen. These versions put almost twice as many characters on the

GP/M versions

Digital Research's CP/M, as well as its derivatives, including IMDOS and CDOS, and Helios PTDOS versions are also available. There are several NEC Spinwriter print packages. A utility program that converts The Electric Pencil to CP/M to Pencil files, called CONVERT, is only $35. .

Features

• CP/M, IMDOSand HELIOS compatible

• Supports four disk drives

• Dynamic print formatting

• DIABLO and NEC printer packages

• Multi-column formatting in one pass

• Print value chaining

• Page-at-a-time scrolling

• Bidirectional multispeed scrolling controls

• Subsystem with print value scoreboard

• Automatic word and record number tally

• Cassette backup for additional storage

• Full margin control

• End-of-page control

• Non-printing text commenting

• Line and paragraph indentation

• Centering

• Underlining

• Bold face

Upgrading policy

Any version of The Electric Pencil

Have ive got a version for you?

The Electric Pencil II operates with any 8080/Z80 based microcomputer that supports a CP/M disk system and uses an Imsai VIO, Processor Tech. VDM-1, Polymorphb VTI, Solid State Music VB-1B or Vector Graphic video interface. REX versions also available. Specify when using CP/M that has been modified for Micropolis or North Star disk systems as follows: for North star add suffix A to version number; for Micropolis add suffix B, e.g.,SS-IIA, DV-IIB.

Vers.

Video

Printer

Price

SS-II

SOL

TTY or similar

$225

SP-II

VTI

TTY or similar

225

SV-II

VDM

TTY or similar

225

SR-II

REX

TTY or similar

250

Sl-ll

VIO

TTY or similar

250

DS-ll

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-ll

SOL

NEC Spinwriter

275

NP--11

VTI

NEC Spinwriter

275

NV-ll

VDM

NEC Spinwriter

275

NR-II

REX

NEC Spinwriter

300

NI-11

VIO

NEC Spinwriter

300

SSH

SOL

Helios/TTY

250

DSH

SOL

Helios/Diablo

300

MICHAEL SHRAYER SOFTWARE, INC

1253 Vista Superba Drive

Glendale,CA. 91205

(213)956-1593

may be upgraded at any time by simply returning the original disk or cassette and the price difference between versions, plus $15 to Michael Shrayer Software. Only the originally purchased cassette or diskette will be accepted for upgrading under this policy.

Attention: TRS'80 Users!

The Electric Pencil has been designed to work with both Level I (16K system) and Level II models of the TRS-80, and with virtually any printer you choose. Two versions, one for use with cassette, and one for use with disk, are available on cassette. The TRS-80 disk version is easily transferred to disk and is fully interactive with the READ, WRITE, DIR, and KILL routines of TRSDOS 2.1. Version Storage Price

TRC Cassette $100. TRD Disk $150.

illl

Demand a demo from your dealer!

Circle 319 on inquiry card.

BYTE Augusl 1979 165

Up Your Output.

TEMPOS

MULTI-TASKING!

The TEMPOS Operating System is quickly becoming the standard in MultiUser, Multi-Tasking operating systems for 8080 and Z80 microcomputers. Multi-Tasking means that, even with only one user at one terminal, more than one job can be running on the system simu/faneous/y.' If you have ever had to go get a cup of coffee while you wait lor your computer to print listings, you know the advantages of a system that will handle one job while you are working on another. TEMPOS is a true time sharing system, and the maximum number of jobs is limited only by your memory.

MULTI-USER!

Want to share your computer with another user? With TEMPOS all it takes is another terminal... up to seven interactive terminals are allowed! And with Re-Entrant programs, each user does not need a complete copy in memory. We include three Re-Entrant programs {the OPUS/THREE HighLevel Language, the TEXTED Text Editor, and FILES, a disc file directory/manipulator) or write your own! In addition, we include an assembler, a linking loader, over a half-dozen other utility programs and over 60 system subroutines, callable by the programmer!

PROVEN!

With TEMPOS, you get a package that has been tested in our facilities for over two years, and in the field at over 50 different installations. We have used this system ourselves for everything from writing high-level languages to developing applications to text editing to games. TEMPOS is undoubtedly the most flexible software tool on the market. . . and you can have it for much less than you think!

COMPATIBLE!

TEMPOS is available for many different systems; pre-written drivers may include yours. Or, using our interactive System Generation Routine, you can add your own. Call or write now for our free catalog and the name of a dealer near you. The TEMPOS Operating System is available for $787.00, the manual set (price may be credited toward the purchase of the TEMPOS package) for $21.50 (prices include shipping within the U.S.).

ADMINISTRATIVE DDSYSTEMS

nnniNC

DD

1642 S. Parker Road, Suite 300, Denver, Colorado 80231 (303) 755-9694

166 August 1979 © BYTE Publications Inc Cifcle 8 On Inquiry Card.

ning the program (APPLY (READ) (LIST 3 4)) would cause the function typed in response to the Read to be applied to the list of arguments (3 4). If the user typed in the above lambda expression, the result would be 5.

The closest APL can come to this is to have a name of a function, say ZOT, be a datum. To apply the function so named in APL, one would concatenate the name with the argument(s), say 3, then Execute the resulting program "ZOT 3". The catch is that names on their own mean nothing: the technique will not work if the name is not defined, or if somebody changes its definition. Thus if you print the name of an APL function on a device from which you want to read it back in later, the original definition may in the meantime change or disappear from the workspace. This difficulty does not arise with lambda expressions, which contain their own definition. Thus functions have at best limited mobility in APL.

The notion of mobility, perhaps surprisingly, is not a concept that many people are familiar with. In hindsight it is clear that mobility was a concern, whether or not a subconscious one, for the designers of LISP, APL and SNOBOL. The late Christopher Strachey, a British computer scientist, made the distinction between "first and second class citizens" when discussing data, the former being what I have called mobile data. The first published reference to the concept appears to have been made in 1968 by another British computer scientist, Robin Popplestone, in a description of the virtues of his language POP-2. Popplestone did not use the word "mobile" either, talking instead in terms of a "charter of rights" for data.

Modularity of Function

Subroutine libraries have something that programming languages often lack, and that is modularity of function. One does not view a subroutine library as a monolith but rather as a loosely coupled set of subroutines. The term subset, often applied in a vague way to programming languages, has an obvious and precise meaning for subroutine libraries.

LISP and APL, in contrast, are each just like a subroutine library, being little more than a set of functions. The user may add to this set by getting more functions from whatever subroutine library is maintained by the local environment. And the user's program itself consists of a set of functions. Any of these functions can be invoked from the user's terminal or from the user's or any other program. All three kinds are invoked with identical syntax (within each language), in LISP:

(Function Argl Arg2 ...Argn) in APL:

op X for unary functions X op y for binary functions, assuming right associativity

The conventions for representing lists, LISP's primary structured data type, are the same for representing programs. Since those conventions are simple, there is little to learn. In this respect LISP differs from APL, which has

a convention for representing the structure of its programs (namely the invocation of the right-associativity rule, that x op y op z is read as x op (y op z) that has no analog in the representation of APL data.

I should add that my own preference in programming in LISP is to use an ALGOL-like language, CGOL, which is then automatically translated to LISP. Despite the regular and easily learned syntax of LISP, I do not like having to write x-|-y as (PLUS X Y). I do too much mathematics to feel comfortable switching representations in order to program. Fortunately it is not necessary to compromise functional modularity in order to use other syntactic conventions. If I were an APL programmer I would want to do the same thing: have a syntactic preprocessor that permitted me to use the syntax I felt most comfortable with.

Declarative Programming

Here is an innocent looking pair of equations:

(a-l-1) Xb = aXb + b 0 X b = 0

What sets these equations apart from the millions of other equations I could have written is that these permit me to convert any method for adding into a method for multiplying nonnegative integers. Suppose, for example, I want to multiply 3 by 7. Since 3 = 2-1-1, I can use the equation to express 3X7 as 2X7-1-7, reducing the original problem to a smaller one which can be solved by the same method. Eventually I have (((0X7-l-7)-l-7)-t-7, which the second equation turns into ((0 + 7)-I-7)-I-7. Using the method for adding, three times, I end up with the desired answer.

Turning these equations into a LISP program to give a recursive definition of (TIMES A B) is an essentially mechanical procedure yielding:

(COND ((ZEROP A) 0)

(T (PLUS (TIMES (SUBl A) B) B)))

or in the "syntactically sugared" version of LISP referred to earlier:

if a = 0 then 0 else (a-l)*b-l-b

The significance of this example lies in two observations: first, the facts were so obvious it was hard to make a mistake; and secondly, the procedure for converting those facts into something we could run as a program was so stereotyped and straightforward (match the problem against the lefthand side of an equation, replace it by the corresponding righthand side) that, again, it was hard to make a mistake.

Programming in LISP comes close enough to this declarative style to make programming a remarkably error-free process.To those who can read LISP, a wellwritten LISP program will look like a collection of facts. The subtlety of the program then amounts to the subtlety of the facts. If the facts are obvious, as with the above, there is little to explain. If the facts are not obvious, then you have a program that needs to be proved correct.

mM

Software Tools

Have you thought about text editing ?

Our ED-80 Text Editor offers a refreshing new approach for the creation and editing of program and data files conversationally - and it saves money! Its powerful editing capabilities will satisfy the most demanding professional - yet It can still be easily used by the inexperienced beginner.

Look at these outstanding features:

■ By far the best text editor available for microcomputerbased systems.

■ Repays its initial cost many times over with its unique time-saving editing capabilities.

■ FULL SCREEN windows displays for viewing and editing data a page-at-a-time, rather than line-by-line.

■ Forward and backward scrolling in the FULL SCREEN mode.

■ Displays the results of every edit command.

■ Commands include forward or backward Locate and Change, Insert, Delete, Replace, Inline, Input, Print, List, Window, Get, Put, Macro, Tabset, Append, Case, Scale, and Dump.

■ Simple line-oriented commands with character string manipulation capabilities.

■ Text may be located by string value, by line number, or by relative line number.

■ Global string search and replace capabilities.

■ Commands for moving, copying, and merging edit files on the same or different diskettes.

■ Self-explanatory diagnostic messages.

■ Single keystrokes for the most commonly used comands.

■ Safeguards to prevent catastrophic user errors that result in loss of the edit file.

■ Designed for today's high speed CRT's, video monitors, and teletypewriter terminals.

■ Thoroughly field tested and documented with a User's Manual of over 60 pages.

■ Compatible with existing CP/M edit files and derivative operating systems.

And remember - in today's interactive programming environment - the programmer's most important software development tool is the text editor. Our ED-80 Text Editor is working in industry, government, universities, and in personal computing to significantly cut program development time and high labor costs. Why not let ED-80 begin solving your text editing problems today?

Mail to: SOFTWARE DEVELOPMENT t TRAINING, INC. P.O. Box4511, Huntsville, AL 35802 ED-80 is protected by copyrifht and furnithed jndcr a paid-up licenie lor use on a singie computer system. G Please send additional information.

n Send Diskette, User's Manual, and paid-up license agreement $99.00

Specify SINGLE DENSITY Diskette size D 5" D 8"

n Send User's Manual (credited on purcliase of a paid-up license) $10.00

□ Ctieck or money order enclosed for $

n Please charge to my credit card D VISA D Master Ctiarge

Card No Bank No Exp.Date

NAME

ADDRESS

CITY STATE ZIP

SIGNATURE .

Cl

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 simplification Natural language Automatic theorem proving Program verification Automatic programming Knowledge'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, the mobility of LISP's structured data types makes it possible to apply the same method to writing programs that operate on lists, functions, programs, and so on.

My own research includes developing and testing new algorithms for a variety of problems. For the sake of ease of implementation and short debugging time, my style is, as far as possible, to set down the facts relevant to the computation and express them as LISP functions. Thanks to the quality of the LISP compiler used at MIT, I can produce reasonably efficient programs, in many cases as efficient as if I had adopted a more traditional style of programming with while loops and assignments. (One thing I miss, however, is the ability to just write down the pure equations and have a preprocessor automatically combine them into a single LISP program.)

My prime testing program referred to in Martin Gardner's "Mathematical Games" column in the August 1978 Scientific American is written entirely in this style. Some of the facts it uses are obvious ones concerning such topics as exponentiation modulo n. Some of the facts however are considerably deeper and were first proved by the well-known computer scientist Michael Rabin.

Rewriting this particular program in some other programming style would achieve little, if anything, in the way of efficiency. It would, however, make it harder to see the connection between the collection of facts supporting the method and the program itself. Rewriting the program in another programming language while preserving the declarative style would be possible provided recursion was permitted and numbers were mobile. A problem here is that numbers of the size my program works with, up to 1000 decimal digits, are not merely immobile in most languages, they do not even exist. The implementation at MIT is one of the implementations which takes much effort to protect the programmer from frequent painful encounters with boundaries by not limiting the size of integers.

This principle of executing facts as programs has encouraged people to generalize the idea to other facts besides equations, and a series of programming languages have evolved based on this generalization, two of the more prominent ones being Planner and Prolog.

Metalanguage

Meta is Greek for about. LISP lists can be used, inter alia, to represent expressions in various languages. Thus LISP makes an ideal metalanguage, a language for talking about language. As such, LISP finds applications in a large variety of areas dealing with the processing in language, as shown in table 1.

In all of these areas, the expressions of the language in question are treated as structures rather than as strings.

Structures represent the level of language processing where the real action takes place. Parsing (eg: converting strings to structures) may present more or less of a challenge depending on the area, but the general feeling in most such areas is that it is what takes place after parsing that is more interesting.

What makes LISP particularly well-suited to these applications is that they frequently call for operations on expressions that are best viewed recursively as facts and procedures stated in terms of the immediate constituents of the expressions. This is an instance of the declarative style described earlier, for the case when the data are expressions.

To take an example from algebraic simplification, the derivative of an expression can be defined in terms of the derivatives 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 complicated algebraic 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 is straightforward to construct a recursive LISP program for differentiating algebraic expressions.

A helpful way to think about the principle illustrated by the above is to view the equations from which the LISP programs are derived as dealing with only a small region of an expression at a time. While algebra tends to supply particularly nice examples of this principle, the principle in one form or another pervades essentially all areas where linguistic structures are encountered.

Conclusion

This discussion of LISP has confined itself to those aspects of LISP directly visible to the user. It has not considered LISP's substantial contributions to language implementation technology, such as garbage collection, the interpreter/compiler dichotomy, and dynamic module linking in place of the usually more static linking loader. It did consider LISP's relation to other languages, finding APL to be as good as LISP in some respects, but lacking in some particularly vital areas.

While it is difficult to consider LISP unique in any single one of its aspects, when looked at as a whole LISP stands out as a quite remarkable and original language that does credit to its inventor, John McCarthy. ■

168 August 1979 © BYTE Publications Inc

CBASIC Business Software for Microcomputers

Osborne & Associates is publishing CBASIC editions of its business software books, Payroll With Cost Accounting, Accounts Payable and Accounts Receivable and General Ledger. The CBASIC programs in these new editions will run on many floppy disk-based microcomputer systems.

PAYROLL WITH COST ACCOUNTING

ACCOUNTS PAYABLE AND ACCOUNTS RECEIVABLE

GENERAL LEDGER

Each book includes complete source listings with remarks, program and system documentation, and an operator's manual. All this for just $15.00! The softbound Wang BASIC versions of all three books are available now. CBASIC Payroll With Cost Accounting is also available now. The remaining books in the CBASIC series will be published in the fall of 1979. The new CBASIC-2 editions are in a convenient, loose-leaf format.

Not a programmer? Don't want to key in thousands of lines of source code from the book? You can buy the programs ready-to-run on floppy disk from one of our 200 dealers. Contact us for the name of your nearest dealer.

CBASIC or Wang BASIC won't work? Here is a partial list of independent consultants who have converted Osborne programs to run on many popular systems using our books as their manuals. Contact us for a complete, up-to-date list of these 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 programs on 8" floppy disks to dealers, consultants and computer stores only. The disk for each book sells 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 written your operator's manuals—our books! We grant you the unrestricted right to use, transfer, or otherwise deal in any way with the machine-readable form of our BASIC programs. We copyright only the printed word in our books.

ALPHA MICRO:

Peler Burke

THE BASIC BUSINESS SOFTWARE CO.. INC P.O. Box 2032

Sail Lake City. Ulah 74110 (801) .163-1199 APPLE II: Jimmy Waller

A.C.E, COMPUTER SYSTEMS 2449 North Westshore Tampa, Florida 33607 (813) 872-2798

COMMODORE PET:

Chuck Sluarl

CMS SOFTWARE

51 \5 Mencfee Drive

Dallas, Texas 75227 (214) 381-0690 CROMEMCO:

Richard French

THE NETWORK COMPUTER SYSTEMS

495 Third Avenue #8

San Francisco, California 94118 (415) 668-7777 DATAPOINT 1500:

Paul Marchetti

OCCIDENTAL COMPUTER SYSTEMS, INC.

6666 Valjcan Avenue

Van Nuys, California 91406 (213) 782-.1005 MICROPOLIS, NORTHSTAR (REQUIRES CP/M):

James Rounirce

R&A COMPUTER SERVICES

7700 Edgewaler Drive. Suite 723

Oakland. California 94621 (415)562-3133 MICROSOFT disk BASIC:

Dan Kindred

GNAT COMPUTERS

7895 Convoy Court

San Diego. California 92111 (714) 560-0433 NORTHSTAR BASIC:

Isaac Bornstein

COMPUTER SERVICES OF ENCINITAS

341 WiUowspring Drive

Encinitas, California 92024 (714) 436-2486 POLYMORPHIC 8813:

Bruno Caprez.

KEYSTONE SYSTEMS

P.O. Box 767

Spokane, Wa.shinglon 99210 (509)747-5623 TRS-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 Raftiel, California 94903 (4151 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:

Stale:

. Zip: .

Phone:.

^j \ 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

n .All ioreign orders $4.00 per book tor iiirmail . n $0.45 per book 4th class in the U.S.(allow 3-4 weeks) ''''""^ D $0.75 per book UPS in the U.S. (allow 10 days) Total Amount Enclosed

n SI.50 per book special rush shipment by air in the U.S.

Calif, residcnls add 6% sales tax.

S.F. BART residcnls add 6-1/2 % sales I;u,

D I am an end user iniercstcd in running CBASIC programs on disk. Please nolify me of the closest dealer Tor;

D I am a dealer interested in purchasing CBASIC programs on disk for resale Please send description and order information for:

D CBASIC Payroll With Cost Accouniing D CBASIC Accounts Payable/Receivable D CBASIC General Ledger

Please send the following information: D Becoming an Osborne dealer a School discounts

D List of foreign distributors

n Other Osborne publications

n Please send me the current conversion I

Payment in advance must be enclosed for purchases of up to $70.00. Invoicing U.S. purchases over $70.00 available upon approval of your account. All foreign orders must be prepaid in U.S. dollars drawn on a U. S. bank.

Circle 292 on inquiry card.

S1034 BYTE August 1979 169

A Preview of the Motorola 68000

A I Halsema

4921 Patrae St

Los Angeles CA 90066

It is difficult to classify the new Motorola 68000 processor. It seems incongruous to call a machine with 32 bit wide data paths a microcomputer. The 68000 should be available in late 1979. As this is being written, the architecture of the machine has been frozen, and the microcode is nearing

completion. A user programmable, on chip, control memory for dynamically changing the machine's instruction set is not planned, but you may be able to specify your own microcode, which is burned into an on chip read only control memory at the factory.

vcc

GND CLK

FCO FCT

E ♦VMA -VP A — RES «HLT —

BERR

c

MC68000

ADDRESS ) (Al -A23

}

:>

(D0-D15)

AS

R/W

UDS

-* LOS

BR BG

BGACK

lACK fPLO iTUi [PL2

Figure 1: Pin assignments for the Motorola 68000 package. A description of the functions of the different pins is found in table 1. Figure reproduced courtesy of Motorola Semiconductor Products Inc.

Using HMOS (high density metal oxide silicon), the 68000 will come in a 64 pin package (see figure 1). Capable of directly addressing up to 16 M bytes (actually 2^4 = 16,777,216 bytes) of memory, the 68000 is about 15 times more complex than the 6800 (coincidentally it has about 68,000 transistors on the chip, and has about 10 times greater throughput). External data paths are 16 bits wide and access memory that is organized as bytes. Through the use of a signal called VPA (valid peripheral address), the 68000 will be able to use the slower 6800 peripheral devices.

Internally the 68000 is an orthogonal and consistent machine, with 16 identical 32 bit accumulators, 61 basic mnemonics (shown in table 2), which can be used with any of the 14 addressing modes and any of the six data types. See figure 2 for an illustration of the programming model. The five basic addressing modes are register direct, register indirect, absolute, immediate, and program counter relative. The ability to do postincrementing, predecrementing, offsetting, and indexing is included. Data types recognized by the machine are bits, bytes, BCD (binary coded decimal) digits, ASCII characters, 16

About the Author

AillU Ian Halsema has worked as a programmer since 1971. He is now a senior member of the programming staff at Xerox Corp. His personal computer system includes a Southwest Technical Products Co 6800 and Okidata CP-110 printer.

170 August 1979 © BYTE Publications Inc

bit words, and 32 bit long words. By combining the instructions, data types, and addressing modes, more than 1000 instructions are available.

Some of the more interesting instructions are PACK (pack ASCII to BCD digit form), UNPK (unpack from BCD digits to ASCII), CHK (check register against bounds), TRAP (provides access to 16 software trap vectors), LINK, and UNLK (linked list operations). With eight levels of priority interrupts, this machine can access 256 interrupt vectors. Hardware traps to catch software errors include word access with odd address, illegal instruction, unimplemented instruction, illegal addressing mode, illegal memory access, overflow on divide, and overflow condition code. Through the use of the unimplemented instruction trap, the user can implement his own operation codes (in a fashion similar to SVC on the IBM 360/370 systems).

Designed with timesharing in mind, the 68000 has supervisory and user states, with the ability to run eight tasks in the user state simultaneously. Supervisory state makes certain instructions legal for operating a separate memory management controller. This controller will provide dynamic management of memory segments that contain read only data, read/write data, program code, or protected data or code. As an aid in debugging, the machine includes a bit in the status register that, when set, puts the machine into single step operation.

The 68000 instruction set was designed by programmers for programmers, and is designed for ease of use in compiler generation and timesharing system implementation. The orthogonality referred to above reduces the number of details the programmer must keep in mind when programming — a register is a register like any other on the machine, with no special conditions restricting register use.

Applications

Computers are useful for processing vast amounts of data, and for performing long repetitive sequences of operations. Since the personal computer enthusiast has neither the facilities nor the time to collect large amounts of data for processing, the computer 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

DTACK BR

Data Transfer Acknowledge Bus Request

BG

Bus Grant

BGACK

lACK

IPLO, IPL1, IPL2 FCO, FC1

Bus Grant

Acknowledge

Interrupt

Acknowledge

Interrupt Priority

Level

Function Code

CLK

Clock

RES

Reset

HLT BERR

Halt Bus Error

E VPA

VMA

gI^d

Enable

Valid Periptieral

Address

Valid Memory

Address

+ 5 V

Ground (two pins)

23 bit address bus; capable of addressing 16,777,216 bytes in conjunction witti UDS and LDS.

16 bit data bus; transfers 8 or 16 bits of information.

Indicates valid address and provides a bus lock for Indivisible operations.

Defines bus operation as Read or Write and controls external bus buffers. Identifies the byte(s) to be operated on according to R/W and AS.

Allows ttie bus cycle to synchronize with slow devices or memories.

Input to the processor from a device requesting the bus.

Output from the processor granting bus arbitration.

Confirmation signal from BG indicating a valid selection from the arbitration process. Identifies that the bus is performing an Interrupt service cycle.

Provides the priority level of the interrupting function to the processor.

Provides external devices with information about the current bus cycle.

Master TTL (transistor-transistor logic) input clock to the processor.

Provides reset (initialization) signal to the processor and peripheral devices. Stops the processor and allows single stepping. Provides termination of a bus cycle if no response or an invalid response is received. Enable clock for M6800 systems. Identifies addressed area as a 6800 compatible area.

Indicates to 6800 family devices that a valid address is on the bus.

Table 1: Description of pin functions on 68000 processor.

the second mode (number crunching). Today's microprocessors fail miserably as number crunchers due to low speeds and limited amounts of memory space. The 68000 will correct these deficiencies. (Coupled with the new low cost, high density memory devices with 64 K bit capacity and with even greater density coming, the personal computer will attain or exceed the power of an IBM 360 Model 30 within the next decade.) Number crunching applications requiring little external storage (ie: disk or drum) include artificial intelligence, encryption/decryption, simulation, games, and Dynabook type applications. [See the article by Alan Kay on page 230 of the September 1977 Scientific American for a general description of small talk, a software system intended for small portable Dynabook computers CH]

Artificial intelligence attempts to provide the computer with the ability to learn from past experience (ie: heuristic procedures), and to simulate

operations of the human brain in recognizing patterns. Brain simulations are generally performed using arrays in memory as brain cells, with software logic taking the part of the complex interconnections between cells. Array arithmetic requires a fair amount of processing power. Such power is not available on 8 bit machines.

A common array operation in artificial intelligence is finding the inner or dot product of two arrays. If array X represents a set of cell states, and array D represents data upon which the "brain" is to work, then the inner product of the two arrays is represented by: z = XiDi + X2D2 + ...-(-XnDn, where z might be the result of a vote taken by n cells of the "brain" in a committee network. This calculation can be very slow on an 8 bit machine without hardware multiply, and exceedingly slow if the arrays are large or each element is several bytes long. Multidimensional arrays take up large amounts of

August 1979 © BYTE Publications Inc 171

PROGRAMMING MODEL

31

16 15 8 7

0

DO

Dl

D2

'

D3

EIGHT

_

DATA

D4 D5

REGISTERS

06

D7

31

16 15

0

AO

Al

A2

A3

EIGHT

ADDRESS

A5

REGISTERS

1

A6 A7

A7'

USER STACK POINTER

SUPERVISORY STACK POINTER

23

0

PROGRAM

1

COUNTER

15 e

7 0

STATUS

REGISTER

STATUS REGISTER

15

13

10

8

4

0

T

i

S

i

i

iz

ii

lo

1

W^/<

X

N

Z

V

c

TRACE MODE

SUPERVISORY

INTERRUPT MASK

EXTEND

NEGATIVE

ZERO

OVERFLOW

CARRY

Figure 2: Programming model and register organization for the Motorola 68000 processor. Note that the data registers and address registers are functionally identical except for register A7. AT, the supervisory mode stack pointer, is not available to the programmer. Figure reproduced courtesy of Motorola Semiconductor Products Inc.

memory space which today's microprocessors cannot support.

Modern methods of encrypting and decrypting messages can require large amounts of processing power. As an example, the method for obtaining digital signatures and public key cryptosystems developed by R L Rivest (a "trapdoor" system) requires raising the message text to a power and dividing by two large secret prime numbers. Large means anything from 50 to 500 digits, with the larger numbers giving greater security. The mathematical operations of raising to a power, performing lengthy divisions, and finding the large prime numbers (which need be done only once) cannot feasibly be performed on an 8-bit machine, but come within the realm of the possible when using the 68000.

A simple example that the reader can program involves finding the Godel number (named after the mathematician who discovered them) which encrypts a word or message. Each character in the message is represented by the natural order of primes (2, 3, 5, 7, 11, 13, ...etc). The identity of the letter occupying a position in the message is given by an exponent: the exponent 1 meaning that the letter is an A, 2 meaning a B, etc. The message as a whole is then rendered as the product of all the bases and exponents. For example, the word "CAB" can be represented as 23X31X52 or 600 (8X3X25 = 600). Decode the message by dividing the product by each prime number until a remainder appears. The number of divisions is the exponent representing a particular character. Regardless of how the problem is ordered, much computation is required to find the prime numbers, exponentiate, and multiply. This gives you an idea of the sort of processing power required for a full public key cryptosystem.

Games and simulations can become more complex. A space war game was programmed nearly a decade ago at Massachusetts Institute of Technology that included realistic simulations of orbital mechanics in the vicinity of a planet or star. A space war game with simulations of relativistic effects at near light speeds could be challenging both for the

172 AugusI 1979 © BYTE Publications Inc

"THE ORIGINAL"

I Personal C Computing

Plan Now to attend the best Personal Computing show ever.

Friday, Saturday, Sunday October 5-6-7th Philadelphia Civic Center

Philadelphia, Pa.

PC 79

®

Don't be confused — Other shows are copying us but they cannot equal us. We are the Original Personal Computing 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

and Business Software

For more information and a Free subscription to our "PERSONAL COMPUTING" newspaper, send your name and address to:

PERSONAL COMPUTING 79

Rt. 1, Box 242 . IVIays 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. Simulations of nonlinear and dynamic processes require the large amounts of computing power made available by the 68000. High resolution graphics require the large address space provided by the 68000, and with sufficient processing speed, true real time animation can be created. Dynabook is a project headed by

Alan Kay at Xerox Corporation's Palo Alto Research Center. One of the objects is to provide the power of a medium size computer in a package the size of one encyclopedia volume. The 68000 computer, bubble memories, and low cost semiconductor memories bring this target within reach. With 8 simultaneous tasks, the owner 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 processing, another for memos, reminders, and schedules, and yet another for text processing, and still have 3 other tasks available for long-term number crunching, games, or whatever the imagination can visualize. With as much as 16 M bytes of memory, each task could be allotted 2 M bytes. This amount of storage is difficult to comprehend, but for comparison, the text of this article requires about 10,000 bytes of storage. This Dynabook system would be battery powered and portable, with a solid-state display and thin, typewriter keyboard.

There can be no doutst that the inexpensive super computer is coming. IBM estimates that an entire central processing unit with 1 M bytes of memory will fit in a cube 1 inch (2.54 cm) on a side by the end of the 1980s. [This particular device will require cooling to superconductor temperatures. ] An example of what is possible with today's technology can be seen in Texas Instruments' "Speak and Spell" toy, which for under $50 provides a keyboard, alphanumeric display, and microprocessor controlled speech feedback with a vocabulary of about 250 words and numerous messages and phrases. The functions that can be performed by the Motorola 68000 and the new generation of microprocessors it represents are limited only by the imagination.!

Table 2: Instruction set of 68000 processor. Operation of instructions is as consistent as possible.

BIBLIOGRAPHY

1. Feucht, Dennis, "Pattern Recognition: Basic Concepts and Implementation," Computer Design, December 1977, pages 57 thru 68.

2. Kay, Alan C, "Microelectronics and the Personal Computer," Scientific American, volume 237, number 3, September 1977, page 230.

3. Rivest, R L; Shamir, A; Adieman, L, "A Method for Obtaining Digital Signatures and Public-Key Cryptosystems," Communications of the ACM, volume 21, number 2, February 1978, pages 120 thru 126.

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 more of our production is being devoted to non-kit products ... not only is there increased demand for our standard assembled & tested models, but the high-reliability Certified System Component boards (with 200 hour burn-in and immediate replacement in event of failure within 1 year of invoice date) are really taking off. Kit builders need not fear, however; when economy is paramount, most CompuPro products are also available in "unl<it" form (sockets, bypass caps presoldered in place). All of this is part of our continuing commitment to provide the best possible products at the lowest possible prices ... the same commitment responsible for making us an industry leader in the first place.

THE ECONORfiM* MEMORY LINE:

LOW POWER mo LOW PRICE MEET HIGH TECHNOLOGY.

Name

Storage

Buss

Speed

Tectinology

Configuration

Unkit

Assm

esc

Econoram MA

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 filpha Micro Systems.

Marinchip, etc.)

Econoram Xii-16

16KX8

S-100

4 MHz

static

2 indep. banl<s**

$369

$419

$ 519

Econoram XII-24

24KX8

S-100

4 MHz

static

2 indep. banl<s**

$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 Xil-16 and

24 have 2 independent banks addressable on 8K boundaries; Econoram XIII tias 2 independent banks addressable

on 16K boundaries.

SPECIAL SUMMER SffLE: 16K MEMORY EXPffNSION CHIP SET-H99-$87.20

20% off one of our all-tinne best sellers from July 15 to August 31 only. For Radio Shack-80, Exidy Sorcerer, Apple computers. 250 ns access time, low power parts, DIP shunts included, 1 year limited warranty, and easy-to-follow instructions tfiat make memory expansion a snap.

S-100 MOTHERBOfiRD

18 slot unkit: $124. Each motherboard includes all edge connectors wave-soldered in place for easy assembly, integral active termination circuitry, extra wide power and ground traces, and much more.

fiCTIVE TERMINfiTOR KIT $34.50

As written up by Craig Anderton in the April 79 issue of Kilobaud Microcomputing. Our much imitated design plugs into any S-100 motherboard to reduce ringing, crosstalk, noise, and other buss-related problems,

H8 EXTENDER BOfiRD KIT $39

New from Mullen Computer Products. Really takes the hassle out of troubleshooting or testing the popular Heath H8 microcomputer; includes jumper links in the power supply lines for insertion of fuses. Ammeters, current limiters, and the like.

S-100 EXTENDER BOfiRD KIT $39

From Mullen Computer Products. Includes jumper links in supply lines, on board logic probe, and general purpose "kluge board" area for installing custom testing jigs or other circuits.

DOfiL CHfiNNEL/DUfiL FUNCTION S-100 I/O BOfiRD $189 unkit, $249 assm.

This board does things the others only dream about. Features two independently addressable serial ports with full RS232C, current loop (20 mA) and TTL signals on both ports. Includes on board xtal timebase and Baud rate generator for Baud rates up to 19.2 KBaud, EIA 2320 receivers and drivers (1488,1489), hardware LSI UARTs that don't tie up the computer's CPU, operation with 2 or 4 MHz systems, software programmable UART parameters/interupt enables/handshaking lines (handshaking lines are full RS232 — not just a 3 wire system), optically isolated current loop, provision for custom frequency compensation on both receive and transmit sides to accommodate varying speed/noise situations or unusual cable lengths ... and even all this isn't the full story of what this board can do for you. See it in person at a computer store near you, or order direct from us.

2708 EROM BOfiRD "UNKIT" $85

4 independently addressable 4K blocks, with selective disable for each block. Built to CompuPro/Econoram standards (dipswitch addressing, top quality board, sockets wave-soldered in place), and includes dipswitch selectable jump start built right into the board. Includes all support chips and manual, but does not include EROMs. Special: if you order before August 1st, our introductory price of $69.95 is still in effect. Orders postmarked August 1st or later are no longer eligible for the introductory price ... no exceptions.

POPULfiR COMPUTER ICs

Low power 21L02 static IK RAMs on special: 10/$9.90 (under H per byte!) 1791 MOS LSI dual density disc controller from Western Digital: $59 with pinout and data. 1771 single density controller: $22.50. All parts are offered on a while-they-last basis.

We realize that it is becoming less and less common for manufacturers to offer their products in kit form, so we'd like to emphasize that we are not planning to phase out our kits. The "flackers" who derive enjoyment from building and testing equipment themselves were our very first customers, and we recognize that these experimentally-minded individuals have been responsible for many significant developments in the microcomputer field. As long as people want to put things together with their very own hands, we'll continue to offer kits ... and continue to repair them promptly under the terms of our 1 year limited warranty (almost always without charge), in the rare event that a problem occurs.

TERMS: Gal. res. add tax. Allow 5% shipping, excess refunded. Orders under $15 add $1 handling. VISA'"/Mastercharge*' call our 24 hour order desk at (415) 562-0636. COD OK with street address for UPS. Prices good through cover month of magazine except as noted.

Circle 150 on inquiry card.

Box 2355, Oakland Airport, CA 94614

FREE FLYER: We'll bv glad to tell

^\ /*s ps f7) (7\ nn R-. V" """'* """' "" ipots of this ad

riAlilimL°jl01 IIP pnmlts. Just sand your name and

from iDlvI/^^ V2/IL address, we'll take tore of the

^^ ELECTRONICS ^ "'•• If you're in a hurry, enclose

4Ic In stamps for 1st class

dellveiy.

BYTE August 1979 175

LISP Based Symbolic Math Systems

David R Stoutemyer The Soft Warehouse

FOB 11174 Honolulu HI 96828

On an interactive terminal, a user begins by typing the assignment:

Q - 6*Xt3/(9*X)

where " denotes assignment, * denotes muItipHcation, and t denotes raising to a power. Such a command would be erroneous in most languages because the variable X has not previously received a value. However, symbolic math systems accept and even simplify expressions containing such unbound variables. Thus, the response of such a system to the above command is the automatic output:

2*Xl2/3

which is also saved as the value of Q. Some of the systems have more elaborate output routines which would display the above output in a two-dimensional format such as the following:

2X1 3

It is the ability to accept and transform input-data consisting of expressions which contain unbound variables that most characterizes computer symbolic math. As is also illustrated by this example, virtually all such systems are capable of exact rational arithmetic. In fact, the rational arithmetic is usually indefinite precision, wherein each number occupies as much memory as is necessary for exact representation up to some very large maximum, imposed perhaps only by the total amount of remaining space allocated for numbers. Even the small 8080 based muMATH-79 system can compute 99" exactly, in less than three seconds, and the SCRATCHPAD system was once involved in a proof that the incredibly large number 219.937 —1 is prime.

Virtually all symbolic math systems also support symbolic differentiation. For example, if the user enters an expression after the above assignment to Q such as the trigonometic 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 builtin mathematical capabilities of these systems.

Symbolic math systems are often called computeralgebra systems despite their ability to do trigonometric simplification, calculus, and other operations aside from algebra.

Most general-purpose computer-algebra systems are implemented in LISP or in a disguised variant thereof, because LISP is especially suitable for the purpose. This is not to say that the user of a LISP based system must know LISP or use a LISP like syntax for his expressions. Because the syntax of traditional applied math is so different from that of LISP, each of these systems provides a parser which translates the traditional external representations of input expressions into corresponding internal representations which are more suitable for performing the 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 the University of Hawaii. He has received his doctorate in Computer Science from Stanford University, with specialization in numerical analysis. His current research interests include both numerical and nonnumerical scientific computation. Current educational interests include innovative computer aided math education at the elementary through college level.

176 August 1979 © BYTE Publications Inc

AMERICAN TAX ASSOCIATES

Alpha Fedtax and Caltax

^

years in use

cro systems

sas^naBiia

This is a thoroughly tested and successfully installed software package. It is very user oriented and simple to use. The package is as comprehensive as available computer tax services. It will calculate taxes, prepare and print all forms.

This package is supported by American Tax Associates, an established California accounting firm. In this way you can be assured that the yearly updates will be consistent with the current laws and accounting practices.

This package is a real time saver. It can perform income averaging automatically, and based on the data input, the program can determine whether to itemize or to use the standard deduction.

The client data collection and input procedures were selected based on the experiences of American Tax Associates, and the techniques used by many service companies. A iimple form is completed during the client interview. The data from this form is later input into the computer for processing.

When the client data is entered into the computer you may select to have it print an audit trail of all data entered. This will enable you to double check the data entered.

The returns are printed on continuous preprinted IRS approved forms. Those forms not requiring a preprinted form are formulated and printed on blank paper. The data disk will hold up to 120 clients so the software is designed to print all of one page at a time.

The Alpha Micro system was chosen as the base computer system because of its multiuser capability, high throughput, and upward expandability into a hard disk system.

Yearly updates will be supported by American Tax Associates. These updates are available from eitheryourdealerordirectly from Mission Control.

SYSTEM REQUIREMENTS:

Language: Alpha Micro Systems Basic (compiled)

Media: 8" floppy diskette

CPU: Alpha Micro AM-100

Memory: 64K RAM

Printer: 132 col with tractor feed

Floppy: Dual 8" drives required

Write for our brochure — Dealerships still available Contact: Distributor

DISTRIBUTED BY |\/||SSIOI\l

2008 WILSHIRE BLVD., SANTA MONICA, CA 90403 • (213) 829-5137 CONTROL

Circle 238 on inquiry card.

BYTE August 1079 177

translates the internal representation into a traditional mathematical representation for display.

In addition to using the built-in math facilities in the symbolic calculator fashion illustrated above, many users want to eventually extend the built-in capabilities by means such as entering appropriate function definitions. Since most users of these systems are accustomed to a traditional Von Neumann style of programming language, rather than LISP, the parser is also generally used to provide users with a surface programming language which resembles ALGOL or another widely acceptable syntax. In fact, many of these systems provide an extendable parser-deparser, so that the user can introduce mathematical operators and programming syntax to suit personal needs and tastes. Such functional or parser extensions can be freely intermixed with calculations utilizing built-in facilities and previous extensions so that the interaction is of the full incremental variety, a la LISP and APL, rather than a semi-interactive style, a la BASIC.

I have spent many fascinating hours using the four most actively supported and publicized LISP based systems and it seems likely that increasing numbers of students, scientists, engineers, and mathematicians will want an opportunity to try some of these systems. Consequently, the following four sections briefly describe some of their capabilities and their availability, in order of increasing size. In the interest of brevity, each section emphasizes features not described in previous sections.

As with many other LISP programs, these computer algebra systems seem almost magical when first encountered. Thus, it is especially satisfying and educational to learn how they work. Accordingly, these four sections also briefly indicate some of the underlying techniques, together with the issues that they address.

Interest in computer algebra is growing rapidly, and the final section discusses the impact that this powerful tool can have on education, recreation, and research.

muMath-79

muMATH-79 is a small computer-algebra system implemented by Albert Rich and the author for Intel 8080 based microcomputers using the popular Digital Research CP/M operating system. The system will also run on the upward-compatible Intel 8085 and Zilog Z-80 processors, and upward-compatible operating systems such as the Cromemco CDOS or IMSAI-IMDOS systems. In its entirety, including an allowance of 5.7 K bytes for a resident operating system, the system occupies 28 K bytes, for which an additional minimum of 16 K bytes is recommended to store the control stack, the symbol table, character strings, numbers, expressions, and user-defined functions. The system is modular so that users can save space by omitting unneeded packages. For example, the symbolic integration, differentiation, logarithmic, trigonometric, and inverse trigonometric packages can be omitted when one is interested only in algebra. Similarly, the algebra and rational arithmetic packages can also be omitted when one is interested only in exact integer arithmetic. Here is a brief summary of the built-in facilities:

• The system provides indefinite precision rational

arithmetic, including integer factorization and simplification of fractional powers. For example, the system can perform the simplification:

Vl8 - Vs _ J_

V6 V3

where — denotes is transformed to.

• Unavoidable automatic algebraic simplifications include collection of similar terms, collection of similar factors, reduction of integer powers of the imaginary number i, and exploitation of the identity properties of 0 and 1, such as:

1*U-'U

for any expression u.

• Optional, more drastic automatic algebraic transformations include expansion of integer powers of sums, expansion of products of sums, factoring common factors from all the terms of a sum, placing expressions over a common denominator, and distribution of denominators over the terms of corresponding numerators. Optional transformations are controlled by the values of a few option variables so that users can employ or suppress these more drastic transformations to suit their needs and tastes for each specific problem. Unavoidable and optional automatic logarithmic transformations include:

:>'n(") _

u.

ln(e") — u,

ln(u*v) zr ln(u) -I- ln(v),

ln(u t v) zi v*ln(u),

for all u and v.

• Unavoidable and optional automatic trigonometric transformations include exploitation of symmetry to remove minus signs from trigonometric arguments, exact computation for angles which are integer multiples of ir/12, multiple angle expansion, angle-sum expansion, conversion of trigonometric powers to multiple angles, and conversion of trigonometric products to angle sums.

• Symbolic differentiation and integration rules are built-in for all of the built-in mathematical operators and functions. Also, there is a mechanism for introducing differentiation and integration rules for other operators and functions defined by the user.

As an example of the speed of muMATH, on an 8080 running at 2 MHz with 48 K bytes the system can expand 298!, (l-hx)", sin(17x), (xj-l-Xz-l-...-|-x,3)^ or sin(xi-|-X2-t-...-l-X5) in one minute. Try doing these by hand I

Because of the incremental expression-oriented style, a knowledge of computer programming is unnecessary for using the built-in capabilities of muMATH in the symbolic-calculator fashion. When a user's needs are not met by the built-in facilities, they can be modified or extended by entering appropriate function definitions, simplification rules, or operator parse rules. The built-in

178 August 1979 © BYTE Publications Inc

Expansive but not expensive

MicroAge introduces for Horizon and Alpha Micro Systems, the most powerful Hard Disk Units You've Ever Seen.

Welcome to "Hard" Times: a new age of hard disk cartridge drives for Horizon and Alpfia Micro ... so powerful, so reliable, so economical, you've never seen anything like it. Fast, easy and versatile: the revolutionary new Fujitsu I\/I2201 with 40 (formatted) megabytes of storage... and the dynamic CDC Phoenix with 27 (formatted) megabytes. Both are operated with North Star and Alpha Micro commands. Added capacity means the ability to fully utilize the complete range of software and capabilities of North Star Horizon and Alpha Micro mainframes.

But their family interface compatibility is not all that's expansive. Speed and economy are impressive, too. Super-fast access time means no waiting for command execution ... easy handling of large files. And the price? Unbelievably low for this much flexibility, power, speed and capacity. And the low price includes the hard disk drive, S-100 controller, software interface, cords and disk pack.

Fujitsu M2201 Cartridge Module Drive

50 megabyte storage (40 formatted)

Exclusively from MicroAge

CDC Phoenix Cartridge Module Drive

32 megabyte storage (27 formatted)

Either.

$9995.00

includes drive, S-100 controller, software interface and disk pack.

Askyourdealerabout Hard Times —the Fujitsu M2201 and CDC Phoenix drives from MicroAge. Available to qualified 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 8o

BYPASS THE KEYBOARD INTERACT WITH THE SCREEN DIRECTLY

APPLICATIONS:

• Education

• Business

• Games

• Home

NO ASSEMBLY NECESSARY READY TO PLUG IN

COMPLETE INSTRUCTIONS AND DEMONSTRATION PROGRAM PROVIDED

TRS-80 PEN Includes Demo-Game Cassette

MAIL COUPON TODAY!

30 DAY UNCONDITIONAL MONEY BACK GUARANTEE!

Please send me a 3-G Light Pen. I've enclosed a check or money order,

I—I TRS-80 I—I PET ADD $1.50 FOR

1 I $34.95 I I $29.95 MAILING AND HANDLING

($6.00 FOREIGN)

NAME

ADDRESS CITY . _

gp^ 3G Company, Inc., Depl.BT 131 Rl. 3, Box 28A

Gaston, OR 97119

HOW TO BUY A BUSINESS COMPUTER

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!"TV Station General Manager, California.

"It's the best book I've seen on the subject. Send me 5 copies to send to my clients:" CPA, Orange County, California. "I really learned something from this book and I'm in the business. I'm recommending it to my clients." DP Consultant, Alhambra, California.

Here's a straight forward approach to business computer purchase and installation. It will save you time and money. ORDER NOW! If not completely satisfied, return within 30 days for a full and immediate refund.

872 X 11 Softbound ■ 178 pp. ■ $12.95 Credit 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

CI T Y/STATE/Zl P,

DCheck Card No

DMasterCharge

DVisa Exp. Date

mathematical algorithms are written in the same general environment and high-level syntax provided to the user. Consequently, the user does not need to master a second underlying environment and syntax, such as LISP, in order to understand the system and fully integrate his extensions into the system.

As an example of a functional extension, suppose that we wish to introduce the trigonometric cosecant function named CSC, together with the automatic transformation:

CSC(u) - l/SIN(u)

for any expression u. To accomplish this, we merely enter the definition;

FUNCTION CSC(U),

1/SIN(U), ENDFUN;

Thereafter, until the function is redefined, the above transformation will automatically occur for the CSC of any expression.

Now, suppose that as the sole exception to the above transformation, we wish to introduce the transformation:

CSC(O) - UNDEFINED

where UNDEFINED is a variable. To accomplish this, we merely 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 sequence of expressions separated by commas.

• The value returned when a function definition is applied to its arguments is the value of the last expression evaluated therein.

• A conditional exit expression consists of the matchfix operator named WHEN, followed by one or more expressions separated by commas, followed by the matching delimiter named EXIT.

• The value of a conditional exit is that of the last expression evaluated therein when the conditional exit is evaluated.

• If the first expression in a conditional exit evaluates to FALSE, then the exit fails and evaluation proceeds to any successive expression following the conditional exit.

• For a successful exit, proceeding sequentially from the nonFALSE expression, when evaluation first reaches an EXIT delimiter it proceeds to the point following the next ENDFUN, ENDLOOP, or ENDBLOCK delimiter.

To illustrate the LOOP construct, suppose that we wish to define a function which uses repeated first derivatives to compute the Nth partial derivative of an expression EXPN with respect to a variable VAR, for any specific integer N>0. We could do so as follows:

180 Aususl 1979 'tj BYTE Publications Inc

Circle 89 on inquiry card.

FUNCTION DIFN(EXPN, VAR, N), LOOP

EXPN^DIF(EXPN, VAR),

WHENN = 1, EXPNEXIT,

N-N-l

ENDLOOP ENDFUN;

As illustrated by this example:

• A loop-expression consists of the matchfix operator named LOOP, followed by zero or more expressions separated by commas, followed by the matching delimiter named ENDLOOP.

• Even an assignment is an expression, having as its value the value assigned.

• A loop can contain any number of conditional exits anywhere in the loop, thus providing a single structured generalization of the REPEAT, WHILE, and half loop constructs of some languages.

Moreover, when a function definition is applied to fewer arguments than there are parameters, the extra parameters are initialized to FALSE and they are available for use as local variables within the definition. An alternative recursive definition of DIFN is:

FUNCTION DIFN(EXPN, VAR, N), WHENN = 0, EXPNEXIT, DIFN(DIF(EXPN, VAR), VAR, N-1) ENDFUN;

As is frequently the case, the recursive version is more compact, and compactness is important on small computers.

The block control-construct consists of the matchfix operator named BLOCK, followed by a conditional exit, then zero or more arbitrary expressions, then the matching delimiter named ENDBLOCK. The value of a block is the value of the last expression evaluated therein. A block can contain any number of conditional exits interspersed among other expressions, thus providing a structured generalization of the case-statement of some other languages, including the IF-THEN-ELSE construct as a special instance.

Some users may want to extend the syntax by introducing additional mathematical operators or additional programming control-constructs. The incrementally-extendable Pratt parser makes it easy to introduce such extensions as they are needed.

Every operator can have a left and a right binding power. For example, the left and right binding powers of / are 120, whereas t has a left binding power of 140 and a right binding power of 139. When two operators are competing for an operand between them, the operator with higher binding power toward the operand wins the operand (eg: the expression X/Yt2 is parsed the same as X/(Yt2) rather than (X/Y)t2). When there is a tie, the operator on the left wins the operand (eg: X/Y/2 is parsed 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 omit parentheses from around suitable arguments of COS, we can enter the command;

Circle 331 on inquiry card.

16K STATIC RAM

with $275 450 ns $300 250 ns memory chips

Assembled, Tested and Guaranteed

Static TMS 4044 or equivalent - Fully Static 4Kx1 Memory Chips for full DMA capability, no tricky timing problems.

Fully S-100 Bus Compatible - All lines fully buffered. Dip Switch Addressable in two 8 K block, 4K increments. Write Protectable in 2 blocks, Memory Disable using Phantom, Battery back up capability.

Bank Select - Using output port 40H (Cromemco software compatiblej-addressable to 512KB of Ram for time share or Memory Overlap, also has alternate ports 80 H, COH.

Guaranteed - Parts and labor for one year. You may return the undamaged board within 10 days for a full refund.

Orders - You may phone for Visa, MC, COD ($4 handling charges for COD) orders. Personal checks must clear prior to shipping. Shipping-Stock to 72 hours normally. Will notify expected shipping date for delay beyond this. Illinois residents add 5% tax. Please include phone number with order.

S.C digital

P.O. Box 906 Phone:

Aurora, IL 60507 (312)897-7749

NO FRILLS! NO GIMMICKS! JUST GREAT

DISCOUNTS

MAIL ORDER ONLY

HAZELTINE

1400 $ 679.00

1500 995.00

Mod 1 1495.00

CENTRONICS

779-1 954.00

779-2 1051.00

700-2 1350.00

761 KSR tractor 1595.00

703 tractor 2195.00

NORTHSTAR Horizon I assembled.. 1629.00

kit 1339.00

Horizon II assembled.. 1999.00

kit 1599.00

Disk System 589.00

TELETYPE

Mod 43 995.00

IMS 16K Static Memory. .. 459.95

DIGITAL SYSTEMS

Computer $4345.00

Double Density Dual Drive 2433.00

IMSAI

VDP 80/1000 $5895.00

VDP40 3795.00

VDP 42 3895.00

VDP44 4195.00

16K Memory assem... 399.00

PCS 80/15 679.00

15% ofl on all other Imsai proOucIs

CROMEMCO

System III $1000 off .. 4990.00

10% off on al) other Cromemco products

TEXAS INSTRUMENTS

810 Printer 1595.00

CENTRONICS

Microprinter 495.00

Most items in stock for immediate delivery. Factory-fresh, sealed cartons.

DATA DISCOUNT CENTER po 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, because 170 exceeds 120. Alternatively, we could enter the command:

PROPERTY COS PREFIX 119 if we wished COS X/Y to parse the same as COS (X/Y).

Postfix operators follow their operand, infix operators lie between their operands, and matchfix operators (such as LOOP) precede an arbitrary number of operands separated by commas and delimited by a matching delimiter (such as ENDLOOP). Numbers and variable names parse as themselves. A functional expression parses into a list containing the function name followed by the parsed representations of its arguments. An operational expression parses into a list containing the name of the operator followed by the parsed representations of its operand. As an example, COS(2/N!) parses into the nested list (COS,(/,2,(!,N))).

In general, this representation is called Cambridge prefix (as opposed to Polish prefix or ordinary functional prefix). We are all so accustomed to infix notation that most people find mathematical Cambridge prefix tiresome to read, and many people also find it tiresome to write. However, the parser prevents us from having to write Cambridge prefix, and the deparser prevents us from having to read it, in order to enjoy its great advantages as an internal representation. These advantages are many.

In order for our programs to determine simply and

quickly which transformations to apply to expressions, the programs must be able to easily determine whether the expressions are numbers, variables, or more general. If the latter, the program must be able to easily determine the outermost operator or function name, and easily access the individual associated operands or arguments. Tc keep the transformation programs fast and compact, the syntactic rules governing the internal representation should be few and simple. Moreover, it is sometimes convenient to regard expressions as data in order to apply transformations to them. At other times it is convenient to regard expressions as programs in order to execute them. Cambridge prefix offers all of these advantages.

For each cycle of interaction, after parsing the input expression, muMATH merely applies the built-in LISP like EVAL function, then deparses the result for output. For computer-algebra it is appropriate for such an EVAL function to at least do the following:

• Evaluate numbers and unbound variables as themselves.

• Evaluate bound variables as the values to which they are bound.

• Evaluate a list for which the first element is the name of a function definition as the value obtained by applying the function definition to the values of the other elements in the list.

• Otherwise, the value of a list is the list of its values.

Unfortunately, most LISP EVAL functions implement only a subset of these rules, leaving undefined the result

Household Finance I & II $15 00

I'.Hl 1. Inpuls diil.i 1)11 cull housrholtl i'X|)cndiluir; iisis, .iclii^. upiLilcs, Iii.miii's (ir di'k'Ic's iircviDiibly liipul ili^nis. Wnli's diilii lo cissiMli' l.ipc. I'.irl II: RiMcIs diilii l,ipt'. Provides niciiillily .iiid yciuly siiiiiiii.trics (il

JniiiMi i<il d.il.i, smytc tiiU'f^oty siininuiru's. .md jii.iplis .t spciidiii*! piolilc.

Seawolf

Uu' ships wilh y( pcdn ijun; I'xU'ii scunnu, I Iscs |(n.'

$10.00 Life

Creative Softivare products are now available at these fine dealers:

\'C Comiiuli'i

Cnmpulei hdiiini

Gprmanv

llllfih S.ui I'.iliKi Aw.

14(),S2 H. l-iresKiiie Hlud,

Hol.Mker Ve

I„.(

I.l Ccnilci, Cilildinici

S.inle |-e Siiriniis, C'.ililciri

1.1 leiiernseerst I)H1.'.I)II<.I.<I

iissr IS

in hen

h.iincu Miller's

M.irin Conipulei C'eiilei

Mimi lien. W

'Sl C in IIMM

L'.!2 K, M.iiii Si. I.eNin.jliin. KenliK ky

70 Skyview "lerrdc e S.in H.il.iel. C.ililoriiia

France

Cnnipuler Slin|)pe ,i225 n.uiiiy Pk. MeUiirie, l.niiisiiin.i

Olson Eleetronics Sherwood Pl.iz.i Kle. 9 N.iliik, M.iss.ii husells

S.!.V.i:.A. 20 nie ik' Le /.SOOH P.iiis.

iiiu^.ul

Mi'iiiiiry H.iiik Inc. ■112K Br.idy Si.

Conipulerl.ind 'IS'lbhl Ciniino He,.l

Austria

BYTHCoini 1040 Wieii

ulri Shop

D.ivenpnri. it)W(i

Los Alios. C.ilil(iriii,i

Fiivontensti.

ssc 20. Alls

Oy/V M.iny other Creative Software iirnclmls, iiickiflinij smijle

.ind cIli<iI joysliiks. ,ire .iv.iil.ihk' kir ihc PET II your locil ck'iiler clrii'sii'l c.irrv Creative Software prciducls or |iro.cir,ini inlor

' niiiiuin, write directly lo the .iddress helow. When pliuini) .in

■'''il.ni order pkMse note:

sh.isse IS

|,^|<in hen Add $1 ..Sll shipping lor e,u h pioiir.im ordered. C.ililorni.i residents

West cleiiiMiiv .idd 6",, s.ik's t.i.x. VISA MASTHHCHARCiH .iccepted. Inckide card nunilier ,ind I'Miir.ition d.ite.

Creative Software

P.O. BOX 4030, MOUNTAIN VIEW, CA 94040

Model DMB-6400 Series dynamic 64l( byte RAfAS incorporate the features wliich are standard in the DM-6400 Series and adds the following capabilities:

• ALPHA MICRO, CROMEMCO, and NORTH STAR output port bank select compatible.

• Four (4) 16k byte, functionally independent memory banks.

Memory bank size can be incremented to 64k bytes in 16k increments.

Eight (8) 64k byte banks of memory per output port.

Model DM-6400 Series dynamic 64k memory boards feature IEEE S-100 compatible timing and on board transparent refresh.

• Memory selectable and deselec- • 25 MHz on board crystal oscillator

table in 4k byte increments. for independent timing.

DMB-6400 and DM-6400 Common Features:

4 MHz Z80 operation with no wait

states.

Tested and bumed-in.

• Low power- 8 watts maximum.

• Reliable, expandable memories.

ONE YEAR GUARANTEE

THE FOLLOWING PRODUCTS ARE AVAILABLE FROM YOUR LOCAL DEALER.

D DMB-6400/64KRAM D DMB-4800/48KRAM

D DMB-3200/32KRAM D DMB-1600/16KRAM

D DM-6400/64KRAM D DM-4800/48KRAM

D DM-3200/32KRAM D DM-1600/16KRAM

U.K. & EUROPEAN REPRESENTATIVE:

ABACUS COMPUTERS LTD 62. NEW CAVENDISH STREET LONDON, W1M 7LD U.K. TEL: 01-580/8841 TELEX: 881-3085

AUSTRALIAN REPRESENTATIVE:

COMPUTERLAND OF MELBOURNE 555 COLLINS STREET MELBOURNE. VIC3000 TEL: 625581

MEASUREMENT

systems &v controls

Incorporated

867 North Main Street • Orange, CA 92668 Telephone: 714/633-4460

Circle 215 on inquiry card.

BYTE August 1979

183

Circle 310 on inquiry card.

TRS-80 lEVlL II AND DOS

COMMAND PROCESSOR XOMPROC ***NEW PRODUCT***

Automatically load and execute any sequence of System and/or

BASIC programs and data from power up.

Command files created, saved, and edited in BASIC.

Sophisticated options include interactive prompting and substitutional

parameters. Allows non-computer personnel to easily execute programs. RENUMBER WITH 'REMODEL' ■ MERGE WITH 'PROLOAD'

REnumber any section or an entire program. MOve program segments. DELete program lines. All line references readjusted as required. COMBINE programs with renumber and merge. LOAD or SAVE any portion of program from tape. GENERAL SUBROUTINE FACILITIES '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 4BK.

COPY SYSTEM TAPES WITH 'COPSYS'

Dealer Inquiries Invited

REMODEL

REMODEL -<- PROLOAD

GENERAL SUBROUTINE FACILITIES

DISK SORT PROGRAM

Must specify 16, 32, or 4BK on above.

COMMAND PROCESSOR (DOS ONLY)

COPSYS (Not DOS)

For TAPES that TEST best

l-RACET

COMPUTES -g

702 Palmdale. Orange CA 92665

Order TS21D at $24.95 Order TS22D at $34.95 Order TS25D at $24.95 Order TS26D at $34.95 System house discounts. Order TS27D at $19.95 Order TS24D at $14.95 Order 10 ea at $14.95

Check. UISA. M/C. C.O.O.

Calil. residents add G% 637-50

ITMIM^OIB

A specially designed SF TACTICAL BATTLE GAME for your PET, TRS-80 or APPLE Computer.

The man called Sudden Smith watched the five blips on his screen spread out to meet the enemy. Two freighters converted into something like battiewagons, powerful but slow, and three real cruisers: the most powerful group of warships ever seen near the Promethean system — except for the Stellar Union fleet opposing them. Everyone was calling it Starfleet Orion, though it existed for only this day. It was life or death, and, after the object lesson on the planet Spring, everyone knew it.

STARFLEET ORION is a complete 2 player game system

• rule book • battle manual • cassette

• ship control stieets • program listings

Includes 2 programs, 22 space ship types, and 12 playtested scenarios. Game mechanics are extremely simple, but play is 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 Simulations Department Y P.O. Box 4232 Mountain View, CA. 94040

California residents please add 6% sales tax

of applying EVAL to an unbound variable or a list whose first element is not the name of a function definition. In computer algebra, no one would want to quote every instance of every unbound variable. It is often desirable to write subexpressions such as f(x), even though there is no corresponding function definition named /. Accordingly, most LISP based algebra systems begin by defining an algebraic EVAL function in terms of the built-in LISP EVAL function.

Since muMATH is intended for microcomputers, we did not want to waste precious space on two nearduplicate EVAL functions so we included the above upward-compatible generalizations of the usual LISP EVAL in one EVAL. These generalizations are convenient in other LISP applications, so we would like to see LISP evolve in this direction.

The lexical and syntactic rules appropriate for input and output of LISP and computer-algebra expressions also differ. Many LISP implementations do not directly accept special characters such as + as valid names, and LISP scanners do not distinguish between blanks and commas. Again, we did not want to waste precious space on two sets of I/O (input/output) routines, one of which would never be employed by users of the computeralgebra system. Accordingly, using assembly language, two semantically similar but lexically and syntactically different general-purpose list-processing systems were implemented: muLISP-77 which implements the traditional LISP lexical and syntatic rules, and muSIMP-77 which employs the lexical rules and high-level syntax illustrated in the preceding examples. We used muSIMP-77 to implement muMATH-79, but muSIMP-77, being a disguised version of LISP, is applicable wherever LISP is applicable. We think that beginners are more comfortable with muSIMP than with LISP, hence they are more willing to learn the lovely semantics of LISP, and to ultimately appreciate the Spartan syntactic simplicity of LISP, together with its consistency between program and data.

To illustrate the convenience of Cambridge prefix as an internal representation, here is an example of how differentiation 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) -i

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 if its argument is a number or a name. The built-in func

184

August 1979 'i' BYTi; Publicalions 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 their argument. The function named LIST takes any number of arguments returning a list of their values. As indicated, a single quote is used in contexts where one wishes to prevent the parser from seeking operands for a name which happens to be an operator.

In simplified results the operators + and * have two or more operands which have been sorted into a lexical order to facilitate collection of similar terms and factors. Consequently the above example would have to use a loop or recursion to march down the list of operands of + .

For modularity and other reasons, differentiation and most other mathematical transformations are implemented with the aid of a sort of pattern matcher. The following sections illustrate pattern-matching techniques.

Reduce

REDUCE is a LISP based computer-algebra system implemented by Anthony Hearn and his colleagues for a variety of large computers. Currently there are supported implementations for the PDP-10, PDP-20, IBM360, IBM370, Univac 1108, CDC Cyber, and Cray-1 machines, running under various popular operating systems. In its entirety, the system occupies about 400 K bytes on an 1BM370, for which an additional minimum of at least 50 K bytes is recommended as workspace. The system is modular so that users can save space by omitting unneeded packages (eg: 100 K bytes can be saved by omitting the integrator). For those who have access to the ARPA computer network, REDUCE is available at several sites, including USC-ECL and SU-AI, where accounts may be obtainable. REDUCE is also directly available on magnetic tape from Professor Hearn at the University of Utah Computer Science Department in Salt Lake City for $100. It has been distributed to over 500 sites worldwide. Here is a brief summary of the built-in facilities:

• The system provides single-precision floating-point arithmetic as well as indefinite-precision rational arithmetic.

• Unavoidable algebraic transformations and optional ones controlled by flags are approximately similar to those of muMATH, except that REDUCE provides an important additional optional transformation: cancellation of polynomial greatest divisors from the numerators and denominators of rational expressions. REDUCE can perform such simplifications as the following:

2a^x^ — a^bx — a^b^ — ax^ -I- axb^ — x'' -I- bx^ 2ax -I- ab 4- x^

a^x^ — a^b — ax^ — 2axb — ab^ — bx^ + b^x

a-l-b

which might be overlooked by most people.

• There are some built-in exponential, logarithmic and trigonometric simplifications.

• Matrices having symbolic expressions as elements can be added, subtracted, multiplied, divided and raised to integer powers, including inversion

• There are special facilities for solving the quantumelectrodynamics problems of the high-energy physics.

EPROM PROGRAMMER — Model EP-2A-79

SOFTWARE AVAILABLE FOR F-8, 8080, 6800, 8085, Z-80, 6502, KIM1, 1802, 2650.

EPROM type is selected by a personality module which plugs into the front of the programmer. Power requirements are 115 VAC, 50/60 HZ at 15 watts. It is supplied with a 36 inch ribbon cable for connecting to microcomputer. Requires V/i I/O ports. Priced at $155 with one set of software. Personality modules are shown below.

Part No.

Programs

Price

PM-0

TM5 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 22936 Phone (804) 973-5482

List

CROMEMCO 20% DISCOUNT

System 111 5990

System II 3990

System 11 with 10 Meg Disk 9995

16K Ram 595 NORTH STAR 16% DISCOUNT (or more)

Horizon I - 32K Ram asm 2099

Horizon I - 16K Ram asm 1899

Horizon I-32K Ram kit 1849

Horizon I to Horizon 2 450

32K Ram asm 659

VECTOR GRAPHICS 20% DISCOUNT

Vector MZ-2 (630K disk) 48K Ram 3750

Soroc IQ120 995

Perkin Elmer Bantam CRT 996

Intertube II 995

LA-36 1630

Integral Data IP125 799

Escon Selectric Interface 496

NEC 5510 RO Word Processor Printer 2900

IMSAI 15%

Radio Shack 5%

Professional A/R, A/P, Ledger, Payroll, Medical Billing Available, We discount TRS 80 Software, Microage

and Structured Systems Software. Most Hardware items

Send for our catalog — Some prices too low to quote.

Our Price

4792

3192

7996

480

1763

1595

1553

378

525

3000 790 750 750

1440 699 422

2450 off off

Software Software in stock.

SARA TECH COMPUTERS

P. 0. Box 692 400 Base Venice, FL 33595 (813)485-3559

Circle 320 on inquiry card.

August 1979 © BYTE Publications Inc 185

• There is a high-level surface programming language, which is essentially ALGOL, sweetened by modern control constructs such as a WHILE loop, REPEAT loop, and CASE statement.

• Symbolic differentiation and integration are builtin, and the latter is significantly more powerful than the muMATH integrator, which merely uses a few elementary rules such as:

|(u4-v)dx — judx + Jvdx, Jc u dx — cju dx if c = constant, Jvf(u)dx - -;^^ Jf(u)du if jx"' -' In x,

y _

constant.

(x° — —— if a = const and =^ —1,

|sin(x)dx — cos(x).

In contrast, extensive greatest-common-divisor, factorization, and linear-equation-solving support routines permit REDUCE to use the powerful new Risch-Norman integration algorithm. For a large class of integrands and solution basis functions, this algorithm is guaranteed to determine a closed-form

solution if one exists, otherwise terminating with a guarantee that one does not exist. • REDUCE provides a convenient pattern matcher, which provides a natural means for users to implement many extensions. To have the system automatically replace every subsequent instance of mc^ by E, we can merely enter the rule:

LETM*C**2 = E;

Thereafter, an expression such as 5*M*C**3-l-8 would be replaced automatically by 5*E*C-|-8. There is also a mechanism for letting pattern variables represent arbitrary subexpressions. To make logarithms of all powers, products and quotients can be expanded automatically, we can enter the rules:

FOR ALL X, Y LET

LOG (X**Y) = Y*LOG(X), LOG(X*Y) = LOG(X) + LOG(Y), LOG(X/Y) = LOG(X) - LOG(Y);

Thereafter an expression such as A-l-2* LOG(B) — LOG(E**A*B**2*C) would simplify to -LOG(C). Finally, there is a mechanism for imposing extra prerequisites to replacements. To make the above LOG rules dependent upon the value of an option variable, we could change the first line to:

FOR ALL X,Y SUCH THAT LOGEXPAND > 0

New North Star Software

• DOS-h $35

Enables any program to execute all North Star Disk and/or Meca Tape commands. Allows batch command list and more.

• PRO-TYPE WORD PROCESSOR $75 Easy to learn. Combines text input, editing and printing in one program. Features right margin justification, tabs, paging, underlining, relocation of text blocks, etc. Requires only 8K of memory. Manual alone, $25.

•GUIDE TO BASEX $33

A new interactive compiler similar to BASIC for 8080-type microcomputers (Z-80,8085). Executes programs up to 10 times faster than equivalent programs while requiring about half the memory space. Features include: array variables; string manipulation; arithmetic operations on signed 16 bit intergers; and versatile I/O communication functions. Manual alone $8.

• BASEX TAPE and DISK GUIDE $35 Allows your BASEX programs to access up to four North Star Disk and/or Meca Tape drives. All operations can be executed from the keyboard. Manual alone 320.00.

Specify:

North Star Disk/Meca Tape/Other Send for Free Literature INTERACTIVE MICROWARE INC. P.O. Box 771 -ffVl.

State College, PA 16801 ■ ■ ■ ■ I

(814) 238-8294 lUjl

186 August 1979 © BYTE Publications Inc

Circle 179 on inquiry card.

Most of REDUCE is written in a modular subset of itself called RLISP. In turn, RLISP is bootstrapped from standard LISP, which is a subset of many LISP implementations. RLISP has the semantics of LISP clothed in the syntax of sweetened ALGOL. RLISP is applicable not only to computer algebra, but also wherever LISP is applicable, and I have found students far more receptive to LISP if they are introduced to it via a surface language such as RLISP.

REDUCE was originally inspired by a desire to perform symbolic high-energy-physics computations which are far too arduous to do manually. Consequently, the internal representations of expressions reflect a major concern with speed and storage efficiency for large expressions:

• In applied math, the most numerous operations in very large expressions are usually addition, subtraction, multiplication, and exponentiation with positive integer exponents. There is frequently, at most, one division operation present, because expressions are often put over a common denominator. If fractional powers, exponentials, logarithms, trigonometric functions or other irrational operations occur, they may usually be reduced to numerous repetitions of a few unnested distinct irrational functions having trivial arguments such as x, x-Hy or 2vx. Thus, polynomial operations account for most of the time and space. This suggests using a data structure oriented toward polynomials, thereby saving space

and time by making the operators +, x , and t implicit. This usual nature of large expressions also suggests storing irrational subexpressions uniquely, and treating them as additional variables with respect to any polynomial operations involving them.

• As the number of variables and their maximum degrees increase, a multivariate polynomial must have zero as a sharply increasing portion of its possible terms, in order to fit the polynomial into the computer memory. Moreover, the fit is possible only if the internal representation takes advantage of this sparsity. In general, we can avoid wasting space on intermediate-degree terms which are zero only if we explicitly store the exponents of the nonzero terms.

• Many multivariate polynomial algorithms are most concisely stated as univariate algorithms, recursively involving coefficients which are polynomials in at least one less variable.

• Classic multivariate polynomial division requires that one variable be distinguished as the leading variable and that the terms be accessible in decreasing order of degree.

REDUCE uses Cambridge prefix for some purposes, but REDUCE internally represents polynomials in a standard form. A standard form is defined as an element from the underlying coefficient domain or as a leading term dotted with a reductum, where the latter is recursively

The

%9 l\#\^ .ELECTRONICS

An S-100 Bus Adapter/Motherboard

fortheTRS-80

plus a whole lot more!!!

' s-100 BUS INTERFACE ' 6 SLOT MOTHERBOARD

■rht fllOO iilbws H Radio Shack TUS-SO oinnpuUT K) bt rnturTact-d lo ihv popular S-IM Bub for tni-mory CKpanaion Hnd cxlfndeil LO cnpabiliLJEs. For cxHmple, you cnn now ponily add more memory, floppy di« ByHi^mn, PROM boHrdK. piinlcr inlerfHces. mulli-puiposc I/O bonrdH, AC device control!ers. and a whole host of other varinl perlph

Thc RLOU hilH lis own built-in d HJot mothcrbonrd wliich includen our uniiiuc card guide Bynt^in which kcepH the borirdH in their ptaces.

The SlIXJ hofl support circuitry nnd Mickcta for ii>\thl IfiK dynamic RAM chips allowing you lu expand the mi^mury of jour THS.SO hy IfiK without having to buy any S100 KAM boanU.

• SERIAL RS232/20ma I/O

• PARALLEL INPUT AND OUTPUT

• SPACE FOR 16K DYNAMIC RAM

• CAN USE LEFT OVER 4K CHIPS

• LOW COST- PRICES START AT S185*

• AVAILABLE IMMEDIATELY

Ifyou purchased an cxpanaion memory kit forTRS-MJ you could be left with eight 4K RAM chip/and nowhere 1o put Ihcm! W:ll. they can go in the RAM sockets instead! That's ri|;hl. you can use either 4K or 16K chips and nddrctu) them anywhere you like.

The 8100 has a full BS232/20 mo aerial interface who's fealuroH include: RS232 and 20 ma current loop intt^rfacc, Hoflwarc programmable baud ratt from DC to fiGK baud. aofXwure proKfammable modem control linen, on hoard DI)-25 connector and much more.

The 8100 also has an 8 bit parallel input port nnd an B bit parallel output port. Both are lalchHi. have both positive and negative strobe inputs and outputs and have plenty of drive capability.

PRICES STAHT AS LOW AS $185* (S-100 BUS INTERFACE ONLY)

RuhI

S ELECTRONICS

1429 Maple St.

San Mateo, CA

94402

(415) 573-7359

CALL OR WRITE FOR COMPLETE PRICING INFORMATION AND MORE DETAILS THE 8100 IS AVAILABLE FROM LEADING COMPUTER DEALERS OR FACTORY DIRECT

DEALER INQUIRIES INVITEO

5, RAM support.

•Extra S-100 k I/O a'cu 11 ry optional USA DOMESTIC PRICE ONLY

fiyHl'"™MINI-8100

■ r. r«'rn«...A« AM (S-inO Rl IC

! ELECTRONICS AN S-100 BUS

■ tLttlHUNlt^ ADAPTER/MOTHERBOARD

FOR THE TRS-80*

MINI-SIZE!

MINI-PRICE!

but MAXI-PERFORMANCE!

HUH Elccironics* 81(H) is the csiablished leader in S-IOOTRS-KO interfaces, running reliably since November 1978 and giving you ■he mosi features for your dollar. But soine folks don'l ncciJ all the 8]00's versatility or want something more comp.ict.

So we created the MINI-SIOO. The MINI81D0 has the same proven reliable S-100 Bus interface circuitry as it's big brother coupled with a 4 slot shielded motherboard. It connects to the TRS-80 or to the expansion inter

face and opens up the vast world of S-100 Bus products to the TRS-KO owner.

For those of you who already own an S-100 mainframe or motherboard, the MINI-SIOO may be purchased without the built-in motherboard. (MIM-8IO0S). Just plug it in and go!

The MINI-SIOO has the same high quality as all HUH Electronics products—easy assembly, fully socketed, solder mask and silk screen component legend, comprehensive manual and design excellence thai speaks for itself.

PRICES

MINI-8100 KIT - includes all pads and one S-100 connector - $115

MINI-SIOO ASM - assembled and tested, includes four S-100 connectors - $155

MINI.8I00S KIT • SIOO sized board, plugs into mainframe - $ 95

MIM-8I00S ASM - same as above, but assembled and tested - $125

: ELECTRONICS

1429 Maple St.

San Mateo, CA

94402

(415) 573-7359

ORDERING INFO: The MINI-81M is available from leading computer dealers or facIor> direct. Please include S4 Tor shipping and handling. CA residents include 6^ sales tax. We accept VISA or Maslercharge or we can ship COD.

USA DOMESTIC PRICES ONLY.

•TRS-80 is a Radio Shack*- produci

DEALER INQUIRIES INVrTED

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.

• $100-Diskette and Documentation.

• S25-Documentation (Set of 6 manuals) only. MAC"^ MACRO ASSEMBLER:

• Compatible with new Intel macro standard.

• Complete guide to macro applications.

• S90-Diskette and Manual. SID™ SYMBOLIC DEBUGGER:

• Symbolic memory reference.

• Built-in assembler/disassembler.

• S75-Diskette and Manual. TEX™ TEXT FORMATTER:

• Powerful text formatting capabilities.

• Text prepared using CP/M Editor.

• S75-Diskette and Manual. DESPOOL™:

• Background print utility.

• Use with CP/M (version 1.4)

• $50. Diskette and Manual.

01 DJGJTflJ. RESEARCH"

P.O. Box 579 • Pacific Grove, California 93950 (408) 649-3896

TRS-80 SOFTWARE 32K 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 PICA, 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 BIdg.

3306 W. Walnut, Suite 507

Garland, TX 75042

PHONE: (214) 272-3211

With money order or certified check, orders shipped within

24 liours.

defined as a standard form of lower degree in the main variable of the leading term. The underlying coefficient domain can be indefinite-precision integers, indefiniteprecision rational numbers, integers modulo some modulus, or single-precision floating-point numbers. A leading term is defined as a leading power dotted with a leading coefficient, where the latter is recursively defined as a standard form not containing the main variable of the leading power. A leading power is defined as the main variable dotted with the leading degree, where the latter is a positive integer. In Backus-Naur form, we can summarize this definition as follows:

standard form :: = domain element

:: = LT standard form. + RED standard form RED standard form :: = standard form LT standard form

:: = LPOW standard form .* LC standard form LC standard form :: = standard form LPOW standard form :: = MVAR standard form.** LDEG standard form

I have also taken the opportunity to introduce the REDUCE infix constructor macros named .+, .*, .**, which clearly indicate the implied operator, but are all defined as merely the LISP CONS operation. Similarly, I have introduced the mnemonic prefix REDUCE prefix selector macros named LT, RED, LPOW, LC, MVAR, and LDEG, which are respectively defined as the LISP functions CAR, CDR, CAAR, CDAR, CAAR, and CDAAR.

With this representation and macros, the REDUCE multivariate polynomial addition function definition is extraordinarily compact and elegant — an ideal intermediate level example of reductum recurso. Listing 1 below shows this reduce function, expressed in RLISP.

SYMBOLIC PROCEDURE ADDF(U,V); IF ADDITIVEIDENTITY U THEN V ELSE IF ADDITIVEIDENTITY V THEN U ' ELSE 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 . -h ADDF(RED U, V) ELSE LT V . -K ADDF(U, RED V);

SYMBOLIC PROCEDURE ADDD(D,V) IF ADDITIVEIDENTITY V THEN D ELSE IF DOMAINP V THEN ADDDM(D,V) ELSE LT V . -h ADDD(D, RED V);

SYMBOLIC PROCEDURE ADDFF(F1, F2); IF ADDITIVEIDENTITY Fl THEN F2 ELSE IF ADDITIVEIDENTITY F2 THEN Fl ELSE LPOW U .* Fl .-F F2;

In listing 1, use has been made of the ADDITIVEIDENTITY prefix recognizer macro which tests for a zero, the DOMAINP prefix recognizer macro which tests

188 August 1979 © BYTE Publications Inc

Circle 198 on inquiry-card.

for the underlying coefficient domain, the ORDPP predicate which tests the relative order of two leading powers, and the ADDDM function which adds domain elements. Since the syntax is essentially ALGOL, for which descriptions are widely available, we leave the serious reader to ponder this example, moving on now to another computer algebra system.

MACSYMA

MACSYMA is a very large computer-algebra system implemented by the Mathlab group at the MIT Laboratory for Computer Science in Cambridge MA. The system will probably be made available for DEC PDP-10 computers in a year or two.

In its entirety, excluding the library of user-submitted routines, MACSYMA occupies 400,000 36 bit words on the PDP-10. The system is modular, starting with a nucleus of 100,000 words. As is perhaps implied by its name, MACSYMA provides more built-in math operations than any other computer-algebra system. Here are some highlights;

• The system provides arbitrary-precision floatingpoint as well as indefinite-precision arithmetic.

• Besides the usual unavoidable algebraic transformations, there are numerous optional automatic ones controlled by flags or which are employed by applying specific functions to expressions. The most sophisticated of these transformations include cancellation of polynomial greatest common divisors, partial-fraction decomposition, nested polynomial decomposition such as completion of powers, and factorization. For example, MACSYMA can perform the factorization:

Sw^z" + Iw'z" + lUxy^z' - lOw^y^z^ + ASw^x^z^ — Sw^z^ -t- 76wxy^z - 2w^z - SSOxy" 1710xV' + lOw^y^ - 45w^x^ (3z^ -I- 2wz - lOy^ -I- 45x^)(w^y3 -|- 38xy^ - w

+

• There are numerous built-in transformations for fractional powers, exponentials, logarithms, trigonometric functions, inverse trigonometric functions, hyperbolic functions, and inverse hyperbolic functions. There are also transformations for some higher transcendental functions such as the error, gamma, beta, zeta, and psi functions.

• There is built-in matrix algebra on matrices having unspecified elements and unspecified size.

• There are special facilities for series analysis of periodic phenomena such as orbits.

• There is a high-level surface programming language which resembles ALGOL, with evidence of metaLISP influence.

• There is a powerful pattern-matching facility and an extendable Pratt parser.

• Symbolic differentiation and integration are builtin. The latter employs a powerful Risch algorithm, among other techniques. There is also a distinct program for definite integrals, which employs contour integration and other techniques besides indefinite integration.

Circle 378 on inquiry card.

Expand yourTRS-80.

Save $10a

Meet the Vista V80 Mini Disk System. The perfect way to upgrade yourTRS-80* system. Inexpensively. (Our $395.00 price is about $100.00 less than the manufacturer's equivalent.) Here's how it can help you.

23% more storage capacity. Useable storage

capacity is increased from 55,000 to 65,000 bytes on

drive one.

8 times faster. Wlnile electronically equal to the TRS

80 Mini-Disk system, track-to-track access is 5ms

versus 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 with Minifloppy disk drive, power supply, regulator board and case. And it's ready to run - simply take it out of the box, plug it in and you're ready to go.

Vista

1320 East St. Andrews Place, Suite I

Santa Ana, California 92705

(714)558-8813

At Vista, we mean business.

*TRS-80 ©Tandy Corp.

the ULTIMATE in CHEAP VIDEO

BOOK & KIT ONLY $42.95

Don Lancaster's "Cheap Video"concept allows almost unlimited options, including:

* Scrolling ■ Full performance cursor.

* Line/Character formats of 16/32, 24/80, 32/64.... or almost anything.

* Graphics-up to 256 X 256 B&W; 96 X 128 COLOR

(requires low-cost option modules D

* Works with 6502 , 6800 and other micros.

SPECIAL OFFER: Buy the Kit Cupper case alphanumeric option included D & get the Book at 1/2 price.

.ELECTRONICS, DEPT.8-B, 1020W.WILSHIRE BLVD.. OKLAHOMA CITY. 0X73116

I'm Sold, PLEASE RUSH C D SEND FREE CATALOG

C D TVT-e 5/8 Kit & Cheap Video Cookbook - $42.95 (enclosed) C ) TVT-65/8 Kit only Cbook required for assemblyj-$39.95

address:, city:

. state:

zip:

ELECTRONICS DEPT.S-B, 1020 W.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. Provides device independent, byte addressable random files. Supports any mixture of floppy or hard disk drives up to 2.5 billion bytes. Sector read-ahead and buffer pool enhance application performance. Flexible: Currently runs on 7 manufacturers' systems, using 10 different drive/controllers, including mini-floppies and hard disk.

BASIC COMPILER

For speedy business applications. 10 digit BCD; random access to variable size records; long variable names; formatted output; 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; macro facilities for complex or repetitive editing.

ASM

2 pass conditional assembler; 32 character labels; symbol table dump and cross-reference; error cross-reference; extensive arithmetic 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 software.

Complete package: $760.00

Also (not including SDOS) available for SWTP, Exerciser, SSB and MSI DOS.

Write tor free catalogue. Sizable distributor discour^ts. SOFTWARE DYNAMICS

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 § ^

CM ^

^ Programmer's Guides ^ § for the PET" i

» g

Tl S

WORKBOOKS FOR THE COMMODORE PET 2001 Gening Started with Your PET WB-1 $4.00

Covers the fundamentals of PET BASIC: calculator and program mode, data input and output, data representation, program storage on the cassette.

PET String and Array Handling WB-2 $3.95

Covers string and substring search, concatenation, replacement and manipulation. PET Graphic! WB-3 $4.95

Covers use of cursor controi and special graphics symbols to draw plots, histograms, and sketches. PET CasteHe I/O WB-4 $4.95

Covers OPEN, CLOSE, string and numeric data files. Mitcellaneout PET Fealuraa WB-5 $3.95

Covers the clock, random number generator, upper and lowercase alphabetic characters, saving memory space, etc.

PET Control and Logic WB-6 $3.95

Covers IF, GOSUB, logical operations, and ON X.

Add $1.50 for shipping and handling.

Dealer

Inquiries

Invited

TIS

P.O. Box 921

Lo« Alamot, NM 87544

Money back guarantee k

We also sell PET Software. Write for details. ',

§ I

J! PET is a trademark of Commodore Business Machines ►

lU c

o- ;

• PET 2001 • PET 2001 • PET 2001 • PET 2001 • PET 2001 • PET 2001 • PET 2001

• There is a powerful function which employs L'Hospital's rule and other techniques to computer limits.

• There are powerful functions for determining infinite and truncated generalized power-series expansions of expressions.

• Laplace transforms and their inverses are built-in.

• There is a function which uses a variety of techniques to seek closed-form solutions to first-order and second-order ordinary differential equations.

• There is a built-in function which uses the powerful new Gosper algorithm to find closed forms for sums with indefinite or infinite summations limits. For example, the function is able to make the transformation:

n j^

Ll (2J)

j = 0 1

2(n-H)(63n''-|-112n^-fl8n^-22n-H3)4" _ 2 6 93('„") 231

• Equations are legitimate expressions. Two equations or an equation and a nonequation can be added, multiplied, etc, and there is a powerful function named SOLVE which uses a variety of techniques to seek solutions to one or more simultaneous linear or nonlinear equations. SOLVE is able to determine, as exact symbolic expressions involving c, the four values of x which satisfy the quartic equation:

x* = ex -I- 1.

As another example, SOLVE is able to determine that the exact solutions for the two simultaneous nonlinear equations:

z" -I- x^z^ -I- xz^ -I- y^ -I- x^ = 2yz^ + x^y -I- xy, yz^ + 2xyz + xy = 2xz^ -I- 2x^z -|- y^,

are the curve (x = r, y = s^ z = r) together with the surface (x=r, y = s^ + r, z = s), where r and s are arbitrary parameters.

• There is an extensive user-contributed program library which includes packages for vector and tensor analyses, ordinary and variational optimization, solution of integral equations, higher transcendental functions, and dimensional analysis.

Most of MACSYMA is written in MACLISP, which is a particularly elaborate version of LISP also developed at MIT. MACSYMA uses several internal representations, including Cambridge prefix and a recursive polynomial representation somewhat like that of REDUCE. The major difference from the REDUCE polynomial representation is that in MACSYMA the variables are also implicit and stored separately, only once per complete polynomial. This usually saves additional space in the expressions. Although the resulting algorithms are somewhat faster when combining polynomials having the same variables, there is some awkwardness or overhead involved in a preliminary padding phase when combining polynomials that do not have identical variables.

190 August 1979 © BYTE Publications Inc

Circle 370 on inquiry card.

SCRATCHPAD

SCRATCHPAD is a very large computer-algebra system implemented at the IBM Thomas J Watson Research Center. It is available there on an IBM 370, and it is available from other IBM corporate sites via telephone. Regrettably, this fine system has not yet been released to the public, but it is discussed here because of its novel features.

In its entirety, the system occupies about 1600 K bytes on an IBM 370 with virtual storage, for which an additional minimum of 100 K bytes is recommended for workspace. The variety of built-in transformations currently lies between that of REDUCE and MACSYMA. However, each of the three systems has features that none of the others possess, and one of these features may be a decisive advantage for a particular application. Here are some highlights of the SCRATCHPAD system:

• The system provides single-precision floating-point arithmetic as well as indefinite-precision rational arithmetic.

• The built-in unavoidable and optional algebraic transformations are approximately similar to those of MACSYMA.

• The built-in exponential, logarithmic, and trigonometric transformations are approximately similar to those of REDUCE.

• Besides built-in symbolic matrix algebra, APL like array operations are included, and they are even further generalized to permit symbolic operations

of nonhomogeneous arrays and on arrays of indefinite or infinite size.

• Symbolic differentiation and integration are builtin, with the latter employing the powerful RischNorman algorithm.

• There is a particularly elegant built-in facility for determining Taylor series expansions.

• There is a built-in SOLVE function capable of determining the exact solution to a system of linear equations.

• There is a powerful pattern-matching facility which serves as the primary mechanism for user level extensions. The associated syntax is at a very high level, being the closest of all computer-algebra systems to the declarative, nonprocedural notation of mathematics. To implement the trigonometric multiple-angle expansions, we can merely enter the rewrite rules:

cos(n*x) = 2*cos(x)*cos((n —l)*x) —

cos((n —2)*x), n in (2,3,...), x arb sin(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 expression such as cos(4*b), the response will be a corresponding expanded expression such as:

8 cos^(B) - 8 cos^(B) -I- 1

Omikron tiransfonns TRS-80* into a powerful business system.

STANDARD DRIVES 8" Drives give you 5 times the speed and 3 times the storage of your mini drives! Our system provides a standard Shugart interface so you can use either your 8" drives or ours. Omikron drives are enclosed in an attractive metal cabinet, and include a power supply.

SOFTWARE CP/M* is the most popular operating system for microcomputers. But many high-level languages and advanced business programs cannot run with the special CP/M* designed exclusively for the TRS-SO? The Omikron MAPPER with standard CP/M* allows you to expand your software capability to go beyond the few available TRS-80* compatible packages. TRS-80* with MAPPER out-performs systems costing $1000 more!

The MAPPER I and MAPPER II are plugin modules. They don't require any circuit changes, are easy to install, and they don't interfere with the normal operation of your TRS-SOf Ail your original software, including Level III BASIC will still run properly. Omikron products require 16K LII BASIC and the TRS-80* Expansion Interface.

• • •

MAPPER I is a memory management unit which adapts your TRS-80* to run standard CP/M? Versions for both 5" and 8" drives are available. The package includes CP/M* software on 5" or 8" diskette, and documentation. 5" unit, $169. 8" unit, with adapter cable, $199.

MAPPER II includes the MAPPER I package plus a disk adapter module which allows both 5" and 8" drives to run on the same cable. Drive selection is under software control to permit easy file transfer between the drives. With cable, $249. CONVERSION -If you purchase MAPPER I or II and plan to use only minidrives, Omikron will transfer CP/M* files from 8" diskette to a 5." This allows you to run software previously available to only 8" drive owners. $25 per mini-diskette. DRIVE - 8" drive, $849. Additional drive, $695. WARRANTY- 1 year on boards; 90 days on drives. VISA/MasterCharge accepted. Prepaid orders given top priority.

*CP/MisaTMofDigital

Research. TRS-80 is

a TM of Tandy

Corporation.

Circle 287 on inquiry card.

August 1979 © BYTE Publicalions Inc 191

Thus, programs resemble a collection of math formulae much as they would appear in a book or article.

• SCRATCHPAD has a particularly powerful yet easily used mechanism for controlling the output format of expressions. For example, the user can specify that an expression be displayed as a power series in x, with coefficients which are factored rational functions in b and c, etc. For large expressions, such fine control over the output may mean the difference between an important new discovery and an incomprehensible mess.

This generalized recursive format idea is so natural and effective that SCRATCHPAD is now absorbing the idea into the internal representation. A study of the polynomial additional algorithm in the previous section reveals that it is written to be applicable to any coefficient domain which has the algebraic properties of a ring. The coefficients could be matrices, power-series, etc. That coefficient domain could in turn have yet another coefficient domain, and so on. With a careful modular design, packages to treat each of these domains can be dynamically linked together so that code can be shared and combined in new ways without extensive rewriting and duplication. Then not only the output, but also the internal computations can be selected most suitably for a particular application.

For further information about SCRATCHPAD, contact Richard Jenks at the IBM Thomas J Watson Research Center, Yorktown Heights NY 10598.

The Future

If the preceding sections have whet your appetite for more information about computer algebra, try some of the survey articles, collections of articles, and relevant books listed in the bibliography. Also, annual membership in the ACM Special Interest Group on Symbolic and Algebraic Manipulation costs a mere $2.50 for students, $5 for other ACM members, or $8 otherwise. Membership includes a subscription to the SIGSAM Bulletin, which contains the latest information about relevant meetings, reports, and developments.

Computer algebra is increasingly available on a wide variety of processors ranging in size from the Intel 8080 microprocessor to the Cray 1 supercomputer. Within a short while computer algebra should be economically and conveniently accessible to most engineers, scientists, mathematicians, students, and hobbyists. This widespread availablity will have a profound effect on research utilizing applied math, math education, computer education, and recreational math. Consider the following:

• How frequently approximate numerical computations are employed without first checking to see if a more informative analytical solution is obtainable with the help of computer algebra.

• How many mistakes in manual analytical analyses could be caught by checking the derivations with computer algebra.

• How little of elementary-school through university math education is concerned with floating-point arithmetic.

• How much of this education is concerned with the kind of arithmetic and symbolic transformations provided by computer algebra, or concerned with theorem proving, which is especially well supported by other LISP programs.

• How dramatically computer algebra demonstrates the utility of LISP like languages, providing numerous well-motivated examples for teaching such languages.

• How much more students and enthusiasts are intrigued by artificial intelligence and game playing application of computers than by accounting and floating-point scientific applications.

The conclusion is inescapable: computer algebra and LISP like languages provide an ideal first exposure to computer programming, and are an invaluable component of scientific programming skills. ■

Bibliography

1. Aho, A V, Hopcroft, J E, and Ullman, J D, The Design and Analysis of Computer Aigorithms, Addison Wesley Publishing Co, 1975.

2. Borodin, A, and Munroe, I, Tlie Computational Complexity of Algebraic and Numeric Problems, American Elsevier, 1975.

3. Brown, W S, and Hearn, A C, "Applications of Symbolic Algebraic 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 on Symbolic and Algebraic Computation, ACM Inc, 1976.

7. Journal of the ACM, October 1971.

8. Knuth, D E, The Art of Computer Programming, Volume 1, Basic Algorithms, 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 on Symbolic Manipulation, ACM Inc, 1971.

11. Proceedings of 1974 Eurosam Conference, ACM SIGSAM Bulletin 8, August 1974.

12. Proceedings of the 1977 MACSYMA Users Conference, NASA CP2012, June 1977.

13. Proceedings of the Second MACSYMA Users Conference, MIT Laboratory 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 those who obtain muSIMP-77. Object listings of the latter or of muLISP-77 cost $85, and a machine readable version costs an additional $95. Primers and reference manuals are available separately for each of these systems at a cost of approximately $0.10 per page.

192 Augusl 1979 © BYTE Publications Inc

Business

& Application

Software Available

• Client Billing

• A/R • A/P

• Gen .Ledger

• Inventory

• Payroll

• Mailing List

• File Handling for

TRS-80 APPLE

&

OTHERS

or Write for Details

in'';l(u..i'</;jj|

TRS-80

PROGRAM

GALACTIC BLOCKADE RUNNER

SCl-Fl 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-I

MUSIC MASTER

DISK MUSIC MASTER

TRS-80 CP/M

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

• DON'T WAIT FOR OTHERS TO PLAY-YOUR COMPUTER'S READY

• BLACK.IACK WITH HIRES GRAPHICS

• SCI-FI GAMES FOR 1 HE 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 cSc PLAYS IT

• SAME AS ABOVE BUT ON DISK W/MANY SELECTIONS

• OPENS UP THE WHOLE WORLD OF CP/M SOFTWARE TO THE TRS-80

r

r

tn

■0 ■B

r

•

•

•

$ 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

10% OFF IF YOU ORDER 3 SOFTWARE PACKAGES OR MORE SEND FOR FREE CATALOG—GIVE TYPE OF COMPUTER

TO ORDER BY PHONE OR FOR DEALER INFO—CALL—(617) 682-8131

ADD 75c SHIPPING & HANDLING • MASS. RESIDENTS ADD 5% SALES TAX

MAD HATTER SOFTWARE • 900b SALEM RD • DRACUT, MA 01826

CD

CD

AVAILABLE FROM THESE FINE MICRO COMPUTER DEALERS

CAPITOL COMPUTEK SYSTEMS 33% EL CAMiNO AVE. SACRAMENTO CA 9S82I

TRS-80 SOFTWARE EXCHANGE n BRIARCLIFF DR. MtLFORD NH 03033

OF AMP TECH BOOKS 1033 N. SYCAMORE AVE. LOS ANGLES CA W03B

COMPUTER CABLEVISION, INC. 2617 «ND ST. NW 12 WASHINGTON tX: 20007

KENNEr.-Y SYSTEMS 74 BROAD ST. LYNDONVILLE VT 05831

ADVANCED COMPUTER PRODUCTS 13108 li ElINoER SAKTA At.A CA 92703

HOBBY WORLD ELECTRONICS 19333 BUSINESS CENTER DR. 16 NORTHRIDCE CA 91324

AUGUST AUTOMATION UMILK ST. WESTBORO MA 01581

THE CPU SHOP 59 PLEASANT ST. CHARLESTOWN MA 02129

JAJ ELECTRONICS LTD 28 COLLINGTON AVE. BEXHILL-ONSEA. E. SUSSEX. ENG.

COMPUTER VILLAGE 931 SW87TH AVE. MIAMI FL 13174

L. C. SALES

100 HINCHEY AVE. t703

OTTAWA. ONT.. CAN. KIY4L9

Circle 202 on inquiry card.

BYTE AugusI 1979 193

BYTE's Ewgs

Marsport, Here I Come

Delmer Hinrichs has found several corrections which should be made to "Marsport, Here I Come" (April 1979 BYTE, page 84):

• page 90, step 4 should be "x < y?" Since there is no "x < y?" step available on the HP67/97, users could probably correct this.

• page 90, step 25 should be "ST I." Since there is no "ST 1" (only

"STO 1"), this is probably correctable by users.

• page 90, steps 119 and 120 must be reversed. Users might be able to figure this out by noting other similar conversions.

• page 92, step 182 should be "—X — " (print/pause), not "X" (multiply). This

could probably be figured out from the program operating instructions and flow diagram. In any case, if you get here, you're going to crash. • page 92, step 204 should be "GSB C," not "GSB c". This error is disastrous, as it causes the spaceship to materialize at the center of Mars.

Don't Share Your Soap

An acronym was wrongly interpreted in "History of Computers: The IBM 650" by Keith S Reid-Green (March 1979 BYTE, page 238.) The name of the SOAP assembler program is properly derived from the phrase "symbolic optimal

assembly program," not "SHARE optimum assembly program," as was stated. Thanks to Leo Walder of Greenbelt MD for pointing this out.

A Bug on the Beam

There was a bug in the labeling of figure 10 on page 49 of Steve Ciarcia's Circuit Cellar article "Communicate on a Light Beam" (May 1979 BYTE). The center tapped transformer should have been labelled as 24 V instead of 18 V.

Tic Tac Bug

Delmer Hinrichs has discovered a small bug in the program for "Tic-TacToe: A Programming Exercise" (May 1979 BYTE, page 196). Line number 340 should end with 3,2,5,7,9 rather than 2,3,5,8,9.

In addition, BASICs other than TDL 8 K might have to write:

230 RANDOM

instead of:

230F = RND(-1)

to initialize the random number generator. Lines 465 and 570 might have RND(l) replaced with RND(O) to give a random number between 0 and 1.

A Bug in the Field

John P Costas has informed us that several errors crept into listing 1 of "Cryptography in the Field" (April 1979 BYTE, page 145). The locations and the correct code are given below.

Location

Code

70

STO-5

90

STO-8

111

STO-9

122

—

178

STO-3

i^No^'

Ho^

I'd

from Computer Headware ... the Self-Indexing Query System

for your Apple II, North Star, or CP/M machine

OJstributed by:

• Infomution Unlimited / 219-924-3522 P.O. Box 8372, Merrillville, Indiana 46410

• Lifeboat Associates / 212-580-0082 (CP/M model only) 224S Broadmy, Suite 34, New York City 1D024

• Structured Systems Group, Inc./415-547-1567 5208 Claremont Avenue, Oakland, California 94618

194 August 1979 © BYTE Publications Inc

Circle 236 on inquiry card.

Event Oueue

AUGUST 1979

August 1-3 Microcomputer Applications, Southern Technical Institute, Marietta GA. The emphasis of this seminar will be on the applications of microcomputers in industry. Software, hardware and interfacing techniques will be discussed. Contact Dr Richard L Castellucis, Southern Technical Institute, Electrical Engineering Technology Dept, 534 Clay St, Marietta GA 30060.

August 6-8 Pattern Recognition and Image Processing, Hyatt Regency Chicago O'Hare, Chicago IL. This conference is sponsored by the Machine Intelligence and Pattern Analysis Committee of the IEEE Computer Society. The program will consist of submitted and invited papers, and a large trade show of graphics and image processing equipment. Contact PRIP 79, POB 639, Silver Spring MD 20901.

August 6-10 SIGGRAPH '79, Chicago IL. This sixth annual conference on computer graphics will feature tutorials, technical sessions and an exposition of state-of-the-art computer graphics and image processing equipment. Contact Maxine D Brown, SIGGRAPfi 79 Exposition, fiewIett-Packard, 19400 Homestead Rd, Cupertino CA 95014.

August 6-10 Modern Communication Systems: Analysis and Design, University of Southern California, Los Angeles CA. This course is devoted to the analysis and design of modern communication systems, with emphasis on the derivation

of practical design equations useful for trade-off studies and overall synthesis. Contact University of Southern California, Continuing Engineering Education, Los Angeles CA 90007.

August 6-10 Advanced Microcomputer System Development: High Level Languages, Technology Trends, and Hands-On Experience, University of Southern California, Los Angeles CA. This course is intended to present the participants with a clear picture of the microcomputer revolution, provide hands-on programming experience using extended BASIC and FORTRAN, analyze technology trends in the microcomputer field, and assess the impact of VHSI/VLSl. Contact University of Southern California, Continuing Engineering Education, Los Angeles CA 90007.

August 8-10 SIGPLAN Symposium on Compiler Construction,

Boulder CO, This symposium will consider methods of, and experience with, constructing compilers. The emphasis will be less on theoretical methods and more on techniques applied to real compilers. Contact Professor Leon Osterweil, Dept of Computer Science, University of Colorado, Boulder CO 80309.

August 8-10 First Annual Conference on Research and Development in Personal Computing,

Hyatt Regency Chicago O'Hare, Chicago IL. This conference is sponsored by the Association for Computing Machinery (ACM) Special Interest Group on Personal Computing (SIGPC). A large trade show

IMMEDIATE DELIVERY

Domestic & Export

DEC LSI-11 COMPONEtnS

A full and complete line with software support available.

mini Computer Suppliers, knc.

25 CHATHAM ROAD

SUMMIT, NEW JERSEY 07901

SINCE 1973

(201) 277-6150 Telex 13-6476

Word Processing and Data Management

TEXTFORM

This text-processing program can be used for the preparation of letters, manuals, and general documentation. It produces output for either the console, line printer, or into a file, with automatic right margin justification, pagination and titling, centering, underlining, indenting, and multiple line spacing. Formatting commands are interspersed with the source textfile for ease of correction.

Textform will automatically loop for repeated formatting such as form letters. A preprocessing program is able to select a subset of the text data according to a user defined 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

• NJ —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 inventory control, sales analysis, project scheduling, billing, check writing, and mailing lists.

Informer is a collection of commands for creating, updating, manipulating, displaying, 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 systems under the CP/M operating Si/stem.

Special Introductory ^^_.^ __

price of $350,00 per package Manual alone: $25.00 Media: 8' IBM single density Diskette Suggested retail price Is $495.00

Write or call:

DIGITAN, INC.

5001 16th Auenue. Brook/yn, New York 11204. (212) 436-3777

Circle 88 on inquiry card.

August 1979 © BYTE Publications Inc 195

Circle 93 on inquiry card.

25 START-AT-HOME COMPUTER BUSINESSES

In "Low Capital, Startup Computer Businesses"

CONSULTING • PROGRAMMING • MICRO COMPUTER OPPORTUNITIES • SOFTWARE PACKAGES • FREELANCE WRITING • SEMINARS • TAPE/DISC CLEANING • FIELD SERVICE • SYSTEMS HOUSES • LEASING • SUPPLIES • PUBLISHING • HARDWARE DISTRIBUTORS • SALES AGENCIES • USED COMPUTERS • FINDER'S FEES • SCRAP COMPONENTS • AND MORE . .

Plus — ideas on moonlighting, going full-time, image building, revenue building, bidding, contracts, marl<eting, professionalism, and more. No career tool I ike it. Order now — if not completely satisfied, return within 30 days for full immediate refund.

• 8'/? X 11 ringbound • 156 pp. • $20.00 Phone Orders 901-761-9090

DATASEARCH

incorporated

4954 William Arnold Road, Dept. B, Memphis, TN 38117 Rush my copy of "Low Capital Startup Computer Businesses" at $20.

NAME/COMPANY

ADDRESS

CITY/STATE/ZIP

□ Check Enclosed

QVISA D Master Charge Exp. Date

LIGHT-PENtrs.80

PLUQS RIQHT IN! Exclusive design includes tv\/o sample programs and complete documentation so you can write your own programs in Basic. Long life from standard 9-volt battery. A bargain at only $24.95!

PRACTICAL APPLICATIONS^** (415) 573-8217

Post Office Box 4139, Foster City, CA 94404

D Please send me TRS-80 Light Pens

($24.95 each enclosed. Calif, residents add tax). n Send your catalogs.

Name_

Address. City_

TRS-80 is a trademark of Tandy Corp.

_State_

-Zip

of personal computer and graphics equipment is planned to accompany an assortment of papers, panels, user group meetings, workshops, and person to person poster booths. Contact Bob Gammill, Computer Science Division, Dept of Mathematical Sciences, 300 Minard Hall, North Dakota State University, Fargo ND 58102.

August 13-15 Minicomputers and Distributed Processing,

Atlanta GA. This three day seminar will examine the uses, economics, programming, and implementation of minicomputers. Contact the University of Chicago, Center for Continuing Education, 1307 60th St, Chicago IL 60637.

August 13-15 Conference on Simulation, Measurement and Modeling of Computer Systems

Boulder CO. This conference will feature performance prediction techniques employed during the design, procurement and maintenance of computer systems. It will provide a forum for both applied and theoretical work in the disciplines of performance monitoring, modeling, and simulation of computer systems. Contact Gary Nutt, Xerox PARC, 3333 Coyote Hill Rd, Palo Alto CA 94304.

August 13-16 Q-GERT Network Modeling and Analysis, Ramada Inn, Lafayette IN 47905. This course will provide the attendee with the information necessary to model complex systems using Q-GERT. Emphasis will be on the procedures for modeling and analysis. Contact Pritsker and Associates Inc, FOB 2413, W Lafayette IN 47906.

August 13-17 High Speed Computation: Vector Processing, The

University of Michigan, Ann Arbor MI. In this course, the architectural, software, and algorithmic issues of vector architecture are coor

dinated by discussion of concepts in computer architecture and detailed study of current vector processors and their use. Contact Engineering Summer Conferences, 400 Chrysler Center, North Campus, The University of Michigan, Ann Arbor MI 48109.

August 19-22 International Conference on Computing in the Humanities, Dartmouth College, Hanover NH. This conference is intended to foster computer research and technique in all areas of humanistic study; to promote international cooperation in the development of programs, data banks, and equipment; and to make the results of research available. The program will include a plenary session each evening and shorter sessions during the day. Contact Stephen V F Waite, Kiewit Computation Center, Dartmouth College, Hanover NH 03755.

August 19-24 1979 Symposium for Innovation in Measurement Science, Hobart and William Smith Colleges, Geneva NY. Sponsored by the Scientific Instrumentation and Research Division of the Instrument Society of America, scheduled sessions at this symposium include innovation in computers and electronics, mass flow measurement, chemical analysis, applied analysis in instrument control, physical analysis, medical instrumentation, and advances in industrial measurement. Contact Instrument Society of America, 400 Stanwix St, Pittsburg PA 15222.

August 22-24 Understanding and Using Computer Graphics, San

Francisco CA. This course is for people who are using, or are contemplating using computer graphics and would like to understand its role in their organization. It will describe computer graphics, explain the available hardware and software systems, and give cost and performance com

196 August 1979 © BYTE Publications Inc

Circle 303 on inquiry card.

parisons. Contact Frost and Sullivan, 106 Fulton St, New York NY 10038.

August 23-26 National Small Computer Show, New York Coliseum, New York NY. Exhibitors will include major manufacturers, distributors, and publications in the small computer field, A lecture series will include topics of interest to business and professional people, hobbyists, and the general public. Contact National Small Computer Show, 74 E 56th St, New York NY 10022.

SEPTEMBER 1979

September 4-6 International Conference and Exhibition on Engineering Software, University of Southampton, England. The aim of this conference is to provide a forum for the presentation and discussion of recent advances in engineering software and to present a state-of-the-art in this field. An exhibition, held in conjunction with the conference, will cover all software products, services, and equipment related to engineering software. Contact Dr R Adey, Engsoft, 6 Cranbury Place, Southampton S02 OLG, ENGLAND.

September 4-7 Compcon Fair79, Capital Hilton Hotel, Washington DC. This eighteenth IEEE Computer Society International conference will present the latest developments in microprocessor architecture, support software, operating systems, and peripheral devices. Contact IEEE Computer Society, POB 639, Silver Spring MD 20901.

September 5-8 Info/Asia, Ryutsu Center, Tokyo. This exposition will be devoted to information management, computers, word processing, and advanced business equipment. The exposition will be accompanied by a four day conference. Contact Clapp

and Poliak Inc, 245 Park Ave, New York NY 10017.

September 18-20 Wescon/79, St Francis Hotel, San Francisco CA. Contact Electronic Conventions Inc, 999 N'Sepulveda Blvd, El Segundo CA 90245.

September 24-26 Minicomputers and Distributed Processing, New

York NY. See August 13-15 for details.

Septentber 25-27 WPOE '79, San Jose Convention Center, San Jose CA. This show will be dedicated to word processing and office/business equipment, services and materials. Complementing the exhibit will be a three day executive conference program that focuses on emerging technologies and their applications in the office. Contact Cartlidge and Associates Inc, 491 Macara Ave, Suite 1014, Sunnyvale CA 94086.

September 26-29 MIMI '19, Queen Elizabeth Hotel, Montreal, Canada. This symposium is intended as a forum for the presentation and discussion of recent advances in mini and microcomputers and their applications. Special emphasis will be given to the theme of the conference: "The Evolving Role of Minis and Micros Within Distributed Processing." Contact The Secretary, MIMI 79 Montreal, POB 2481, Anaheim CA 92804.

September 28-30 Northeast Personal and Business Computer Show,

Hynes Auditorium, Boston MA. Displays and exhibits will showcase microcomputers and small computer systems of interest to businesspeople, hobbyists, professionals, etc. Lectures and seminars will be presented for all categories and levels of enthusiasts, including introductory classes for novices. Contact Northeast Exposition, POB 678, Brookline MA 02197. Text continued on page 200

Circle 102 on inquiry card.

TM

Retro-Graphics

Fdr your Dumb Terminal. The RetroGraphics PC card mounts easily in the Lear Siegler ADM-3A to provide you with an affordable graphics computer temiinal, Features:

Z-80 Based 512 by 250 Dot Matrix Simple Plug-in Interconnect

Point Plotting Automatic Vector Generation

Optional TEKTRONIX Software Compatibility

You will be impressed with the packaging, performance 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 best possible prices. Not only are our prices great, so is our delivery. We offer a 10% discount on most major lines, plus a 5% additional discount for a cash purchase.

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 Board Electronic Control Technology R^ I/O Interface Board, Assembled & Tested IMC Dual Mini Box for 2 Shugart SA-400 Drives Oliver 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. 07828 Phone: (201) 691-1984

HOURS: Monday & Friday: 10 to 6, Tuesday-Thursday: 10 to 9 Saturday: 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 SOLUTIONS!

BUSINESS

Appointment log by M. Kelleher. Perfect for the professional. Accepts name and address, meeting start and endings, subject matter, derives elapsed time. For Level II, 16K $9.95

Payroll by Stephen Hebbler. Comprehensive 24 pg. manual with step-by-step instructions included in the package. Supports W2 and 941 information. D, $59.95.

Mall List I by (Michael Kelleher is the economy model of disk-based mailing list programs. Uses a single drive and handles up to 1400 names per disk, plus provisions for sorting options. 16K, D $19.95.

Text-80 by Frank Rowlett. Fully-documented text processing system for disk. Create, edit, move, delete, insert, change, print «/ords or lines. D, 32K $59.95

KVP Extender by Lance Micklus. Corrects keyboard bounce, upper case lock, permits use as a terminal, screen printing. On tape ($24.95) or disk ($29.95)

BUS-80

The Business Software People®

Just about everything you need ... within 1 year, participants receive programming for Inventory, Accounts Receivable, Accounts Payable and General Ledger systems, plus Sales and Payroll. Complete documentation and software on diskette, $200.00

ST 80-Smart Terminal

Lance Ivlicklus

Turns your TRS-80 Into a computer terminal. Features Include CONTROL key, REPEAT key, ESC key, RUN key and a functioning BREAK key. Lets you list Incoming data on line printer. Reprogram RS-232-C switches from keyboard, making baud rate changes simple. Level II, 16K $49.94

ST80D

Lance Micklus

The smart terminal made even smarter. Contains extensions for disk systems to exchange files with a timesharing computer or another TRS-80 miles away. Professional quality, not an amateur program. 32K $79.95

IVIall List II by BUS-80. Complete mail list system for dual disk. Enter, update, merge, sort, and print mailing labels. D, 32K $99.95

Small Business Bookkeeping by Roger W. Robitaille, is based on the Dome Bookkeeping Journal, sold for years in stationery and discount outlets. Level II, 4K with ($22.00) or without ($15.00) Dome journal.

Small Business Bookkeeping For Disk by fvliiler Microcomputer 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 stock items can be contained using the full 6 data areas and 2 pieces of alpha information. Level I or II, 16K $25.00

inventory 11.2 Disk based program allows for creation, maintenance and review of over 2,000 items per clean diskette. Operates under Disk BASIC, DOS 2.1 with minimum memory allocation. D, $59.95

Electric Pencil by Michael Shrayer. A word processing system. Insertions, additions, deletions and corrections made more easily than with an editor's pencil. Perfect text printouts. Level II, 16K, $100.00. 32K Disk, $150.00

Accounts Receivable II by S. Hebbler. Does your billing, provides running balance, tracks overdue accounts, custom message printing option, much MORE. Requires 32K 2-disk system $79.95

General Ledger I by M. Kelleher. Establishes, defines, deletes and sorts up to 400 accounts. Up to 200 entries per session. For small-to-medium businesses not requiring double entry books. A comprehensive, flexible accounting system. Requires 32K disk. $79.95.

Inventory System 2.3 by M. Kelleher. One of small business management's most difficult problems brought under control. Keep current on price increases, shrinkage, low stock, profit margins. Program can handle up to 1,000 items per data diskette. Improved version, lower price. With documentation $99.95, 32K 2-disk.

8080-Z80 Conversion by M. Kelleher. Permits you to enter 8080 codings and returns theZBO equivalent. L II, 16K $15.00

Basic Statistics by Steve Reisser. Pearson productmovement correlation coefficient, chi-square, Fisher T-test, sample analysis of variance, Z-scores and standard scores, with a random number generator built in to simulate data. L II, 16K $20.00

NEWDOS

Apparat

DISK ERROR SOLVED! Stop blaming your drive, fix your DOS with NEWDOS: an enhanced disk-operating system capable of correcting over 70 errors in TRSDOS 2.1 to Improve reliability, and key t»unce, enable DOS commands to be called from BASIC and much more! Available NOW for 16K systems with a minimum of 1 disk drive. $49.95

NEWDOS-H

Includes all the features of the original NEWDOS and adds 7 new utilities. Including SUPERZAP, Disk Editor/Assembler, Disassembler, and Level I BASIC for Disk.

$99.95

ACTION GAfVIES

Slalom by Denslo Hamlin. Choose between Slalom, Giant Slalom and Downhill. Level II, 16K $7.95

X-WIng Fighter II by Chris Freund. Piloting an X-wing fighter, you're out to destroy the Death Star! A new, improved version of an exciting space favorite. Level II, 16K. $9.95

Air Raid by Small System Software. High speed machine language program with large and small aircraft flying at different altitudes. Ground-based missile launcher aimed and fired from keyboard. Planes explode when hit, cause damage to nearby aircraft. Score tallied for hits or misses. Level I or II, 4K $14.95.

All Star Baseball by David Bohike, Level II, 16K $7.95

Baiter Up by David Bohike. 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, dodging pirates and cutthroats, to make your fortune trading in arms and opium. Level II, 16K. $9.95.

Balloon Race by Dean Powell. High above the Atlantic, your balloon must be cleverly maneuvered with the prevailing winds to reach Paris. Level II, 16K, $9.95.

ADVENTURES

Scott Adams

Feel as if you're manipulating HAL from 2001 when you play these machine language games. Hardly any rules, finding out is part of the fun. Two adventures on 32K disk, $24.95. Tape - choose from Land Adventure, Pirate's Cove, Mission Impossible, The Count, and Voodoo Castle - $14.95 each.

DOG STAR ADVENTURE

Lance Micklus

You're trapped aboard an enemy battiestar ... can you find the gold, rescue the princess, discover the plans and safely escape? Level ii, 16K $9.95.

Amazin' Mazes by Robert Wallace. Ever -changing maze situation. Level II, 16K $7.95

Kamikaze by Russell Starkey. Command your ship against attacking suicide planes. Machine language graphics make this fast and fun! L II, 16K $7.95

Space Battles by Level IV. Features three levels of play, fast, machine language graphics, real-time input, and "smart" enemy ships that move and shoot! Level II, 16K Tape or 32K Disk. Tape $14.95, Disk $19.95.

MISCELLANEOUS

Diskettes Dysan 104/1 Box of five, $24.95 + $1.00 shipping. Verbatim, box of ten, $34.95 + $1.00 shipping/handling.

Z80 Instruction Handbook by Scelbi Publ. $4.95 + $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 than comparable units! Single drive - $399.00; Dual Drive $799.00; Cable (required) - $29.95.

Floppy Armour Protective envelopes for shipping floppy disks, of high-density, uitra-lightweight polymer. 5-pack, $4.95 + $1.00 shipping/handling

16K MEMORY KITS

Ithaca Audio

8 tested, guaranteed 16K RAM's, amazing low price - $99.95

198 BYTE August 1979

Circle 374 on inquiry card.

SIMULATIONS

3-D Tic Tac Toe by Scott Adams. Three skill levels author warns you to practice before tackling computer's third skill level. I or II, 16K $7.95

Star Trek III.3 by Lance Micklus. One of the most advanced Star Trek games ever written. Level II, 16K $14.95.

End Zone by Roger W. Robitaille, Sr. Authentic football simulation, right down to the 2-minute warning. Level I or II, 16K $7.95

Cribbage by Roger W. Robitaille, Sr. You versus the computer cribbage played by standard rules. Level I or II, 16K, $7.95.

Bridge Challenger by George Duisman. You and the dummy play 4-person contact bridge against the computer. Level II, 16K $14.95

'Rouncj the Horn by Rev. George Blank. You're the captain of a clipper ship racing from New York to San Francisco. Level II, 16K$9.95

Concentration by Lance tvlicklus. One of the most popular television games. Level I or II, 16K $7.95

Safari by David Bohlke. You're in the running for a film contract at a major Hollywood studio. To qualify, you must photograph the most wild animals in their natural habitat. Level II, 16K$7.95.

Pork Barrel by Rev. George Blank. Places you in the shoes of an aspiring Congressman. Level II, 16K $9.95

Backgammon by Scott Adams. Level II, 16K $7.95

Chess Companion by fvl. Kelleher. Combines chess clock features with ability to record your moves while action is fast and furious. Level II, 16K $7.95

Sargon Chess by Dan & Kathe Spracklen. Winner of the 1978 San Jose fvlicrocomputer Chess Tournament. Level II, 16K $19.95

Mastermind 11.2 by Lance Micklus. Lets you and the computer take turns making and breaking codes. Level II, 16K$7.95

T|S

TRf-60 SefluiQfe EKchonoe

l*60S*67S*5M4

17 BRIAR CLIFF DRIVE MILFORD. NEW HAMPSHIRE 03055

PERSONAL

RPN Calculator by Russell Starkey. A self-documenting calculator program. Uses Reverse Polish Notation with 4-level stack, 100 memories, scientific functions. Level II, 16K $9.95

Home Financial Management by M. Kelleher. Turns your computer into a personal financial advisor. Level II, 16K$9.95

Tarot by Frank B. Rowlett, Jr. Probably the best future-gazing type program ever written. Try it you'll like it! Level I or II, 16K $9.95

Ham Radio by fvl. Kelleher. Amateur Frequency Allocations, ID Timer, Q-signal File, Amateur Log Routine, Propogation Forecasting. L II, 16K $9.95. Special Disk-enhanced version, 32K $24.95

Educator Assistant by Steve Reisser. Five programs of value to educators. Compute percentage, individual student averages, class averages, standard test scores, final grades. L II, 16K $9.95 D, $14.95

Electronic Assistant by John Adamson. A group of 9 subprograms designed to solve problems such as tuned circuits and active and passive filters. L II, 16K $9.95

Personal Finance by Lance IVlicklus. 33 different budgets can be easily adapted by user to fit his individual needs. A 2-part program, entry and search. Level II, 16K $9.95

Advanced Personal Finance by Lance Micklus. Same as above with advanced analysis routine. Supports Disk Files D, 32K $24.95

Magazine Section

jsfisia

SoftSide is for pioneers . . . those hardly souls who have adopted a TRS-80, installed it in their livingroom or office, and unleashed their imaginations.

SoftSide helps you discover the endless variety of tasks your new friend will do for you, as you build a unique partnership of human being and machine.

We publish software for the partners. Every month we publish games, household application programs, educational aids, business programs. We help you realize your expectations, fantasies, and dreams.

SoftSide means Software!

DEALER

INQUIRIES

INVITED

For further details call: 603-673-5144

A bi-monthly magazine for the serious programmer who wants to know HOW his computer works and WHY. PROG/80 emphasizes technique rather than canned programs. The subjects include machine language, construction projects and specialized applications software, not just for the advanced computer hobbyist, but for the computerphile who wants the most from his machine.

4pp(e Seed

pioneer, software : someone

[ If you're an Apple II ' you've been longing for a I publication and hoping 'would get around to it. ', We have. Apple Seed is to the [Apple II what SoftSide is to the .TRS-80. And it's brand new. The Jfirst issue will roll off the press in »August or September. Apple II [enthusiasts will eat up this special (introductory offer!

SOFTSIDE

n 1 Year-12 issues $18.00

PROG/80

D 1 Year-6 issues $20.00

APPLE SEED

D 1 Year-12 issues $15.00

PO Box 68 Milford, NH 03055

D USA first class $25.00 -1 yr. D APO/OVERSEAS surface $25 -1 yr. D CANADA/MEXICO $25 - 1 yr. D OVERSEAS airmail $30 - 1 yr.

Exp. Date. Signature

Name

Address

City

-Interbank #[M/Conly].

.State.

-Zip.

Telephone orders accepted for Master Charge or VISA accounts. Call fi^onday through Friday, 9:30 to 5:30 EST at 603-673-5144

Circle 313 on inquiry card.

BYTE August 1979 199

OCTOBER 1979

October 1-3 Second Annual Symposium on Small Systems, Hilton Inn, Dallas TX. The symposium will consist of a blend of paper and panel discussions with major emphasis on microcomputer applications. Both hardware and software topics presenting state-of-the-art and state-ofthe-industry aspects will be included. Contact Gerald Kane, Southern Methodist University, Dallas TX.

October 2-4 NEPCON Central '79, O'Hare Exposition Center, Rosemont IL. This tenth annual exhibition and conference of electronic and microelectronic packaging and production equipment will feature displays of electronic and microelectronic materials, hardware, tools, supplies and test instruments. Contact Industrial and Scientific Conference Management Inc, 222 W Adams St, Chicago IL 60606.

October 14-17 International Data Processing Conference and Business Exposition, Town and Country Hotel, San Diego CA. Contact Data Processing Management Association, 505 Busse Highway, Park Ridge IL 60068.

October 15-18 Sixth Information Management Exposition and Conference, New York Coliseum, New York NY. Contact Clapp and Poliak Inc, 245 Park Ave, New York NY 10017.

October 15-19 CPEUG 79, San Diego CA. This is the fifteenth meeting of the Computer Performance Evaluation Users Group sponsored by the National Bureau of Standards. Contact Judith G Abilock, The Mitre Corp, Metrek Div, 1820 Dolley Madison Blvd, McLean VA 22102.

October 16-18 Understanding and Using Computer Graphics,

Washington DC. See August 22-24 for details.

October 21-23 New York State Association for Educational Data Systems Annual Conference,

Granit Hotel, Kerhonksen NY. The theme of this conference is "Instructional Computing — Hardware/ Software/Courseware." Contact Mary E Heagney, 9201 Shore Rd, Brooklyn NY 11209.

October 22-24 Computers in Aerospace Conference II, Hyatt House Hotel, Los Angeles CA. The conference theme, "Computer Technology for Space and Aeronautical Systems in the Eighties," will be carried out by a series of panels, invited presentations, and contributed papers which will bring computer system technologists together with specialists in the application of embedded computers in space and aeronautics. Contact American Institute of Aeronautics and Astronautics, 1290 Ave of the Americas, New York NY 10019.

October 22-25 ISA/79, O'Hare Exposition Center, Chicago IL. The conference theme, "Instrumentation for Energy Alternatives," will emphasize current practices in instrumentation design and implementation. Contact Instrument Society of America, 400 Stanwix St, Pittsburgh PA 15222.

October 28-30 The Tenth North American Computer Chess Championship, Detroit Plaza, Detroit Michigan. Sponsored by the Association for Computing Machinery, this is a four round, Swiss style tournament, with the first two rounds to be played on October 28th (1 PM and 7:30 PM), the third on October 29th (7:30 PM), and the

final round on Tuesday, October 30th (7:30 PM). Contact Monroe Newborn, McGill University, School of Computer Science, 805 Sherbrooke St W, Montreal PQ, CANADA H3A 2K6.

October 29 - November 2 Applied Interactive Computer Graphics, University of Maryland, College Park MD. This course is designed to cover the most important facets of graphics that are necessary to develop general graphic applications. Systems considerations including configuration selection criteria, and the pros and cons of off-the-shelf software are stressed. The most important factors and techniques are described for hardware, software, and geometric modeling. Contact UCLA Extension, 10995 Le Conte Ave, Los Angeles CA 90024.

October 30 - November 1 Interface West, Anaheim Convention Center, Anaheim CA. This third annual West Coast small computer and office automation systems conference and exposition will feature over 100 company exhibits and 60 conference sessions covering a variety of data processing, word processing, data communications, management hardware, software, and service topics. Contact the Interface Group, 160 Speen St, Framingham MA 01701.

Newsleltsps

Sacramento Microcomputer Users Group

According to Push & Pop, the newsletter of the Sacramento Microcomputer Users Group, this organization meets the fourth Tuesday of every month at 7:30 PM at the SMUD Training Facilities on 59th St. Their

mailing address is POB 161513, Sacramento CA 95816.

Northwest Computer Society Meets Twice a Month

The Northwest Computer Society meets at Seattle University in the Library Auditorium, Room 115. The University is on 12th Ave between E Madison St and E Cherry St. Meetings are held the first and third Thursday of each month at 7:30 PM. The first meeting of the month usually features a formal presentation by a speaker or speakers. The second meeting is usually more informal with freewheeling discussion and problem solving. Membership in the Northwest Computer Society, which includes the impressive Northwest Computer News, is $7. For more information, write the club at POB 4193, Seattle WA 98104, or call (206) 284-6109 for recorded information.

The Computer Hobbyist Group of North Texas

The Printed Circuit is a well organized, informative newsletter published by The Computer Hobbyist Group of North Texas. In a recent issue there were reports from various user groups within the club, a list of coming attractions, a reprint of an article about the Tandy and Texas Instruments' race for the home computer, an S-100 bus article, new products, and more. The Printed Circuit may be obtained by joining the group at a rate of $7 per year. Dues should be sent to Warren Bean, 2405 Briarwood, CarroUton TX 76006.

Denver Amateur Computer Society

The Denver Amateur

200 August 1979 © BYTE Publications Inc

Circle 175 on inquiry card. /

Circle 376 on inquiry card.

^ TM

EasyWriter

a

Word Processor

for your

Apple-II

If you've been hunting high and low for a word processor that you can hve with, try on EasyWriter — a word processor you can't hve without!

You saw It at the West Coast Computer Faire. If you liked it then, you'll love it now. It's easy. It's clean. It's just what you've been waiting for.

Try one on for size.

EasyWriter makes writing easy!

A product of

CAP'N

SOFTWARE

San Francisco, CA

Information Unlimited Software

146 N Broad St Griffith IN 46319 (219) 924-3522 Contact: Gregg DesElms

TRS-80

VOTRAX

COMPUTALKER

SYNTHESIZERS

Our ANGLOPHONE Z80/6080 progronn converts ordinary English ASCII in red finne info phonetic codes to drive your speech synthesizer.

For TRS-80 (Level II 16K cassette or 32K diskette) S45

For Computolker (requires CSR1) S45

ForVotroxVSK $100

For Votrox VS-6 $200 (CUTS, CP/M 8", North Star 5", Poper Tope)

TALKING TERMINAL

Our ANGLOTERM progronn turns any TRS-80 Level 1116K with Exponsion Interface. RS-232-C Doord and Voice Synthesizer into 0 talking computer terminal. Cassette or diskette $145.

UPPER, CASE, 2011 Silver Ct. E., Urbono, IL 61601

(217) 084-4382 VISA/Master Charge

rmnn

2nrrTrffTr?rr!rr?nrrr7nnnroTnnr

° ^/'''^To further improve' service to our customers we have installed a toll-free WATS line in our Peterborough, New Hampshire office.^ If you would i ke to order a' subscription to\ ^ BYTE, or if

Toll-free

BYTE's New

Subscriber W.A.T.S. Line

you have a question reiat ed to a BYTE subscription, you are invited' to call* (800)258-5485 between 8:00 AM and 4:30 PM Eastern Time (Friday 8 AM-Noon) Calls from conti nental U.S. only

JiULIULlL(Lg-IL<Lfl-a-IUi-g-g-8-g.g-g-g-(Lfl-0-g.g-l

r

(800)258-5485 V(

We thank you and look forward to serving you.

9178

=\

6i20 'P%<mco*Uci IRa^ ACewuicOica,. ^Ot^ctUa 223W

Yes, We're moving into larger quarters and onto bigger things . . . like expancieci inventory, larger service facilities ancd a curriculum of microcomputer courses. All this, thanks to our patrons who have made this possible. Our thanks for your support!

^

\=

"The Plus Makes the Difference"

J

Circle 65 on inquiry card.

BYTE AugusI 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 nor eligibility for IBM warranty and service

• Available in S-100, Parallel, RS-232orIEEE-488

• Entire high quality printer system for TRS-80, Apple, PET, Sorcerer, Horizon, etc.

• All systems assembled, tested and burnt-in

• Factory installations available; complete systems with typewriter available

Prices* S-100 $496.00 Parallel $525.00 RS-232 $549.00 IEEE $575.00 * Prices valid in USA only

Escon Products, Inc.

171 Maytiew 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 $49.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., INTEL2716, 2758 and Tl 2516

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 callable from BASIC. Consists of a 2758 EPROM containing printer drivers and EPROM Programmer driver.

6 CHARACTER LABEL EDITOR/ASSEMBLER

Second genera tlon editor/assembler with enhanced editor fea tures and text Hie compatibility with the 6 Character Disassembler.

ON CASSETTE 34.95

ON DISKETTE 39.95

6 CHARACTER LABEL DISASSEMBLER/TEXT FILE MANAGER

Second generation disassembler which creates a text file that may be reassembled by the 6 Character Assembler above.

ON CASSETTE 34.95

ON DISKETTE 39.95

SEE YOUR LOCAL DEALER

MICROPRODUCTS

2107 Artesia Blvd. / RedoncJo Beach / CA 90278 1213)374-1673

Computer Society has recently increased the printing of their newsletter. Interrupt, to 1,000 copies, and has begun over-thecounter distribution at local computer stores. First class mailings of'the newsletter will be restricted to paid members only. The club meets the third Wednesday of the month at 7:30 PM at 1380 S Santa Fe, Denver CO. Many user groups within the club meet at different times and locations. For further information, write to Mike Dymtrasz, president of the society, at the above address.

Computers in Psychiatry and Clinical Psychology

Computers in Psychiatry/Psychology (formerly Micro-Psych), a bi-monthly newsletter for professionals interested in the use of computers in psychiatry and clinical psychology, is beginning its second year of publication. It addresses itself in an informal, scientific style to clinical users of the computer. Three pages of each issue are devoted to a description of the computer related activities of subscribers. Each issue of the 13 page newsletter contains summaries and reviews of recently published articles and books as well as an ongoing bibliography and a program catalogue. Recent additions include a clearinghouse for information on training opportunities in the field and a new hardware column. Subscriptions to Volume 2 can be obtained by sending $15 to Computers in Psychiatry/Psychology, 26 Trumbull St, New Haven CT 06511. The Best of Micro-Psych — Volume 1, a 52 page compilation of articles and information from Volume 1, is also available for $12.

The New England Computer Society

The New England Computer Society meets on the first Wednesday of each month to exchange computer hobbyist information and sponsor activities. The NECS is the oldest and one of the largest clubs in the Boston area, with over 200 members. Within the club are 8080, 6502, TRS-80, 6800, PET, Apple and Digital user groups. The meetings start at 7 PM and are held at the Mitre Corp cafeteria. Route 6, east of Route 3, Bedford MA. For additional information, write to the New England Computer Society, POB 198, Bedford MA 01730.

Heath Company Newsletter

Buss is an independent newsletter of Heath Company computers. It contains Heath product information and user reports. The price for 12 issues is $8 ($10 overseas). Contact Charles Floto, 325 Pennsylvania Ave SE, Washington DC 20003.

Publication for the Computer Professional

The Data Processing Digest (DPD) is written for the computer professional and the manager who uses computer technology for planning, control and production. The editors of DPD regularly search through numerous business and industrial periodicals and reports to locate articles on all aspects of computer technology and its application to operations and management. Concise summaries of these articles, reviews of books on data processing, and listings of current professional meetings and seminars appear in each issue. The subscription rates are $57 for one year; $108 for two years; and $153 for three years. Contact Data Processing Digest Inc, 6820 La Tijera Blvd, Los Angeles CA 90045.

202 August 1979 © BYTE Publications Inc

Circle 208 on inquiry card.

Circle 12 on inquiry card.

vv=

A Message to our Subscribers

From time to time we mal<e the BYTE subscriber list available to other companies who wish to send our subscribers promotional material about their products. We take great care to screen these companies, choosing only those who are reputable, and whose products, services, or information we feel would be of interest to you. Direct mail is an efficient medium for presenting the latest personal computer goods and services to our subscribers.

Many BYTE subscribers appreciate this controlled use of our mailing list, and look forward to finding

information of interest to them in the mail. Used are our subscribers' names and addresses only (no other Information we may have is ever given).

While we believe the distribution of this information is of benefit to our subscribers, we firmly respect the wishes of any subscriber who does not want to receive such promotional literature. Should you wish to restrict the use of your name, simply send your request to BYTE Publications Inc, Attn: Circulation Department, 70 Main St, Peterborough NH 03458. Thank you.

Tremendous Savings on Refurbished AJ Couplers/Modems

Your chance to buy the best from the world leader in data communications. We have a variety of couplers and modems—formerly on lease to our customers —fully refurbished. This is a rare opportunity for you to have the same models used by the largest companies 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 Anderson Jacobson, Inc., 521 Charcot Ave., San Jose, CA 95131. Or call your nearest AJ office:

San Jose, CA Rosemont, IL Hackensack, NJ (408) 946-2900 (312) 671-7155 (201) 488-2525

ANIDERSON JACOBSON

Circle 291 on inquiry card.

BYTE Augubl 1979 203

Circle 379 on inquiry card.

U.S. ROBOTICS, INC.

PENRIL 300/1 200 MODEM Originate/Auto-Answer

ALL NEW

$799.00

300 or 1200 Baud Bell 212 Compalible FCC Cerlided RS232 .

Hall/Full Duplex on Dial-up Phone Lines I year warranty Stand Alone

PERKIN

ELMER

BANTAM

$799.00

All the Features of the Hazeltine 1400 & LSI ADM-3A Plus

Upper/Lower Case 7 X 10 Char Matrix White or Black Char Transparent Mode Addressable Cursor

Tab Function Backspace Key Shiftlock Key Print Key

Integrated Numeric Pad

JpH- I .b I per month

Lease-Purchase

$1095.00

TELETYPE MODEL 43 KSR

with RS232

10 or 30 CHAR/SEC

132 COLUMNS

UPPER/LOWERCASE

^

^^^1

0-300 Baud Crystal Controlled

USR-310

Originate

Acoustic

$159.00 Coupler

Stand Alone

RS232

USR-330

Originate

Auto-Answer

$339.00 Modem

FCC Certified for Direct Connection to Phone Lines USR-320 Auto-Answer

Only Modem $319.00

All Units include a 1 20 day warranty Optional Maintenance package available

Any Product may be returned within 10 days for a full refund.

U.S. ROBOTICS. INC.

1035 W. LAKE ST.

CHICABD, ILL. 6D6D7

Sales (312)733-0497

General Offices (312) 733-0498 Service (312)733-0499

Australian Tandy

Users Club and

Software Exchange

8th Bit is the main medium by which Software Exchange members keep informed of what is happening in AustraHa. This newsletter contains information on what is for sale and the location,contributions from members, and information of general significance. Membership in the Exchange is $10 per year. Contact Pitt St Microcomputer Centre, Second Floor, 373-375 Pitt St, Sydney 2000 AUSTRALIA.

Detroit Personal Computer Network

Andrew Fellman has written to inform us that the Detroit Personal Computer Network will be meeting in August. This organization was formed to help microcomputer users discover and exchange ideas on user projects, to promote business or financial gain, and for enjoyment. More information may be obtained by writing to Andrew at 13043 McNichols, Detroit MI 48219, or calling (313) 865-4374.

Software of the Month Club

Creative Discount Software has announced the opening of its new Software of the Month Club. The new club will have separate branches for users of the Apple II, TRS-80, Ohio Scientific, Exidy, PET and CP/M based systems. Members will select division memberships such as business applications, education applications, high level languages, games and fun applications, and personal and home management applications. Membership enrollment applications are available from Creative Discount Software, Software of the Month Department,

POB 24-B-67, Los Angeles CA 90024.

The Physicians Microcomputer Report

The Physicians Microcomputer Report is a monthly publication for doctors who wish to become better informed about the computer and its application in the field of medicine. Some of the features include software news, calculator corner, computers in patient health care, microcomputer hardware news, the bargain market, and computer articles of special interest to the physician. Additionally, the report contains articles on nonmedical applications such as linking your computer to a stock portfolio information center. Another intent of this publication is to facilitate the exchange of information between physicians who own computers. For this purpose, the magazine has a listing of user groups.

The Physicians Microcomputer Report is available for $25 a year, $12.50 for students. Contact Dr Gerald M Orosz, POB 6483, Lawrenceville NJ 08648.

BYTE's eits

Call for Papers

The International Society for Mini and Microcomputers (ISMM) will hold an international symposium on microcomputers and their application January 30 to February 1 1980 in Monterey CA. The symposium will highlight technology, hardware, software engineering, languages, systems architecture, design methodology, computer networks, performance evaluations, concurrent processing, real time processing, operating systems, portability for software systems, systems security, digital signal processing, education.

204 August 1979 © BYTE Publications Inc

and applications. Send three camera ready copies of 200 word abstracts to Secretary, MIMI-80 (Monterey), POB 2481, Anaheim CA 92804 by September 1 1979. Notification of acceptance will be sent by October 1. Camera ready copies of accepted papers are due December 15 1979. Additionally, proposals for half day and one day tutorials are solicited in the above areas and should be received by September 1 1979.

Exidy to Sponsor Software Contest

Exidy Inc, the makers of the Sorcerer microcomputer, are sponsoring a contest for microcomputer programs this summer. Four Sorcerer computers will be awarded as grand prizes. The purpose of the contest is to encourage people who have written good programs to share their programs with other computer owners. Exidy will publish a book featuring the best programs entered in the contest. The contest is open to all BASIC language computer programs which will run on the Sorcerer. Prizes of free computers will be awarded to the program judged best in each of four categories: business, education, fun and games, and home and personal management. Every entrant will receive a free poster and a professionally written program in exchange for the program they submit. The contest runs from June 1 thru August 31 1979. For further information, contact Paul Terrell, Marketing Communications, Exidy Inc, 969 W Maude Ave, Sunnyvale CA 94086.

Department of Missing Authors

Once again an author of a yet-to-be-published article has moved and neglected to inform us of his new address. We therefore request that James Cherry, whose

last known address was 28 The Fenway, Boston MA 02215, please contact us with his current address and telephone number.

Call for Papers for

Fifth International

Conference on

Computer Communications

Technical papers for the Fifth International Conference on Computer Communications to be held October 27 thru 30 1980 in Atlanta GA are being solicited for presentation at the regular conference sessions and publication in the official proceedings. The conference is held biannually by the International Council for Computer Communications as an interdisciplinary forum for discussing social, economic, political and technological implications of computer communication networks.

Topics for 1980 may include a wide range of subjects and issues relevant to the development and use of computer communications and its effect on human affairs. All papers must be original, written and presented in English, and cannot exceed 5,000 words. Specific suggested subjects are: broad needs and requirements, social implications, applications, and technology. Manuscripts must be typed, double spaced, and on one side of the paper only. A cover page must give the title, the full names of the author(s), the affiliation of each author, and the name, address, and telephone number of the primary author. A 100 to 200 word abstract and a full set of illustrations must accompany the manuscript.

Six copies of all material should be sent by March 1 1980 to Dr J Salz, Program Chairman, ICCC '80, Bell Laboratories lG-509, Holmdel NJ 07733. The Program Committee would also appreciate advance notice of the intention to submit a paper. ■

SUPER SOFTWARE!

MICROWARE 6800 SOFTWARE IS INNOVATION AND PERFORMANCE

INEWI LISP Interpreter

The programming language LISP offers exciting new possibilities for microcomputer applications, A highly interactive interpreter that uses list-type data structures which are simultaneously data and executable instructions. LISP features an unusual structured, recursive functionoriented syntax. Widely used for processing, artificial intelligence, education, simulation and computer-aided design. 6800 LISP requires a minimum of 12K RAIVl. Price $75.00

A/BASIC Compiler

The ever-growing A/BASIC family is threatening old-fashioned assembly language programming in a big way. This BASIC compiler generates pure, fast, efficient 6800 machine language'from easy to write BASIC source programs. Uses ultra-fasl integer math, extended string functions, boolean operators and real-time operations. Output is ROrvlable and RUNS WITHOUT ANY RUN-Tlf\^E PACKAGE. Disk versions have disl< I/O statements and require 12K memory and host DOS. Cassette version runs in 8K and requires RT/68 operating system. Price: Disk Extended Version 2.1 $150.00 Cassette Version 1.0 $65.00

I NEW I A/BASIC Source Generator

An "add-on" option for A/BASIC Compiler disk versions that adds an extra third pass which generates a full assembly-language output listing AND assembly language source file. Uses original BASIC names and inserts BASIC source lines as comments. SSB and SWTPC Miniflex version available. Price: $50,00

INEWI A/BASIC Interpreter

Here it is—a super-fast A/BASIC interpreter that is source-compatible with our A/BASIC compiler! Now you can interactively edit, execute and debug A/BASIC programs with the ease of an interpreter—then compile to super efficient machine language. Also a superb standalone applications and control-oriented interpreter. Requires 8K RAtVI. The cassette version is perfect for Motorola D2 Kits. Price: $75.00

RT/68 Real Time Operating System

tvllKBUG—compatible ROM that combines an improved monitor/ debugger with a powerful multitasking real-time operating system. Supports up to 16 concurrent tasks at 8 priority levels plus real time clock and interrupt control. Thousands in use since 1976 handling all types of applications. Available on 6830 (MIKBUG-type) or 2708 (EPROM-type) ROM. Manual is a classic on 6800 real-time applications and contains a full source program listing. Price: RT68MX (6830) $55.00 RT68MXP (2708) $55.00

6800 CHESS

A challenging chess program for the 6800. Two selectable difficulty levels. Displays formatted chess board on standard terminals. Requires 8K memory. Machine language with A/BASIC source listing. Price: $50.00

ELIZA

6800 version of the famous MIT artificial intelligence program. The computer assumes the role of a psychoanalyst and you are the patient. This unusual program is unique because the dialog with the computer is in unstructured plain English. An impressive demonstration program. Price: $30.00

Our software is available for most popular 6800 systems on cassette or diskette unless otherwise noted. Disk versions available on S.S.B., SWTPC, or Motorola MDOS. Please specify wtiich you require. Phone orders are welcomed. We accept MASTERCHARGE and VISA. We try to ship orders within 24 hours of receipt. Please call or write if you require additional information or our free catalog. Mtcroware software is available for OEfwl and custom applications.

MICROWARE

SYSTEMS CORPORATION

P.O. BOX 4865

DES MOINES, lA 50304

(515) 265-6121

August 1979 m 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 different ways, either as data or program. This feature makes LISP unique among high level languages. When seen as a program, LISP expressions can be executed and return a value: when seen as data, they may be used as arguments for other programs. This means that if we think about a LISP program as a piece of data we can write programs directly in LISP which transform them into more useful programs.

We use LISP to imitate the manipulations that are done by engineers when designing combinatorial circuits. In this sense LISP can be used as a calculator for Boolean logic.

The examples presented here are well known to anyone who has studied a little hardware design. The purpose of this article is to give beginners with LISP some idea of what LISP programs look like and how some interesting symbolic manipulations can be represented in a natural way using LISP. It is written primarily with novices in mind. For this reason there are some elementary remarks about how LISP actually works. The code in this article was written as examples of LISP style programming. What we have tried to do is present some programs as they might be written in existing LISP systems. Of course the style is ours.

We illustrate the use of the recursive data structures, lists and S-expressions, and the use of lambda abstraction as a control structure to facilitate recursive transformations 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 the simplest circuits that an engineer might use, this article is meant to give simple examples of how LISP can be used. For example the circuit in figure 1 is represented by the Boolean expression:

(Xi A X2).

We may view this expression as specifying a Boolean function. We may also think of this expression as a Boolean program which may be evaluated using the ordinary rules of logic. There are, of course, many different expressions which have the same behavior.

A circuit's behavior can be described by a Boolean function. The Boolean function for (XI A X2) may be represented by:

<1

X2

F (XI,

0

0

1

0

1

0

1

0

0

1

1

0

Representing Boolean Expressions

Both the circuit diagrams and Boolean expresions are concrete representations of an abstract data structure, which we refer to as WFFs (-well-formed propositional formulas). In LISP we use a concrete representation of well-formed propositional formulas as lists. For example, we represent the expression:

(P V Q) A R

Figure 1: A simple digital circuit whose function can he defined by the Boolean expression (XI A X2)

XI O

xz [!>■

^

^

X2

o

-C> XIaX2

206 Augusl 1979 © BYTE Publications Inc

as the list:

(AND (OR P Q) R)

We follow usual programming language practice and describe the lists which represent well-formed propositional formulas using a BNF(Backus Naur form) grammar as in table 1.

We can recognize which lists represent well-formed propositional formulas by writing a LISP program which takes a list as input and whose value is T if the list represents a WFF and NIL otherwise. This program can be viewed as a parser for the language generated by this grammar. It has a recursive definition which parallels the grammar:

(DEFINE ISWFF (E) (COND ((ISCONST E) T)

((ISVAR E) T)

((ISUNARY E) (ISWFF (body E)))

((ISBINARY E) (AND (ISWFF (Ihs £)) (ISWFF (rhs E)))

(T NIL) )) )

The subfunctions body, Ihs, rhs, ISCONST, ISVAR, ISUNARY and ISBINARY must also be defined. Their definition reflects our specific representation of wellformed propositional formulas in LISP. For example:

(DEFINE ISUNARY (E)

(EQ (CAR E) (QUOTE NOT)) )

Evaluation of these defining programs has the side effect of storing the function definition in memory. Subsequently, the name ISWFF may itself be used in a program. LISP represents function application by evaluating the list whose first element is the function and the remaining 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) is simply A. This is how we make LISP treat A as data. Thus in the above program the argument to ISWFF is treated as data.

Representing Boolean Programs

If we consider T as representing true and NIL as false then we can represent the usual Boolean expressions as LISP programs using COND. COND is LISP's version of IF-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 > <var> <unary> <binary>

<const> I <var> | <unary> | <binary>

TjNIL

< identifier>

(NOT <wff>)

(AND <wff> <wff>) I (OR <wff> <wff>) I

(IMPLIES <wff> <wff>) I (EOUIV <wff> <wff>)

Table 1: In LISP, list representations for WFFs (well-formed propositional formulas) are described using a Backus Naur form of grammar. In LISP, T and NIL are generally used as the constants for true and false respectively. These correspond to 1 and 0 in digital circuit diagrams.

(w,v)

w

W V V

WAV

WSV

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 two inputs (w and v) Boolean results are shown for the negated value of 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 in terms of NOT, AND, and OR. These definitions mean that well-formed propositional formulas like:

(AND (OR T NIL) T)

are valid LISP programs whose evaluation returns a truth value (ie: T or NIL). These values correspond to those determined by the usual truth table evaluation of Boolean expressions as reviewed in table 2.

For example, if in the well-formed propositional formula (AND (OR P Q) R), we replace P by T, Q by NIL, and R by T: by observing that (t V f) = t and (t A t) = t, we calculate the value of this well-formed propositional formula as T. Logicians call this kind of assignment of truth values to the atoms an interpretation of the wellformed propositional formula.

One question we should ask is what happens if we try to evaluate a well-formed propositional formula which contains variables rather than simply T and NIL. For example:

(AND (OR P Q) R))

will return an error message saying that P is an undefined variable.

One thing we can use to make the substitution of T and NIL 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 a simulation of the circuit represented by the program. We

August 1979 © BYTE Publications Inc 207

may also want to use LISP to answer questions about our circuits. We will consider two standard questions asked about programs for these circuit programs:

• When do two programs compute the same function? (analysis)

• Given an I/O (input/output) specification construct a program with this behavior, (synthesis)

Analysis

Analysis of a program starts with the question—what is its behavioral description? One may then consider questions of efficiency. The complete input/output description is expressed by the Boolean function. Above we have called this the function computed by the program. In logic this function is just the set of all interpretations of the well-formed propositional formula. The Boolean function for the expression (X A Y) V Z expressed as a table is:

X,Y,Z)

(X A Y) V

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 variables then there are 2" interpretations. Thus the I/O table has 2" entries. Complete behavioral knowledge could be obtained by making the 2" possible evaluations. Often only partial behavioral knowledge is needed and this may sometimes be obtained without complete simulation.

Two programs are called equivalent when they compute the same function, i.e., they have the same behavior. A well-formed propositional formula which evaluates to T under all interpretations is called a tautology. The well-formed propositional formula (IMPLIES (AND P Q) (OR R P)) is a tautology. Two wellformed propositional formulas wl and w2 are called equivalent if (EQUIV wl w2) is a tautology. This means that wl and w2 have the same I/O behavior. Thus for circuit programs the notion of equivalence coincides with the logic notion of equivalence.

One simple way to determine if a well-formed propositional formula is a tautology is to compute all its interpretations. This brute force technique can be improved upon by using an algorithm introduced by Quine in 1950. Our experience with the FOL project at the Stanford Artificial Intelligence Laboratory indicates that this algorithm represents considerable improvement over the listing 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-formed propositional formula and the other obtained by substituting f for p in the well-formed propositional formula. Take the conjunction of the two expressions, and use the following simplification rules.

/^From the ' Originator of the

TRS-80®

Project

FORTRAN

Now Sale Priced!

Comparable to compilers on large mainframes and minicomputers. All of ANSI Standard FORTRAN X3.91966 is included except COMPLEX data type. Therefore, users may tal<e advantage of the many applications programs already written in FORTRAN. Pacl<age includes:

FORTRAN Compiler

rviacro Assembler (Z80)

Linker

Library

Lib IVlanager (Not in TRS-DOS version) Price -$as©;e©

For this month only

Sale Priced at $250.00 IVlanual $25.00 (Specify TRS-DOS or CP/M versions)

CP/M is a registered trademarl< of Digital Research Corp. TRS-80 is a registered trademari< of Radio Sfiacl<.

PASCAL

UCSD Pascal, the powerful general purpose language system, developed for large and complex programs is now available for your TRS-80.

The FIVIG/UCSD PASCAL system opens a new generation of value for your TRS-80. Package includes:

Operating System

Screen Editor

Z80 Macro Assembler

Debugger

Pascal Compiler

Utilities and System

Reference Book $150.00

Requires 48K System with 2 Drives

Available without Macro Assembler Linker and Debugger $100.00

CP/M OPERATING SYSTEM

Editor, Assembler, Debugger and Utilities for 8080 and Z80 Systems. Up to four floppy disks. Package includes: CP/M System Diskette SVa" CP/M Features and Facilities Manual CP/M Editor's Manual CP/M Assembler Manual CP/M Debugger Manual CP/M Interface Guide $150.00 (Set of 5 manuals $25.00)

Call or Write Ir- for Complete Information

CORPORATION

A Division of Applied Data Corporation P. O. Box 16020, Fort Worth, Texas 76133. (817) 294-2510

208 August 1979 © BYTE Publications Inc

Circle 134 on inquiry card.

Listing 1: A program can he written to look for tautologies. Two well-formed propositional formulas are said to be equivalent if they 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 NIL X W))) (FIRSTVAR W))))))

(DESIMP(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 VI V2)

(COND((ISTRUE W1) VI) ((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 W1))) ((FIRSTVAR (Ihs W1))) (T (FIRSTVAR (rhsW1)))))

(DE ISIMPLIES (X) (EO X T))

(DE ISFALSE (X) (EO X NIL))

(DE ISNOT (X) (EO (CAR X) (OUOTE NOT)))

(DE ISOR (X) (EO (CAR X) (QUOTE OR)))

(DE ISAND (X) (EQ (CAR X) (QUOTE AND)))

(DE ISIMPLIES (X) (EQ (CAR X) (QUOTE IMPLIES)))

(DE ISEOUIV (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 1 continued on page 210

i := t

t D w

=

w

f D w

=

t

t V w

=

t

t A w

=

w

r:= f

W D t

=

t

w D f

=

w

f V w

=

w

f A w

=

f

Repeat the branching and simplifying until all branches consist of either t or f. If all branches terminate in t, the well-formed propositional formula is a tautology, otherwise it is not. Applying the Quine algorithm to the wellformed propositional formula, (p A q) D (r V p) yields:

((t A q) D (r V t)) A ((f A q) D

(q D t) A (f D r)

t A t t

V f))

The LISP program in listing 1 represents the Quine algorithm.

The evaluation of;

(TAUT (QUOTE (IMPLIES (AND P Q) (OR R P))))

returns T. Notice we have used the Boolean functions IMPLIES, AND, and OR in these definitions.

Synthesis

Consider the problem of synthesizing d program with its I/O behavior specified by the table:

X

0 0

1 1

0

1

0

1

F(X,Y) 0

1 1

0

This table may be represented by the list:

( (X (0 (0

(1

(1

Y) 0

1

0

1

0)

1)

1)

0) )

A well-formed propositional formula which has this behavior may be constructed by observing that:

F(X,Y) = 1 if either X = 0 and Y = 1 or X = 1 and Y = 0.

This Boolean function may_be realized by the wellformed propositional formula (X A Y) V (X A Y). This well-formed propositional formula has a very special form. Well-formed propositional formulas which are

TcAf continued on page 211

August 1979 © BYTE Publications Ire 209

Circle 205 on inquiry card.

DISCOUNT PRICES

Microcomputers & Peripherals

ITS YTES OOKS ARGAINS

m

ill!

-it

ra...-.-.. .V.-- .-...1

Cromemco • SWTPC • Lear-Siegler

Hazeltine • RCA • North Star Verbatim • 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 ISSVU

fOn 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

25<t postage and handling ($3.50 total foreign).

September '77 thru '79 issues are $2.00 plus 50<l

postage and handling

($4.00 total foreign). Send requests with

payment to:

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 L)) (REVERSE (CDR L))))

(DEFINE mkand (V L) (PROG (X)

(COND ((EQUAL (CAR L) 0) (RETURN NIL))) (SETO L (CUR L))

(SETQ X (COND ((EQUAL (CAR L) 0) (LIST (QUOTE NOT) (CAR V))) (T (CAR V)))) L1 (SETQ V (CDR V)) (SETQ L (CDR 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 X)))) (GO LI)))

(DEFINE mkor (V L) (PROG (X)

(SETQ X (mkand V (REVERSE (CAR L)))) LI (SETQ L (CDR L))

(COND ((NULL L) (RETURN X)))

(SETO X (CONS (QUOTE OR) (CONS (mkand V (REVERSE (CAR L))) (LIST X))))

(GO L1)))

Listing 2: A well-formed propositional formula which is a sum of products with each summand having literal factors is said to be in disjunctive normal form. Any Boolean function F(Xl, . . . Xn) of n variables may be described by a well-formed propositional formula in disjunctive normal form. This program constructs a well-formed propositional formula in disjunctive normal form.

(DE PN (WFF Z) (COND ((ATOM WFF) (COND ((ISEQOR Z) (MKNOT WFF)) (T WFF))) ((ISNOT WFF) (PN (body WFF) (FLIP Z))) (dSEQUIV WFF) (MKOP Z

(MKOP(FLIPZ)

(PN (Ihs WFF) (QUOTE OR)) (PN (rhs WFF) (QUOTE 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 propositioiial formula may be transformed into disjunctive normal form. This recursive LISP program uses the rules described in the text to complete the transformation.

210 August 1979 © BYTE Publications Inc

Circle 316 on inquiry card.

Text continued from page 209:

either variables or the negation of variables are called literals. The above well-formed prepositional formula is an example of a sum of products where the factors of each summand is a literal. A well-formed propositional formula of this type is said to be in DNF (disjunctive normal form). _

Thewell-formed propositional formula (X A Y) V (X A Y) was constructed by looking at each row of the above table which has the value 1. For each such row we form a conjunction containing those variables with value 1 and the negation of those with value 0. We finish by taking the disjunction of all these conjunctions. Any Boolean function F(Xl,...Xn) of n variables may be realized by a well-formed propositional formula in disjunctive normal form in this way. The code in listing 2 uses the list representation of function tables displayed above and constructs a well-formed propositional formula in disjunctive normal form. Every well-formed propositional formula may be put into disjunctive normal form. The following transformation rules applied to a well-formed propositional formula w as long as any simplifications can be made to yield a disjunctive normal form 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 LISP program as in listing 3.

The program PN (push negation) removes EQUIV and IMPLIES, pushes all negations into the well-formed propositional formula so that NOTs only appear as part of a literal. PN works by "remembering" how many NOTs it has seen. This is kept track of by a flag which is AND when the number is even and OR if it is odd.

DNFl then applies the distributive law until the formula is in disjunctive normal form. Thus we compute the disjunctive normal form of a well-formed propositional formula, w, by evaluating:

(DNF (QUOTE w)).

Conclusion

In this short paper we have given some examples of using LISP data structures in several different ways at once with examples from circuit design. These are not the only examples we could have chosen. A natural extension is the set of programs which deal not only with synthesis and analysis but with the optimization of circuits. That is, construct a program with a specified behavior which is by some measure best. For example, we could write code to compute the minimal sum of products representation of a circuit where each product is a prime implicant. This is the typical kind of thing studied in courses on combinatorial circuits. ■

CATCH THE

S-100INC.

BUS!

Imsai PCS 80/10 "8080" Kit

Shugart 800-R 8" Disk Drive

Georgia Magnetics 8" Diskettes Soft Sectored per Box of 10

Godbout 8K Static "Unkit"

SSM VB-2 Video Board Kit

Dynabyte 16K Static Memory Board 250 nanoseconds

OUR LIST SPECIAL

PRICE 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 Dn:

Cromemco, IMSAI, Vector Graphic, North Star, Sanyo,

Hazeltlne, IMC plus Most Other Major Lines.

Subject to Available Quantities • Prices Quoted include Cash Discounts. Shipping & Insurance Extra.

Bus S-iDD,inc.

Address 7 White Place

Clark, N.J. 07066 Inlerface 201-382-1318

Zc - SYSTEMS

64K RAM BOARD

The Zs-SYSTEMS 64K RAM board is designed to operate in any Z80 based microcomputer having S-100 bus. It uses 16K dynamic RAM chips, & features:

—Board select

—Bank select

—Transparent on-board refresh

—2 or 4MHz operation (w/ no wait state)

—Memory disable

FLOPPY DISK CONTROLLER

Handles with no madihcation

up to: ' 4 standard 8" drives

(Shugart or compatible) or ' 3 minidrives 5" Run with 2 or 4 UHz 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 System Using the 1771 LSI controller

Price of one $245.00

PC board only $35.00

%EiiD 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

Assembly Language Switching

PpcfpsoaoRK^ OuicMes

Ira Chayut

Bell Laboratories

IMaperville IL 60540

When programming in assembly language, it is often useful to borrow the tools commonly available to high level language programmers. One such tool is the switch construct, or multi-way jump. A switch steers program execution to one of a number of memory locations, depending on a test value. The switch may be implemented as a series of compares and conditional jumps. An alternate implementation is to create the switch with a subroutine and case tables. A case table can be of variable length; it lists values to be tested for and the associated addresses to which program control may be passed. In addition, a default address is included in the list. If the test value is not equal to any of the values in the list, program execution continues at the default address.

One possible use of the switch is to decode 1-character commands and jump to

Listing 7: SWITCf^, a program to perform multi-way jumps. SWITCI-I is entered via a jump witJi register A containing tiie test value and register pair HL containing the starting address of a case table. The format of the case table 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 a 2 byte address. If the test value contained in register A is equal to a case entry, a jump to the associated address is executed. If no match is found, a jump to the address of the default entry is executed. Since the default value is hexadecimal FFa case value of FF is not allowed.

Routine SWITCH does not execute a return Itself If it is entered via a call instruction, the routine indicated in the case table should contain returns to the 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 address put low byte in L jump to case address

212 August 1979 © BYTE Publicalions Inc

Circle 392 on inquiry card.

Listing 2: Example use of SWITCH routine. The value to be tested is put in register A by the call to routine GET. In this case we are checking I-character commands for addition and subtraction. If the character is neither a subtraction nor an addition symbol, the routine exits at the default jump.

the appropriate servicing routine. The default address might be the start of a section of code to print out an error message.

Listing I contains the switch procedure for the 8080 processor. A section of code and a case table illustrating the switch's use appear 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

DWerr

Turn Your KIM into a Metronome

David Kellerman 1047 Schuyler Dr Endicott NY 13760

Using the program described in listing 1 (on page 214) and a tape recorder, readers can transform their KIM-1 computers into metronomes. The main part of the program consists of three nested timing loops used to periodically invert the line going to the tape recorder. The resulting square wave pulse is audible as a click through the tape recorder's speaker when the monitor switch is on and the tape recorder is set as if a tape were being recorded. If your recorder has no monitor switch, simply make a recording of the clicks and play it back.

To use the program, set hexadecimal memory locations 0000 and 0001 equal to the appropriate values for the desired click rate (see figure 1 on page 214). Start the program at location 0002, and have fun accompanying your computer!

4K CMOS Memory IC's

Eliminate heat build-up & Reduce Power Supply Requirements

4Kxl 6504 CMOS memory chips $8.00 each The 6504 is plug compatihie with 4044 NMOS

1 Kx4 6514 CIVIOS memory chips $8.00 each

BOTH CHIPS FEATURE:

Low Power Standby Low Power Operation Fast Access Time

<2.S mWMax <25 mW/MHz Max <300 nsec Max

TTL Compatiliie Input anct Output

Common Data Input/Output

Industry Standard 21 14 Type Pinoul

On Chip Address Register

Easy Interfacing With Multiplexed Bus uP's 180851

ALL CHIPS TESTED ■ 100% FUNCTIONAL

DIGITAL GROUP Equipment Users

32K Memory Boards without memory chips S60.00 These boards are designed to use either the 6504 or 4044 NMOS memory chips

32K memory boards with 16K of memory 32K memory boards with 32K o( memory ROTA-STROBES for monitoring and adjusting PHI-DECK Tape Speed $4.50 each

Send Orders To: EMERGE SYSTEMS P.O. Box 2518 Satellite Beach, Fl 32937

ALL ORDERS MUST BE PREPAID WITH CHECK OR M. O. Allow time for personal checks to clear Florida residents add 4% sales tax

KIT

ASSEM

$284

$359

$508

$608

Circle 131 on inquiry card.

August 1979 © BVIE Publications Inc 213

Listing J: Metronome program for the KIM-1 computer. Nested timing loops create audible clicks through a tape recorder hooked up to the computer. The period can be easily altered by the user.

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

OOOA

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

0013

A5

01

L3

LDA

01

0015

85

El

STA

El

0017

AO

FF

L2

LDY

#FF

0019

88

LI

DEY

\ Delay

001A

DO

FD

BNE

LI

001 C

C6

El

DEC

El

001 E

DO

F7

BNE

L2

0020

C6

EO

DEC

EO

0022

DO

EF

BNE

L3

/

0024

4C

07 00

JMP

0007

Repeat

Figure 7 .• Calculating the metronome's period. First, find the desired number of beats per minute on the Y axis, then read across to the two curves and enter the corresponding values for the program on the X axis Into hexadecimal memory locations 0000 and 0001.

i

WlMl TIT ifflttttr 1 ^ 'PTTtt

^ A^^zzzz zz^^^^^^

"=;

c :

J _

7

2... _-L .

2

0

_ 5

e|eEEEEEEE5EEEEEEEEEEEEEEEEEEEEEEEEEEEE±EEE=E EEEEEEEEEEEEEE

_* J : z

E3E--EEEE-E-sE---EEEE--E£E-E---E-EEEE---EEEE=--EE-E^-E--EEE

L ^ ^£.i.Kl IlI^L- SiLlEL

100- ;:L_:::. ::: _ s?!::::::.::::;:::::: .::::_::;:;;,:.:;;:::

" ^ T Tt't ~ T"*^ :— ■^--*^-f- -^-^ ^^E---r"^s-^''qi"-----^--'- = = T~^TKi2

^- ^Piqzi|g^^-^p^^^.y :.d!p^^

g_ Jt = - -!= .I^I; _:-- -- - - -|-*j-----=jj^----^>=----^

= ==i(^S2^4Jl^^iEE = ^==p^|s^ = = ^(EEi^M=E=EM=E = = sM

Bii-T^ilzr_ .; | _ ; : :_ j- t _ [-j pT-j—|-\^\- I 1 j-JTrjkiJ^' j■ \ 4-j-| \~\''Y~\ ["{" 1 \~\~ ' V "1

nTl HInMrMmT mrnT 1 mm

»^ --------5;-"^-^- -7 - = _i" = "i"-----:r = _r"------""

IS" ~ * " I "I

"V - - '

s

2. '5, ___ . _ .

EE=E-EE-E-E-E-=sEE-E-—EE EE --E-EEEE--EEEE=zE-EE-E-E-EEE-EE

J

!s---:

10. 5^ _; ;-

00 20 40 60 80 AO CO EO

CONTENTS OF LOCAT ION 0000 (In hax)

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 ran successfully for months, only to have it suddenly bomb? Or are you getting inconsistent results from your data? It could be that your computer is losing its memory. Your problem may be due to memory locations becoming degraded because of a bit failure. With microprocessors having 4 K byte or greater amounts of memory it is almost impossible to check each and every location manually for a bad bit, unless you have a year of free time on your hands.

This wouldn't be a problem if the microprocessor had parity memory. Parity memory is implemented as an extra hardware bit that detects a bit malfunction. Unfortunately, parity memory also has a high cost factor, so it is usually unavailable on microcomputer systems. The memory test program shown here will not replace parity memory, but will assist you and save time in locating bit malfunctions.

This program is 8080 compatible and will check up to 64 K bytes of memory. Although the program was written for an IMSAI 8080 system with front panel, it can easily be modified to work on other 8080 based microcomputer systems. The program can also be modified to be placed in read only memory so a check can be run without having to manually load the program.

Basically, this program clears and sets up the internal registers, inputs the amount of memory you want to test, loads the test memory with a pattern and then checks it. If all goes well, it increments the pattern and repeats the entire process. The test pattern starts out at octal 000 and is incremented to octal 377; when it is incremented again, a pass has been completed. A pass counter is incremented and displayed in the control panel output port light emitting diodes (LEDs). On start up, the Text continued on paye 21 7

68 MICRO JOURNAL

o

* *

THE

ONLY

6800/09

USER-ORIENTE MAGAZINE

Months ahead of all others with 6800/09 articles & new products

Crunchers Corner — Bryant (A monthly programming tutorial) * Flex® to BFD — Puckett * Tiny Music — Thompson * Semiconductor, Part 1 — KInzer * Soup Up Your TVT — Pass * Hints & Kinlts — fixes (soft & hard) * 50 pages plus Each Month!

Crunchers Corner — Bryant * A Lool( at the SWTPC CT-82 - Ferguson * 6800 Relative Branch Calculation (Hand) — Berenbon * Relative Calculator (Machine) — Heatherington * Maillist (Disk) — Lilly * Modems — Schuman * Semiconductor Part 2 — Kinzer * Locate — Pigford * A20 MA, Printer-SWTPC - Perdue * AS-50 Monitor Board — Pentecost * TSC Basic for 6800 — Shirk * Plus Much-fVluch More!

Crunchers Corner — Bryant * A Case for the Small DOS — Maucli

* MF-68 Motor Fix — Sorrels * Transfer (FLEX 1 to 2 or 5) Womack ♦ 6800 Delay — Berenbon * Make Like a 6809 — Feintuch * Games (Basic) — Harmon

* Boot (Flex-BFD) — Puckett * Freeze Display (SSB) —Johnson

* Paper Tape Reader — Adams * FLEX"-"' Fixes and Much More!

MAGAZINE COMPARISON

(2 years)

Monthly Averages

6800 Articles

BYTE

TOTAL PAGES

DOBB'S

7,8 6.4 2.7 2.2 19.1 ea. mo.

Average cost for all four eacti month: $5.88

(Based on advertised 1-year subscription price)

'68' cost per month; B8tf

($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 SUBSCRIPTION Bill My: Master Charge n — VISA p

Card = . Exp. Dale

For 13 1-Year Q 2 Years Q 3 Years Enclosed: S

Streets City

-Zip_ _

My Computer ls:_

68 MICRO JOURNAL

3018 Hamill Road HIXSON, TN 37343

FOREIGN ADD: $9.50 Per Yr. Surface $26.50 Per Yr. Air Mail NOTE:

Subscription Rates to increase August 1979 by 40% — Don't miss anymore than you have already!

• MORE 6800 ARTICLES THAN ALL OTHERS COMBINED*

Circle 329 on inquiry card.

August 1979 E) BYTE Publications Inc 215

Listing 7; 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

Oil

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

CHECK2

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 first memory 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 jump back 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 Os.

Jump if it is not - this means that we still have patterns to 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 lO port.

Go back and redo the test.

Here if we have an error store the current address where the fault occurred.

Store the correct data as it should have been read from memory.

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 YOUR COMMODORE PET USING A STANDARD RS-232 PRINTER

1200B

1200C

The CmC ADA 1200 drives an RS-232 printer from tine PET IEEE-488 bus. Now, the PET owner can obtain hard copy 'listings and can type letters, manuscripts, mailing labels, tables of data, pictures, invoices, graphs, checks, needlepoint patterns, etc., using a standard RS-232 printer or terminal.

$98.50 ADA1200B

Assembled and tested

$169.00 ADA1200C

With case, power supply and RS-232 connector

Order direct or contact your local computer store. Add $3.00 for postage and handling per order.

O CONNECTICUT microCOMPUTER

[p 1=3 150 POCONO RD. BROOKFIELD, CT 06804

Lo (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

ERRO

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 256 locations of memory to be tested via the control panel input port sv/itches. The test will run until the stop button is depressed or until an error is detected.

Let's look at w/hat happens when an error is detected; the machine comes to a halt the error 0 location contains the number of successfully completed passes.

In the error 1 location is the incorrect data as retrieved from the faulty memory. In the error 2 location is the correct data as it should have been read from memory. In the error 3 location is the low order half of the offending address, while in the error 3-1-1 location is stored the high order half of the offending address. By comparing the data in error 1 and error 2, we can determine which bit was picked up or dropped - but what if they're the same?

You then have what is known as a "soft error," or an error that is incorrect on the first read out, but correct the second time around. A soft error can be caused by a timing problem, or a refresh problem when using dynamic memory. The program starts checking data from the lowest address to the highest. When an error is detected, the data from 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 in locations xxA and xxC. The error 3+1 location should be entered into locations xxB and xxD. Record the next error when it occurs, continuing the same routine until no

new errors are detected, or until a pattern of errors is evident."

NORTH STAR SOFTWARE

TIMESHARING

for the Horizon—

The only true interrupt driven, bank

switching timesharing soflu'are availdble

(or the Horizon.

A machine language program on5',"di = k $49,95

DOSCHG4 (8" disk drive interface patch to

Release 4 North Star DOS and BASIC) $49.95

DOSCHG5 (8" disk drive interface patch lo

Release 5 North Star DOS and BASIC) $49.95

CSUBdiskanddocumentationpackage $49.95

The followina 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

Speci/v Release 1 (single density) or Release 5 (double density)

North Star DOS and BASIC All programs are shipped on 5 l/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

6cofc Reviews

Practical Microcomputer Programming: The Z-80

byWJ Welter

Northern Technology Books

Evanston IL

481 pages

$29.95

Practical Microcomputer Programming: The Z-80 is the third volume in a series which also includes works on the 8080 and 6800 microprocessors. My review of the 8080 volume was published in BYTE, January 1978.

The most obvious differences between the Z-80 and the 8080 volumes in this series are the length and the price. The Z-80 version costs $8 more than its predecessor and it is almost 60 percent longer. There are more than 100 pages of additional text, and much more software is included. The Z-80 volume treats several new topics, among which are floating point arithmetic and graphical output.

This book is intended for two audiences: the first is the beginning assembly level programmer (as all of the textbook basics are included and iden

REBUILT Like New

TTY-33 ASR

3320/5JEALSO3320/6JE

M|2 Design 2400 Printers

NEWKSRandRO Up 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 350 Dallas, Texas 75229

tified so that the more advanced reader can skip them), and the second is the programmer who is familiar with the 8080 and wants to become skilled in the use of the Z-80. With this in mind, the mnemonics used are not those used by Zilog, but an 8080 compatible set. The new Z-80 instructions use forms based on the 8080 mnemonics. Unfortunately, the two sets of Z-80 mnemonics are not compatible.

The topics which the book treats are fairly standard: moving data, arithmetic (single and multiple precision, fixed and floating point, binary, and decimal), logical operations, use of the stack pointer, tables and arrays, I/O (input/output) programming, and the use of interrupts. I/O programming is divided into sections on polled, interrupt-driven, and graphical output. Explanations are clear, and there are many good examples.

The appendices are a nice feature. These contain documentation and listings for a debugging monitor and a conversational assembler. Both of these are written in the 8080 subset of the Z-80 instructions, so that an 8080 programmer can use them (the assembler flags non-8080 instructions). Typing in the code (either object or source) for programs of this size is very tedious, and for this reason paper tapes of the object code for both the monitor and the assembler are free by returning the coupon at the back of the book to the publisher. The assembler can take its source code either from memory or from a tape or disk. A simple line editor is included. You do not have to load the editor, load the source code, punch the source code, load the assembler and load the source code again, as is necessary with separate editors and assemblers. It looks very convenient.

In conclusion. Practical Microcomputer Programming: The Z-80 has all of the advantages of its 8080 predecessor, while avoiding the major faults. The book is clear and complete (including the index of assembler mnemonics which was missing from the 8080 version), and the appendices are very good. I have been programming the Z-80 for a year and a half, and I wish that I had picked up the knowledge this book offers 18 months ago! ■

John A Lehman 716 Hutchins #2 Ann Arbor Ml 48103

218 August 1979 © BYTE Publicalions 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, SV35A Others, • Displays

• Cabinets • XFMRS • Heat Sir^ks • Printers • Components Many other items

Write for free catalog WORLDWIDE ELECT. INC. 130 NORTHEASTERN BLVD. NASHUA, N.H. 03060 Phone orders accepted using VISA or MC. Toll Free 1-800-258-1036 In N.H. 603.889-7661

f(^ TRS-80 J)\

SPECIAL PROMOTION SALE

SAVE 10%, 15% or more on ALL Computers, Peripherals, Software, and ALL other fine Radio Shack® products.

NO TAXES on out-of-state shipments.

FREE Surface delivery in U.S.

WARRANTIES will be honored by your local Radio Shack® store. Offered exclusively by

Radio Shack®

Authorized Sales Center

1117 Conway

Mission, Texas 78572

(512) 585-2765

\

J

SUPPLIES

• FLOPPY DISKS, MINI OR STANDARD MEMOREX OR 3M

• 3M DATA CARTRIDGES DC30I)A, DCIOOA

• 3M DIGITAL CASSETTES

• 3M OR MEMOBEX AUDIO CASSETTES, C SO

■ 3M DISK CARTRIDGES WE OFFER: ■COMPETITIVE PRICING ■IMMEDIATE DELIVERIES

(Any Quantity) ■ UNCONDITiONAL GUARANTEE

BETA BUSINESS SYSTEMS

8369 VICKERS ST,. ffC am^ SAN DIEGO, CA 3211 IJ^jiid (714)565-1505

'""m

Circle 391 on Inquiry card.

Circle 314 on inquiry card.

Circle 34 on inquiry card.

FLOPPY DISK REPAIR

;<j'»r_j;yiirc;!:,iiiii;>~i»;*,,;* #;*j„

• PerSci and Shugart

• Quick turnaround

• Factory trained on PerSci \

7 COIVIPUTER SERVICE CENTER

7501 Sunset Blvd

Hollywood CA 90046

213-851 2226

Circle 68 on inquiry card.

MAXIMUM VALUE FOR YOUR DOLLAR

NORTH STAR COMPUTER PRODUCTS

H0RIZ0N1 16K KIT $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 CALCULATORS AT DISCOUNT PRICES

MANY OTHER SUPER VALUES WRITE OR CALL:

A.E.I.

3851 HACKETT AVE.

LONG BEACH, CALIF. 90808

(213) 421-4615 (213) 429-0535

TRS-80 16K MEMORY EXPANSION KIT

INCLUDES 8 TESTED & GUARANTEED M5R 4116 3 16K RAMS, PROGRAMMING PLUGS & EASY-TO-FOLLOW INSTRUCTIONS.

$72°SPERKIT

6800 64K BYTE RAM SET AND CONTROLLER CHIP SET *W'f e^Ksyrcs of memory fos your

6800 THE CHIP SETS IKWDE ..„ .-nn 32 M5K 4116-3 16K RAMS,

$29555 1 MC3480L MEMORY CONTROLLER,

PFO rnuPiPTF <;n 1 MC3242AP MEMORY ADDRESS PtR LOMPLtlL btl. MULTIPLEXER/COUNTER, DATA 8 APPLICATION SHEETS. PARTS TESTED & GUARANTEED,

16K DYNAMIC RAMS

M5K 4116-3 200NSEC

ACCESS TIME/375NSEC

CYCLE TIME.TESTED t.

BURNED-IN

$850 EACH/MIN.QTY 8

4K STATIC RAMS

EQUIV,TOTMS40144-30 300NSEC ACCESS TIME/ CYCLE TIME FOR 4MHZ 2-80 OPERATION, m EACH/MIN.QTY, 8

Tested s guaranteed

OUMTiry DISCOUNTS miL/IBLE ALL ORDERS POSTPAID, U,S,FUNDS CHECK OR MONEY ORDER, VISA,8A,MASTERCHARGE-SEND ACCOUNT NO. EXPIRATION DATE, INTERBANK ^0,,& SIGNED ORDER, PHONE ORDERS: 714/633-4460

MEASUREMENT SYSTEMS & CONTROLS,inc,

MEMORY DEVICES DIVISION, DtPT, B3

867 NORTH MAIN ST, ORANGE, CA 92668

Circle 216 on inquiry card.

save more than 20%!

NORTH STAR INTERTUBE

THINKER TOYS HUH

Iha smartest computars at the smarlest price DOUBLE DENSITY

H0RIZ0N-M6Kkil, list$1599 .,,$1279

Assembled & tested, list$1899 ,,,$1519 HORIZON-2-32Kkit, list $2249 .,,$1799

Assembled & tested, list $2549 .,,$2039 HORIZON-2-32K QUAD DENSITY

Assembled & tested, list $2999 , , , $2399

PASCAL for NORTH STAR on Disk $49

Powerful NORTH STAR BASIC FBEE

Measurement Systems asm memory 64K, $640

TtiinkerToys Discus/2 D asm $1149 $949

TRS80IOS-100HUH kit list $295 $260

Assembled & tested, list $375 $350

INTERTUBE IITarmlnai. Il8t$995 $780

MARYELLEN Word Processing, , ,

$34 -f $1.50 sfiipping

VERBATIM Disks. . ,

10 for $29.50 -I- $1.50 sfiipping Wfiicti Computers are best? BROCHURE. . FREE

AMERICAN SQUARE COMPUTERS

KIVETT DR, JAMESTOWN NC 27282 (919)883-1105

Memorex Floppy Discs

Lowest prices. WE WILL NOT BE UNDERSOLD!! Buy any

quantify 1-1000. Visa, Mastercharge accepted. Call free (800)235-4137 for prices and information. All orders sent postage paid.

PACIFIC EXCHANGES

100 Foothill Blvd, San Luis Obispo. CA 93401, (InCal, call (805) 543-1037.)

Circle 294 on inquiry card.

RECYCLE(D)

BUY ^1^ SELL < SWAP Hardware & Software

NEW PRODUCT ANNODNCEMENTS

Mailed ist Class every 3 Weeks lyr. (18 Issues) %? $3.75

ON LINE -■#■

Djut tcd It. iJiiUlislin ■ Csi-ililislitB li>r3

2469B Santa Cruz Hwy.. Los Gatos. CA9S030

Circle 21 on Inquiry card.

Circle 5 on Inquiry card.

Circle 288 on inquiry card.

An Overview of Long Division

Geoffrey Gass 5240 SW Dosch Rd Portland OR 97201

On the very simplest level, a division problem starts with two numbers, a dividend, which we want to divide by a divisor, to obtain a third number, a quotient. In terms of grade school long division:

Quotient Divisor )Dividend

-I- Remainder

The quotient (integer portion) is simply the number of times the divisor can be subtracted from the dividend and still leave a positive remainder.

The simplest computer program for this 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 the result in R.

• Test R.

• If R is positive, increment Q, transfer R into N, and go back to the subtract step.

• If R is negative, exit. Q is now the (integer) quotient and N contains the remainder.

There is nothing basically wrong with this procedure, but it's not very useful. If N is 1,000,000 and D is 2, it will take 500,000 operations of the

program to get Q. If D is 797,236, the program will quickly tell us the answer is 1, with a remainder.

Let us check off the chief deficiencies. First, if the two numbers are very different, the program will give us an accurate answer, but will take a long time doing it. Second, if the two numbers are very close in value, the program will be very quick, but not very precise. Third, if D is larger than N, zero is the only answer. Fourth, if D happens to be zero, the program will loop forever trying to get Q up to infinity.

What we'd prefer is a quicker program that gives us an answer correct to at least as many places as the significant digits of the numbers we put in, regardless of the magnitude of

the numbers. But won't that take a more complicated program and won't a more complicated program take longer to execute? A program 2,000,000 instructions long could be quicker to execute than one which loops through six instructions 500,000 times. And it certainly won't take two million instructions to make a quite thorough, precise, accurate and quick division program.

To get speed and precision, start out just as a previous generation was taught in grade school, by juggling the decimal points around (or binary points if we are working in binary). To put it another way, multiply the divisor and dividend some number of times by the base of the number system (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 fractions, except register Q which is double size. The registers are usually strung out serially in adjacent memory locations, but it is convenient to think of them in block form as shown.

220 August 1979 © BYTE Publications Inc

N D

R Q

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 divisor have been loaded; all other registers are cleared.

dividend is only slightly larger than the divisor. Note how many places it is necessary to shift the numbers so they are nearly equal. (In old-fashioned long division, the divisor is shifted until it is an integer, and the dividend is shifted the same number of times. The rest of the necessary shifting is done by relocation of the quotient with respect to a fixed location for the decimal point.)

To start, set up an array of registers large enough to hold the largest numbers we want to deal with. The quotient register is twice as large as the others, since dividing a very small fraction by a very large number produces a yet smaller fraction, and dividing a very large number by a small fraction gives an even larger quotient. Then arbitrarily define some point in each register as the decimal or binary point. A convenient place is between two memory words, as shown in figure 1. Although a more common technique is to use only three registers (no R register), using four is a little easier, and you'll never notice the slightly increased time required for putting R into N after every successful subtraction. However, extra time is only needed for BCD (binary coded decimal) division. In binary arithmetic, the extra time for an addition after every unsuccessful subtraction approximately balances the time wasted in transfers.

The first operation is to load in the numbers, being careful to locate them in the proper position with respect to the decimal point. If the dividend N is nnOO, it will go into the word just to the left of the point in N. If the divisor is OOOd, it will go in the corresponding word of register D. All other locations must be cleared to 0000, if not already done. Table 1 shows our starting arrangement. Because the program is general purpose, and must be able to operate with any kind of numbers that can be fitted into its registers, it can't "know" how big N

and D are. Its first job is to find out their magnitudes so it can set them to be nearly equal.

The easiest way to do this is to start by shifting register D to the left and insert zeros at the least significant digit position of the fraction part of the register until something pops up at the most significant digit position at the left of the integer part of the register. In this operation we must set a limit to the number of shifts allowed, so when we have done 16 shifts and still get nothing at the top of the register, we can stop. Division by zero is not allowed, of course, and the computer has better things to do than spend hours shifting empty registers. Then do the same thing with register

N, shifting it left until its most significant digit shows at the top of the register. We can use the same counter used for D to keep track of how many shifts it takes, starting with the count left over from counting D's shifts and counting in the opposite direction. Our final count will reflect the difference in magnitude between the two numbers. That number is saved for later. Again, with N, it is necessary to set a limit to the count or we'll be shifting forever if N happens to be zero. The limit needn't be exact (it can't be, because we don't know what number we started with in the counter), but that's not critical. All that's needed is something that will get us out if the count starts looking like infinity. A limit of —20 or +20, depending on which way the counting starts, is adequate. In the example of table 1, the saved number is 3 (the difference between the seven shifts it took to get D to the top of the register and the four shifts required for N).

Before starting subtraction, counting and shifting, a certain number of

MICROPROCESSOR SOFTWARE ENGINEER

A leader in the rapidly growing field of medical diagnostic instruments, Abbott Laboratories has produced major systems for clinical chemistry, hematology, microbiology, and radioimmunoassay.

Our products include ABA/VP, the number two selling chemistry analyzer...ADC-500, the top-performing automated white cell classifier... MS-II, the only fully-automated microbiology system...and Logic/Auto-LOGIC, the top selling gamma counters for RIA.

A new product development group has an immediate opening for a Software Engineer to design microprocessor systems for clinical instruments. Responsibilities include developing systems specifications, defining software, writing and debugging programs.

You will work closely with chemists and mechanical, optical and electrical engineers on a dynamic product team which has developed innovative instruments for medical diagnostics.

Experience must include at least 2 years of real time control applications using Intel or Zilog products. Applicants should have designed and generated executive and support software for microprocessor based system. A BS in EE or Computer Science or equivalent experience is required.

Starting salary is highly competitive and commensurate with experience. If you are interested in pursuing a career in this area, please send resume with salary history in confidence to:

E. Marciano Corporate Placement

NORTH CHICAGO, ILL. 60064

Abbott is an Affirmative Action Employer

August 1979 © BYTE Publications Inc 221

operations must be set. Since we started with possible 16-position numbers, 16 operations should give 16 position answers, which is what we were looking for. We will be moving quotient digits into the Q register at a point 15 places to the right of the binary/decimal point. If the answer is 1, 16 shifts will put that first and only digit of the answer just to the left of the 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 result in R. Is R negative? (If binary coded decimal notation is used D could be larger than N, and R could therefore be negative. If binary notation is used, N must equal D, so R could not in the specific example be negative; but we test for it anyway.) If R is negative, go immediately to the next operation. If R is positive, transfer R to N and increment Q. If working in binary arithmetic, go to the next operation at this point, since another subtraction cannot be done. If working in binary coded decimal, how

ever, N could be 9 and D could be 1, and there are eight operations yet to go. So for binary coded decimal, loop back and keep on subtracting and swapping R back into N until R is finally negative, then stop. Don't transfer R or increment Q, just get on to the next operation.

At this point, the most significant digit of the quotient is in the least significant digit position of register Q. Now shift D one position to the right and shift Q one position left, marking the end of one operation in our operations counter. Keep repeating the above process until all 16 shifts have been done. At this point, the first Q digit is one position to the left of the binary or decimal point in Q. Now, go back and look at the magnitude difference count obtained at the start of the program. If it is positive, shift Q to the left that many times; if it is negative, shift Q CO the right that many times. (We could have checked the magnitude difference count when the operations counter was set: if the magnitude dif

Build The World!; Most Powerful 8-Bit Computer

Featuring The Famous Intel 8085!

Explorer/SS^*^

starting for just $129.95 you can now build yourself a sophisticated, state-of-the-art computer that can be expanded to a level suitable for industrial, business and commercial use. You learn as you go... in small, easy-to-understand, inexpensive levels!

\l.

^

Features Intel 8085 cpu/100% compatible with

8080A 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 maJ4V2 8-bit parallel

I/O and timer all on beginner's Level "A" system!

As featured in POPULAR ELECTRONICS

EXPL0RER/8b shown willi Video Monilof ami KevtioafO/Vicleo lerminal

CHOICE OF HEX KEYPAD OR TERMINAL INPUT

It you pL^n to cusloim^e EXPLORiiR lof ilfitlicaled use, we (ecoiiimend llial you order liex keyoiid m[)ul But il you .ite planning lo go whole hog and tilow EXPLORER up inlo a lull size, slale-ot-lhearl system with 8K or extended tiasic (commt] soon) up lo 6'iK ot memory lloppy disks lelephone interlace Drmiers. dnd all sons ot S-iOO plug-ins—you H he beller oil wild itie Keyboard/Video lermmat input Ine Si49 9& EXPLORER Keydoafd/Video lermmai includes full ASCII decoding wiin l?8 ASCii upper/lowei case sel. 96 [irmlable characters onboard regulators and selectable display loimals- 32«16lor tv set or 5J«I6 lor video moniloi mot includedi EXPAND EXPLORER. LEVEL-BYLEVEL

Level "B". al S49 95, adds 5-100 signals plus onboard RAM/ROM decoding Includes all pans necessary lo generate the signals lor S-iOO bus accessories Jusl add Iwo S-100 bus connectors and you have a comoiele St 00 compatible computer With a world ol add-ons al your lingertips Choose Irom Hundreds ol ptoducls to EXPLORER'S^ gives you big computer features immerti.iteiy. without turning you satisly your mdivirlual needs Level "B kit also includes the ;iddress decoders lor inlo an appliance operator, doomed lo run pre-developed sollware lor Itle Simply onboard RAM and ROM expansion which are addressable anywhere in Ihe 6!)K held connect EXPLORER 10 a terminal video monitor or tv sel and 8 voll power supply and Level -'C" expansion, al S39 95 e«pands the S 100 bus to allow a total o! six start running programs Ihe very firsl nighl' Level A teaches you machine $-100 cards to He plugged into EXPLORERS motherboard and rantameo m language and compuler lundamentals ll lels you tun exercise programs including EXPLORER s steel cabinet includes all hardware mounlirg brackels, board guides, programs loexaminettiecpuiegislers examine memoty, lili memory, move memory e,c j,jsi add Ihe number ol SlOO bus conneclorsyou need and make up games You can load and play back these programs on an otdmaiy lape |,evel "D" expansion, al S69 95, gives you 4K ol onboard static RAM utilizing casselie—and display your ellons on any ivscieen video monitor or pimier iS8 95 ^luiCs Vour board will also accept lour 27i6 EPROM s which can be purchased RF modulator retiuired tor iv use ) The simpMied architecture ol Ihe Inlet 8085 separaiely You now have an advanced mainlrame ihat can be customized with Ihe makes EXPLORER lar easier lo understand than computers using the older, more peripherals ol your choice to lit any (or all) specihc requirements Each level ol complex bill less powetlul 8080A Ihen when you re ready. EXPLORER can be EXPLORER is separately requLited lor ihe ullimate in stability Factory service is expanded—Oy you —to rival the power ol any 8-bil computer on earth Or you can .ivmiablL' Irom Netrcintcs Order your EXPLORER today!

'l __ — ORDER FROM THIS COUPON TODAY!- — 1

Netronics R&D Ltd., Dept BY-S, 333 Litchfield Road. New Milford, CT 06676 ,

□ Level A' EXPLORER/85 kil (specily □ ler- □ Deluxe Sleei Cabinet tor EXPLOBEH/85

I mmal or D hex keypad input) Sl?9 95 plus

I $3 p&h

n Power Supply kil, 5 amp, ±8 woll, S34 95

I plus S? p&h

' □ Intel 8085 User s Manual, $7 50 ppO

I D ASCII Keyboard/Video Terminal kil. $149,95

I plus S3 p&h

I D Hex Keypad kit lor hex version, S69 95 plus $2 p&h

customize It toperlorma dedicated task, ihanks to onboard prolDlyping, RAM and ROM expansion capabiiihes LEVEL "A" SPECIFICATIONS EXPLORER s Level A' system leaiures an advanced Inlet 8085 cpu. which is 50% taster Ihan its 8080A predecessor, yet 100% compaliBie wilh 8080A software which you'll discovei. exists by the Ion Big compute' leaiures include an 8355 ROM with ?k deluxe monitor/ operating system which has two programmable 8-bit bi-diieclronai parallel I/O ports, built-m cassette interlace with tape control circuitry lo allow labeling cassette liles. and commands which include "display contents ot memory, 'run at user location (go toi, insert data.' "move contenis ol memory, "examine registers individ

ualtyotall.' Idl command (to till the contents ol memory !□ Level "B S-100/Onboard RAM/ROM Decoder

with any variable) automatic baud rate selection program- ''i' ('ess S-100 conneclorsl, 5-19 95 plus S2

mable characters per line display output lormat, and more' | P&''

An 8155 RAM-l/0 chip contains 256 bytes ol RAM. two Q Level C S-lOO 5-Card Expander kit (less

programmable 8 bit bi-diieclionai and one programmable I conneclors). $39 95 plus $2 p&h

6-bit bi-directional I/O pons plus programmable i-ibil □ s-lOO BusConneclors (gold) SaaSeacti

binary coumer/hmer user interrupt and reset switches q ^evel D ■IK Onboard RAM kit S69 95 plus

Onboard expansion provisions exist lor up lo six S-100 i s? n&h

boards,4KolRAMand8KotROM. PROMorEPROM, |__ , .,

$39 95 plus S3 p&h

□ Deluxe Sleei Cabinet lor Key board/Video ler mmal. $19 95 plus S2 50 p&h

D RF Modulator kit SB 95 ppd

a Total Enclosed (Conn res add tax) S

□ VISA □ Mastor Charge Exp Date Account #

PHONE ORDERS CALL (203) 354-9375

Pnnl

Name

Address

. DEALER INQUIRIES INVITED .

ference was negative, set that many fewer operations for the program. We would not have added any positive number, however; that would set up a divide by zero for the 17th operation.) Register Q now has the correct quotient.

We neglected the small problem of loading the digits into the registers in their proper positions, and didn't get into fine detail on how a subtract or shift operation might be performed in a multiword register; however, the general outline of the algorithm can now be imagined, and that's half the battle. And there are some details of it that can help us along to the next step.

When the numbers were shifted up to the tops of their registers in the earlier example, we were actually going through the process of converting fixed point to floating point numbers, by normalizing the digits, with a saved exponent indicating how far they'd been shifted. In that specific example, we saved only the difference in exponents, but this gave us the information needed to create a conventional notation number from our floating point answer in Q.

Our next step is to establish a full floating point format in order to avoid the magnitude limitations forced on us by fixed point data. Because most processors are equipped with binary coded decimal arithmetic aids, there is no need to bother with binary coded decimal to binary conversions (and vice versa) when handling numbers input via the keyboard. Also, battling with the attendant conversion problems can be avoided (ie: decimal fractions that can only be approximated by binary fractions and rounding operations which don't come out the same in binary coded decimal and binary).

In floating point format, every number is stored as a string of digits, with the most significant nonzero digit at the top of the register and the decimal point location saved in a separate register. The programmer can arbitrarily say that the imaginary decimal point is anywhere in the normalized string of digits as long as the program is internally consistent. For ease of output in standard scientific notation, however, it's best to say that the 0 position of the decimal point 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 or greater and less than 10, and is to be multiplied by 10 to the power indicated to obtain conventional notation.

The number 6045.35 is stored as:

EXP NUMBER 03 604535

with the number in EXP indicating how many places further to the right of the first digit the decimal place must be moved for conventional notation. If EXP is 00, the number is 6.04535; if EXP is FD (—3 in hexadecimal form), the number is .00604535. In addition to the number and the base exponent, we also need something to indicate the sign of the number.

In binary operations, the most significant bit of a number can be considered the sign bit, providing a single byte with the range of values -1-127 to -128 decimal. Arithmetic performed under this convention gives consistent answers (except under overflow conditions for which most processors have detection circuits and warning flags). For binary coded decimal, the topmost digit position is the sign digit: 0 for a positive number, and 9 for a negative number. Negative numbers are generally handled in tens complement form, obtained by subtracting the absolute value from 999999999.... 9 and then adding 1 to the least significant digit (this is the way many early adding machines handled subtraction).

Without going into the detail of how it got that way, simply assume that all data in our division problem will be available to us in tens comple

SIGN EXP a MSD • n I

n n n n L SO

Figure 2: Register arrangement for floating point binary coded decimal division. Note that it is no longer necessary to provide a double size register for Q. The imaginary decimal point is located immediately following the most significant digit.

ment form, in the format shown in figure 2. The exponent could be in binary coded decimal form (maximum values + and — 79, with the most significant bit used as a sign bit), but it's easier to keep it in binary form, allowing a value range of -1-127 to —128, limited by the program to plus and minus 99. The format gives nine significant digits, of which we may elect to hold out two or three as guard digits, and display only six or seven, rounded off according to the value of the guard digits.

There is one more complication in our division routine: signs. The operation we want to perform here is repeated subtraction of absolute values, not just the simple signed subtraction for which the tens complement form can give correct answers. When dividing -h956 by —3, we do not want the remainder to become larger and larger! So first of all, look at the sign digits of the two numbers (if a number is negative, the 9 at the most significant digit position will set the N bit of a condition code register.

just as for binary operations) and determine the proper sign for the quotient. Store this flag away for the moment.

Next, if the dividend is negative, use a tens complement routine to get its absolute value, and put it back in register N. We might also test it for 0 at this point, and do an early exit if the answer is going to be 0. This would be appropriate only if we had already checked D, since D might also be 0, and 0/0 would be an indeterminate value, not 0. So don't bother with the zero check at this point if register N is being processed first.

What we do with register D depends on the processor being used. Some processors have decimal subtract operations, or a binary coded decimal adjust instruction which is effective after a subtraction. In the Motorola 6800, the DAA instruction works properly only after an ADD operation 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

iiiLinii

PARALLEL PORTS: a IN.ns. M K.I.iI hi-ilirr( irnn.il hi(s

SERIAL PORTS:

AVAILABLE BAUD RATES:

Pnrrs with .issoi i.ilcd tonlrol lines One Port TTL or Ri-2U. Our Purl 1 n or MODEM.

(07.2 15),(>

r(,n

(8.4 W.2 96ni) 4H0n

2-4no

or Liny

[(llot).ILI(l

kilot).iLi(J

kilob.iuil

kilobaud

kilob.iLid

band

baud .

b.uid

1760

1200

600

iOO

150

110

75

27,5

baud baud baud baud baud baud bauc! baud

r

I

I

I

I

$149..

Please rush the following

n I/O Card (kit)

□ 1/0 Card (assembled)

usr'r supplied baud rates up to 500 kilobaud.

MODEM: BUS TYPE: PRICE:

Full Duplex, answt't or originate. 300 Baud , S-100 ,e<^®'

$14') (kit $149 lass

x^-e'

.^■^^

■nibled and tested).

CA residents add 6%

MicroDaSys

P.O. Box 36051 Los Angeles, CA 90036

(213) 935-4555

Circle 221 on inquiry card.

August 1979 © BYTE Publications Inc 223

register D to be in tens complement negative form, so our subtraction can be performed with an addition instruction. For other processors, D must be in absolute (positive) form if a subtract instruction is to be used, or in complemented form for an add instruction, depending on what is available in the machine.

So we do or don't run the data in register D through a tens complement operation depending on its present form and the form required by our division routine. While checking the sign, we can also note if D is 0; if it is, we set an error flag and exit. If D is not 0, check here to see if N is 0, and exit early if it is (assuming register Q is already cleared), thus saving a little processing time.

Next, look at the exponent data to discover what the final exponent will be. Subtract the D exponent from the N exponent, but before storing it away check for overflow (a carry into the sign bit, effectively reversing the sign from what it should be), or, if we have set limits of + and —99, check for a number exceeding these limits. If the magnitude of the answer is going to be out of limits, we may choose to reject the problem, set a warning flag, or simply set Q to 0 or 999999E99 to indicate that the result is beyond the capacity of the machine if the program is simply a calculator program without programmability or other exotic features. For a scientific program, this sort of thing could lead to seriou'; and probably undetectable errors, and would never do. For an interpreter program, the exponent overflow should spring out to an error 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 done earlier in running data up to the tops of the registers. First, set up a count of nine (the number of digits desired). Subtract D from N, with binary coded decimal adjustment as required, and store the difference in R. If R is positive (checking byte 1 in R), increment the least significant bit in register Q (no need for binary coded decimal adjustment here — the digit will never exceed nine), transfer R to N and repeat until R is finally negative. Leave R alone this time and do not increment Q. Shift Q one digit (four bits) left, starting at the least significant byte of the register and shifting it one bit left, repeating the process four times. Then shift D one digit (four bits) right, starting at the most significant byte of the register and going through it four times. One more operation must be remembered when working with D in tens complement form and doing additions: the sign digit of D must be extended back to the top of the register. Do this by adding 90 to the most significant byte after we have completed the shifting above. When we get down to the last operation, register D should be all 9s except for the least significant digit.

Before going back to the subtract operation, step the operations counter by one, and exit if the counter indicates completion. When the subtracting is done, check the most significant digit of register Q. If it is 0, the result of the first subtraction was no good and the initially assigned exponent for Q was too large. Under these circumstances we

shift Q one more digit to the left and reduce the exponent that was calculated earlier by 1.

Now, everything is taken care of except the sign. If we have a simple calculator program, we can just look at the sign flag stored away and either do or don't output a minus sign, followed by the register Q data in absolute form. However, for most applications, Q will have to be stored away for future use in machine usable form (as previously discussed in figure 2), just as we got the N and D data to start with.

So look at the sign flag. If it says Q is negative, send Q through the tens complement routine, then store the result wherever it belongs. If Q is to be positive, store it as is, with 0 for a sign digit. In either case, "park" the exponent data next door, so it can be retrieved along with Q's digits whenever needed.

Well, we did it. A whole long division program in binary coded decimal, with a constant precision answer. Of course, we haven't actually formatted the digits for output, or converted our binary exponent to signed ASCII, or decided whether to output the number in conventional or scientific notation (there really isn't room on the average printer for 99 zeros). We also haven't figured out how to use the exponent to locate the decimal point in the printout of conventional notation data. But these things are incidental. Once past the conceptual problem of the "engine" in this dividing machine, the design of the transmission, differential, seat cushions and bumpers should be no barrier to rapid progress in any direction that suits the user.B

G,

PET ANALOG INPUT

Analog to Digital Conversion System for the Commodore PET Computer

•YBTVMI

Qive UTe PEl Ui^ ability to Bense* ofSBure* and control the world around it wiUi rwVI SYSTEMS niodules. Just F-lu^ U-te PETSETl into tltG PET to 3et 16 ct"»annels of analog inr-ut. Screw t-erminals are F-rovided for each channel so «ou can hooK u f- Joys t i cK s r F'O t s t or whatever aF-Fi^OF^^iate sensors btou have.

Each of the 16 analog in^-uts^ in the ran^e of 0 to 5»12 volts* is fTonverted to a decimal number between O and I?^5 ( 20 millivolts F-er count ). Convef'sion time is 100 microsconds *

In addition r the F'ETMOD F-rovides two .IEEE F^DTts and one user port as well as a tiAM SYSTEMS F-ort.

Software is F-rovided. A one line program is all that is necessary to read a channel.

1-AIM161 1 -PETMOD 1-CABLE A24 I-MANM001 1-P0W1

16 ANAU3Q INPUTS-8 BITS-100 MICROSEC

24 INCH INTERCONNECT CABLE MANIFOLD MODULE-SCREW TERMINALS FOR INPUTS,REFERENCE, GROUND POWER MODULE

TRS-BO IHTCRFllCE

OISPL*Y MODULE

r OPIO 1 r BS-2)? 1

L MOO J L yoD J

VISA

ADD

PETSETla for 110 VAC $295 PETSETIe for 230 VAC $305

CONNECTICUT microCOMPUTER, Inc.

150 POCONO ROAD

BROOKFIELD, CONNECTICUT 06804

TEL: (203) 775-9659 TWX: 710-456-0052

AND M/C ACCEPTED-SEND ACCOUNT NUMBER, EXPIRATION DATE AND SIGN ORDER.

$3 PER ORDER FOR SHIPPINQ a HANDLING - FOREIGN ORDERS ADD 10% FOR AIR POSTAGE.

224 August 1979 © BYTE Publications Inc

Circle 78 on inquiry card.

Whsf8 New?

16 K Byte Dynamic Programmable Memory Board

Called SupeRam, this S-100 bus compatible 64 K byte dynamic programmable memory board is available from Alpha Micro, 17881 Skypark N, Irvine CA 92714. It is completely compatible with the 16 bit Alpha AM-100 processor. SupeRam is a high density programmable memory board capable of storing up to 64 K bytes of data on a single board. Completely S-100 bus compatible, it utilizes 16 K byte dynamic programmable memories to achieve maximum bit density, minimum power dissipation, and optimum cost and performance ratio.

Refresh requirements are satisfied on the SupeRam board without support from the processor and are therefore transparent to the user. Exact and reliable internal timings are generated on board using digital delay line techniques. Memory is addressable as independent 16 K byte blocks, providing maximum capability with existing Alpha Micro Systems.

circle 559 on inquiry card.

New Software for Computalker Speech Synthesizer

Computalker Consultants, designers and developers of the Computalker CT-1 Speech Synthesizer (a device that enables a computer to speak) has announced the availability of the new Software Package II. Designed to expand the range of applications of the Computalker CT-1, Software Package II contains: CTEDIT, a new parameter editor; CSEDIT, an editor for the CSR1 input; CTEST, a CT-1 hardware diagnostic; PLAYDATA, to hear the data files; MEMVOICE, a vocal memory dumper; KEYPLAY, a subroutine to play letters and digits; and PIANO, a simple musical keyboard.

Software Package II is written in 8080 assembly language and includes the source code. It is priced at $45 and is available on CP/M format 8 inch floppy disk; North Star and Micropolis disks; Tarbell, CUTS, MITS ACR cassette formats; and paper tape. For further information, contact Computalker Consultants, 1730 21st St, Suite A, Santa Monica CA 90404.

Circle 560 on Inquiry card.

Z-80 Assembler Package

ZASSEMBL is a package of software designed for development of Z-80 assembly language programs. ZASSEMBL is written in North Star BASIC with critical routines implemented in Z-80 machine code. Zilog suggested mnemonics are used exclusively for all 696 standard Z-80 instructions. The package consists of three BASIC programs:

Editor enters and edits source

text

Assembler one pass file oriented assembler with backpatching of forward references. Inserts ASCII hexadecimal representation of the op code into the source code

Loader generates binary exe

cutable code and loads it into either programmable memory or a file

The minimum hardware requirements include a Z-80 processor, 32 K bytes of programmable memory, one 5 inch floppy disk drive with a controller, interactive terminal, and optional printer as an output device.

The package is priced at $35 which includes 5 inch floppy disk, a manual with full program listing in BASIC, and Z-80 commented assembler. For further information, contact Nemco Data Processing, 9 Walnut St, Rutherford NJ 07070. Circle 561 on Inquiry card.

Programming the 6502

Programming the 6502 by Rodney Zaks is an educational text designed to teach programming from the ground up. It will show the reader both the advantages and disadvantages of using the 6502. The knowledge of programming gained with this book may be applied to other microprocessors. Structured from simple to complex, this 310 page text may be used by the person who has never programmed as well as by programmers wishing to familiarize themselves with the 6502. The book is priced at $10.95 and is available from Sybex, 2020 Milvia St, Berkeley CA 94704.

Circle 562 on Inquiry card.

64 K Byte Programmable Memory Card

This 64 K byte programmable memory card will reduce system card count by using only one S-100 card slot. It uses the same power as the standard 16 K byte programmable memory card, thus lowering power requirements. Buffered signal lines mean less loading on buses. Memory is expandable in 16 K byte increments up to 64 K bytes and memory may be disabled in 256 byte blocks for read only memory programs. The fast cycle time of the new 16 by 1 dynamic programmable memory means no wait states are needed for reads, writes or refreshing. The memory card handles refresh. For more information, contact Microcosm Inc, 534 W 9,460 S, Sandy UT 84070.

Circle 563 on inquiry card.

Attention Readers and Vendors. . .

Where Do New Products Items Come From?

The information printed in the new products pages of BYTE is obtained from "new product" or "press release" copy sent by the promoters of new products, if in our judgment the information might be of interest to the personal computing experimenters and homebrewers who read BYTE, we print it in some form. We openly solicit releases and photos from manufacturers and suppliers to this marketplace. The information is printed more or less as a first in first out queue, subject to occasional priority modifications. While we would not knowingly print untrue or inaccurate data, or data from unreliable companies, our capacity to evaluate the products and companies appearing in the "What's New?" feature is necessarily limited. We therefore cannot he responsible for product quality or company performance. <>

August 1979 © BYTE Publicalions Inc 225

I

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 the announcement of the Floppy Disk and Printer. This is an ideal business 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, delivers information to all levels of Business, previously attainable only with equipment many times more expensive. The PET Business System is one of the most cost efficient business tools today. Here are just a few of the cost-saving uses in the corporation, professional office or small business: stock control, purchasing, forecasting, manufacturing costing, customer records, mailing lists, etc. ...

Features Include:

• 16 or 32K bytes RAM user memory

• 14K ROM operating system including a machine language 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

DUAL DRIVE FLOPPY DISK 2040

The Dual Drive Floppy is the latest in Disk technology with extremely large storage capability and excellent file management. As the Commodore disk is an "Intelligent" ) peripheral, it uses none of the RAM (user) memory of the PET. The Floppy Disk operating system used with the PET computer enables a program to read or write data in the background while simultaneously transferring data over the IEEE to the PET. The Floppy Disk is a reliable low cost unit and is convenient for high speed data transfer. Due to the latest technological advances incorporated in this

Model 2040A Single Disk Unit - $895

disk, a total of 360K bytes are available in the two standard 51/4inch disks, without the problems of double tracking or double density. This is achieved by the use of two microprocessors and 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

TRACTOR FEED PRINTER 2022

(Next day delivery available.)

MODEL 2022

The Tractor Feed Printer is a high specification printer that can print onto paper (multiple copies) all the PET characters letters (upper and lowercase), numbers and graphics available in the PET. The tractor feed capability has the advantage of accepting 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

for: width, decimal position, leading and trailing zero's, left margin justified, lines per page, etc. It accepts SVj-inch paper giving 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 CABLE FROM PRINTER TO DISK - $49

FULL SYSTEM NOW IN STOCK FOR IMMEDIATE DELIVERY!

SUPER WORD PROCESSING SYSTEM

$2395 complete

IS POmnlPtP System Includes: • Anderson Jacobson 841 SelecttJc I

** wi^iii|^i\,ftw • 16K PET with Full Sized Keyboard • Inlerface

with SOf twirl rP 'Tape Drive Unit "Super Word Processing Software

PET

6502 anywhe'R on ihG page. Up and down screen scrolling make:

T computer Gdiling a breeze! Commands include end-to-end cursor line

J as typing letters, reporls, and manuscripis, tor SCAN, INDENT, TAB, sofl HYPHEN) for splitting syllables at

iiling lists, and for filling oul forms. The software 'he end of a line,( and four-direction cursor control. Output

upporl any inexpensive printer and even high tormatling incluUes dynamic print control, indentation, right

printers with incremental and proportional letter lustification. line width and line-!o-line spacing and

Super Word Processor easily creates, edits. proportional ielterspacing

^d formats text. It can merge multiple texts. In -^Iso included aie programming capabilities (or performing

imands, the system has automatic text such uselul tasks as direct-mail form-letter typing, multiple

. , . . iminates the need for carriage returns column printing, and automatic multiple forms entry. You may

igt

sys

BUSINESS SOFTWARE FOR PET BUSINESS SYSTEM

PERIPHERALS FOR PET

• Super Word Processing Package (disk & tape versions)

• Real Estate

• Statistics

• Banking & Finance

• t^aW 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 Card Order $75

VIST

N.Y. residents add 8% sales tax • Same day shipment on prepaid and credit card orders • Add $5 sfiipping for computers, $3 for boards, $.25 each cassette tape.

Open Mon-Fri 10-6 Sat 10-4

• 24K Memory Expans

• 16K Memory Expans

• PET to RS232 Serial ' 2 Way SL-rial/Commi ■ Modem Board tor PE ' Analog to Digital Bo

for 16 Devices

PET MUSIC BOX

Add music and sound effects to your programs. Compose. play, and hear music on your PET. Completely self-contained (no wiring). Free 3 programs including; Star Wars theme, sound effects, etc. $39.

NEW!from

Eventide AUDIO SPECTRUM ANALYZER

• Mounts inside the PET

• Third-Octave audio spective analysis

• Complete with software and documentation

• Replaces equipment costing thousands of dollars

MARK SENSE CARD READER $750

^V • Automatic turn-on and card feed|

> Ideal for marking test scores

* Accepts any length card

• Perfect for schools & business j

TO ORDER CALL TOLL FREE 800-223-7318 ,46,^ s

TU^ r^OlVilDI ITCTD CA^^TT^DV ^85 Lexington Avenue 750 Third Avenue New York. N,Y, 10017 I IIC? V^V^IYirU I en r^W^ l \JT\ T (212) 687-5001 (212) PET-2001 Foreign order desk - Telex 6400bb

226 BYTE August 1979

The

?

SUPEXRAIN

TM

INTE^TEC

DATA

SYSTEMS

ONLY

$2995

TO ORDER CALL TOLL FREE 800-223-7318

$1495 Complete! 16K Model add $200 32K Model add $500

IV $795

• 14K ROM Operating system

• 8K RAM Memory

• 9" Video Monitor

• Built in Keyboard

• Digitally controlled tape

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

Your operators will praise theSuperBrain's good looks. A full ASCII keyboard with a numeric keypad and function keys. A non-glare, dynamically focused, twelve inch screen. All in an attractive desktop unit weighing less than a standard office typewriter. Sophisticated users will acclaim SuperBrain's twin 2-80 processors which transfer data to the screen at 38 kilobaud! Interfacing a printer or modem is no problem using SuperBrain's RS-232C communications port.

Features Include:

• two dual-density minifloppies with 320K bytes of disk storage

• 64K of RAM to handle even the most sophisticated programs

• a CP/M Disk Operating System with a high-powered text editor, assembler and debugger.

APPLE 11 PLUS 0NLY$1195

A complete self-containeri computer system with APPLESOFT floating point BASIC in ROM, lull ASC11 keyboard in a light weight molded carrying case.

Features Include:

• auto-start ROM • Hi-Res graphics and 15 color video output.

• Expandable to 4eK.

Disk $595

Add-on Disk 495

Pascal Card 495

Business Software 625

Monitor 149

Printer Card 180

Programmer's Aid 50

Speechlab 229

Lightpen 250

Communication Card 225

Modem 200

EPROM Programmer 100

SALE!

S35 of Soltwafewilti purchase of any computer on Itiis page

Send for FREE Illustrated Software Catalog for PET/APPLE/TRS-80 with liundreds of selections from all over the world.

Compucolorll

i hE

DttW

chf

gives you.

• 13" Color Display

• Advanced Color Graphics

• 51K Disk Built-in

• 16K ROM Operating System

• SK RAM User Memory

• 4K RAM Refresh

• e080A Microcomputer

• RS-232 I/O

Every unit comes with an extended DISKBASIC that has full file management capability resident m the COMPUCOLOR 11 m 16K of ROM Colof IS fantastic, but COMPUCOLOR M has the power to handle complex tasks and small busmess applications An impressive software library suppler

I^SPECIAL SPECIAL

$200 FREE Software with .^^ I purchase of 8K PET >^ I

BUSINESS COMPUTER

DATA GENERAL micro NOVA

The uttimaie in small business compuieis when mauhed with COMPUTER FACTORY'S minicDinpulef: Sottwaie Accounts Heceiuable/Payable. Inveniorv Coniroi/ Order Entry, General 'Ledgei, Pavtoii Sys tems Irom aboui^

>l

/

' DataGeneral

"$13,500

BUSINESS

COMPUTER

IfVISAI

The low cosi solulion

tor all small business

problems A wide variety

of software IS

available (or ail your needs

PCS series include dual lloppies. 32K R/

I O, DOS. BASIC

• PCS-42 I400KBI $3296

• PCS-44 1780KB) $3995

VDP-42 series adds video terminal, keyboard and VIO lo above

• VDP-42 $4995 • VDP-44

• VDP.80 $7995 • VDP 180

$5595 $8995

SUPER SOFTWARE

Word ^^'^ super advanced full function program will allow |

ProcesBlna ^"^ *° create text from PET or terminal keyboard. [ p1 PFT • INSERT • DELETE • CENTER • UNDERLINE •

POrfei p^LL SCREEN EDITING • MOVE LINES OR

BLOCKS • SAVE TEXT ON TAPE • AUTO PRINT [

FEATURE....$45

This fantastic program disk allows the statistician. Moving mathematician, trader in stocks, money or ,

Average commodities, the ability to maintain 30 database \ Plot series of up to 300 values and plot 3 different moving

Program averages of a series at the same time, in 3 different FOR colors. Files can be updated, deleted, changed,

APPLE extended, etc.

A sure value disk at only $40!

Word Processing For Apple on disk...$50 '

78 Ke

PiocewD board and

NumeTic Pad

IK

4AM (up

o3ZK)

Ser Oil

al and Pai CasiBlie

llel I/O

/O

30

ed Oispla

¥

S lOOCompai M User Oelin

b!e

d ChataciMS

SORCERER

f

SPECIAL 12' Video Monitor for SORCERER ($299 value) I

ONLY

$125 with 8K unit 95 with IBKunit 65 with 32K unit

ANDERSONJACOBSON

841 I/O Tfrminal

Ideal lor word procauing ind imill tjiui

„NOW

'I Priming

IN

• ASC 11 Code

• l&cpiPrinloi

• High QualilvSelKti

• Uie Keyboard for PET

• RHiable hiivy rluly Mechaniim

• Compleidy Returbiihid by A.J.

• Servict in 15 Major Cilin

l| tJiUI' ,Mt^ll

STOCK'I

(^raJlil

$1095

Serial

$1195

RADIO SHACK • PET • SORCERER IaPPLE • COMPUCOLOR • ETC.

PRINTERS • PRINTERS • PRINTERS

The COMPUTER FACTOHYS extensive CENTRONICE 779. ... $1095

inventory and wide selection o( computer TRENDCOM 375

printers assures you of (inding the printer INTEGRAL DATA .... 795 best suited for your needs and QUME or DIABLO .... 3400

specifications. The following printers work COMPRINT 560

well with all known personal compulers

Min Credit Card Order $75

VISA"

Open Mon.-Fri. 10-6

NY residfifiis add 8% sales tax • Same day Qaf 10 d shipment on prepaid and credit card orders ^"•' ' W"^ • Add 55 shipping for computers. S3 for boards, S 25 each cassette tape.

NEW CENTRONICS 730

50 CPS - MICROPROCESSOR CONTROLLEOI

Tractor & Friction Feed • Uses Single Sheets. Roll, Fanfold» Upper & Lower Case • Light Weight

Parallel $995

Serial $1045„<-^^ ^^^4

TO ORDER CALL TOLL FREE 800-223-7318

-\S^t^-'

&f^

i\t«

The COMPUTER FACTORY

>-■_ uui#-cc.«j-f «J lu /.^■J^^EIIJI^- (46th St.)

485 Lexington Avenue 750 Third Avenue New Yorl<, N.Y. 10017 (212)687-5001 (212) PET-2001 Foreign order desk ■ Telex 640U55 .

BYTE August 1979 227

Whsl's New?

PERIPHERALS

Video Board Features High Density and Reverse Video

A higher density version of the Flashwriter Video Board, featuring optionally controlled reverse video, has been announced by Vector Graphic Inc, 31364 Via Colinas, Westlake Village CA 91361. Displaying 80 characters by 24 lines, the Flashwriter II uses an 8 by 10 dot matrix to produce crisp, sharp resolution for 1920 character positions in a 2048 byte memory block. In addition to normal video, reverse video is optionally controlled by the higher order bit of the character code. As many as 256 characters can be generated by 2708/2716 erasable read only memories which may be user-programmed for special symbols or graphic displays.

The Flashwriter II allows rapid updating of the screen via memory mapped I/O (input/output). Special circuitry prevents flashes on the screen when updating memory, and a keyboard port with latched data provides easy interface to Vector Graphic's Mindless Terminal or other parallel keyboards.

The Flashwriter II is priced at S320 assembled.

Circle 526 on Inquiry card.

Low Cost Alphanumeric Printers

These two compact, light weight, 5 by 8 dot matrix printers are being offered by

American Micro Products Inc, 6550 Tarnef, Houston TX 77074. The 12 column PL12 at $59.95 and the 20 column PL20 at $99.95 provide quiet economical hard copy output. A general specification manual, art work for a printed circuit board (available only with the PL20), parts lists, flow chart, and schematics describing the 8 bit parallel interface (Centronics type) are included with each printer. In addition, the microprocessor control device and the printed circuit board (PL20 only) are available as options. These elements of the interface are priced at $99.95 and $29.95, respectively.

Circle 527 on Inquiry card.

FCC Approved Data Modem and Communications Adapter

This S-100 bus compatible data modem and communications adapter, designated the MM-103, has been approved by the Federal Communications Commission (FCC) for direct con

nection to the public switched telephone network without the use of a DAA (CBS or CBT). Under software control, it can originate and answer calls automatically. It can also dial the telephone automatically.

In addition to normal digital communications capabilities, the MIVl-103 provides auxiliary inputs and outputs that will interface with computer system power-up control (on telephone ring or external input); voice recorder announcement equipment; and alarm recognition and automatic dial equipment.

The modem is available fully assembled for $319.95 which includes an unconditional ten day return privilege and a one year limited warranty. For further information contact Potomac Micro-Magic Inc, POB 11149, Alexandria VA 22312.

Circle 528 on Inquiry card.

New Family of RS-232 Switching Units

A new family of low cost miniature switching units has been introduced by Giltronix Inc, 3156 Avalon, Palo Alto CA 94306. The family, called RS232-X, switches serial RS-232 peripherals between several driving sources. Model RS232-X3 allows three driving sources. By turning the three position switch mounted on the RS232-X3, the user can select the driving device that will exchange data with the peripheral unit. A unique arrangement allows the cascading of two or more RS232-X switches, thereby expanding the selection from three devices to five or more. Model RS232-XF is similar to the RS232-X3, but switches additional signals. Both come with 25 pin female connectors. The price of 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 from Computalker

Computalker Consultants, developer of the Computalker CT-1 Speech Synthesizer, has announced the availability of the Model CT-1T, a speech synthesizer adapted specifically for the Radio Shack TRS-80 microcomputer equipped with Level II BASIC and a minimum of 16 K bytes of programmable memory (32 K bytes recommended). The Model CT-1T Speech Synthesizer is a completely selfcontained unit with its own AC power supply. The interface circuit board contains an on board 2 W audio amplifier, an S-100 connector for the CT-1 speech synthesizer board, and a Radio Shack compatible edge connector. An interconnect cable (supplied with the Model CT-1T) connects the unit to the TRS-80 bus connector on either the keyboard or expansion interface. Standard phone jacks provide connections for external speakers, headphones or external amplifier (not provided).

The Model CT-1T can be operated in two modes: direct parameter control and phonetic, and it is supported by a growing library of software. Each unit is shipped with a hardware user manual, basic set of software consisting of CTEDIT Parameter Data Editor and speech parameter data files Hello, Letters and Digits, and the Computalker CSR1 Synthesizer-by-Rule Software program. All software is available in a choice of 5 inch disk or standard cassette.

The CT-1T is priced at $595. A special unit is available for persons who already own a Model CT-1 and is priced at $225. For further information, contact Computalker Consultants, 1730 21st St, Suite A, Santa Monica CA 90404.

Circle 530 on Inquiry card.

228 August 1979 © BYTE Publications Inc

ITHACA AUDIO

THE OEM MARKETPLACE

Assembled and Tested Added at Ithaca Audio

Field-proven reliable engineering

Over 15,000 boards worldwide prove Ithaca Audio provides the quality and reliability you demand.

Ithaca Audio Boards are fully S-100 compatible, featuring gold edge connectors and plated-through holes. All boards (except the Protoboard) have fully buffered data and address lines, DIP switch addressing, solder mask and parts legend.

• Z-80 CPU Board still the most powerful 8 bit central processor available. Featuring power-on-jump, provision for on-board 2708. Accepts most 8080 software.

A&T 4 mHz $205.00

A&T 2 mHz $175.00

Blank PC $ 35.00

• Disk Controller Board controls up

to 4 single or double sided drives. Supported by a host of reliable software packages: K2 FOOS, Pascal, Basic and complete diagnostics.

A&T $175.00 Blank PC $ 35.00

• K2 FDOS Disk software In the DEC tradition. Includes character oriented text editor (TED), File Package (PIP), Debugger (HDT), Assembler (ASMBLE), HEXBIN, 1 COPY, System Generator (SYSGEN) and more. Command syntax follows Digital's 0S-8/RT-11 format. First in a family of high level software. Basic and Pascal available now. Soon-to-be-released Fortran.

K2 Disk $ 75.00

• Video Display Board features the

full 128 upper/lower case ASCII character set. Easy-to-read 16 line x 64 character format can be displayed on an inexpensive video monitor or modified TV set. Includes TTY software. Add our powerful K2 FDOS to create a versatile operator's console.

A&T $145.00 Blank PC $ 25.00

• 8K Static RAM Board High speed

static memory at a reasonable cost per bit.

Includes memory protect/unprotect and

selectable wait states.

A&T 250 ns $195.00

A&T 450 ns $165.00

Blank PC $ 25.00

• 2708/2716 EPROM Board indispensable for storing dedicated programs and

often used software. Accept up to 16K of 2708's or 32K of 2716's.

A&T (less EPROMs) $ 95.00

Blank PC $ 25.00

2708 EPROMs $ 11.00

circle 191 on inquiry card.

The leading manufacturer of blank S-100 boards Is adding a new wrinkle—now all their boards are available assembled and tested. "This is a natural progression for the company" according to Mr. James Watson, President. "Actually we've been supplying assembled and tested for some time to our volume customers and OEM's, particularly those overseas. Our production staff is now fully up to speed, so just about everything is available from stock." The company scheduled 6 months to phase in assembled and tested to allow time to build base Inventories, before offering the boards to the public. "We feel this is quite important. A lot of companies have earned themselves a bad name in this business by announcing products they can't really deliver. We simply won't do that." Mr. Watson further explained that Ithaca Audio Intends to remain leader in blank boards and expects to release a minimum of 6 new designs by August, which will be offered both blank and assembled and tested.

Memory Prices Tumble

Ithaca Audio first to break 10/Byte Barrier

By cutting prices for 32K of RAM to $319 Ithaca Audio t>ecomes the first computer vendor ever to offer high speed memory for less than a penny a byte. Commenting on the announcement, Steve Edelman, Director of Engineering said "Just a few years ago people were wishing for a penny a bit, and even now memory for most large computers costs about 2C/byte and that's only in 1 Megabyte chunks." In fact it's the relative modest capacity of the 32K board that makes it so interesting. Users need not buy the full 64K to take advantage of the low price per bit. Furthermore, the board is available both as a kit and assembled and tested. Delivery is stock to two weeks. Pricing is:

• 32K kit $319

• 32K A&T $359

• 64K kit $645

• 64K A&T $695

8" Disk Drives

Shugart compatible Memorex 550's are in

stock.

Single and double density compatible, 330K

bytes capacity with oiir controller or use your

own.

Either way $456

# Protoboard universal wire-wrap board for developing custom circuitry. Room for three regulators. Accepts any size DIP socket.

Blank PC $ 25.00

Pascal/Z Ready

The first Pascal Compiler for the Z80, and the fastest Z80 Pascal ever is now ready. Over one year in development, Ithaca Audio was obviously pleased with the results. "We really have outperformed them" states Jeff Moskow, Director of Software Engineering, beaming over the recently released benchmarks, in which Pascal/Z averaged better than five times the speed of a recent P-code implementation.

"Pseudo-code means a vendor only has to supply one compiler to lots of people using lots of different machines, and that makes his life very easy, but it also means users' programs execute significantly slower. Therefore, we chose to write a native compiler that delivers fast re-entrant ROMable code, with no need for an intermediate language and interpreter. That's where our speed comes from." As a matter of fact, Pascal/Z is often twenty times as fast as UCSD's implementation and may well be faster than dedicated Pascal machines such as the recently announced Western Digital Pascal Microengine.™ Unlike the Microengine, Pascal/Z does not require any new special CPU hardware and has the added benefit of compatibility with existing Z80 software.

Operational requirements of Pascal/Z are the Ithaca Audio K2 Operating system and 48K of memory during compiles. The output is standard Z80 Macrocode which is linked and run through the Ithaca Audio Macroassembler. Binary files may be as small as 2.5K, or even less if the full library is not used. The compiler. Including the Macroassembler, is available on an 8" K2 floppy disk. Price including full documentation is $175.00. The Macroassembler is available separately for $50.00. Delivery is from stock.

IMore Software:

For those that don't require the speed of a compiler like Pascal/Z, Ithaca Audio also offers the convenience of BASIC. BASIC/Z, an extended version of TDL's Super Basic, runs in slightly over 12K and Is supplied on an 8" K2 disk for $75.00.

SAVE Even More

When you buy your software as a package K2 and Pascal/Z $225

SAVE $25 K2, Pascal/Z and Basic/Z $275

SAVE $50

HOW TO ORDER

Send check or money order, include S2.00 shipping per order. N.Y.S. Residents include tax.

For technical assistance call or write to:

ITHACA AUDIO

P.O. Box 91

Ithaca, New York 14850

Phone: 607/257-0190

BYTE August 1979 229

CASSETTE AND FLOPPY DISC LADELS.

1

1 1 ; STANDAHO CASSETTE

)

Avarvfsaso

Avery offers a complete line of labels for cassettes and floppy discs—all with removable adhesive. Including these standard sizes:

Cassette Label (1%" x 3V2") #5250 Floppy Disc Label (1%" x 51/2") #5252 Write for more information and free samples 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/colon

Monltort • Combination Rcvr/monitor sett • Modulator icit* * B-W Camerat • Color Cameras * Audio Subcarrier kits * Parts

WRITE or PHONE lor DETAILS & PRICING.

DIAL: 402-9S7-377II

Dealers welcomed. Well established program.

-jft

fA^,

'3-B ATV Research Si'"?..£!?'^31

Broadway

NE. 63731

Circle 19 on inquiry card.

GLARE FILTER

HIGH CONTRAST

SHARP RESOLUTION

MICRO-POROUS OPTICAL FILTER

FOR HOME COMPUTER CRT'S

With Filler

TRS80

16.95

PET

16.95

ADM3A

16.95

Soroc ID 120

16.95

Haielline

Southwest Tech.

16.95

14001500

16.95

Micro-Term

Perkin Elmer

16.95

ActV

16.95

Easily Installed • Instructions Included

For information on other models

dial (415) 456-8909

SUN-FLEX COMPANY, INC.

3020 Kerner Blvd. • San Rafael, CA 94901 Clteck/money order VIsa/Mastercharge

<

L

THC

RECREATIONAL PROGRAMMER

)

QUALITY SOFTWARE!

Tl & HP Programmables BASIC lor most compulers

LU Q.

GAMES' ALGORITHMS - PUZZLES STOCK ANALYSIS- AND MORE!

OVER 30 PAGES BIMONTHLY!

ANNUAL SUBSCRIPTION ONLY; S12 within USA & APO/FPO'S

$24 Foreign by AIRMAIL Single Issue tor $3 IncI P&H

VISA and MASTERCHARGE OKI CALL (616)343-3546 NOW I Box 2571 Kalamazoo Ml 49003

HAZELTINE 1400

only

$649.95!

• Verbatim Mini Diskettes . . .

. . . $3.70 each (boxes of 10)

• Intertube . . $784.00

• TRS-80 16K Levelll Expansion Kit $89.95

• Centronics 779 tractor ....

$1050.00

• Horizon II ass.. . .$1999.00

Mail TORA SYSTEM INC. Order 29-02 23rd Avenue °"'y- Astoria NY 11105 (212)932-3533

AIRCRAFT SIMULATOR FOR APPLE II

PROGRAIMMERS SOFTWARE EXCHANGE

Three versions on cassette for $19.95

1. Presents the pilot with a flying situation which must be successfully completed to avoid a crash.

2. Presents a simulated instrument panel during an IFR flight for prolonged practice.

3. Provides machine code for building flight problems and displaying them on the screen.

_ _ _, Satisfaction guaranteed! P.O.BOX199 (501)843-6037

CABOT, ARKANSAS 72023

iiiji-Sfrji

SINGLE BOARD COMPUTER $99.50*

with 6800 MPU, 6850 serial I/O. 2 6820 parallel I/O (32 lines), 512 RAM, socket for 2708, 2716, EROM. Interface modules for industrial control, data acquisition, lab instrumentation, on 44 pin 4'/i"x6y2" RGB's. RAM, ROM, CMOS RAM/battery, A/D, D/A, Driver/Sensor, Serial I/O, Parallel I/O, Counter/Timer, IEEE 488 GPIB, floppy controller •OEM (500 piece) price

iH»""'l Corp. 902 N. 9th Street Lafayette, IN 47904 Phone (317) 742-6802

Circle 389 on inquiry card.

♦ APPLE)

SUPER SALE

16K Apple II $1019.95

Disl< with

Controller $529.95

Apple Soft Cards... $159.95

Carrying Case $29.95

Super IVIod $29.95

Printers—call for price

UCATAN CORP.

P.O. Box 1000

DestIn, Fla. 32541

904-837-2022 Credit Cards Accepted j

L

Circle 375 on inquiry card.

SOFTWARE

for TRS-80 & North Star Z80

all programs written in

Z80 assembler

WORD PROCESSOR $125

Superior to the Electric Pencil at half the price. Gives total freedom of layout. Auto line justification, underlining, centering, lines pacing, pagination, re-pagination, etc. Works with any printer.

804B CROSS ASSEMBLER S95

Assembles programs for 8048, 8041. 8035 series at 1100 lines/min, INTEL mneumonics & error codes, multiple source files, symbol reference count, format control.

TEXT EDITOR S75

UNIX^"-style editor with global search S. replace, pattern matching, reads S. writes partial files, change, move. copy, append, delete, print, etc.

UNIX*" is a trgdemark of Bell Labs Send SI for specifications.

$3 for documentation Dealer discounts available

SOFTWARE INGENUITY

P.O. Box 1964, Eugana, OR 97401

Circle 356 on inquiry card.

Circle 315 on inquiry card.

Circle 333 on inquiry card.

m^m >

Computer Boards

.. HOBBY WORLD®

C>ILL TOLL FREE: (800) 423-5387 CA, HI, AK: (213) 886-9200

Your No.l Source for Computer Electronics

4 Cnnipuirr S>\lr>n«

lA^llhdi

Audio

SlOO Bus

SSM = Solid SIJI SDS^SD Svslems SPL = S|wechUb HUH = HUH Elfclrenics MH = Mountain Hjrdikjrr j&i =ds»tinbled A IrMrd

Cat No. M(r/Model Description - --- ' 16K STATIC RAM MODULE

1601A CCSMXVI 1601B CCSMXVI 1602A CCS-MXVI 1602B CCSMXVI 1603 CCS-MXVI CCSPTl CCSPT2 CCS-PT3 SSM-PB1 SSMT1 SSM-MB7 SSM-MB7 SSM-MB7 SSM-MB3 SSM-MB3 SSM-MB9 SSM-MB9 SSM-0B1 SSM-0B1 SSM-OB1 SSM-102 SSM-I02 SSM-I02 SSMSB1 SSM-SB1 SSMSB1 SSMMT1 SSM-I04 SSMI04 SSM-104 SSM-CB1 SSM-CB1 SSM-CB1 SSM-VB1B SSM-VB1B SSM-VB1B SSM'MB6B

1600 1604 1609 1440 1442 1405 1406 1407 142S 1426 1436 1437 1429 1430 1431 1414 1415 1416 1408 1409 1410 1432 1411 1412 1413 1403 1441 1404 1417 1418 1419 1400 1401 1402 1433 1434 1435 1438 1439 1420 1422 1424 1324 1325 1322 1323 1337

1509

1510

1511

1513

1512

1514

1500

1501

1505

1506

1518

1520

1516

1S17-0

1S17-16K

1517-32K

1517-48K

1517-64K

APPLE BUS

1607 CCS 1606 CCS

1608 CCS 1519 SPL

._.. _ _ 450ns kit

as above, 200ns kit

as above, 450ns a&l

as above, 200ns a&t

as above, bareboard

WIREWliAP PROTOTYPING BOARD

SOLDERTAIL PROTOTYPING BOARD

ETCH PROTOTYPING BOARD

4K/BK EPROM BOARD

TERMINATOR BOARD

16K STATIC RAM BOARD, kit

as above, a&t

as above, bareboard

2K/4K ^PROM BOARD, kit

as above, a&t

4K STATIC PROM/RAM BOARD, kit

as above, a&t .. -i^

VECTOR JUMP/PROTOTYPING CARD, kit $47

Price $285 i330 $330 $375 i 27 i 26 $ 26 , $ 16 S135 » 29 , S329 $383 $ 26 I 54 $108 $ 64 $118

as above, a&t

as above, bareboard

UNIVERSAL I/O BOARD, kit

as above, a&t

as above, bareboard

MUSIC SYNTHESIZER, kit

as above J&l

as aljove. bareboard

15 SLOT MOTHERBOARD, bareboard

2 PARALLEL + 2 SERIAL PORTS, kit

as above, a&l

as above, bareboard

e080A C(>U BOARD, kit

as above, bareboard

as above, a&t

VIDEO INTERFACE BOARD, kit

as above, a&t

as above, bareboard

8K STAfiC RAM BOARD, kit

SSM-MB6B as above, a&t

SSM-MB6B as above, bareboard ...

SSM-MB8A 16K 2708 EPROM BOARD, kit

SSM-MB8A as above, a&t

SSM-M88A as above, bareboard

SSM-VB2 VIDEO BOARD, kit

SSMVB2 as above a&t

SSM-MB4 STATIC RAM BOARD, kit, 2MH2

SSM-MB4 as above, a&l .

SSM-MB4 as above, bareboard

WMC-EPM1 4K EPROM BOARD bareboard

WMC-EPM2 16/32K EPROM BOARD, bareboard

WMC-FPB1 FRONT PANEL BOARD, bareboard

WMCCPU1 8080A CPU BOARD, bareboard

WMC-FDCl FLOPPY DISK COnYROLLER BOARD,

bareboard WMCMEM18K STATIC RAM KIT, bareboard WMC-MEM1 parts only for above lA 2708/16 EPROM BOARD, bareboard

lA 8K STATIC RAM, bareboard

lA Z-80A CPU BOAlil), bareboard

lA WIRE WRAP PROTOTYPING BOARD

HUHMPA PET & APPLE TO S-100 ADAPTER, kit HUH-MPA as above, a&l MH 100,000 DAY CLOCK, a&t

MH INT^ROL

SPL-20S 32 WORD SPEECHLAB, a&t

SPL-50S 64 WORD SPEECHLAB, a&t

SDS VERSAFLOPPY, kit

SDS EXPANDORAM, kit

SDS as above, with 16K RAM

SOS as above, witb 32K RAM

SDS as above, with 48K RAM

SDS as above, with 64K RAM

SOLDERTAIL PROTOTYPING BOARD WIREWRAP PROTOTYPING BOARD ETCH PROTOTYPING BOARD 32 WORD SPEECHLAB

$ 74 $ 26 S 48 S 93 I $ 26 $145 I 5212 I S 35 $ 39 I $139 I S193 I $ 26 $119 I $ 34 I $164 1

$129 I $176 I $ 26 $129 I $183 $ 26 i 88 $118 $ 26 $139 $199 $ 89 $142 $ 26 $ 28 $ 28 $ 48 $ 28 I

$ 48

$ 28

$ 80

$ 28

$ 28

$ 32

$ 24

$199

$279

$219

$329

$189

$299

$159 I

$185

$249

$330

$425

$500

$ 21 $ 21

$ :

$189

HUH 8100 |TRS-80bS100 Bus/ldaptorl

• 6 Slot motherboard

Includes options such as

serial RS232/20nia I/O,

parallel input and output,

space for 4K or 16K R/SM,

and more. Basic unit includes Bus interlace and

connectors only. Cat No. 1460 Bus interface kit Cat No. 1461 Ram Support kit Cat No. 1462 I/O Option kit Cat No. 1463 5 connectors 4-guides Cat No. 1464 Complete Package Cat No. 1465 Bus Interface a&t Cat No. 1466 Complete Pkg. a&l

$167 $ 42 $ 77 $ 42

$266 $220 $340

tx^^^

o^

BASE MOUNTING CLAMP Cat NOj PV3n

$P<9S $10.00

HORIZONTAL VISE HEAD Cat No. PV304

$12.00

$;iW

IC Sockets

Penny-A-Pin

I • Texas Instruments 1 • Solder tail • Package quantities only \

Order by Cat No. 1117 and

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 for .72

28 pin 3 for .84

40 pin 2 for .80

TRS80

I Level III Basic

Loads on lop of Level II, turns your TRS-BO into a powerful system. Gives disk commands without the DOS. Solves loading problems, cures keyboard bounce. Software cassette, with the power of a hard' ware modification. Guaranteed satisfaction. Cat No. 1332 S49.00

$49

Moltage Regulators

I Type Equal to CASE PRICE I

I 7S05K I7812K I7E15K I7818K |7805T |7812T I7815T I7818T 17905K |7912K I7905T I7912T I7915T

LM340K

LM340K

LM340K

LM340K

LM340T

LM340T

LM340T

LM34oT

LM320K

LM430K.

LM320T-:

LM320T

LM320T

+ 5 TO+ 12 TO. + 15 TO + 18 TO+ 5 TO+ 12 TO + 15 TO H8 TO 5 TO

3 $1.401 3 $1.401 3 $1.401 3 $1.401 220 .951 220 .951 220 220 .951 3 $1.751 3 $1.751 220 $1.25 I 220 $1.25 I 220 $1.25 I

19355 Business Center Dr. 6B8 NorthridgeG4 91324

WIDE OPENING VISE HEAD Cal No. PV366

$j}MS $11

STANDARD BASE Cat No. PV300 $>^9 $10.50

STANDARD VISE HEAD Cal No. PV303 $J»<^ $11.25

PC BOARD VISES _

Cat No. PV315 Standard, $1>$8 $14.75

Cat No. PV315 S-100 S^iiujS

TRS232

Printer Serial Interface $«

Software driven RS232 output port. Interface printers such as DIABLO, TELETYPE, Tl SILENT, etc. Easy to install, with instructions. Cat No. 1199 S42.00

TTL's

Order by 7400

16K Memory Add-On

$95

• For TR5-80, Apple II Guaranteed memory expansion! Includes everything you need...chips, jumpers, and step by step instructions. No special tools, no soldering! Cal No. 1156

"LIFT-IT"

PC Duplicating Kit

$25

Copy PC patterns from magazines t^uicklv and easily1 No additional materials required, no camera needed. With 10x12" sheet of film. We stock all refills. With slep-by-step instructions. Cat No. 1203 $25

LEEDEX

12" Video/Honitor

$139

• TRS-80 compatible

(no interfacing required)

• High resolution

Accepts standard composite video input, no RF modulator necessary. Stable & sharp. Ligfitweight. Shipping $6 gnd, $12 air, USA only. Cat No. 1204 $139.00

Pay by check, COD, Visa, or Mastercharge. Order by phone or mail. Please include phone number and magazine issue you are ordering from. USA: add $2

7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7416 7417 7420 7423 7425 7426 7427 7430 7432 7437 7438 7440 7441 7442 7443 7444 7445 7446 7447 7450 7451 7453 7454 7470 7472 7473 7474 7475 7476 7481 7483 7485 7486 7489

.15 .20 .20 .20 .20 .30 .30 .20 .20 .20 .25 .25 .35 .60 .25 .25 .20 .25 .25 .25 .25 .25 .25 ■?5

./3

.20 .70 .50 .50 .25 .75 .75 .65 .20 .20 .20 .20 .30 .25 .35 .35 .45 .35

1.20 .60 .75 .35

1.75

type number 7490. 7491 7492 7493 7495 74% 74107 74109 74121 74122

74123 .„ 74126 40 74132 65 74141 180 74145 65

74150 90

74151 60

74153 60

74154 1.00

74155 .70 74157 60

74160 85

74161 .75 74163 .75

74165 .95

74166 1.25 74170 1.60

74173 1.10

74174 .85 74175 74176 74177 74180

74181 1.75

74190 1.25

74191 .95

74192 74193 74194 74195

.75 .75 .90 .70

74198 1.49

74221 .85

74251 .80

74273 1.0O

74365 74366 74367 74368

.65 .65 .65 .65

Send for

FREE CAT>1LOG

Featuring

The best selection of computer accessories add-ons, factory fresh IC's, led's, semi's, software, PC aids, prototyping aids, books, test equipment, and more! Always updated! Dozens of new products every

for shipping/handiing, $3 for air. Foreign: add $3 for surface, $6 lor air. COD's also add $1. Guaranteed satisfaction for 120 days or your money back!

Circle 170 on inquiry card.

BYTE August 1979 231

IN CALIFORNIA

wmm %mm i/^M immm

Mainframes

Personal Computers

SlOO Bus Boards

Systems

Software

Peripherals

Supplies

Books Magazines

701 MacArthur Blvd SAN LEANDRO, CA (415) 569-4174

Circle 70 on inquiry card.

Come Help Us Celebrate The Child

St. Jude Children's Research Hospital continues its seorch for life-soving l-(nowledge about catastrophic childhood disease. And this seorch continues because people care. There's no ctiorge to potients or their fanniliespnce odmifted to its research studies by physician referral. The cost of drugs, equipment, and reseorch programs is met primarily by public contributions. Help us celebrate the child by sending your tax-deductible check or request for furthier information to St. Jude Children's -^ — Research Hospital, ►■ ^ , 539 Lane Ave., ■kJ Memphis, TN 08105.

ROBOT

ATTENTION FRANKENSTEINS

12-VOLT DC. 17-RPM,

REVERSIBLE GEARMOTORS

500-ma NO LOAD.

750-ma FULL LOAD

11 INCH-POUNDS TORQUE

2 MOTORS SEPARATELY DRIVING B-INCH DIAMETER WHEELS WILL DRIVE A 10C3-LB ROBOT. $18.00* EACH PLUS $1.50 PER MOTOR FOR SHIPPING AND HANDLING IN USA. CHECK OR MONEY ORDER PLEASE. CALIFORNIA RESIDENTS ADD B% TAX.

GLEDHILL ELECTRONICS

P.O. BOX 1644 MARYSVILLE. CA 95901

•THIS IS S5.50 BHjDW MANUFACTURER'S UST!

FOR TRS-80™ OWNERS

Programming Amateur's Letter

THE "DO-IT-YOURSELF" SOFTWARE NEWSLETTER

PUBLISHED MONTHLY

LEVEL II FROM THE BOHOM UP

BUSINESS

PERSONAL

HOBBY

There's Nothing Else Like It!

$24 per year... or write for FREE DETAILS

THE MAIL MART

Dept BA. Box 11102. San Francisco, CA 94101

Circle 199 on Inquiry card.

uuss

ll^e Jn<kpcn<ienf A^eu;fileHer of Heat^ Co. Computers

3l5-1>?enn$^l vania Ane. ,S.E. U>as^tn^l;on,P.C. 2d003

^ 8.30 ^01-12 issxifts f 15.60 ^or 2H issufce

(overse afi, $ 10.50 /12^

i 20/2^

"pai/ablft (7)1 a U.S. ba»\k)

circle 32 on Inquiry card.

ALIGNMENT ONLY

*35

SHUGART E FLOPPY A

DISC R

^80

INCLUDES MISC. PARTS

Jl^. COMPUTER

IBLj

8746 Wurzbaoh / Suite 207 San Antonio TX 78240 / (512) 696-0907

MICRO FOOTBALL

(TRSSO 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 opponent calls a defense! Instructions are included to 'fine tune' odds if you wish.

(Send $12.95 to:)

GLA Enterprises

P.O. Box 125 Reistertown, MD 21136

(Maryland residents include sales tax]

Circle 145 on inquiry card.

Special Sale!

DATATERMINAL fSAO PRINTER 099

We Buy-Seli-Tyade all brands & models of Data Processing Equipment.

USB-33010/30 CPS Impact

Printing Tractor Feed 132 Print Positions lOJ<8yPad Nearly a million dollars In Inventory

• • Phorte for Price Quotes

.;••;•-214/357-5725

'tKALBRO

computEr brokers

Formefly U S Brol<ers Co . A Division of Kalbro Corp

2fi36 WALNUT HILL LANE, SUITE 347

DALLAS, TEXAS 7S229

••••••••••••••

Circle 377 on inquiry card.

get your hands on...

Hands on microprocessor short course with FREE take home microcomputer included in the $449 tuition.

5 day^Pand interfacing workstiops Oct. 15-19 Washington, DC

Oct. 22-26 Lafayette, IN

Dec. 3-7 Lafayette, IN

NEW Advanced programming workshop Dec. 10-14 Lafayette, IN

Learn mtcreprocaiaart Aral hand from the ortglnal handa on people.

For more infomtation call Jerilyn Williams. (317) 742-6802 or write WIntek Corp.. 902 North 9th Street. Ufayette, IN 47904

■ 6800 Hardware/Software

■ Custom Hardware/Software

■ In-house short courses

iriNTKK

Corp.

circle 146 on inquiry card.

Circle 390 on inquiry card.

computer products, inc.

11542-1 KNOTT STREET GARDEN GROVE. CALIFORNIA 92641

(714)891-2663

MICROBYTEZ80/I-O

• A complete single board Z80A CPU and serlal/paralle I/O system

• Fully S-100 Bus compatible, tMSAI. ALTAIR

• Z80A CPU (4iMHz version of the

zeo)

« 156 Instructions — superset of and upward compatible from the 8080's 76 Instructions

• Provision for up to 4K on board monitor program using 1K(2708). 2K (2716), 4K 2732

• On board EPROM can be hardware and/or software deselected

• 2 MHz or 4 MHz operation is switch selectable

• 0 or 1 wait state for all cycles is switch selectable

• 2 RS-232C serial ports with 8251 USARTs

• Serial baud rates switch selectable

• 24 programmable parallel I/O lines (uses 8255)

• Gold Contacts for higher reliability

' Power requirements: -t-6V ® 600mA. -f 16V, @ 66mA, - 16V @ 100mA

• Operating temperature 0*-55*C

• Will operate with or without IMSAI/ALTAIR front panel

• Low power shotlky trl-state buffers on all address and data lines

> Fully warranted for120 days from date of shipment

$325.'"

IMSAICONN.

100PIN-SOLDERTAIL GOLD CONTACTS

SS."" each or 10/2.60 each

8251

PROGRAM MABLE/U-ART TESTED® 4 MHZ

SS."" each

TRS ■ 80

Floppy disk drive with cabinet & pwr. supply compatible witti Radio Stiack interface. Assembled & tested witti 1 yr. warranty on parts & labor.

MIg, by Lobo Drive

$385

interface Cable Available

SPECIAL

.1 @ 12 VOLTS CERAMIC CAP

10<|;each or

lOO/SQ.""

NIICROBVTE 16K STATIC RAM BOARD

> Fully S100 Bus Compatible, IMSAI. SOL, ALTAIR, ALPHA MICRO

Uses National's Low Power 5257 4K X 1 Static Rams 2 MHz or 4 MHz operation On board single 5 amp regulator Thermally designed heat slntt (board operating temperature 0* - 70"CI

Inputs fully low power Shottky Schmitt Trigger buffered on all address anddata lines Phantom is jumper selectable to pin 67

Each 4K bank addressable to any 4K slot with in a 64K boundary. 4K hardware or software selectable

Selectable port address 4K banks can be selected or disabled on power on clear or reset

Will operate with or without front panel ' Compatible with ALPHA MICRO, with extended memory management for selection beyond 64K No DMA restriction Low power consumption 1.3 amp Fully warranted for 120 days from date of shipment Extended addressing up to 1 megabyte of addressable ram

450 NS $320.°° 300 NS $340.°°

M1CROBYTE32K STATIC RAM BOARD

Fully S100 Bus Compatible, IMSAI, SOL, ALTAIR. ALPHA MICRO

Uses National's Low Power 5257 4K X 1 Static Rams 2 MHz or 4 MHz operation On board single 5 amp regulator Thermally designed heat sink (board operating temperature 0* - 70'C)

Inputs fully low power Shottky Schmitt Trigger buffered on all address and data lines ' Phantom is jumper selectable to pin 67

Each 4K bank addressable to any 4K slot with in a 64K boundary. 4K hardware or software selectable

One on board 8-blt output port enables or disables the 32K in 4K blocks

Selectable port address 4K banks can be selected or disabled on power on clear or reset

• Will operate with or without front panel

* Compatible with ALPHA MICRO, with extended memory management for selection beyond 64i<

* No DMA restriction

» Low power consumption 2.3 — 2.5 amps

• Fully warranted for 120 days from date of shipment.

Extended addressing up to 1 megabyte of addressable ram

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 for easy hook-up

9slolkit $70.°°A&T$100.''°

20 slot kit $125.°° A&T $155.°"

Bare Board 9 slot $30.°° 20 slot $50.°°

MICROBYTE DISK CONTROLLER

» IBM 3740 Soft Sectored'Compatible

» Z80 or 8060 compatible on S-100 Bus

• Single density runs both mini and

full size drives, runs CPM, on Shugart, PerscI, Memorex etc.

• Selectable port/address

• On board 2708/2716 for bootstrap or monitor program

• No hardware jumpers, uses plug in modules for different drives

« Uses 17718-01 controller chip

• Assembled and tested > Specify disk drive used when

ordering by mall

$225.°'

SHUGART

801-Disk Drive

WITH CABINET & POWER SUPPLY

ASSEMBLED & TESTED

1 YR PARTS & LABOR

MIg. by Lobo Drive

$585.°°

Dual Cabinet & Drives Available

2708's

LOW POWER 450 NS.

$8." each 8 for $66.°°

SHUGART

SA400

DISK DRIVE INCLUDES CABINET, NO PWR

SUPPLY, CUTOUTS FOR SWITCH, FUSE, &

INTERFACE CABLE

Mfg. by Loho Drive

2716

5 VOLT ONLY

LOW POWER

450 ns

$325,

00

$40.

00

SCANBE/RN

SOCKETS — LO PROFILE

(tin) 1-24 25-99 100-499 500 up

REGULATORS

14 PIN

.16

.15

.14

.12

16 PIN

.17

.16

.15

.14

18 PIN

.20

.19

.18

.16

20 PIN

.29

.28

.26

.25

24 PIN

.34

.32

.30

.28

40 PIN

.60

.58

.56

.52

320 T 6 320 T-12 340 T5 340 T-12 78H05

1-9 10-49 SOUD

1.15 1.05 .90 .85 .70 .65 ,70 .65

1.25 1.00 .75 .75

6.00 5.70 5.40

NEW PRODUCTS

8086 — CPU BOARD

8088 — CPU BOARD

Double Density Controller

CALL OR WRITE

FOR DEALER INFO

CABLE ASSEMBLY

for 8" disk drives

(2) 50 PIN CARD

EDGE CONNECTORS

ON 4tt. RIBBON

'CABLE

$20.'"'ea.

extra conn. $7.°° ea.

ORDERiNG INFORIWATION:

Name, Address, Phone

Ship by; UPS or P.P.

Shipping Charge: Add $2.50 up to 5 lbs., all excess shipping charges will be refunded. Credit

cards will be charged appropriate freight.

TERMS:

We accept cash, check, money orders, Visa, and Master Charge cards. (U.S. Funds Only). COD's: on approval only Open Aoct'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 Diskless TRS-80 Programs

- Telephone/Address/Mailing list program - sorts by name or zip code. Retrieves telephone § from name and visa versa. Access time is under 2 seconds, over 100 listings, Level II 16K - $30.00

- Checkbook program - hard electronic copy, easily accessible. 170 listings. Level II 16K - $30.00

- Mandalas for the Cybernectic Age I & II

- amazing graphic programs, better than TV - lasts hours without repeating or commercials. 2 sets of four interweaving designs. Level I or II 4K RAM - $30.00

- Introductory offer - all 3 for $7S.OO

LOWECO COMPUTOB

1803 Rodney

LOS ANGELES CA 90027

213-660-7530

6°/o Tax in California , Cashier Check Speeds DeUvery

Radio /haeko.ALc»

MICRO

MANAGEMENT

SYSTEMS

Up To 15% Discount on

TRS-80's

MICRO-COMPUTER SPECIALIST

LARRY OWENS

COMPUTER CENTER

MINI MALL

DOWNTOWN SHOPPING CENTER

CAIRO, GEORGIA 31728

912-377-7190

S-100 A/D

• s-100 Bus Compatible A/D Converter

• 12 Bit Accuracy

• 16 Channel Analog Input

• Programmable Gain Amplifier with Sample-and-Hold

• High Quality Commercial/ Industrial Construction

2 and 4 Channel, 12 Bit D/A Boards also available.

CALIFORNIA DATA CORPORATION

3475 Old Coneio Road, Suite CIO Newbury Park, California 91320 (805)498-3651

Circle 207 on Inquiry card.

Circle 41 on Inquiry card.

KIM SOFTWARE

9K MICROSOFT BASIC Includes:

• 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 a MANUAL

$100.00 prepaid

UPDATE KIT & MANUAL FOR KIM BASIC

WITHOUT MICROZ FEATURES . . . $35.00

MICRO-Z COMPANY

Box 2426

Rolling Hills, CA 90274

APPLE :: RESET KEY PROTECTOR

FAST RELIEF lor Ihe ACCIDENTAL RESET BLUES !

* Prevents reset when reaching tor = and return

* Allows deliberate usage

* Custom, (precision molded part * Easily installed

* Original equipment look

only 32.25 ■ incl. ship.&hndl

(calif, res. add 6 ' tax) send check or mon. order to: pkC, inc. dept.B 2003 Quail St.. NB CA 92660

The best choice in mainframes !

• SIOO CARD FRAME

• 22 MHt 12" CRT MONITOR

• la AMP POWER SUPPt-Y

• UPPER & LOWER CASE ASCII KEY BOARDS

• AXIAL BLOWER

• ASSEMBLED & TESTED

• READY FOR YOUR CARDS

• S9S5.00

VERYATTHACTIVEO EM. AUD OEAien DISCOUNTS AVAILABLE.

•■■ INFINITE INCORPORATEO

Celdimm Otir llih frar. B19 E, STRAWDRIDGE, MELBOURNE. FL 32901 - (305) 721 158B

Circle 234 on inquiry card.

Circle 299 on Inquiry card.

Circle 174 on inquiry card.

V

; B-\Ii's New

> ^ Toll-W

\ ^ubscriWi" \ W^A.T.S.\ine

\8d<J>-^58-54d5

To further iniprove service to our customers we have installed

a toll-free WATS line in tiur Peterborough, New HampsKire office. If you would\ike to order a subscription to BYTE, or if you have a question relateg to a BYTE subscription, yotraPte invited to\ call (800) 258-3i48»between \ ° 8:30 AM and 4: JO PM Easterny Time. This appliesUo ^lls fron/ [ within the continental WS o^lyt ^.

o We thank you arid, look

^ lorward to serving you. '

'SLSUiJLSLSUiJULSLSiJiSULSiSJLSULSLSJD

16K RAMS & RAM CONTROLLERS

16k X 1 DYNAMIC RAM MK4n6P3

• 2D0 NSEC ACCESS)375 NSEC CYCLE TIMES

• 16 PIN CERAMIC DEVICEITTL COMPATIBLE

• ALL CHIPS BUHNED IN 8 125°C AND FULLY TESTED, BOTH DYNAMICALLY AND STATICALLY

• PRICE (WITH DATA SHEETI:

• S68.00 IN OTY OF BITHAT'S SB.50 EACH

DYNAMIC MEMORY CONTROLLER MC3480L

• GENERATES RASICAS g REFRESH TIMING FOR 16K TO 64K BYTE MEMORIES

• PRICE WITH DATA SHEET); «13.95 EACH

MEMORY ADDRESS MUX/COUNTER MC3242AP

• MUX ADDRESS & REFRESH COUNTER FOR 16K TO . 64K BYTE MEMORIES

• PRICE IWITH DATA SHEETI; S 12.50 EACH

QUANTITY DISCOUNTS AVAILABLE ALL ORDERS POSTPAID. U.S. FUNDS ON INTERNATIONAL ORDERS, CHECK OR MONEY ORDER. VISAIBAIMC ALSO AC CEPTED. SEND ACCT. NO., EXPIRATION DATE, & INTERBANK NO. WITH SIGNED ORDER. CALIF. RESIDENTS PLEASE ADD 6% SALES TAX. PHONE ORDERS; 17141 633-4460.

MEASUREMENT SYSTEMS & CONTROLS, INC.

MEMORY DEVICES DIVISION 867 NORTH MAIN ST., ORANGE, CA 92668

6800 MICROPROCESSOR PARTS

(Brand New Limited Quantities)

M6800 CPU $8.95

M68S1 PIA $4.95

M6810 RAM $4.95

2708 EPROM (8K) $9.95

2716 EPROM (16K). . . . $24.95

Complete 6800 computer board kit w^lth M6800, M6821, M6810, 2708 EPROM, p.c. board, and power supply ready for operation on 115 VAC with full instructions (with 2716 EPROM, add $10.00) $49.95

ODS INC.

P.O. BOX 8346

Oaithersburg, MD 80760

Circle 217 on inquiry card.

Circle 286 on inquiry card.

w^|adw\nced ^/Products ^^,.^^

STATICX /RAM BOARDS,

THE FIRST TO OFFER PRIME PRODUCTS TO THE HOBBYIST AT FAIR PRICES NOW LOWERS PRICES EVEN FURTHER!

1. Proven QlJ3lity Factory tested products onlv, no retests or fallouts. Guaranteed money back. We stand behind our products.

1979 CATALOG NOW AVAILABLE.

Sena SI .00 for your copy of Ihe most complete catalog of computer products. A must for ttie serious computer user.

MICROPROCESSORS STATIC HAM HEAOQUARTEHS SOCKETS

S-100 32K(uses2114) >**'''%*•/

ASSEMBLED Kit ''/'A* P"

450n5. 599.00 450ns. 539.95

250ns. 699.95 250ns. 599.95

Bare Board 49.95 Bare Board w/all parts less mem. 99.95

S-1001 eK (uses 2114) KIT (exp. lo 32K)

ASSEfulBLED 450ns 279.00

450ns. 325.00 250ns. 299 00

250ns. 375.00

Bare Board 49.95

LOGOS ISK

ASSEIVIBLED

450 ns. 169.95 KIT 450ns. 125.95

250ns. 189.95 250ns. 149.96

Bare PC Board w/Dala $21.95 Now over 1 year successful field experience "Special Offer- Buy (4) SK 450ns. Kits S117.00

L^jS

FLOPPY DISK DRIVES

1. VISTA V-80fvllNIDISK FOR TRS-80

* 23% f^ore Storage Capaclty-40Tracks

* Faster Drive - ^ "\ Up to 8 Times Faster f aoa oo 1

2 Drive Cable Add S29.95 l"—'-"~/

4 Drive Cable Add S39.95 ^

2.VISTA V-200 IVIINI-FLOPPY SYSTEM

* 204K Byte Capacity * w/CPM, Basic"E"

* One Single Sided, ^-■—-s. Double Density Drive / V-200 \

* One Double Density y99S.00y Controller w/Case S P .'^ x^ ^

Add to your EXIDY, HORIZON, etc.

3. VISTA V-1000 FLOPPY DISK SYSTEM

* g) Sfiugart 800-R 8" Floppy Disks

* Controller Card. Cable. -^"""^ Case 8 PS. /V-1000\

* CPM & Basic "E", H 699.00/ Instructions & Manual ^ -^

4. MPI B51-5y-"._40tracl(S 279.00

5. Shugart SA400-5y<", 35 tracks.... 295.00

6. Siemens/GSI FDD100-8 8" 375.00

7. Stiugart 800/801R 8" 495.00

8. PERSCI Model 277 Dual 1196.00

EXPANDORAM MEMORY KITS

* Bank Selectable ♦ Uses 4115 or 4116 200 ns.

* Write Protect * Power 8VDC, ±16VDC

* Phantom • Lowest Cost/Bit Expando32Kit(4115) Expando64Kit(4116)

8I< $179.00 16K $248.95

16K $229.00 32K $389.00

24K $299.00 48K $469.00

32K $349.00 64K $565.00

IMS STATIC RAM BOARDS ^pP

• Memory Mapping * Low Power ft*

* Ptiantom * Assembled & tested Recommended by Alptiamicrosystems

250 ns^ ^50 ns.

8K Static $209.00 $189.66

16K Static $449.00 $399.00

32K Static $799.00 $699.00

ANADEX PRINTER

Model DP-8000 compact, impact, parallel or serial. Sprocket feed. 80 cols. 84 lines/min., bi-directional. New only $895.00

VERBATIM™ DISKETTES jytl

♦ 5V." Minidiskettes ♦ ot*^o Softsector, lOSector, 16Sector'^-<0\.^ $4.25 Each. 10/39.95 oO'^i'<«*

* 8" Standard Floppy Disks * >fef.*' Soft Sector. Hard Sector v> S4.50Each, 10/41.95

■Add 4.95 lor 10 Pack in Deluxe Disk Holder

MOTOROLA IXORCISIR COMPATIBLE

9600 MPU f^odule w/6802 CPU $495.00

9601 16 Slot Mother Board 175.00

9602CardCage{l9"RetmaRackMount) ...75.00

9603 8 Slot Mollier Board 100.00

96C4 Switclimode System Power Supply.... 250.00

9610 Utility Protolypina Board 36.00

9616 Quad 8K Eprom Module '**

9620 16 Ctiannel Parallel I/O Module.... 295.00 9622 Serial/Parallel 1/0 Combo "'

9626 8K Sialic 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 Chanriel Duplex Serial I/O 395.00

96103 32/32 1/0 Module 275.00

96702 32 Point Reed Relay Module 350.00

0000 BARI 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/EXPANDO TRS 80 16K-UPGRADE KIT

* 16K With Jumpers S Instructions

for either Level I or Level 11 $89.95

* 16K for Apple M Upgrade $89.95

Special: TRS80 Schematic $ 4.95

Expansion Interface Schematic $ 4.95

TRS so TO S-100

PET TO S-100 ADAPTER

Allows PetARS 80 to be interlaced to popular S-100 Bus.

Pet to S-100 Kit $189.95

Assembled $269,95

TRS 80 to S-100 HUH 8100 Kit .... $275.00 Assembled $355.00

KEYBOARD ASCII ENCODED

One time purchase of NEW Surplus keyboards. From the Singer Corporation. The keyboard features 128 -ASCII characters in a 63 key format. MOS encoder circuitry "N" key rollover, lighted shift lock, control, escape and repeat functions. Ltd Oly S3 KEY $S9.S5

UV "Eprom^' Eraser

Model UVs-1 IE $64.95

Holds 4 Eprom's at a time.

Backed by 45 years

expenence.

Model S-5ZT... $210.95

Professional Industrial Model

TARBELL FLOPPY INTERFACE

* Z80/a080 Si 00 Compatible * Uses CPM Assembled lor Shugan.. . SALE (230.00

Assembled Othef Drives S269.95

Kll «179.95

Bare Board $36,95 (Doc. Add S10.00)

Visia Double Density SVi" Controller

Assem $299-00

SD Versa FloDOV Kit S159 95

SD Vtvsa Floppy AssemDiGtt SIB9 95

Tarbel Cassette I/O Kit Sit 5.00

Sale * 1771-01 Floppy Chip S27.95

BYTE USER 8K EPROM BOARD

■k Power on Jump * Reset Jump

Assembled & Tested $94.95

Byteuser Kit 364.95

Bare PC Board $21.95

Special Offer: Buy 4 kits only S59.95 each

MR-8 8K w/1 K Ram $99,50

MR-16 16K w/1 K Ram $99.50

EPM-1 4K 1 702 $59.95

EPM-2 2708 or 2716 Eprom $69.95

Z-80/Z-80A/8080 CPU BOARD

* On board 270S * 2708 included (450ns.)

* Power on jump * completely socketed

Assembled and tested $185.00

Kit $129.95

Bare PC Board $ 34.95

* For 4MH2 Speed Add $15.00

8080A Kit $ 99.95

8080A Assembled SI 49.95

S-100 MOTHERBOARD SPECIAL

8 slot expandable w/9 conn.

reg $69.95 NOW $52.95

TARBELL FLOPPY CONTROLLER

Card assembled and tested for use with Shugart Drives S SALE PRICE only $229.00

ACOUSTIC MODEM

NOVATION CAT'"

0-300 Baud

Bell 103

Answer. Originate $198.00

ACOUSTIC COUPLER SPECIAL

AJ MODEL A30 SPECIAL PURCHASE OF SURPLUS UNITS AVAILABILITY LIMITED 329.95

DATA BOOKS • COMPUTER BOOKS

197eiCMafllaf . 19.95 Inter MCS BO Mariuil .7.96

NSCTTLDalfl 3.95 Inlal MCS 40 Manunl.. .4.96

NSCLInear 4 95 AMD S080A Manual.. . . 5.96

NSC Linear Aop NotesII 3 93 AMD Schottky Daletxwh. .4,B5 NSC CMOS 3 95 AMIMOS/LSIDtla .3.95

NSC Memory 3 95 Ul MOS/LSI Daia . 4 95

Iniel OalBDcwk . 4 95 Harris Analog Darabook 4.85

Intel MCS 85 Manual 7 50 Tl Linear Control Data . 3.95 •ALI • OftBORNI lOOKI ■ «ALX

nm%. tale

eOSOA Progmmniing. qXQ 7.75

6800 Programmino ffBQ 7.75

Z86 Programming, (TBO 7 75

Vol, I! Soma Real Microprocessor w/Birujer.. , 3&.00 27 50 Vot. Ill Some Fleal Support Devices w/Binder . . .204a 18,50

Intro 10 Micros Vol. til ... ?O«a.lB50

*ALK ■ OILmilUM COMPtmiN aOOKI • tALI

Undersiending Computers I^W. 7 95

BOeOMicrocumputer Eiperimenis TJrM. 11 95

Beginning BASIC »**. 8 95

Beginners Glossary 4 Guide frSfc 5 95

Peanut Buller A Jelly Guide to Compuleis. T-S*. 6 95

S080 Macnjne Language Programming . T^t. 6 95

Home CompulersVo* I Hardware T«fc 6 95

Horr>e Computer<t Vol II SotlurBie T»M 11 95

Z-80

Z-30A F-a (3650) 2650 CD 180?

eoaoA

B0a0A-4MHi SALE eo85

Booa-t

2901 2901A mS 9900JL

CPteoo

6502 6502A IM6100

6803P 8035 8755

8748.

t18.(

18.95 I6.d5 16 95 19 95 9 95 19 95 1B.Sfi 14 95 16.95 2495 49,9S 39 95 11 50 19.95 29 95 ., 16 95 24.93 17.50 49 95

SUPPORT DEVICES

AM9511 AT.Tfi Processc' S1 95 DC

AM 9511-1 300ni 245.0C

AM95'7 DMA Conrrom-i 7t 9;

3981 LZBOPlOl 3881 4<4MHij 3a82l2-aOCTCi 3082-1I4MHII 8206'74SI38 DecoOB' a2t2 8D.ll'0

a2M PriOLlylnl

8216 eu-jO'ivC' 8224 Clock Gon 8224-4 (4MHII 8226 Bus Drive. 8T26 BusDriuGi 8228 Sys Conirol 8238 Sys Com 8251 Prog I/O 8253 Int I.mer 8255 P'og f.'O 825? Piog DMA 8259 P'og int 927SCHT Conl'Oiief

8279 Prog Keybofl'd

68lO'l l28.eRAU

6820 PIA

6331 PIA

6838 Priority Inl

6334-1 512 .8 Enrom

6850 ACIA

6352 Sfcual AdapWr

6345 HD46505CHir"o

6360 Modem

6362 Modulator

6fl71A IGMMiOSC

6875

6880 Bus Dr-ver

MCe84a8

1821 SCO IK RAM

1832 SCO 256 "4 RAM

1824 CD 32. 8 RAM

1852 CD 8 Bit I O

1854 Uan

1856 CD I/O

1857 CO I/O 6520 PIA 6523 Mull 6530-003 eS30'003 6530004 6S30 005

3851 FaP'og Sio'c 3853 f8 Memor, I O

295

2 50 4.95 250

3 95 9 75 3 95 3 39 5.95 6 35 6 95

19 50 650 19.50 19 50 74 95 19 95

9 95 39 95 ■ 995 11 95 35 95

8 35 2 39

19 35 25.00 16 95

9 95 10 95 1095

8 95

8 95 7 50

9 25

DYNAMIC RAMS

416/4116 leXdBPm) 12.4

Spi 0(8 4163 . 89.9

dn58K116Pinl 8.9.

4050 4K . 1 lie Pinl 4 2

4060 4K I 1 [22 Pinl 4 9

4096 4K > 1 116 Pm) 39.

3104 4K « 1 |16Pin| " 4 7

4027 4K . 1 116 Pint 4 9

5361 195 1103 1.9

5262

5270

5280

5290 12 45

PROMS

2708 ^708-6

4 95

4008L 6605 6604 6002

27I6-5V 12V

2756 SV

6?0;iAO

5204 AO

tS834-1

1M StilO

«ALISa33 3SaS...

82SnSS12>8ITSl

82S12332>i8

82SI26 2S6i4

32S139 256x4(TS) .

62S130 512x4(OC)

NSC DM7578 33 «B .

59 95 40 00 29.95

.16.95

.2.50 .3 50

.3.50

. 6.50

2.95

CHARACTER QEN

2513001 l5V)UDpei

2513005 I5V1 Lower

2513ADM3 15VI Lower

MCM6571

MCM6571A

MCM6574

MCM6575

UARTS/USRTS

TRt6C2Bi5V 12VI

AV5I013I5V !2V1

AV51014A/1Sl*t3 14V.

AY51015A/1863(5VI

rMS6011 tSV. I2V1

IM6402

IM6403

3350 USRT

ie71B Asiros

tALITRt473B B.SS

BAUD RATE OEN

695 695 5 50 7 95

S95 9 95 24 95

KEYBOARD ENCODERS

AV5-?376 13 /5

Ava-riboo ":i 'f>

HD0165 9.95

74C933. .9 95

74C923 995

A/D CONVERTERS

8700 8 11.1 Binary 13 50

H701 lOtm Bin.iry V2Q0

1-24

25-99

too

3iL03 450ns

1.30

1.25

1.15

3iL02 25Dn5

1 55

145

1.15

1.10

3111

3.65

3 55

3112-1

2.85

2.65

2101-1

2 90

3.70

2 55

3114L-250nE

9.9S

2114L-3O0ns

B.95

7 95

6.45

3114L<4B0nB.

7 50

4.TB

4044/4041 300ns

995

7.95

4O44/4041 4a0na

7 50

675

4.TS

EMM4200A

9 75

8 75

796

EMM4402

725

6 25

EMM4a04

1250

1150

995

5101CE

r-ib

7 96

7 35

uOd4 to.42001

10 96

1025

9!5

AMD9'40 41

10 95

10 25

9 25

AMD9130 Jl

12 96

1196

10 ?5

FSC 460 46416KCCD Only »

8 95 Ear

not

P21 25 93435 i4f.n

1 7 95

7 35

7 25

6508 IK < 1 CMOS

7 95

7 95

7 25

6518 IK. 1 CMOS

7 95

7 95

7 35

8155l,'0*/nam 3

95

2147Lo*Power4K

Staiic 14

5ea

CHARGE COUPLED DEVICES |

16K ceo ■ First i,me

tiered Fa

child 460 CCD 1

leKUemoiYtnowyo

iCCD

lechnoiogv ai a reasonable o'ici

i7oageADoi>ca-I

tionnoie supplied with

eachtirde

Quant.i

iimi-ed)

$18.95 each (reg. 43.00)

CRYSTALS

Mlcroproceasor Tlmataaiei TV Oam«

Frequency

P>k:e

60MH1

184,1.' 4 as

.■i>MH/ SH5

6 5536

.'OlMH.- J95

10 0MH

4B5

20971h.'MMJ 5 65

UOMHi

4 35

,'4!i.-flMH; bab

14 31818

4 35

J'..;45.I^Mlt/ 150

180MH/

4 35

J CMH/ 4 95

ta 432MH/

5 95

4 191104MM/ ;i95

20 0MH;

4nlfiJ(lMH/ f.95

22 1184MM/

'.IIMH; 4 95

;'7 OMHy

5 95

■ mm 4 95

'35 0MHf

5 95

./l4.iWH.- 595

4B0MH?

5 95

100KC

1296

DISPLAYS/OPTO/LED'S

* TSKQMiHT • CALC * CLOCKS *

DL 704 iCC). DL 707 (CAj 300" Red . . 99

FND 357 (CCl 357 Red 99

FND 500/503 (CCl 500' Red . . 99

=ND507/5l0iCA( 500~Red 99

=ND 800/803 (CO 800'Red 1 75

FNDe07/810(CA( 800'Red 1 75

■;AN3062 SOO'Greeo t IS

HP5082-7731 (CA) 300" fled 99

9 Digd BubOle Mmi Calc. Display 99

9 Digit Pnnaplei Display .400" 99

gD-gil riuorescont ,300" 99

I^A1003 12V Aulo Clock Module 1 8.90

Bezel lor MA1003 w/Red Filter 4 95

MA1002ALED 13 lir. Clock Module 10-95

* HEX DISPLAYS * ENCODED DISPLAYS *

:iP 5082-7340 Red He-decimal iS.95

HP 5082-7300 Red Nymeric 14,95

TIL 306 Numc'ic w/Logic ft95

TIL 308 Numtwr w/Logic 896

TIL 309 Numtjor w/Logic.. 895

riL 311 HeiBdecimal 1395

• LID-B * OPTOISOLATERS *

LEDS Red. Yellow. Green 185. UCT 3 Photo XSTR HFE 350, 30V 4N25 Pholo XSTR HFE 350, 30V ...

4N33 Ptiolo Darlington 1,76

FPT llOBP'ioloXSTRFlalLense SALE4/I 00

ATTENTION KIM USERS

«IMSAI-eipansiontoS-100 .. 125.00 Kit/16500

KIMS110 KtM Connecic 5.75/pan

KIM 1 6502 Single Board Computer .. .179.00

KtM 1 Power Supply 59.95

KIM Memory Plus ■ (coosisls ol BK Ram, 6K271B Eorom. Programmer,I/O e1c.|.... 245,00 KtM SOnWARE

• F>toaso package (cassette) I2game3.... 18.95 ■ Help Editor package icassetle) 16.9S

• Help Mailing List pkg, |casEellel 16.95

• Help iniQ Retiival plig. (cassette) 1 B.B5

• Micfoctioss(casseiie) 18.95

• Microaid Assembty/Disassem/Edito', ,27.55

• MK^roflid Source Lisling (cassette! . ..27.95

• Tiny Basic lo'KIM loaper lapel.. 10 95

COMPUTER SPECIALS

HiPlol Plotter HiPlol DiQitiiei Emdy W/33K AoplC IIW/16K Compucolor II TEIPT20eil 0

M»o^

i'*^

Commodore F Soroc IO/120 ADM3AA3san Tetelype 43 Centronics PCenlrontfsS-'

UST

108500 795 00 1395 00 1195 00 1695 00 4995 00 5990 00 795 00 995 00 395 00 134900 495.00 595 00

SALE

899 00 735.00 119500 104500 159500 3995.00 5395 OC 765 00 89500 82900 1150 00 395 00 625 00

MONTHLY IC SPECIALS

LF13508 JFET Antoq Mutti 8 bil ICM7208 Seven Decade Cojntei ICM7307 Oscillaior Controller ICM7045 Precision StoWatch Timer ICL71073'jDiBitA/DlLEDl . , ICL82n Voltage Ralerence LM390 Battery OP. Audio Amp . LMi630Fii„o Detector

LM1850 Ground Fault IC LMIBOO Phase Lock Loop FM SlO LM1820 AM Radio DS3625 Dual Mos Sense IW\o

1333 Pram 6331-1 Prom UK50t4 Call 7414 1N LM2917 aT2e/8T2a 95H90 ..

J P.n W W 85

8P.nST 17

14 P.r, S T 20

16 Pin S T 23

iaP.r>ST 31

20PmST 34

93 2Z P.n S r 35

TEXTOOL ZERO

INSERTION FORCE

SOCKETS

16 Pin S 5.50 24 Pm

57,50

40 Pins 10 35

CONNECTORS

DB25P(RS233)

3 25

OB25S Female., .■

Hood . ...

Sei w/Hood. Sale., . .

22/44 W/W. SrT, KIM . ..

43/86 W/W S/T.MOT

eso

50/100 S-100 Connector w/w

50/100S100 Connector s/t

CTS D1P5WITCHES

CTS206-4 5175 CTS20e-6 51 95

CTS206-5 SI 75 CTS206-9 SI 95

CTS206-6 S1.75 CTS206-10 SI 9S CTS206-7 SI 75

LIVERMORE BASIC

OUR PRICE only

NAKED PC BOARDSAUi

2-80 CPU (ithacai. 80aOA CPU . 6K Stai« RAM iLogosi 16K Static RAM 121141 32K Static RAM (3114) Fiopoy I/O (Tartwtl) Cassette I/O (Tarbeiij 8K Epram (3708)., 1703 Eprom Board

3708/2716 Eprom (itnaca) 3708/2716 Etwom iWMC) Realtime Clock ACPProtQBd.|3MConn| Vector 6800 Proto ., Vector 8803 ll skjIMB ACP Eilender w/Conn Video tnlerface [SSM) Paraliet Inierface tSSMi 13 Slot MotherSoard (WMCI 32.95 95>oiMainerBoard(WMC) 2995 BSiot Mother (eipandable) 34.95

S34.95 34 95 2195

2195 49 95 3995 39 95 3195 30 OC 3495 .30 00 34 95 27.95 19.95 29 95 1595 27 95 27 95

WAVEFORM GENERATORS

HOjy Fiinclicn Gen MC4024 VCO LM566VCO ItR.iJOeFunct

. Ger>i'

525

FLOPPY DISK I/O

1771-01 8'*Miniiloory 27 95

uPd372 Nee Floppy 1781 OualFloooy 1791 Dual FTooBV

49 95 39 95 44,95

TV INTERFACES

29 MAR Modutalof.

850 8 95 3500

.35 00

ATTENTION PET USERS

BETSI-pel expansion lo SlOO

10500 Kil/160 00

PET Connector Kit. Includes 14) Conneclofs (or mamcv eipansion, IEEE 488 I/O, cassette I/O and

paraltel user port 7,95/set

Video Buffer

Iconveits to Std. Video). Peiunia (Music BoardI Combo (Video S Peiumal Beeper Isignais tape load)..

29 95 29 95 4995

.. 24 95

ATTN TRS 80 USERS

20/40 Pin Memory E»p

S7 95

I 89 95

395 00

1095

39 95

117900

1579 00

995.00

MicniP (same as Quick Printer)

... . 395 00

Caoletoo'u9inE>pans,ool/0 3900

Power Strip i6 ouHetsl

Surge SupprE

18K Memory AOd'On w/ins Visia V80 Mmitioppy 40 Track DOS Patch on Dish 4 Dnve Cable tor V60 Centronics 779 w/tractor Canironics701 Bidirect ANADEX DP8000

Crosolt Forlran on Disl

Electric Pencil on CasSBi Electric Pencil on Disk CP/M tor TRS on Disk . LiDra'y lOOicasieiiesi M.cro Chess, icasseiiel

33 95 32500

.9900 15000 15000 4995 1995

3'1 00

250

9 95 10147 KLRamT-TaM

'I 99 rjESOt 500

'^^^"^" ^"""■'' '°'i2? LF356HBIFBt..3/1.99

" III MCM14505 8.96

o, n^ '«89 3/1.89

-,.\^ 74107N 6/1,99

■J' 1 99 7S452N a/199

225 741M-14 10/1.99

2;l9 555CN 5/1.99

995 B58C"

AT3Bftar-l fi»col.ng OdBr-S 4TlBeiO-1 10G4rTi«^Cnhv 4 »V3»61 b Coki- Camfi

ATTENTION APPLE II USERS

Applpll w/HiC 16KU«|..mFloppy Drsk tl Floppy Disk It Fitmw.-u.. Card

ipmcnii FCM o> UHS. Ord

SIOO.IM add 5K htndling i

3/1,90 poii*9t. Orden over SIOO.OD add 2,5% I tiindling & pottaga. M*i((rchitg«/Bink. amtricard/COO accsplcd w/25% diiMul, Cilitoimi REiid«nliMMB%((ii. Foreign I Otdtri add B% handling All lurtt pr Sl045tX) factory tnlKj guiianlnd. Simt

H9 95 , ihlpntwiL Add .3& canU for 0«tt.

595 00 . BHait p..c.r>ij .iwy v.i.y ri.HH M..II Ol

*95(X) Piicinu AH pncing sulm-tt to Change I

P. 0. BOX 17329 Irvine, California 92713 Phone (714) 558-8813

TWX: 910 595-1565

Retail Store Open Mon. - Sat. Located at 1310 "B" E. Edinger, Santa Ana, CA 92705

BYTE August 1979 235

Whsfs NewP

SOFTWARE

Extended FORTRAN Preprocessor

X4 is an extended FORTRAN preprocessor for use in the Cromemco CDOS environment. X4 translates programs into standard FORTRAN from a readable, well structured language providing modern control structures for conditionals and iteration that virtually eliminate the need for statement numbers and GOTO statements. X4 also provides automatic file inclusion, a macro facility, mixed upper and lower case input, and the expansion of quoted strings into numeric character codes where desired. X4 is available with complete documentation on CDOS (CP/M) format 5 inch floppy disk for $.S9.95. Contact Modular Systems Inc, 4005 Seven Mile Ln, Pikesville MD 21208. Circle 531 on inquiry card.

Word Processor For TRS-80 Disk Operating System

Word-Ill is a text processor for the TRS-80 disk operating system. Requiring 16 K bytes of memory, it accepts lines of text interspersed with lines of format control information and then formats the text into a displayable document. Word-Ill features automatic line adjusting, margin right justification, page numbering, centering, title, page size, line width, indentation, and vertical spacing control. It is written in TRS-80 Disk BASIC for easy loading and expansion. Word-Ill is disk based with a size limited by disk storage. It uses the printer interface that already exists in the expansion module. Instructions are given to make software modification to other printers not using IPRINT command.

The price of Word-Ill is $39 complete with source code. For further information contact Micro Architect, 96 Dothan St, Arlington MA 021 74. Circle 532 on inquiry card.

Business Software Series in BASIC

The Standard Software Library is a series of books containing listings of programs written in BASIC with complete documentation. Each volume in the series is devoted to a single application. The first three volumes deal with accounting programs for small computers. Volume I, General Ledger enables a small business to set up a fully automated general ledger system with a complete chart of accounts. Included are programs for editing, sorting, merging and posting of transactions. A trial balance report is available in either summary or detail at the user's option. Income statement and balance sheet reports may be obtained at the close of each accounting period with both current and year to date totals and percentages.

6502 Robot Language

Written in 6502 machine language, Robot is an interactive programming language for the control of robots. The robot may be a Turtle, plotter, or video cursor. The heart of Robot is a command processing module designed to allow the user to design a language of personalized commands and command subroutines to suit a particular application.

The version of Robot that is being offered includes a command set and subroutine package for the control of a video robot. The subroutines are designed specifically for the TVT-6 video interface, but will work with any memory mapped video display and can be adapted by the user for varying formats. Robot takes slightly more than 1 K bytes of programmable memory and comes with a user manual and a completely commented source listing.

Robot is priced at $5 (add $3 for KIM-1 Hypertape cassette). For further information contact Michael Allen, 6025 Kimbark, Chicago IL 60637. This vendor also offers a 6502 tiny editor and assembler.

Circle 533 on inquiry card.

Free Monthly Review of Software Products Available

Users of Northstar BASIC can receive a free subscription to John Dvorak's Software Review. Each month the software review examines and reviews new software packages and reports on the relative merits and value of the product. At the moment the mailing list has focused on users of Northstar BASIC but plans are in the works to introduce a newsletter for users of CP/M oriented systems, TRS-80 and eventually Apple users. For a free subscription, write to J Dvorak, 704 Solano Av, Albany CA 94706. Circle 534 on inquiry card.

Volume 2, Accounts Receivable provides a fully automated system for dealing with customer accounts. Volume 3, Payroll enables a business to automate all of the normal payroll functions. All of the programs are written in a level of BASIC common to practically all of the current microprocessors and minicomputers. The modular nature of the programs and the accompanying documentation make it easy to revise the program to meet special user requirements.

The documentation includes an overall view of the program, a list of the variables used, a description of the required user inputs and an illustrative example with sample output reports. Annotated comments are contained in all of the programs.

Contact Creative Computer Consultants Inc, POB 2111, Norwalk CT 06852. Circle 535 on inquiry card.

Microcomputer Text Editor

Edit-80 is a random access, line oriented editor for 8080 and Z-80 systems. It provides almost instantaneous access to any record of the file, even if the available memory space is considerably smaller than the file being edited. In addition to the standard line commands to insert, delete, print or replace lines of text, Edit-80 offers many other features such as automatic line renumbering, global find and substitute, multiple page files and ability to read in files without Edit-80 line numbers. Edit-80's alter mode provides a complete set of intraline subcommands to edit portions of individual lines. With Edit80, the edited file is not written to disk until a write command is given, and the original file is always saved as back-up.

The Edit-80 Text Editing Package includes a file compare utility program called FILCOM which compares source or binary files and outputs differences between them.

Edit-80 runs on any 8080 or Z-80 system with the CP/M operating system. The price for the Edit-80 Text Editing Package is $120 and the manual is available for $10. For further information contact 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 property owner or manager and provides complete expense information for each building in payment-by-payment and summary format which includes tax ready totals for IRS filing. The building payee report displays expenses for any building, for all or selected payees. The utility summary report displays yearly, year-todate, or monthly average utility expenses for each building under the categories electric, gas, water, and trash. The tax totals report displays totals for each building under the categories utilities, insurance, repairs and property tax. Special accounts may be set up to track auto, general office management, advertising, telephone or any other expense type. Complete data inputing, editing, and sorting capabilities, all with extensive error recovery, provide easy data file maintanence. Expense data may be added to the file and the latest reports run at any time interval.

REAP is available on cassette with complete documentation for the TRS-80 Level I and II, Apple, and PET computers. Each 16 K bytes of user memory will handle 500 yearly expense payments. Larger data files are possible by using disk data storage. REAP is priced at $25. Documentation only with sample reports is $2.50. For further information contact Realty Software Co, 2045 Manhattan Av, Hermosa Beach CA 90254. Circle 537 on inquiry card.

236 August 1979 © BYTE Publications Inc

Venus 2001 Video Board

Assembled & Tested $259.95 •Complete Unit with 4K Memory and Video Driver on Eprom assembled and tested $339.95

kiti99

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 ASC1 1 characters 64 X 32 or 32 X 16 Screen format (Jumper Selectable). 7 by 11 Dot Matrix Characters.

American or European TV Compatible

(CRT Controls Programable) Dealer Inquiries Invited

32-K Static RAM $499.

• S-100 Plug-In • Kit includes P.C. board, all parts and assembly manual • Uses2114L, 450nS.

I.e. sockets - $20.00 P.C. BOARD BY S-100 CO.

16-K Static RAM $249.

• S-100 Plug-In Kit includes P.C. board, all parts and assembly manual. Uses2114L450nS.

Sockets-$10.00 Add $40.00 for 300 nS (4MHz) RAMS P.C. BOARD BY WAMECO

z-80 CPU $125.

• S-100 Plug-In Kit includes P.C. boards, all parts and assembly manual.

FEATURES: 2MHz operation • S-100 plug-in Power-on jump • On board provision for 2708 (optional at $12.95).

P.C. BOARD BY ITHACA AUDIO

ASCII Keyboard Kit $79.95

Assembled and Tested $95.95

• Single +5V Supply • Full ASCII Set (Upper and Lower Case) • Parallel Output • Positive and Negetave Strobe • 2 Key Rollover • 3 User Definable Keys • P.C. Board Size: 17-3/16" X 5" • Control Characters Molded on Key Caps • Optional Provision For Serial Output OPTIONAL: Metal Enclosure $27.50 • Edge Con. $2.00 • Sockets $4.00 • Upper Case Lock Switch $2.50 • Shift Register (For Serial Output) $2.00

Dealer Inquiries Invited

Apple II I/O Board Kit

Plugs into Slot of Mother Board

• 1 8 Bit Parallel Output Port (Expands to 3 Ports) • 1 Input Port • 15mA Output Current Sink or Source • Can be used for peripheral equipment such as printers, floppy discs, cassettes, paper tapes, etc. • 1 free software listing for SWTP PR40 or IBM selectric.

PRICE: 1 Input and 1 Output Port $49.00 1 Input and 3 Output Ports $64.00 Dealer Inquiries Invited

new! A DREAM COME TRUE!

lntroducing:30 MHZ DUAL TRACE PORTABLE SCOPE,^^^ ,

for an ^H'>'^ amazing ^^^«

• Dual trace 2-channel; separate, chopped or alternate modes. • 30 megahertz bandwidth. • External and internal trigger.

• Time base -0.05.Microseconds to0.2 SEC/div 21 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 rechargeable batteries and charger unit.

OPTIONAL: Leather case $45.00 • 10:1 probe $27.00 (2 for $49.00) ^^^

MS-SIS ^^^^

■^6 MHZ Dual Trace Portable Scope $399.

MS-1515 MHZ Single Trace Scope $299.

MODEL MS 230

SHIPPING $3.50 / California residents add 6% sales tax

ELECTRONICS WAREHOUSE Inc

15820 Hawthorne Boulevard

Lawndale, CA 90260

(213) 370-5551

What's New?

MISCELLANEOUS

New Fully Implemented Pascal System

The Independent Business System's Betasystem is a complete operating system that features the UCSD implementation of Pascal. The operating system contains a powerful screen oriented text editor, a fast Pascal compiler, file and library handling systems, linker, Z-80 assembler and more. This Z-80 microprocessor comes complete with 48 K byte programmable memory, dual quad density (630 K byte formatted) disk drives, serial and parallel ports, 60 character per second dot matrix printer with tractor feed, and intelligent terminal with addressable cursor. It sells for $5485. For further information contact Independent Business Systems Inc, 5476 Cleo Ct, Livermore CA 94550. Circle 635 on inquiry card.

16 K Byte Programmable Read Only Memory Board

Electronic Solutions 16 K byte programmable read only memory board is compatible with the Intel SBC 80 bus and single board computer. The PROM-16 accepts sixteen 2708 erasable

read only memories. The board has a convenient addressing scheme allowing jumper selection of the board base address at the beginning of any 4 K block. Any number of 1 K byte memory blocks may be deselected by jumper removal, thus freeing these 1 K byte memory addresses for the processor, programmable

memory, etc. When fully loaded with sixteen 2708 erasable read only memories, the board typically draws 0.31 A (from -1-5 V), 0.48 A (from -5 V), and 0.80 A (from -H2 V). For further information, contact Electronic Solutions Inc, 7969 Engineer Rd, San Diego CA 92111. Circle 558 on inquiry card.

BUILD YOUR OWN LOW COST MICRO-COMPUTER

POWER SUPPLIES

FOR S-100 BUS, FLOPPY DISCS, ETC.

POWER TRANSFORMERS (with mounting brackets)

ITEM NO.

USED IN KIT NO.

PRI. WINDING TAPS

SECONDARY WINDING OUTPUTS 2x8 Vac 2x14 Vac 2x24 Vac

SIZE Wx D X H

UNIT PRICE

T2 T3 T4

OV, 110V, 120V OV, 110V, 120V OV, 110V, 120V OV, 110V, 120 V

2x9A 2X12.5A

2x9A 2X4.5A

2X2.5A 2X3.5A 2X2.5A

2X2.5A 2X4.5A

33/4"x3ya"x3y8" 33/4" x4%"x 31/8" 3%"x4Wx3y8" 33/4"x35/8"x3y8"

19.95 25.95 27.95 19.95

SIZEWxDxH UNIT PRICE

4A 8A

12"x6"x4%" 12"x6"x4%" 14"x6"x4%" 10"x6"x4%"

46.95 54.95 62.95 44.95

POWER SUPPLY KITS (open frame with base plate, 3 hrs. assy, time)

ITEM USED for @-l-8Vdc @-8Vdc (S-H6Vdc (S-ieVdc @+28Vdc

KIT1 18 CARDS SOURCE 18A 2.5A 2.5A —

KIT 2 SYSTEM SOURCE 25A 3A 3A

KIT 3 DISC SYSTEM 18A 1A 2A 2A

KIT 4 DISC SOURCE 8A 1A

EACH KIT INCLUDES: TRANSFORMER, CAPACITORS, RESIS PLATE, MOUNTING PARTS AND INSTRUCTIONS.

REGULATED POWER SUPPLY "R2" assy. & tested, open frame, size: 9- (W) x 5" (D) x s- (H) $69.95

SPECS: -I-5V +1%, @ 5A, -H24V, +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.

BRIDGE RECTIFIERS, FUSE & HOLDER, TERMINAL BLOCK, BASE

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.

CaUFornia DiqJTAL

Post Office Box 3097 B • Torrance, California 90503

Sankyo Magnetic Card Reader

These Sankyo I/O units are capable of storing and retrieving over r400 characters of data in under two secords.

The Qeitability of this device lends itself to numerous applications. I As an Input reader to a computerized security system, the coniI puter has the ability of identifying the card holder and admitting 1 only those individuals who are authorized to enter the premises I during specified time frames. The device is also suitable for I maintaining customer information files, or any other ^plication I where small amounts of information must be quickly entered into I a data processing system. I Accepts 2" by 4" HP style mag-cards. (Similar to bank cards. )

Motorized feeder pulls the magnetic card across the four channel I read/write head. NEW surplus, original cost $2'00. Full documentation

CONNECTORS

(^ x"" 1

«fe

^

"^

v3v?o

your choice

DB25P

male plug&hood

or

0B25S female

^395

Qty. fe. male hd. 10 3.45 2.45 I.IS 2S 3.15 2.25 1.05 100 2.15 1.90 .95 500 2.25 1.(0 .85 IK 1.97 1.37 .73

Edge Connactors

lasal iolciir.12Sx.250 iMiii w/w .125ciiit«rt tllafr ialdertall.l40n» SPECIUS 22/44 Kim tytlit.ISO" 25/50 iiildir tab .156" 35/72 WidapMt »/w.l5e

GOLD 100 PIN

IMSAI/ALTAIR

•3.95 3/» 9.00 »4.95 3/«13.0O tS.95 3/>lS.0O

«1.95 3/15.00 41.09 3/42.00 41.95 3/45.00

100 Mother Board

HEXADECIMAL KEYBOARD

Maxl-Switch hexadecimal keyboards are dsalgned lor 1^3^495 microcompulor systems Ifial roquKe4-bll oulput _^3~c"

■ inslandardhBxcode. *"^ '

Each assembly consists of iGhemistl cally seated roed switctiea and TTL '"ono^ shot" debounce circuliry. Rellabte low tricllon acatal resin plurtgers are credited (or the smooth operation and long IKa ol Itila premium keyboard. Requires single +5 volt supply.

'24.88

KEYBOARD

iim oni nandoa numeric

rNnKL43

Evan If we havt to {iv« them iway, wcra going to ship mora 43's in 1979 than th« aggrafitt of all our competitors.

Model 43AAA TTL) EACH 3 10 25

»925. 875. 850. 825. _.,

RS-232 Interface^K" Add*79.oo %h^n*n ' J^J '^ I

DISKETTES

VfckrKci^itn APPLE/TRS-80 VSrOaTim. Mini - Soft sect

sector

Apple Owners:

TEN KEY

Data Entry Pad

^79.50

Plugs (iirectly into you Apple II. Allows you to enter numerics, punctuation and upper case alpha characters, all from the data entry pad. Sold assembled in walnut finished enclosure.

SPECiPL

APPLE II

IBK MEMOR'

COLOR • GRAPHICS* SOUND

$1024

PLUS SHIPPING

Ratall....

TENSill P--_laaal£ Certified Digital

-^^ SCOtCn CASSETTES

t] Shugart Associates

50 +•335

Diskettes

8 inch Soft (IBM) 8 inch 32 sector Mini Soft sec. Mini 10 sector Mini 16 sector

Won't drop. BIT!

CALIFORNIA INDUSTRIAL

is an

AutMriiad

Dealer of

Scotch Brand

Dataproducts

MEMDHV

SA800-R Floppy Disk Drive

The most cost effective way to store data processing information, when random recall is a prime factor. The SA800 is fully compatible with the IBM 3740 format. Write protect circuitry, low maintenance & Shugart quality.

»a^g.5o

CALIFORNIA DIGITAL

16BiT8086 S-100 CPU Board

Directly addresses one megabyte. 8 bit unidirectional & 16 bit bidirectional. 4K of static memory is supplied on board. $650. 00

DiqiCAST A/V-lOO

R.K MODULATOR

CAAAC^^'^S'^c^st both ^^f,*^audio and vidio on your existing color j television. Recommend- | ed for the Apple II.

TRS-SOSf APPLE II _ _

16k memory (8)4116's

• As you may be aware, publishers require advertisers to submit their ad copy 60 to 90 days prior to "press" __,

date. That much lead time in a volatile market place, such as memory circuits, makes it extremely difficult to project future cost and availability. To obtain the best pricing on memory we have made volume commitments to our suppliers, which in turn affords us the opportunity to sell these circuits at the most competitive prices. Please contact us if you if you have a demand for volume state of the art memory products.

STATIC 1-31 32-99 100-5C -999 1K+

21L02 450nS.

1.49

1.19

1.05

.95 .89

2IL02 250nS.

1.69

1.49

1.45

* *

2114 lKx4 450

6.95

6.50

6. 25

6.00 5.75

2114 lKi4 300

8.95

8.50

8.00

* *

4044 4Kxl 450

5.95

5.50

5.00

* +

4044 4Kxl 250

9.95

9.50

9.00

* *

4045 lKic4 450

8.95

8.50

8.00

* +

4045 lKx4 250

9.95

9.50

9.00

+ +

5257 low pow.

7.95

7.50

7.05

6.75 6.45

SPECIAL CIRCUITS

Z80A 4 MHz.

24. 95

AY5-10I3AUART 4.95

8080A CPU

9.95

Floppy Disc Controllers

8085

22. 50

WD 1771

single D. 39. 95

8086 Intel 16 bits

*

WD 1781

Double D 65.00

TMS9900 16 bits

49.95

WD1791 IVD3740 *

E PROMS 1-15 16-63 64+ 1702A 2K 4.95 4.50 4.00 2708 8K .').95 9.50 9.00 27165vl6K 49.95 45.00 42.50 2532 32K ♦ » »

PORTABLE DATA ENTRY SYSTEM

These used data terminals were originally designed for chain store inventory control and order entry systems. The operator enters the inventory control number, merchandise on hand and the unit price. After all pertinent data has been entered into the recorder, the main warehouee is telephoned, the handset is placed in the acoustic ccRipler and all the recorded information is transmitted back to the master computer. With a little imagination and one of these portable entry systems, you should be able to exchange programs and computer information with associates across the country. Ail 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 "0825 Cable

•Removable Entry Keyboard "Acoustical Coupler BShoulder starp

with LED Display "Battery Charger

Si8S .81.73 .66 I SPOT Minlaiun Toggles

7101 C&K ON-NONE ON

7107 jbt 0N-0FF(mnt.0N> I

7108 CK ON-<moment.ON>

Rocker JBT DPDT

Rotary 3P-4Pos.

Rotary 3P-6-P05.

Push B (N.OJ S.39ea. 4/$l

DIP Switch

■Full Documentation

DISCOUNT '

i

It's no: offen thai California Digital venturt'S into Ihe distribution of consumer products, but we have resently come accroaa product that appL-ars so unique that we just had to add il !■ product line. This is the System X-10 manufactured by the BSR turntable company. This space age system will remotely control any light or appliance in your home or office. Command signals are transmitted from the command console over your existing wiring. From your bed or easy chair you can cwitrol up lo 16 different electrical devices inside and outside your home. U se the System X-10 to control your stereo, television or any light fixture on the premises.

The basic sampler package comes complete with command console, battery operated ultrasonic controller, one each of the appliance module, lamp module £ind wall switch. The basic paclcage is priced at only $a8.50 Additional modules are available for S13. 95 each.

UJire UfQp Center

IC SOCKETS

plj

Wire wrip •1. 25 SO

Imr profile •a. 25 50

1

17-16 15

14

37<3G 35

18 17 16

1<

38 37 36

19 18 17

24

99 93 as

36 35 34

40

109 155 139

63 60 58

S2S.95 -y

50ft.

'.98

KYNARSi!^

500 1,000 11,000 59. SIS. SIOS.

(213)679-9001

Circle 39 on inquiry card.

All nit-rt:hmidisi- -snhl bv Cai i (nrni.i l)i^U;i, Sorry, no CCJD's. tJrdt.-r.s an- sliippiMi I Iv (.California resid^-nls add G%. Foreign ori Cirdurs over $2:t. when accotitpaniuil by pi ;u our ('xiJL'ns.'. Oibt'rwl.sf,-, pleii.sc adfl ^'.

7400 TTL

5N7400N SN74D1N SN740ZN SN7403N SN74CWN SN740SN SN7406N SN7407N SN7408N SN740M SN7410N SN7411N SN7412N SN7413N SN74I4N SN741SN SN7417N SN7420N SN7421N SM7423N SN7423N SN74Z5N SM7426N SN7427N SN742W SN743W SN743ZN SN7437N SN7438N SN7439N SN7440N SN7441N SM7442N SN7443N SN7444N SN744SN SN744eN &N7447N SN7448N SN7450N SN7451N SN7453N SN7454K SN74SSA SN7460N

CD4000 C04001 CD4002 CD4006 CD4007 CO4009 CD4010 C0401I CD4012 CD4D13 C04014 CD401S CO4016 CD40I7 CD40I8 C04019 CO4020 C0402t CD4022 CD4023 CO4024 CD4025 CD402e CO4027

74COO 74C02 74C04 74C08 74C10 74C14 74C20 74C30 74C42 74C48 74C73 74C74

7aMG 1.75

LM106H .99

LM300H .BO

LM30ICN;H .35

LM302H .75

IM304H 1.00

LM3D5H .60

LM307CN/H ,05

LM30eCN/H 1.00

LM309H MO

LM30E)K 1.25

LM310CN t.16

LM3l1N/ri .90

LM3t2H 1.9S

LM317K 650

LM3tSCN;T1 1.50

LM319r4 1.30

LM320K-5 1.35

LM320K-5,2 1.35

LM320K-1Z 1.35

LM320K-15 1.35

U>I320K-1B 1.35

IM320K-24 1.35 LH320T-5 LM320T-5.2 LM320T^

LH320T-IZ 1,25

LU320T-15 1.25

LM320T-18 1.2S

LM320T-24 1.25 LM323K-5 LM324N LM339N

LM340K-5 1.35

LH340K-6 1.3S

LM340K-8 1.35

LM340K-12 1.35

LM340K-15 1.35

1.25

5.«

74LS00 74LS01 74LS02 74LSQ3 74LS04 74LS0S 74L£08 74LS09 74lStO 74LS11 74LS13 74LS14 74LS15 74LS20 74LS21 741S22 74LS28 74LS27 741528 74LS30 74LS32 74LS37 74LS40 74LS42

,29

SN7470N SN7472N SN7473N GN7474N SN7475N SN7476N SN7479N SN74aQN SN74a2N SN7483N SN74B5N SN74B6N SN7489N SN7490N SN7491N SN7492N SN7493N SN7494N 5N7495N SN7496N SN7497N SN7410ON SN741D7N SN7410gN SN74116N SN74121N SN74122N SM74123N SN74125N SN74126N 5N74132N SN74I36N 5N74141K SN7414ZN SN74143N SN74144rj SN74t4SN SN74147N SN74148N SN74150N SN741G1N SN74152N SN741S3K SN74154N SN741S5N 5N741S6N SN741S7N

C/MOS

CD40Z8 C04029 C04030 CO4035 CD404D CD4041 CD4042 C04043 C04D44 CO4046 CD4047 CO404S CO4049 CD4D50 CO4051 C04053 CO4056 CEM059

74C00

74085 74CO0 74C93 74C95 74C107 74C151 74t:i54 74C157

74cieo

74£6I

2.90 3.00 2.15

LINEAR

LM340K-18 1.35

LM34DK-24 1.35

LM340T-5 1.25

LM340T-6 1.25

LM340T-8 1.25

LM34aT-12 1.25

LM34DM5 1.25

LM340T.ia 1.25

LM340T-24 1,25

LM358N 1.00

LM370N 1.95

LM373N 3.25

LM377N 4.00

LM3B0N 1.25

LM380CN .99

LM381N 1.79

LM382N 1.79

NES01N 8.00

NE510A E.OO

NE529A 4.95

NE531H;V 3.95

NE536T 6.00

NE540L E.OO

NE544N 4.95

NE550N 1.30

NE55SV .39

NE556N .99

NE560B 5.00

NE56tB 5,00

NE562B S.OO

NE5G5N/H 1.25

NE566CN 1.75

NE567V/H ,99

NE570N 4.95

LM703CH/H .69

LM709N/H .29

74LS00nL

74LS47

.89

74LS51

?fl

74LS54

.29

74LS55

,29

74LS73

45

74LS74

.45

74LS75

.59

74LS76

-45

74LS78

49

74LS83

.69

741565

ITS

74L£B6

.45

74LS90

.59

74LS92

,75

74LS93

,75

74LS95

.99

74L^

1.15

74LS107

.45

74LS109

.45

7415112

.45

74LS123

1.25

74LS125

.89

74LS132

,99

74LS136

.49

SN741&0N SN741Q1N 5N74162N SN74163N SN74164N SN741B5N SN74166N SN74167N SN74170N SN74172N SN74173N SN74174K SN74175N SN74176N SN74177N SN74179N SN741BOH 8N74181N SN74t62N SN74184N SN74185N &N7418eN SN7418SN SN74190N SN74191N SN74192N SN74193N SN74194N S(I74195N SN74196N SN74197N SN7419aN SN74199N 5N74S200 SN74251N SN74279N

SN74284N SN74265N

Sr474365N SN743e6N SN74367N SN7436SN SN743gON &N743g3N

CO4070

CO4071

CD4072

CD4076

CD40ei

C040e2

CD4033

CD4098

MC1440g

MC14410

MC14411

MCl44t9

MCI 4433

MCI 4506

MC14507

MCI 4562

MCI 4583

C0450e

C04510

CW5I1

CD4515

C0451B

CO4S20

C045B6

74Ct63 74C164 74C173 74C192 74C193 74C195 74C322 74C923 74C925 74C926 80C95 60C97

1,50

LM710N .79

LM711N 39

LM723N/H .55

LM733N 1.00

LM739N 1.19

LH741CN/H .35

LM741-14N .39

LM747N;H .79

LM748N/H .30

LM1310N 2.95

LU1458CN/H .50

MCHeSN 1.39

MC1489N 1.39

LMI496N .95

LM1556V 1.75

MC1741SCP 3,00

LM2inN 1.95

LM2901N 2.eS

LM3053M t.50

LM3065N 1.49 LM39a0N(3401).49

LM39n5N .89

LM3909N 1.25

MC555av ,59

LM75450N

7545ICN

7&452CN

75453CN

75454CN

75491CN

75492CN

75493N

75404Cf4

RC4136

RC4151

RC4194

RC41K

.49

7415138 74L5139 74L5151 74LS155 74LS157 74LS160 74LS161 74LS162 74LS1S3 74LS1B4 74LS17S 74LSI81 7415190 74LS19J 74LS1B2 74LS193 74LS104 74L519S 74L5253 7415257 74LS2B8 74L5260 74LS279 74LS3fl7 7415368 74LS670

ML

EXCITING NEW

JE600 HEXADECIMAL ENCODER KIT

KITS "'B""'

Thermometer Kit

'Pfrn

FEATURES:

• Full 8 bit lalctHHl output lot micioprocessor use

• 3 User Defifis keys witti orw tteing blsiatHe operation

• Detwuncfl atcuit piovided for all 19 kevs

• LED leadaul to verify entites

• Easy Interfacina wilt) standard 16 pin 1C connector

• Only -I-5VDC required tor aperalions FULL 8 BIT UTCHED OUTPUT—19 KEYBOARD

Tlie JE600 Encoder Keyboard provides two sepacate liexarlecimal digits produced from sequential key entries to allow direct programming loi 8 bit mlcroprocossoi or 8 bit memory circuits. Tliiee (3) aOdillonal keys are piovided lor usei operations witn one having a bistable output available. The outputs aie iaiched and monitored wnti LED readouts. Also included Is a key emry stiobe.

JE600 $59.95

■ Duel tenfori-fwltchlng control for Indoor/outdoor or dual monitoring • Continuous LED .8" ht. diiplav ■Ranoo: -ACF to 199^ / -40*^ to lOOt ■Accurocy: IT'nomlnal •Set for FahrenhGii or Celsius reading ■Sim. walnut case - AC wall adaptsr incl. ■sua: 3-V4"Hx6-5/8"Wx1-3/8"D

JE300 $39.95

DISCRETE LEDS

.200- dia. XC556R red XCSS6G green XC5MY yellow XC556C char

.200- dll. XC22R red

XC22G XC22V

green

yeJiow

.170- dll.

■i;si

4;S1

4/S1

S/S1 4/S1 4«1

MV108 red

.089-dll.

MV50 red 6fl

INFRA-RED LED

1/4"x1/4"x1/16-|lll 5f$1

.120- dll. XC2CI9R red XC20gG flreen XC209V yellow

.109- dll. XCS26R red XC526G green XC526Y yellow XC526C clear

.100- dia. Xcnifl red XC11IG green XCI11Y yellow XCI11C deer

5/S1 4/JI

4«1

5/S1 4/J1 4/11 4/J1

5/$1 4/J1 4/S1 4/S1

TIMEX T1001

LIQUID CRYSTAL OISPUV CLASS II

FIELD EFFECT

4 DIGIT - .5" CHARACTERS THREE ENUNCIATOHS 2.00' X 1.20" PACKAGE INCLUDES CONNECTOR

TIOOI-Trinsmistlve $7.95

TIOOIA'Rellecllvi 8.25

DISPLAY LEDS

TYPE

MAN1 MAN2 MAN 3 MAN4 MAN7G MAN7Y MAN 72 MAN 74 MAN 82 MAN 84 MAN 3620 MAN 3630 MAN 3640 MAN 4610 MAN4M0 MAN 4710 MAN 4730 MAN 4740 MAN 4810 MAN 4840 MAN 6610 MAN 6630 MAN 6640 MAN 6650 MAN 6660 MAN 6680 MAN 6710

POUBriY I

Common Anode-red 5 X 7 Dot MatrU-rod Common Cattiode-red Common Cadi ode-red Common Anode-green Common Anode-yellow Common Aiwde-red Common Cattiode-red Common Anode-yellow Common Cathode-yellow Common Anode-orange Common Anode-orange ± 1 Common Caliiode-oiange Common Anode-orange Common Cathode-orange Common Anode-red Common Anode-red * 1 Common Cathode-rsd Common Anode-ye How Common Cathode-yellow Common Anode-orange-D.D Common Anode-oianoe - 1 Common Cathode-orange-D,D. . Common Cathode-orange n. 1 . Common Anode-orange Common Cathode-orange Common Arode-fed-D,0.

TYPE

MAN G730

MAN 6740

MAN 6750

MAN 6760

MAN 67 SO

DL70I

01704

OL707

DL72B

0L741

OL746

DL747

0L749

DL750

DL33B

FND70

FN035B

FND359

FNDS03

FND5a7

5082-7730

HDSP-3400

HDSP-3403

5062-7300

5082-7302

5082-7304

5062-7340

POLARITY

Common Anode-red 2: 1 Common Cathode - red-D.D. Common Cathode-red s \ Common Anode-red Common Cathode-red Common Anode-red = 1 Common Cathode-red Common Anode-red Common Cathode-rsd Common Anode-ted Common Anode-red ii 1 Common Anode-ted Common Camode-red * 1 Common Cathode-red Common Cathode-red Common Calhode Common Calhode ± 1 Common Cathode Common C3inode(FN0500) Common Anode {FND510) Common Anode-red Common Anode-red Common Calhode red 4x7sol. Otgii-RHOP 4 X 7 SqI Dlglt-LHDP Oveirange Character (:r1) 4 X 7 Sgl. Dioll-Hexadedrrul

RCA LINEAR

CA3013T

CA2023T CA3035T CA3039T CA304eN CA3a59N CA3060N CA308OT CA30S1N

M5 CA30e2N

2.56 CA30e3N

2.48 CA3086N

1,35 CA3089N

1.30 CA3130T

3.25 CA31407

3,25 CA3160T

,85 CA3401N

2,00 CA36D0N

3,50

a pin LP .117

14 (tin LP ,20

16 pin LP .22

18 pin LP .29

20 pin LP .34

14 pin ST $.27

16 pin ST .30

16 pin ST .35

24 pin ST .49

IC 25-49

CALCULATOR CHIPS/DRIVERS

MM5725

S2.95

MM5738

2,95

0M8864

2.00

DM8865

1,00

0M8887

.75

DMBBe9

,75

9374 7 seg.

C,A LED driver

150

CLOCK CHIPS

MOTOR

MM5309

S4,95

MC14QaL7

MM5311

4.95

MC1408L6

Mf,153l2

4.95

MC143gL

MM53I4

4.95

MC3022P

MMS3I6

6,95

MC3061P

MM53ie

9,95

MC4016(74416]

MM5369

2.95

MC4024P

MM5387n99eA

4.95

HC4D40P

MM5S41

9,95

MC4044P

$.30

SplnSG

14plnSQ IfipfnSG

IB pin SG ,s

e pin WW t,3'

10 pin WW .4!

14 pin WW .3!

16 pin WW .4:

IB pin WW .71

SOLOEHTAIL — LOW PROFILE (TIN) SOCKETS

50-100 ' 1-24

22 pin LP ? .37

24 pin LP .38

25 pin LP .45 36 pin LP .60

SOLDERTAIL STANDARD (TIN) « P*" LP 63

28 pin ST S ,99

36 pin ST 1.39

40 pin ST 1.59

SOLDERTAJL STANDARD (GOLD)

24 pin SG S .?0

ZepinSG 1.10 36pinSG IBS 40pinSG 1-75

WIRE WRAP SOCKETS (GOLD) LEVEL #3

22 pin WW S .95 24 pin WW 1.05 28 pin WW 1 40 36pinWW 159 40 pin WW 1.75

1/4 WAH RESISTOR ASSORTMENTS - 5%

1.2K 3JK

I50K 5 ea. 390K

to OHM 12 OHM IS OHM t8 OHM 22 OHM

27 OHM J3 0HM 39 OHM 47 OHM 56 OHM

68 OHM a? OHM 100 OHM 120 OHM 150 OHM

180 OHM 220 OHM 270 OHM 330 OHM 390 OHM

170 OHM 560 OHM 680 OHM 820 OHM IK

N PCS $1.75

80 PCS 1.75

50 PCS 1.75

50 PCS 1.75

BO PCS 1.75

60 PCS 1.75

60 PCS 1.75 ASST. BR lncludesResistQrAssortments1-7(350PCS.) $9.95 ea.

1,5K

3.9K

180K 470K

l.BK 4.7K

220K 560K

t.5M 3.9M

2.2K

5.6K

100K 270K

2.7K

I2UK 330K a70K 2.2M 5.6M

$10.00 Min. Order - U.S. Funds Only Spec Shesti - 25^

Csltf. Residents Add 6% Sales Tax 1979 CaUlog Available-Send 41^ stamp

Pottaae—Add SXpIusSI Insurance (It desired)

PHONE

ORDERS

WELCOME

(415) 592-B097

';979CATAtO^

ameco

ELECTRONICS

MAIL ORDER ELECTRONICS - WORLDWIDE

1021 HOWARO AVENUE, SAN CARLOS. CA 94070 ADVERTISED PRICES GOOD THRU AUGUST

Ay-5-9100

Ay-5-9200

AY-S-9500

AV-5-2376

HD01SS

74C922

TELEPHONE/KEYBOARD CHIPS

Push Biftlon Tel«prione Oiallflr

Repertory Dialler

CMOS Cbck Generator

Keyboard Encoder (68 l(eys)

KayboanJ Encoder {t6 ItBysj

Keyttoard Enrodar (16 treys)

t14.9S 14.95 4.95 14.95 7.9S 5.95

ICM7CM5 tCM7205 ICM7267 ICM7208 ICM72a9

ICM CHIPS

CMOS Precision Tlmar CMOS LED Slopwalch/Timer OsdIIalor Controller Seven Der^ade Counter Clock Generator

24.95 19.95

7.50 19.95

8.95

NMOS READ ONLY MEMORIES

MCM6S71 128 X 9 X 7 ASCII Stiltled with Greek 13.50

MCMe574 12S X 9 X 7 Math Symbol S Pictures 13.50

MCMS575 126 X 9 X 7 Alphmumeric Contrt>l 13.50

Character Generator

MISCELUINEDUS

TL074CN Quad Low Noise bl-lst Op Amp 2.49

TL494CN Svvllctllng Regulator 4.49

TL496CP Single Switchlno Regulator 1.75

11C90 Divldo 10/11 Prescaler 19.95

95H90 Hl-SpeedOiviile 10/11 Prescaler 11.95

4N33 Photo-Darllnoton Opto-lsolator 3.95

MK50240 Top Octave Freo. Generator 17.50

OS0026CH SUhz 2-pnaso MOS dock driver 3.75

TIL306 .27-red num. display w/integ. kigic chip 10.50

MM5320 TV Camera Sync. Generator 14.95

MM5330 4ft Digit DPM Logic Block (Spec'iall 3.95

LD110/111 314 Digit Am Converter Set 25.00/set

UTRONIX ISO-UT 1

Photo Transistor Opto-lsolator (Same as MCT 2 or 4N2S)

2/990

SN 76477

SOUND GENERATOR Generates Complex Sounds Low Power - Programmable

3.95 each

TV OAME CHIP AND CRYSTAL

AV-3-8500'1 and 2.01 MHZ Crystal (Chip i Crystal .. -^ / t

Includes scate display. 6 games and select angles, etc.,7. 95/S6t

$8.40 4.40 4.40 1.55

XR205 XR2ia XR216 XR320

XR-L555 1.50

XR555 .39

XR556 .99

XRS67CP .99

XR567CT 1.25

XR1310P 1.30

XR1468CN 3.85

XR148S 1.39

XR1489 1.39

EXAR

JEZ206KA 14.95 JE2206KB 19.35 xniSOO 3.20 XR2206 4.40 XR2207 3.85 XR2208 5.20 XR2209 1.75 XR221t 5.25 XR2212 4.35 XR2240 3.45

XR2242CP 1.50 XR2264 4.25

XR2SS6 XR2567 XH3403 XR4136 Xfl4151 XFI4194 XR4202 XH4212 XR455S XR4739 XR4741

3.20 2.99 1.25 1.25 2.85 4.96 3.60 2.05 .75 1.15 1.47

TYPE 1N746 1N751 1N75a IN7S3

in;w

1N757

1N759 m959 1N96S 1NS232 1N5234 1NS235 1N5236 1N524Z tN5245 1N4S6 IN458 1N485A IN4001

DIODES

win w

3.3 400II1

5 t 400m

5.6 400(7)

6,2 400m

6.8 400in

9,0 400m

12.0 400m

8.2 400m

15 400m

S,B SOOm

6.2 500m

6,6 500m

7.5 500m

12 500m

15 500m

IBO 10m 50 PIV 1 AMP

PRICE

4/1.00 4/1.00 4/1 00 4/1.00 4/1.00 4/1.00 4/1.00 4/1.00 4/1.00 28 28

6/100

6/1.00 5/1.00 12/1.00

TYPE 1N4002 1N4003 IM40O4

1N40(» 1N40C6 1N4D07 1N3600 IN4148 1N4154 1N4305 1N4734 irH735 IN4736 1N4738 1N4742 1N4744 1N11B3 1Nt1S4 1N1185 1N11B6 INUSa

VOLTS W 100 PIV 1 AMP ZOO PIV 1 AMP 400 PIV 1 AMP

600 PIV 1 AMP BOO PIV 1 AMP 1000 PIV 1 AMP 50 200m 75 10m

35

10m

PWCE 12/1,00 12/1.00 12/t 00 10/1,00 10/1,00 10/1.00

6/t 00 15/1,00 12/1.00 1S/t,00 26 28

)w

12 IS

SO PIV 35 AMP 100 PIV 35 AMP

ISO PIV 35 AMP 200 PIV 35 AMP 400 PIV 35 AMP

SCR AND FW BRIDGE RECTIFIERS

C36D 15A$400V SCH{2N1849)

C38M ^ (a 600V SCR

2N232B I.BACQ' 300V SCR

MDA 980-1 yUdbCTJ fW BRIDGE fttC

MDA 980-3 12A#200V FW BRIDGE R£C,

SI .05 1.»

ClOGBt MPSA05

MPSA06

TIS97

TI598

40409

40410 .

40673

2N918

2N2219A

2N2221A

2N2222A

PN2222 PlasllC

2N2369

2N2369A

MPS2369

2N2484

2N2006

2N2907

PN2907 Plastic

2N2925

MJE2955

2H3053

THANSI^TbRS

5/1.00 6/1,00 6/1,00

4/1,00 2/1,00 4/1 00 5/1,00 7/1.00 5/1,00 4/1.00 5/1,00 4/1.00 4/1,00 5/1.00 7/1.00 5/1.00 125 2/100

2N3055

MJE3055

2N33g2

2N3398

PN3567

PN3S68

PN3569

MPS3638A

MPS3702

2N3704

MPS3704

2N3705

MPS3705

2N3706

MPS3706

2K3707

2N3711

2N3724A

aN3725A

2N3772

2143823

2H39Q3

CAPACITOR

1,00 5/1.00 5/1.00 3/1.00 4/100 4/1.00 5/1,00 5/1,00 5/1.00 5/1,00 5/1.00 5/t.OO S/I.OO 5/1,00 5/100 5/1.00 .65

j;uo_

2N3904 2M3905 2N3906 2IH013 2N4t23 PN4249 PN4250 2N4400 2N4401 2N4402 2N4403 2N4409 2NSa86 2NS087 2N5088 2fJS089 2N512g PN5134 PK513B 2NS13g 2NS2I0 2N544g

4/1,00 4/1,00

4/1,00 3/1,00 6/t, 00 4/1.00 4/1.00 4/t.OO 4/1.00 4/1,00 4/1.00 6/1,00 4/1,00 4/t.OO 4/1,00 4/1,00 5/1.00 S/I.OO S/I.OO 5/1,00 S/I.OO 3/1,00

22 pi

.05

04

47 p(

.05

04

100 pi

.05

04

220 pf

,05

04

470 Dt

.05

(14

lOVO:

.OOlmt

.12

in

.0022

,12

,10

.0047mf

.12

10

.Olrnl

.12

.10

,28

.v:i

.I5/35V

.28

?,i

,22/35V

.28

?.T

,33/35V

,2S

?3

.47/35V

.28

,?3

.6a/35V

.28

.?A

1,0/3SV

,28

.23

10-9? 100.04

SO VOLT CERAMIC PflRKICD DISC CAPACITORS U U 11 ll E. 11

,00I;iF .0047^f .Ol^f -022^F

.Wuf

I .V-t .ViiJ .l/iT

100 VOIT MTUR RLM CAPACtTORS

-022m( ,047mr

'4"^

..V ,«. .22ml ^33

20% DIPPED TANTALUMS I80LI01 CAPACITORS

•' I,5/35V ,30

2,2/2SV ,31 3,3/25V 31

4,7/2SV ,32

6,8/25V ,36

15/25V 63

HIHIAnjH? ALUMuiini ELECTROtmC CAPACITOHS

,47/50V

1,0/SOV

3,3/50V

4,7/2SV

10/25V

10/50V

22/25V

22/50V

47/25V

47/50V

100/25V

100/50V

220/25V

220/50V

470/25V

1000/16V

2200/16V

AxlilLwd

-IS .13 " .14 .12 .13 .13 .14

.47/25V .47/50V 1.0/16V 1.0/2SV 1.0/50V 4.7/16V 4,7/25V 4,7/50V I0/16V 10/25V 10/SOV 47/SOV 100/16V 100/25V 100/SOV 220/16V 470/25V

RiiHil UmI

240 BYTE August 1979

Circle 200 on inquiry card.

|The Incredible Pennywhistle 103"

Transistor Checker

— Completely Assembled — — Battery Operated —

The ASI Transistor Checker iscapable of checking a wide range of transistor types, either "in circuit" or QUI of circuit. To operate, simply plug the transistor to be checked into the front panel socket, or connect it with the alligator clip test leads provided. The unit safety and automaticallv Identifies low, medium and highpower PNP and NPN transistors. Size: 3*i" x 6%" x 2" "C" cell battery not Included,

Trans-Check S29.95 ea.

Custom Cables & Jumpers

Part No.

DB25P-4.P DB25P-4.S DB25S-'1-S

DB 25 Series Cables

Cable Length Connectors Price

4 R 2-DP25P S15.95ea,

4 Fl 1-DP25P/1-25S $16,95 ea.

4 11 2-DP25S S17.95ea. Dip Jumpers

DJ14-1 111. 1.14 Pin $1.59 ea.

0J16-1 111. 1-16 Pin 1.79 ea.

DJ24-1 1 n. 1-24 Pin 2.79 ea.

DJ14-1-14 lit. 2-14 Pin 2.79 ea.

DJ16-1-16 111. 2-16 Pin 3.19 ea.

DJ24-1-24 1 II 2-24 Pin 4.95 ea. ForCuslomCablBSiJunipBrejSMjAME^^

CONNECTORS

25 Pin-D Submlniature

DB2SP (as piclured) PLUG (Meets RS232) S2.95

D825S SOCKET (Meets RS232) S3.50

DB51226-1 Cable Cover (or DB25P or DB25S $1.75

PRINTED CIRCUIT EDGE-CARD

1S6 Spadng-rin-OouDk! aead-Dul — Siluracied Contacts — Fils 054 to 070 P.C Caids

15/30 PINS (SoliJer Eyelet) $1.95

IS/36 PINS (Solder Eyelet) $2.49

22/44 PINS (SoWer Eyelet) $2.95

50/100 (.100 Spacing) PINS (Wire Wrap) $6.95

50/100 (.125 Spacing) PINS (Wire Wrap) R6ai-1$6.95

4-Diglt Clock Kit

• Bright .357" ht. red display

• Sequential flashing colon

• \2 or 2^ hour ooeration

• Extruded aluminum case (Dlack)

• Pressure switches for hours, minutes & fiold function;

• mciudGs all components, case and wall transformer

• Size: 3i« X IV4 X IV4

JE730 $14.95

Jumbo 6-Digit Clock Kit

• Four .530"ht. and two .300"ht. common anode displays

• Uses MM53M 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 transformer

• Si;e: 6«. X SVe x IV*

JE747 $29.95

JE701

• Bright .300 ht. comm. cathode display

• Uses MM5314 clock chip

• Switches for hours, minutes and hold modes

• Mrs. easily viewable to 20 ft.

• Simulated walnut case

• 115 VAC operation

• 12 or 24 hr. operation onents, case &

wall transfori • Size; 6W" x 3-1/8"

IW

6-Digit Clock Kit $19.95

EEMOTE CONTROL TRANSMITTER & RECEIVER

$19.98

V:

Digital Stopwatch Kit

• Use Intersil 7205 Chip

• Plated thru double-sided P.C. Board

• LED display (red)

■ Times to 59 min. 59.59 sec. with auto reset

■ Quartz crystal controlled

• Three stopwatches in one: single event, split (cummulfltlve)i taylor {sequential liming) Uses 3 penlite batteries

•Size: 1.5" K 2.15" x .90"

JE900 $39.95

IVIICROPROCESSOR COMPONENTS

-808IU/S080A SUPPORT DEVICESCPU

8-Bit InpJt/OuipuI

Priority Inlerriipl Conirol

Bl-DirecUonal Bus Driver

Clack Gsneraior/Drrver

Bus Driver

Systam Conirol 16r/Bus Drfvef

System Controller

Prog. Comm. 1/0 {USAflTl

Prog Inlflfval Timer

Prog Periph. 1/0 (PPI)

Prog. DMA Contfoi

Prog. IrilBrrupl Control —BBOO/eim SOPPOHT DEVICES—

MPU

UPU witn Clock and Ram

tSSXB Static Ram

Pertph. Inter. Adapl(MC6e20j

Priority Inlerrupt Controlter

1024XS Bit ROM (UC68A30-BI

Asynchronous Comm. Adapter

Synchronous Serial Data Adapt.

0-600 t>ps DiQital MODEM

2400 Dps Modulator

Quad 3-State Bus Trans. [MC8T26)

-MICROPHOCEtiSOH MANUALS

M-ZSO User Manual

M-COP1B02 User Manual M-2650 Usfir Manual

$7.50 7.50 5,00

-nOM'8

2513(2140} Character Gener3lor(up|ier case)

2513(3021) Character Gene rat or (lower case)

2516 Characler Generator

MM5230N 2048-Blt Head Onty Memory

19.95 9.95 10.95

1101 1103

9,95 12-95 14.95

MICROPROCESSOR CHIPS—MISCELUNEOUS

780{780C) CPU S19.9S

ZeOA(780-1) CPU 24.95

CDP1802 CPU 19,95

2BS0 MPU 19.95

6502 CPU 11.95

8035 8-Bit MPU w/clot*, RAM, 1/0 lines 19-95

P8085 CPU 19.95

TMS9900JL le-Bit MPU w/haiflwara, multipfy

S divide 49,95 SHIFT REGISTERS

2101(6101)

2102

21L02

2111(8111)

2112

2114

2H4L

2114-3

2114L-3

StOl

5280/2107

7489

74S20fl

93421

UP04t4

(MK4027) UPD416

(MK4116) TMS4044.

4SNL TMS4045 2117

256X1

1024X1

256X4

1024X1

1024X1

256X4

256X4

1024X4

1024X4

1024X4 '

1024X4

256X4

4096X1

16X4

256X1

256X1

4K

MM500H

MM503H

MM504H

MM506H

UM510H

MM5016H

2504T

2518

2522

2524

2525

2527

2528

2529

2532

2533

3341

74LS670

Dual 25 Sit Dynamic Dual 50 3it Dynamic Dual t6 3>l Static Dual 100 Bit Static Dual 64 Sit Accumulator 500/512 Bil Dynamic 1024 Dynamic Hex 32 Bil Sialic Dual 132 Bit Static 512 Sialic 1024 Dynamic Dual 256 Bit Static Dual 250 Static Dual 240 Bit Static Quad BO Bit Static 1024 Static Filo

S.50 MM5262

Dynamic Static Static Static Static Static MOS Static 450nG Static 450ns low power ' Static 300ns Static 300ns tow power Static Dynamic Static

Static Tristate Sialic Dynamic 16 pin

Dynamic 16 pin

' Static

Sialic

Dynamic 350ns (house marked) Dynamic

4.95 2.95

4.95

9,95 14.95

I702A

2716INTEL

TMS2516

(2716)

TMS2532

2708

2716 T.I

A-Y-5-1013 30KBAUD

"Requires 3 vi 5203 2WB

6301il(7611) 1024 6330-1(7602) 256 82S23 32X8

825115 4096

a2SI23 32X8

74166 512

74168 256

74S2B7 1024

— PROM'S

fAMOS EPROM EPROH IS single +5V power supply EPflOM EPROM EPROM

S5.95 59.95 49.95

-5V, -t-SV, FAMOS

Trislate Bipolar Open C Bipolar Open Collector Bipolar TristalB

TTL Open Collector TTL Open Colledoi Static

■12V

2,95 3.95 19-95 3.95

CONTINENTAL SPECIALTIES

Ptoto Board 203

^75.00

Modal Numliaf

PB'6 PB-IDO PB-101

LlWxH

(Incheil

6,0)14 5x1.4

6.0 « 4.5x1.4

6.0x4,5x1.4

o Board 203/*

nlurti a\ llif Pe203 plui

liDWUf (uppiv lleiihiliiv,

\% Rigulllid SVQC lupplr

olicitioniiiPBiaS). Hn

.H ii.nK upi'iK 'ISVOC ind -tS

\m VOC D.SA lupphn. uih w.in

inttiniilv ind indFftndtnlly idiuii.

ibit aulpul vsliagi. Rippit ind nsiit

ol • ind -15V lupplitt. tOmV il

a.2bA.

9124.95

LxWiH (Inches!

Modsl

Humbar

PB-102 7.0x4,5x1,4

Pe-103 9.0x6,0x1,4

PB-1B4 9.8 X 8.0 X 1,4

S44.9S SS4.9S

THE SINCLAIR PDM35

DC VdIIi (4 ranges)

Range ImVto lOOOV.

Accuracy of reading 1.0%:;: 1 count.

Note; lOMIl mpul impedance,

AC Volli|4a Ili-SkHi)

Range IV to 500 V.

Accuracy ol reading 1.0%- 2 counts.

DC Current (6 ranges}

Range 1 n\ to 200 mA.

Accuracy ot reading 1.0%;1 count.

fJolfl Man. resolution 0.1 n.A

Retlstance (5 langei)

Range Hi lo 20 Mil.

Accuracy Dl rearting: 1.5%^ 1 count

Also provides 5 junction-test ranges.

Oimentioni: 6 m x 3 m x 1 Vi in

Weight: 6'.^ oz

Power Supply: 9 V battery or

Sinclair AC adapter (Battery not inci,)

Socliali: Standard 4mm tar

resilient plugs.

carrying wallet

POM35: Digital IVIultimeter . . . $59.95

(completely assembled)

PDM-AC:n7V AC Adapter . . . 6.95

PDM-DP:

Deluxe padded carrying case. . . 6.95

JE200

^

JE200 $14.95

5V-1 AMP POWER SUPPLY

•Uses LM309K *Heat sink provided *PC Board construction •Provides a solid 1 amp

@ 5 volts •Can supply up to ±5V,

19V and ±12V with

JE205 Adapter • I n eludes components,

hardware & instructions *Size: 3'/4"x5"x2"H

100 MHz 8-Dlgit Counter

• 20 Hz-100 MHz flange ■ Four power sauces, i.e,

■ .B" LED Display batlBries. 110 or 220V with

• Crystal-con! rolled timebas^ cliarger 12V wllh auic

■ Fully Automatic lighter adapter and external

• Portable — completely 7.2-10V power supply

sell contained MAX-100 CIO^ QR

• Size — 1 75- X 7.3B- gH OH. »0

ACCESSORIES FOR MAX 100:

Mobili Chargar Ellminilor

use power Irom car battery Modal 100 — CLA S3.95 Chirgir/ElimlnitDr

use no V AC Model 100 — CAI IS.9S

REGULATED POWER SUPPLY^

JE205

ADAPTER BOARD -Adaptsto JE200±5V,±9Vand±12V •DC/DC converter w/ -^5\/ input •Toriodal hi-speed switching XMFR ■Short circ. protection •PC Brd. construction •PiSSV-back to JE200 board •Size:3%"x2"x9/16"h

JE205 $12.95

S10.00 Min. Order - U.S. Funds Only Spec Sheets - 25^

Calif. Residents Add 6% Sales Tax 1979 Catalog Availabler Send41^stamp

Postege —Add 5% plus$1 Insurance (if desired!

FHEE

fi979 catalog;

Jameco nssmnm

PHONE

ORDERS

WELCOME

(415) 592-8097

MAfL ORDER ELECTRONICS - WORLDWIDE

1021 HOWARD AVENUE. SAN CARLOS. CA 94070 ADVERTISED PRICES GOOD THRU AUGUST

$139.95

Kll Only

The PinnywhltHe 103 is capable of recording data lo and from audio tapi without

critical speed requirements 'or the recorder and il is able to communicate directly with

another modern and terminal tor telephone "hamming" and communications. In

addition. 11 is free ol critical adjustments and is buili with non-precislon. readily available

parts.

DiU Tfanimlitlon Malhod Frequency-Shift Keying, lull-duplex (hall-duplex

seleclable).

MMlmum Data Rata 303 Baud.

Data Formal Asynchronous Serial (return to mark level required

belween each chaiader). Rflcalvs Chinnal Fraijuanclai.. .20?5 Hz lor space; 2225 Hz tor marti. Tiantmll Ctiannal FraquendBi , .Switch selectable: Low (normal) ^ 1070 space,

1270 mart; High = 025 space. 2225 mark.

Recelva Senilllvlty ~46dbm accousiically coupled.

Tram mil Laval -15 dtim nominal. Adjustable Irom -6 dbm

to "20 dbm, Racalva Frequency Tolarance ...Frequency relerence automatically adjusts lo

allcw for operaiion between 1SO0 Hz and 2400 Hz. Digital Data Inlanaca EtA RS-232C or 20 mA current loop (receiver is

oploisolated and non-poiai).

Power Raqulrtmenli 120 VAC. single ptiase. 10 Walts,

Ptiyiical All components mount on a single 5' Oy 9"

pri[ited circuit board. All components included. Requires a VOM, Audio Oscillator, Frequency Counter and/or Oscilloscope to align.

TRS-80 16K Conversion Kit

Expand your 4K TRS-80 System to 16K. Kit comes complete with:

• 8 each UPD416-1 (16K Dynamic Rams) 250NS ' Documentation for conversion

TRS-16K $75.00

COMPUTER CASSETTES

. 6 EACH 15 MINUTE HIGH QUALITY C-15 CASSETTES

. RUSTIC CASE INCLUDED 12 CASSETTE CAPACITY

. ADDITIONAL CASSETTES AVAILABLE #C-15-$2,96ea

a

• i.. 1 ,1 ; CAS-6 -"nV:-Vi $14.95

. ^ ,.*.. [Caste and 6 Cassettes)

SUP 'R' MOD II

UHF Channel 33 TV Interface Unit Kit

Wide Band 6/W or Color System

• Converts TV to Video Display tor home computers, CCTV camera, Apple II, works with Cromeco Dazzler. SOL-20. IRS-80, Challenger, etc.

MOD II is pretuned to Channel 33 (UHF).

* Includes coaxial cable and antenna transformer.

MOD II

$29.95 Kit

Function Generator Kit

' PfovitJes 3 basic waveforms: sine triangle & squaie wave

• Frequency range Ifom 1 Hz lo 100K Hz

• Output amplitude from 0-volls to over 6 volts [peak to peak]

« Usesa12Vsupplyora^evsplit supply

• Inci chip P C board, components and instructions.

JE2206B $19.95

IDEAL FOR TRS 80

"Plug/Jack interlace to any computer system requiring remote control ot cassette functions"

The CC100 controls cassette motor functions, monitors tape location with its internal speaker and requires no power. Eliminates the plugging and unplugging of cables during computer loading operation from cassette.

CASSETTE CONTROLLER

#CC-100

$29.50

63-K8y Unencoded Keyboard

This is 3 63-key, terminal keyboard newly manufactured by a large computer manufacturer. It Is unencoded with SPST keys, unattached to any kind of PC board, A very solid molded plastic13 X 4" base suits most application, IN STOCK g29 95/8aGtl

Hexadecimal

Unencoded

Keypad

19-key pad includes 1-10 keys, ABCDEF and 2 optional keys and a shift key. $10.95/each

~ Circle 201 on inquiry carij.

BYTE August 1979 241

Circle 171 on inquiry card.

COMPUCOLOR lllSHEREN

HERE IS A SURPRISINGLY AFFORDABLE COMPUTER THAT MAKES THE COMPETITION LOOK TWICE 11

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.oo MODEL 4-16K USER RAM-1695.oo MODEL 5-32K USER RAM-1995.oo 2nd DISK DRIVE -400.oo

EXPANDED KEYBOARD -13 5 .oo

FORMATTED DISKETTE - 5.oo

MANY PROGRAMS AVAILABLE *

TO ORDER

SEND CHECK OR MONEY ORDER CALIF. RES. add 6% TAX shipping 1% all orders

HOLLYWOOD SYSTEMS

CATALOG - 50«

9100 SUNSET BLVD.

SUITE 112

LA. CALIF. 90069

r

BECKIAN ENTERPRISES

All Prime Quality — New Parts Only Satisfactioii Guaranteed

EDGE CARD CONIMECTORS: GOLD PLATED. INoI Gold Flash) BODY: Nod brittle, Solvent res., G.E. Valox. CONTACTS: Bifurcated; Phos/Bronze: Gold over Nicl<el. ABBREVIATIONS: S/T Solder Tail; S/E Sold. Eyelet;

W/W Wire Wrap 3; SW/W Short W/Wrap:

PART « Description

5010 50/100 S/T ALTAIR

5020 50/100 S/T IMSAI

5030 50/1 00 W/W IMSAI

5040 50/100 S/E ALT/IMSAI

5050 50/100 S/T CROMEMCO

1450 IMSAI CARD GUIDES

.100" Contact Center Connectors.

1020 1040 1050 1060 1065 1070 1076 1080 1085 1090 1093 1095

1 3/26 S/E Imsai MID: 25/50 S/E 25/50 S/T 36/72 W/W Vector. 36/72 S/T Vector. 40/80 S/E PET 40/80 W/W PET 40/80 S/T PET 43/85 S/E Cos.ELF 43/86 S/T Cos.ELF 43/86 S/T Cos.ELF 43/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

1 580 1 2/24 S/T PET

1 590 1 5/30 S/E GRI Keybd.

1620 18/36 S/E

1650 22/44 S/E KIM,VECTOR

1660 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

1 760 43/86 W/W Mot. 6800

POLARIZING KEYS: For Above

.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

2.10 2.95 3,00 4.80 4.00 4.80 5.00 4.90 5.00 5.10 4.95 5.50 0.10

1.30 1.36 2.15 2.10 2.25 2.40 2.20 2.00 2.40 3.90 3.50 3.30 4.40 4.35 4.45 0.10

5-9

10-24

3.50

3.30

3.76

3.50

3.90

3.70

4.50

4.25

6.00

6.75

0.14

0.12

1.85 2.75 2.80 4.60 3,75 4.50 4.65 4.60 4.75 4.85 4.70 5.20 0.10

1.10 1.15 1.95 1.90 2.05 2.20 2.00 1.80 2.20 3.75 3.30 3.10 4.16 4.10 4.25 0.10

1.75 2.50 2,60 4.30 3.50 4.30 4.35 4.25 4.50 4,60 4.45 4.90 0.10

0.90 0.95 1.75 1.70 1.85 2.00 1.80 1.70 2.00 3.50 3.10 2.90 3.90 3.85 4.10 0.10

RS232 & D' TYPE SUBMINIATURE CONNECTORS:

QUANTITY

DE9P Male DE9S Female DEI 10963-1 DA15P Male DAI 6S Female DA5121 1-1 DAI 10963-2 DB25P Male DB25S Female DB51212-1 DB51226-1A DB1 10963-3 DC37P Male DC37S Female DC1 10963-4 DD60P Male DD50S Female DD51216-1 DDl 10963-5

2pc. Grey Hood

Ipc. 2pc.

Grey Hood Grey Hood

1 pc 2pc 2pc.

Grey Hood Black Hood Grey Hood

2pc. Grey Hood

Ipc. Grey Hood 2pc. Grey Hood. D20418-2 Hardware Sets

1-4

1.45

1.93

1.20

1.95

2.80

1.25

1.22

2.20

3.20

1.30

1.40

1.35

3.70

4.90

1.95

4.40

4.90

2.30

2.40

0.75

5-9

1.35 1.80 1.10 1.80 2.60 1.15 1.10 2.10 3.00 1.20 1.30 1.25 3.60 4.70 1,85 4.30 4.70 2.10 2.20 0.70

10-24

I.e. SOCKETS. GOLD.

1.25

WIRE WRAP 3 TURN.

1.70

14 pin $0.36 ea.

1.00

16 pin 0.38 ea.

1.70

2.40

1.10

1.06

LC. SOCKETS.

1.90

Dtp Solder. Tin.

2.70

14 pin $0.1 5 ea.

1.10

16 pin 0.17 ea.

1.20

1.15

3.35

4.40

8080 PRIME

1.75

$8.00 ea.

4.10

4.50 ■

1.90

2.00

2708 EPROMS PRIME

0.65

$14.00ea.

CONNECTORS FOR CENTRONICS 700 SERIES: Amhpenol 57-30360 For Back of Centronics '700' Series;

Price: $9.00ea. 6 pes, $7,50ea.

WHISPER FANS: Excellent for Computer cabinet cooling. Extremely quiet. Dim. 4-3/4" X 1-1/2" thick. U.L. Listed. JL:4 5^ 10-24

S22.00 $19.00 $18.00 WRITE FOR LARGER QUANTITY DISCOUNTS. DEALER INQUIRIES ARE WELCOME.

WE ARE CONNECTOR (EDGE CARD) SPECIALISTS. IF YOU DO NOT SEE WHAT YOU NEED IN THIS ADVERTISEMENT. PLEASE WRITE US. WE WILL REPL Y.

TERMS: Minimum Order $10.00: Add SI.25 for handling and shipping. All orders over $25.00 in USA and Canada: WE PA Y THE SHIPPING. NOTE: CA residents please add 6% sales tax.

NO C.O.D. SHIPMENTS OR ORDERS ACCEPTED.

^A'^ ORDERS TO g^^j^^^^ Enterprises

P.O. Box 3089 Simi Valley, CA 93063

242 BYTE August 1979

Circle 30 on inquiry card.

^

PRECUT WIRE

WIRE WRAP TOOLS

#30 WIRE KITS

#1 $7.95 #2 $19.95

250

3"

100

472"

250

272"

250

5"

250

3V2"

100

5"

500

3"

100

572"

100

4"

100

6"

500

372"

250

6"

500

4"

100

672"

250

472"

100

7"

#3

$24.95

#4 i

^4.95

500 500 500 500

272" 3" 372" 4"

500 472" 500 5" 500 572" 500 6"

1000 2721000 3" 1000 372" 1000 4"

1000 472" 1000 5" 1000 572" 1000 6"

Choose One Color or Random Assortment: Red, Blue, Green, Yellow, White, Orange, Black.

#26 Prices on Request

«30 Kynar stripped 1" on eacti end. Lengths are overall. Colors: Red, Blue. Green. Yellow, Blacl<. Orange, White. Wire packaged in plastic bags. Add 25iE/length for tubes.

In.

2'A 3

3VS 4

4'A ■ 5

6

6'/;

7

7'4 S

8'A 9

9V, 10

Addl. In.

100

500

1000

5000

1.04

2.96

5.16/K

4.67/K

1.08

3.22

5.65/K

5.D6/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

1.20/K

HOBBY

WIRE WRAP TOOL

BW 630 (Back Force) $34.95

BT 30 Extra Bit 2.95

BT 2628 #26 Bit . 7.95

Batteries & Charger 11.00

INDUSTRIAL WIRE WRAP TOOL

BW928

BW 928BF (Bacl< Force) #30 Bit & Sleeve #26 Bit & Sleeve Batteries & Charger

$49.95*

52.95 29.50 29.50 11.00

ELECTRICAL INDUSTRIAL WIRE WRAP TOOL

EW 7D $85.00*

EW 7D BF (Back Force) 92.90* #30 Bit & Sleeve 29.50

#26 Bit & Sleeve 29.50

"industrial Tools do not include Bit & Sleeve k Spring Loaded bit on Back Force models.

i

EDGE CARD CONNECTORS

44 pin Solder Tail $1.95 $17.50/10 ALLareGold OOpin Solder Tail $3.95 $35.00/10 lOOpinarelMSAI 00pin Wire Wrap $3.95 $35.00/10 spacing.

n

TT

b

r

INTERCONNECT CABLES

^

RIbboncableconnectorsfor 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

1.24 1.34 2,05 2.24 . 2.45

3.37

12"

133 1.44 2.24 2.33 2.55

3.92

24"

1.52 1.65 2 63 2.52 2.76

4.31

48"

1.91 2.06 3-40 2.91 3.17

5.08

OK PRODUCTS

WD 30

soft

Wire Dispenser Red, White. Blue.

or Yellow $3.75

WD-30-TRI

Tfll Color Dispenser

5.50

R-30-TRI

Refill lor TRI Color

3.75

INS 1416

14 & 16 pin Insertion Tool

3.25

MOS 40

40 pi

n Insertion Tool

7.50

EX-1

10 Extractor Tool

1.49

H-PCB-1

Hobby PC Board

4.99

WSU30

Hand Wrap/Unwrap/Strip Tool

6.25

WSU 30M

Same as WSU30 virith lutodified Wrap

7.50

SOLDERLESS BREADBOARDS SK 10 $16.50

2.2" X 6.5"

MB10

$18.95

SK10 mounted on board W74 Binding Posts & Rubber Feet

WIRE WRAP SOCKETS

1-9 10-24 25-99 100-249

8 pin"

.40

.36

.34

.31 .27

14 pin*

—

.39

.37

.34 .32

16 pin'

—

.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

25 pin strip

1.25

1.15

1.00

.95 .90

28 pin

1.25

1.15

1.00

.95 .90

40 pin

1.65

1.45

1.35

1.20 1.10

Gold 3-Level Closed Entry Design

■End & Side Stackable

2-Level sockets Available

135 E. Chestnut St. **5 Monrovia", CA 91016 (213)357-5005

Ordering Intormatlon:

• Orders under $25 and COD'S add $2

• AM others, shipped Ppd in U.S. via UPS

• For Blue Label (Air) or 1st Class, add $1

• We accept Visa & Maslercharge

Catalog available on request.

LOGIC PROBE

PRB-1

$34.95,

• Compatible with all Logic Families

• 10 Msec pulse response

Dealer Inquiries Invited

Circle 298 on inquiry card.

BYTE August 1979 243

Circle 387 on Inquiry card.

WAMECO

THE COMPLETE PC BOARD HOUSE EVERYTHING FOR THE S-100 BUSS

* FPB-1 FRONT PANEL BOARD * EPM-2 16K or 32K BYTE EPROM

Hex Displays, IMSAI Replaceable $54.95 2708 or 2176 interchangeable $30.00

* FDC-1 FLOPPY DISC CONTROLLER BOARD *QMB-9 9 SLOT MOTHER BOARD Controls up to 8 Discs $45.00 Terminated $35.00

*MEM-1A 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, 10 BOARD WITH CASSETTE INTERFACE.

DEALER INQUIRIES INVITED, UNIVERSITY DISCOUNTS AVAILABLE

. AT YOUR LOCAL DEALER

y^mc

inc.

WAIVIECO INC. Ill GLENN WAY #8, BELMONT, CA 94002 (415) 592-6141

€

CALIFORNIA COMPUTER SYSTEMS

16K RAM BOARD. Fully buffered addressable in 4K blocks. IEEE standard tor bank addressing 2114'5

PCBD $26.95

Kit 450NSEC $259.95

PT-1 PROTO BOARD. Over 2,600 tioles 4" regulators. All S-100 buss functions labeled, gold fingers.

PCBD $26.95

PT-2 PROTO BOARD. Similar to PT-1 except setup to tiandle solder tail sockets. PCBD $26.95

sSSf

FORMERLY CYBERCOM/SOLID STATE MUSIC.

PB-1 2708& 2716 Programming Board with provisions for 4K or 8K EPROIVI, No external supplies require

lexlool sockets. Kit $124.95

CB-1 8080 Processor Board. 2K of PROfvl 256 BYTE RAM pov»er on/rest Vector Jump Parallel port wilti

status Kit $119.00 PCBD $30.95

MB-6B Basic 8KX8 ram uses 2102 type rams, S-100

buss. Kit 450 MSEC $139.95 PCBD $26.95

MB-7 16KX8, Static RAM uses (iP410 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 or 82S129 PROM kit without RAMS or PROMS $72.00 10-2 S-100 8 bit parallel /lO port, ^h of boards is for

kludging. Kit $46,00 PCBD $26.95

10-4 Two serial I/O ports with full handshaking 20/60 ma current loop: Two parallel I/O ports.

Kit $130.00 PCBD $26.95

VB-1B 64 X 16 video board, upper lower case Greek, composite and parallel video with software, S-100.

Kit $125.00 PCBD $26,95

Allair Compatible Mother Board, llxll'/jx'/e".

Board only $39.95. With 15 connectors $94.96

Extended Board full size. Board only $ 9.49

With connector $13.45

SP-1 Synthesizer Board S-100

PCBD $42.95 KIT $135,95

/Y/mC/ine WAMECO INC.

FDC-1 FLOPPY CONTROLLER BOARD will drive shugart, pertek, remic 5" & 8" drives up to 8 drives, on board PROM with power boot up, will operate with CPM (not included).

PCBD $42.95

FPB-1 Front Panel. 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

HTC-1 Realtime clock board. Two independent interrupts. Software programmable. PCBD $23.95

EPM-1 1702A 4K Eprom card PCBD $25.95

EPM-2 2708/2716 16K/32K

EPROM CARD PCBD $25.95

QM-9 MOTHER BOARD, Short Version of 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.25 2114 (250 NS) low pwr.. 7.99

2102A-2L 1.50

2102A-4L 1.20

4116 8/89.95

m

(415) 592-1800 P. O. Box 424 • San Carlos, California 94070

Please send for IC, Xistor and Computer parts list

AUG SPECIAL SALE ON PREPAID ORDERS

(charge cards not Included on this offer)

VB-1B WITH MIKOS #6 KIT , .$84.95 8KX8 RAM Fully buffered 450 NSEC. 2.5 amp typical assembled parts may be unmarked or house numbered.

$99.99

MIKOS PARTS ASSORTIMENT WITH 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

QM-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 PRIME PARTS, KITS INCLUDE ALL PARTS LISTED AS'REQUIRED FOR THE COMPLETE KIT LESS PARTS LISTED. ALL SOCKETS INCLUDED,

VISA or MASTERCHARGE. Send account numbor, Inlarbank number, expiration date and sign your order. Approx. postage will be added. Check or money order will be sent post paid in U.S. tf you are not a regular customer, please use ctiarge, cashier's check or postal money order. Othenvise there will be a two-week delay tor checks to clear. Cant, residents add 6% lax. Money back 30 day guarantee. We cannot accept returned IC's that have been soldered to. Prices subject to change without notice. S10 minlrrtum order. $1.50 ■arviee chirve on orders leas than )10.0O.

244 BYTE August 1979

Circle 230 on Inquiry card.

i

••••■ ••••■ ••••■ ••••• ••••• ••*.. ••••■ ••••• ••••■

••••• ••••■ ••••• ••••• ••••• ••••• ••••. ••••• ••••■ ••••• ••••• ••••■ •••••'

••••••

••••••

•••••■

••••••

••••••

•••••'

••••• ••••■ ••••. ••••■

••••• ••••• ••••• ••••■

:•••• •••• ••••• •••••' ••••■ ••••• •••••' ■•••■ •••••

•••••'

••«.■ •••••■ •••••' ••••■ ••••• ••••• ••••• ••••• ••••

16K EPROM CARD-S 100 BUSS

V 8K LOW POWER RAM KIT-S 100 BUSS 250 NS SALEl

'ADD $5 FOR 250NS!

•>.•.

.••••

OUR

BEST

SELLING

KIT!

USES 2708's!

Thousands of personal and business systems around the world use this board with complete satisfaction. Puts 16K of software on line at ALL TIMES! Kit features a top quality soldermasked and silk-screened PC board and first run parts and sockets. All parts (except 2708's) are included. Any number of EPROM locations may be disabled to avoid any memory conflicts. Fully buffered and has WAIT STATE capabilities.

OUR 450NS 2708'S ARE $8.95 EA. WITH PURCHASE OF KIT

ASSEMBLED

AND FULLY TESTED

ADD $25

$129

KIT

(450 NS RAMS!)

Thousands of computer systems rely on this rugged, work horse, RAM board. Designed for error-free, NO HASSLE, systems use. KIT FEATURES:

1. Doubled sided PC Board with solder mask and silk screen layout.Gold plated contact fingers.

2. All sockets included.

3. Fully buffered on all address and data lines.

4. Phantom is jumper selectable to pin 67.

5. FOUR 7805 regulators are provided »v on card.

Blank PC Board w/Documentation

$29.95

Low Profile Socket Set. .13.50

Support IC's (TTL & Regulators)

$9.75 Bypass CAP's (Disc & Tantalums)

$4.50

ASSEMBLED AND FULLY BURNED IN ADD $30 ,

16K STATIC RAM KIT-S 100 BUSS

-1^1111111111:11111.1

-flll'lll'll'll'lll'l'l'l'l

^r

$295

KIT

FULLY

STATIC, AT

DYNAMIC PRICES

WHY THE 2114 RAM CHIP?

We feel the2114 will be Ihe nexl iridustry standard RAM chip (like the 2i02 was). This means price, availability, and quality will all be good! Next, the 2114 IS FULLY STATIC We feel this IS the ONLY way 10 go on the S-100 Buss' We've all heard the HORROR stories about some Dynamic Ram Boards having trouble with DMA and FLOPPY DISC DRIVES Who needs these kinds of problems? And finally, even among other 4K Static RAM's the 2114 stands out! Not alMK static Rams are created equal' Some of tfie other 4K's have clocked chip enable lines and various timing windows just as critical as Dynamic RAM's. Some of our competitor's 16K boards use these "tricky" devices Bui not us' The 2114 is the ONLY logical choice for a trouble-free, straightforward design

KIT FEATURES,

1. Addressable as four separate 4K Blocks

2. ON BOARD BANK SELECT circuitry (Cromemco StandardI). Allows up to 512K on line!

3. Uses 2114 (450NS1 4K Static Rams

4 ON BOARD SELECTABLE WAIT STATES 5. Double sided PC Board, with solder mask and silk screened layout. Gold plated contact fingers. 6 All address and data lines fully buffered. 7. Kit includes ALL parts and sockets, a. PHANTOM is jumpered lo PIN 67.

9 LOW POWER: under 2 amps TYPICAL from the 16 Volt Buss.

10 Blank PC Board can be populated as any multiple of 4K.

BLANK PC BOARD W/DATA—$33 LOW PROFILE SOCKET SET—$12 ASSEMBLED & TESTED—ADD $30

SUPPORT IC'S & CAPS—$19.95

2114 RAM'S—8 FOR $69.95

16K STATIC RAM SS-50 BUSS

»295

KIT

iiiiiiiiiiilillll iiiiliiiiiilillE

FULLY STATIC AT DYNAMIC PRICES

KIT FEATURES: 1. Addressable on 16K Boundaries

2. Uses 2114 Static Ram

3. Runs at Full Speed

4. Double sided PC Board. Solder mask and silk screened layout. Gold fingers.

5. All Parts and Sockets included

6. Low Power: Under 2 Amps Typical

FOR SWTPC 6800 BUSS!

BLANK PC BOARD—$33

yv_

COMPLETE SOCKET SETSUPPORT IC'S AND CAPS—$19.95

$12

TM990 BUSS PROTOTYPE & WIREWRAP BOARD

For use with the Texas Instrument Series of 16 Bit Microcomputer Modules. Fully buss compatible. An inexpensive and quick way to expand the capacity of your Tl computer. Made of G-10 Epoxy PC material. Gold plated contact fingers all plated through holes. High density, up to over 100 DIP's. Fully documented. $70each (OEM Discounts Available)

Z-80 PROGRAMMING MANUAL

By MOSTEK, orZILOG The most detailed explanation ever on the worl^ing of the Z-80 GPU CHIPS. At least one lull page on each of the 158 Z-80 instructions. A MUST reference manual for any user of the Z-80. 300 pages. Just off the press. $12.95

450 Nsi 2708 EPROMS

Now full speed! Prime new units from a major U.S. Mfg. 450 N.S. Access time. IK X 8. Equiv. to 4-1702 A's in one package. tooc

$15.75 00. $Q95 /^ ppr $60.00

PRICE CUT

NOT ASSOCIATED WITH DIGITAL RESEARCH

OF CALIFORNIA,

THE SUPPLIERS OF

CPM SOFTWARE.

ANNOUNCEMENT:

To better serve ourciJSlomers we are splitting Digital Researcti Corp ot Texas into two operating sections Parts and CompLiters We feel Itiis change will allow us to ofler you lower prices, better service and many more new prodLicls Continue to order parts, clock modules etc from DRP PC Box 401247 Garland TX 75040 To order computer parts and computer kits order from Digital Research- Computers P 0 Box 401565 Garland TX 75040

16K DYNAMIC RAM CHIP

16KX 1 Bits. 16 Pin Package, Same as Mostek 4116-4, 250 NS access 410 NS cycle time. Our best price yet for this stale of the art RAM. 32K and 64K RAIyl boards using this chip are readily available. These are new. fully guaranteed devices by a major mfg, VERY LIMITED STOCK! 8 FOR $79.50

•••-•.■••S

Digital Research: Computers

*' (OF TEXAS) "^

P.O. Box 401565 • GARLAND, TEXAS 75040 • (214) 271-2461

TERMS: Add 50C postage, we pay balance Orders under $15 add 75C handling No C O.D We accept Visa, MasterCharge. and American Express cards. Tex Res. add 5% Tax Foreign orders (except Canada add 20% P & H 90 Day Money Back Guarantee on all items

•••:.

Circle 100 on inquiry card.

BYTE August 1979 245

Circle 151 on inquiry card.

So fHBM BtU

Scamrr SAYS

70 OS,

Silt (kd". Ut, bj^ ftpfifJ,

ai/itf Uie, ck)ft'4- ^1^6 Hint -for

'f\fftttH\M <r phafci or

mlnfif. v/vjf •/rechaAt( if: or SajHfc-MM-7 ". OK, 8;//. Aerc

TBMIS oF SALE: &<dh lf--er»s Ujje-iieflait. for VlSf^or Itla^rthrfP orders CAll our ^ hr. ofdv desK flf «/5";.fl»2

0636 ■ Cai>f'"'ni* rtside^tr add Sth iat:hdd S%> -fiir Shijfpkj; eacess nrfufidfe(. Cov oK Ui-Hf sf'rtct addke^^s f<^ ^^^ cieli\/ttif. ?»' /*'>''« ^i<r{o sec our -fulh p«je., SortieaAat- >««/"£ -^rmol aj Me

mraiBG

8i7/ Sodbout- ekcHtnitS, SuiUing 7SS, Oakland A''r/>orf, CA 946/4 °

a SAdfi. A-t -/iis £nccj"^er<.

pcMgitn ^ $87.2o! Our Se.-h

CAlf;^ dio ihiM-h af\4 -fill 4b- f^o-l. prlce.^^ to'i-iA 'all t^«- perC.VMmj-a^kr\ -fhA-t /KA^ei m- ^Mi^c^l ifau. or yauT (^fkxkT

we-Ve, ()of- naj product. df

|^12S"g^/3/^j7<^tvayxi?

hJo tiUir^^ - $12^ ! Our bnx^d -f)coJ

.Stmt- CCwtro/tA T£ Unklh arouir\dl ai\d^ IMmf -h dear -fhem auh. €ve/\ /)y -/oq^ S^dtuh. -the old €tmrm T. is an^ ^fce/leint merhory. X+ o{{ers -fu/l 2

srnrie. ¥t<^\

beit ■inct /earrA )n -ike 'indushH -H>r rtJluiik an4 Ces.Ke{^cH/o ' Operai-tay). Qor ^^'^ ^^^ ^// £ock:e.H Ot^iil ^pt£^ caps prts4sfered h fifce. -for e«y a/^e

- Hi!, IS c, /;»,;w afv.

FREE!

WITH THE PURCHASE OF ONE OF THE FOLLOWING PET-CBM ITEMS!!

PET SPECIALS LIST FREE*

PET 16N 16K full size graphics keyboard $ 995 $130

UP TO S170 IN PET 16B 16K full size business keyboard $ 995 $130

MERCHANDISE PET 32N 32K full size grapfiics keyboard $1295 $170

PET 32B 32K full size business keyboard $1295 $170

PET 16S 16K small keyboard, integral cassette $ 995 $130

PET32S 32K small keyboard, integral cassette $1295 $170

PET 8K 8K small keyboard, integral cassette $ 795 $100

ASK ABOUT PET 2040 Oual Disk Drive - 343,000 bytes $1295 $170

EDUCATIONAL pet 2040A Singie Disk Drive - 171,000 bytes $ 895 $115

^'nE^nW^ PET 2022 Tractor Feed Printer $ 995 $130

ON PET PET 2023 Pressure Feed Printer $ 849 $110

PET C2N External Cassette Deck $ 95 3 12

$ 79.50

$119.00

IEEE - RS232 Printer Adaptor for PET BETSI PET to S-100 Interface & Motherboard PET Connectors- Parallel or IEEE $ 2.25 - Cassette Port $ 1.60 Personal information Management SystemAdd S3 lor 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 Softvi/are 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 iVIercliandise with Purcliase of PET-CBiVI Item

WRITE FOR 6502 AND S-100 PRODUCT LIST

KIM-1 $159 (AddS30lorPowerSupplylSYM-1

BAS-1 Microsoft ROM Basic for SYM Memory Plus

SEA-16 New 16K Static RAM Seawell Motherboard-4K RAM

space KTM-2 Synertek Keyboard and

Video Interface with Graphics

Capability RAM 16 4MHz 16K Static S-100

RAM 2114 L 450 ns 4K Static RAM 2716 EPROM (5 Volt) 6550 RAM (for PET 8K) 6502 Microprocessor Chip 6522 VIA 6502 PIA

$229 $139 $199 $325

$ 99

FREE!

UP TO $170 IN MERCHANDISE

BOOKS

Programming the 6502 (Zaks) 6502 Applications Book (Zaks) 6500 Programming Manual (MOS) Programming a Microcomputer:6502 Basic for Home Computers

S290

$309 $6.95 $ 38 $16.20 $ 9.95 $9.75 $10.50

$ 9.90 S11.90 $ 6.50 $ 8.90 $ 5.90

3M "Scotch'

8" disks

10/S31

3IVI "Scotch'

• 5" diskettes SALE

10/$35

Verbatim 5"

diskettes (Write lor quantity prices)

1D/$28

iVIinimum 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.00 C-30 10/7.00 50/30.00 100/57.00

115-A E. Stump Road Montgomeryville, PA 18936 (215)699-8386

246 BYTE August 1979

Circle 1 on inquiry card.

i#^

COMPUTER TERMINAL

BREAKTHROUGH

$795

This is not the first terminal built around a microprocessor, but there has never been a terminal at this price which could also be used as a complete computer system. Now the same unit you use for talking to a large time-sharing system can also be used for many other tasks without requiring outside computer support. With the proper software you can handle small jobs such as complex calculations and animated graphics.

Economy through mass production

If an entirely new product was designed specifically to do all the things you can do with the T/C 2001, it would have to cost thousands of dollars. NCE/CompuMart has bypassed a lot of expensive design work by employing a massproduced computer as the heart of the T/C 2001. The Commodore PET has now been in production for nearly two years and more than 50,000 units have been sold worldwide. There is no other computer at this price which has all these built-in features: 9" TV monitor, 73-key keyboard (larger sizes available), cassette tape drive for loading programs and data, high-level BASIC language, four interfaces and a 24-hour clock. And it's expandable! If you find that you need faster data storage, you can plug in a floppy disk. If you want to be able to print forms or listings,you can attach a printer.

Free tape drive

The 8K PET which costs $795 comes with a built-in tape drive but its keyboard is smaller than the standard typewriter you may be used to. The $995 16K PET and the $1295 32K PET have a standard-sized keyboard but they require an external cassette tape drive for operation. Normally $95, we include it free with each 16K or 32K PET. The T/C 2001 package, worth $69 if purchased separately, is free with any PET ordered from this ad.

CAT ACOUSTIC MODEM

$189.00

Novation's new 300 baud acoustic modem, the CAT sets a new price standard for units with originate and answer capabilities. It's the perfect T/C 2001 companion, making the final link with your timesharing service. It's RS-232 with full or half duplex using any Bell 103 compatible modem. This amazingly compact unit comes with acoustic self-test, too.

BUY A PET" AND GET A TERMINAL FREE

^ commodore

FREE 10 DAY TRIAL

NCE/CompuMart has been selling computers by mail since 1971 and we know our business. We know that you need to have complete confidence in the product and the company behind it so we offer you this unconditional guarantee: Try it for 10 days and if it does not meet all of your expectations, return it for a full refund of your purchase price. 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 protect you for a full 6 months against defects in parts or workmanship. You can't lose; it's our way of assuring satisfaction to those who aren't able to visit our showroom at the NCE/CompuMart store and warehouse in Ann Arbor.

Accessories

Cassette Tape Drive — A second cassette tape drive is required whenever you need to update long files or perform backup copy operations. It plugs directly into the PET and is accessed through the BASIC language. Note: All PETs ordered through this ad include the first tape drive.

Dual Floppy Disk Drive — Programs which take 3 minutes to load from a tape require only seconds to load from a disk. The PET 2040 Dual Floppy Disk Drive requires no extra memory or expansion box, it plugs right in for fast, reliable program and data storage up to 36K. The 2040 is compatible only with the 16K 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 §

HK T/C 2001 S795.00 D/t x/lmCMT td

a 8K T/C 2001

plus $10.07 shipping and handling D 16K T/C 2001 $995.00

plus $10.07 shipping and handling a 32K T/C 2001 $1,295.00

plus $10.07 shipping and handling a Dual Floppy Disk Drive $1,295.00

plus $7.16 shipping and handling D T/C 2001 Terminal Package $69.00

plus $3.99 shipping and handling D CAT ACOUSTIC COUPLER $189.00

plus $3.35 shipping and handling

a Send me my FREE catalog

$795.00 PAYMENT

D check # .

D money order

D charge D VISA D MASTERCHARGE

Acct. #

Name

Address

City

State

(^

Member

Computer Dealers Asiociolion

Interbank #.

Zip.

Circle 283 on Inquiry card.

BYTE August 1979 247

£

Computer Products

I

THE PIGGY MAINFRAME

This sleak new maintrame is neatly trimmed to hold six S-100 boards, two mini-floppy drives, and is available in live colors. Power requirements: 115/220 VAC. 50,60 HZ. Weight: 27 (bs. (with drives) Dimensions: 21.375" Wide X8.4" High X 15.875 Deep. Power Supply 8 volts at 18 Amps unregulated. 16 volts at 3 amps uregulaled. - 16 volts at 3 amps unregulated. 5 volts at 3 amps regulated. 12vollsal 3 amps regulated.

THE PIGGY IS HERE!

THE PIGGY (Without Drives).

S475.00

VIDEO INTERFACE

5-100 Compatibte Serial Inter face with Sockets Included. Kit $117.95

Assenitjied i Tested $159.95 Bare Board w/manual $ 35.00

MEM-2 16 K Static RAM Board

Kit- (450ns) S250.00

Kit- (25ans) S285.00

Assembled- (450n5) S325.00

Assembled- (250ns) S3S0.OO

DYNAMIC RAM BOARDS EXPANDABLE TO 64K 32K VERSION "KITS

Uses 4115 (8Kx 1, 250ns) Dynamic RAM's, can De expanded in SK ncrements up to 32K

aK $159.00 16K $199.00

24K $249.00 32K $299.00

4115 SALE 8 for $39.95

64K VERSION • KITS

Uses 4116 (16Kx 1. 200ns) Dynamic RAM's, can t)e expanded in 16K increments up to 64K:

mTm-a.

$245

6502 Dasea single board

computer with keyboard/display, KIM-l hardware compatible, complete docuiTientation.

SYM—1 CASE $39.95

JADE

ISO—BUS

MOTHERBOARDS

Comes in eltlier 6,12, or

18 slot sizes. These

boards with a special

ground plane assures a

silent operation

JADE 6 Slot

Kil S49.95

Assembled .... $59.95 Bare Board .... S24.95

JADE 12 Slot

Kit $89.95

Assembled .... $99.95 Bare Board $39.95

JADE 18 Slot

Kit $129.95

Assembled ,.. 5149.95 Bare Board . . 559.95

SD SYSTEMS Z-80 STARTER KIT Based on the powerful Z80 CPU, this kit Is an Ideal Introduction to microprocessors. II has an on-board keyboard and display, plus cassette tape Interlace and expansion provisions (or two S-100 connectors. This •Do-ll-all" Board will also program the 2716 2K EPROM.

Kit $249.95

Assmbid and Tsid $399.95

PROTO BOARD

Includes gold plated fingers, S-100 size, holds 72-16 pin dips, accomodates al) 8 thru 40 pin dip packages.

Reg-S19 95 Special Prlce$16.95

PARALLEUSEniAL

(NTEHFACE

5-100 compalible, 2 serial I/O

ports, 1 parallel I/O. KM JG-P/S H 24.9S

Assembled & Tested JG-P/SA il 79.95

Bare Board W/Manual \ 30 00

TRS-ao-APPLE-SORCEHER-TRS-aO'APP'

JADE MEMORY ° EXPANSION KITS For^ TRS—80. Apple, & Exidy I 4ll6"i

^ Everything a person needs to ° ?dd 16K of memory. Chips 5 come neatiy packaged with I ( asy to follow directions. In ^ minutes your machine Is I ready for games and more % advanced software. »

$82.00 \

^JJyJ^o^^^3a^^uos^dd^^^

Solid State Music's

I/O 4

2 Serial & 2- Parallel I O Ports S-100 with lull handshaking.

KIT S149.95

Assembled 3199.95

Bare Board S29 95

EOf

mmmtmtumutimmmmimtmmmmmmtmm

The €xidy SORC€ReR

Rexibllly Is the key. The Sorcerer Computer gives you the flexibility of using ready-torun, pre-packaged programs or doing your own thing and personalizing the programs (or yourself. Which ever you choose, the Sorcerer is the personal computer that speaks your language.

The Sorcerer also provides full graphics capabilties. Each character, formed by an 8 x 8 dot cell, can be programmed as a graphic symbol set. High resolution (512 x 240 addressable points) gives a total of 122.880 locations for super animation and extremely tight plotting curves. The alphanumeric set gives 64 x 30 characters on the video screen

With 16K of memory $1150.00

CHIPS

MICROPROCESSORS

F8 S16.95

Z8u (2MH2I S10.95

Z80A (4MH2) S14.95

CDPI802CD . 519.95

6502 Sti 95

6800 S9 75

6802 - $1400

8008-1 $15,95

8035 $24 00

8035.8 S24.00

80B0-A S10.00

8085 $23 00

TMS9900TL S49 95 8080A SUPPORT DEVICES

16K $249.00 32K $369.00

4IK $469.00 64K $S69.00

^ STATIC RAM^ SPECIALS

2114's, low power (1024x4)

1-15 1699 100

4$0nt 1.00 6.9S S.JO

300ni 9.00 1.00 6.50

■IMS4044/MM5257, low powe

4$0ni 300ns

t.OO 9.95

7.SO t.7S

4200A (4Kxl, 200n$) I9.9S I I.SO

6.SO t.OO

1.00

410D (4K X 1, 200 ns)

|6.2S [ 7.00 [6.75

STATIC RAM BOARDS

JADE 8K

Kits: 450nt $125.95

2S0nt $149.75

Assembled & Tested:

4S0ni $139.75

2S0ni $169.7S

Bare Board: $ 25.00

16K - UiM 2114'! (low power) Assembled & Tested:

RAM 16 (250nt) $375.00 RAM 16B(450nt) $325.00

16K with mamory managsnwnt

Assembled & Tasted:

RAM 65 (250ns) $390.00 RAM 65B<450ntl $350.00

32K Static

Assembled <■ Tasted:

2S0ni $795.00

450ni $7,25.00

250nt Kit $S75.00

RocKwell Aim-65: The Head-Start In microcomDuters

A KlMl cornpaliDle macriine with on-Doard printer and a real keyboard'

$375.00 w/lK RAM

$450.00 W/4K RAM 4K assemDler/editor m ROM 8K BASIC tn RCJM: Power suDD'y: Case for A|IVI-6b:

Special Package Price: $599.00

AIM-65 (4K), Power Supply. Case, and faK 8AS

SD SYSTEMS SBC-100

An S-100 single board com pultr Z-80 CPU wilh 10?4 byles ol RAM 8 to 32K byles of PROM Serial I 0 port

•<" S239 95

Assembled 5359 95

TARBELL Cassette interlace

ugs inio your IMSAI or ALTAIR 4 eitira status lines 37 page manua' included, 4 ra control tines

S99 95 -Asspmbled S175 00

Ba'p Board S40 00

M,i..u,il S8 00

POUU€R SUPPLIES

PSD-249A; For a Single 5 1 4 Disk Drive By Power-One or Alpha Power: 5V at 7A. ■. . ■■ ■ ■•-. •■■ . <i.

PSD-205A For Single B Disk Drive

By Power-One 5V at 1 A, -5V at SA

24V at 1 dA S89.95

PSD-206A For Two 8 Disk Drives. By Power-One or Alpha Power 5V at 2 5A -5V at 5A -24V at 3A S125.00

Rockwell Aim-65 Power Supply ■PSX-030A S5995

KIM-1 or SYM-1 Pow/er Supply PSX-020A Sfig 95

DIP SWITCHES

P.irl No |)

JSlllO

!•. 19

SWD 103

51 18

■WO '04

SI 20

3WD ■<)'>

SI 24

SWD 106

S1 28

SWD 107

S1 30

SWD lOB

8

SI 34

SWD 109

9

SI 36

SWD 110

10

SI 38

TEXTOOL

ZIP*

DIP* II

Sockets

*ZERO INSERTION FORCE

' "MlrnS. ll PRICES:

16 pin Zip Oip II

$6.60

34 pin Zip Dip II

$7.60

40 pin Zip Dip II

$10.26

8212

8214

8216

8224 I2MH/I

8224.4 (4MH21

8226

8228

8238

8243

8251

8253

8255

8257

8259

8275

8279

L S2350

U AY5-10I3A AY5-t014A TR1602B TMS6011 IM6403

S2 90 S4 65 S2 75

54 30 S9 95 S2 75 S6 40

56 40

55 00

57 50 520 00

56 40 S18.00 S18 00 S51 20 517 70

510 95

S5 25

58 25 SS25 S5.95

59 00

BAUD RATE GENERATORS

MC14411 SIOOO

14411 Ciyslal 54 95

6800 PRODUCT

6821P 55 25

6828P S9 50

6834P 516.95

6850P S4 80

6852P 5525

6860P 59 25

6862P S12 00

6875L 57 30

6880P S2 50 CHARACTER GENERATORS

2513 Upper {1-12 5| 2513 Lower (112 5) 2513 Upper (5 iroll) 2513 Lower (5 voll) MCM6571 up scin MCM6571A down scsn PROMS 1702A 2708

2716(5 121 2716 (5v) 2758 (5v|

DYNAMIC RAMS 416D 4116 (200nsl 2104 4096 2107B-4 TMS4027 4096

STATIC RAMS 21L02 |4S0ns| 21L02 (250nsl 2101-1 21111 2112-1

1-15 SI 50

51 75

52 95 S325 5295

56 75 56 75 59 75 510 95 S10 95 510 95

S6 00 51295 549.00 S4900 $30 00

512 50 54 00 S3 95 5400

16-100

51.20

51 50

52.60

53.00

S265

FLOPPY DISK CONTROLLERS

1771801 539 95

1791 549 95

KEYBOARD CHIPS

AY5-2376 513 75

AY5-3600 513.75

MM5740 518 00

248 BYTE August 1979

Circle 195 on Inquiry card.

PLACE ORDERS TOLL FREE

eOO/421-5809 Continental U.S. 800/262-1710 Intid* California

THE BIG 2

THE NEW Z-80

CPU BOARD FROM JADE

Features Include: ■ S-100 Compatible, available in 2MHz or 4MHz versions. ■ On-board 2708. 2716, 2516, or 2532 EPROM can be addressed on any 1K, 2K, or 4K boundary, with power-on jump to EPROM. ■ On-board EPROM may be used in SHADOW mode allowing lull 64K RAM to be used. ■ Automatic MWRITE generation il tront panel is not used. ■ On-board USART lor synchronous or asynchronous RS232 operation (on-board baud rate generator). ■ Reverse-channel capability on USART allows use with buttered peripherals or devices with "not-ready" signal.

2MHz- 4 MHz

Kit CPU-30200K. 2 lbs . . $149.95 Assembled and Tested:

CPU-30200A. 2 lbs ... $199.95

Kit: CPU-30201K, 2 lbs . . S159 95 Assembled and Tested

CPU-30201A, 2 lbs .. S209 95

mirmm '

anijjijjjj/iiii

':

JADE'S DOUBLE DENSITY

■ Single or Double Density Recording

■ Full Size or Mini Floppy TM ■ CP/M Compatible in either

density

■ Programmed Data Transfer, no DMA

■ Controls up to 8 drives

■ IBM format in either density

■ Software Selectable KIT: $249.00 Density

Assmb. S, Tstd: $299.00

■ This controler utilizes the proven reliability of the IBM standard format as well as the lastest phase-locked-loop for data separation ■ All clocks are generated from an on-board crystal oscillator ■ Right precompensation Is used to enhance data recovery reliability in the double density mode ■ Density selection is entirely transparent to the user ■ Smgle and double density diskettes can be mixed on the same system

i^n

LEEDEX MONITOR

• 12 - Black and White

• 12MHZ Bandwidth

• Handaome Plaatic Case

$139.'

CABLES

MINI-DISK CABLE KtT: To connect two 5 1/4" drives to disk conlrollei board. Contains assembled and tested 5' long signal cable with 34 pin edge connectors. Also includes cables and connector lor D.C. power supply. WCA-3431K S34.95

8" DISK CABLE KIT: To connect two 8 ■ disk drives to edge-type controller (e.g., Versatloppy, Double-D). 'Contains assembled and tested signal cable with connectors plus cabte and connectors for both A.C. and D.C. power. WCA-5031K $38.45

8 ■ DISK CABLE KIT: Same as WCA5031K except controller end of signal cable 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 (or two 5 1/4" drives. WCA-3431A $29.95

INT€GRnL DFJin SVST€MS MOD6L 440

$995 00 TH6 PFIP6R 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 ^^

I 132 columns- 6 or 8 lines/inch 4|S '

I eight softuuare selectable Character sizesW-^ I no, 300, 600, 1200 Baud Rate

(Ofl TH€ GfiflPHIC OPTION UUITH 2K, RDD $199.00

«^^

o o o o o

speciflL

51/4" Diskettes $29.95/3ox oF T€N

SP€CIP/ SOF, 10, or 16 SeCTOfl

8" SINGLC SID6, SINGL6 D6NSITV $34.95/Box of T6N

Plugboards

8800V Universal/Microcomputer/Processor Plugboard Use With S-100 Bus. Complete With Heat Sink & Hardware.

5.3" « 10" X 1/16" $19.95

8801-1 Same as B80V Except Plain, Less Power Buses & Heal 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.

Hl-Denslty Oual-ln-Llne Plugboard For Wire Wrap With Power & Grd. Bus Epoxy Glass 1/16" 44 Pin Con Spaced .156 3682 9.6" X 4.5". . $10.97 3682-2 6.5" x 4.5... $9.81

Gen Purpose D.I.P. Boards With Bus Pattern For Solder Or Wire Wrap. Epoxy Glass 1/16" 44 Pin Con. Space .156 3677 9.6" x 4.5".. $10.90 3677-2 6.5" x 4.5...$9.74

3690-12

Card Extender

Card Extender Has 100

Contacts 50 Per Side ON

.125 centers. Attached

Connector la 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 40 tracks, track to track access time only 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-B 8" $495.00

Shugart 801R replacement, Single or double density, runs cooler and quieter.

Siemens FDD200-8 8" $575.00

Double head version of FDD100-8 capable of double density, double sided storage.

Shugart 801R 8 " $875.00

Hard or soft sectored, 400K BYTE drive.

NOVATION CAT Midsummer

ACOUSTIC MOD6M S(3ecial

features Include: 300 Baud flnsuuer/OrlginQtc, Sell 103, Comes $189.00 Rssembled and Tested

"^^ Computer Products

4901 W. ROSECRANS AVE., HAWTHORNE, CALIFORNIA, 90250

ORDER TOLL FREE 800-421-5809 ^g 800-262-1710

CONTINENTAL U.S. ^1 INSIDE CALIFORNIA

WRITE FOR OUR FREE CATALOO

Cash, checks, money orders, and credit cards acccpieu Minimum order: S10 00. California residents add 6 sales lax Minimum shippmg and handling charge: S2.50. Discounts available at OEM quanlilics

■ Two Drives Siemens/ GSI 8" Floppy

■ Power Supply for Above

■ Jade Double Density Board (KIT)

■ CP/IVI Operating System with Basic E

■ Package of 10 Blanl< 8 " Disl<ettes (Double Density)

■ Includes Interface Cables

Price if Purchased

Seoaratelw

S1544.95

Jade Special Pacl<age

Deal

$1225.00

FLOPPY DISK INTERFACE

JADE FLOPPY DISK (Tarbell board)

Kit $195 00

Assembled & Tested S250 00

S.D. Computer Products VERSA-FLOPPY

K't S159.95

Assembled & Tested $239 00

uista U80 mini DISH

SYSTEM FOR TRS—80 $395.00.

Includes disk drive, power supply, regulator board, and compact case. The V-eo olters 23% more storage capacity. Simply lake it out o( the box. plug in the cable, and it's ready to run. Requires 16K. Level II. expansion interface.

Interface Cable .. $24.95

circle 195 on Inquiry card.

BYTE August 1979 249

Circle 340 on inquiry card.

C/MOS (DIODE CLAMPED)

4033 '

<024

4025

4027

403S

74C93 74C16I

74C1B?

JM - .32 4D39 )12 - .J! J030

4016 - ■

4017

4018

4019 ~

4020 - ■

4022 - ■

40*4 4049 40fiO

34C0Q74C0374C0fl74C1074C2074C43

74C74 74C83

74C86-

74C17B74Clfl3 74C901 74C902 74C014

14SS RS»; lUTERI

giaO - 2 95 BTJBO- 2.!6

iCHVSTALS S3 45 m

2.000 MHz 6,144 MH; 4,000 MHz 8,000 MHz 3,57 MHz 10.000 MH 5.000 MHz 20.000 MHz 6.000 MHz

RIBBON CABLE

AT (COLOR CODEDI

*30 WIRE !G conn, - ,i30/uer tool 10 cona. - .75/per foot )0 cond. ■ .90/per loot

CTS 206-8 eighi position dip switch $1.60

CTS 206-4 four position dip switch $1.45

LIGHT ACTIVATED sen's 10 18. 200y 1A. .$.70

SILICON SOLAR CELLS 1" dianneief .4V at 1 AMP $10.00

FND 359C.C..4'S.60 LED READOUTS FCSao^d 4 (J.in DL-704 C.A. .3" S .75

C C. S" .liioliiv S5 95DL747C,A 6- $1.50

FNDb03CC. ■)■■ $ .85 HP3400 .8"CC $1.95 FND510C.A 5-S 85 HP3405.8"CA Sl.95 DL 704 3" C C S .05

at: FOB CambfMge. Mast. Swnj Cli«:k Includ* Pen

PRINTED CIRCUIT BOARD

X 6" DOUBLE SIDED EPOXY BOARD 1/16" thick S.eOea 5/S2,60

7WATTLD-65LASERDIODEIR $a95

2N3820PFET S 45

2N 5457 ^J FET S 45

2N2646 LJJT $ .45

ER 900 TRIGGER OlODES 4 SI 00

^2^02^RO^Ui^^^^^^^^^65^^ MINIATURE MULTI-TURN TRIM POTS 100, IK, 2K, 5K, 10K.20K, 50K. 200K. IMeg. 2Me9, $.75 each 3/$2.00

25 wati Infra Red Pulse

Loser Diode (Spec sheet included) S24.95

VERIPAX PC BOARD $ 12.95

Our new Proioivping is a hi densitv 4>i" x 6'/j" single sidoct 1/16" cpoxy board. It will hold 40. 24, 16 (34 units). 14 + 8 pin IC's. There are throe busses, f5V, ground and a floating tiuss. There is n p.irt for a TO-220 regulnttjr. There is a 22 pin edqc connocior with .156" spacing.

FP 100 PHOTO TRANS S .50

RED, YELLOW, GREEN

LARGE LED's. 2'' 6/$l .00

TIL-118 OPTOISOLATOR $ .75

MCT-6 OPTO ISOLATOR S .80

1 WATT ZENERS: 3,3, 4.7, S.l, 5.6. 9.1,

10, 12, 15, 18, or 22V 6/S1.00

MCM 6571A 7x9 character gen . . $ 10.75

UNIVERSAL 4Kx8 MEMORY BOARD KIT S69.9S

32-21021 fully buffered. 16 address lines, on board decoding for any 4 of 64 pages, standard 44 pin buss, may be used with F-8 & KIM

TRANSISTOR SPECIALS

2N6233NPN SWITCHING POWER $ 1-95 MRF-8004aCB RF Traniiitor NPN « -75

?.N3";?? NP.\ S. TO 3 S 1.00

2N1546 PNP GE TO-3 S .75

'.'N/imn I'INJP Si 10 3 S 1 (10

2N5086 PNP Si TO 92 4 S 1 00

2N3137 NPN SI RF $ .55

3N3919 NPN Si TO 3 RF SI 50

2N1420 NPN Si TO 5 3/$ 1.00

2N376? NPN Si TO 66 . S 70

2M2222'NPN Si TO 18 5 S 1 00

3N3055 NPN Si TO 3 . S .50

2N3304 NPN Si TO 9? 6/$ 1.00

2N3905 PNPS. T0 92 . 6/$ 1.00

2N5296 NPN Si TO-220 , S 50

2N6100 PNP Si TO 220 . . S 55

:'N::(i3H cnp Si to 5 ... 5'S 1 00

MPSA 13 NPN Si 4/S 1.00

TTLIC SERIES

silicon Power Rsctlllers

)2 M 20.00

HEDICON 1034 stage a:

RS232 DB 25P male

CONNECTORS D8 2GS female HOODS . , .

$2.95 - S3.50 . SI.50

REGULATORS

323K - 5V 3A . .S 5.75

309K S 1.60

723 $.50

320T

5, 12, or 15 V . . .$ 1,40

340K - 12,15

or 24 V. . . .$1.50 340T-5,6,8, 12

15, 18or 24V$ 1.40

78 MG S 1.35

79 M

DATA CASSETTES 1/2 HR S .95

MM53B7AA . . CLOCK CHIPS ■ ■ - S5-95

M7001 S7.S0

MM5369 $3.75

ALC:0 MI'^JIATUHF. TOGGLE SWITC MIA 106 SPOT MTA 206 DPDT . . MTA 206 P-DPDT CENTER OFF MSU 206 P DPDT CENTER OFF LEVER SWITCH

SOLID STATE SALES

P.O. BOX 74 B

SOMERVILLE. MASS. 02143 TEL. (6171 547 7053

m

nn

1.65

.-92

m

3.30

1.40

DIP SOCKETS

e pin .17*24 PIN .35

14 PIN .20 ?fl PIN .40

16 PIN .22 ■'0 Pin .60 18 PIN .25

SANKEN AUDIO POWER AMPS

Si 1010 G 10 WATTS. . $ 7.80

Si 1030 G 20 WATTS . . $15.70

Si 1050 G 50 WATTS-. . $28,50

TANTULUM CAPACITORS

.22UF 35V 5/Sl.OO .47UF 35V5/$1.00 .68UF 35V5/$1.O0 1UF 35V 5/$1.00 2.2UF20V5/S1.00 3.3UF 2OV4/$1.0O 4.7UF 15V 5/$1.00

6.8UF 35V4/S1,00 lOUF lOV S.25 22UF 25V S .40 15UF 35V 3/$ 1,00 30UF 6V 5/Sl.OO 150UF 15V $.95 47UF 20V $.35

68UF 15V $ ,50

WE SHIP OVER 95%

OF OUR ORDERS THE

DAY WE RECEIVE THEM

r^^O^OFF 20%0FF

YOUR OWN TRS-80 SYSTEM AT TREMENDOUS SAVINGS

REG. PRICE

OUR PRICE

$ 698.00 $ 628.20

OTRS-80 Complete System DISK DRIVES NOW IN STOCK!

Includes: CPU/Keyboard, Power Supply, Video Monitor, Cassette Recorder, Manual, and Game Cassette.

^Llne Printer ^Mini Disk System OC-10 Cassettes @Verbatim Diskettes

ITEM

TRS-80 Complete System Level II - 4K RAM TRS-80 Complete System

Level II 16 K RAM $ 988.00

Expansion Interface $ 299.00

Pertec FD200 Mini Disk Drive $ 495.00

Centronics 779 Printer $1599.00

Centronics 101 Printer $1595.00

Anadex DP-8000 Printer $1295.00

Centronics PI Printer $ 534.00

Trendata 1000 $1495.00

Memory Kit-(16K) $ 199.00 •FREE INSTALLATION

Verbatim Diskettes ea. $ 5.95

3 $ 17.89

10 $ 59.00

Maxell Diskettes ea. $ 10.00

3 $ 30.00

10 $ 100.00

C-10 Cassettes 5 $ 4 95

25 $ 24.75

C-30 Cassettes 12 $ 29.95 Paper (9'/2"x IV'fantold. 3500 sheets)

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

$ 889.20 $ 269.10 $ 385.00 $1175.00 $1400.00 $ 995.00 $ 445.00 $1295.00 $ 98.00

4.95 12.00 37.00

7.50 21.00 60.00

4.50 18.75 23.95

$ 35.00 $ 29.95

Comprehensive circuit analysis for your system

• RAM—tests for Random Access Memory errors

• ROM—tests for Read Only Memory errors

• CPU—tests for errors in Processor functions

• I/O—tests for Input/Output errors in peripheral equipment

The one "necessity" for any TRS-80 system—use as preventive maintenance for detecting circuit malfunctions and as a diagnostic tool for pinpointing hardware problems.$34a95

There are new developments every day— write or call for the latest information.

Outlet Hours:

Mon.-Fri.; 9 am.—7 pm. Sat. 12—5 pm.

5)aJa.

777 Henderson Boulevard N-6 Folcroft Industrial Park Folcroft PA 19032 (215) 461-5300

Classroom Instruction offered in Level II Basic—$49.95; and DOS/Disl( Basic—$69.95

t H I I I 11 111t I 1111 it I I I I I 11 1111HIT j

250 BYTE August 1979

Circle 384 on inquiry card.

10-DAY FREE TRIAL

Send for our FREE Catalog

4K - Keyboard C $ 595

BK ■ 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) 8 — large business keyboard without graphics symbols N — large keyboard with graphics symbols

$100 FREE ACCESSORIES WITH 16K or 32K PET

T/C 2001 PET TERMINAL OPTION PET ACCESSORIES

Commodore Dual Floppy Disk Drive $1295.00

New! PET Terminal Package S69.00

Second Cassette — (rom Commodore S95.00

Commodore PET Service Kit $30.00

Beeper - Tells when tape is loaded $24.95

Petunia ■ Play music from PET $29.95

Video Buffer - Attach another CRT $29.95

Combo - Petunia and Video Buffer $49.95

New Serial Printer Interface for PET $79.95

Integral Data Printer w/new interlace $678.95

PET - Compatible Selectric in Desk $895.00

TTY KSR-33 Screen Prmter for PET .. -CTSS- $395.00 Originale/Answerback Modem for PET TT...$320.00

Bi-directional RS-232 Interface $280.00

Betsi 4-slot S-100 Ivlotherboard $160.00

S-100 PET Interface was $289.00 SALE $99.00

Qpple II

200 FR€€ flCCCSSORICS

Buy a 48K Apple II. mention this ad and take S200 in accessories free (if ordered together). This offer is good for $150 on 32K and $100 on 16K Apple ll's. Now you can enjoy more of the best for less.

16K Apple II — $1195 {fake $100 in free accessories) 32K Apple II — $1345 (take $150 in free accessories) 48K Apple II — $1495 (take $200 in free accessories)

Apple II Accessories

Centronics Printer Interface 9225

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

San/o M2544 Recorder $55

^\'^ CENTRONICS PRINTERS '^iS^^ UP TO 76% OFF LIST

We had purchased an entire truckload of Centronics printers and terminals and when the semi arived we were amazed. Used Centronics were stacked from floor to ceiling and from end to end! We realized that we have to move these terminals and printers fast. So we're offering these reconditioned Centronics at incredibly low prices. However, some models are in limited quantities and the 779 and 703 models are already gone! Call today to get in on this great opportunity

MODEL

301

306

306C

306SC

308

330

500

500D

501

508

530

700

701

703

761

SPEED

(1pm)

70-175 60-150 55-145 55-145

165

165 40-150

120 50-175

165

165 13-90 25-120 70-370

60

WIDTH (col's)

80

80 80-132 80-132 80-132 80-132

132 132-218

132

132

132

132

132

132

132

PRINT MATRIX

5x7 5x7 5x7 Dual 5x7 9x7 5x7 5x7 5x7 5x7 9x7 5x7 5x7 7x7 7x7

Character Elongation Character Elongation Variable Density Variable Density Teleprinter Teleprinter 96 char Character Elongation Multiple Form Character Elongation Teleprinter Teleprinter 96 Char Character Elongation Char Elong., Bidirectional Char Elong.. Bidirectional Teleprinter Bidirectional

"Model 761 includes Keyboard

779 780 781

21-90 80-132 5x7 Variable Density

21-90 80 5x7 Character Elongation

43-120 80 5x7 Char Elong.. Bidirectional

CENTRONICS LIST

$2,275 2.055 2.360 3.950 3.100 2.700 2.995 3.200 3.315 4.110 2.950 1,520 1.815 2.805 1.850

1,250 1.905 1,980

WORKING' PRICE

$595 595 695 695 715 550 750 750 750 775 900 660 695

90-DAY=

WARRANTY

PRICE

$695

696

795

795

815

650

850

850

850

876 1.000 1.075 1.175

SOLD OUT

695 1.025

SOLD OUT

995 1,095

995 1.125

All machines require a parallel interface except the 330.530 & 761 models which require serial interfaces. All machines feature 64 character ASCII code unless otherwise indicated.

1. Guaranteed in working condition when shipped Comes with a 10-day free trial

2, Comes with a 10-day free trial and our 90-day limited warranty.

INTERFACES AVAILABLE FOR CENTRONICS PRINTERS

TRS-80

SORCERER

S-100 COII/IPUTERS

CRT TERMINALS

Serial versions can use the GPA TRS-80 intertace ($69,95 from NCE) or the Radio Shack Expansion unit. Parallel versions use the Radio Shack Expansion unit.

Serial Versions can use the GPA PET interface ($79,95 from NCE).

Serial versions can use the Apple Serial Card ($195.00 from NCE). Parallel versions can use the Apple Centronics Card ($225.00 fron NCE),

No hardware is required for serial versions, a cable ($24.95 from NCE) is required for parallel versions.

Cromemco and others make interfaces for both parallel and serial versions of the Centronics Printers.

Our Centronics Printers can be connected to a Hazeltine 1510 or 1520 with a cable ($50 from NCE). Contact us for use with other terminals.

NCE/CompuMart

#

SELLING COMPUTERS BY MAIL SINCE 1971

1250 North Main Street, Department BY89 P.O. Box 8610 Ann Arbor, Michigan 48107

IMPORTANT ORDERING INFORMATION All orders must include 4% shipping and handling. Michigan residents must also add 4% for state sales tax. All foreign orders (except Canada) need an additional 10% for shipping and handling. We cannot process your order without these.

(313) 994-3200

Phones open from 9:00 a.m. to 7:00 p.m. EST Monday-Friday, 10:00 a.m. to 5:00 p.m. Saturdays • P.O.'s accepted from D & B rated companies — shipment contingent upon receipt of signed purchase order • Open accounts invited — call for credit application • Most items in stock for immediate shipment — call for delivery quotation • Sorry, no C.O.D.'s • All prices subject to change without notice • in the Ann Arbor area? Retail vtore open 11:00 a.m. to 7:00 p.m. Tuesday-Friday, 10:00 a.m.to 5:00 p.m. Saturdays (Closed Sunday and Monday)

Circle 284 on Inquiry card.

BYTE August 1979 251

INTEGRATED CIRCUITS MICROPROCESSOR LED'S SOCKETS CAPACITORS DIODES TRANSISTORS RESISTORS POTENTIOMETERS

2

< ui

X M DC O

I

u

Ui

o u

M

>GC U

lU

X

u

S

M UI

3 ca

S

lU

w

<

<

u

m

DC

UJ

a. S

a.

a {2

M

o o

CO

a.

SS

Ui

t

w tc

UJ Q

_l O X UI M 3

(0

z

M

I< UI X M

u

Ui

2 2 O o

3

<

> cc u

i

im

electronic components

One-Stop Component and Kit Center

Jim-pak

Component Center

JC600 HcKCidecifflcil Cncodcf Kil

FULL 8 BIT LATCHED OUTPUT - 19 KEY BOARD

The JE600 Encoder Keyboard provides two separate hexadecimal digits produced from sequential key entries to allow direct programming for 8 bit microprocessor or 8 bit memory circuits. Three (3) additional keys are provided for user operations with one having a bistable output available. The outputs are latched and monitored with 9 LED readouts. Also included is a key entry strobe.

FEATURES:

• Full 8 bit latched output for microprocessor use

• 3 User Define keys with one being bistable operation

• Debounce circuit provided for all 19 keys

• 9 LED readouts to verify entries

• Easy interfacing with standard 16 pin IC connector

• Only +5VDC required for operations

z

CO

H < UJ

I

M

CC

o

1u

UJ

2 2

o u

CO

-I

> oc u

(O UJ

I u

i

CO

CO

UJ

_J

OB

S

UI CO CO

<

ffl < u

CO

oc

UJ

a. S 3 -s a. 5

CO

I

cn O

o

CO

0.

CO

oc

UJ

o

-I O X Ui CO

3

LL

CO ^

Z CO

H

<

UI

X CO

oc o

Io

UJ

z z o u

CO

>OC

u

CO

UJ

X

u

3

CO

NOW!!! OVER 300 AUTHORIZED DISTRIBUTORS ... HERE'S JUST A SAMPLING:

ALABAMA

Mobile

ALASKA

Anchorage

ARIZONA

yuma

CALIFORNIA

Anaheim

Amioch

Bell flower

Berkeley

Ftillerton

Mission Vieio

Monterey

Oceanside

Palo Alio

Pasadena

Sacramento

Sacramento

San Carlos

San Diego

San Fernando

San Francisco

San Francisco

San Jose

San Luis Obispo

Santa Ana

Santa Cruz

Santa Maria

Santa Monica

Suisun City

Sunnyvale

Vallejo

Walnut Creek

COLORADO

Aurora

Darango

CONNECTICUT

Bridgeport

DELAWARE

New Cattle

FLORIDA

Ft. Lauderdale

Hialeah

GEORGIA

Atlanta

Columbus

Stone Mountain

HAWAII

Honolulu

IDAHO

Idaho Falls

ILLINOIS

Evanston

Groveland

Mount Prospect

Lafayette Radio Electronics

Yuma Electronics

Haathkit 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

Zackit

J& H Outlet Store

Radio Shack A.S.C. -Mira Mssa

San Ferriando Electronics

Zack Electronics

Zenith Distributing Corp.

United Radio S TV Supply

Mid-State Electronic Supply

Quality Electronics

Santa Crux Electronics

Caps Electronics

Mission Control

Byte Shop

Sunnyvale Electronics

Zackit

MicroSun Computer Center

ILLINOIS (Continuadl

Oak Park

Rockford

Schaumburg

INDIANA

East Chicago

Evansville

IOWA

Indianola

KANSAS

Sallna Electronics, Inc.

Wichita Amateur Radio Equipment Company

KENTUCKY

Lexington Radio-Electronic Equipment Co.

Louisville Peerless Electronic Equipment Co.

LOUISIANA

Spec tropics Computer Store of Rockford Data Domain

Electronix Limited

e Amateur Supply

Atlanta Computer Mart

Radio Wholesale

Coleman's Electronics

Integrated Circuit Supply

Tri-State Electronic Corp.

Moyer Electronics

Tri-State Electronic Corp.

Baton Rouge Houma Metarie MARYLAND Annapolis Baltimore Churchville Damascus La Vale Rockvilla Rockville Towson Towson

MASSACHUSETTS Peabody Pittsfield Waltham Wellesley Worcester ' MICHIGAN Ann Arbor Ann Arbor Canton Clawson Detroit East Detroit East Lansing Flint

Garden City Grand Rapids Lansing Lansing Livonia

Pelican Electronics Pelican Electronics Pelican Electronics

J & M Electronics

Harco of BallirtwrB

Churchville Electronics

Damascus CB

J & M Electronics

Computer Workshop

Heathkit Electronic Canter

Baynesville Electronics Inc.

Heathkit Electronic Center

Heathkit Electronic Center Pittsfield Radio Co. Inc.

Computer Mart Inc. Heathkit Electronic Center

RM Electronics Inc.

MISSOURI El Dorado Springs MONTANA Billings Boieman NEBRASKA Lmcoln Lincoln Omaha Omaha NEVADA Las Vegas NEW JERSEY Brick town Cherry Hill Fair Lawn Ocean Pennsauken Pompton Lake Ramsey NEW MEXICO Las Cruces NEW YORK Endwell Jericho ■ Kingston New York

Beck man Electronics

Altair Computer Center

Scott Electronic Supply Inc.

Heathkit Electronic Center

Omaha Computer Store

Century 23

Radio Shack Associate Store The Computer Emporium Heathkit Electronic Center Heathkit Electronic Center Lafayette Radio Computer Center of N.J. Typetronic Computer Stare

RHODE ISLAND Cranston

Pawtucket

Warwick

TENNESSEE

Chattanooga

Clark svi lie

Cookeville

Knoxville

Nashville

TEXAS

Amarillo

Dallas

Jabbour Electronics City Jabbour Electronics City

Heathkit Electronic Center

Wflliam's Data Comp Div.

Massironics

Wagnon's Stereo Center

Eastern Micro

Electra Distributmg Co.

■■ Electronic Supply

Midland

Niles

Oak Park

Sterling Heights

MINNESOTA

Duluth

Hopkins

St. Paul

Eric Electronics

Wedemeyer Electronic Supply

Electronic Connection

Radio Supply & Engineering

I Haathkit Electronic Center

Heathkit Electronic Center

Eric Electronics

Hobby Electronic Center

Computer Center

Radio Parts Inc.

Fulton Radio Supply Co.

Wedomoyer Electronic Supply

Eric Electronics

Radio Supply & Engineering

Computronix Corp.

Niles Radio Supply

Eric Electronics

Eric Electronics

Northwest Radio of Duluth Heathkit Electronic Supply Heathkit Electronic Supply

Computer Tree Inc. Heathkit Electronic Center Grey lock Electronics Computer Mart of New York North White Plains Heathkit Electronic Center Rochester Haathkit Electronic Center

Troy Uiica

NORTH CAROLINA Boone Durham Greensboro Raleigh

NORTH DAKOTA Fargo OHIO Bucyrus Cincinnati Columbus Reynoldsburg Youngstown OKLAHOMA Oklahoma City Oklahoma City OREGON Albany Coos Bay Portland

PENNSYLVANIA Drums Mr. D's Digital Electronics

Hershey Microcomputer Systems Inc.

Philadelphia Heathkit Electronic Center

Pittsburgh Heathkit Electronic Center

York C.Y.C. Company

Alpha Digital Systems Futureworld fiytaShop Byte Shop of Raleigh

The Computer Company

Mead Electronics

Heathkit Electronic Canter

Heathkit Electronic Center

Universal Amateur Radio

Ross Radio Company

Oregon Ham Sales

Herrick Electronics

Portland Radio Supply

Computer Pathways

Dallas

Houston

Houston

San Ante

San Ann

UTAH

Mid vale

Provo

VIRGINIA

Alexandria

Alexandria

Black sburg

Charlottesville

Falls Church

Hampton

Norfolk

Richmond

Roanoke

Virginia Beach

WASHINGTON

Long view

Moses Lake

Seattle

Seattle

Seattle

Spokane

Tacoma

WEST VIRGINIA

Morganiown

Wheeling

WISCONSIN

West Allis

CANADA

Alberta I Calgary I

Ontario I Toronto}

Ontario (Willowdalel

Quebec (MontrealI

ENGLAND

Berkshire

GUAM

PANAMA

Panama City

SINGAPORE

Computer Encounters Inc.

CompuShop

Heathkit Electronic Center

CompuShop

Interactive Computers

Appliance & Equipment Ca.

Sherman Electronics Supply Inc.

Computer Hardware Store

Heathkit Electronic Center

Scotiy 's Radio & TV Inc.

Graves Electronics

Crossroad Electronics

Lafayette Radio

Avec Electronics Corp.

Avec Electronics Corp.

The Computer Place

Heathkit Electronic Center

Progress Electronics

Ron's Electronics

Riverview Electronics

Amateur Radio Supply

CCom

Empire Electronics

Personal Computers

OS G Electronics

Olson Electronics

The Computer Store

House qI Computers

Home Computer Centre

Wang's Microcentor

ASK YOUR ELECTRONICS STORE TO STOCK JIM-PAK® TODAY!! JIM-PAK® • 1021 HOWARD AVENUE, SAN CARLOS, CALIFORNIA 94070 • (415)592-8097

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

I" • •"":• • i I H

MODEMS

TAPE DRIVES

•ASCII SELECTRIC PRINTER/TYPEWRITER: Why settle for less than letter-quality printout from your computer? Refurbished IBM Model 725 can be used as off-line typewriter or on-line printer. Complete with solenoids, power supply, case and ASCII interface card (TTL to CPU parallel port.) Interface includes programmable ASCII translation table on EPROM with up to 8 tables for use with various type spheres. Feedback signals on completion of each print cycle insures fastest printing speed (15 cps.}

Price: programmed w/3 translation tables (one type sphere): $695.00

•SELECTRIC I/O TERMINALS (by GTE/Information Systems). Both ASCII & IBM code versions with microcomputer interface software & hardware (RS232 connector.) Cassette drive models permit up to 2400 baud data transfer rate as well as off-line data storage, use as memory typewriter, & use as data entry device for office personnel familiar with Selectric typewriters but not computers. Wide-carriage, interchangeable type spheres; optional built-in modem. All units cleaned, adjusted & warranted.

Model 5541 (IBM Correspondence code) $695.00

Model 5550 (corres. code, built-in cassette drive) $1195.00

Model 5560 (ASCII code, built-in cassette drive) $1295.00

•DIABLO MODEL 1550 "DAISY-WHEEL" TERMINAL: Refurbished letter-quality terminal with Hytype I printer (30 cps), full ASCII keyboard, RS-232 serial prot, 110, 150, 300 baud, 768 char, print buffer, software controlled graphics mode (1/60 in. spacing), built-in stand.

SHIP WT. 200 lb. Price, refurbished: $1895.00

• DIABLO HYTYPE I Model 1200 PRINTER MECHANISM: used, complete and tested. Requires power supply, case & mCPU interface. 15 day return

privilege - no other warranties. LIMITED QUANTITY! $750.00

~6' Ribbon cable & connector for printer Main Logic PCB $10.00

— 14-pin Winchester connector & 18" power supply cable $5.00

-"As-is" spare printer PCB's for parts (Logic, Heat Sink, 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 202 FREQUENCIES: Unique POS control design permits use in one housing of both Bell-compatible 103 (0 - 300 baud) and 202 (0 - 1200 baud) modem modules originally made by VADIC Corp. for a telephone corripany subsidiary. FEATURES: RS-232 serial interface, auto-answer, auto-dial, LED display, telephone line interface via acoustic coupler, manual DAA, or auto-answer DAA (sold separately.) FULLY ADJUSTED; no special tools required. 3,000 mile range over standard dial-up telephone lines.

-PQS 103 MODEM (with Auto Answer, Auto Dial). $179.95

-PQS 202 MODEM (Half-Duplex with Reverse Channel) $249.95

-PQS 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, NIRZl tape drive. Allows microcomputerist to read and write IBM-compatible VS" mag tapes. Software provided for 8080 or Z-80 systems. Requires modification for drives of various mfrs.

Price: (Includes S-100 card, controller card, 10'cable, software listing) . $750.00 •NRZ1 TAPE DRIVE by WILLARD LABS. 9-track, 800 BPI, NRZ1 format

12"/sec., 1200 ft. reels (10 megabyte capacity) Fully tested and warranted $599.00 •CONVERT 15" IBM OFFICE SELECTRIC TO I/O TYPEWRITER: Kit

includes assembled solenoids, switches, wire harness, magnet driver.PCB plus

instructions for installation and mCPU interface $200.00

• DIGITAL CASSETTE DRIVE (from GTE/IS Terminal): 1800 baud, 6"/sec; AC motor; fwd/rewnd circuitry plus tape head, no read/write electronics $25.

•FORMS TRACTORS, Moore Variable width "Form A-Liner" for print terminals:

alModel 565P for 1 5" Carriage IBM Selectrics (new): $50.QO

b)Model K81 for QUME or DIABLO Hytype I or II printers (new): .... $90.00

•POWER SUPPLIES for Disk Drive, mCPU, tested under load shown: -No. 519 (w/fan & AC cord): -^5V reg.,+12V reg., ■f24V, @4A (10 lb.). .$39.95 -LAMBDA No. LMEE5w/0V protect: -^5V reg. ® 25A (35 lb.) $69.95

NO RISK! 15 DAY APPROVAL ON ALL MAIL-ORDERS.

Full documentation included PLUS interface instructions wftere indicated. All equipment is shipped insured FOB Palo Alto within 14 days after check clears or COD order is received. Prices may change without notice.

J^ PACIFIC OFFICE SYSTEMS, INC. ^

m 2600 El Camino Real, Suite 502 m

Palo Alto, Calif. 94306 (415) 321-3866

Call or write for details, quantity prices, catalog, 15 day return privilege PLUS 90 day no charge replacement of defective parts. All orders shipped from stock. No back orders, no substitutions. M/C 8i VISA accepted.

ProComp/Nevi^ England

720 Boylston Street/Fourth Floor

Boston. MA/02116 Phone 617-482-4450

HOURS: M-F 10-5, S 10-4

^m^wmm

Seattle 16K Static Ram

Measurement Systems 48 64K Dynamic Ram

Micromation Doubter Disk Controllers

Computalker CT-1

Cromemco Single Card Computer

...AND MORE

Graham-Dorian Structured Systems Group National Software Exchange Selector III ...AND MORE

S^^ste

Compucorp 625 Mkll & 665

Imsai VDP42 & VDP80

Complete Double Density Disk Systems

Diskettes Storage Binders Printer Ribbons

a SPECIAL BARGAINS ON USED EQUIPMENT J!!

□ Special prices on these and other in-stock items during our Grand Opening Sale now through September 30 th.

o Write, call or stop in for our catalog and Grand Opening Sale Price List.

a VISA and MASTERCHARGE

\

Circle 69 on inquiry card.

BYTE Augusl 1979 253

POB

Electrotabs n e w

6721.Stanfacl,Ca94305 CATALOGUE

AMSmCAN

■0"

FLOPPY SYSTEMS

TLX;

'""'"415-321-5601

800-227-8266 345567

Crystals

Integrated circuits

Keyboards

Lasers

LSI-11

Media

RAMs

S-100 Components

Z-80 Components

8" Siemens FDD 120-8 Drive

All. Siemen's options included In this drive which can be con* figured hard or soft and single or double density. (Others give only stripped unit) $399.00

<^

"Power One" Model CP206 Floppy Power Unit For two

drives going full-out, and possably more on less severe service, 2.8A@i24V, 2.5A@i5V, 0.5A@>-5V. Beautiful quality. $99.00

DISKETTES (Standard)

8"

SV,''

Boxed 10 Boxed 10

$39.00

$34.95

Tarbell ("It Works") Interface (Includes cable set for 2 drives) $265.00 BUT ONLY $219.00 with purchase of two drives.

Cable Kits 10' with 50 cond. cable and connectors and also Molex connectors and power cable: For one drive: $27.50 For two drives: $33.95, and for three drives: $38.95

CABINETS for FDD120 and 801R Drives, or CP206 power supply. Matte finish in mar resistant black epoxy paint. Stacking type design. $29.99

ELECTRO Labs is proud to aanounce appointment as DISTRIBUTOR by Cll-Honeywell BulL

PRICE BREAKTHROUGH on SW£'i?Z)/5/: lOMBYl $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

(Z-80) $695.00 MJ.^

MICR0D0S1

(TRS-80)... $199.00 Power supply (switching)

$395.00 *^^£™.

Enclosure (desktop) ^^^■tt.«1

$ 99 00 * a^.uu Removeable Media Caitiidge Drive

Used Sylvania 12" Video Monitors. Composite video 15mhz, 115vac, 50/6011Z New Tube. As shown $109 OEM style without case: $99, Anti-glare tube option add $12. Specify p4 or p39

ESAT 200B

BILINGUAL 80x24 COMMUNICATING TERMINAL Scrolling, full cursor, bell, 8x8 matrix, 110-19,200 baud. Dual Font Applications. Arabic & Hebrew, Multilingual Data Entry,

574" MINI-FLOPPY DRIVE $299.00

- single or double density- quick access time

- high reliability 8i durability

Mini-floppy CABLE KIT: for TRS-80 or your Tarbell controller. $24.95

Daisy Wheel Printers Qume Sprint: 3\45

Print wheels S8.95 Ribbons $5.95

OEM Style mechanism $1399.00

Forms Drawing, Music Instruction, Specialized Graphics (e.g. Games, Chemical Plants, Switchyards) $349.00 We carry keyboards, cases, power supplies, etc., enough to make an entire system.

254 BYTE August 1979

Circle 115 on inquiry card.

P.O. Box 4430X Santa Clara. CA 95054

RCA Cosmac Super Elf Computer $106.95

Compare features before you decide to buy any other computer. There is no other computer on the market today that has all the desirable beiiefits of the Super Elf for so little money. The Super Elf is a small single board computer that does many big things. II is an excellent computer for training and for learning programming with Its machine language and yet it is easily expanded with additional memory, Tiny Basic, ASCII Keyboards, video character generation, etc. The Super Ell includes a ROM monitor for program loading, editing and execution with SINGLE STEP for program debugging which is not included in others at the same price. With SINGLE STEP you can see the microprocessor chip operating with the unique Quest address and data bus displays before, during and after executing Instructions. Also, CPU mode and instruction cycle are decoded and displayed on 8 LED indicators. An RCA 1861 video graphics chip allows you to connect to your own TV with an inexpensive video modulator to do graphics and games. There is a speaker system included for writing your own music or using many music programs already written. The speaker amplifier may also be used to drive relays for control purposes. A 24 key HEX keyboard includes 16 HEX keys plus load, reset, run, wait, Input, memory protect, monitor select and single step. Large, on

Super Expansion Board with

This is truly an astounding vaiuel This board has been designed to allow you to decide how you want it optioned The Super Expansion Board comes with 4K of low power RAM fully addressable anywhere in 64K with built-in memory protect and a cassette Interface. Provisions have been made for all other options on the same board and it fits neatly into the hardwood cabinet alongside the Super Elf. The board includes slots for up to 6K of EPROM (2708, 2758. 2716 or Tl 2716) and is fully socketed. EPROM can be used for the monitor and Tiny Basic or other purposes. A IK Super ROM Monitor $19.95 is available as an on board option in 2708 EPROIH which has been preprogrammed with a program loader/ editor and error checking multi file cassette read/write software, (relocatible cassette file) another exclusive from Quest. It includes register save and readout, block move capability and video graphics driver with blinking cursor. Break points can be used with the register save feature to isolate program bugs quickly, then follow with single step. The Super Monitor is written with subroutines allowing users to take advantage of monitor lunctions simply by calling them up.

board displays provide output and optional high and low address. There is a 44 pin standard connector for PC cards and a 50 pin connector for the Quest Super Expansion Board. Power supply and sockets for all IC's are included In the price plus a detailed 127 pg. instruction manual which now includes over 40 pgs, of software info, including a series of lessons to help get you started and a music program and graphics target game. Remember, other computers only offer Super Elf features at additional cost or not at all. Compare before you buy. Super Elf Kit $106.9S, High address option $8.95, Low address option $9.95. Custom Cabinet with drilled and labelled plexiglass front panel $24.95. Expansion Cabinet with room for 4 S-100 boards J41.00. NICad Battery Memory Saver Kit $6.95. All kits and options also come completely assembled and tested.

Questdata, a 12 page monthly software publication for 1802 computer users is available by subscription for $12.00 per year.

Attention Elf Owners

New products In hardware and software coming soon.

Tiny Basic cassette $10.00, on ROM $38.00, original Elf kit board $14.95.

Cassette Interface $89.95

Improvements and revisions are easily done with the monitor. If you have the Super Expansion Board and Super Monitor the monitor is up and running at the push of a button. Other on board options include Parallel Input and Output Ports with full handshake. They allow easy connection ol an ASCI I keyboard to the input port. RS 232 and 20 ma Current Loop for teletype or other device are on board and if you need more memory there are two S-100 slots lor static RAM or video boards. A Godbout 8K RAM board Is available for $135.00. Also a IK Super Monitor version 2 with video driver for full capability display with Tiny Basic and a video interface board. Parallel I/O Ports $9.85, RS 232 $4.50, TTY 20 ma l/F $1.95, S-100 $4.50. A 50 pin connector set with ribbon cable is available at $12.50 for easy connection between the Super Ell and the Super Expansion Board. The Power Supply Kit for the Super Expansion Board is a 5 amp supply with multiple positive and negative voltages $29.95. Add $4.00 lor shipping. Prepunched frame $7.50. Case $10.00. Add $1.50 for shipping.

Auto Clock Kit $17.95

DC clock with 4-.50" displays. Uses National MA-1012 module with alarm option. Includes light dimmer, crystal timebase PC boards. Fully regulated, comp. instructs. Add $3.95 for beautiful dari< gray case. Best value anyv^ere.

RCA Cosmac VIP Kit $229.00

Video computer with games and graphics. Fully assem. and test. $249.00 All VIP options avail, week deliv.

Not a Cheap Cloclc Kit $14.95

Includes everything except case. 2-PC boards. 6-.50" LED Displays. 5314 clock chip, transformer, all components and full instructions. Orange displays also avail. Same kit w/.SO" displays. Red only. $21.95 Case $11.75

60 Hz Crystal Time Base Kit $4.40

Converts digital clocks from AC line frequency to crystal time base. Outstanding accuracy. Kit includes; PC hoard, IC, crystal, resistors, capacitors and trimmer.

Digital Temp. Meter Kit $39.95

Indoor and outdoor. Switclies back and forth. Beautiful. 50" LED readouts. Nothing like it available. Needs no additional parts for complete, full operation. Will measure -100° to -f200°F, 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 charge and then charges them up, all in one kit w/full parts and instructions. $7,25

PROM Eraser win erase 25 PROMs in 15 minutes. Ultraviolet, assembled $34.50

Rockwell AIM 65 Computer

6502 based single board with lull ASCII keyboard and 20 column thermal printer. 20 char, alphanumeric display, ROM monitor, fully expandable. $375.00. 4K version $450.00. 4K Assembler $85.00, 8K Basic Interpreter $100.00. Power supply assem. in case $60.00. AIM 65 in thin briefcase with power supply $485.00.

TERMS: $5.00 min. order U.S. Funds. Calllresldents add 6% lax. BankAmericard and Master Charge accepted. Shipping charges will be added on charge cards.

74airm

TAOOH 7402N 7404N 7409N 741 ON 7414N 74ZON n22H 7430N 7442N 744 5N 7447N 7448N M&ON 7474N 7475N 74S5H 74S9N 7490N 7492N 7493H 7*9hH 741DON 74I07N 74121N 74123N 74I25N 74145N 741 SON 74I5tN 74154N 74157N 74IBIN 74162N 74163N 74174N 74175N 74igDN 7419ZN 74ia3N 7422IN 74298N 7436SM 7436GN 74367N

74Lt00 HL

74LSOON 74LS02N 74LS04N 74LS05N 74LS08(( 74LSfaN 74LS13N 74LS14N 74LS20N 741S22N 74LS2BN 74LS30H 741.S33N 74tS3eN 74LS74N 74LS75N 74t.S90N 74L593N 74LS96N 74LS107N 74LSI12N 74LS113N 74LS132N 74LS136N 74LSIS1N 74L5155N 74LS157N 74LS1G2N 74LSie3N 74LS174N 74LS190N 74LS22tN 74LS258N 74LS367N

LINEAR

CA304S

CA3046

CA306I

CA30e2

CA30S9

LM301AN(AH

Uri305H

LM307N

LM3aBN

LM309H

IM309K

LM3t1K/N

LM3t7T.'>(

LM3IB

IM320K.6

LM323K'5

LM320K-12

LM320K-15

LM320T-5

LM32D1-S

LM320T-12

LM3Z0T-15

LM324N

LM33gN

LM340K-5

LM340K-8

LM34aK-12

LM340K-15

LM340K-24

LM340T-5

IM340T-8

1.M340T-1Z

LM340T-15

LM340T-I8

LM340T'24

I.M343H

LM350

LM37a

LM377

LIM37gM tJ«380N LU3S1

LM382 LM703H

LM709H LM723H/N

LM733N

LM741CH

LM74m

LM747H/N

LM74eN

LM13D3N

LM13a4

LM1305

LM1307

LM13I0

LM145S

LM1800

LMiei2

LM1389

LM2lt1

LM2902

LM39O0N

LM3905

LM3909K

MC145BV

NESSON

NE555V

NEBseA

NE565A

NEseev

NE557V

NE570B

NE571B

78L05 .6

78108 .6

79L05 .7

78M05 .8

75tOB 1,7

7549ICN ,5

7549ZCN .S

75494CN ,a

A to D CONVERTER

eOSBB 4.5

870()CJ 13.9

870ICN 15S

8750CJ 13.S

10130 9.9

9400CJWF 7.4

iCL7103 9.5

ICL7107 14.2

8702 17.9

CMOS

CD34001 Fair. .5

CD4000 .1

CD4001 .2

CD4O02 .2

CD4006 1.1

CD4O07 .2

CD400B .2

004009 .3

CD4010 ,3

C04011 .2

CO4012 ,2

CO4013 .3

C040t4 .8

CD401S .8

CD4016 .3

C04017 ,9

CD40ie .9

CO4019 .2

CD4020 1.0

C04021 1.0

CD4022 .8

C04023 .2

CO4024 .7

CWOZS .2

CO402B 1.5

CO4027 .3

CO4028 .7

CD4029 1.0

CO4Q30 .2

CO403S ID

004040 1.0

C04CM2 .7

CD4043 .6

004044 .6

004046 1.6

004049 .3

004050 .3

004051 1.1 004060 1-4 004066 -7 0O4D68 .4 004069 .4 CD4O70 .4 004071 .2 CCM072 .2 CD4073 ,2 CD4075 .2 CD4D76 1.7 CD4D78 A CD40BI .2 C04062 .2 CD4116 .4 CD4490 5.5 CD4507 1.0 CD4Saa 4.2 CCMSIO 1-0 CD4511 ,9 CD4515 2.5 CD4516 1,1 CD4518 1.0 CM520 1.0 CD4527 1.5 CD4528 .7 CD4553 3.5 C04566 2-2

ready to hook uo writn tnnslormer ind

swHcries. Very compjcl ««h

.50" ind

.94- dioHs

IM100!A. C or E .50

1.99

102P3 TranttornMr

;.2S

WA1010A, Cor 6.84

11,95

SpKliI Innitormtr and ilx

iwlli;tiii whan purcAuid

w/modul>

MA10D3 car moduli .3'

gnsn nuor. dlipliy

15.BB

BTI3 BT20 8123 8724 BT25 BT2B

2102-1

2102AL'4

21L02-1

21F02

2104A-4

21D7B-^

21

2112-2

2114L-3

4t16

2513B

MM5262

MM5280

MM5320

MM5330

P0411D-3

PD4110-4

P5101L

420aA

82S25

giL02A

HD0165-5

MM57100

GIAYGSSOO-I

MCM6571A

9368

4100

PROM 1702A

NB2S23

N82S123

NB2St26

NB2S129

HB2S131

NSZSISe

NB2S137

2708

DHB577

8223

271611

2716 Ifilel

CHrSTALI

1 MMi

2MHI

4MHl

5MHi 10MHI 16 MHz 20MHI 32MHI 3276SMHE 1.8432 MHi 3,5795 MHz 2.0100 MHi 2.097152 MHi 2.4S76 MHI 3.2768 MHi 5.0688 MHi 5.IBS MHi 5.7143 MHi 6.5536 MHi

RESISTORS V4 Mtt 5% l0p<[lypB .03 I000p«rtype .012 25 per type .025 350 place pack 100 p«r type .015 Spertirpe S.75 KEYBOARDS

56 key ASCII UybovO kit S67.50 Fully assemMed 77.50

53 key ASCII kayboard Ut 60.00

Fully assembled 70.00 Endosurt 14,95 LEGS

RedTOia .15

Green. Yellow T01B .20

Jumbo Red .20

Green. Ortnpe. Yellow Jumbo .25 aipllle LED MaunllBB CNpi 8.S1.25 (ssectttrtd- amber, green. fcHow. dear) UjNTIHENTAL SPECIALTIES In ttock 'complefe line o( breadboird lest equip, HUX-ira a digll Freq. Ctr. SIZS.as OK WIRE WRAP TOOLS In itock PoflrtlB Muitlmetsr 116.00

DIGITAL THERMOMETER S48.50 Salt. oper. General purpose or medical 32"-230°F. Disposable probe cover i.2' accuracy, Comp. Assy, (n compact case, SwNehes tiom F' to Z'. COMPUTER BOARG KITS SK RAM Board KD 1135.00

4K EPROM Kit 114.95

I/O Board KB 44.50

&(1endei eoard w/connector 12,50

16K EPROM board kit w/o PROMS 74.50

"" ' "" "■ " $665.00

415.00 SPECIAL PRODUCTS MM5865 Stopwatch Timer 9.00 PC board 7.50

SwKcbes Mom. Pustibunon .27 3 pos. slide iS

Encoder KD0165-5 6.95

3 Digit Unlvtral Conntar Bowd Ktl Operates 5-lB Voti OC to 5 MHi lyp. .12S-LED display lO.M Voles Hluitad iwtlcn .50

Pintronlct iMA Logic

S235-00

J229.00 $369.00

3.50 10.00 16.00

CLOCKS

MM5309 3,0

MM531I 3,6

MM»12 4,B

MMS313 3.6

MM5314 3.9

MM531S 4,0

MM5316 5.0

MMS318 3-6

MM5369 2-1

MM584t 14.4

MM5B65 7.9

CT7001 5,8

OT7010 B.9

CT7015 8.9

MM5375AAn 3.9

MM5375AB/N 4.9

7205 16.5

7207 7.5

7208 15.9

7209 4,9 0S0026CN 3.7 OS0056CN 3.7 MM53t04 2.5 MICROPROCESSOR

A wim data 8.95 2143906

CONNECTORS

44 pin edge 100 pin edge too pin edgg W

KEYBGARO ENCODERS

AY5-Z376

AY5-3600

74C922

74C923

HD0165-5

IC Tstt Cllpi

TRANSICTGRS

2N1893 2N2222A 2N2369 2N2904A

2N2907A 2N3a53 2N363B 2N3643 2N3904

Analynr Kll

Model 10 TrlpBer

Expander Kit Model 150 Bus

Grabber Kit Sinclair 3W DIgll

MuHlmeler »3a.»3

Clock CiKfldir Kn 123.95

TRANSFORMERB 6V300ma 3.25

12 Von 300 malranslornHr 1.25 12.6V CT 600 ma 3.75

12V 250 ma will plug 2.95

S12S0 1ZVCT250maivallpli;g 3.50 17 95 24V CT 400 ma 3.B5

5 SO '"V 1.2 amp wall plog 4.85 5,50 12V 6 amp 12.95

6 95 OISPUYLEDS MAN1 CA .270 2.90 MAN3 CC .125 .39

IB MAN72/74 CA/CA .300 1.00 .47 DL704 CC .300 1-25

.47 DL707/DL707H CA .300 1.00 DL727/72B CA/CC .500 1.90 DL747/750 CA/CC .600 1.95 0L7S0 CC .600 1-95

FN0359 "" """ "

FNO50W507 FNOSOaSIO FHOBO0/BO7 ■ 3 digit Bubble

CC .357 CC/CA .500 1-35 CC/CA .500 .90 CCCA .800 2.20

1.75

3.00 CD4583

8085

ZBOA

8212

8214

8216

8224

8228

8251

8253

8255

8257

8259

1802CP plaa,

IB02DP plat.

1B61P

COP 180200

2H3055

2N4400

2K4401

2N4402

TIP31

TIP13A

25 NSN69 9 digit display

'lB 7520 Clairex photocells

;ifl TIL311 Haji

09 COMPUTER GRADE CAPS 25 1600 mid 200V 75 2000 mtd 45V .20 3200 50V

5500 25V

1,0

C0P1B61

8.50 10.00

0 25 19.50 19-50 13.95 17,95 11,50 1995 25,00 T2.95

6100

12000

Multi-volt Computer Power Supply

8v Samp, ±18v .Samp. 5v 1.5 amp, -5v .5 amp, 12v .5 amp, -12 option. ±5v, ±12v are regulated. Kit $29.95. Kit with punched frame $37.45. Woodgrain case $10.00.

Video Modulator Kit $8.95

Convert your TV set into a high quality monitor without affecting normal usage. Complete kit with 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 reference guide. Over 50,000 cross references. Free update service through 1979. Domestic postage $3.50. Foreign $5.00. 1978 IC Master doseout $19.50.

0 CDnmthifa RSZ32 25 Pin Submlnlalures OB25P 2-! DB25S 3-< Cover 1.! RS232 ComplBtfi Sn 6.50 35000 DE9P 1.50 55000 DE9S 1.95 B2000 DA15P 2.10 fflflOO 0A15S 3.10-i^ TtfOOOO

Stopwatch Kit $26.95

Full six diBit battery operated. 2-5 volts. 3.2768 MHz crystal accuracy. Times to 59 min., 59 sec, 991/100sec. Times std., split and Taylor. 7205 chip, all components minus case. Full instructions.

Hickok SVz Digit LCD Multimeter

Batt/AC oper. O.lmv-IOOOv. 5 ranges. 0.5% accur. Resistance 6 low power ranges 0.1 olim-20M ohm. DC curr. .01 to lOOma. Hand held. V LCD displays, auto zero, polarity, overrange. $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

8K/16K Eprom Kit (less PROMS) $89.00

Video Interface Kit $139.00 Motherboard $39. Extender Board $8.99

FREE: Send lor your copy ol our NEW 1979 QUEST CATALOG. Include 28c stamp.

Circle 311 on inquiry card.

BYTE August 1979 255

PER80M SAMPLER

^ r

For your SS-50 bus computer — the CIS-30+

• Interface to data terminal and (ivo cassette recorders with a unit only 1/10 the size of SWTP's AC-30.

• Select 30, 60, or 120 bytes per second cassette interfacing, 300, 600 or 1200 baud data terminal interfacing.

• Optional mod kits make CIS-30+ work with 3!)'^ microcomputer. (For MITS 680b, ask for Tech Memo TM-CIS30+—09.)

• KC-Standard/Bi-Phase-M (double frequency) cassette data encoding. Dependable self-clocking operation.

• Ordinary functions may be accomplished with 6800 Mikbug™ monitor.

• Prices: Kit, $79.95; Assembled, $99.95.

^Prices include a comprehensive instruction manual. Also available: Test Cassette, Remote Control Kit (for program control of recorders), IC Socket Kit, MITS 680b mod documentation. Universal Adaptor Kit (converts CIS-30+ for use with any computer). MiKBUG®Motorola, inc.

In the Product Development Queue . . .

Coming PDQ. Watch for announcements.

6809 Processor Card — With this SS-50 bus PC board, you'll be able to upgrade with the microprocessor that Motorola designers describe as the "best 8-bit machine so far made by humans."

The Electric Crayon™ — This color graphics system includes its own \x? and interfaces to virtually any microcomputer with a parallel I/O port.

Printer Interface — For your TRS-80™. Interface any serial RS232 printer to your TRS-80™ with this system.

'"ELECTRIC WINDOW, ELECTRIC CRAYON. Pilon30 and Pilon-10 are trademarks of Percom Data Company, Inc.

TRS-80 is a trademark ot Tandy Corporation and Radio Stiack whicti tias no relationship to Percom Data Company

Orders may be paid by cbeck or money order, or charged to vita or Master Charge credit account. Texas residents must add 5% tales tax.

For your data storage — Pilon-30^" and Pilon-10^" data cassettes

• Orders-of-magnitude Improvement in data integrity over ordinary audio cassettes.

• Pilon-coated pressure pad eliminates lint-producing felt pad of standard audio cassettes.

• Smooth pilon coating minimizes erratic tape motion.

• Foam pad spring is energy absorbing. Superior to leaf spring mounted pad which tends to oscillate and cause flutter

• Five-screw case design virtually precludes deformation during assembly.

• Price: $2.49.

For your S-100 computer—the CI-812

• Both cassette and data terminal interfacing on one S-100 bus PC board.

• Interfaces (wo recorders. Record and playback circuits are independent.

• Select 30, 60, 120, or 240 bytes per second cassette interfacing, 110 to 9600 baud data terminal Interfacing.

• KC-Standard/Bi-Phase-M (double frequency) encoded cassette data. Dependable self-clocking operation.

• Optional firmware (2708 EPROM) Operating System available.

• Prices: kit, $99.95; assembled, $129.95.

Prices Include a comprehensive Instruction manual. In addition to the EPROM Operating System, a Test Cassette, Remote Control Kit (for program control of recorders), and an IC Socket Kit are also available.

CASSEHE SOFTWARE

For 8080/Z-80 ^Cs . . .

BASIC ETC — Developed by the coauthors of the original Tiny BASIC, BASIC ETC is easy to use yet includes commands and functions required for powerful business and scientific programs as well as for hobby applications. 9.5K bytes of RAM. 1200-baud cassette and 42-page user's manual $35.00

Cassette Operating System — EPROM (2708) COS for the Percom CI-812 dual peripheral interfacing PC card .. $39.95

If you're programming on a 6800 /xC, you'll want these development and debugging programs written by Ed Smith of the Software Works: Disassembler/Source Generator — Disassembles SWTP Resident Assembler, TSC Mnemonic Assembler/Text Editor or Smoke Signal Mnemonic Assembler/Text Editor and produces compacted source code suitable for re-editing. Prints or displays full assembly-type output listing. 4K bytes of RAM. (Order M68SG) $25.00

Disassembler/Trace — Use to examine (or examine and execute) any area of RAM or ROM. "Software-single-step" through any program, change the contents of CPU or memory location at any time, trace subroutines to any depth. 2.3K bytes of RAM.

(Order M68DT) $20.00

EPROM Support/Relocator Program — This program relocates a program in any contiguous area of RAM or ROM to anywhere in RAM. Use to assemble and test programs in RAM, adjust programs for EPROM operating addresses and then block move to your EPROM burner address. 952 bytes of RAM. Loads at hex 1000.

(Order M68EP) $20.00

Relocating Assembler & Unking Loader

(M68AS) $50.00

Relocating Disassembler & Segmented Source Text Generator (M68RS) $35.00

Americana Plus — 14 tunes for the Newtech Model 68 Music Board in machine language ready to load and run. Cassette compatible with Percom CIS-30-t- and SWTP AC-30. Order MC-1SW .. $15.95

HARDWARE

Newtech (Model 68 Music Board — Produces melodies, rhythms, sound effects, morse code, etc. from your programs. Includes manual with BASIC for writing music scores and assembly language routine to play them. I nstalls in SWTP I/O slot. Assembled & tested $59.95

The Percom ELECTRIC WINDOW™ —

Memory-resident and programmable, this video display character generator board for your SS-50 bus displays up to 24 80-character lines. Features dual character generators, dual-intensity high-lighting. One programmable register controls scrolling. Compatible with

standard video monitors $249.95

SS-SO Prototype Canls:

Large card (up to 70 40-pin ICs) $24.95

I/O size card $14.95

PERCOM"^" 'peripherals for personial computing'

PERCOM DATA COMPANY, INC.

DEPT.B

211N.KIRBY* GARLAND, TX. 75042

To order products or request additional literature, call Percom's toll-free number: 1-800-527-1592. For detail technical information call(214) 272-3421.

256 BYTE August 1979

Circle 301 on inquiry card.

Circle 126 on inquiry card.

Hie D^UDtrllLlNS 1000

A completely refurbished IBM Selectric Terminal with built-in ASCII Interface.

Features:

$1395

300 Baud

14.9 characters per second

printout

Reliable heavy duty Selectric

mechanism

RS-232C Interface

Documentation included

60 day Avarranty-parts and

labor

High quality Selectric printing

Off-line use as typewriter

Optional tractor feed available

15 inch carriage width

HOWTO ORDER DATA-TRANS 1000

1. We accept Visa, Master Charge. Make cashiers checks or jjersonal check payable to:

DATA-TRAXS

2. All orders are shipped F.O.B. San Jose, CA

3. DeUveries are immediate

For orders and information

DATA-TRANS

2154 OToole St. UnitE

SanJoscjCA 95131 Phone: (408) 263-9246

MICAO

PROCESSORS:

FROM CHIPS TO

SYSTEMS

This bool< cover aii aspects of microprocessors, from tfie basic concepts to advanced interfacing techniques, in a progressive presentation. It is independent from any manufacturer, and presents uniform standard principles and design techniques, including Che interconnect of a standard system, as well as specific components. It introduces the MPU, how it works internally, the system components (ROM, RAM, UART, PIO, others), the system interconnect, applications, programming, and the problems and techniques of system development. By R. Zaks. SYBEX. Ref. C201. S9.95

MICROPROCESSOR INTERFACING TECHNIQUES

Microprocessor interfacing is no longer an art. It is a set of techniques, and in some cases just a set of components. This comprehensive book introduces the basic interfacing concepts and techniques, then presents in detail the implementation details, from hardware to software. It covers all the essential peripherals, from keyboard to floppy disk, as well as the standard buses (S100 to IEEE 488) and introduces the basic troubleshooting techniques. (2nd Expanded Edition). By Austin Lesea and R. Zaks. Ref. C207 SYBEX. S11.95

PROGRAMMING THE 6502

PROGRAMMING THE Z80

PROGRAMMING THE 8080* It covers all essential aspects of programming, as well as the advantages and disadvantages of the 6502 and should bring the reader to the point where he can start writing complete applications programs. For the reader who wishes more, a companion volume is available: The 6502 Applications Book. By R. Zaks. 6502: Ref. C202; Z80: Ref. C280; 8080: Ref. C208. SYBEX. Each $10.95

44 BUS MOTHER BOARD

Has provisions for ten 44 pin (.156) connectors, spaced 3/4 of an inch apart. Pin 20 is connected to X, and 22 is connected to Z for power and ground. All the other pins are connected in parallel. This board also has provisions for bypass capacitors. Board cost $15.00 Part No. 102. Connectors

$3.00 each Part No. 44WP.

AN INTRODUCTION

TO PERSONALAND

BUSINESS

COMPUTING

No computer background is required. The book is designed to educate the reader in all the aspects of a system, from the selection of the microcomputer to the required peripherals. By Rodney Zaks. Ref. C200, SYBEX $6.95

TVTCOOKBOOK

Bk 1064 — by Don Lancaster Describes the use of a standard television receiver as a microprocessor CRT terminal. Explains and describes character generation, cursor control and interface Information in typical, easy -to- understand Lancascaster style. $9.95

COMPUTER ^ PROGRAMMING HANDBOOK

A complete guide to computer programming & data processing. Includes many worked-out examples. By Peter Staak. TAB $9.95

DIGITAL CASSETTE

5 min. each side. Box of 10 $9.95. Part No. C-5.

g

iBH

Tq OrdSr ■ '^^"'•'°" P^'"'-"°- dBscnption, 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., shipping charges will be added. CA residents add 6.5% for tax. Outside USA add 10% for air mall postage and handling. 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 Oept. B, p. O. box21538, SanJose, causa95151

Circle 125 on inquiry card.

BYTE August 1979 257

COMPUCRUISE

Put a computer in your car, which gives you the most effective and functional cruise control ever designed, plus complete trip computing, fuel management systems, and a remarkable accurate quartz crystal time system. So simple a child can operate, the new CompuCruise combines latest computer ^technology with state-of-the-art reliability in a package which will not likely be available on new cars for years to come • Cruise Control • Time, E.T., Lap Timer, Alarm

• Time, Distance, Fuel to Arrival • Time, Distance, Fuel to Empty • Time, Distance and Fuel onTrip • Current or Average MPG, GPH« Fuel Used, Distance since Fillup • Current and Average-Vehicle Speed • Inside, Outside or Coolant Temperature

• Battery Voltage • English or Metric Display $199.95

FLOPPY DISK STORAGE BINDER

This black vinyl three-ring binder comes with ten transparent plastic sleeves which accommodate either twenty, five-inch or ten, eight-inch floppy disks. The' plastic sleeves may be ordered separately and added as needed. A contents file is included with each sleeve for easy identification and organizing. Binder S 10 holders $14.95 Part No. BBOO; Extra holders 95« each. Part No. 800

OPTO-ISOLATED

PARALLEL INPUT

BOARD FOR

APPLE II

There are 8 inputs that can be driven from TTL logic or any 5 volt source.The circuit board can be plugged into any of the 8 sockets of your Apple II. It has a 16 pin socket for standard dip ribbon cable connection.

Board only $15.00. Part No. 120, with parts $69.95. Part No. 120A.

TIDMA

• Tape Interface Direct Memory Access • Record and play programs without bootstrap loader (no prom) has FSK encoder/decoder for direct connections to low cost recorder at 1200 baud rate, and direct connections for inputs and outputs to a digital recorder at any baud rate • S-100 bus compatible • Board only $35.00 Part No. 112, with parts $110 Part No. 112A

SYSTEM MONITOR

BOBO, 8085, or Z-80 System monitor for use with the TIDMA board. There is no need far the front panel. Complete with documentation

$12.95.

Hdw to Profit from Your Personal

Computer: Professional, Business, and Home Applications '...useful reading for the small businessman, contemplating a computer, or for the personal computer advocate contemplating a business application." Kilobuad. By r. G. Lewis. HAYDEN 78-2780. $8.95

ASCII KEYBOARD

TTL & DTL compatible • Full 67 key array

• Full 128 character ASCII output • Positive logic with outputs resting low • Data Strobe

• Five user-definable spare keys • Standard 22 pin dual card edge connector • Requires 4-5VDC, 325 mA. Assembled & Tested. Cherry Pro Part No. P70-05AB. $135.00.

ASCII KEYBOARD

53 Keys popular ASR-33 format • Rugged G-10 R C. Board • Tri-mode MOS encoding • Two-Key Rollover • MOS/DTL/TTL Compatible • Upper Case lockout • Data and Strobe inversion option • Three User Definable Keys • Low contact bounce • Selectable Parity • Custom Keycaps • George Risk Model 753. Requires +5, -12 volts. $59.95 Kit.

ASCII TO CORRESPONDENCE CODE CONVERTER

This bidirectional board is a direct replacement for the board inside the Trendata 1000 terminal. The on board connector provides RS-232 serial in and out. Sold only as an assembled and tested unit for $229.95. Part No. TA1000C

DISK JACKET'"

Made from heavy duty .0095 matte plastic with reinforced

grommets. The minidiskette version holds two 5-1/4 inch diskettes and will fit any standard three ring binder. The pockets to the left of the diskette can be used for listing the contents of the disk. Please order only in multitudes of ten. $9.95/10 Pack.

INTERNATIONAL

MICROPROCESSOR

DICTIONARY

English, French, Danish, German, Italian, Hungarian, Norwegian, Polish, Spanish, Swedish. 10 languages, 28 pp. SYBEX. Ref. IMD. $4.95

TTLCOOKBOOK

Bk 1063 — by Don Lancaster. Explains what TTL' is, how it works, and how to use it. Discusses practical applications, such as a digital counter and display system, events counter, electronic stopwatch, digital voltmeter and a digital tachometer. $8.95

MICROPROCESSOR LEXI CON —ACRONYMS AND DEFINITIONS

Bk 1040 —compiled by the staff of SYBEX, is a convenient reference in pocket-size format. Sections include acronyms and definitions, part numbers and their definitions, S-10Q signals,

RS232 signals, IEEE 499 signals, microcomputers and microprocessors. JETDS summary (military) and a code conversion table. $2.95

RS-232/20inA INTERFACE

This board has two passive, opto-isolated circuits. One converts RS-232 to 20mA, the other converts 20mA to RS232. All connections go to a 10 pin edge connector. Requires +12 and -12 volts. Board only $9.95, part no. 7901, with parts $14.95 Part No. 7901A.

COMPUCOLORII

Model 3, 8K $13.95, Model 4, 16K $15.95, Model 5, 32K $18.95. Prices include color monitor, computer, and one disk drive.

PET COMPUTER

With 32K & monitor $1195. Dual Disk Drive-$1195.

||Eippia

11

16K - $1095, 32K $1195, 48K - $1293. Disk&cont. $589

6502 ^

APPLICATIONS BOOK Z80 APPLICATIONS

BOOK' This book will teach you how to connect a board to the outside world and implement practical applications for the 6502, (or ZBO). Applications range from home control (a complete alarm system, including heat sensor), to industrial applications. You will learn techniques ranging from simulated traffic control to analog-digital conversion. All experiments can be realized with a minimum of external (low-cost) components. They are directly applicable to any 6502-based board such as SYM, KIM, AIM 65. This book also studies in detail input-output techniques and components, and is the logical continuation of C202 (or C280). By Rodney Zaks.

SYBEX. 6502: Ref. D302; ZBO: Ref D380. Each $12.95

T.V. INTERFACE

• Converts video to AM modulated RF, Channels 2 or 3. So powerful almost no tuning is required. On board regulated power supply makes this extremely stable. Rated very highly in Doctor Dobbs' Journal. Recommended by Apple • Power required is 12 volts AC C.T., or +5 volts DC • Board only $7.60 part No. 107, with parts $13.50 Part No. 107A

QiaiEjiqiniqiqi

PARALLEL TRIAC

OUTPUT BOARD

FOR APPLE II

This board has 8 tnacs capable of switching 110 volt 6 amp loads (660 watts per channel) or a total of 5280 watts. Board only $15.00 Part No. 210, with parts $119.95 Part No. 21OA.

Tq Qrrjor ■ Mention part no. description, and price. In USA shipping paid by us for orders accompanied by checl< 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., ^1 shipping charges will be added. CA residents add 6.5% for tax. Outside USA add 10% for air mail postage and han

dling. Payment must be in U. S. dollars. Dealer inquiries invited. 24 hour order line C408) 22B-40B4.

Send for FREE Catalog ... abig self-addressed envelope v\/ith41« postage gets it fastest!

ELECTRONIC SYSTEMS ^^P^- B, p. O. box 21638,SanJose, causa95151

258 BYTE Augvsl 1979

Circle 125 on inquiry card.

TRS-BO" SERIAL I/O

• Can input into basic

• Can use LLIST and LPHINT to output, or output continuously • RS-232 compatible • Can be used with or without the expansion bus • On board switch selectable baud rates of 110,150,300,600, 1200, 2400, parity or no parity odd or even, 5 to 8 data bits, and 1 or 2 stop bits. D.T.R line • Requires +5, -12 VDC •Board only $19.95 Part No. 8010, with parts $59.95 Part No 801OA, assembled $79.95 Part No. 8010 C. No connectors provided, see below.

E1A/RS-23S connoclor Part No. DB55P£aQ0.wch 9'. B conductor cable S10.95 Part No DB25Pg

3' nbbon caUs iwithattschBdcon. nactorsiodtTRSBO and our senal board $19.95 Part No. 3CAB40.

RS-232/ TTL INTERFACE

• Converts TTL to RS232, and converts RS232 to TTL • Two separate circuits • Requires -12 and +12 volts • All connections go to a 10 pin gold plated edge connector

• Board only $4.50 Part No. 232, with parts $7.00 Part No. 232A 10 Pin edge connector $3.00 Part No. 10P

MODEM

• Type 103 • Full or half duplex •■Works up to 300 baud • Originate or Answer • No coils, only low cost components • TTL input and output-serial

• Connect 8 fl speaker and crystal nnic. directly to board • Uses XR FSK demodulator • Requires +5 volts • Board only $7,60 Part No. 109, with parts $27.50 Part No. 109A

DISKETTES

Vfertjatim

Boxof 10, 5"$29.95, 8" $39.95.

Plastic box, holds 10 diskettes, 5" - $4.50, 8"-$6.50.

RS-e32/TTY INTERFACE

This board has two active circuits, one converts RS-232 to 20mA, and the other converts 20mA to RS-232. Requires +12 and -12 volts. Board only $4.50 Part No. 600, with parts S700 Part No. 600A.

A1*rA-(3 tfPiJ

8-100 BUS ACTIVE TERMINATOR

Board only $14.95 Part No, 900, with parts S2495 Part No. 900A

APPLE II-::

SERIALI/O INTERFACE

Baud rate is continuously adjustable from 0 to 30,000 • Plugs into any peripheral connector • Low current drain. RS-232 input and output • On board switch selectable 5 to 8 data bits, 1 or 2 stop bits, and parity or no parity either odd or even • Jumper selectable address • SOFTWARE • Input and Output routine from monitor or BASIC to teletype or other serial printer • Program for using an Apple II for a video or an intelligent terminal. Also can output in correspondence code to interface with some selectrics. • Also watches DTR • Board only $15.00 Part No. a, with parts S42.00 Part No. aA, assembled $62.00 Part No. 2C

8K EPROM PiicEON

Saves programs on PROM permanently(until erased via UV light) up to 8K bytes. Programs may be directly run from the program saver such as fixed routines or assemblers. • S100 bus compatible • Room for 8K bytes of EPROM non-volatile memory (2708's). • Onboard PROM programming • Address relocation of each 4K of memory to any 4K boundary within 64K • Power on jump and reset jump option for "turnkey" systems and computers without a front panel • Program saver software available • Solder mask both sides • Full silkscreen for easy assembly. Program saver software in 1 2708 EPROM $25. Bare board $35 including custom coil, board with parts but no EPROMS $139, with 4 EPROMS $179, with 8 EPROMS $219.

WAMECO PRODUCTS

WITH

ELECTRONIC SYSTEMS PARTS

FDC-1 FLOPPY CONTROLLER BOARD will drive shugart. pertek, remex 5" & 8" drives up to 8 drives, on board PROM with power boot up, will operate with CPM (not included). PCBD $42.95

FPB-1 Front Panel. (Finally) IMSAI size hex displays. Byte or instruction single step. PCBD S42.95

MEM-1A 8Kx8 fully buffered, S-100, uses 210a type RAMS. PCBD $24.95, $1 68 Kit

QMB-12 MOTHER BOARD, 13 slot, terminated, S-100 board only $34.95

$89.95 Kit

CPU-1 8080A Processor board S-100 with

8 level vector interrupt PCBD .. $25.95

$89.95 Kit

RTC-1 Realtime clock board. Two independent interrupts. Software programmable. PCBD $25.95, $60.95 Kit

EPM-1 17D2A 4K EPROM

card PCBD $25.95

$49.95 with parts less EPROMS

EPM-2 a708/a716 16K/32K

EPROM card PCBD $24.95

$49.95 with parts less EPROMS

OMB-g MOTHER BOARD. Short Version of

QMB-12. 9 Slots PCBD $30.95

$67.95 Kit

MEM-2 16Kx8 Fully Buffered 2114 Board PCBD $25.95, $369.95 Kit

T.V. TYPEWRITER

• Stand alone TVT

• 32 char/line. 16 lines, modifications for 64 char/line included

• Parallel ASCII (TTL) input • Video output

• 1K on board memory

• Output for computer controlled curser • Auto scroll • Nondestructive curser • Curser inputs: up, down, left, right, home, EOL, EOS • Scroll up, down

• Requires +5 volts at 1.5 amps, and -1 2 volts at 30 mA • All 7400. TTL chips • Char. gen. 2513 • Upper case only • Board only $39.00 Part No. 106, with parts $145.00 Part No. 106A

UART& BAUD RATE GENERATOR

• Converts serial to parallel and parallel to serial • Low cost on board baud rate generator • Baud rates: 110, 150 300, 600, 1200, and 2400 • Low power drain +5 volts and -12 volts required • TTL compatible • All characters contain a start bit, 5 to 8 data bits, 1 or 2 stop bits, and either odd or even parity. • All connections go to a 44 pin gold plated edge connector • Board only $12.00 Part No. 101, with parts $35.00 Part No. 101 A, 44 pin edge connector $4.00 Part No. 44P

TAPE INTERFACE

• Play and record Kansas City Standard tapes

• Converts a low cost tape recorder to a digital recorder • Works up to 1200 baud •Digital in and out are TTLserial • Output of board connects to mic. in of recorder • Earphone of recorder connects to input on board

• No coils • Requires +5 volts, low power drain • Board only $7.60 Part No. Ill, with parts $27.50 Part No. 111A

HEX ENCODED KEYBOARD

E.S. This HEX keyboard has 19 keys, 16 encoded with 3 user definable. The encoded TTL outputs, 8-4-2-1 and STROBE are debounced and available in true and complement form. Four onboard LEDs indicate the HEX code generated for each key depression. The board requires a single +5 volt supply. Board only $15.00 Part No. HEX-3, with parts $49.95 Part No. HEX3A. 44 pin edge connector $4.00 Part No. 44P.

DC POWER SUPPLY

• Board supplies a regulated +5 volts at 3 amps., +1 2, -12, and -5 volts at 1 amp. • Power required is 8 volts AC at 3 amps., and a4 volts AC C.T. at 1.5 amps. • Board only $12,50 Part No. 6085, with parts excluding transformers $42.50 Part No. B085A

To Ordfir ■ '^^"'''°" P^'^'-"°- description, and price. In USA shipping paid by us for orders accompanied by checic or money order.

l\> VIUCI a yyg accept C.O.D. orders in the U, S. only, or a VISA or Master Charge no., expiration date, signature, phone no., shipping charges will be added. CA residents add 6.5% for tax. Outside USA add 10% for air mail postage and handling. Payment must be in U. S. dollars. Dealer Inquiries invited. 24 hour order line C40B) 226-4064.

Send for FREE Catalog ... a big self-addressed envelope with 41* postage gets it fastest!

ELECTRONIC SYSXEMS f'ept. B, p. O. box 21638, San Jose, CA USA 95151

Circle 125 on Inquiry card.

BYTE August 1979 259

The EXPANDORAM is available In versions from 16K up to 64K, so for a minimum Investment you can have a memory system that will grow with your needs. This Is a dynamic memory with the invlsable on-board refresh, and IT WORKS!

• 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 TitUmaU S-fOO 7fU»HMtf

'■f"1S^'"ET~'''CT''%'

H-iiiiiyiiitliiiiiiT

• Extensive documentation clearly written

• Complete Kit includes all Sockets for 64K

• Memory access time: 375ns, Cycle time: 500ns.

• No wait states required.

• 16K boundries and Protection via Dip Switches

• Designed to work with Z-80, 8080, 8085 CPU's.

EXPAND0 64KIT(4116)

16K $249

32K $324

48K $399

64K $474

Sugart SA400 5V4"

with attractive metal case

$325

Sugart 801 with attractive metai case

$495.00

Siemens FDD 200-88" double-sided \ double density

$650.00

DISC CONTROLLER SD "VERSAFLOPPY" Kit

Only MSS"

The Versatile Floppy DIak Controtler

FEATURES IBM 3740 Soft Sectored Compatible. S-100 BUS Compatible for Z-SO or 8080. Controls 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. PEHSCI 70 and 277.

4. MFE 700/750.

5. CDC 9404/9406,

6. GSI/Siemans FDD120-8.

34 Pin Connector lor Mini Floppy. 50 Pin Connector for Standard Floppy, operates with modified CP/M operating system and C-Basic Compiler. The new "Versafloppy" from S.D. Computer Products provides complete control for many of the available Floppy Disk Drives, Both Mini and Full Size. FD1771B-1 Single Density Controller Chip. Listings tor Control Software are Included In price. « . nnnn

CPM for SD Versafloppy '100""

DM2700S DISK &

CABINET with POWER SUPPLY

DM2700S includes Slemans or

Shugart Disk Drive

with the following features:

'^CONTINENTAL SPfClALTIES CORPORATION

• Singie 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 unformaled • Accepts per SCI, Shugart, Siemans

• Bit density 6536 BP1 8" Drives

. Sugart 800 Series Compatabie DM2700 Cabinet, less Drive

DM2700S Disl< Drive & Cabinet ^acnaa "^tK-j^tttn c/^'Mrnn

REG. $750 SALE PRICED ^SSOO" 32492° '225°°

SPECIAL: SD Versafloppy Kit, CPM. and DM2700S *888 V

LOOIC PROBES

Logic Probes and Digital Puisers

^%

*^if "X^ "^

CSC logic probes are the ultimate tool (or breadboard design and testing. Ttiese hand-held units provide an instant overview of circuit conditions. Simple to use: just clip power leads to circuit's power supply, set logic family switch to rrUDTL or CMOS/HTL. Touch probe to lest node. Trace logic levels and pulses through digital circuits. Even stretch and latch lor easy pulse detection. Instant recognition of high, low or invalid levels, open circuits and nodes. Simple, dual-level detector LEDs tell II quickly, correctly. Ht (Logic "1"): LO (Logic "0"). Also Incorporates blinking pulse detector. e.g., HI and LO LEDs blink on or oft, tracking "1" or "0" stales al square wave Irequancles up lo 1.5 MHz. Pulse LED blinks on for Vj second during pulse transition. Choice of three models lo meet individual requirements; budget, project and speed of logic circuits.

MODEL LP-1

Hand-held logic probe provides Inslant reading of logic levels for TIL, DTL. HTL or CMOS. Input lmp«danc«: 100,000 ohms. Minimum Deteclabie Pulse: SO ns. Maximum Input Signal (Frequency): 10 MHz. Pulse Detector (LED): High apeod Irain or single event. Puis* Marnory: Pulse of level transition detected and stored. *^^^-^~

^SC Model Lp.l Logic Probe-Net Each S^f^^ $42.70

MODEL LP-2

Economy version of Model LP-1. Safer than a voltmeter. More accurate Ihan a scope. Input Impedance: 300,000 ohms. Minimum Detectable Pulaa: 300 ns. Menimuin Input Signal (Frequency): 1.5 MHz. Pulse Detector (LED): High speed train or single event. Pulie Memory: None. ^^ ^

CSC Model LP-2 Logic Probe—Net Each 04:^ $23.70

MODEL LP-3

High speed logic probe. Captures pulses as short as 10 ns. Input Impedance: 500,000 ohms. Minimum Delectable Pulse: 10 ns. Maximum Input ' Signal (Frequency): 50 MHz, Pulse Detector (LED): High speed train or single event. Pulse Memory: Pulse or level transition detected and stored. CSC Model LP-3 Logic Probe-Net Each ^bft^ SB6.45

DIOrTAL PULSER

The ultimate In speed and ease of operation. Simply conned clip leads to positive and negative power, then touch DP-l's probe lo a circuit node; automatic polarity sensor delects circuit's high or low condition. Depress the pushbutton and trigger an opposite polarity pulse into the circuit. Past troubleshooting Includes injecting signals at key points In TTL, DTL, CMOS or other popular circuits. Test with single pulse or 100 pulses par second via built-in dual control push-bulton; button selects single shot or con' tinuous modes. LED Indicator monitors operating modes by flashing once for single pulse or continuously for a pulse train. Completely aulomalic, pencil-size lab/field pulse generator for any family of digital circuits. Output: Tri-stale. Polarity: Pulse-sensing auto-polarity. Syne and Source: 100 mA. Pulse Train: 100 pps. LED Indicator: Flashes lor single pulse; stays lit for pulse trein. CSC Model DP-1 Digital Pulsar—Net Each (M;^ $71.20

SD COMPUTER BOARDS

"^lM.^^iri-n,

"^in!'"f!?r

|$319 KIT^" VDB-8024 Video Display Board With On-Board Z80 Microprocessor

• FulltiUChanu:tcn«b>':!4liiit:itdl>tiilBy

• Ctmrucurtt dlnplaycil bj- High RcnoluUon 7x10 Matrix

■ Kcytxianl Power and Interface

• CampoMltcVldcoOutput

• Scpamu TTl, l£ve\ SyncbmtOiMirm nnd Video (luiputs

• 2K BytCB Independent On Bomil Mcinoiy

• On-Board Z80 Mlcraprocctuur

• Glldi Free IMbpW

• 96 Upper and Lower(^aHeChaivcii.-rH

• 32 Speclat Character Set

• 128 AddlUonal user PiDgrammable Choraetcro

• Full Cursor Control

• Forward and Rcveim: Scinlllng CapabUlty

■ Operatcti as an Indcfiendcnt Terminal

• Variable Speed Dtnplay Rate

■ Blinking, Underilnlng, Field Reveme, FWId Protect and D)niblnBUonii

$239 KIT^

SBC-100 Single Board Computer

with Onboard RAM, PROM, CTC

a Four Channel Cuunirr/Tlmer

izao-crci

• Software Proftnuumable Huud Hale Gcacmlor

• S-100 Bini QmipaUbIc

• NoFiDOtPanel RequiredIbrOpcratlnn

• Optkmol Vectored Interrupts

• ZtJOCentral PnK:n)alng L'nK

• 1024Bytcnof Raiuloui'VcccMiMeinoo'

• BK Bytes orAvaikbk PKOM

• Serial InpuL'Oitpui Port u-lih bulh SynchnKiouB and Aii>-nchTanoua Operation

• I^rallel Input and Output Porta

$249

Z80 Starter Kit

A Complete Microcomputer on a Boardl

PRIORITY ONE ELECTRONICS

16723B Roscoe Blvd. Sepulveda, CA 91343

Terms: Visa, MC, BAG, Check, Money Order, C.O.D. U.S. Funds Only. CA residents add 6% sales tax Minimum order $10.00. Prepaid U.S. orders less than $75.00 include 5% shipping and handling rninlmum $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.

Dhone orders welcome (213) 894-8171. (800) 423-5633 inquiries invited,

• Z80 Ornirftl ProccMtlnK Lnit »1ih li InHtructions

• On Ditard Keyboard and Ulaplay

• KiuiMUtCit}'Standard Oiseclti: Inierfucc

• PRtJM Prognunmcr Uuilt on-boord

• E.xi>aiislonpmv1slonfort»oS-llX)

• Wire Wrap aivu for cimtiim tlrculiry

• SlnfllcBVutlOperutluiitthcnuot {inmtiuntrUti^

• IK B\le» or RiUI (Eicpandubic U> £

• TwuUl-din^etliiruUK-bll I/O l\>n^{Vi*iPIO)

• Switch Sclcctubk I'KOM c.r M<mlii.r Rctitun

• 2K n>-tc ZBI■<; Miiiilior Ui HtJM

• Mcmiin' Examine luwl Qiiuik<'

• Port Examine und Change

• /JVirn'ReKlHltrE-tumlncundLliaiige

• rpiu6I*nifiruintimble BrcokpolniK

■ Single Stci> Uinnagh H,VM or PROM

■ Aiirii(iCuwie(tcLouiliuKll)ump

• Vcciiircd InicmiptM provided b)' Z«(MTCandZ«>-PIO

« IK U>-tes of RAM (Expandable lo SK • [deal fur E-xikt ___. . , , , , Kyxe») EiiiluuUii|itlu:ZHOCPI'

UcM and InStltUIIOnai •4('hunnclllardvL'iireC<>uniermmer (ZHO-tTC)

ORDER TOLL FREE 1-800-423-5633 ORDER TOLL FREE 1-800-423-5633

Visit our new reto

Circle 312 on inquiry card.

A Portable, Dual Trace Oscilloscope with Big Performance and a Low, Low Price

NEW MS-230 Dual Trace MInlscope with 30 MHz Bandwldthl

555900

PORTABLE BATTERY OPERATED • MADE IN THE U.S.A.I 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/dlv—21 settings. • Battery of line operation

• Line synchronization mode. • Power consumption less than SOW.

• Vertical Gain—0.01 to 50 voits/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 performance records for Osclloscopes, Non-Linear Systems, comes the MS-230 miniscope.

Non Linear Systems tooi( their engineering and modular construction sltlils and made a dream a reality, a Dual-Trace 30 MIHz miniscope, small enough to fit In most briefcases with room to spare at an affordable price.

Non-Linear Systems, Inc. ProgrssB Since 1952

VERTICAL

Mode: CHI, CH2, CH1 & CH2(Chopped) & CH2(Alt.) (The following speclflcallons apply to each channel.) Bandwidth: DC to 30 MHz, ± 3 db ® 3 division deflection. Typical 4 division deflection 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 50VMiv In 12 calibrated ranges. Accuracy Is 3% of full scale with vernier In lull clockwise position. Vernier provides continuously variable deflection factors between fixed ranges, uncallbrated. Input Impedance: 1 megohm in parallel with SO pF. Maximum Input Voltage: 250V (DC and Peak AC).

HORIZONTAL

Mods: internal Time Base or External Horizontal, switch selectable. In the XY mode, vertical Input is through CHI and horizontal Input through CH2. Time Base: O.Su Sec/dlv to 0.2 Sec/dlv In 21 calibrated ranges. Accuracy Is 3% of full scale with vernier In full clockwise position. Vernier provides continuously variable settings between fixed ranges, uncallbrated. 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/dlv In 12 calibrated ranges. The ranges can be calibrated with the CH2 gain control. Input Impedance: 1 megohm in parallel with 50 pF. Maximum Input Voltage: 2S0V (DC and Peak AC).

TRIGGER

Modes:

Automatic: trigger Is disabled, time base free runs.

internal: In the dual trace modes, the Internal trigger source is CHI. External and Line (line not functional when MS-230 operates on batteries.) Input impedance is 1 megohm on External Trigger.

External: Controlt (unctionattorintefnaltnooennoO Megohm

input impodenco) Line: Tnggor is denvod Uom line frequencv wttan using the

batrerv charger.

Slope: -f 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 adjustment of trigger point In all modes except Auto.

CALIBRATORl a square-wave signal of 1 volt p-p Is provided. Voltage accuracy is ±5%, frequency Is approximately 1 KHz.

DISPLAY

Qratlcule: 4x5 dIv, 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 battery drain.

POWER SOURCES

Internal: Three sealed, rechargeable lead-acid cells. Operating time using fully charged cells Is approximately 45 minutes. Charging circuitry is integral and functions when the MS-230 Is connected to power line through plug-In transformer (supplied with each Instrument). Battery charge time with Instrument non-operating Is 16 hours. External: Operates continuously from 115 vac source SO ■ 400 Hz when connected via plug-in transformer. (230 vac Is available) Power consumption from AC line Is less than 50 watts.

ENVIRONMENT

Operating Temperature: 0° to 40°C

Shock and Vibration: Will withstand normal shock and vibration encountered in commercial shipping and handling.

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:

Till stand, banery charger. 2 input cables, and 3 miniature iMnarta plugs

WARRANTY: one year parts and labor. Made In the USAI MS-230 with Rechargeable Batteries and Charger

PROBES

Deluxe 10 to 1 probe with 10 megohm input. 100 MHz probe with 4 interchangeable tips: Spring-loaded retractable cover tip, insulating tip, BNC tip, IC tip, also Included cap adjustment tool and zippered vinyl case.

41-141 $27.00

DELUXE COMBINATION PROBE

Same as above except the probe has a switch to select; 10 to 1, 1 to 1 or a ground reference position. 41-37R Red prolM body 41-370 Qrey probe body $38.50

LEATHER CARRYING CASE

The leather case has 2 separate comoartments One to hold the scope, the other to hold tfv charger, probe, shoulder strep, etc The case cen be worn on the belt, or over the neck

The snaps used an the cese ere "oneway", thus accidental striking of the cose egeinst an object will not undo the snaps or let if be pulled off your belt

41-180 $45.00

I

75.00 OFF

j on any accessories purchased ! I with MS-230 Miniscope. Just send or j I inention this COUPON and Byte | [ Magazine. I

PRIORITY ONE ELECTRONICS®

i6723B Roscoe Blvd. Sepulveda, CA 91343

Terms: Visa, MC, BAC, Check, Money Order, C.O.D. U.S. Funds Only. CA residents add 6% sales tax Minimum order $10.00. Prepaid U.S. orders less than $75.00 include 5% shipping and handling minimum $2.50. Excess refunded. Just In case ... please include your phone no. Prices subject to change without notice. We will do our best to maintain prices thru August 1979. OEM and Institutional

phone orders welcome (213) 894-8171, (800) 423-5633 inquiries invited.

ORDER TOLL FREE 1-800-423-5633 ORDER TOLL FREE 1-800-423-5633

Circle 312 on inquiry card.

HICKOK LX303 $7495*

RS232 & "D" TYPE CONNECTORS

P = Plug-Male S = SockelFemale C = CoverHood

HICKOK LX303 $74.95

3 LEVEL GOLD WIRE WRAP SOCKETS

PART NO.

DE-9P

DE'9S

0E9C

DA1SP

DA1SS

DA1SC

0B25P

DB-25S

DBS1212.1

DB1226.1A

DBHOt

DC37P

OC37S

DC37C

DD50P

DD50S

DD50C

02041(8

.5%, 3% digit 19

Range DVM. Vi" LCD displays

runs 200 hrs on 1 battery. 10 Meg

Ohm Input. 1 yr. guarantee, made In

U.S.A., test leads included.

Available Accassorlas

RC-3 115V AC Adapter $7.50

CC-3 Deluxe Padded Vinyl

Carrying Case $7.50

VP-1D X10 DCV Probe Adapter/

Protector 10Kv $14.95

VP-40 40Kv DC Probe $35.00

CS-110 Amp Current Shunt $14.95

*FREE

Just for Asking. FREE BATTERY with your meter.

It ncapuciti wiiMOO I row«lHi ISScanlMliinlh 2KIrowtpKing. VKlapwInumbaf AU1-2. otmounit lOractpIt plus intwconntclioni la inuMr mgtntr Doif d

* l>iClu(Hi(lctii4pi(uitt)naui)1r;KiionTUrDpliMiil Kim. pu i-up. or nuiine KrtninjiKint

• LVeaDuln +SVir>aGND|10AUPS). ±12Vm I6VI7 lyPS) Cuti*ninI>ngsii«p«rMIL'ST0-;7Sw<tn 10^

Price $29.50

DESCRIPTION S Pin Male 9 Pin Female 9 Pin Covet 15 Pin Male 15 Pin Female 15 Pin Cover 25 Pin Mill 25 Pin Famili

1 pc. Gray Hood

2 pc. Black Hood 2 pc. Grey K 37 Pin Mala 37 Pin Female 37 Pin Cover 50 Pin Male 50 Pin Female 50 Pin Cover

ffliWiWim

fei

PRICE

1-4 59 10-24

1.50 1.30 1 10

,95 1.75 1.45

50 1.30 1 10

2 00 1.80 155

2.90 2.70 2 45

180 160 1.30

2,50 2.20 2.05

3.50 3.10 2.85

1.35 1.20

1.50 1.35

1.40 1.25

3 75 3 50

5.25 4.90

1.65 1.80 1.70 3.95

5.50 2.00 5.00 6.50 2.50 1 00

1.60

4.75 4,60 6 00 5-75 2.30 2.20

Hardware Sel I2 pair)

Connaclof lor CENTRONICS 700 SERIES: Amphenol 57-30360 lor bach of Cenlromcs 700 Series prinlers 1 4-S90Q 5-up-$7 50

S-100 BUS EDGE CONNECTORS

SlOO-WWa 50/100 Com, .12s ctrs. 3 LEVEL WIRE WRAP .025" BO. posis on .350 spaced rows. GOLD PLATED. 1-4 S-ft 10-34

W.0O U.76 S3.&0

S100ALT so/too Cont. 125 ctiG- DIP SOLDER TAIL on 140 spaced rows (or ALTAIR motherboards. GOLD plated. 1-4 S-B 10-34

M.BD I4.2S S4,00

SIOO-STO 50/100 Com 125 cirs. _ SOLDER TAIL on .250 spaced rows (or VECTOR. IMSAI. CROMENCO molhei boards GOLDplaled.

1-4 5-0 10-24

I3.H) I3.2E U,00

S100SE 50(100 Com. 125 ctrs PIEHCED SOLDER EYELET lails. GOLD 1-4 S-0 10 34

S5.00 (4,S0 S4,D0

Other Poputar Edga Connectors

02244-5SE32f44Com. 156 cirs.PIERCED SOLDER EYELET (alls, GOLD plated. 1-4 6-9 10-34

U.00 S3.M S3.20

».9S S3.70

IMSAI Style Card Guides 5/SI.OO

See our July Ad for many other connectors.

Sockets purchased in multiples of 50 per type may be combined for best price.

10

10-24

25-99

100-249

250-999

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

2a 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 Tall, Low

Profile. Tin Soekels and Dip Plugs available, CALL FOR QUOTATION.

THE MICROBYTE M32KSSl 32K STATIC MEMORY BOARDI

Fully S100 Bus Compatible, IMSAI, SOL, ALTAIR, ALPHA MICRO

Uses Nmional's Low Power 5257 4K x 1 Static Rams

2 MHz or 4 MHz operation

Gold contacts for tilgher reliability

On board single 5 amp regulator

Thermally designed heal sink (board operating temperature 0* -70*C)

Commercially designed power bus. 7 ground bus bars. 0.1 uf decoupling capacitors.!

Fully tri-stale buffered I

Inputs fully low power Shottky SchmJtt 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 6-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 panel

Compatible with ALPHA MICRO, with extended memory management for selection!

beyond 64K

No DMA restriction

Low power consumption 2.3 — 2.5 amps

Fully warranted for 120 days from date of shipment.

32K2MHz$619 32K4MHZ $649

seoov

Universal Microcompuler/processof pliigtloafO, use wilh S-IQO bus Complele with heat sink & hardware 5 3" x 10"xt/16"

1-4 5-9 10-24

$19.95 J17.95 S15.96

8801-1

Same as 8800V except plain, less power buses &heat sink

1-4 5-9 10-24

$15.22 $13-79 $12.18

3682 9.6" X 4.5"

$10.97

36B2-2 6.5" X 4.5"

$9.81

Hi-Oensily Dual-ln-Line Plugboard lor Wire Wrap with Power & Grd. Bus Epoxy Glass 1/16" 44 pin coo. spaced .156

X4.5"

$10.90

3677-2 6.5" X 4.5"

$9.74

Gen. Purpose D.I.P. Boards wilh Bus Pattern lor Solder or Wire Wrap. Epoxy Glass 1/16" 44 pin cm. spaced .156

3662 6.5"x4.5"

$7.65

3862-2 9.6'x4.5"

$11.45

P pattern plugboards lor IC's Epoxy Glass 1/16" 44pincon. spaced .156

3690-12 CARD EXTENDER

Card Extender has 100 contacts 50 per side on .125 centers-Attached connector-Is compatible with S-100 Bus Systenns. $25-83 3690 6.5" 22/44 pin .156 cirs. Extenders .... 113.17^

w

^iieiPeiWl BOARD

.042 dia holes on 0.1 spacing for IC's

Phenolic

PART NO. 64P44XXXP 169P44XXXP

SIZE 4.5x6.5" 4.5x17"

PRICE

1-9 10-19

$1.56 $1.40

$3.69 $3.32

ilS-80/APPl-E

iiMORY EX<»ANSION KITS 4116'sRAMS

(16l€|l|lbns)

B for $f5.00

;|||i|,dd $3.00 for pfogrammltig Jumpers

10 SOCKET SALE

14 pin Low Profile 1GSf$JL10100/$14.00 16 pin Low Profile 10/$2.20 100/$16.00 24 pin Low Profile 3/$1.00 40/$10.00 40 pin Solder Tail 3/$1.00 40/$10.0p 24 pin Dip Plug with cover

14 & 16 PIN GOLD 3 LEVEL WIRE WRAP SOCKESI

14-G3 100 for $33.00

16 - G3 100 for $33.00 50 of each for $35.00 J

MEMORY MEMORY

2102LtPC Low Power 450ns it* loss of 25 $1.1(1 2102AL-2 Low Power 250ns in lots of 25 $1.25

2114-4L1 Kx4 450ns Low Power : 8/$45^dS;

2114-3LlKx4 300 ns Low Power 8/$50.00

ii57-3L4Kx130Qns:Low Power S/SSilll;

2708 8K 450ns EPROM $9.00

T

IM-IOA LltlUt SPECIAL

.00

PANAVISE TILTS, TURNS, AND ROTATES TO ANY POSITION. IT HOLDS YOUR WORK , EXACTLY WHERE YOU WANT IT

$56.95 With tube

Perfectly balanced fluoreecent tlonting with precision magnifier lens. Tougt^ thermoplastic shads. Easy tens re moval. New wire clip design perrr^ils easy Installation and removal of lluorescent tube. Comes with plastic shield to protect tutw from aolllng and rjamage.

r^olora: Gray. Blacli, vni Oocolate Brown. Comas with ona 22 wall T-S Clrcllna IIUOTaBcant tutio. 3 dtoplaf lena. ^

^

|fe^

WRAB POST

for .042 dIa. holes J (all boards on this page) IT4«C pkg. 100 .. S 2.34 lT4«Mpks.

1000 $14.35 •;

IA-13 hand Installing .

PRIORITY,

16723B Roscoe Blvd.

lELECTRONICS

ORDER TOLL FREE

1 80042356:

); except CA.. AK., HI., Call ai3) 894^171

Sepulveda, CA 91343 ,,

Terms: Visa, MC, BAG, Check, Money Order, C.O.D. U.S. Funds Only. CA residents add 6% sales tax. N| Minimum order $10.po. Prepaid U.S. orders less than $75.00 include 5% shipping and handling minimum $2.50. Excess relunded. 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

Dhone orders welcome (213) 894-8171. (800) 423-5633 Inoulrles invited

TEST

EQUIPMENT

CALL FOR

SPECIAL PRICES

ORDER TOLL FREE 1-800-423-5633 ORDER TOLL FREE 1-800-423-5633

\A t»' Isa.lSSIflhJ) POLICY

Ruaden who have eguipmenj. software or other items lo buy. Sffll or swap should send m a clearly typed notice to that elfeci. To be considered for publication, an advertisement must be clearly noncommercial, typed double spaced on plain white paper, contain 75 words or less, and include complete name and address mformaiion.

These notices are free of charge and will be printed one time only on a space available basis. Notices can be accepted horn individuals or bona fide computer users clubs only. We can engage in no correspondence on these and your confirmation of placement is appearance in an issue of

avre.

Please note that it may taku throe or four months for an ad to appear m the magazine. •

llnclsssiRei)Ads

FOR SALE: SwTPC MP-A2 processor board (latest), with SWTBUG monitor, $105. Four 4 K programmable memory boards with premium 350 ns low power chips, S65 each. AC-30 cassette interface, S50. All assembled, burned in and running. Prices are 1/3 less than kit. Robert Levine, 32 King St, New York NY 10014, (212) 691-2897 evenings.

FOR SALE: Digital Group 8 K static programmable memory board. In original package, unassembled, complete with all new chips, etc. Best offer over $80 takes. Will guarantee. Bob Waber, 6564 E Michigan Av, Apt 52, Saline Ml 48176, (3131 429-7174.

FOR SALE: AMS memory system, 32 K by 1 6 bits plus parity. Includes rack mount cabinet, power supply, two fans, battery backup, 25 slot dual back plane, no documentation. Originally used with Advanced Memory Systems 2100 processor. Has 66 K bytes of Intersil/AMS 6002 dynamic memory (1024 by 11. $500 plus shipping. Dan S Parker, 1007 3rd St, Davis CA 95616, (9161 758-2341.

FOR SALE: IMSAI 8080 mainframe with 11 edge connectors. Dual serial input/output ports. 8 K static programmable memory with hardware memory protect. 8080 processor board. Documentation and software. ASR33 Teletype with paper tape reader and punch. $ 1600 or best offer. Rich Levinson, 1 24 Nashoba Rd, Concord MA 01742, (617) 369-8471.

FOR SALE: Digital Group Z-80 system, includes dress cabinet, 10 K static memory, TVC-64, 1/0-F, 12 A power supply, complete documentation and software including Assembler, MaxiBASIC and diagnostic/demonstration tape. Add a keyboard and monitor and you're ready to run. $850 or will consider reasonable offer. W Colsher, 4328 Nutmeg Ln Apt 1 11, Lisle IL 60532, (31 2) 964-11 68 anytime.

FOR SALE: An IBM type 1004 used Selectric terminal. It can be converted into a microcomputer Selectric printer with high quality printout. All documents and the reprints of the articles from various journals will be included for free. The first cashier check for $245 will get all. Please send check along with your telephone number to H T Chen, Physics Oept UGA, Athens GA 30602.

FOR SALE: 6502 microcomputer system built on OSt number 400 series boards. Includes 1 6 K static programmable memory (four number 420c memory boards!, TIM monitor (1 K read only memoryl. 20 mA or RS-232 serial input/output, 8 slot mother board. MOS Technology manuals, wire wrap kludge board, cabinet, oversized power supply and software on paper tape. Software includes BASIC, Editor/Assembler and games. Asking $350 for all this, you ship. Kenneth A Scharf, 34 Royal Crest Dr, Marlboro MA 01752, (6171 481-5534.

FOR SALE: PET Printer adapter with built-in power supply and connectors, $ 90 complete. GE computer grade caps. 2900 mF, 350 V, $6.50, 850 mF, 450 V, $3.50. All new but surplus. J Gatliff, POB 627, Eau Gallie FL 32935.

FOR SALE: MMD-1 with 256 bytes programmable memory, all documentation plus BUGBOOKS three and five. Excellent tutorial system. $250 plus UPS. Frank DeBolt, 114 Eastpines Rd, Savannah GA 31410, (912) 897-1384.

MUST SELL: New, unused equipment for 8080 or Z-80 based systems with S-100 bus. Purchased before deciding to buy a PET. North Star Micro-Disk System: controller, drive in cabinet with power supply, DOS and BASIC on diskette, documentation, cost $800. North Star Hardware Floating Point Board: greatly speeds up math calculations in BASIC cost $400. Will sacrifice. Karta S Khalsa. 32 The Hollow. Amherst MA 01002, (413) 256-0391.

FOR SALE: Texas Instruments 30 cps Silent 700 printer/keyboard terminal in good condition $380. Teletype BRPE 1 10 cps PT punch $160. Caelus 2.5 M bytes top loading disk drive $700. Also NOVA extender board. NOVA wire wrap board, mounting slides, AMP and TRW connectors, etc. Nemeth, 560 Upr Mountain Av, Montclair NJ 07043.

FOR SALE: Heathkit H9 video terminal with full documentation, RS-232 input/output scrolling, 110 to 9600 bps. $400 postpaid. Excellent condition. Charles E Zalenski, 9 River Ter, Johnson City NY 13790. (607) 797-5777 days.

FOR SALE: September 1975 thru December 1978 BYTE. Good condition except some response cards used. No missing covers or pages. Sell one or all for best total price [over S99) by end of month this ad printed. High bidders notified, send SASE if response desired otherwise. Jim Matthews, 2028 Merrily Dr, Montgomery AL 361 11.

FOR SALE: 64 K plus memory — Interfaced for S100 buss. General Electric 16 K by 40 core memory complete with all cables, power supplies and total documentation. Only $350 plus shipping from Kansas City MO. Jon Smirl, 192 7 Orrington Av Apt 8209, Evanston IL 60201, (312) 492-0794. After June 15th the address will be: 5817 Hutson Rd. Kansas City MO 64151. (816) 741-5688.

FOR SALE: Diablo Hytype II 11345WP1 word processing printer (with metal wheel), with cover and friction feed platen. Never used. Interfaceable to SOL, 6800 or 8080s. $1599 without power supply. 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 Seattle static programmable memory board, TDL Z-80 processor. SMB board and software (cassette and paper tape), 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, any condition. Immediate cash available. Some used units available. Write with description, condition and phone number for immediate quote. DEC PDP-8/E and M modules, RK05, ASR33, RK8E. etc. buy, sell, trade, repair, custom interface. Jim Simpson, POB 632. W Caldwell NJ 07006, evenings (201) 226-9185 or 342-3110.

WANTED: Information on the TC-71 sold by NCE from 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 61 401, (309) 342-5660.

FOR SALE: Attair S-1 00 bus single drive, single density 8 inch PERTEC floppy disk system with Altair Extended BASIC Version 4.1, read only memory card with Bootstrap read only memory, floppy disk controller boards, cables and complete documentation. Excellent working condition. Reliable. Selling to reconfigure system for hard disk drive. $2800 new. Make offer. Mike Harris, 3750 S Maple Grove Rd, Boise ID 83705. (208) 362-5154.

FOR SALE: Two 4 K by 16 Heath memory boards, $125 each. One H10 paper tape punch with five rolls and three boxes of fanfold tape. $125. Two parallel interface boards, one assembled $130. one unassembled at $85. Digital cassette recorder, $175. James E Tarvid. 2735 N Frederick. Milwaukee Wl 5321 1. (414) 964-8633.

FOR SALE: 16 bit minicomputer. Interdata 5/16 complete on one 10 by 10 inches board with 24 K bytes programmable memory, microprogrammable with monitor in read only memory, Micio-I/O (input/output) buss interfaces with microcomputer style peripherals, ASCII terminal port and Interdata multiplexor buss. Large Interdata software library including BOSS. BASIC. FORTRAN. FFT's. processor and memory tests, etc. Brand new with full documentation, asking $2750. Also, Interdata universal logic interface for I/O, status and control ports with wire wrap area, $300. David Rosenboom, POB 543 Sta Z, Toronto, Ontario CANADA M5N 2Z6, (416! 593-4179.

FOR SALE: Beehive SuperBee II video display terminal. 8008 microprocessor controlled. Scroll mode, page transmit or line transmit. 24 line by 80 character screen, but can hold 200 plus lines in own memory to scroll/page backward and forward. Editing features: line insert/delete, character insert/delete. Function keys. Tabs settable anywhere, may be set by computer. Formatted screen (fill in blanks) can be specified. Truly the Rolls Royce of terminals. S900 or best offer. Michael J Eager, 481 Century Dr, 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 floppy disk system; $925. Heath H9 video terminal; S550. Heath cassette plus recorder;$45. All factory tested and running, some under factory warranty. Reason selling: 1 have two computer systems. Buy package for $3300 or separately. All offers considered. Ray King, 915 El Rancho, Pocatello ID 83201. (208) 237-0979.

FOR SALE: 32 K static programmable memory factory assembled and tested. Four Industrial Micro 8 K S-100 boards, cost $884 new, asking $650 (ran out of slots). Teletype. ASR33 teletypewriter with paper tape reader/punch, stand, $ 595 plus shipping. Mark Lyon. 6320 Red Prairie Rd, Sheridan OR 97378.

WILL TRADE: Have written programs for Bally HLC with audio cassette interface such as: Checkbook Balancer, Number Sort. Math Quiz. Tic-Tac-Toe. Slot Machine. Hourglass Graphics. I am interested in acquiring other Bally BASIC programs on audio cassette. Chuck Zellers, 2921 Roselawn Dr, Grand Island 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 for timesharing or as a microcomputer terminal. Carl Echols, 112 Creekside Ln, Noblesville IN 46060, (317) 849-5247.

FOR SALE OR TRADE: REMEX high speed paper tape reader with stop on character, $150; Burroughs digital cassette drive, $50; 5 V at 70 A power supply, $50. Ail work fine. Trade any or all for X,Y plotter/recorder. Jim McCord, 330 Vereda Leyenda, Goleta CA 93017. (8051 968-6681.

FOR SALE: DEC MPS microcomputer. Includes 16 K programmable memory plus 4 K bytes eraseable read only memory. Also has vectored interrupt board with parallel input/output. Price $395 plus shipping. Curtis P Hoffman, 169 Millham St, Marlboro MA 01762, (617) 481-7827.

August 1979 © BriE Publications Inc 263

Feaden Senvice

To get further information on the products advertised in BYTE, fill out the reader service card with your name and address. Then circle the appropriate numbers for the advertisers you select from the list. Add a 15-cent stamp to the card, then drop it in the mail. Not only do you gain information, but our advertisers are encouraged to use the marketplace provided by BYTE. This helps us bring you 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

A Advanced Computer Products 235

3 Aladdin Automation 131

6 Altos 41

5 American Square Computers 219

12 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 Biotecti Electronics 35

■ Bits Inc. 117, 160, 161 33 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, 234 41 California Data Corp 234

39 California Digital 239

45 Central Data 97

43 ChatsvKorth Data 62

47 Chrislin Industries 78

44 CODEX 54

53 COfvlPCO 102

54 COfvlPCO 114 56 COfvlPCO 116

48 COfvlPRINT (Computer Printers Int'l I

46 CompuServe (fVlicroNET) 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 197 75 Computerland 8, 9

66 Computer Mart of NJ & PA 12

• The Computer Repair Co 232

68 Computer Service Center 219

69 Computer Service Systems Network 65 Computers Plus Inc 201

70 Computer Store of San Leandro 232 73 Computex Corp 98

71 Computhink 124, 125

40 CTC 111

78 CT fVlicro Computer 128, 217, 224

83 Corvus Systems 45

■ Creative Software 182 80 Cromemco 1, 2

85 Cybernetics Inc 156

87 Data Communications Int'l 218

89 Data Decisions 180

91 94 96 93

126 98 99

102

95 100 115 120 121 125 130 131 132 133 134

143 144 145 146 150 151 152 153 159 161 162 170 171 nc)39 172 168

142

169 173 174 175 176 177 179 180 190 191 195 200 201 203 377

207 202 199 205 215

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 223 DRC (CA) 188

DRC (TX) 245 204 Electrolabs 264

Electronic Control Technology 99 208

Electronic Packing Co 127 198

Electronic Systems 257, 258, 259 209 Electronics 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 258 Graham Dorian Enterprises Clll

G W Computers Lid 20 281

H & E Computronics 163 282

Hayden Book Go 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 287 Infinite Inc 234

Information Unlimited Software 201 288 Intecolor (Div Intelligent Systems) 13 289

Integrand 48 293

Interactive Microware 186 292 Intertec 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 306 Kalbro Computer Brokers (formerly 306 US 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 313 Measurement Sys & Controls 183 315

eCMB

£YTE'e Ongoing Monitor Gox

Measurement Sys & Controls 219 317 Measurement Sys & Controls 234 81

Micro Age 179 311

Micro Ap 133 310

Micro Applications Group 130 314

Micro Architect 118 322 MIcroDaSys 5

MicroDaSys 223 324

Micro Diversions 91 325

Micromail 159 326 Micro Management Systems 234 316 Micro Mike's 217

Micropolis 134, 135 320

Micro Products 202 331

MicroSoftware (CAI) 188 319 Microtek 15

Microware 205 329

The Micro Works 42 330

Microworld 63 328 Micro-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

Nelronics 222 358 Newman Computer Exchange 247 355 Newman 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 369 On 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 387 PAIA 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 401 Prog 80 199 Programmer's Software Exchange 230

PRS47

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

3G 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

Xitex 212

Zg Systems 211

^Correspond directly with company.

May BOMB Maps a Winner

Article IVIo.

ARTICLE

1 Allen: An Overview of LISP

2 Laubsch, Fischer, and Boclter: LISP Based Systems for Education

3 Prini and Rudalics: Lambdino Storage IVIanagement 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 BOMB award of $100 went to William D Johnston for taking a direct route to the top with "Computer Generated Maps," page 10. The second place prize of $50 went to Steve Ciarcia for "Communicate on a Light Beam," page 32. Placing third was "Representing Three Dimensional Objects In Your Computer," page 14 by Richard Blum, with Bob Haas' "Single Chip Video Controller," page 52 taking fourth place.

264 August 1979 © BYTE Publications Inc

f^w-

\

i\lit|

Gpshscn-Qopisn's Integpstei), On-Line Ppogpsms Ape Fast, Efricient, Aoi3 Easy Tc Ise.

Rely on Graham-Dorian, a full-line computer software manufacturer, for sophisticated programs — the most detailed on the market today. They're ready to go to worl< immediately or to be tailored for even more specific needs.

On-line capabilities enable you to make a single entry and update all affected files. An inquiry into a file at any time provides up-to-date information — no batching or sorting of input data.

The programs are easy to use. Messages on the video display guide you each step of the way. Programs make use of indexed sequential and chained files for fast and convehient retrieval of data with efficient use of disk space.

Order in standard eight-inch disk either double or single density, or various mini-floppy formats. Each program contains a free CBASIC-2, plus user's manual and hard copy source listing.

• Accounts Receivable — Records invoices, prepares statements and trial balance reports, etc. Automatically reports aging of accounts in periods of 30, 60, and 90 days, with each item listed separately.

• Accounts Payable — Vendor lookup and change, entering vendor invoices, writing checks (many options), cash flow analysis, accounts payable check register, and vendor list. Ideal for analyzing expenditures by vendor and by due date.

• General Ledger— Includes lookup and change, making journal entries, trial balance, transaction register, chart

of accounts, financial statements, and monthly closing.

• Job Costing — Provides work order lookup, enters labor transactions, material set-up, progress report of hours, labor distribution report, weekly labor reset, actual versus estimated cost per job.

• Inventory — Can be connected with cash register for point of sale inventory control. Number of on-line items limited only by disk space available.

• Cash Register — Creates daily sales reports containing information on gift certificates, paidouts, overrings, refunds, and how much in each category a salesperson sold.

• Payroll — Handles 100% of all necessary payroll functions including state income tax tables for your state. Ideally suited for both large and small companies.

• Apartment — Said one user, "Obviously, this was developed by apartment owners." The package fills virtually all the needs of apartment owners and managers. Ideal for projects with 75 units or more.

• CBASIC-2 — The most comprehensive and powerful commercially oriented BASIC available today. Enhancements over CBASIC-1: integer variables, multiple line functions, CHAINing with COMMON variables, additional predefined functions, etc. Comes free with any package, or purchase separately.

Compatible with many computers: Northstar, IMSAI, Altos, Cromenco, Industrial Micro Systems, Radio Shack TRS-80, SD Systems, Digital Microsystems, Dynabyte DB8/2, Micropolis MOD II, Vector MZ, and other 8080, 8085, and Z-80-based systems. See your GDSS dealer or send for information packet and sample runs.

Circle 152 on inquiry card.

Graham-Dorian Software Systems

A Division of Graham-Dorian Enterprises

211 N. Broadway / Wichita, KS 67202 / (316) 265-8633

Ohio Scientific has taken its standard Challenger III computer and marhed it to the new Shugart 29 Megabyte Winchester Drive. The result is the C3-C. This new microcomputer now fills the vacuum that existed for computer users who need more mass storage capability than floppies can offer —yet until now, could not justify the additional cost of a larger capacity hard disk computersuchasour C3-B 74 Megabyte disk system.

Winchester Technology

Winchester hard disk drives offer small business and professional computer users the logical solution to mass storage problems that are beyond the capability of floppy disks. In addition, Winchester disksfeatureatrack seektime that is much better , thanfloppiesand because they spin at eight times the rate of floppies, Winchesters have a shorter latency Both of these points reflect one remarkable speed advantage Winchester disks have over floppies.

Coupled totheChallenger III Computer

Ohio Scientific's award winning Challenger III computer is a classic. It is the only computer series that utilizes the three most popular microprocessors-6502A, 68B00 and Z-80. This tremendous processor versatility enables one to utilize a seemingly end less selection of quality programs available from Ohio Scientific's software library as well as from many independent suppliers.

And Advanced Software

For instance, there are single user, multi-user and network operating systems. A complete turnkey small business package, OS-AMCAP provides accounts receivable, accounts payable, disbursements, cash re ceipts, general ledger, etc. OS-CP/M offers a complete FORTRAN and COBOL package. And there is WP-2, a complete word processing system. For information management, OS-DMS, features an advanced file handling system and program library that simplifies information storage and recall and routinely performstasks which usually require special programming on other systems.

Yields the Microcomputer of the Future

With an eye toward the future, the C3-C, like all other Challenger Ill's was designed with provisions for future generation 16 bit microprocessors via plug-in options. There are ten open slots for lots of I/O and multiuser operation. Truly, the Ohio Scientific C3-C is a computer with a future.

The new C3-C computer with 29 Megabyte Winchester Hard Disk.

$9340 With 48K static RAM and OS-65U operating system!

600K byte Dual 8" floppys

Easy to configure and service. Backslide mounting on all subassemblies.. 10 open slots for expansion.

1333 S. CHILLICOTHE RD., AURORA, OHIO 44202 (216) 562-3101

Circle 290 on inquiry card.