(navigation image)
Home American Libraries | Canadian Libraries | Universal Library | Community Texts | Project Gutenberg | Children's Library | Biodiversity Heritage Library | Additional Collections
Search: Advanced Search
Anonymous User (login or join us)
Upload
See other formats

Full text of "Byte Magazine Volume 04 Number 08: LISP (RESCAN)"

AUGUST 1 979 * Volume 4, Number 8 $2.00 in USA/$2.40 in Canada 





the small systems joiirna 

A fc/ICGRAW-HJLL PUBLICATION 



LISP 



■ 




(c<m((HWLi.srm&))((Q 

(REmXWK(CWStRW<i))) 

(PRflff(WTCKI)(LX)S™WG)))))) 

(ma FRTfcwx)) 
(9maM^W) 







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

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

# Three types of disk drives with capacities of 1 75K, 1 .2M and 1 6M 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 



4MHzZ-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 pro- 
fessional 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 BYTE- 
SAVER® PROM card). There's also 1K 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 bi- 
directional parallel I/O and five on- 
board programmable timers. 

Add to that vectored interrupts. 



ENORMOUS EXPANDABILITY 

Besides all these features the Cro- 
memco 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 S100-bus-compatible memory 
and I/O interface cards. Cards with fea- 
tures such as relay interface, analog 
interface, graphics interface, opto- 
isolator input, and A/D and D/A con- 
version. RAM and ROM cards, too. 



I 



— r! 



Card Cage 32K BYTESAVER PROM card 



EASY TO USE 

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

Finally, to simplify things to the ulti- 
mate, 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 avail- 
able now at a low price of only $450 
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 



t?tt 



4mi 



*. 1 : •«'. ■ i 



1 , • 



* ■ ' ! » 









- ■ <#*r 






, * - i i» * . » * :-':■ , » i c * * * 

- 1 • 1 . » t * . * » * V ■ , o 



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 51 2K 
bits of read/write memory on this 
single card. 

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

EXPANDABLE ON TWO LEVELS 

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

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

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

This expandability we call your 
obsolescence insurance. 

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



BENCHMARK IT 

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

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

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

SEE IT NOW 

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



Q 




For high reliability all Cromemco memory 

cards are burned in at the factory in these 

temperature-controlled ovens. 



&«** 





T 1 



Cromemco Multi-User System 
shown with 7 stations 



Cromemco 

incorporated 

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

Tomorrow's computers now 



2 BYTE August 1979 



Circle 80 on inquiry card! 



M 



In the Oueue 



BVII 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 Henson 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 1 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 





NAME 


1 ■ 




1 1 


1 










| MM 1 








f 


*00»ESS 


1 1 




1 1 


1 












STREET 











page 50 



{DE TAUT (WFF) {TAUTl (SIMP WFF)» 

(DETAUTl (W) 
{COND 
(OSCONST W) W) 
(T (TAUT 

((LAMBDA (X) (MKAND (SUBST 
(SUBST 
(FIRSTVAR W)) »)> 



(DESIMP(W) 

(COND ((OR (ISCONST WMISVAR W» 
((ISNOT W) (SIMPNOT (SIMP < 
<{IS0R W) (SIMPOR (SIMP (Ih: 
(SlMP(rhj 
((ISAND W) (SIMPAND (SIMP 
(SIMP( 
(OSIMPLIES W) (SIMPIMP (SlFn 

((ISEOUIV W) (SIMPEOUIV 



(DE SIMPNOT (W) (COND ((ISFAISE W) 
{(ISJRUE W) f\ 
(T (MKNOT W) 

(DE SIMPOR (W1 W2) (SlMPANDOR 

(DE SIMPAND (Wl W2> (SlMPANDOR 

(DE SIMPIMP ;(W1 W2) (SIMPOR (SIMP 

(DE SIMPEOUIV (Wl W2> 

(SIMPAND (SIMPIMP Wl W2XSIMPI 

(DE SlMPANDOR (OP Wl W2 VI V2) 

(COND «(STRUE V 



page 206 



^ i0 




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 subscrip- 
tions to above address: phone (603) 924-721 7. Address subscriptions, change of address, USPS Form 3579, and fulfillment questions to BYTE Subscriptions, PO Box 590, Martins- 
ville NJ 08836. Second class postage paid at Peterborough NH 03458 and at additional mailing offices— USPS Publication No. 102410 (ISSN 0360-5280). Subscriptions are $18 for 
one year, $32 for two years, and $46 for three years in the USA and Its possessions. In Canada and Mexico, $20 for one year, $36 for two years, $52 for three years. $32 for one year 
air delivery to Europe. $32 surface delivery elsewhere. Air delivery to selected areas at additional rates upon request. Single copy price is $2 In the USA and its possessions, $2.40 
in Canada and Mexico, $3.50 in Europe, and $4 elsewhere. Foreign subscriptions and sales should be remitted In United States funds drawn on a US bank. Printed in United States 
of America. 

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

BYTE® is available in microform from University Microfilms International, 300 N Zeeb Rd, Dept PR. Ann Arbor Ml 48106 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 



In This BYTE 




m 



(sltq Bmm 

TSTf "TW5C 






u 



mti 



\m 



About the Cover 

This month, Ken Lodding has 
created a fantasy on far-out 
applications with a LISP theme. 
The surface of some asteroid 
has been discovered. A 
monolith engraved with the 
S-expression form of a LISP 
program is gazed upon by some 
astronauts. We presume some 
archeology of this monolith 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, list- 
processing language. 
However, there is much 
more to the language than 
list manipulation. As an 
introduction to this lan- 
guage, 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 com- 
puter culture and they argue 
that the basic concepts and 
approach to computation 
that LISP represents offers 
significant advantages within 
the contemporary educa- 
tional 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 repre- 
senting 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 struc- 
tures. Page 34 

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



basis of any multiprogram- 
ming 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 simu- 
lation 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 applica- 
tions 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 program- 
ming language must observe 
if generality and expressi- 
bility are not to be com- 
promised. 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 pos- 
sible 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 func- 
tions. Page 176 

The actions of digital 
circuits may be described by 
Boolean expressions. These 
expressions can be mani- 
pulated 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 Divi- 
sion, 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 
Jill ECallihan 

Editorial Director 
Carl T Helmers Jr 
Executive Editor 
Christopher P Morgan 
Editor In Chief 
Raymond G A Cote 
Senior Editor 
Blaise W Liffick 
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 Bardsley 

Traffic Department 

Mark Sandagata 
Thomas Yanni 



Circulation Manager 

Gregory Spitzfaden 
Assistants 
Pamela R Heaslip 
Agnes E Perry 
Melanie Bertoni 
Barbara Eilis 
Dealer Sales 
Ginnie 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 

521 Fifth Av 

New York NY 10017 

(212) 682-5844 

Midwest 

664 N Michigan Av 

Suite 1010 

Chicago IL 60611 

(312) 337-8008 

West, Southwest 

1000 Elwell Ct 

Suite 227 

Palo Alto CA 94303 

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



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

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



4 August 1979 © BYTE Publications Inc 



Circle 220 on inquiry card. 




S-100 Compatibility. 6809 ComputxMify. 



1K RAM 

10K PROM space 

MONBUG II monitor included 

2400 baud cassette interface 

20 I/O lines 

RS-232 level shifters 

Real time clock 

DMA 

Parallel keyboard input 

Memory-mapped video firmware 

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

A complete system, ready to use. 



6809 

1 6 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 



MicroDaSys 






MD-690 b Single Board Computer 

$239 Kit $299 Assembled 

# 



1 



* 



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



T 




Look for 

Shugart drives 

in personal 

computer 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 

Imsai Mfg. Corporation 

14860 Wicks Blvd. 
SanLeandro, CA 94577 

Industrial Micro Systems 

633 West Katella, Suite L 
Orange, CA 92667 

North Star Computer 

2547 9th Street 
Berkeley, CA 94710 

Percom Data 

318 Barnes 
Garland, TX 75042 

Polymorphic Systems 

460 Ward Dr. 

Santa Barbara, CA 93111 

Problem Solver Systems 

20834 Lassen Street 
Chatsworth, CA 91311 

Processor Applications Limited 

2801 E. Valley View Avenue 
WestCovina,CA91792 

SD Sales 

3401 W. Kingsley 
Garland, TX 75040 

Smoke Signal Broadcasting 

6304 Yucca 
Hollywood, CA 90028 

Technico Inc. 

9130 Red Branch Road 
Columbia, MD 21045 

Texas Electronic Instruments 

5636 Etheridge 
Houston, TX 77087 

Thinker Toys 

1201 10th Street 
Berkeley, CA 94710 

Vista Computer Company 

2807 Oregon Court 
Torrance, CA 90503 



Editorial 



r <L 



Shugart 



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

by Carl Helmers 



This is the August issue of BYTE. It is also the third consecutive year 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 function- 
ing 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 soft- 
ware 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 im- 
plicitly 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 



August 1979 © BYTE Publications Inc 



"My 8 to 5 minifloppy "now 
works nights and weekends! 9 







"I own a fast-growing business and before I 
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 have 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 I 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. 

^=3® Shugart Associates 

435 Oakmead Parkway, Sunnyvale, California 94086 



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

TM minifloppy is a registered trademark of Shugart Associates 



BYTE August 1979 



Letters 



More Puzzling 



Puzzling 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 ex- 
pansions 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 asKXX 
(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 
none 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-division- 
style, 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 computer!) 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! 



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 


LOOP1 


INR 


A 




DCR 


8 




JNZ 


LOOP1 


LOOP2 


INR 


A 




DCR 


A 




JNZ 


LOOP2 




HLT 





This works by initializing a counter 
using the byte-saving exclusive-or opera- 
tion. 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 



Mark Zimmermann 
Caltech 130-33 
Pasadena CA 91125 



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



ComputerLand® 



Huntsville, AL 


(205) 539-1200 


Phoenix, AZ 


(602) 956-5727 


Little Rock, AR 


(501) 224-4508 


Belmont, CA 


(415) 595-4232 


Dublin, CA 


(415) 828-8090 


El Cerrito, CA 


(415) 233-5010 


Hayward, CA 


(415) 538-8080 


Lawndale, CA 


(213) 371-7144 


Los Altos, CA 


(415) 941-8154 


Los Angeles, CA 


(213) 776-8080 


Marin, CA 


(415) 459-1767 


Pasadena, CA 


(213) 449-3205 


Sacramento, CA 


Call Directory Information 


Saddleback Valley. CA 


(714) 770-0131 


San Bernardino, CA 


(714) 886-6838 


San Diego, CA 


(714) 560-9912 


San Diego East, CA 


(714)464-5656 


San Francisco, CA 


(415) 546-1592 


San Jose, CA 


(408) 253-8080 


Santa Maria, CA 


(805) 928-1919 


Santa Rosa, CA 


(707) 528-1775 


Thousand Oaks, CA 


(805)495-3554 


Tustin, CA 


(714) 544-0542 


Walnut Creek, CA 


(415)935-6502 


Colorado Springs, CO 


(303) 574-4150 


Denver, CO 


(303) 759-4685 


Fairfield. CT 


(203) 255-9252 


Hartford, CT 


Call Directory Information 


Newark, DE 


(302) 738-9656 


Boca Raton, FL 


(305) 368-1122 


Ft. Lauderdale, FL 


(305) 566-0776 


Jacksonville, FL 


(904) 731-2471 


Atlanta, GA 


(404) 953-0406 


Honolulu, HI 


(808) 521-8002 


Arlington Heights, IL 


(312) 255-6488 


Downers Grove, IL 


(312) 964-7762 


Mundelein, IL 


(312) 949-1300 


Niles. IL 


(312) 967-1714 


Oak Lawn, IL 


(312) 422-8080 


Peoria, 1 L 


(309) 688-6252 


Indianapolis, IN 


Call Directory Information 


Overland Park, KS 


(913) 492-8882 


Louisville. KY 


(502) 425-8308 


Boston, MA 


(617) 235-6252 


Rockville. MD 


(301)948-7676 


Grand Rapids, Ml 


(616) 942-2931 


Rochester, Ml 


(313) 652-9000 


Southfield, Ml 


(313) 356-8111 


Bloomington, MN 


(612) 884-1474 


Hopkins, MN 


Call Directory Information 


Springfield, MO 


(417) 883-7085 


St. Louis, MO 


Call Directory Information 


Nashua, NH 


(603) 889-5238 


Cherry Hill, NJ 


(609) 795-5900 


Bergen County, NJ 


(201) 845-9303 


Morristown, NJ 


(201) 539-4077 


Buffalo, NY 


(716) 8366511 


Ithaca, NY 


(607) 277-4888 


Nassau County, NY 


(516) 742-2262 


Charlotte. NC 


(704) 536-8500 


Cleveland East, OH 


(216) 461-1200 


Cleveland West, OH 


Call Directory Information 


Columbus. OH 


(614) 888-2215 


Oklahoma City, OK 


Call Directory Information 


Portland, OR 


(503) 620-6170 


Harrisburg, PA 


(717) 763-1116 


Paoli, PA 


Call Directory Information 


Austin, TX 


(512) 452-5701 


Dallas. TX 


(214) 363-2223 


Sou th West Houston. TX 


(713)977-0909 


Houston Bay Area, TX 


(713) 488-8153 


Salt Lake City, UT 


(801) 364-4416 


Tyson's Corners, VA 


(703) 893-0424 


Bellevue, WA 


(206) 746-2070 


Federal Way, WA 


(206) 838-9363 


Tacoma, WA 


(206) 581-0388 


Madison, Wl 


(608) 273-2020 


Milwaukee, Wl 


(414) 466-8990 


INTERNATIONAL 




Adelaide, Australia 


22 35 083 


Brisbane, Australia 


07 221 9777 


Melbourne, Australia 


62 55 81 


Perth, Australia 


Call Directory Information 


Sydney, NSW Australia 


29-3753 


Brussels, Belgium 


(02) 511-34-45 


Burlington, Canada 


(416) 632-5722 


Calgary, Alberta Canada 


Call Directory Information 


Toronto, Canada 


(416) 485-6700 


Winnipeg, Canada 


(204) 772-9519 


Manila, Philippines 


58-36-66 



8 August 1979 © BYTE Publications Inc 



Circle 75 on inquiry card. 





1 




1 




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

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

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



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

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



ComputerLand Corp. 

14400 Catalina St. 

San Leandro, CA 94577 

(415) 895-9363 

Franchise Opportunities Worldwide. 

© ComputerLand Corp., 197B 




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 af microcomputers in industry 
have found them to be reliable, cost- 
effective tools which provide computing 
capability to many wha would otherwise 
have to wait for time on a big computer, 
or work with na computer at all. 




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

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



ComputerLand 

WE KNOW SMALL COMPUTERS 



® 



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

BYTE August 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 pro- 
gramming language, often characterized as a special pur- 
pose list-processing language. But LISP is no more a 
special purpose programming language than mathematics 
is a special purpose language for floating-point computa- 
tions. 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 lan- 
guage 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 pro- 
gramming 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 tradi- 
tional 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 NIL 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 u ..., e„ of list elements, 
(e, ... ej is also a list. 



then 



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 preci- 
sion numbers, strings, and representation of functions as 
data objects. Regardless of the scope of the data represen- 
tations in a specific LISP implementation, it is a fund- 
amental property that all data objects are "first class ob- 
jects," constructible, testable and available 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 instruc- 
tions to decompose lists. One such operation is first; it ex- 
tracts the first element of a list. For example: 

firstj(A B C)l 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 internal notation, is 
called S-expression LISP or S-LISP. Initially, we will pre- 
sent 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 com- 
plete freedom to manipulate any of these objects as either 
data or instructions. An object accessed by the instruc- 
tion counter is interpreted as an instruction; other ac- 
cesses to items usually imply a data interpretation. 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 inter- 
preting the encoded information. An object may some- 
times play the role of program, and sometimes of data. 

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



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



About the Author 

John Allen, our guest editor for this special LISP theme issue, is the 
author of the book 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. 



External Notation 
< operation > /< operand > ,; ... ;< operand > J 



List Notation 
(< operation > r < operand > i r . . 



< operand > n T ) 



10 August 1979 © BYTE Publications Inc 



Circle 255 on inquiry card.- 



DOUBLE DENSITY 







** .. 




OIID SAVIN 



c\jy 




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

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

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

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

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



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

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

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

*CP/M is a trademark of Digital Research. 

C^jMorrow makes disk memory for 

Thinker Tbys 



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 operation'!' 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 first[(A B C)j is the constant (A B 
C). We will translate a constant a to the construct 
(QUOTE a). For example, we represent the con- 
stant (A B) as (QUOTE(A B)). This solution 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 represen- 
tation of the operation followed by the representations of 
the operands. Those operands themselves may specify 
operations, or they may specify constant operands by 
using the quote operation. For example, we represent 
first[(A B C)l as (FIRST (QUOTE (A B C))) and (FIRST 
(FIRST (QUOTE ((A B) C)))) represents first [first [((A B) 
C)H 
Values are obtained on a LISP machine in much the 



computer mart of new jersey 
computer mort of Pennsylvania 



IT T 3 the 

I k* J microcomputer 
L- - - J people® 

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



Computer Mart of Now Jorsoy 

901 Rout* 27 
bolln, HJ 00630 
(204)2oOOoOO 



STORE HOURS 

Tu»i. - Sot. 10am - 6pm 
Tom. fr Thura. 'till 9pm 
CLOSED MONDAYS 



350D»KalbPlk» 

Kln 9 of Prussia, PA 19406 

(215)265-2560 



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 ex- 
pression can be quite involved. If an operand specifies a 
further operation, then the current instruction must be 
suspended while that subsidiary computation is per- 
formed. So, evaluating (FIRST (FIRST (QUOTE ((A B) 
C)))) would involve the following: 

The leftmost FIRST must wait since its operand re- 
quires evaluation; similarly the next FIRST 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)))l). 
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 C)) 



(BC). 



Similarly, the expression: 

(REST '(BC)) 
yields: 

(C) 

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

The operations first and rest are called selector func- 
tions since they are used to select components from 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 would 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 reliable, yet extremely reasonable prod- 
ucts. It's a complete 8080A microcomputer system 
that includes the following standard fea- 
tures: A dual floppy disk drive with 591 K 
bytes of storage; a 19" color data display 
with an easily readable 80 characters x 
48 line format; and a 60 CPS Impact 
Matrix printer. All for a remark- 
able *$7000, single unit price. 

And that price doesn't j 

stop at hardware. Intecolor's 
18K Business BASIC in ROM v -I 

has 16 digit accuracy and a 



■H 



PRINT US I NG feature that tailors output to any 
specifications. 

If you need greater storage capabilities, choose 
the 8071 —same system, but with a dual double- 
headed floppy disk drive. Giving you 1 1 82K bytes 
of storage, for only *$800 more, single unit. 

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

For more information and 
a complete demonstration, 
see your nearest computer 
store, or contact your 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: (TX) 214/840-2169. CA: Alhambra 213/281-2280. Goleta 805/964-8751. Irvine 714/557-4460. Los 

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

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

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

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

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

OK: (TX) 214/840-2169, OR: 503/620-5800. PA: 412/922-5110. Rl: (GA) 404/449-5961, SC: 803/798-8070, SD: (MN) 612/822-21 19, 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-51 10. WI:(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: Bournemouth 0202-293-1 15. 

WEST GERMANY: Munchen 089-31881. AUSTRALIA* NEW ZEALAND: Melbourne 543-2077. Meadowbank 808-1444. Chermside59-6436,We!lington64-4585.Auckland876-570,CANADA: 

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

Monterrey 564-876, FAR EAST: (C A) 213/382-1 107, HONG KONG: 5-74221 1 . JAPAN: Tokyo 402-8596, TAIWAN: Taipei 02-7026284, MIDDLE EAST: IRAN: Tehran 891 148, ISRAEL: Tel Aviv 266-291, 

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

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

Intelligent Systems Corp. □ 5965 Peachtree Corners EastO Norcross, GA 30071 D Telephone 404-449-5961 DTWX 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: 



(LIST 'A 'B 'O 



(A B C). 



yields: 



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



(). 



r 



At last. . . 
the mechanical interface 

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



\ 



30 Day Delivery 
User list 

*395 00 

Price increase 
September 1st. 
Dealer Inquiries 
Invited. 







<&&' 



The all new 
I/O Pak from 
Rochester Data, 
Inc. interfaces the keyboard 
of any commercially available 
electric typewriter with any 
computer. The result: low cost, high 
quality hard copy. 
Write today for more information. 



Incorporated 
^ 3100 Monroe Avenue, Rochester, New York 14618 ^y 



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

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 
( ? $ f i). One solution is to resort to M-LISP and recast 
the expression as: Hst[first[(A)];rest[(A B)];C] 

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

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

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



or: 



(LIST (FIRST '(A)) 
(REST '(A B)) 
f C) 

In a modern LISP implementation we would find further 
aids for locating matching parentheses, just as an interac- 
tive 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 CONCA T 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, CONCA T takes only two 
arguments, an element and a list, and adds the element to 
the front of the list. For example: 

(LIST '(A) '(C)) 



gives: 



while: 



gives: 



((A) (C)) 



(CONCAT '(A) '(C)) 



((A) C) 



14 August 1979 © BYT 1 : Publications Inc 



Circle 326 on inquiry card. 



What makes the Microtek Printer 
so different? Nothing! 




EXCEPT. . . • 



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



• 80 or 1 20 columns (software selectable) 

• Plain paper 

• Pin Feed 

• Double width printing 

• 1 25 characters per second, 70 lines per minute 
nominal throughput 

• 9x7 Matrix (80 columns/line), 7x7 Matrix (120 
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 



To: MICROTEK, Inc., 7844 Convoy Court, San Diego, California 921 1 1 (714) 278-0633 

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

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

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



name (please print) 



card number 



address 



cardholder's signature 



city 



state 



zip 



exp date 



phone 

Add $15.00 for packaging & shipping. 



Dealer inquiries invited. 



California residents add 6% sales tax. 

BYTE August 1979 15 



Circle 209 on inquiry card. 




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 compat- 
ibility with a variety of serial devices. For ex- 
ample, with the AIO you can connectyour 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 firm- 
ware 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 par- 
allel driver routine is available in firm- 
ware 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. 

.£357 

2116 Walsh Avenue 

Santa Clara, California 95050 

(408) 246-2707 





These constructors can be used at anytime to com- 
pose 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 T 
and NIL as their representations: 

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

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

ATOM: This single-operand instruction gives T 
if its operand is an atom, and gives NIL 
otherwise. 

NULL: This single-operand instruction gives T 
just in case its operand is the empty list, 

o. 

For example: 

S-LISP 

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

M-LISP 

atom[Aj gives t 
atom[(A)j gives / 
eq[A;B] gives / 
null [(A 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 dif- 
ferent 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 ca 



rd. 




personal computer. 



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 
Computer Club, to challenge other members 
5^> io com P uier S ames of skill and to 
^*£ trade programs. 

Q 
\ (S 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. 

Visit your local computer store 

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




a friendly place, owned by one of your neighbors. He'll 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 
and sink your teeth into an Apple. 
(800) 538-9696. 
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 com- 
puter 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 ar- 
tificial intelligence since the computational ideas embed- 
ded in it, together with the program development system 
built around the language, lend themselves most natural- 
ly to the design of complex systems. 

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



phasis on supporting the user to solve complex, ill- 
structured, poorly understood problems at already early 
stages (eg: problem formulation, approximations to the 
final solution, support of debugging and program modi- 
fication), 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 par- 
ticularly 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 con- 
taining 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 per- 
sonal 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 incor- 
porated (ie: an easy to learn command language or an in- 
structional 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 Cali- 
fornia," 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 educa- 
tional applications of computers, complex programs will 
be involved: 



18 August 1979 © BYTE Publications Inc 



• Incremental design. E Sandewall feels that inter- 
active 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 sys- 
tems are incremental, old modules may be modified 
and new building blocks can be added with an im- 
mediate effect. The compilation of fully debugged 
code is available as an optional feature. 

• Complex dynamic data-structures. Most informa- 
tion 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)))) 


User Input 
Translation 

Evaluation 
System Output 




List of 
Addresses 











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



McCarthy, provides a good model for this ap- 
proach, 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 pro- 
grams 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 situa- 
tions 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. 




CITY 


= 


= 




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 lnc 19 



Pattern languages like these are easy to imple- 
ment in LISP (see Winston, Bocker and Fischer, and 
Kornfeld's article in this issue). Constructs con- 
sisting 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 deve- 
loped in list processing languages (eg: IPL-V and 
LISP) and have been generally (ie: in many pro- 
gramming 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 se- 
cond argument of APPLY is the argument the up- 
date function will become applied to. In our exam- 
ple these data will be requested from the 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 environ- 
ments 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) environ- 
ments: the Turtle, Graphics and Musicbox world (ie: 
peripheral devices which are controlled by a command 
language) and the LISP world. A well-engineered pro- 
gramming environment, based on an LSI-11, is commer- 
cially 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 brief- 
ly summarize the experiences we gathered in our project 
in Darmstadt (see also Fischer): 

• Basic computational ideas like recursion, the con- 



f 



^ 



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 

02 = *ENTER/PRINT INVOICES 
03=*ENTER PURCHASES 
04=*ENTER A/C RECEIVABLES 
05 = *ENTER A/C PAYABLES 
06= ENTER/UPDATE INVENTORY 

07 = ENTER/UPDATE ORDERS 

08 = ENTER/UPDATE BANKS 

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

11 = EXAMINE/PRINT INCOMPLETE RECORDS 

12 = EXAMINE PRODUCT SALES 

WHICH ONE? (ENTER 1-24) 

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

Think of the possibilities and add to those here if you wish. 
Price tor current package Version 1 is $550, or Version 2 (including aged debtors analysis, etc.) is $750, or full listing, $300. 

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



13= PRINT CUSTOMER STATEMENT 
14= PRINT SUPPLIER STATEMENTS 
15 = PRINT AGENT STATEMENTS 
16=PRINT TAX STATEMENTS 
17=PRINT WEEK/MONTH SALES 
18= PRINT WEEK/MONTH PURCHASES 
19=PRINT YEAR AUDIT 
20= PRINT PROFIT/LOSS ACCOUNT 

21 = UPDATE END MONTH FILES 

22 = PRINTCASH FLOW FORECAST 

23 = ENTER/UPDATE PAYROLL (NOT YET AVAILABLE) 

24 = RETURN TO BASIC 



contact: Tony Winter on 01-636-8210 
21 B Dryden Chambers 
1 1 9 Oxford Street 
London W1, UK 



Circle 153 on inquiry card. 



20 August 1979 © BYTE Publications Inc 



Circle 285 on inquiry card. 



Both sides now 



North Star Announces — 

Double Density x 2 Sides = Quad Capacity! 

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

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

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




gtfHi 



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

NortriSlaf^ 

North Star Computers 

1440 Fourth Street 

Berkeley, CA 94710 

(415) 527-6950 TWX/Telex 91 0-366-7001 



Normstaf 




TRADITIONAL APPROACH 



LOGO APPROACH 



NATURAL LANGUAGE 



MATHEMATICS 




LOGO 




PASCAL 




A PL 




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 appli- 
cable (even in problem solving situations without 
the computer). 

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



medium to test one's own understanding of con- 
cepts and of poorly understood systems (ie: if we 
really understand something, we can write a com- 
puter 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 deduc- 
tive 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 intro- 
duce 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 solv- 
ing 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... 



HUPOj 




TM 



Until Now 



digital plotters 



The perfect small system output device 

• Displays data in easy to read graphical 
format 

• Both serial and parallel inputs built-in 

• Uses standard 8V2" x 11" paper 

• Plotting speed up to 2.4 ips 

• Resolution of both 0.01 and 0.005 in. 

• Baud rate and step size easily changed 

• Completely assembled and ready to use 

• Priced at $1085* 




digitizers 



The perfect small system input device 

• Resolution and repeatability of 0.005 in. 

• Origin is completely relocatable 

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

• Accuracies of ±0.015 in. (0.4mm) 

• Optional LC display shows 

actual values being inputted 

• Digitizing surface 11" x 11" 

• Priced at $795* 



WEHi 




I 



I 



'U.S. Domestic Price Only 

TM Trademark of Houston Instrument 



. u j.H 



)•-■ 



^ 



Ol VISION OF BAU8CH & LOMB (£) 



For rush literature requests 

or local sales office Information only, 

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



Houston 

instrument 

ONE HOUSTON SQUARE AUSTIN, TEXAS 78753 
(51 2) 837-2820 TWX 91 0-881 -2022 

"the graphics - recorder company" 

ci idadc a m Arrive Rochesteriaan 6 8240 Gistel Belgium 
EUROPEAN OFFlUE 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 stu- 
dent is doing, or give him a possibility to select the parti- 
cular 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 in- 
struction 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 misunderstan- 
ding (ie: the deep structure) from scarce observations on 
the surface. Buggy is a program which does this for sim- 
ple 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 in- 
ference 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 in- 
struction 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 (Sup- 
pes). What makes these programs appear to behave in- 
telligently is the fact that the knowledge they teach is us- 
ed by these systems in many ways to carry out dialogues 
(for an overview see Laubsch). 

A crucial component of friendly, intelligent, 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 pro- 
grams here down to an implementation level, because 
these systems are large and complex as compared to cur- 
rent 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 educa- 
tional 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 inter- 
esting 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 pro- 
blems for the years to come: to create cognitive theories; 
to create a science of intelligence, and to apply it suc- 
cessfully to the problems of education. ■ 

Bibliography 

1. BOCKER, H D, and FISCHER, G, Interaktives Problemlosen mit 
Computer hi If e: 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," Interna- 
tional 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 Mathematical 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 Man- 
Machine 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 Concep- 
tual Framework for Teaching Mathematics, BBN Report 
Number 2165, Cambridge MA, 1971. 

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

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

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

11. MCCARTHY, J, "A Micromanual for LISP— not the 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 Com- 
puter 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 August 1979 © BYTE Publications Inc 



SYBEX 



LEADER IN 

COMPUTER EDUCATION 



SYBEX, INC. 
Milvia Street 
keley, California 
94704 







□ PROGRAMMING THE Z80, ret C280, by Rodney Zaks, 330 pp $1 1.95 

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

D 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 

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

G FREE DETAILED CATALOGUE 



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

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

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



NAME 

COMPANY 
ADDRESS _ 
CITY 



_STATE. 



.ZIP. 



□ Charge my: D Visa □ Mastercharge □ American Express 

Number Exp. Date_ 

Signature 



Circle 358 on inquiry card. 



BYTE August 1979 25 



The Lambdino Storage 
Management System 



Gianfranco Prini 

Instituto di Scienze dell'Informazione 

Universita' di Pisa 

Corsa Italia 40. 
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 com- 
bination 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 philo- 
sophy of LISP (as described in his paper entitled 'The 
Mechanical Evaluation of Expressions"). Other 
predecessors of Lambdino include the anonymous lan- 
guage used by Reynolds in his work Definitional Inter- 
preters 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 transport- 
ability 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 rea- 
lized 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 manipu- 
lating 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 nor- 
mally 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 implementa- 
tion 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 repre- 
senting 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 Publications Inc 



"Our inventory is our existence* 

Think we'd trust it to anything less 

than Scotch Brand Diskettesr 




Don Stone, Vice-President, 
Mass. Auto SupplyCompany, 
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.) Askforthe Data 
Recording Products Division. 



If it's worth remembering, 

it's worth Scotch 

Data Recording Products. 



3M 



Circle 368 on inquiry card. 



BYTE August 1979 27 



A one-to-one correspondence 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 corres- 
pondence between partitions and data types is implicitly 
established by the implementation of the data structure 
manipulating primitives. The type T of an object is ob- 
tained by comparing its address A with the boundaries of 
the partitions. 

This technique has been adopted by the PDP-10 imple- 
mentation of LISP 1.6 and some early versions of 
MacLISP. In fact it is particularly suited to those com- 
puters 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 parti- 
tions are nearly empty. This drawback may be eliminated 
by enlarging the overpopulated partition and contracting 
the underpopulated ones. A compacting garbage collec- 
tor with additional phases is required for this purpose. 
After the compaction phase, the boundaries of the parti- 
tion are redefined, data is moved to fit the new boun- 



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

Paged Partitions 

Free storage is divided into pages of equal length 
(usually a power of 2, eg: 1 or 2 K bytes or 256 or 512 
words). A page is referred to as busy or free, according to 
whether or not it currently contains data. Like conti- 
guous 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 dyna- 
mically 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 signi- 
ficant 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 alter- 
native to contiguous partition for the same class of com- 
puter architectures, has been empleyed in the PDP-10 im- 
plementation of INTERLISP and recent versions of 
MacLISP (as described by G Steele in Data Representa- 
tion 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 recom- 
pute boundaries and move data accordingly. A nice pro- 
perty of this technique is its compatibility and smooth in- 
teraction with timesharing operating systems that 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) 


i 


i 























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



PI 


P2 


P3 


P4 


P5 


• • • 


Pn 




i 


i 






i 


i 





Tl 


T2 


i 


* 


Tl 


< 


► 


• • • 


T3 






1 




ii 





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



28 August 1979 © BYTE Publications Inc 



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 ca- 
pabilities that surpass the Z-80 is made 
for you. 

Smoke Signal's quality -packed 
Chieftain I features two 5.25-inch mini- 
floppy drives and Chieftain II fea- 
tures two 8-inch floppy drives. 

Both microcomputers 
provide 32K static memory, * "'^?\ ;« 
two serial I/O ports, a 2 J^^^M 
MHz processor board, a 2K 
RAM monitor, a nine-slot 
motherboard with built- 
in baud rate generator 
and gold connectors for 
high reliability. The 
Chieftain's stylish leath- 
er-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 
start at $2,595. 



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

Name 



Address. 



Company 
City 



SMOKE SIGNAL 
BMDMSTING 

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



Dealer inquiries invited. 




Hail to the Chieftain 

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



Circle 328 on inquiry card. 



BYTE August 1979 29 



PI 


P2 


P3 


P4 


P5 


• • • 


Pn 


- 


I 












|Tt 


I 


► 






INTJ347 





LISP does not contain primitives for 
declaring new data types. 



Tl 


T2 


* 


i 


Tl 


i 


> 


• • • 


T3 




• • • — 


J 


1 









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































/ 








































' 








' 








1 





<FIE> 



<FOE> 



<FUE> 



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



•»- m •— ►► • • *• • • 

V «| u 



F00 



<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 represen- 
tation 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 Pro- 
gress 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 char- 
acters, 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 manipu- 
lated as pointers (note that no private pages are needed to 
store immediate data). The main drawback of this techni- 
que is that information is somehow duplicated: in fact, a 



type table is still needed by the garbage collector 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 pro- 
gram 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-FOO 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 (MK- 
FOO 3 4 5)) is printed as (FOO 1 2 (FOO 3 4 5)), whereas 
(MK = FOO 1 2 (MK = FOO 3 4 5)) yields (FOO 1 2 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 Publications Inc 



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

• Space is not only saved in the implementa- 
tion of user defined data structures, but also 
in the list representation of interpreted func- 
tions. Most lists in purely applicative pro- 
grams contain less than 3 or 4 elements, 
hence the introduction of NULLCDR 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 com- 
pensated 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 (EVLIS1 X A)))) 

(DEFINE EVLIS1 (X A) 

(CONS (EVAL (CAR X) A) 

(COND ((NULLCDR X) NIL) 

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

This improved version saves some storage accesses 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 Schorr- 
Waite 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 mix- 
ture of contiguous partitions and tagged pointers with 
NULLCDR bits. More precisely, the free storage is di- 
vided into two variable partitions FIXLEN and VARLEN 
(see figure 7). 

FIXLEN may contain only fixed length data (ie: 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 (pro- 
perty list lovers will be allowed to use this 
field for holding property lists in special ver- 



i i 



NIL 



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




VARALL FIXALL 

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



b3 


b2 


bl i 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 com- 
piled closures: 

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

• Compiled functions are binary code produc- 
ed 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 inter- 
preted 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 collec- 
tor is invoked to contract VARLEN to the left and FIX- 
LEN to the right. The common length of FIXLEN data 



August 1979 © BYTE Publications Inc 31 



TAG 1 


TAG 2 


ADDRESS I 


ADDRESS 2 


-*— 1 BYTE — *U 4 BYTES * 



stream and returns its integer representation. 

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



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



TAG I 


ADDRESS 1 


TAG 2 


ADDRESS 2 


<• 4 BYTES 


4 BYTES * 



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



allows the garbage collector to operate properly 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 gar- 
bage 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 deter- 
mine 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 suf- 
ficient to cover the three types of FIXLEN 
and VARLEN data, respectively. 

• When bl and bO are both clear, A is to be in- 
terpreted as an integer number. Integers con- 
stitute the seventh data type of 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 con- 
tents of the byte located at address A. 

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

(GETCHAR) reads the next character from the input 



(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 Develop- 
ment 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 func- 
tions have been debugged using a simple Lambdino inter- 
preter 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 com- 
piler, 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 r Moon, D, 
Weinreb, D, LISP Machine Progress Report, Memo Number 444, 
Laboratory for Artificial Intelligence, Massachusetts 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," Com- 
puter Journal, volume 6, number 4, 1964, pages 308 thru 320. 

5. Montangero, C, 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. Quam, L, Diffie, W, Stanford LISP 1.6 Manual, Artificial Intel- 
ligence 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 Insti- 
tute of Technology, 1977. 

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

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

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

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



32 August 1979 © BYTE Publications Inc 



no loose ends 

All-ln-One: computer, floppy, I/Q16K RAM. $1595 




lllLLlll 



.... 



**uu 



CWi TM Ztt licroproctssors 

ttKtt i.wmi 

ItMitt lit byi« RRH txp*ndible to 48K 
litpliyt 23 lints by 86 chirictirs 
Chir«Ur«i 3 x 7 dot utrix, upptr I hv*r cm 
iriiMtit S3 sptciil gnphic* eft 

Ctyboardi 72 hiys, SI ilphinuitrlc I 12 function 
control (8 uur-difimbii) 

Iui»fle kqptdi 12 kiyt 

Cwiw Mtfrtiilngi Ptliiivi I dirict for full cursor control 

Hit functions! Inssrt or diloli chinciir or lino 




New Heathkif 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 microproc- 
essors mean terminal never shares pow- 
er 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. 

*$1 1 95 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 5 1 A- 
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 comput- 
ers than to build one yourself? The All- 
ln-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 assem- 
bly 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 suc- 
cessful 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 imple- 
ment 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 represen- 
ting 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 invo- 
cation 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 Intelli- 
gence 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 relation- 
ship 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 inter- 
preter is concerned). So that they may be used in our pro- 



34 August 1979 © BYTE Publications Inc 




TEIXHiEiVT 
GRAPHICS BOARD 

CGS-808 



in Features 

Motorola MC6847 video display 

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

buff, cyan, magenta, orange. 
1 1 programmable modes 

• 1 alphanumeric mode with 32 x 16 

character and inverse video. 

• 2 semigraphic modes with 8 colors 

in 64 x 32 and 64 x 48. 
r 8 full graphic modes with 2 sets of 
4 colors ranging from 64 x 64 to 

192, and 2 sets of 1 color in 
192. 
d 8085 microprocessor, 
^ytes of on board static RAM. 
Up to 4K bytes of EPROM. 
True S-100 compatibility. 



Screen images are as 
photographed, unretouc 



CGS-808 

Biotech Electronics proudly announces 
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 will 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 low 
cost, high quality, professional display for 
applications in medicine, business, 
education, science, industry, and video 
games. 



oiroic ji on inquiry caru. 



Immediate Availability 

The CGS-808 is available assembled 
and tested for 0385.00, or the bare "kit" 
with the MOS chip set for $99.00 (Chip set 
includes the MC6847, MCT372, 8085 and 
2708 EPROM with graphics driver 
subroutines). Color monitors are available 
for 8495.00, Delivery is from stock. 

Dealer inquiries are invited. 

For more information, call or write 



►iotech Electronics 
P. O. Box 485 
Ben Lomond, CA 95005 

t08) 338-2686 



BYTE August 1979 35 



Simple Pattern Matcher 

A simple pattern matcher can be implemented as a 
LISP function of two arguments, an assertion and a pat- 
tern. 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) ? ?) 

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

The simple cases for this pattern matcher occur when 
either the pattern or the assertion is an atom. If the pat- 
tern is the atom ?, then the match should succeed because 
?, by definition, matches anything. If the pattern is 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 con- 
verting 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) ? (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 ap- 
plied to a list, the function FIRST selects the first element, 
and the function REST selects everything but the first ele- 
ment. We can think of the subparts of the patterns (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 asser- 
tion 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 (7(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 func- 
tions, ADD and REMOVE, can be written to add asser- 
tions 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 Publications Inc 



Circle 256 on inquiry card. 







.<*rfW 







!!!!!!!f7: f -fUI»U,; t ',11;!!!!,, linffTfll 



MryT*r*rrm* 



III I II III 1 1 1 1 1 1 



mum iiiiiiii mum 





;..#*... ......1/ #i 


!1*'V]M 








1 




=^3?*=f -•■?Tr , n— :. • 


... IB — £& 


Cfcii^ta ^^ ■» » "*■ 
■■Bli #fisf- *a : 6t M &* 

Hii 


! — - ■minfimi 



v 

I I t B ( f f B r Jflft \ JUL 1. L-T^l 


.£'" 












53B 


DBKB2BW 


JRK : . 


* r 


■■ ; f — 




yiLi \ 


tf& 




" 


• > 




' ' -«— JIM^H 


i 







"'"*■ .*' /'i ••';';' I 






m 



MM16K/$349 = 2.1C 



MM24K/$499 = 2C 



SR16K/$299 = 1.8C 



SR32K/$649=2C 



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 Morrows new "Memory Master" 
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 VDMs 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 write-protectable 
8K blocks with Bank Select Logic capability. 
MM24K Kit, $499. Assembled and tested, $549. 



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

But if you really need a big helping of memory, 
the SuperRam™ 32K Static serves up two 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). 



9 



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 pat- 
tern 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 re- 
quire only that something be in the corresponding posi- 
tion 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 ?) 

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 arbi- 
trary 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 pos- 
sible 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 ? ?)) 

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

There are certain questions that the simple pattern mat- 
cher we have described cannot address, such as "Who 
was registered for Algebraic Topology in the Spring of 
1978?". 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 recur- 
sive control structures of LISP. It is described in the 
"Discrimination Networks" textbox. 

Simple Deductions 

There are a number of facts that are not explicitly con- 
tained in the data base of family relations 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 ? ROBERT)) 

The data base contains no explicit GRANDMOTHER- 
OF 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 






^v^- 



VA^N* 



CO' 



tftf** 



L-S^ 



a** 



r^*- 



oov 



***£* 






>*«' 






tA-x 



p ro ; o^ 















/VxO 



V*>0\>> 



o v 



*° r rv$*° 



^V*« 




•2^ 



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 8 1 /z" wide paper 

■ Quiet, non-impact operation 

■ 6 month warranty 

Available now at computer stores and industrial distributors. 





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

Circle 48 on inquiry card. 



BYTE August 1979 39 




MOTHER-OF 



LIVES 



PAUL N| L 



NIL 



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



MALE 



FEMALE 



HAS 




/ * SH,RLEY LENA 

ALVIN PAUL I I 

1 \ I ^ 

♦ * NIL NIL 



MANHATTAN 




BICYCLE 



MIL 



Discrimination Networks 

Simple data bases can be represented as lists of the 
assertions contained in them. Each time we want to deter- 
mine whether or not a pattern matches any of the asser- 
tions in the data base, the entire list must be scanned 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 par- 
tial 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 exa- 
mined. 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 loca- 
tions 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 sub- 
node 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 sub- 
node. 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 pro- 
blem to think about. 



40 August 1979 © BYTE Publications Inc 



ALTOS presents a new standard 
in quality and reliability 




WERE 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: %M, 1M, 2M, or 4M bytes. The ACS8000 features 
the ultimate in high technology hardware: a fast 4 MHz Z80 
CPU, 64 kilobytes of 1 6K 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. 



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

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

PRICE ACS 8000- 1 , single density, single-sided [7 2 Mb] $3,840 



ALTO 

COMPUTER SYSTEMS 



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

*Z80 is a trademark of Zilog. Inc. ^ J 

**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 MOTHER- 
OF 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 GRAND- 
MOTHER-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 7X ?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 asser- 
tion 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 7X ?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 per- 
son, 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 in- 
dividual is the uncle of another: 



THE 



51 




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 SWTPC6800. All programming voltages are generated on board and controlled by a 
safety switch with an LED Indicator. An Industrial quality Textool socket and extended boara height allow effortless EPROM Insertion and 
retrieval. The source listing of U2708, our utility to test, burn verify and copy EPROMs Is Included. B-08 was our first product and we've never 
had one of them returned for repair. Price: $99.95 

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

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

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

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

P.O. BOX 1 1 1 DEL MAR, CA 9201 4 71 4-756-2687 



42 August 1979 © BYTE Publications Inc 



Circle 231 on inquiry card. 



A Beautiful 
Way To Interface 



lftl*0 



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 

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 ADM-2. 2) Polling discipline compatible with Burroughs. 





IQ130 



K 



I The SOROC 

\ IQ 120 is the result 

of an industry- 
wide 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, lowercase. 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. 



165 FREEDOM AVE., ANAHEIM, CALIF. 92801 

1714) 993 -2BBO / (BOO) 854-0147 



A 



Coupler 
Professionals 



A major division of a Fortune 50 company has 
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 
Micro Processors 
Real-time Control Systems 
Performance Modeling 
Operating Systems 
Queuing Theory 
Structured Software Design 
Large Systems Development 
Custom Software Design 
Software Utilities 
Hardware/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 in- 
surance, 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 pro- 
fessional 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-OF 7X ?Y) 

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

"To show one person is the uncle of another, find a per- 
son that is a sibling of the first and a parent of 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 7X 7Y) 

(FIND (MOTHER-OF 7Z 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 7X ?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 7X 7Y) 

(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 7X ?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 Publications Inc 



MOVING DATA AT A SNAIL'S PACE 
BECAUSE YOU'RE FLOPPY BOUND? 

Let Corvus Systems put you back in the race! 





- — — 










CQftVtfS IH CAT 
<**- IH RECTORY MtUC MUHftEt t 

m 




■ For TRS-80t, Apple*, S-1 00 Bus*. 
Fully compatible hardware/software. 
10-million byte disk: 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 package 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. 



® 




-•^ 





CORVUS SYSTEMS, Inc. 



Circle 83 on inquiry card. 



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



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



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 dif- 
ference is that subroutines are usually called by name. If I 
want to compute a cosine I call the subroutine COS. Pro- 
cedures 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 7X 7Y) 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: 

"Is 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 asser- 
tions 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 ele- 
ment of a list with zero or more atoms in this list, before 
and after it. The problem can be dealt with by the intro- 
duction of the unpack operator. This operator, 
represented by an exclamation point !, is placed before 
the question mark variable. A ? without a ! matches ex- 
actly one object. A !? combination will match zero or 
more objects. Here are some examples of patterns: 

(FOO 11 BAR) matches any list that begins with the atom 
FOO and ends with the atom BAR: 

(FOO BLATZ BAR) 

(FOO TOM LARRY BAR) 

(FOO BAR) 

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



(FOO) 

(FOO BAR) 

(FOO BAR BLATZ) 

(? !? FOO !?) 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 1978?" can be phra- 
sed: 

(RETRIEVE ' (COURSES 7 (SPRING 1978) 

(17ALGEBRAIC-TOPOLOGY !?))) 

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

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

(COURSES ? (SPRING 1978) 

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

as well as: 

(COURSES ? (SPRING 1978) 

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

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 (?s and !?s are 
allowed). Here are some examples of multisets: 

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

(ABC) 

(CAB) 

(BC A) 

{A B ?} will match any three element list containing A 
and B: 

(BCA) 
(BARAB) 

(AXB) 

{A B !?} will match any list containing A and B: 

(BA) 
(XB YZ AV) 



46 August 1979 © BYTE Publications Inc 



VISUALIZE 
VOIR 



WflOEMS OflAWDAlLY 





Y=SQR( (-2*X A 2-3*X)/4+SGR 
(X A 3-X A 4+( (2*X A 2+3*X) A 2)/4) ) 



A2FP GIVES YOU EXTENSIVE 
PLOTTING CAPABILITIES 

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

You tell A2FP the domain of defini- 
tion and it plots the rest giving com- 
plete parameters of plotted curves. 
You can even superimpose differ- 
ent function graphs. A whole array 
of disk commands 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 ask the questions newcomers, 
non-mathematicians and non-pro- 
grammers need. Then every test 
imaginable is used to make sure 
the program performs flawlessly. 

CLEAR, COMPLETE AND LOGICAL 
DOCUMENTATION 

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




DAMPED FUNCTION; SIN(X)/X C-25,25D 



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



WilhA2FP 
The Apple 1C Function Hotter 



sented, highly legible, clearly 
organized, and thorough. The 
quality of the documentation tends 
to support the claims PR5 makes in 
other areas." 

DISK VERSION (46K REQ.) NOW 
AVAILABLE 



VISIT YOUR NEAREST DEALER 

Let your dealer demonstrate the 
excellence of A2FP. Only $34.95 
per cassette. $54.95 per disk. Let 
him show you the new concept in 
PR5 documentation. Use the cou- 
pon to obtain the names of dealers 
in your area. 



r 

i 
i 




PRS— THE PROGRAM OF THE 
MONTH CORPORATION 

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



□ 

□ 
□ 
□ 



Send me A2FP The 
Apple It Function Plotter 



Cassettes ($34.95 eo.) 

Floppy Disks ($54.95 eo.) 

Documentation only ($10 eo.) 

Send me list of dealers in my area 

Check enclosed (5% discount for payment with order) 

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



Cord# 

Bank&# . 

Signature . 
Nome 



Exp. Dote. 



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

Circle 317 on inquiry card. 



I 
I 
I 
L, 



Corporation 

Address (no P.O. Box) 
City 



Telephone. 



State . 

Reference SD9 



-Zip. 



-- .J 

BYTE August 1979 47 






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

(XB AB) 
(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 «, $2 



Mp>.» • 



Main/Frames ,™ $200 



< 14 Basic Models Available 
» Assembled & Tested . 

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

► 15 Slot Motherboard 1 

(connectors optional) 

• Card cage & guides 

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

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



r Rack 
mounted 
from $200 



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 BankAmericard/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 suc- 
cessors 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 asser- 
tions similar but not identical to the current one. A 
hypothetical world might represent what would happen 
if 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 con- 
trol over the order in which procedures are chosen. Con- 
niver 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 deter- 
mined 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 arti- 
ficial 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 in- 
vocation 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 Problems By Simulation 



with simulations 
of many con- 
cepts, including 

• wave motion 

• flying objects 

• artificial 
intelligence 

• electronic 
circuits 

• and robot 
motion! 



.yjBinrii\v v 




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.Lif f 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 



I II 



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




dITE 

enures 




BOOKS OF INTEREST TO COMPUTER PEOPLE' 

70 Main Street, Peterborough, New Hampshire 03458 



Circle 36 on inquiry card. 



BYTE August 1979 49 



Qispcis's Circuit Qellsp 



Anyone Know the Real Time? 



Steve Ciarcia 

POB 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 sim- 
ple 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 propor- 
tional to the urgency of the need; first 
things are done first. In control appli- 
cations 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 process- 
ing are immediately available to in- 
fluence control of the process being 
monitored. 

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







r //.•:. . 






• J jr ' , t I > 



f i i \ I i ; i • 



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 applica- 
tion 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 inter- 
rupted so that the analysis program 
can run. Most often, computers uti- 
lize hardware priority interrupts to 
provide this capability. A direct 
benefit of this approach is that all 
programs can execute asynchronous- 
ly, since interrupt logic synchronizes 
the computer's action upon the occur- 
rence 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 software- 
intensive situation requires that all 
devices demanding real-time interac- 
tion 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 nor- 
mally 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 in- 
dividual device before the computer 
has acknowledged the first event. 

Most sophisticated real-time sys- 



50 August 1979 © BYTE Publications Inc 



IN4002 

— M — « 



M5VAC 



C^ 



12.6VAC XIN4002 ^O.I/iF |lK 
• I o 



/77 



Number 


Type 


+ 5 V 


GND 


IC1 


7414 


14 


7 


IC2 


7492 


5 


10 


IC3 


7490 


5 


10 




Q A BD 



60Hz 



IC3 

7490 

^IO 



R o(t) R o(2) R g(i) R g(2) Qd 



D 



lOHz 



TTL LEVEL INTERRUPTS 
TO COMPUTER 



Figure 1: A simple time-base generator for an interrupt-driven 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 inter- 
rupt line. This can be every 60th, 
10th, or 1 second, as suggested in this 
schematic. When the computer ack- 
nowledges the interrupt, it first saves 
all registers from the program it was 
executing, and then services the real- 
time interrupt. Frequently the first 
action is to increment an internal 
counter which keeps track of elapsed 
time. Usually it will be a value equi- 
valent to the total number of clock 
ticks, whether in seconds or milli- 
seconds. 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 pro- 
cessor 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 interrupt- 
driven real-time system, a combina 
tion scan and interrupt type, or a 
total scanning system is dependent 
upon the quantity of real-time- opera- 
tions and their frequency. An inter- 
rupt-driven system can process infor- 
mation 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. Automa- 
tically turning on the percolator at 
6:45 AM would be far more stimu- 
lating than a high-speed data acquisi- 
tion system which few would need. 



Build a Real-Time Clock 

Essentially, the kind of real-time 
system which might appeal to per- 
sonal 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, 



DEVICE 


flCTltiRTION 


DEACTIVATION 


PRESENT STfflE 


l.Night Light 


m 


BjKM i^i| 


ON 


2. Driveway flood 


1338 


2230 


OF 


3. Coffee Perk 


0645 


0738 


OFF 


4. Water Softener 


0238 


0430 


OFF 


5. Outside Lights 


Wr$vM 


2330 


Eyj 


6. Thermostat Dn 


2300 


0530 


Ik] b 


7. Bedroom TV 


0700 


0600 


OFF 


8.Dehumidifier 


0300 


1800 


OFF 


PRESENT TITC 


—23 Hours 47 Minutes — 




SYSTEM STATUS 


TT**p*'P 


GREEN ****** 





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



August 1979 © BYTE Publications Inc 51 



50 Hz OR 
6 



D Hz OR I — ^ 
OHz L^^ 



-5 OR ^6 



FAST/SLOW 
SET 



o- 



T1ME PRESET LOGIC 



v HOURS 



■12 OR -H24 



f MINUTES 



r60 



SECONDS 



^60 



HOURS, MINUTES, AND SECONDS MULTIPLEXER 



MULTIPLEXER 
CLOCK F>- 



MULTIPLEX 
TIMING 



DECODER 



-O BCD OUTPUT 



i — > 7-SEGMENT 

' OUTPUTS 

-O DIGIT ENABLE 



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



J I 

u 

I 
I 

3 

L 

H 
_l 

I I 



3 

b 

/ 

i 

n 
o 

n 



TYPICAL 7-SEGMENT 
CLOCK DISPLAY 



SEGMENTS 



O 
•hi' 



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 



BCD 



8 


4 


2 


1 























1 








1 











1 


1 





1 











1 





1 





t 


1 








1 


1 


1 


1 











1 








1 



Figure 3, 
decimal) 



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



the interrupt routine could be 30 
bytes and 100 fis long. If called every 
millisecond it would eat up 10% of 
the total cycle time — just to incre- 
ment 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 semiconduc- 
tor/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 (transistor- 
transistor logic) chips once necessary 
to perform the same function, and 
consumes very little power, allowing 
battery standby operation. The cir- 
cuit of figure 1 uses inexpensive TTL 
rather than CMOS (complementary 
metal oxide semiconductor) because 
battery backup is irrelevant if the 
computer cannot acknowledge inter- 
rupts 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 ap- 
proach is to let the clock circuit 
operate independently from the com- 
puter, attached in such a way that the 
computer is able to monitor this acti- 



52 August 1979 © BYTE Publications Inc 



A New, Easy to Learn 
Microcomputer r^ 
Language / 



BASEX 



r ^""" 

US* 



ISBN 0-931718-8 



Iff 



utftf 



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

Add 60<p for postage 
and handling. 



svsmi 



**H*8l* 






BASEX is a fast and 
compact language which im- 
proves 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 , w ^ 

to relocate programs anywhere / JmlUl W 



in memory. 




"BOOKS OF INTEREST TO COMPUTER PEOPLE" 



70 Main Street, Peterborough, New Hampshire 03458 



Circle 36 on inquiry card. 



BYTE August 1979 53 



CLOCK GENERATOR 



i 
T 



CRYSTAL 



a 

b 
c 

SEGMENTS { d 
e 

f 

l« 

"HIO 

HI 

MIO 

Ml 

SIO 

SI 



TYPICAL 

MOS 

CLOCK CHIP 



DIGIT { 



CD4050 



CMOS/MOS 
TO TTL 
CONVERSION 



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



6 DIGIT DISPLAY 



V 



V 



V 



I 3 • u O • D C 
1 1_ ■ I U • _/ Ll 



V 



V 



+ 5V 



V 



10 



V 



V 



V 



V 



14 CD4050 



V 



I 2 3 4 5 6 
74147 

C B A 



PRIORITY 
ENCODER 



t t ♦ i t ♦ t 

a b c d e f g 
b 7 b 6 b 5 b 4 b 3 



000 

b 2 b, b 



PARALLEL INPUT PORT 



DIGITAL LOGIC DESIGN ENGINEERS - MARKETING PRODUCT SPECIALISTS 

cn 
> 



CO 

cc 
[11 
[11 

z 

CD 

z 

LU 

CO 

Z 

o 

I- 
< 
o 

-J 
a. 
a. 
< 



CO 

> 

-J 

< 

z 



cc 
[11 

< 

cc 
a 
o 
cc 
a. 
■ 

CO 

cc 

LU 

H 

CC 

-J 
< 
O 

z 
I 
o 

LU 



GET TO KNOW CODEX 

We're Codex, producers of high speed state-of-the-art data communications 
equipment, and we're knownas the best in the industry. Because we're growing at 
a phenomenal rate, we need individuals with all kinds of backgrounds, experience, 
and interests who'd like the challenge and excitement of working with the leader 
in its field. 

GET TO KNOW CODEX 
EVEN GETTER 

If Codex sounds good to you, clip out the coupon and send it to me, Gary Davis, 
Corporate Employment Manager. I'll send you a package of information 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 Mana- 
ger, 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* 

corporOTon 



A Subsidiary of MOTOROLA INC 

20 Cabot Boulevard, Mansfield, MA 02048 

An Equal Opportunity Employer M/F 

SOFTWARE DESIGN ENGINEERS - MICROPROCESSOR DESIGN ENGI 



m 
cn 

30 

m 

30 

m 
cn 
m 

z 

H 
> 

< 

m 
en 



m 

i" 

D 
cn 
m 

3D 

< 

o 
m 

m 

z 
o 

z 
m 
m 

3D 

cn 

H 

m 
cn 

H 
m 
z 
o 

z 
m 
m 

3D 

cn 



NEERS 



vity and extract a time value. The se- 
cond 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 inde- 
pendent 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 man- 
ner to drive a 6-digit light emitting 
diode display. The clock runs inde- 
pendently with the display multiplex- 
ing rate (about 1 kHz) set by a 
resistor/capacitor combination at- 
tached 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 com- 
puter 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 pro- 
gram first looks at bits b thru b 2 to 
determine which digit of the display 
to activate. Then it reads bits b 3 thru 
b 7 and compares them to a table to 



54 August 1979 © BYTE Publications Inc 



Circle 44 on inquiry card. 





September 1977 



March 1979 



Byte Cover Prints » 
Limited Editions. 



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

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



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

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



Send me "Breaking the Sound Barrier" 

prints at $25 each, and "Trap Door" 

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

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

□ Charge this to my Master Charge or Visa 



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 



D 



Circle 369 on inquiry card. 



BYTE August 1979 55 









12V 

A 



-J- 100/iF 
25V 



m 



I 



60Hz 



5-36pF 



CRYSTAL 
3.579545MHz 



20pF 



CRYSTAL 



33pF 



OSCILLATOR 
IN 



IC2 
MM5369 



OUTPUT 



OSCILLATOR 
OUT 



60Hz 
I 16 



M2V 




£ I0K f IOK f IOK 

6 4 J2 

AAA 



IOK 



22 



M2V 



G_ INPUT 



BCDI 
BCD2 
BC04 
BCD8 



ICI 

MM53I2 



I PPS Ml 

FAST SET MIO 

SLOW SET HI 

MULTIPLEX HIO 
50/60Hz 



9 



o o 



1 

IC5 I 
7406 | 

[ 
I 



X 



2 I 5 



o> 



o* 



"1 



i 

24 I 9 



"^ 



Ex 

I IC3 | 

CD4049 



r-,74 i 

| CD4049 | 

21 I Sr^. 2 



I 
20 I 5 



O 



!fc>! 



I 

ie I 9 



I 



o 



^ 



5a 





bo 



OPTIONAL 
INTERRUPT INPUTS 



FROM PARALLEL 
OUTPUT PORT 



00000000 

b 7 b 6 b 5 b 4 b 3 b 2 b| b 



DIGIT ENABLE BCD VALUE 
OUTPUTS 



TO PARALLEL 
INPUT PORT 



5c 



5b 



HIO Hi MiO Ml SIO SI 

g g g g g g 



V 



iC7 
CD4060 



L. 



V 



V 



V 



V 



10 



1 



V 



!iJ 

3 



6 4 3 2! 



.J 



INPUTS 



a \ inputs 

9 j 



IC6 

74147 



OUTPUTS 
C 8 



A 



6 



m. 

&7 &§ b $ b4 



+ 12 TO 15V 

FROM 

COMPUTER 



IN4002 



IN4002 



-W- 



CLOCK 
INTERFACE 



GND 



T 



-\ 



-±- 12V 

^F BATTERY 



/77 



Number 


Type 


+ 5 V 


GND 


+ 12 V 


IC1 


MM5312 


— 


23 


13 


IC2 


MM5369 


— 


8 


2 


IC3 


CD4049 


1 


8 


— 


IC4 


CD4049 


1 


8 


— 


IC5 


7406 


14 


7 


— 


IC6 


74147 


16 


8 


— 


IC7 


CD4050 


1 


8 


— 



Figure 5: Design for a real- 
time clock which can be syn- 
chronously controlled by a 
BASIC or machine language 
routine. 5a shows the sche- 
matic diagram; asterisks in- 
dicate 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 alter- 
nate configuration for a 
6-digit clock when using an 
MM5311 integrated circuit. 
5c shows the circuit for bat- 
tery backup operation. The 
clock interface requires 12 
mA from the battery during 
standby (indicated by the 
arrow). 



56 August 1979 © BYTE Publications Inc 






determine which character is being 
displayed. (Only 5 of the 7 segments 
are necessary to perform this com- 
parison.) 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 re- 
quires 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 com- 
munication. While it is still possible 
to manipulate individual bits and 
write machine language device con- 
trol subroutines for these computers, 
their owners are obviously more 
familiar with high-level languages 
and would necessarily feel more com- 
fortable with a clock design which 
could be controlled in BASIC as well 
as machine code. Figure 5 demon- 
strates such a design. 

This circuit, which can be man- 



MULTIPLEX TIMING INPUT 



n ^_j^_^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-to- 
CMOS converter for processor con- 
trol over the clock chip. Time is read 
by the computer as 4 binary coded 



i a nfi %§itiir_ " 




ester n skies... 



NALOG FUNCTIONS 

in kit form 

w 

for micrpcomp, 



IRS 

;ducers 
memories 
. functions 
converters 



MULTIPLIERS 



AND OTHER INTERFACE FUNCTIONS 

FOR INDUSTRY • BUSINESS • EDUCATION 
V COMPUTER HOBBIESTS • 



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



AVAILABLE NOW! 

"Q = QUALITY" 



QK-100 TRIPLE A-> D CONVERTERS $36 95 

QK-101 DUAL AIR TEMPERATURE SENSORS 26. 95 

QK-103 POWER SUPPLY & DUAL SOCKETS. ..29. 95 

QK-105 DUAL PHOTO DETECTORS 27. 95 

QK-110 MULTIPLIER, VOLTAGE-CONTROLLED 

AMPLIFIER COMBINATION... 43. 95 

QK-112 PEAK-SENSE & HOLD/SAMPLE 

AND HOLD 28. 95 

QK-122 DUAL INSTRUMENTATION 

AMPLIFIERS 24. 95 

QK-124 LOG & ANTI-LOG COMBINATION .... 40. 95 
QK-900 SOCKET/MOUNTING BOARD 8. 95 



C3- 



master charge 



VISA 9 



3J dealer 

inquiries 
welcome 



(602) 299-9831 



a division of j.r. conwell corporation 



Circle 81 on inquiry card. 



August 1979 © BYTE Publications Inc 57 



Listing 1: Program for the real-time clock. 



LIST 

100 
110 
120 
.130 

:mo 

150 

160 
170 
180 
190 

200 
210 
220 
230 
240 
250 



REM 

REM 

REM 

REM 

REM 

REM 

OUT 

IF 

REM 

REM 

DEC 

Ml- 

M2= 

HI* 

H2* 

PRI 

OUT 



REAL TIME CLOCK 

COPYRIGHT 1979 STEVEN CIARCIA 

THIS SIMPLE PROGRAM ALLOWS A COMPUTER TO TELL TIME BY 

INTERFACING 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 16 
ONCE THE LSD POSITION IS SET THE A SUCESSIVE READINGS ARE TAKEN 
THE INPUT PORT DATA IS ANDED WITH 15 TO OBTAIN THE BCD UALUE (REMEMBER, BASIC USES 

I MAD 

T AND 

T AND 

T AND 

T AND 



15 
15 
15 
15 



I REM 

:rem 
:rem 
:rem 



:GOSUB 250 
:GOSUB 250 
:GOSUB 250 
tGOSUB 250 
NT H2?H1? ": ■ JM25M1 tGOTO 160 

8,i :qut 8,o :t=inp(8):return :rem advance display mux 



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



READY 



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



associated BCD value. The tens of 
minutes data is available when bit b 5 
is high (bits b 4 , b 6 , and b 7 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^S increments for up to 100,000 
days (over 273 years). Program events 
for the same period with real time 
interrupts that permit pre- 
programmed 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. 




s 




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 
b thru b 3 . 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 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 b 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 con- 
nected to output bits bi and b 2 
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. 



( START ) 



PULSE 

DISPLAY MULTIPLEX 

INPUT 



IS DISPLAY 
MULTIPLEX IN 
Ml POSITION 



h— 



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

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




READ Ml IN BINARY 
CODED DEGIMAL 






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 






PRINT HOURS 
AND MINUTES 






f RETURN OR ^ 
\^ REPEAT J 



( 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 IS DESIRED PRESET 



GREATER THAN 
CURRENT READING 



h — 



IS CURRENT 
READING EQUAL 

I TO PRESET H 

I I 



h — 



\ ? y 


YES 




LET DESIGNATED 




PRESET H BE 
H = H-I 


NO 




H 








Ik 


READ HOURS 
















\ ? y 


NO 


TURN ON * 






FAST 


SET 



READ MINUTES 



I 1 

| IS CURRENT 
, READING EQUAL 
TO PRESET M 



I 




TURN ON 
SLOW SET 



f 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 add- 
ed, the 2 TTL automatic set gates 
should be disconnected. When the 
computer is powered up, random 
data can appear on bits bi and b 2/ 
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 designa- 
tion. Substituting an MM5311, the s 2 



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 pro- 
gram in listing 1 executes in approxi- 
mately 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 Cir- 
cuit Cellar" will be various joystick inter- 
faces. 



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 591 K bytes of 

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



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

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

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

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

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

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



Whether you need a single, 40- 
track TFD-1 00™ 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 1 02.4K bytes of data on 
one side of a disk — compared to 80K 
bytes on a TRS-80* mini-disk drive — 
and 1 02.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 



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

PATCH PAK #1™, our upgrade 
program for your TRSDOS*, not only 
extends TRSDOS* to accommodate 40- 
and 77-track drives, it enhances 
TRSDOS* inotherwaysaswell. 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 . . AheElectric Crayon™ to map your computer memory onto your color TV 
screen — for games, animated shows, business displays, graphs, etc. Coming PDQI 



( 

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

60 BYTE August 1979 



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

*TRS-80 and TRSDOS are trademarks of Tandy Corporation and Radio Shack which have no relationship to PERCOM DATA COMPANY. 




To order add-on mini-disk storage for your TRS-80*, 
or request additional literature, call Percom's toll-free 
number: 1-800-527-1592. For detailed Technical infor- 
mation 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 SWTP 6800 Computer . . . 

PERConnr 

FLOPPY DISK SYSTEM 

the 



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




fully assembled and tested 
shipping paid 




PERCOM DATA COMPANY, INC. 

21 1 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 inter- 
connecting cable • a 70-page instruction manual that includes operat- 
ing instructions, schematics, service procedures and a complete list- 
ing of MINIDOS™ • technical memo updates — helpful hints 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-f ile disk architecture, with automatic file 
creation and allocation for ASCII and binary files, supports sequential 
and semi-random access disk files. Multi-level file name directory 
includes name, extension, version, protection and date. Requires 8K 

RAM at $A000. Diskette includes numerous utilities $99.95 

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

prepared using a text editor described below $49.95 

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

disk CHAINing : $17.95 

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

Text Editors and Processors 
EDIT68 Hemenway Associates' powerful disk-based text editor. May 
be used 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 Per- 
Com disk operation. ROLL function permits text files larger than 
available RAM to be created and edited. Supplied on diskette com- 
plete with source listing $1 7.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 cross- 
reference 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 LIST700 addresses per diskette. Power- 
ful search, sort, create and update capability $99.95 

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

tm trademark of PERCOM Data Company, Inc. 
tm 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-1 000 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 Allen 

Signetics 

811 E Acques Ave 

Mail Stop 38 

Sunnyvale CA 94086 



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



CONS 
{ 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. 

i M-Expressions of an external notation 
for LISP, while a special kind of S-expre.s- 
sion, 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 
dot tee! pair, the functions first, rest, and 
concat will sometimes be used instead of 
car, cdr, an.d cons, even though the func- 



tions are identical in traditional imple- 
mentation. 

Within the LISP language are several 
powerful and distinctive features. One, called 
lambda notation, gives LISP the ability to 
describe and manipulate functions as data 
objects. We use a simplified form of this con- 
cept 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." ■ 




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 mark 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 — p . 

a 4y2-inch cube. And at $750, it's the only mark for details. 

sense card reader that makes sense for the lWS£l ° r better yeti 

small computer. ^ order y° urs toda 

CHATSWORTH DATA 
cs cd ^* f» ra p=* ^^— |— i arsi 

20710 Lassen Street • Chats worth, California 91311 
(213) 341-9200 Circle 43 on inquiry card. 




MICRO 



TOLL-FREE 

1-800-528-1418 



WEST PRICES . FAST DE' 



NDA 



ERVI 



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 




SOROCIQ 120 VIDEO 
TERMINAL 




ft 

&<f Tl 810 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 

IPSI 1620 Diablo RO .... $2705 

Hitachi 9" Monitor $184 

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



SspUJDRLD" 

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



VISA | No extra charge for credit card orders 



Circle 233 on inquiry card. 

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



Formerly Byte 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. 




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! 

/Mii-i-tiWI 



n/UcraWET 



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 Com- 
puting Division of CompuServe Incorporated, one 
of the nation's leading time sharing computer serv- 
ice companies. We are a multi-million dollar com- 
pany 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 net- 
work. 

• Time-saving business applications 

• Educational aids 

• Easy-to-use programming languages 

• Advanced programming and diagnostic tools 

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

What do I have to have to access MicroNET? 

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



the full capabilities of the MicroNET service will 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 protec- 
tion, we will disconnect automatically if your per- 
sonal computer is left unattended for 15 minutes. 

I want to know a bit more. 

Good. Send in the coupon. You'll receive more de- 
tailed information and an application. When you re- 
turn the application, including your Master Charge 
or Visa number (because we bill electronically to 
help keep the price low), we'll send your user iden- 
tification 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 



Mail to: 



^ 



CompuServe 



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

Send me information on MicroNET. 



Name_ 



Address. 



City/State/Zip. 



c 



uiiTiiwr 




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, Pitts- 
burgh, San Francisco, Stamford (CT), St. Louis, Toledo, Tucson, Washington D.C. 



Circle 46 on inquiry card. 



BYTE August 1979 65 



A Model of the 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 Com- 
puter (CMAC) can compute func- 
tions, recognize patterns, and decom- 
pose goals. We have also shown how 
a crosscoupled hierarchy of CMACs 
(see figure 1) can memorize trajec- 
tories, generate goal directed pur- 
posive 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 capa- 
bilities can give rise to perceptual and 
cognitive phenomena. 

The fact that the mathematical 
details of the CMAC model were 
derived from the cerebellum, a por- 
tion of the brain particularly regular 
in structure and hence uniquely 
suitable for detailed neuro- 
physiological 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 Na- 
tional Bureau of Standards where he has re- 
ceived 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 Scien- 
tific American and his Cerebellar Model 
Arithmetic Computer won the Industrial 
Research Magazine IR-100 award as one of the 
100 most significant new products of 1975. 



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 climb- 
ing 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 trans- 
forming an input vector S into an out- 
put 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 in- 
dividual 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 se- 
quences of subcommands which 
carry out those commands to subor- 
dinates. 

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 sub- 
commands. Feedback is processed at 
many levels in this ascending hierar- 
chy by intelligence analysis centers 
that extract data relevant to the com- 
mand and control functions being 
performed by the behavior-gener- 
ating 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 be- 
ing taken. The intelligence centers 
then interpret the sensory data they 
receive in the context of these predic- 
tions. For example, in military in- 



66 August 1979 © BYTE Publications 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 unex- 
pectedly easy success, and perhaps in- 
dicates a weakness in the enemy posi- 
tion which should be further ex- 
ploited. In the brain, the 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 com- 
mand 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 bat- 
tlefield situation. Each field manual is 
essentially a set of IF/THEN produc- 
tion rules or case statements, cor- 
responding to a set of CMAC func- 
tions, P = H (S) or Q = G (D). 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 sur- 
viving 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 deploy- 
ment 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 un- 
foreseen difficulties in the environ- 
ment, the operation will deviate from 
the expected or planned schedule. 
Alternate tactics may be required. If a 
change in tactics still does not pro- 
duce success, new strategies may be 
required. Of course, there is always 



1 


1 








„ C < 




F 4 


H 4 




04 


Jx 4 


















G 4 


R 4 


M 4 


P4 










Cs 


c Jt 








V 


E 4 




F3 


H3 




03 




JX 3 






G3 


R3 


M 3 




P 3 










C 2 


x= I' 








]! 


E3 




F 2 


H 2 




02 


Jx 2 


















G 2 


R 2 


M 2 


P 2 










r C| 


,- , 


1 








1 




E2 




F, 


Hi 




Qi 


j,, 


















G| 


Ri 


M, 


P| 








ACTION 


1 


E, ' 


1 
sen; 


5ATI0N 







ENVIRONMENT H* 



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 over- 
simplified diagram of the vast inter- 
connected 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 hierar- 
chies of nearby synergistic motor 
neurons. Each sensory-motor system 
has its own set of overlapping hierar- 
chies which become increasingly in- 
terrelated and interconnected with 



Figure 1: A crosscoupled, processing- 
generating 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 topo- 
logical 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 topo- 
logical^ 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 JAWS 
LIPS 
TONGUE 



BALANCE 

FORCE 

PROPRIOCEPTION 



HEARING 



T 

SPEECH 

LUNGS 

LARYNX 



TOUCH 
FORCE 
PROPRIOCEPTION 



ARMS 

HANDS 

FINGERS 



such as breathing and basic reflexive 
or instinctive responses such as 
eating, fighting, fleeing, and repro- 
ductive activities. Superimposed on 
this inner core is a second layer (ie: 
the mammalian brain) which is cap- 
able 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 pro- 
vides 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 sub- 
tle 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 en- 
counter computational overload and 



Figure 2. In the brain different processing- 
generating hierarchies represent different 
sensory -mot or systems. These become in- 
creasingly interrelated at the higher levels 
and eventually merge into a unified com- 
mand and control structure. This enables 
a complex organism to coordinate its ac- 
tions 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 redun- 
dancy 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 asso- 
ciated 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 in- 
ertial 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 clim- 
bing 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 behavior- 
generating hierarchy comes from ex- 
periments with animals and observa- 
tions 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 turn- 
ing movements requires the regions 



68 August 1979 © BYTE Publications Inc 



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



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



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

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



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



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



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



Tiny BASIC?* VP-700 
Expanded Tiny BASIC Board 
puts this high-level language 
on your VIP. BASIC stored 
in4Kof ROM. Ready for im- 
mediate use— no loading 
necessary. This expanded 
BASIC includes thestandard 
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 inter- 
action games! 16-key keypad 
VP-580 with cable ($15*) 
connects to sockets pro- 
vided on VP-590 Color Board 
or VP585 Keyboard Interface 
Card ($10*). 



COSM AC VIP lets you add . 
computer power a board at a time. 



With these new easy-to- 
buy options, the versatile 
RCACOSMACVIP 
(CDP18S711) means even 
more excitement. More 
challenges in graphics, 
games and control func- 
tions. For everyone, from 
youngster to serious hobby- 
ist. And the basic VIP com- 
puter system starts at just $249* assembled 
and ready to operate. 

Simple but powerful— not just a toy. 

Built around an RCA COSMAC micro- 
processor, 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 inter- 
face relays, sensors or other peripherals. It's 




easy to program and operate. 
Powerful CHIP-8 interpre- 
tive language gets you into 
programming the first 
evening. Complete docu- 
mentation provided. 
Take the first step now. 
Check your local com- 
puter 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 monitoror 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 421 1 . 



The fun way 
into computers. 



ItC/l 



Circle 322 on inquiry card. 



BYTE August 1979 69 




EGS, FEET, TORSO 
, FORCE, 

CEPTION 

GERS 



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 more 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 below D-D is intact. Lengthy tasks and complex goals require the cerebral 
cortex. 



below C-C to be undamaged. In par- 
ticular 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 section- 
ed along C-C can walk almost nor- 
mally. However, it cannot vary its 
walking patterns to avoid obstacles. 

Animals whose brains are cut along 
the line D-D can walk, avoid ob- 
stacles, eat, fight, and carry on nor- 
mal sexual activities. However, they 
lack purposiveness. They cannot exe- 
cute 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 behavior- 
generating hierarchy become increas- 
ingly 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 respons- 
ible for initiating commands for com- 
plex 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 tern- ' 
poral lobe. Interactions between emo- 
tions and intentional behavior appear 
to take place in the mediobasal cor- 
tex, and long term plans and goals are 
believed to derive from activity in the 
frontal cortex. Hierarchies of dif- 
ferent 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 sensory- 
processing hierarchies have been ex- 
tensively studied in the auditory 



70 August 1979 © BYTE Publications Inc 









The TARBELL Connection 

In an effort to offer products that meet the continually changing demands of the 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 sin- 
gle drives in daisy- 
chain. 

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

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

• Hardware includes 4 extra IC slots, 
built-in phantom bootstrap and on- 
board 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 opera- 
ting software available. Please inquire 
for details. 



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

• Unlimited length of variable names 
and strings. 

• Procedures with independent varia- 
bles. 

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

• Chain to another program. 

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

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

Occupies 24K of RAM. Tarbell BASIC 

on CP/M Disk $48. 

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



Tarbell 32K RAM Memory 

32K Static Memory 

S-100 Bus Connector 

9 regulators provide excellent heat distribution. 

Extended addressing (bank switching.) 

Phantom line. 

Low power requirement. 

20-Page operating manual. 

Full 1-year warranty. 

Assembled and tested full price only $625 

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



Tarbell Cassette Interface 





^JJJMUJM 



imiiiiliillH¥(ti, 



• Plugs directly into your IMSAI or ALTAIR. 

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

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

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

• 37-page manual included. 

• Device code selectable by DIP-switch. 

• Capable of generating Kansas City tapes. 

• No modification required on audio cassette recorder. 

• Complete kit $120 Assembled $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 









0,-G, (D,) 




system and also the proprioceptive 
and kinesthetic pathways. Cross- 
coupling from these ascending hierar- 
chies of sensory-processing modules 
to the motor-generating hierarchies 
provides the many different levels of 
sensory feedback information re- 
quired at the various stages of the 
task or goal decomposition process. 
At each level, output vectors from the 
previous level of the sensory- 
processing 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 two- 
dimensional nature of input from the 
surface of the retina causes the com- 
putational modules in the visual pro- 
cessing 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 sen- 
sory image E 1 plus the prediction vector 
Rj enters and is recognized by the 
operator G 1 as a pattern. The vector R x 
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 Dj might 
consist of a pattern of sensory 
variables Ej defining light intensity 
(perhaps in a particular color band) 
together with predicted variables Rj 
which select a particular filter func- 
tion. The output Q 1 = G^ (Dj) then 
might define a pattern of edges or line 



E, + R, 



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

Recent work by David Marr at the 
Massachusetts Insititute of Tech- 
nology 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 con- 
tain a depth image (derived from 
stereo disparity, light gradients, local 
edge-interaction cues, etc), a velocity 
image (derived from motion detec- 
tors), 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 







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-80 CPU — 32 and 16K RAM — Video Interface 



WE HAVE NEVER HAD 

• Designed for CPM • 

• On Board Boot 

• 2MHz-4MHz Operation • 
Switch Selectable Write 
Precomp. • 

• "Personality Board" to • 
Modify Drive Configurations • 
(No jumper wires) 



A FIELD RETURN! 

2 Data separators; one 

digital, one analog 

Runs without occupying any 

system RAM 

Complete Documentation 

Transparent Density Select 

Drive Diagnostic Software 

included 



West: 

DEL TA PRODUCTS 

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



wms& 




East. 

DEL TA PRODUCTS 

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



Circle 98 on inquiry card. 



BYTE August 1979 73 



Circle 99 on inquiry card. 



Whenyou 

want to 

makea 

good 

impression. 




Pick 
A Daisy. 

Diablo invented the Daisy Wheel. 
Which is why today, more people 

Eick one of over 100 different Diablo 
)aisy Wheels when they want print 
quality at its finest. 

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

Diablo Systems 

XEROX 



Diablo* and Xerox arc registered trademarks of 
XEROX CORPORATION. 

74 August 1979 © BYTE Publications Inc 



exist in registration at several dif- 
ferent levels of the visual information 
processing hierarchy so as to make 
possible the extremely sophisticated 
visual recognition tasks which our 
brains routinely perform. These dif- 
ferent 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 interpre- 
tation 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 in- 
formation required at various stages 
of the pattern recognition or sensory 
analysis process. In the visual hierar- 
chy, as well as in all other sensory- 
processing hierarchies, context vari- 
ables 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 ex- 
perienced as Ej. In this case the recall- 
ed context R; 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 tra- 
jectory) similar to that which existed 
when the template was recorded. 

When this occurs, the interaction 
around the loop formed by the Gj, Hj, 
and Mi modules at each level is 
similar to a phase-lock loop, or a 
relaxation process. The data Ej enters 
the module Gj which recognizes it to 
be in a certain class Qj with perhaps 
an error of Fj. The recognition Qj trig- 
gers an appropriate goal decomposi- 
tion (or subgoal selection) function in 
the H i+1 (or higher) modules which 
generates a command (or hypothesis) 
Cj. This command, modified by the 
error Fj, generates a subcommand (or 
subhypothesis) Pj and hence a 
predicted data vector Rj. The predic- 
tion Rj may confirm the preliminary 
recognition Qj and pull the context Pj 



into a more exact prediction via the 
feedback loop involving Fj. Alter- 
natively the prediction Rj may cause 
Gi to alter or abandon the recognition 
Qi in favor of another recognition 

QV 

Loops and Rhythms 

Obviously such looping interac- 
tions involve timing and phase rela- 
tionships which may themselves have 
information content. Many sensory 
data patterns, especially in the 
auditory, visual, and kinesthetic 
pathways, are time dependent and in- 
volve some form of rhythmic or har- 
monic temporal patterns as well as 
spatial relationships. For example, 
activities such as walking, running, 
dancing, singing, speaking, and ges- 
turing 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 pat- 
terns. 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 sen- 
sory 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 posi- 
tion. 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 autocor- 
relation 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 



o 



jWa^s 



me 



O 



u— ,e consul u ;; ese n\s 

.^pct\on, & uu _ c wt* aW c0U L Price 



o 



o 



o 
O 

o 



^ rn iecw n ' c »^,a* c ° w, price 



o 









- 257 A tN 47906 

BO \iatay ette ' 
^ esl xA63-2502 



O 
O 

o 

O 



Circle 363 on inquiry card. 



oic 



BYTE August 1979 75 



Q 
NAME 



HYPOTHESIS 



q 


l P 

1 


L 


1 


'i 








PHASE ERROR F 


H 


















i 




LOW PASS 


R 
PREDICTION 








G 


f(t-r,) 


M 






f(t-T L ) 










. 






1 




1 




1 


i 


i 




, 



PATTERN f (f ) 



X 

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 
Isock with the E observation. The G module can then also compute an autocorrelation 
function which gives a perception of pitch. 



PREDICTION is another signal 
r(t — r). If the processing module G 
computes the product of the PAT- 
TERN • PREDICTION, then the out- 
put 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-r) to track 
and lock on to the input PATTERN 
f(t). If the loop consists of a 
multiplicity of pathways with dif- 
ferent delays (r > 0), the output, 
when processed through low pass 
filters, will produce an autocorre- 
lation function: 

Ur) = T- m » h J f(t) * f(t_T) dt 
such that: 



qi = 0/Ai) 
q2 = 0//(r 2 ) 



Q = 



where: 

0<r 1 <r 2 ... <r L 

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 
l 

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 con- 
tent 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 sub- 
jected to a quite similar mathematical 
analysis as were the trajectories of 
hair cell distortions and cochlear elec- 
trical 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 trans- 
mission 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 com- 
putes 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 sub- 
multiples (ie: the beat, notes, various 
voices, melodies, and chord se- 
quences) comprise the inner struc- 
ture, harmony, or "meaning." The 
ability of the sensory processing- 
generating hierarchy of the listener to 
lock on to the periodicities and har- 
monies at many different levels (and 
hence many different periodic inter- 
vals) 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 bear- 
ing 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 mean- 
ingful 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 se- 
quences of interrelated and harmon- 
ious 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 process- 
ing hierarchy of the listener recalled 
memories of his own experience. He 
can tell tales, relate stories, and 
thereby provide others with second- 
hand 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 lan- 
guage 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 nonter- 
minal trajectories which generate and 
coordinate what finally results in the 
phenomena of purposive or inten- 
tional 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 Rj trajec- 
tories. Later the behavior-generating 
system learns to produce verbal out- 
puts 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 



PREDICTED PHRASE 



PHRASE 
DETECTED 



WORD ERROR 



PREDICTED WORD 



WORD 
DETECTED {> 



PITCH ERROR 



PHONEME 
IPITCH) 

DETECTED 



PREDICTED PHONEME (PITCH) 



PHASE ERROR 



PREDICTED FREQUENCY 




FEEDBACK 
FROM STRETCH 
RECEPTORS 
IN MUSCLES 



LUNGS, LIPS 
LARYNX, TONGUE 



VOICE 
OUTPUT 



5 V / VWV A ~ 



Figure 7. A crosscoupled hierarchy in the hearing-speech system. The generating hierar- 
chy decomposes language goals into strings of verbal output. When speech is 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, engrav- 
ed on bones and shells for the purpose 
of asking questions of heaven. Each 
stroke or series of strokes asks a cer- 
tain 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 recor- 
ding 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 dur- 
ing 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 sym- 
bols and some rules of syntax were re- 
quired to express decrees, record 
dates, and relate accounts of signifi- 
cant events. 

Thus, the language skill of writing 



evolved in small increments over 
many generations from the goal 
directed manipulation of physical ob- 
jects; 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 fami- 
liarity 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 



ililiiU 

ilttiw 



CI-S100 64K x 8 



"II II II II 

til ii nil 
I ■ ■ ii 1 1 1 1 
liiiiiili 



CI-1103 32K x 16 




CI-6800 64K x 8 




CI-8080 64K x 8 



• SBC 80/10 -$750.00 

• 6800 -$750.00 

CI-S100 — 64K x 8 on a single board. 
Plugs directly into the IMSAI, MITS, 
TDL, SOL and most other S-100 Bus 
computers. No wait states even with 
Z80 at 4Mhz. Addressable in 4K in- 
crements. 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 
1 28K. 8K x 1 6 $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 
4 K increments up t o 64K. 1 6KB $390.00. 
64KB $750.00 



€ 



Tested and bumed-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 en- 
code a thought (ie: a high level trajec- 
tory) 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 be- 
havior pattern which communicates a 
threat, signals submission, expresses 
fear or acceptance, is a form of lan- 
guage whether it be audible speech or 
sign language, whether it be express- 
ed 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 emo- 
tional state encoded or intent express- 
ed. Throughout the animal kingdom 
however, there exists a great variety 
of modes of expression and many dif- 
ferent 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 easi- 
ly feel caught up in a primitive com- 
munity sing-along when listening to a 
recording of a wolf -pack chorus. 

As we ascend the ladder of be- 
havioral complexity, we find a cor- 
responding 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 in- 
ternal trajectories of sufficient com- 
plexity that to attach facial expres- 
sions, 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. 



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




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








SOFTWARE 




pn fl e h r f o aren ! nepaCka 9 eSir 
enable you to make full use of 

trie potential in your small 

computer system: 

ACCOUNTS RECEIVABLE 

INVENTORY 

ORDER ENTRY 

WORD PROCESSING 

PAYROLL 

REAL ESTATE MGT. 

MEDICAL-DENTAL 

MAILING PROGRAM 

SHIPPING & RECEIVING 

and MORE! 

Microsoft Basic, Fortran, Cobol 

available 

CALL* for prices 




PRV 

otto*** z #x 

s\,i#-- \] tor 



\ price* 



MORE SPECIALS 



Decwriterll $1595.00 

Qume Sprint 5/45 

RO 2795.00 

Persci 277 Dble 

Density 1395.00 

lmsaiPCS80/15 599.00 

Anadex DP 8000 

Printer . . .995.00 



44 Column Printer .. ..$295.00 

Livermore Accoustic 

Coupler 

Javelin 9" Monitor . 

Centronics 

Micro M Printer . 



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



SYNCHRO-SOUND 

The Computer People 

193-25 Jamaica Avenue, Jamaica, New York 11423 

212/468-7067 TWX 710-582-5886 



ENTERPRISES, INC. 



Hours 9-4 Daily 
and Saturday 

Visit our new showroom 
Working units on display 

BankAmerlcard Master Charge 



Circle 355 on inquiry card. 



BYTE August 1979 



stone-age peoples. In such rites, infor- 
mation on vital subjects such as hun- 
ting (including the habits, ferocity, 
and vulnerable areas of the prey), 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 ma- 
jority of everyday speech consists of 
relating experiences ("...he did this, 
and I said that.../' etc). This is simply 
the straightforward encoding of be- 
havioral 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 mem- 
bers of the society. Language is a tool 
by which a speaker can arouse or im- 
plant in the listener a great variety of 
behavioral goals, hypotheses, and 
belief structures. By the use of these 
means, a speaker can command, in- 
struct, 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 rela- 
tionship between language and other 
forms of behavior. How, for exam- 
ple, can behavioral goals and trajec- 
tories be encoded into strings of 
language symbols for making re- 
quests, issuing commands, and 
relating sensory experiences? How 
can patterns of trajectories be en- 
coded 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 mecha- 
nisms by which the rhythms, perio- 
dicities, 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 correspon- 
dence 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 relation- 
ships between trajectories in the 
behavior-generating and sensory- 
processing 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 314% 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 
{J period. 

THIS IS THE MOST IDEAL AND PRACTICAL APPLICATION FOR MICROCOMPUTERS DEVELOPED TO DATE! 

• It is not a "kids" game designed to occupy idle time. 

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









I 

SMA; P.O. 

p MamP 


ORDER DIRECT 
Box 415; Burlington, Iowa 52601 




| Street 






1 City, State, Zip 






Credit Card No. 
Siqnaturfi 


Fvp Date 




D Check 


| VISA | | MC | | AM EX | I OINER I 




□ Money Order 


□ D □ D 


-J 



80 August 1979 © BYTE Publications Inc 



Circle 330 on inquiry card. 



~~ CM CM 4B I o i t 





r r r t ^^^ r^^ 






XJ-/1X II J_L , Li) LLJ_L IL» J_L J-ti-Ly' " 

A newquarterly by 
the staff of BYTE 

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

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

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







€> 




TM 



GUIDE TO PERSONAL •* COMPUTING 



SUBSCRIBE NOW! COMPLETE AND MAIL ATTACHED POSTAGE PAID REPLY CARD 

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



Exploring TRS-80 Graphics 



George H Yeager 

223 Riverside Dr 

St Albans WV 25177 



/ 



CONTROL BYTE 



"s 



DIGIT I 



DIGIT 2 



/ 



^V^ 



A 



8' 



GRAPHIC MODE- 



UNUSED- 



2' 



8 



I SETS A CELL ELEMENT ON 
"O" RESETS A CELL ELEMENT 



1 


2 


4 


8 


f 


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 {!'), 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 
4504 


3E 
3D 
83 


Get constant to point to next line start 


4505 


Add it to cell location 


4506 


5F 


Save new LSB line start ADR 


4507 


30 


Jump if no carry 


4508 


01 




4509 


24 


Increment H if L carried 


450A 


CD 


Call show three 


450B 


OE 




450C 


45 




450D 


C9 


Return to caller 


450E 


01 


*show three* 


450F 


03 


Set B, C to three characters 


4510 


00 




4511 


ED 


Transfer three characters 


4512 


BO 




4513 


C9 


Return 


4514 


AO 


Graphic symbol table 


4515 


AB 


For Enterprise 


4516 


A1 


For Enterprise 


4517 


8A 


For Enterprise 


4518 


83 


For Enterprise 


4519 


8B 


For Enterprise 



Listing 1: Demonstration routine for TRS-80 graphics in Z~80 machine language, for 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 
use. 



specific cell on the screen, data with a 
value of hexadecimal 80 or above 
must be placed into the memory loca- 
tion 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 bot- 
tom 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 con- 
trol 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 iden- 
tified in figure 1 by their decimal 
weight. The sum of the bits set to 1 in 



each section of the cell can be con- 
verted 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 unfor- 
tunate that the cell shape is unsym- 
metrical, 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 demonstra- 
tion program shown as listing 1. Run- 
ning 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 

s 298 13 

As above with 

Sockets and 

Software 

control 

features. 

*368 16 

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 TMS 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 generators 
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 ad- 
dressing allows multiple boards at the same address, 
making it ideal for multi-user 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. 



August 1979 © BYTE Publications Inc 83 






8 



























TS 










cu 










CD 




■s m MB ■■ HS 1 








ttofc -.1 In I -v& •"•>-' 1 m I ? H "° 1 


r i ^H <-> 




3 

o 




teff'^ ~ " n^^^i ** ^^^^B bI^^^i < ■ 5 ^"jf.^ ™ 


H iu> 






■flUflBUHll 1 l HDU 1 ■UjHBBuBniiann 






=>i 










u 




















u^ 










^ 




L_ J 3- ■ ,i \ - i i w- * r-^ • J ' ' 1 i*iiaEj I 






CQ 




PWff- yR ! t^B s 1 


-■•"? ' IIJBm y-'^H od 
«P r . Bod 


















to 








i ■ m 1 IfHP^inRH" Mrtr'*-" J-fcsBio 


* B«* 




<j 




agfe'^rT^— ; H< | ]-./ i | «* pT^j L*S m 


■ OD 




a. 
















^ 










bo 










UJ 










O 






|H HH ■ \ \-- 










' 


s w^^^a n^ m 


K ■ u> 

------ -j— - j m co 




3 






1 






. : 
































O 










-t«i 










-c 










tn 




■T^PI- priippi l_l— ■- 


H * ^f^M m -^^8 


llL 


3 




•o ^' ^ i< i i i< i ~ . h >*Ma> 


I m Pi *\ 


■J CD 


3 




^ hb 














O 


















M-^ 




















u. 








^^^^^ 


DQ 










O 




















O 










CO 














L. . ■' ■■ ! 






1 ! 1 


■HDHbI bM 


m/mm 






mm ^ m J 


(0 
CD 




o 

OD 


J* 


' 'hmmS 


HHcm 




R9U1 




|>;7y3? ■ <» 


l" 1 
















mm m&m 


1 1 


•8 


























a 










H 










cu 










-C 




















■S 








~BflHH 






■HMffll 1 ! 


«■ 








m 

CD 


flfHI 


CO • 


rO 


■hihll i 


-JBB1-; 


o 






fr&rf?*j 


EH«Hdcr> 


i* 1 


13 


hiuhSS 






' 






i ■■h &&ai 


1 1 


CD 


^ 
























3 


u 










UJ 








a 


■XI 








p 






















O 












■ra 


mm 


HUM 








CD 




s 


: .' J cm 


\ m 


■Ho 




a 









H taHHcn 


|o» 


i h* 


ir- 




\mm 




1 1 B 1 




i i 


o 


•8 

H 








3 
O 








to 




■ 






• 


»!■ 


i 


L 




ir.' — jftj K 1 - 








HH Bttfl^ 


o 






1 1 


em ■ m 


■j [ -v y 




a. 


^- 








to 








o 


cu 










•^ 








-c 










§• 






mm 




. 


J™1 


CD 




L 


1 °* 








g | 




■Hr 




i 












■ > • 




H O 

HO) 


.bo 


., , 












o 


j 




CD 


W 


00 i-^ m 


■■IL 1 1 




m 




n 












od BU&k-t 1 H £ r ^Rff??j ICO 


1 1 i. u- 


■_ 






a 










fN 



























84 August 1979 © BYTE Publications Inc 



iBlTffw 

y/imriirii-«t\\\, 

BOOKS OF INTEREST TO COMPUTER PEOPLE" 





More BYTE 



:itit 



KS 



in your future 



Circle 36 on inquiry card. 



BYTE August 1979 85 



And the future 



THE BYTE BOOK OF COMPUTER MUSIC combines 
the best computer music articles from past issues of 
BYTE Magazine with exciting new material— all written 
for the computer experimenter interested in this 
fascinating field. 

You will enjoy Hal Chamberlin's "A Sampling of 
Techniques for Computer Performance of Music", 
which shows how you can create four-part melodies 
on your computer. Forthe budget minded, "A $19 Music 
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 trans- 
form 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. 






n FWfHBVH era 



'\ 



$@& 



ISBN 0-931718-11-2 
Editor: Christopher P. Morgan 
Pages: approx. 128 
Price: $10.00 



* Fin flu i mm 




SCIPERWCIMPCIS is an excit- 
ing computer game incorpo- 
rating the original structure of 
the WCJMPCJS 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 Com- 
pany. Programmed in both 
6800 assembly language and 

BASIC, SUPERWUMPUS is not only addictively fun, 
but also provides a splendid tutorial on setting up 
unusual data structures (the tunnel and cave system 
of SUPERWUMPUS forms a dodecahedron). This is a 
PAPERBYTE™ book. 

ISBN 0-931718-03-1 
Author: Jack Emmerichs 
Pages: 56 
Price: $6.00 



Tiny 

Assembler | 
6800 



J 



TINY ASSEMBLER 6800, 
Version 3.1 is an enhancement 
of Jack Emmerichs' success- 
ful Tiny Assembler. The origi- 
nal 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 pro- 
vided 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 micro- 
computer. A colfection of more than a year's worth of 
the popular series in BYTE magazine, Ciarcia's Circuit 
Cellar includes the six winners of BYTE's On-going 
Monitor Box (BOMB) award, voted by the readers 
themselves as the best articles of the month: Control 
the World (September 1977), Memory Mapped IO 
(November 1977), Progra m Your Next EROM 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. Using amusing 
anecdotes to introduce the articles and an easy-going 
style, Steve presents each project so that even a 
neophyte need not be afraid to try it. 



^0 



ISBM 0-931718-074 
Author: Steve Garcia 
Pages: approx. 128 
Price: $8.00 



is right now! 



B ASEX, a new compact, compiled language for micro- 
computers, 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 equiva- 
lent programs in a BASIC interpreter— while requiring 
about half the memory space. In addition, BASEX has 
most of the powerful features of good BASIC inter- 
preters including array variables, text strings, arithme- 
tic operations on signed 16 bit integers, and versatile 
10 communication functions. And since the two lan- 
guages, 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 pro- 
grams anywhere in memory. 



T0k 



ISBN 0-931718-05-8 
Author: Paul Warme 
Pages: 88 
Price: $8.00 







PROGRAMMING TECH- 
NIQUES 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 com- 
puter user with background 
information to write and main- 
tain 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, effec- 
tive, maintainable programs. Included is information 
concerning structured program design, modular pro- 
gramming 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 Program- 
ming 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. 

ISBM 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 mini- 
mum system of 16 K bytes of memory, a system 
console (such as a Teletype terminal), a system monitor 
(such as Motorola MIKBCIG read only memory pro- 
gram or the 1COM Floppy Disk Operating System), 
and some form of mass file storage (dual cassette 
recorders or a floppy disk). 

The Assembler can produce a program listing, a sorted 
Symbol Table listing and relocatable object code. The 
object code is loaded and linked with other assembled 
modules using the Linking Loader LINK68. (Refer to 
PAPERBYTE™ publication LINK68: AN M6800 
LINKING LOADER for details.) 

There is a complete description of the 6800 Assembly 
language and its components, including outlines of 
the instruction and address formats, pseudo instruc- 
tions 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 Assem- 
bler, the Assembler and sample lO driver source code 
listings, and PAPERBYTE™ bar code representation 
of the Assemblers 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-104 
Author: Jack E. Hemenway 
Pages: 184 
Price: $25.00 



to order books see next page 



LINK68: AN M6800 LINKING LOADER is a one 

pass linking loader which allows separately translated 
relocatable object modules to be loaded and linked 
together to form a single executable load module, and 
to relocate modules in memory. It produces a load map 
and a load module in Motorola MIKBGG loader format. 
The Linking Loader requires 2 K bytes of memory, a 
system console (such as a Teletype terminal), a sys- 
tem monitor (for instance, Motorola MIKBGG read 
only memory program or the ICOM Floppy Disk 
Operating System), and some form of mass file stor- 
age (dual cassette recorders or a floppy disk). 

It was the express purpose of the authors of 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 imple- 
menting the system, the user has an opportunity to 
learn about the nature of linking loader design as well 
as simply acquiring a useful software tool. 

ISBN 0-931718-09-0 
Authors: Robert D. Grappel 
& Jack E. Hemenway 
Pages: 72 
Price: $8.00 
Winter 1979 

TRACER: A 6800 DEBUGGING PROGRAM is for 

the programmer looking for good debugging software. 
TRACER features single step execution using dynamic 
break points, register examination and modification, 
and memory examination and modification. This book 
includes a reprint of "Jack and the Machine Debug" 
(from the December 1977 issue of BYTE magazine), 
TRACER program notes, complete assembly and 
source listing in 6800 assembly language, object 
program listing, and machine readable PAPERBYTE™ 
bar codes of the object code. 

ISBN 0-931718-02-3 
Authors: Robert D. Grappel 
& Jack E. Hemenway 
Pages: 24 
Price: $6.00 



MONDEB: AN ADVANCED M6800 MONITOR- 
DEBUGGER has all the general features of Motorola's 
MIKBGG monitor as well as numerous other capabili- 
ties. 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 in- 
clude displaying and setting the contents of registers, 
setting interrupts for debugging, testing a program- 
mable memory range for bad memory locations, 
changing the display and input base of numbers, 
displaying the contents of memory, searching for a 
specified string, copying a range of bytes from one 
location in memory to another, and defining the loca- 
tion 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 de- 
signed by Ken Budnick of Micro-Scan Associates at 
the request of BYTE Publications, Inc., for the PAPER- 
BYTE™ bar code representation of executable code. 
The text of this pamphlet was written by Ken, and 
contains the general algorithm description in flow 
chart form plus detailed assemblies of program code 
for 6800, 6502 and 8080 processors. Individuals with 
computers based on these processors can use the 
software directly. Individuals with other processors can 
use the provided functional specifications and detail 
examples to create equivalent programs. 

ISBN 0-931718-01-5 
Author: Ken Budnick 
Pages: 32 
Price: $2.00 



BYTE BOOKS Division • 70 Main Street • Peterborough, New Hampshire 03458 



Please send the books I have checked. 

□ Computer Music $10.00 

□ SGPERWGMPGS $6.00 

□ Tiny Assembler (3.1) $9.00 
D Circuit Cellar $8.00 

□ BASEX$8.00 

□ Program Design $6.00 



□ Simulation $6.00 

□ RA6800ML $25.00 

□ Link68 $8.00 

□ TRACER $6.00 
DMondeb$5.00 

□ Bar Code Loader $2.00 



Total Books 

Add 60c per book 
Postage/Handling 

Grand Total 



□ Check enclosed □ Bill Visa □ Bill Master Charge 
Card No Exp. Date 



Title 



Company 



Street 



City 



State/Province 



88 BYTE August 1979 



Circle 36 on inquiry card. 



Illllllllllllll 



BYTE News 



I 

eUBBT^K N1 p;r,/-' >r( V .A [iRlVM;- f^ <_ ^ii lM^B-:,< n-T AI, C7 ( ja<l I MJ r 1^.1, ; ' . 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 bub- 
ble memory. However, before you rush out to buy it, be aware that each bubble memory board costs 
$2500 and the controller board costs $1000. 

Intel and National will also soon become manufacturers of bubble memory. Texas Instruments 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 produc- 
ing limited quantities of the bubble memory devices and they do not expect to begin volume produc- 
tion until 1980. Furthermore, one Japanese manufacturer, Fujitsu, appears to be near bubble 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 per- 
sonal 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-20 ($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) recor- 
dings. 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 Instru- 
ments 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 



August 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 introduc- 
tion. Rumors also continue that IBM will use the 3.25 inch (8.3 cm) disks, currently used in their dic- 
tating units, in some of their low end computer systems such as the 5110. 

FLAT DISPLAY PANELS SHOWN. At the May meeting of the Society for Information Display, 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 KSL- 
TV, 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 com- 
puter 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 non- 
paying 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 

ACGNJ 

1776 Raritan Road 

Scotch Plains NJ 07076 

MAIL: I receive a large number of letters each month as a result of this column. If you wish a 
response, please include a stamped, self-addressed envelope. 

90 August 1979 © BYTE Publications Inc 



VUordsmith 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 ^^^^^H^B^BBi^^i^^ 



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 Qume® 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 



<l 





CZ3 

ZZH 












□ 





page s 

window 

layout 




File Switching. Moving from document to document to 
examine, copy, move and change text is like rolling off a log. 
You're not confined to one disk file at a time anymore. ■■ 



Power 

Page Oriented Philosophy. A document is a collection of 
pages. The screen displays one entire page at a time. Simple 
random access page flipping commands take you quickly to 
any page in the document. Equally efficient commands allow 
you to insert, delete, copy and move pages both within one 
document and across documents. 




Extensive Block Manipulation Capabilities. Using 
"windows", portions of text, charts, etc., can be quickly and 
effortlessly moved around on the current page, or across 
pages. The shape and size of any window can be changed in 
real time, with the contained text automatically 
reformatting itself (heeding word and paragraph 
boundaries) to conform to the new shape. 




Move 
Text 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 8 


File=ADV1 


Cursor row 28, col 43 


1 I 


1 


1 ♦ 



Protection Against Catastrophic Errors. Its nearly 
impossible to ruin your document with a single bad 
command. Wordsmith's page oriented design and double- 
checking user interface help you do what you mean! 



The TM 

tooROsraftb 

TEXT EDITOR 

Defining the New Generation of Text Editing 

from Micro Diversions, Inc. 
8455-D Tyco Rd. 
Vienna, Va. 22180 
(703) 827-0888 



Direct CP/M® and North Star DOS compatibility 
Available for 40x86, 24x80 and 16x64 memory-mapped 
video boards 

Fully reentrant for efficient multi-programming environ- 
ments (6K program space, 5K data area) 
8080 and Z80 compatibility 



Ordering 
Information: 

$200 

(Screensplitter™ Owners: $80) 

Manual only: $1 5 

Check, VISA, Mastercharge 



1. CP/M or North Star DOS 
version? 

2. TTY or QUME interface? 

3. Brand and memory address of 
video display board? 

4. Ship on single or double 
density, 5" or 8" diskette? 



Inquire about our custom keyboard. 



Circle 219 on inquiry card. 



BYTE August 1979 91 



Aw, cut it out! 

Save these pages. It's our latest, up-to-the-minute list of super software. 

r 



J EFFECTIVE 



Software / 

with /Manual 
Manual/ Alone 

DIGITAL RESEARCH 

□ CP/M* FDOS — Diskette Operating -System complete with 
Text Editor, Assembler, Debugger, File Manager and system 
utilities. Available for wide variety of disk systems including 
North Star, Helios II, Micropolis, iCOM (all systems) and Altair. 
Supports computers such as Sorcerer, Horizon, Sol System III, 
Versatile. Altair 8800, COMPAL-80, DYNABYTE DB8/2, and 
iCOM Attache. Specify desired configuration $145/$25 

□ MAC — 8080 Macro Assembler. Full Intel macro definitions. 
Pseudo Ops include RPC, IRP, REPT, TITLE, PAGE, and 
MACLIB. Z-80 library included. Produces Intel absolute hex 
output plus symbols file for use by SID (see below) S100/S15 

□ SID — 8080 symbolic debugger. Full trace, pass count and 
break-point program testing system with back-trace and histo- 
gram utilities. When used with MAC, provides full symbolic 
display of memory labels and equated values $85/$1 5 

D TEX — Text formatter to create paginated, page-numbered 
and justified copy from source text files, directable to disk or 
printer $85/$1 5 

□ 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, WHILE/WEND, chaining, variable length 
file records $3 /$25 

□ BASIC Compiler — Language compatible with Version 5 
Microsoft interpreter and 3-10 times faster execution. Pro- 
duces standard Microsoft relocatable binary output. Includes 
Macro-80. Also linkabtetbFORTRAN-80 or COBOL-80 code 
modules $350/825 

□ FORTRAN-80 — ANSI '66 (except for COMPLEX) plus 
many extensions. Includes relocatable object compiler, linking 
loader, library with manager. Also includes MACRO-80 (see 
below) $400/$25 

□ 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 

□ EDIT-80 — Very fast random access text editor for text with or 
without line numbers. Global and intra-line commands sup- 
ported. File compare utility included $89/$ 15 

XITAN (software requires Z80** CPU) 

D Z-TEL — Text editing language. Expression evaluation itera- 
tion and conditional branching ability. Registers available for 
text and commands. Macro command strings can be saved on 
disk for re-use $69/$20 

D ASM Macro Assembler — Mnemonics per Intel with Z-80 ex- 
tensions. Macro capabilities with absolute Intel hex or relocat- 
able linkable output modules. New version 3 with added 
features $69/$20 

D LINKER — Link-edits and loads ASM modules . . .$69/$20 

D Z-BUG debugger — Trace, break-point tester. Supports dec- 
imal, octal and hex modes. Dissassembler to ASM mnemonic 
set. Emulation technique pennits full tracing and break-point 
support through ROM $89$20 

□ TOP Text Output Processor — Creates page-numbered, jus- 
tified documents from source text files $69/$20 



*CP/M is a trade name of Digital Research 
* *Z80 is a trademark of Zilog, Inc. 
***Good until August 31, 1979 



Software / 

with /Manual 
Manual/ Alone 

□ A4 package includes Z-TEL, ASM, LINKER, Z-BUG, TOP 

$299/$40 

EIDOS SYSTEMS 

□ KISS — Keyed Index Sequential Search. Offers complete 
Multi- Keyed Index Sequential and Direct Access file manage- 
ment. Includes built-in utility functions for 16 or 32 bit arithme- 
tic, string/integer conversion and string compare. Delivered as 
a relocatable linkable module in Microsoft format for use with 
FORTRAN-80 or COBOL-80, etc $535/$23 

□ K BASIC — Microsoft Disk Extended BASIC with all KISS 
facilities, integrated by implementation of nine additional com- 
mands in language. Package includes KISS.REL as described 
above, and a sample mail list program $995/$45 

MICROPRO 

□ Super-Sort I — Sort, merge, extract utility as absolute 
executable program or linkable module in Microsoft format. 
Sorts fixed or variable records with data in binary, BCD, 
Packed Decimal, EBCDIC, ASCII, floating, fixed point, expo- 
nential, field justified, etc. etc. Even variable number of fields 
per record! $250/$25 

□ Super-Sort II — Above available as absolute program only 

$200/$25 

□ 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 replac- 
ing, forward and backwards in file. In video mode, provides full 
screen editor for users with serial addressable-cursor terminal 

$150 $25 

a%\D Word-Star — Menu driven visual word processing sys- 

btf %^<?\ tem f° r use witn standard terminals. Text formatting performed 

P%, °&$ te \ on screen. Facilities for text paginate, page number, justify, 

>?&)/ <?/ k ) center, underscore and PRINT. Edit facilities include global 

<v^<2'/ J search and replace, read/write to other text files, block move, 

& — etc. Requires CRT terminal with addressable cursor position- 
ing. Word-Master users may upgrade for $395!*? . $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 var- 
iables etc $90/51 5 

STRUCTURED SYSTEMS GROUP 

D General Ledger — Interactive and flexible system providing 

proof and report outputs. Customization of COA created inter- 

/^p$\ ^^\ actively. Multiple branch accounting centers. Extensive check- 

fc-rfos ^ ] in 9 performed at data entry for proof, COA correctness etc. 

•ces a * Q a\\ J Journal entries may be batched prior to posting. Closing pro- 

P^ c0^y cedure automatically backs up input files. All reports can be 

^d^ ^-/ tailored as necessary. Requires CBASIC $899/$25 

O □ Accounts Receivable — Open item system with output for 
° ' internal aged reports and customer-oriented statement and bill- 
ing purposes. On-Line Enquiry permits information for Cus- 
tomer Service and Credit departments. Interface to General 
Ledger provided if both systems used. Requires CBASIC 
S699/S25 

□ Accounts Payable — Provides aged statements of ac- 
counts by vendor with check writing for selected invoices. Can 
be used alone or with General Ledger and/or with NAD. Re- 
quires CBASIC $699/$25 

D NAD Name and Address selection system — interactive mail 
list creation and maintenance program with output as full re- 
ports with reference data or restricted information 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, MICROPOUS, iCOM, SD SYSTEMS, DYNABYTE DB8I2, 
ALT AIR, EXIDY SORCERER, VECTOR MZ, 8" IBM, HEATH H17 & H89, 
HELIOS, IMSAI VDP42 & 44, REX and OHIO SCIENTIFIC formats. 



Software / 

with /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 keys. Full back-up of input files created. Parameter 
file created, optionally with interactive program which requires 
CBASIC. Parameter file may be generated with CP/M assem- 
bler utility S95/S20 

GRAHAM-DORIAN SOFTWARE SYSTEMS 

D PAYROLL SYSTEM — Maintains employee master file. 
Computes payroll withholding for FICA, Federal and State 
taxes. Prints payroll register, checks, quarterly reports and W-2 
forms. Can generate ad hoc reports and employee form letters 
with mail labels. Requires CBASIC. Supplied in source code. 
$590 $35 

□ 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 

□ INVENTORY SYSTEM — Captures stock levels, costs, 
sources, sales, ages, turnover, markup, etc. Transaction in- 
formation 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 $590 $35 

□ CASH REGISTER — Maintains files on daily sales. Files 
data by sales person and item. Tracks sales, overrings, re- 
funds, payouts and total net deposits. Requires CBASIC. 
Supplied in sourcecode $590/$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 

□ 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 50/$1 5 

When purchased with CIS COBOL $1 25/$1 5 

OTHER 

D tiny C — Interactive interpretive system for teaching struc- 
tured programming techniques- Manual includes full source 
listings S7S/$40 

□ C Compiler — Supports most major features or language, in- 
cluding Structures, Arrays, Pointers, recursive function evalu- 
ation, linkable with library to 8080 : binary output. Lacks data 
initialization, long & float type and static & register class speci- 
fiers. Documentation includes "C" Programming Language 
book by Kernighan & Ritchie $1 10/$15 

D Z80 Development Package — Consists of: (1) disk file 
line editor, with global inter and intra-line facilities; (2) Z80 
relocating assembler, Zilog/Mostek mnemonics, conditional 
assembly and cross reference table capabilities; (3) linking 
loader p oducing absolute Intel hex disk file for CP/M LOAD, 
DDT or SID facilities $95/$20 

D DISTEL — Disk based disassembler to Intel 8080 or TDU 
Xitan Z80 source code, listing and cross reference files. Intel or 
TDLVXitan pseudo ops optional. Runs on 8080. Standard CP/M 
and TRS-80 CP/M versions available $65/$ 10 

□ DISILOG — As DISTEL to Zilog/Mostek mnemonic files. 
Runs on Z80 only $65/$1 



Software / 

with /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, permit- 
ting recipe documents to be created from linked fragments on 
otherfiles. Ideal for contracts, manuals, etc $75/$5 

D WHATSIT? — Interactive data-base system using associa- 
tive tags to retrieve information by subject. Hashing and ran- 
dom access used for fast response. Requires CBASIC 
$125/$25 

□ XYBASIC Interactive Process Control BASIC — Full disk 
BASIC features plus uniaue commands to handle bytes, rotate 
and shift, and to test and set bits. Available in Integer, Ex- 
tended and ROMable versions. 

Integer Disk or Integer ROMable $295/$25 

Extended Disk or Extended ROMable $395/$25 

D SMAU80 Structured Macro Assembled Language — Pack- 
age of powerful general purpose text macro processor and 
SMAL structured language compiler. SMAL is an assembler 
language with IF-THEN-ELSE, LOOP-REPEAT-WHILE, DO- 
END, BEGIN-END constructs $75/$15 

D 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 

D Selector III — Multi (i.e., up to 24) Key version of Selector II. 
Comes with applications programs including Sales Activity, In- 
ventory, Payables, Receivables, Check Register, Expenses, 
Appointments, and Client/Patient. Requires CBASIC Supplied 

in source code $295/$20 

Enhanced version for CBASIC-2 $345/$20 

□ CPM/374X Utility Package — has full range of functions 
to create or re-name an IBM 3741 volume, display directory 
information and edit the data set contents. Provides full file 
transfer facilities between 3741 volume data sets and CP/M 
files $195/$10 

D Flippy Disk Kit — Template and instructions to modify sin- 
gle sided 51A" diskettes for use of second side in singled sided 
drives $9t75 

D BASIC Comparison — A comprehensive features and per- 
formance 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 20tf S.A.S.E.) FREE 



Orders must specify disk 
systems and formats: 
e.g. North Star single or 
double density, IBM sin- 
gle or 2DI256, Altair, 
Helios II, Micropolis Mod 
I or II, 5Va" soft sector 
(Micro iCOMiSD Salesl 
Dynabyte), etc. 

Add $1 litem shipping ($2 
min.). Add $1 additional 
for UPS C.O.D. 

Manual cost applicable 
against price of subse- 
quent software pur- 
chase. 

The sale of each pro- 
prietary software pack- 
age conveys a license 
for use on one system 
only. 



1 




TM 



Lifeboat Associates, 2248 Broadway, N.Y., N.Y. 10024 Telex: 668-585 (212) 580-0082 

rM The Software Supermarket is a trademark of Lifeboat 



=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 demonstra- 
ted that the concept of behavior is not 
as clear as certain people would in- 
dicate. The patterns that we call 
behavior result from the convergence 
of many influences, only a part of 
which can be attributed to the organ- 
ism 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 un- 
predictable, the result is recognizable 
as patterns of behavior. 

In part 2 we observed that a control 
system controls its input, not its out- 
put. It acts on its environment to 
make its own sensory or perceptual 
signal match a reference signal re- 
ceived from elsewhere, and to auto- 
matically 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 quan- 
tity (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 to- 
ward which action always urges the 
perception of the controlled variable. 
Under normal circumstances the con- 
trol system can make its perceptual 
signal track a changing reference sig- 
nal, 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 



• 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 "cir- 
cle 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 stret- 
ching 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 sen- 
sory 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 con- 
tract, the resulting stretch of the ten- 
don 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 pre- 
sent for a control system, but before 
we discuss this, a digression is 
necessary. 



All or None or Some 

One of the most unfortunate ac- 
cidents 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 in- 
struments 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 im- 
pulse was generated, or it was not. 

As a result, almost all neurological 
research has focused on single im- 
pulses. 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 inhibi- 
tion (an impulse tending to reduce the 
sensitivity of a nerve cell to an im- 
pulse 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 informa- 
tion for most neurons. What counts is 
frequency of firing. The sum of fre- 
quencies 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 fre- 
quencies. Most neurons, in other 
words, compute analog, not digital, 
functions. As we all know, it is 
perfectly possible to build digital cir- 
cuitry out of analog components. 
Digital integrated circuits are all con- 
structed from analog transistors. 

Therefore, when I begin to 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 func- 
tions 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 satura- 
tion 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 start- 
ing from sensors that are measuring 
the same input(eg: stretch in a ten- 
don). The signal that enters the mus- 
cle 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 elec- 
trons. In the majority of cases, the 
number of impulses passing through a 
cross-section of a bundle of redun- 
dant pathways per unit time will be 
"the signal," just as the number of 
electrons passing through a cross- 
section of a conductor per unit time is 
called "the current." 




The way you 
check line-by -line with 
an A P Intra-Swltch or 
Intra -Connector. 

You plug your Infra-Switch In-line 
with standard socket connectors, 
and Instantly you've got a separate, 
independent on-off 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 line-by-line 
probeability— and an easy way to 
tap your system and daisy chain It 
Into new areas. 

Both Intra-Connectors and Intra- 
Switches come in 20, 26, 34, 40 and 
50-contact models. 

Where? At your nearby A P deal- 
er. Where's that? Phone (toll-free) 
800-321-9668. And ask for the com- 
plete A P catalog, The Faster and 
Easier Book. 




AP PRODUCTS 
INCORPORATED 

Box 110D • 72 Corwin Drive 
Painesville, Ohio 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) 



' 


1 






R 














, + 








c 








iP 


- 














E 








i 


FNI 




FNO 


I 


1 










1 1 





Od 



(b) 



TO 


k FROM 


HIGHER 


1 HIGHER 


SYSTEMS 


1 SYSTEMS 




Level-1 Control System 

Figure 13b is a schematic diagram 
of the tendon reflex. Figure 13a is the 
diagram of a general control system 
that I have already shown and dis- 
cussed 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 ef- 
fects of a disturbing quantity D, af- 
fected by the disturbance function 
FND. 

Figure 13b contains the same com- 
ponents 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 excita- 
tion over inhibition, and thus rep- 
resents 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 con- 
tractile fibers together. The feedback 
function FNF consists of the mech- 
anical 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 ten- 
don. It is rather hard to disturb the 
tendon control system without dis- 
secting 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 




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 
prices! Our reliability has been 
proven by months of superior 
performance in thousands of 
installations. Our low-power boards 
are being used by quality-minded 
systems manufacturers across the 
country and overseas. 

4MHz boards now available. 

After receiving hundreds of 
requests, our engineering staff has 
come up with a new version of our 
board which runs on 4MHz Z-80 
systems. It wasn't easy to come 
up with a high speed board which 
would operate as reliably as our 
450ns version, but after months of 
careful design and testing, we did 
it. The price of the 250ns board is 
$10 per 16K additional. 

Circle 45 on inquiry card. 



All of our features remain. 

Our boards didn't become great 
sellers only because of the price. 
We still offer you our deselect 
feature which allows our RAM to 
overlap with any fixed memory 
areas in your system. Also, the 
RAM area of our board is fully 
socketed so that you can expand 
the board yourself. 

Other standard features include: 
plug selectable addressing on 16K 
boundaries (shorting plugs are 
placed over wire-wrap pins to 
address the board — located on 
the top of the board for easy 
changes), S-1 00 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 1 6K board is typically less 
than 4 watts ( + 8V @ 300ma, 
+ 1 6 V @ 1 50ma and - 1 6V @ 
20ma). Boards with additional 
memory typically increase power 
consumption only 1 watt per 1 6K! 

Standard S-1 00 Interface. 

Our board is designed to 
interface with any standard S-1 00 
CPU. All of the timing of the board 
is independent of the processor 
chip, and the board is set up for 
different processors by changing 
two plugs on the board. 

Contact your local dealer. 

To find out more about our RAM 
boards, contact your local dealer. 
If he is unable to help you, call or 
write us for a fast response. 
Central Data Corporation, 1207 
North Hagan Street, Champaign, IL 
61820. (217) 359-8010 

Central Data 

BYTE August 1979 97 



Circle 73 on inquiry card. 



-p/VS'H p asca | 
MICROENGINE™ 
16-bit P-code CPU 



Pascal executes 13x faster than on an LSI-11 
and 3x faster than on a PDP11-34! 




*2695* 

tLk W %/ W READY TO RUN 

$ 2995 List price 

*1795* Without case & power supply 



STANDARD 

• 16-bit P-code CPU 

• 64K bytes RAM 

• Floppy disk controller 

• Direct memoryaccesscontroller 

• Floating point hardware 

• 2 serial (RS-232) I/O ports— 50 to 19200 baud 

• 2 parallel I/O ports 

• Pascal & Basic compilers, 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 inter- 
preters. 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-Machine architectureoptimizes 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 5% or 8 inch, single 
or double sided. A hard disk controller will be 
availablesoon. 




$799' 



List price $ 956 
PERKIN-ELMER (Model 550) 



Shugart 

floppy disk (Model S A850) '695* 

Shugart 

floppy disk (Model SA800) »595- 

Texas Instruments 

printer (Model 810) M895* 



X-pert Systems™ designed by Computex 
are integrated and cost effective. Complete 16-bit 
systems areavailablestarting as lowas J 3l39. 

Customer satisfaction is guaranteed. 

Full refund with the return of any product within 
10 days. Service contracts available. Systems 
catalog $1. MICROENGINE™ owners manual 
M9. 95 postpaid. 

•LIMITED TIME cash price. 10% down 
guarantees priority. IL residents add 5% sales 
tax. Master Charge and VISA cards accepted. 



(312) 684-3183 

COMPUTER 

"THE COMPUTER EXPERTS" 
5710 Drexel, Chicago, IL 60637 



system. Artificially stretching the ten- 
don will tend to relax the muscle, 
since the feedback is inhibitory. 

In part 2 I described how 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 con- 
trol system controls the sensed ten- 
sion, and not the degree of contrac- 
tion 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 con- 
trol 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 in- 
telligent 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 volun- 
tary 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 ten- 
don, 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 con- 
tract. 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 dif- 
ferent directions of effect. Thus, we 
own 500 to 800 level-1 control sys- 
tems. 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 ex- 
ample, 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 con- 
cerned 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, how- 
ever, accounted for all incoming 
signals. The nervous system has hun- 
dreds 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 August 1979 © BYTE Publications Inc 



Circle 120 on inquiry card. 



SPECIALIZING IN 

QUALITY MICROCOMPUTER HARDWARE 

INDUSTRIAL • EDUCATIONAL • SMALL BUSINESS • PERSONAL 



BUILDING BLOCKS FOR MICROCOMPUTER SYSTEMS, CONTROL & TEST EQUIPMENT 




R 2 I/O 

2K ROM 
2K RAM 

3 Serial Ports 
1 Parallel Port 




ECT-100-F 

RACKMOUNT 
CARD CAGES 



POWER SUPPLIES, CPU'S, MEMORY, OEM VARIATIONS 




16 K RAM 

FULLY STATIC 
MEMORY 



6Ucfa 



«ni t - q 



""'-' &,,,„ 



TT-10 

TABLE TOP 
MAINFRAMES 



763 RAMSEY AVE. 
HILLSIDE, N.J. 07205 



ELECTRONIC CONTROL TECHNOLOGY god gsmoso 



SAVE THE WHALE 

The Fin Whale is the world'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 reach 
ing an area greater than the 
entire Atlantic Ocean. 



Drawing by 
Dan Sintli 



d$ 








Fin Whales 



creatures ever to have lived on planet 
earth, grow up to 24 meters in length (ex- 
ceeded only by the 30-meter Blue Whale), and 
ihabit 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 edu- 
cation 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. O. 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 sur- 
rounded, 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 real- 
time 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 de- 
pends on some set of level-1 per- 
ceptual signals. 

It is now clearly possible to con- 
struct 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 ref- 
erence 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 out- 
going 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 process- 
ing professional. Now DATAMATION 
magazine is available to hobbiests, busi- 
ness men, accountants, engineers, pro- 
grammers . . . anyone with a deep curio- 
sity about the real world of data pro- 
cessing. 

Written by the data processing pro- 
fessional for the data processing profes- 
sional, DATAMATION magazine's ar- 
ticles cover a wide range of subjects . . . 
industry trends, "how to do it better" 
articles, budget and salary surveys, new 
computer applications, advanced tech- 
nology, new products and services. 

Whether your interest in computers is 
for fun or profit, DATAMATION mag- 
azine 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 acompanyof 

MMMM The Dun& Uradstrcct Corporation 

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 



State/Zip. 



<8> 



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 con- 
trol theory. Hint: Level-1 reference 
signals are adjusted by level-2 sys- 
tems: 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 pre- 
sent we will develop a clearer under- 
standing 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 com- 
plicated. 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 control- 
led 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 mus- 
cles are equal, they will form a Y. We 
will assume that the common connec- 
tion 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 com- 
plex interactions between the mus- 
cles. Those interactions would not in- 



100 August 1979 © BYTE Publications Inc 



Circle 94 on inquiry card. 



pBOUD tY 

ince 
cowip uT 



ANH°.2,THiHK 



MINIMAX 



"FULLY INTEGRATED COMPUTER SYSTEM" 



4f €* 




MINIMAX SERIES COMPUTER 



THE MINIMAX SERIES WAS DESIGNED 

TO OFFER THE MARKET MINICOMPUTER 

CAPABILITIES AT MICROCOMPUTER PRICES. 

COMPARE THE CAPABILITIES & PRICE! 

CONTACT NEECO FOR FULL SPECS - FREE MINIMAX MANUAL. 



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

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




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



MINIMAX I - 
MINIMAX II 



PRINTER NOT 
INCLUDED IN PRICE 



$4495 
$5995 



• THE MINIMAX SERIES COMPUTER IS AN INTEGRATED, COMPACT UNIT CONTAINING THE CPU. DUAL DENSITY DISK STORAGE, 12 
INCH CRT, AND FULL STYLE KEYBOARD, WITH SEPARATE NUMERIC ENTRY PAD. ALL KEYS (INCLUDING CURSOR) WITH FULL 
REPEAT • HYBRID 2 MEGAHERTZ 6502 CPU • 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 INDIVIDUALDOT (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 CRT-64 CHARACTERS BY 30 LINES. UP TO THREE PROGRAMMABLE 
CHARACTERFONTSFORLANGUAGESORSPECIALCHARACTERS ••• SWITCHABLE 1 10 OR220V OPERATION •• • • HYBRID 
CPUISMICROPROGRAMMABLEWITH64USERDEFINABLEOPCODES.CHOICEOF800KOR2.4MEGABYTEDISKSTORAGE •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 HARDWARECAPABILITIES 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. 

TELEX 951021, ANSWERBACK "NEECO" 



(617)449-1760 



Circle 281 on inquiry card. 



BYTE August 1979 101 



terfere with control, but would make 
the model very complicated. In simu- 
lating a control organization, it is 
always the simulation of the environ- 
ment 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 cor- 
responding 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. Here 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 direc- 
tion, 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 ac- 
curately weighted: the only choice 
will be whether or not a given level-2 



Interactive Computer 
Graphics Software. 

For Microsoft and DEC* Fortran 




liffererit devices ranging 

' : CR1 terminals to incre- 
'letters, and even high speec 
sshed raster scan displays 
ipiete package is written it 
i Fortran IV, making it porta 
if computers, including mini 
and micro systems. 

The entire set of over 20 subpro- 
grams, indudin$ drivers for a CRT ter- 
minal md a Diablo 1620 printer, sells 
$400. Drivers for other devices 
iay be added. 

larkrof Digital Equipment Corp. 



p'#i 



The above graphs are examples of the 
GSR The top 3; aph.Was made on a X-Y-Z 
self-refreshed display. The bottom graph 
was made" on a Diablo* 1620 printer V; 



onrtpco 



8705 North Port Washinston Road 

3»jkee,Wis.53217 414/351-3404 

COMPUTER SPECIALISTS 



output reaches a given level-1 com- 
parator 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 separa- 
tion 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 ad- 
justment has to be made on the out- 
put side, essentially the choice bet- 
ween positive and negative feedback, 
with negative always being chosen. 

We now come to what is perhaps 
the most fundamental concept of this 
theory of brain function. The organ- 
ization 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 organiza- 
tion of behavior is determined by the 
perceptual, not the motor organiza- 
tion of the brain. By the time we 
finish this installment you will see ex- 
actly 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 amplifica- 
tion and to smooth; otherwise the er- 
ror 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 repre- 
sented 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 August 1979 © BYTE Publications Inc 



Circle 53 on inquiry card. 



TO HIGHER LEVELS 







FROM HIGHER LEVELS 

Q g g o 



1| J! 



M-MATRIX 





(R-2) 




ft 

FROM LOWER LEVELS 







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 mean- 
ing absence of a connection: 

N(L-1)-1 

P(LJ) = i; S(LJ,K)XP(L-1,K) 

K = 

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(L,J,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 higher- 
level 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 

xm.Hvi3i3 • • • 




fffffl 






The Best of 
Both Worlds 



Looking for multi-purpose PET* expansion? 
The Betsi S-I00 Interface/ Motherboard has 
a new inboard power supply, for the best of 
both worlds. 

Outside the PET, the versatile Betsi inter- 
face 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 /Betsi 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. (Get 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 for8K of PROM firmware 
(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 

$119 

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 correspon- 
dence 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 corres- 
ponding S matrix entry of the next 
higher level is negative, if the S 
matrix entry is 0, and 1 if the S matrix 
entry is positive. But which is the en- 
try in the S matrix for level L + l cor- 
responding to M(LJ,K)? 

The answer is simple: M(LJ,K) 
corresponds to S(L + 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 com- 
parator of the same lower-level 
system with a negative (inhibitory) 
sign. A negative connection factor 
means that the output of this higher- 
level 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(LJ,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 pro- 
cedures 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 (ad- 
ding 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 + l, multiplying the output from 
each higher-level system by the ap- 
propriate connection factor from the 
M matrix: 



N(L + 1)-1 

R(LJ) = £ M(LJ,K) X 0(L+1,K) 

K = 




Discover why 
hundreds of PDP-11 users 
have turned to us 
for Pascal. 



They're i n process control. In 
database management. In educa- 
tion, research and communica- 
tions. Running on LSI-1 1 s, PDP- 
1 1/70's and everything in be- 
tween. RSTS/E, RT1 1, RSX or 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-1 1 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 lan- 
guage, giving remarkable execu- 
tion speed and efficient memory 
use. It features straight-forward 

r -~, spj, minicomputer 
S®TOW(§ inc. 



program structure, 
uncluttered syntax, 
and other advantages of 
full standard Pascal. 

But there's more, in the form of 
real-time extensions. 1 5 digit (dou- 
ble precision) arithmetic. In-line as- 
sembly code. I/O hardware ac- 
cess. FORTRAN interface. Direct- 
access files. Overlays. Plus others. 
There's even an interactive sym- 
bolic debugger. 

Reliability? Introduced in 1975, 
we're at over 400 sites now. We 
guarantee stated performance and 
provide 1 year of follow-up sup- 
port. Give us a call; we have a 
demo library, manuals, and bench- 
mark, ready for your inspection. 



2340 SW Canyon Road 

Portland, Oregon 97201 

(503) 226-7760 

TWX 910-464-4779 

PDP-11. LSI-11, PDP-11/70. RSTS/E. P.T11, RSX, and IAS are trademarks of Digital Equipment Corporation 



Distributors: 

Australia: Sydney; Network Computer Services. 

2903677 

Canada; Vancouver; Valley Software, 

(604| 524-9741 

England; Stafford; Hourds Computing Ltd, 

0785 44221 

Japan; Tokyo; Rikei Corporation, 03-345-141 1 



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 sensitiv- 
ity are put in the output function. 

E(LJ) = R(LJ) - P(LJ) 

0(L,J) = O(LJ) + K(L) x 
(G(L)x E(LJ) - 
O(LJ)) 
where K(L) is the slowing fac- 
tor 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,1), output signals 
from 3 imaginary level-3 systems (us) 
indexed by I = (X force), 1 (Y 
force), or 2 (tone). The M matrix for 
level 2 is set up so that M(2,I,I) is 1, I 
running from to 2; this establishes 
connections from each level-3 output 
to 1 corresponding level-2 reference 
input. All other entries are left at 
(my North Star BASIC zeros arrays 
when they are first dimensioned). 

At the bottom, the output signals 
0(1,1) 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 perceptual signals," P(0,I). 
The value of each input quantity is 
found by adding the magnitude of the 
corresponding output to the compo- 
nent 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 Ievel-1 S matrix simply con- 
nects 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 ad- 
justable. 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! 

"WORDP II" 

The TRS-80 Word 

Processing System 

that really does the job! 



If you've been looking for a true word 
processing capability for your TRS- 
80 .. .STOP! WORDP II is it! 

WORDP II allows you to enter, edit, 
and printvariousamountsoftext 
(with right margin justification) in one 
program. The EDIT program permits 
addition, insertion, and deletion of 
whole lines and characters within 
lines. The TYPESET program fills and 
right justifies paragraphs auto- 
matically. 

Other features 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 S1 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 D0S+. 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. 

• Asuper-fast machine language RENUM program execu- 
table under BASIC. 

• A built in kevboard-debounce routine. 

• A print screen option under DOS or BASIC to your line printer. 
Simplypress JKL keys. 

• Newcopycommands for backup, allows you tocopy from drive 
to drive keeping the same filespec. 

• Execution of DOS commands while in BASIC. 

• New BASIC scrolling and invocation commands and more. 

• Apparat's own SUPERZAP, a Hex dump utility to examine or 
or modify disk or memory locations. 

• Modified EDITOR ASSEMBLER with Disk I/O and new cross 
reference feature. 

• Asuper-fast machine language DISASSEMBLER program. 

• A LOAD MODULE for transferring machine tapes to disk. 

• Faster disk access. 

• Level I ROM relocated in Level II RAM. 

• The capability of storing anc 1 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 hat . . . Send S99 for the 
Apparat/MTI New DOS-h (on diskette). See all the magic unfold 
before your eyes. 

INTRODUCTORY SPECIAL 
NEWDOS+and the very Best of Apparat's disk utility programs 
S99.00 (a $250.00 value). 

To order your diskette of tricks, write or call one of our dealers. 

Apparat Inc., 6000 E. Evans Ave., Bldg 2, Denver, CO 80222, 

303-758-7275 
Microcomputer Technology Inc., 2080 S.Grand Ave., 

Santa Ana, CA 92705, 7 1 4-979-9923 



?i 




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. 



LQQK 

TO H AYDEN 

FOR YOUR 

LANGUAGE 

NEEDS... 



New! APL: An Introduction (Peelle) 
This workbook/textbook offers a 
problem-solving approach to 
learning computer programming 
in APL. #5122(1 58.50 

COBOL WITH STYLE: Pro- 
gramming Proverbs (Chmura & 
Lecigarci) Covers structured 
COBOL programming, and how 
to use the top-down approach with 
COBOL. #578/ -4, $t>.95 

New! FORTRAN WITH STYLE: 
Programming Proverbs (Ledgard 
& Chmura) Programming style 
guide that conforms to the new 
FORTRAN 77. #5GH2G, $G.95 

New! Z-80 AND 8080 ASSEMBLY 
LANGUAGE PROGRAMMING 

(Spracklen) An extensive introduc- 
tory look at assembly language 
programming for the sosoand Z-80 
processors. #5 1 G7(). $7.93 

New! 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. #3124-7. 56.H5 

New! BASIC FROM THE GROUND 

UP (Simon) Explores computers 
and the BASIC language in a 
simple direct way, without relying 
on a heavy mathematical back- 
ground. #57(501. $H.95 

Available at your 

local computer 

store! 

nr\ Hayden Book 

'-*-' Company, Inc. 

50 Essex Street, 
Rochelle Park, NJ 07662 



visualize how everything works. 
Figure 16 is the same system, more 
closely representing the 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 compo- 
nent of force from any muscle. 

Sensory weightings. Lines 9 to 15 
organize the perceptions of this sys- 
tem, and thus organize its behavior. 
For values of I from to 2, all 3 levels 
of sensory matrix are set up. You can 
now see how X and Y forces are sens- 
ed. 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 total- 
force 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 sub- 
routine that asks for 3 reference 
signals: one designating the amount 
of X force, another designating the 
amount of Y force, and a third des- 
ignating 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 pro- 
gram 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 con- 
trolling 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 rea- 
sonable to suppose that a force distur- 
bance can be created, one which pro- 
jects 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 ac- 
tually 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 Publications Inc 



X 
0(3, 0) 



M201 



M202 



+\R(2,0) 



P(2, 0) 



M2I0 



Y 
0(3, I) 



NI2II M2I2 



P(2, I) h 



E(2,0) 



f(G 2 , K 2 ) 



S200 



S20I 



S202 



MI00 



MI0I 



P(l.0) 



SI00 



S10I 



SI02 



R(2,i) 



E(2,l) 



HG 2 ,K 2 ) 



0(2.0) 



S2I0 



MI02 



'R(i,0) 



MM© 



P(l. I) " 



E(l,0) 



f (G,, K,) 



0(2,1) 



'R(I.I) 



0(1,0) 



SI 10 




P(l.2) 



E (I, I) 



f{G,, K,) 



SM I 



SM2 



0(1, I) 



SI20 



SI2I 



SI22 




E(l, 2) 



f (G,, K|) 



0(1.2) 



MUSCLES 
"LEVEL O" 



August 1979 © BYTE Publications Inc 107 



(PERCEPTUAL SIGNALS) 



I MIDBRAIN I 



(REFERENCE SIGNALS) 
X Y T 




LEVEL 
2 



LEVEL 

I 



Figure 16: Topological transform of figure 15 shows how control systems are arranged in the human nervous system, at least accor- 
ding to some cybernetic theoreticians. The major difference from figure 15 is that all sensory functions are lumped together at each 
level, and comparison and output functions are also lumped together. The 5 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 pro- 
duce inhibition) is interposed. A collection of comparators and output functions is called a motor nucleus. For level 2 and higher, 
the branches of perceptual signals that cross over and enter a motor nucleus are called collaterals. 



108 August 1979 © BYTE Publications Inc 




Wondering which memory 
is best for you? 

bo/© 2* offers the following products 
to the S-100 market at the industry's 
lowest prices: 



E r T H r 7; " i r r 






S' hj ~B w^?r?^ Jfr^?^^.a J™?vf. J*ffi"^ -jJ^ff ^R - jjl^^^ IJ^WB^W 



I. 






8K 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 at2MHz. The 
8KS-Zoperatesat 250ns and is suitable for use with Z-80 systems operating at4MHz. 
Both kits feature factory fresh 2 1 02'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/Un protect, 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 

Base2cannowofferthesame price/performance in a 16K static RAMas in itspopular 
8K 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 quality 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 1 6KS-Z operates at 250ns. 

16KS-B $275.00 (assembled and tested) 

16KS-Z $300.00 (assembled and tested) 





Z-80 CPU Board 

Our Z-80 card is also offered in two speed ranges. The CPZ-1 operates at 2MHz 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 and optional generation of Memory Write allows the board to run with 
or without a front panel. The board can be selected to run in either the 8080 mode, to 
take advantage of existing software, or h the Z-80 mode for maximum efficiency. For 
use in existing systems, await state may be added to the M1 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 tOD quality PC boards, fully 
socketed with fresh IC's. CPZ-1 $110 CPZ-2 $125 




S-100 for Digital Group Systems 

This kit offers, at long last, the ability to take advantage of S-100 products within your f ™M WJfflril B ?Mlt\'fci\ 

existing Digital Group mainframe. Once installed, uptofourS-1 OOboardscan 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 ****t###t§jjrf£ 

board and a power wiring harness. The DGS-1 00 is designed to fit in the 5-3/4" x 12" B § B § £ 

empty area in the standard D.G. cabinet. It may seem expensive butthere's a lot here! «v^ 

End your frustration! DGS-100 $250.00 

Send for more details on these products. Get on our mailing list for 
information on more soon to be announced products at factory-direct 

m A prices from BASE 2. Why pay more when you can get the best at 

■ fl^ ^fet A ^^ M ^Rk. 0^ these prices??? 

Jml ■■■■■ #% ■■ bC P.O. Box 3548 • Fullerton, Calif. 92634 

\fMtmJ %+ f J* II IV« (714)992-4344 

.............................. M ■ CA '^dentS add 6% t8X 

JIM MC/BAC accepted • FOB — U.S. destination 



Circle 29 on inquiry card. 



BYTE August 1979 109 



Circle 190 on inquiry card. 



i:i=|:]*«e1=*^ 



BETTER 



ft& 



*%r 



$38** 




;.-.-'i<.s ■,-,(•..'. ■■•;.-• A . .; ..■•■ ■. \-v -A>. .-.•■. -\.<. -,.■{., "•.■■;-. V* 

•-. ■ '•'■• W ■. _> ■i.s'* l ;-'-j ■,:■;■ j'.'-v ;t '~' r - '■ ^ -In-: **<»<■•!.-■•■'*.;■ . •■.''■■■:'.'' ■ -J .-'V 

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 prepro- 
grammed 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 war- 
ranty and support. 



Now the best gets even better: the 
Simple Upgrade is just $119.00. 

The full line of Upgrades is avail- 
able nationwide at Computerlands, 
Byte Shops and independent compu- 
ter retailers. 

For the name of the dealer 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. 

110 August 1979 © BYTE Publications Inc 



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 Y direc- 
tion, and tone control. A sample run of the simulator is shown in listing 4. The exclama- 
tion point is used as an abbreviation for the PRINT statement. 

1 Dir, 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 G(2) 

3 G(1)=10\ K(1)=.07\ G(2)=50\ K(2)=.01 

4 P = 3. 1415927/180 

5 G0SUB 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 5(2,0,1)= COS(ACI)) 

12 5(2,1,1)= SIN(ACI)) 

13 S(2,2,I)=1 



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

SET UP MOTOR WEIGHTINGS 
••••••••••••••••••••••••a 



22 M(L,I,J)-SGrl(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) 
************************* 

CALCULATE SYSTEM BEHAVIOR 
************************* 

29 !\F0R 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 I\ NEXT J2\ NEXT J3 

37 GOSUB 69\ REM (PRINT TABLE OF VALUES) 

38 NEXT Q 

39 !"(A)NGLE? (R)EFS? (D)IST? (C)ONT? (P)RIflT MATRICES? 

40 INPUT ,M, ,AS 
THEN 42\ GOSUB 102\ GOTO 29 



14 


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 



26 


REM 


27 


REM 


28 


REM 



45 


IF ASO"P" 


46 


i " ???? 


"\ 


47 


REN 




48 


REM 




49 


REM 




50 


FOR J=0 


TO 


51 


v=n 




52 


FOR K=0 


TO 



41 IF A$<>"A" 

42 IF A$<> ,, R" THEN 43\ GOSUB 109\ GOTO 29 

43 IF ASO"D" THEN 44\ GOSUB 116\ GOTO 29 

44 IF A$<>"C" THEN 45\ GOTO 29 
THEN 46\ GOTO 76 
! \ GOTO 39 
******************************** 

CALCULATIONS FOR LEVEL L SYSTEMS 
******************************** 

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)*h(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 REN *********************** 

67 REM DATA LISTING SUBROUTINE 

68 REN *********************** 

69 !\! "ITERATION # ",%2I,Q," — 

70 FOR J=2 TO 1 STEP -1/ 

71 !\! "LEVEL ",Z2I, J ,;i#7F2 

72 FOR 1 = TO 2\!" ",R(J,D," ",\ NEXT I 

73 !\F0R 1=0 TO 2\!" ",P(J,I)," ",0(J,I)," ",\ NEXT I 

74 !\ NEXT J 






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 ra- 
tionale for why this works; informal- 
ly, 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 



75 

76 

77 

78 

79 

SO 

81 

82 

83 

84 

85 

86 

87 

86 

89 

90 

91 

92 

93 

94 

95 

96 

97 

98 

99 

100 

101 

102 

103 

104 

105 

106 

107 

108 

109 

110 

111 

112 

113 

114 

115 

116 

117 

118 

119 



!\ 
!\! 

FOR 

FOR 
i " 

FOR 
!5J6 
NEX 
NEX 
j 

NEX 
!\! 
FOR 
!"L 
FOR 
i " 

FOR 
i » 

NEX 
NEX 
j 

NEX 

!\ 

REM 
RE 
RE 
! \ 
IN 
AC 
RE 
RF. 
RE 
RE 
! \ 
IN 
IN 
RE 
RE 
RE 
RE 
! \ 
IN 
AC 
RE 



RETURN 

"SENSORY MATRIX"\ ! 

L=1 TO 2 

EVEL ",'/1I,L 

J=0 TO 2 
ii 

K=0 TO 2 
F2,SCL / J,D / 
T K 
T J 

T L 

"MOTOR MATRIX"\J 

L=1 TO 2 

EVEL 'V;1I,L 

J=0 TO 2 
it 

K=0 TO 2 
6F2,r'i(L,J,K), 
T K 
T J 



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 ac- 
tion 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 out- 
put 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 go- 
ing negative. 



T L 

GOTO 

M 

K 

i'TiU 

PUT1 

0) = A 

TURN 

hi 

M 

M 

!"RE 

PUtl 

PUT1 

TURN 

M 

F1 

n 

! "D 
PUT1 
3) = A 
TURN 



39 

•••••••••••••••••••••A 

SET UP MUSCLE GEOMETRY 
********************** 

SCLE ANGLES:" 

"M\ ",AC0)\ INPUT1 " f<2\ ",AC1)\ IMPUT1 
(0)*P\ AC1)=AC1)*P\ AC2)=AC2)*P 

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

SET UP REFERENCE SIGNALS 
**********•••****•*•***** 
FERENCE SIGNALS:" 
"X: ",OC3,0)\ INPUT1 " Y: ",0(3,1) 
" TONE: ", 0(3,2) 

•••••••••••••••••••••••••a 

SET UP DISTURBANCE & ANGLE 
************************** 

ISTURBANCE:" 

"MAGNITUDE: ",D\ INPUT1 " ANGLE: ",A(3) 
(3)*P 



?/3\ ",AC2) 



READY 



(SdUVSd HASm 

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

CTC'S DISCOUNT PRICE FOR THE COMPLETE 
SYSTEM CONSOLE & 13" COLOR MONITOR 

$1099 

Price subject to change without notice. Refunds guaranteed. 



CTC The Computer People 

San Diego's largest Discount Computer & Calculator 
Store. 5560 Ruffin Road, San Diego, CA 92123 



Please ship me the following merchandise. 




Tl & HP CALCULATORS 




Tl-Programmer 
TI-58C 




$ 49.95$ 


programmable constant memory 


99.95 $ 


TI-59 


programmable mag cards 


219.95$ 


Tl 50 


slimline scientific 


33.95 $ 


TI-5025 


printing handheld 


69.95 $ 


TI-5225 


business desktop 


179.95$ 


Tl 1025 


5 function w/memory 


10.95$ 


TI-1000 


5 function 


8.95$ 


Spelling B 


electronic spelling aid 


25.95 $ 


Speak & Spell 


spelling aid that talks!! 


59.95 $ 


HP-33E 


programmable scientific 


76.95 $ 


HP-38E 


programmable business 


98.95 $ 


HP-92 


desktop business 


399.95 $ 


HP-67 


programmable w/mag card 


361.95$ 


HP-97 


desktop programmable 


597.00 $ 



Tl HOME COMPUTER PRODUCTS 

PHC004M TI-99/4 Home Computer $1099.00 $_ 

PHA2000 Dual Cassette Cable 6.95 $_ 

PHP1100 Remote Controls {Pair} 29.95 $_ 

PHP1500 Speech Synthesizer 149.95 $_ 

COMMAND MODULES 

PHM3000 Diagnostic 29.95 $_ 

PHM3001 Demonstration 69.95 $_ 

PHM3002 Early Learning Fun 29.95 $_ 

PHM3003 Beginning Grammar 29.95 $_ 

PHM3004 Number Magic 19.95 $_ 

PHM3005 Video-Graphs 19.95 $_ 

PHM3006 Home Financial Decisions 29.95 $ _ 

PHM3007 Household Budget Management 44.95 $ _ 

PHM3008 Video Chess 69.95 $_ 

PHM3009 Football 29.95 $. 

PHM3010 Physical Fitness 29.95 $_ 

TOTAL $ . 

Shipping, add 3% $ - 

Cal. residents add 6% tax $ - 

Amount enclosed $ - 

(check or money order) 

(Credit Cards for Sales of $700 or less) 

Charge to my {J VISA Q MASTER CHARGE 

Acct # Bank# Exp. Date 



Name_ 



Street or P.0._ 
% City 



. State. 



-ZiP- 



August 1979 © BYTE Publications Inc 111 



Listing 4: A sample session with the simulator in listing 3. When the simulator is in- 
itialized, the user is allowed to set up several values: the 3 muscle angles, the 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 par- 
ticular 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: 

#1\ 30 tf2\ 150 #3\ 270 

REFERENCE SIGNALS: 

X: -30 Y: 40 TONE: 175 

DISTURBANCE: 

MAGNITUDE: ANGLE: 

ITERATION U 1 

REFERENCE 
LEVEL 2 PERCEPTUAL SIGNAL OUTPUT 

-30.00 SIGNAL 40.00 SIGNAL 175.00 

-18.19 -20.76 38.50 20.55 187.25 80.50 

LEVEL 1 

80.29 121.81 39.19 

74.52 73.35 109.52 110.46 37.83 36.14 



ITERATION 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 U 3 

LEVEL 2 

-30.00 40.00 175.00 

-29.56 -18.68 37.28 12.56 177.48 67.63 

LEVEL 1 

61.51 98.87 36.40 

55.96 55.93 89.92 89.89 33.67 33.22 



ITERATION ft 4 



LEVEL 2 

-30.00 40.00 175.00 

-29.54 -18.83 40.19 12.57 172.81 65.13 

LEVEL 1 

58.87 96.52 33.73 

53.51 53.52 87.72 87.74 30.57 30.64 



DISTURBANCE: 

MAGNITUDE: 40 ANGLE: 135 



ITERATION U 1 



LEVEL 2 

-30.00 4U. 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 com- 
plete 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 itera- 
tions, 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 ac- 
tions. The standard description is that 
something high in the brain thinks of 
a general command like ''push!" and 
sends the equivalent signals down- 
ward toward lower systems. Those 
lower systems receive the general 
commands, and elaborate on them, 
turning them into more detailed com- 
mands 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 sim- 
ple general command gets turned into 
specific commands that will have ef- 
fects that satisfy the general com- 
mand. Unfortunately, neurology is 
full of sentences that sound like ex- 
planations 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 com- 
mand that specifies an X force doesn't 



112 August 1979 © BYTE Publications Inc 




£: ,:■ 



isn 



the 
hole 



it's on the doughnut! 



INTRODUCING — LOUMAR MANAGEMENT SYSTEMS SOFTWARE 



£ 



programs to give you a comprehensive package for business management 



The Loumar General Accounting System is a versatile, fully integrated software package designed for small and medium sized 
businesses. It is also suitable for CPA's and bookkeeping service films. 

The complete software system is composed of four main modules: GENERAL LEDGER, ACCOUNTS RECEIVABLE, ACCOUNTS 
PAYABLE AND PAYROLL. Each module may be used separately or in combination with any other module. Supplied on disk as 
run-time modules. Source not available. 

All software is written in 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 required • Designed by accounting professionals • Comprehensive, well pre- 
sented reports and manuals • Single or multiple client capabilities. 

HARDWARE SPECIFICATIONS PAYROLL: Up to 500 employees - $550. 

The end user's microcomputer must satisfy the following require ACCOUNTS RECEIVABLE: Up to 1000 customers and 1000 monthly 



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 1 6 line display 
CP/M and CBASIC II 

Write forour brochure - Dealerships still available 
Contact: Distributor 

MISSION CONTROL • 2008 WILSHIRE BOULEVARD, SANTA MONICA, CA 90403 • (213) 829-5137 



transactions — $550 
ACCOUNTS PAYABLE: Up to 1000 vendors and 1300 monthly 

transactions n- $400 
GENERAL LEDGER: Up to 200 accounts with 2000 entries - 

$450 



Circle 237 on inquiry card. 



BYTE August 1979 113 



Circle 54 on inquiry card. 



Control 
System 

Software 



i gt/en i 

display 
programs ir«( 
subprograms 
ter subprogre i, 
Bode Algorithm . . . - . > CS-B $1 00. 

• Root locus Algorithm C5-R $ 100. 

• Time Response * . . ♦ . .CS-T $100. 
All of the above packages, will rwn on a 

80 or Z80t — based CP/M* sys 
eiemarfc of ZHo 
irch 



HULTIPU!N= r 



COMPCO is a software and hardware 
systems development house located 
in the Midwest. COMPCO has a 
variety of software products, and 

performs custom and 
o-sy^iwvr, ■■■"■ ;,?' : ':' 

COMPCO is a distributor of ALTOS 
Computer systems and also sells 
General Robotics LS1-11* systems. 

trademark of Digital Equipment Corp. 

Compco 

8705 North Port Washington Road 
Milwaukee, Wis. 53217 414/351-3404 

COMPUTER SPECIALISTS 



Listing 4 continued from page 112: 
ITERATION U 2 



LEVEL 2 

-30.00 40.00 

-12.87 -16.21 21.01 20.17 

LEVEL 1 

66.48 98.91 

59.89 69.94 90.08 54.02 



175.00 
180.28 62.52 



26.14 
25.92 50.56 



ITERATION U 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 A' 5 

LEVEL 2 

-30.00 40.00 175.00 

-29.55 -18.39 39.87 11.75 173.88 64.95 

LEVEL 1 

60.31 93.10 36.81 

53.94 64.25 88.17 49.52 30.93 59.18 




simply get partitioned among the 
muscles. It is a request for a percep- 
tion, not a command to act. The 
system receiving this request per- 
ceives the X force through a con- 
vergent, 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 dif- 
ferent 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 ten- 
sions 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. In- 
dependent control is possible only 
because the functions represent in- 
dependent 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 © BYTE Publications Inc 



-<^jBook2 



Design of 

Perignof | Pfeltal Syrteim 
Digital Sysl 



BookS 




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 J A x 8 1 A". 

CONTENTS 

The contents of Design of Digital Sys- 
tems include: 

Book 1: Octal, hexadecimal and binary; 
number systems; representation of nega- 
tive 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; Kar- 
naugh mapping; three-state and wired 
logic'. 

Book 3: Half adders and full adders; sub- 
tractors; serial and parallel adders; pro- 
cessors and arithmetic logic units (ALUs); 
multiplication and division systems. 

Book 4: Flip-flops; shift registers; 
asynchronous counters; ring, Johnson and 
exclusive-OR feedback counter; random 
access memories (RAMs); read-only 
memories (ROMs). 

Book 5: Structure of calculators; key- 
board 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, Fair- 
child, General Instrument, Hewlett- 
Packard, Heath Co., M.I.T., NASA, Smith- 
sonian Institute, Bell Telephone Labs. And 
many, many more, as well as corporations 
and individuals in over 50 countries. 



BASIC COURSE 



Digital Computer I Digital Computer 
Logkand iLogkand 

Electronics I Electronics 



8$_B>> 




Digital Computer Logic & Electronics 

CONTENTS 

Digital Computer Logic and Electronics 
is designed for the beginner. No mathe- 
matical knowledge other than simple arith- 
metic is assumed, though you should have 
an aptitude for logical thought. It consists 
of 4 volumes — each HV2" x 8V4" — and 
serves as an introduction to the subject of 
digital electronics. 

Contents include: Binary, octal and 
decimal number systems; conversion be- 
tween 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 use the order form below if you 
wish, but you don't need to. Just send your 
check or money order (payable to GFN In- 
dustries, 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 M DDS" (Design of Digital Sys- 
tems). "DCLE" (Digital Computer Logic & 
Electronics), or "both" (both courses) on 
yourcheck. 

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. 

SAVE $5 

If you order both courses, you save $5. 
Order at no obligation today. 



fc 



GFN Industries, Inc. 

Bldg. 7-20 

203 Loudon Road 

Concord 

NH 03301 



Call (603) 224-5580 to 
order by phone - free. 

7 days, 24 hours 



Order free by phone 
No sales tax 
No shipping charges 
Money-back guarantee 
Tax deductible 
Save $5 



To: GFN Industries, Inc., Bldg. 7-20, 203 Loudon Road, Concord, NH 03301 

Please send me 

sets of Design of Digital Systems $19.95 $ 

sets of Digital Computer Logic & Electronics $14.95 

sets of both courses $29.90 „ 

Enclosed is check/money order (payable toGFN Industries, Inc.) for total $ 

NAME 

ADDRESS 

CITY/STATE/ZIP . R8 



Circle 143 on inquiry card. 



BYTE August 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 dif- 
ferent 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 situa- 
tion is represented is almost im- 
material, as long as 3 reasonably in- 
dependent perceptual functions are 
created. There is no coordinate 
system in the outside world. The 
behaving system makes up one of its 
own. 



If there were sensors on each mus- 
cle to detect muscle length as well as 
force, we could add 3 more control 
systems at level 1, and 3 more in- 
dependent 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, ill- 
ness, angular acceleration, joint com- 
pression, 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 * 



•> v;'\;, r ,r c ' - 'i 
^ ^-'C^v.. r .. 



? Vvtf 



u$ 



c.C 



IR€ tfOWHfig 

age that does ever/thins that a first class league secretary 
would do — and more. For example the Bowling Soak- 
keeper will list each bowler's high series of the year and 
each bowier^high game of the year every week, 

The Bowling Bookkeepers prompts the user through each 
part so even' a non-compute rite can easily use the package, 
The Bawling Bookkeepers runs under standard CP/M*. 

The entire Bowling Bookkeeper! system Which includes a 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 MTcroterrn MIME 
terminal, CP/M* operating system, and the Bowling Bookkeeper: is 
available from COMPCO for under $5,000 




"[Trademark of COMKO 
''Trademark of Digital Research 



$400 for Complete Package 



Comp 



CO 



COMPUTER SPICIAUSTS 



8705 North Port Washington Road Milwaukee/ Wis. 53217 414/351-3404 



act independently at the same time is 
limited by the total number of com- 
parators available at level 1. 

Perhaps you can now see why this 
approach to a model of a human be- 
ing (rudimentary is it is at this point) 
has some powerful implications for 
the building of robots. I suggest a for- 
mal distinction between a robot (an 
imitation of a living system) and an 
automaton (a device which automati- 
cally produces complex actions). An 
automaton is designed to create pre- 
selected movements; a robot is 
designed to control preselected per- 
ceptions (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 percep- 
tions (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 distur- 
bance 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 chang- 
ing 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 ex- 
periments will be noninvasive, 
nondestructive — more like video 
games than science — but far more 
useful than the games. ■ 



116 August 1979 © BYTE Publications Inc 



Circle 56 on inquiry card. 



SrM- 



Z60 



ml®- 



IjOCrQ* 



\9ssr 



TH€V 



?<>*** 



*\^ 



s^t J 



s^ 2 - W*^ 



-fipo 



a*^: 



MPO 1 



Son 



■jj*- 



gS»f 






SB 



€R€ 



■ H ; ". **% M '■■■'■ "l'& «*^" - A* 83 ** s * gigi—"" 

141 1^ Pads. 0ne aUiesaver;.^ bie ct codes progra rn) nd 

1 .« Program* P *; e micro- a nn tnQ » ^ catt or revise y ecllon tap 

r stvie *«*> "SiSS^'iS 65 ° 2 ° r Jesses. £ JjS* W**""* «, 



improve **«g lorm «».«£ *, 6800 ^0 alo n 9 






postage and Tl^— rr^SuR ban^ ° .»„ 2 sRo^5^!^- — m^^^tM 



D Hot off the 



^ ir^o^i — Osborne and Flssociates! 

-~^" Z80 ASSEMBLY LANGUAGE PROGRAMMING 

by Lance A. Leventhal 

t off the press, here's the Z80 assembly language and its use in Lance Leventhal's 
yrctpinc style. A parallel to his earlier book 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 interfacing 



Please use order form on page 161 
for ordering the above books. 

*fittention Dealers: 

BITS PROGRAMMER PADS™ are 
in great demand among microcom- 
puter programmers and users 
everywhere. We invite your in- 
quiries. Please write or call today. 



Please send me the following BITS PROGRAMMER PADS 

□ Z80 □ 6800 □ 6502 □ 8080A □ 1802 @ $2. 50 each 

Name 

Add ress 

City 



State_ 

□ Check □ Master Charge □ Visa 

Card # 

Signature 



■ Zip_ 



.Expires. 



_pads $_ 



Post. & 
Handl. 

TOTAL 
1 B2089 



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-HI 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 9- 
digit 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 & LINKED-LIST 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 1 >-<e 1 >;<p 2 >-<e 2 >;...t-<e M >] 

The meaning of such a conditional expression is as 
follows: 

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 t. It is com- 
mon to read t used in this context as "otherwise." 

We extend our M-LISP to S-LISP mapping to include this 
new construct, mapping it to: 

(COND (< predicate > T < expression! > T ) 
(<predicate 2 > r < expression > r ) 

( T< expression,, > T )) 

The evaluation of a conditional expression is different 
from the technique we have used in previous LISP in- 
structions. 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 condi- 
tional which gives us a true predicate; then we evaluate 
the corresponding expression. 

For example: (COND ((A TOM 'A) 'FOO) (T 1)) gives 
value FOO, since (ATOM 'A) gives T. (COND ((ATOM 

'(A)) 'FOO) (T 1)) gives value 1 since (ATOM '(A)) 
gives NIL. 

We have introduced all the instruments in the LISP or- 
chestra. Now it's time to make some music. 

The Factorial Function 

Our first example is the venerable LISP program to 
compute the factorial function: 

1 if n is 
n! =nX(n-l)l if n=£0 

We want to convert this description into a LISP 
algorithm. The "if" structure can be converted into a con- 
ditional expression, and we can name the new operation 
fact. We assume our LISP machine has such a multiplica- 
tion 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: 

[eq[n;0l-l; 
t— times[n;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[n]< =[eq[n ; 0] — l; 

t— time s[n;f act [subl[n]]]] 

Here is its pretty-printed translation in S-LISP: 

(DEF FACT (N) (COND ((EQ N 0) 1) 

(T (TIMES N (FACT (SUB1 N )))))) 

The new ingredient in these definitions is the use of 
recursion. A typical recursive definition has several 
characteristics: 

• The body of the definition should be a conditional 
expression. A definition like foo[x] < = 
baz[foo[bar[x]j] 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 struc- 
tures. We can decompose a positive (composite) in- 
teger down to zero by a sequence of subtract-by- 
one operations. The essential idea is that 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 find- 
ing the right decomposition in a recursive definition. 
Recursive definition is a powerful descriptive technique; 
fortunately it can also be implemented as a very efficient 
computational mechanism. 

Equal 

For a further example, assume that we want to test the 
equality of two lists, where equality means that each ele- 
ment of two lists is identical and the order in which those 
elements occur is identical. The identity relation also ex- 
tends to sub-elements of lists. For example: 

equal 

(A BC) (A B C) 
(A(B C)D) (A(B C)D) 
()() 



nonequal 

(A BC)(AB D) 
(A(B C)D) (A D(B C)) 
(A(B(C)D)) (ABC D) 

Let EQUAL be an algorithm to compute this extended 
equality; it will be recursive. Regardless of the complexi- 
ty 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 ine- 
quality: 

(DEF EQUAL (X Y) 

(COND ((NULL X)(COND ((NULL Y) T) 

(T NIL))) 
...?) 

Note that we embedded a conditional expression within a 
conditional expression. Note also that the interior condi- 
tional returns either T or NIL; but that's what we wanted 



It's 



M3GIC 

for graphics! 



NEW 

ASSEMBLY LANGUAGE 

3D GRAPHICS 

FOR THE APPLE II . . . 




Our 30 packages allow you to animate 3D or 
2D data bases created with standard XYZ coor- 
dinates. The two users manuals (90 pages total) 
are written at different technical levels to give all 
Apple users a quick understanding of access 
and uses from BASIC and assembly 
language. The small 8K memory 
requirement lets you use the 
subroutine with most of your 
educational, scientific, and 
game programs. 

$45 (available August 25, 
1979). Disc and relocat- 
able cassette option 
available. 

We re open 9 to 6. Monday thru 
Friday, centra! time. Give us a call. 



The engineering & graphics people 



(217) 367-0299 



LOGIC 

Box V, Savoy, I L 61874 



Circle 353 on inquiry card. 



August 1979 © BYTE Publications Inc 119 



since EQUAL is to encode a predicate and T and NIL are 
our representations of the truth values t and /. Note too 
that we depend on the order dependence of the condi- 
tional evaluation; we won't test the (NULL Y) expression 
unless (NULL X) is true. We won't get to the ". . . ?" condi- 
tion unless (NULL X) is false. 

We can still have x non-empty, and y empty; let's take 
care of that: 

(DEF EQUAL (X Y) 

(COND ((NULL X)(COND ((NULL Y) T) 

(T NIL)) 
((NULL Y) NIL) 
...?) 

Now the "... ?" has been reduced to the case that 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 EQ to 
check their equality; otherwise use EQUAL itself on the 
first elements. Here we go: 

(DEF EQUAL (X Y) 

(COND ((NULL XXCOND ((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 con- 
catenating the elements onto the second argument of 

rev ' : 

reverse [x] < = rev ' [x;( )] 
rev f [x;y]< =[null[x]-~y; 

t^rev' [rest[x]; 

concat[first[x];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 pro- 
gramming 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 under- 
stand why the parentheses are used, if not totally under- 
stand 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 




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. 



Tne Per*, incorporated win !he Floppy Disk and Prtnler 
makes an ideal business syslon tor mosl professional 
and specialized Irelds medicine, law, denial, research 

n in ring loolmakiny pnnhng, educalion energy con- 
servalion etc ThePET'" Business System a s a 
managcmenl lool. delivers infotmal.on loall levels ol 
Business previous'/ atiamableorily wiih ocirpmeni 
many limes mere exponsive Tne PET " Business 
System is one ol the most cost etfiaem business tools 



loday il otters a wide range ol applications Irom logging 
managcmenl strategy tn major corporations toorganaing 
accounls and irivenlor/ conlrol ol small businesses Here 
areiusl a Icwol lliecosl-savmg uses inthe corporation, 
professional office or small Dusmess slock conlrol 
purchasing forecasting, manufacturing costing customer 
records, mailngl sis etc The PET". RoppyDiSkand 
Printer, a compatible cosiness system a! a reasonable 
pnee — Take a closer fooK at Ihese Penoherals 



.;, tT- Y' Y"Y- v' if i \ i 4 1 to i^ 




LARGE TYPEWRITER KEYBOARDS NOW AVAILABLE! 



PRODUCT DESCRIPTION 

PET 2001— 4K 4K RAM 

PET 2001— 8K 8K RAM 

PET 2001 — 16KN (Large Keys)16K RAM* 
PET 2001— 32KN (Large Keys)32K RAM 



PET 2023 PRINTER 
PET 2022 PRINTER 
PET 2040A 
PET 2040 
PETC2N 



ROLL FEED 

TRACTOR/ROLL 

SINGLE FLOPPY 

DUAL FLOPPY* 

2nd Cassette 

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



PRICE 

$ 595 
$ 795 
$ 995 
$1295 
$ 850 
$ 995 
$ 895 
$1295 
$ 100 



AVAILABILITY 

IMMEDIATE 
IMMEDIATE 
IMMEDIATE 
IMMEDIATE 
IMMEDIATE 
IMMEDIATE 
JUNE/JULY 
IMMEDIATE 
IMMEDIATE 



ALL UNITS ARE FULLYTESTED BY NEECO BEFORESHIPMENT. ALL PET'S ARE 
WARRANTEED (BY NEECO) FOR 1 FULL YEAR! NEECO IS A FULL CUSTOMER- 
ORIENTED 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 s 525 $10Q^ 

32K Expandamem Memory -615 1^5/0 



COMPUTHINK .4 & .8 MEGABYTE DISK 
I DRIVES FOR THE NEW 16/32K PETS! 

DISK SYSTEMS INCLUDE DISKMON OPERATING 
SYSTEM IN ROM AND INTERFACE TO 16/32 PETS! 

• Dual Minifloppy Drives with 200K per diskette side for total 400K.800K on hne 

• 800K model accesses all 4 diskettesides via dual read and write arm system 

• Dual Density Hardware and DOS loads 20K (with verification) in 42 seconds complete 

• DISKMON (DOS) adds 17 commands to BASIC including Random Access and printer support 

• System comes complete with plug in internal board containing 8K RAM. DOS. and Disk Controller 
Hardware— Board plugs directly onto internal memory expansion pins 

• System does not utilize IEEE or USER Port, system functions directly from memory port 

• All DISKMON DOS commands reside interactively with BASIC— disk directory command and 
format command do not interfere with program m RAM— DOS command were designed for 
simplicity of use System was manufactured for heavy commercial use. 

• System installs completely in less than ten minutes immediately ready for use 

• M295 and s 1595 prices include all hardware, DOS. complete user manual, and demo/utilrty diskette. 

• Available software includes PLM Compiler ( s 250). Relocatable Assembler ( l 70), Source-Editor 
Program ( s 70). Autolink Linking Loader («70). and a complete Database system (Pagemate'495). 

• Call or write for complete product information and specifications— User manual l 10. 

(PRODUCT AVAILABILITY IS AUG/SEPT— CALL FOR INFO) 

ALL 16/32K MODELS INCLUDE AN 400K-16N M295 

INTERNAL PLUG-IN INTERFACE 400K-32N s 1295 

BOARD CONTAINING DOS, 8K OF 800K-16N s 1595 

RAM, AND CONTROLLER 800K-32N s 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 

L PAPER • UPPER & LOWER CASE— $ 1099 PRICE INCLUDES 

~~ - INTERFACE TO IEEEPORT. 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, MASS. 02194 
MON. - FRI. 9:30 - 5:30, EST. 



(617)449-1760 

MASTERCHARGE OR VISA ACCEPTED 
TELEX NUMBER 951021, NEECO 



Circle 282 on inquiry card. 



BYTE August 1979 



121 



DP SYSTEMS 



SEMINARS 

OF EXCELLENCE 






LOCAL PERFORMANCE^ 

NETWORKS {^EVALUATION 

IMAGE ,' Hjggg \ ^SOURCE 1 
PROCESSING, PROCESSING ] SHAR | N G 

J.- L ^ 

' ' ' ^ 

INCAPACITY 1 COMPUTER / QUEUEING N 
[ PLANNING | CRIME * NETWORKS . 



SIX DYNAMIC 3-DAY SEMINARS 
BY THESE EXPERTS 

DENNING 

PERFORMANCE EVALUATION 

WASHINGTON, D.C. ■ OCTOBER 3-5, 1979 

FARBER-JENSEN 

DISTRIBUTED COMPUTER ARCHITECTURE 

WASHINGTON, DC. ■ OCTOBER 8-10, 1979 

ANDREWS- 

STOCKHAM-SAWCHUCK 

DIGITAL IMAGE PROCESSING 

WASHINGTON, D.C. ■ OCTOBER 24-26, 1979 

BUZEN- 
DENNING -ARTIS 

CAPACITY PLANNING 

WASHINGTON, D.C. ■ 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 



!£H!?we¥?¥U¥E= 

P.O. BOX 49765, LOS ANGELES, CA. 90049 (213) 476-9747 



programming, rather than the language. When we ex- 
amine the very low level representation of LISP opera- 
tions, we see that the primitive selection operations 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 ulti- 
mately be representable as combinations of atoms and 
binary graphs, then all algorithms must ultimately be ex- 
pressible 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 unread- 
able. Instead of couching the data structure abstractly in 

terms of the concept , recognizer: is dogfxj; selectors: 

left eye[xj, tail[xj , . . . ; and constructor(s): 

make dog[xi;...x n ] — , the programmer performs the 

transformation mentally and gives us eq[cadr\x)\ 
DOG],cadaddr[x), and consfx; 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 pro- 
gramming deeply intertwines conception and implemen- 
tation. 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 de- 
tailed rules for data structuring a la Pascal. Of course 
there's no reason to suppose that the programmer's abili- 
ty to remain abstract will survive any better here. Indeed 
since Pascal really supplies "abstract storage structures" 
rather than "abstract data structures," along with the re- 
quisite 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 under- 
standing 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 ex- 
amples 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 pro- 
jects 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 com- 
munity. ■ 



122 August 1979 © BYTE Publications Inc Circle 364 on inquiry card. 



*m «j VII"' 

^J^\ tor users of . 

iJ^^SS-^Hl Lifeboat Associates, sp «'2 disk . b a Se d language and 
SSli i.1"****-^^ TO» computer. Written 



lly ,o convert system tapes lb ^ recover to disk.) mu 

l* ities "iSSXte with single drive systems) $1« 
(Program to transfer rue ope rate in 

AH items i listed tttow op system 

olot pius symbols file lor use by SID is coun( d 

PORTRAN-80 ' ^^Sl 

&fo* 7 «g%1 sag 

ff^ InSreVcEPT/D.SPLAY. COP ^ 

mnemonics support^ Cross Referenc e List ^ ,e $l49/$l5 
Library Manager anu _ . . , t tn or 

wit h ma,l labels, HP . _ ^ _ ^ 

APARTMENT ^ff^aS^ 
management system rfata on vacancy ^^ 

STvfflM! mlin, Beoolres CB.SIC. SepP 

' aWeS e nisk Kit -Template and instrocrions to n^y s- 
r 93ZdWr Sekettee «or P ose ol second s,de >n s g $w5 
gle sided a Processor. 

ventory Payables R*$ patient . Require , CBASIC PP ^ 

^r^^^^!!^ — 

cassette tape. ■ 



UfeboatAssoaate^ 

is proud to otter the first ^W^j computer. Wntten 
u «y package for the , R die Sir j*Hft age ^ 

b Y Microsoft, creators of Leve J^ mQre drives an 

a TRS-80 system w * 3 JJj on diskettes and consists of: 
-rucnns The software is suppiieu un w= 



ssssssssss* 

I HIKING LOUDER » link-adil and 

for execution 



SUBROUTWE LIBRARY a = * 

?"ary of subroutines -,ggm as ^^ 
linkable modules ggj^ston square 
rofna"u^o 9 g :transce P n d enta, S ,etc. 

B»?SJofAfB^^f 

modify FORTRAN * n be used as a general 
SSI'textfdSrcorrespondence 

and other documents. 



,N anueow""-- 

age with full documentation ^^ sysTEM 
DISCOUNT PRICE OF ShKIJ 



The Macro Assembler 

1 oader Editor, and Cross Q - 
Rete'enceUtilitiesalone.SQU 



The Fortran Compiler, Loader 
Id' or and extensive library of 



Lifeboat Associates 

2248 Broadway 
New York, NY. 10024 

Please eendUw«o»ow|W 
Software 



Telex: 668-585 




.boat Associates 
TIE 

till 111 




TM 

(212)580-0082 




User Manual, aUutcK-nc^ 

casS ette,a P . ,_ ^ trademarks of Tandy Corporation. 
•Radio Shack and TRS au at ^^^^_ 



MINIMAX. THE COMPUTER TH 



No microcomputer in the world can 
match Minimax incredible feature for 
incredible feature. 

Simply stated, Minimax is the 
most advanced, least expensive com- 
puter 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 semi- 
conductor internal memory 

In addition, the Minimax I 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. Minimax's 
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 Programability. Minimax 
features exceptionally advanced soft- 
ware 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 ALL 



out expensive or time consuming 
programming. 

YOU GET 2.4 MEGABYTES 
WITHOUT TAKING A BIG BITE OUT 
OF YOUR BUDGET. 

At 34,495 for the 800k Minimax I and 
$5,995 for the 2.4M Minimax II, it is not 
only incomparable feature for 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 pay- 
roll 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. 

tion — please send the reader service 
card or contact us directly. 

The more you know about 
Minimax, the more incredible 
it becomes. 

WHAT MAKES ONE COMPUTER 
BETTER THAN ANOTHER MAKES 
MINIMAX THE BEST. 



MINIMAX 

Developed and Manufactured by 
COMPU/THINK™ 3260 Alpine Road, 
Menlo Park, CA 94025 (415) 854-2577 




john d OWENS ASSOCIATES, inc. 

12 SCHUBERT STREET (new address) 
STATEN ISLAND, NEW YORK 10305 

WE ARE KNOWN FOR OUR PROMPT, COURTEOUS SERVICE 

TELETYPE MODEL 43 

4320 AAA (TTL interface) $985 

4320 AAK (RS232 interface) $1 ,085 

with transformer to operate on 50Hz, 220v, installed inside cabinet add $50 

We stock paper and ribbon for the Teletype Model 43 

DEC LA 34 

Low cost, convenient desk-top design. Feels and operates like a typewriter. 128 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 

1 520 $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 $5700 

50 megabytes of unformatted data in a single, removable cartridge. 

IMS 5000 SERIES, COMPLETE ZB0 SYSTEM $2,170 

2 I/O ports, 1 K EPROM bootstrap loader, double density, dual 5 1/4 inch disks. S-1 00, 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 



Technical Fopum 



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 Compu- 
tation, volume 15, 1 961 . 

Frank Harary, "Permutations with Restrict- 
ed Position/' Mathematics of Computation, 
volume 16, 1962. 

J R Howell, "Generation of Permutations 
by Addition," Mathematics of Computation, 
volume 16, 1962. 

Selmer M Johnson, "Generation of Permu- 
tations by Adjacent Transposition," Math- 
ematics of Computation, volume XVII, 
number 83, July 1963. 

D H Lehmer, "The Machine Tools of Com- 
binatorics" in Applied Combinatorial Math- 
ematics, edited by E F Beckenbach, John 
Wiley and Sons Inc, New York. 

G G Langdon Jr, "An Algorithm for Gen- 
erating Permutations," Communications of 
the ACM, volume 10, number 5, May 1967. 

M Renaud and S Regnier, "Programme de 
Permutations," Revue Francaise a" Informa- 
tique et de Recherche Operationell, May- 
June 1967. 

D Pager, "A Number System for the Per- 
mutations," Communications of the ACM, 
volume 13, number 3, March 1970. 



126 August 1979 © BYTE Publications Inc 



E Kellerman, "Method for Generating 
Permutations, " IBM Technical Disclosure 
Bulletin, volume 13, number 8, January 
1971. 

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 Per- 
mutations, Rosary Permutations, and Adja- 
cent Transposition Algorithms," Communi- 
cations of the ACM, volume 16, number 5, 
May 1973. 

R A Davis, "Permutation of Bits in a 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 Con- 
ference, May 15 thru 18 1973 (Canadian 
Printco Limited). 

B M Zlotnik, "An Algorithm of Permutation 
Enumeration,"/! vtomatika i Vychislitel 'naya 
Teknika, number 2, 62, 1972. 

S Even, Algorithmic Combinatorics, Mac- 
millan, New York, 1 973, pages 2 thru 1 1 . 

C K Wong and D Coppersmith, "The Genera- 
tion of Permutations in Magnetic Bubble 
Memories," IBM Technical Report RC5174, 
IBM Research, December 1974, Yorktown 
Heights, New York. 

B M Zlotnik and V S Kogan, "A Method of 
Transforming Permutation n!-Codes," Avto- 
matika i Telemekhanika, number 1, January 
1975, pages 139 thru 142. 



E W Stacy, "Exact Evaluation of Determi- 
nants Via Permutation Arrays," IBM Tech- 
nical Disclosure Bulletin, volume 18, number 
9, February 1976. 

F M Ives, "Permutation Enumeration: 
Four New Permutation Algorithms," Com- 
munications of the ACM, volume 19, num- 
ber 2, February 1976. 

Nachum Dershowitz, "A Simplified Loop- 
free Algorithm for Generating Permutations," 
BIT 1 5 1975, 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 technology of personal computing. The subject 
matter is open-ended, and the intent is to foster discussion 
and communication among readers of GV7"£. IVe ask that all 
correspondents supply their full names and addresses to be 
printed with their commentaries. We also ask that corres- 
pondents supply their telephone numbers. 



TTL- HIT 



1 00 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. 



aqss 



(+3.50 shipping) 



The TTL Kit 

(20 types, 5 each, 100 total) $39.95 

(+3.50 shipping) 
Double TTL Kit 

(20 types, 10 each, 200 total) $69.95 

(+4.50 shipping) 
Designer TTL Kit 

(40 types, 5 each, 200 total) $1 19.95 

(+4.50 shipping) 

ELECTRONIC PACKING COMPANY 

Box 581 • Greenfield, IN 46140 * 
(317)462-9511 • Dealer inquiries invited 



Circle 121 on inquiry card. 



August 1979 © BYTE Publications Inc 127 



Technical Fcnism 



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 simul- 
taneous equations program can be applied, with minor 
reprogramming, to the TI59. The resulting program 
would then be capable of solving 29 simultaneous equa- 
tions 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, com- 
pared 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 exter- 
nal 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 ef- 
fect of deleting the ninth coefficient of the first eight equa- 
tions and the entire ninth equation of table 1 (page 180). 

This was my first experience with using the TI59 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 pro- 
gram 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! 

Jim Howell 5472 Playa Del Rey, San Jose 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 instruc- 
tions compare the X, Y, S, or U register with (up to) 16 
bits of data. The ABX instruction adds B (8 bits, unsign- 
ed) to X (16 bits) putting the 16 bit result into X. 



D 



■o KIM ANALOG INPUT 

Analog to Digital Conversion System for the KIM Computer 



Give the KIM the ability to 
measure* and control tfte uorld around 
it with DAM SYSTEMS modules. Just. Plus* 
the KIMSET1 into the KIM to Set 16 
channels of anelos input. Screw 
t-eriiiinals are provided for each channel 
so you can hooK uf- Joysticks* potsi or 
whatever appropriate sensors you h*a>^&. 

Each of t-he 16 analoa inputs* in 
the ranQe of t.o 5.12 volts* is 
converted to a decimal nuniber between O 
and 255 (20 millivolts per count.). 
Conversion time is 100 niicrosconds. 

The K1MMOD provides one user port, 
as well as a DAM SYSTEMS port- 
Software is provided. 



n i hou 

«£3Cf 




] .*. huMUHijh 



1-AIM161 
1-KIMMOD 
1- CABLE A24 

1-MANM0DI 
1-P0W1 



KIMSET1 

- 1 6 ANALOG INPUTS - 8 BITS - 1 00 MICROSEC 



- 24 INCH INTERCONNECT CABLE 



POWER MODULE 
KIMSETIa for 110 VAC $ 28S 



KIMSETIe for 230 VAC $299 
Ord«r direct or contact your localcompunr store. 

CONNECTICUT microCOMPUTER , Inc. 

150 POCONO ROAD 

BROOKFIELD, CONNECTICUT 06804 

TEL: (203) 775-9659 TWX: TLX: 7104560052 



128 August 1979 © BYTE Publications Inc 



Circle 78 on inquiry card. 



The major 16 bit arithmetic instruction of the 6809, 
however, is the Load Effective Address instruction. 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 ad- 
dress 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 im- 
mediate 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 (pro- 
gram 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 ex- 
changes 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 ex- 
changes are allowed and others are not, the assembly 
language programmer also has to remember which ones 
these are. Either scheme of register transfers and ex- 
changes would have been possible, but since these in- 
structions are not that common in programs (falling 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 pro- 
cessors are the same (or are related in a known ratio). In 
any event, comparing cycle times of some isolated in- 
structions 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 pro- 
cessors?) 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 follow- 
ed 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 hard- 
ware required, the addressing modes available, the 
relative execution times, and the number of bytes re- 
quired for the more common instructions. To stop at this 
point and decide which is "best" is the equivalent of flip- 
ping 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 has 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 1K or 4K RAM. 




• Thermal Printer 

• Full-Size Alphanumeric Keyboard 

• True Alphanumeric Display 

• Proven R6500 Microcomputer System Devices 



• Built-in Expansion Capability 

• TTY and Audio Cassette Interfaces 

• ROM Resident Advanced Interactive Monitor 

• Advanced Interactive Monitor Commands 



PRICE: $375.00 



(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 readerservicecard 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 caro. 



August 1979 © BYTE Publications Inc 129 



Circle 211 on inquiry card. 



T M 



rUlAEBAR/l 

KEYED FILE MANAGEMENT 



Put data at your fingertips. . .easily accessed, displayed and 
updated by key. Designed to meet all of your data management 
needs. MAGSAM™ allows you to quickly implement sophisticated 
keyed file structures through simple CBASlC statements. 
Standard MAGSAM ,M featuresincluderecordretrieval with random 
by key, sequential by key. and generic ("wild card") search, and 
complete compatibility with all CBASlC file facilities. Each 
MAGSAM™ Package includes the MAGSAM™ file manager. 
MAGSAMX™ tutorial program. MAGSAMD™ file dump utility, User 
Guide. Reference Card, and one year update service. 
Select the version of MAGSAM™ that meets your requirements. All 
versions of MAGSAM™ are completely upward compatible and 
may be upgraded at any time for the price difference. 

• MAGSAM III™ — Most advanced version. Multiple Key support 
(any number of keys), and Record and Key Deletion with automatic 
reclamation of disk space $145t 

• MAGSAM IT" — Single Key support with full Delete 
capability $99t 

• MAGSAM I™ — Entry level version. Single Key support without 
Delete capability $75f 

• User Guide only - comprehensive tutorial and reference 

manual $15 

Available for 8" soft sector. Micropolis. and TRS-80disk formats. 
Requires CP/M* or derivative and CBASlC. Distributed as CBASlC 
subroutines in source form. 

Visa and Masterchagre welcome. Dealer and OEM inquiries 
invited. 



fUlAG 



Micro applications Group 

7300 CALDUS AVENUE 
VAN NUYS. CA 91406 



* Trademark of Digital Research, f Single site license 



and how they could have been implemented on the pro- 
cessors 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 develop- 
ment 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 concen- 
trated 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 of- 
fered 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, posi- 
tion 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 in- 
structions 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. ■ 



Turning programmers into composers! 




Buy this book at your favorite computer 

bookstore or order direct from BYTE BOOKS. 

Add 60 C per book to cover 

postage and handling. 



For the first time hard-to-obtain computer 
music has been collected into one con- 
venient, 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-93171841-2 



70 Main St., Peterborough, NH 03458 



130 August 1979 © BYTE Publications Inc 



Circle 36 on inquiry card. 




ikMf\i 




OMj 



Announcement I. The first eight Personal 
Programs® from Aladdin Automation are 
NA/aiting for you now at your neighborhood 
computer retailer or direct from Aladdin. 

Now you can get your full share of Aladdin 
magic in every one of these Personal 
Programs® : 

Math-Ter-Mind® A delightful, 
educational learning experience 
for your pre-school child. Watch 
the smile on your child's face as a correct 
answer makes the mathematician smile on the 
screen before you. A nursery song also serves 
as a reward for learning elementary addition 
and subtraction. With Aladdin's Math-Ter- 
Mind® your child's pathway to learning will be 
fun-filled . . . for both of you. Math-Ter-Mind®. 
The first release from the Aladdin Education® 
Series, (nursery song currently available only 
on Apple II® program) 

Lunar Lander In a controlled 
descent, you're just seconds away 
from your first landing on the cold, 
forbidding surface of the moon. As you 
navigate your delicate spacecraft downward to 
the safety of Moonbase, you must be ever 
watchful of the dangers rising to meet you with 
each passing moment: a fuel level fast 
approaching zero; deadly meteor showers that 
come from any direction, at any time; sheer- 
faced rock cliffs and rough terrain; choosing 
the correct landing pattern and rate of descent. 
Aladdin's Lunar Lander. Your chance to reach 
out and touch the stars . . . without leaving the 
safety and comfort of your own chair. The first 
release from the Aladdin Simulation® Series. 



Craps All eyes in the casino are 
on you. The dice are in your 
hands. Lady Luck sits at your 
shoulder, whispering . . . "Just one more time. 
Try your luck just one more time." You throw 
. . . and watch the dice tumbling on the 
screen. With Aladdin's Craps you play against 
the computer, so it's awfully tough to win. But 
when you do. it's an experience you're likely 
never to forget. Craps. An exciting, heart- 
pounding Personal Program®. The first release 
from the Aladdin Las Vegas® Series. 

Mastermind A challenging game 
of intrigue, centuries old. that will 
giveyou 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 takepart 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. 




Mat h-Ter- Mind® Lunar Lander Craps 



Mastermind Tic-Tac-Toe Jungle Island® Stix® 



Super Pro Football® 



Welcome to the All-New World of 
Aladdin. And Get Ready to 
Make Your Own Magic 




Al/VD*\ AJTOM/TTION, nc 
/LMxm COMPUTE? CORR 

3420 Kenyon Street. Ste. 131, San Diego. CA 9211C 



Copyright 1 978 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 list. 



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 uni- 
que 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 struc- 
ture in LISP is the list. Every element of a list is either an 
atom or another list. An atom is a primitive named ob- 
ject, 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. 

( () () ) is a list 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 sym- 
bolic 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 + 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 com- 
mon divisor algorithm: 

(DEF GCD (LAMBDA (X Y) 
(COND 

((GREATER X Y) (GCD (SUB X Y) Y)) 
((GREATER Y X) (GCD X (SUB Y X))) 
(TX) 



) 



)) 



This would be equivalent to the Pascal program: 

function gcd(x,y: integer) : integer 
begin 

if x> y then gcd ; = gcd(x-y, y) 
else 

if y>x then gcd := gcd(x, y~x) 
else 

gcd : = x 
end. 

An important difference to note in the above com- 
parison is that no explicit assignment to a function return 
value is made in LISP, whereas in Pascal one must ex- 
plicitly say gcd := ... to specify the return value. In 
Pascal, and most other procedural languages, a distinc- 
tion is made between program statements and expres- 
sions. In such languages some program statement must be 



132 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 MICRO- 
>-AP MICRO-AP MICRO-AP MICRO-AP MICR 
P MICRO-AP MICRO-AP MICRO-AP MICRO- 
:RO-AP MICRO-AP MICRO-AP MICRO-AP MICR 
O-AP MICRO-AP MICRO-AP MICRO-AP MICRO- 
.ICRO-AP MICRO-AP MICRO-AP MICRO-AP MICR 
CRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO- 
.P MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICR 
, MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO- 
>-AP MICRO A 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 
MICRO-AP MICRO-AP MICRO-AP MICRO- 
\P MICRO-AP MICRO-AP MICRO-AP MICR 




-AP MICRO-AP MM f ■ " | M ^» ■°' AP MICRO-AP Ml 

;ro-ap MiCRO-AF«B[^F^^^jBBfc^^B B;ro-ap micro-ap * 

-AP MICRO-AP »■■ ■ > ; ■ BO-AP MICRO-AP Ml 

;ro-ap micro-af* ^m^- mv- ; "T^B^^" Kro-ap micro-ap t 

-AP MICRO-AP Mll^^^Ml BO-AP MICRO-AP Ml 

IRO-AP MICRO-AM KRO-AP MICRO-AP t 

-AP MICRO-AP Ml JO-AP MICRO-AP Ml 

:ro-ap micro-af« B:ro-ap micro-ap p 

-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP Ml 
;RO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP I 
-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP Ml 
:RO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP MICRO-AP t 



RANDOM, MULTI-KEY RECORD RETRIEVAL under CP/M, CDOS, IMDOS, ADOS 



SELECTOR III ALLOWS 
INSTANT RECALL OF ANY 
RECORD USING ANY IN- 
FORMATION ITEM IN THE 
RECORD. That statement 
deserves re-reading, be- 
cause that ability makes 
SELECTOR III the most 
powerful Date Base Man- 
agement System in micro- 
computers today! 

With SELECTOR III 

you can... 

• define a record format, 
assign retrieval keys, and 
begin entering data in min- 
utes. 

• create sorted pointers to 
records matching your spe- 
cif or range of requirements. 

Circle 213 on inquiry card. 



• automatically generate 
reports with control-break 
summaries and unlimited 
variety. 

•bring an application on- 
line in hours instead of 
months. 

SELECTOR III comes com- 
plete with eight application 
programs that perform the 
tasks listed at top of page. 
And, since it's distributed in 
source code form, you can 
easily add subroutines to do 
specific computations or 
file updates. 

SELECTOR III runs under 
CBASIC Vers. 1 or 2, and is 
priced at $295. SELECTOR 



III-C2 is dedicated to Vers. 2 
only, runs about twice as 
fast, and costs $345. 

Both systems are available in 
a variety of CP/M, diskette 
size and density formats 
including IBM 8"; North Star; 
Micropolis; TRS-80; Pro- 
cessor Tech Helios II; Altair; 
iCOM; Dynabyte; Imsai; 
and others. 



Available from computer stores nationwide: 

LIFEBOAT Associates 

2248 Broadway, Suite 34, 
New York, N.Y. 10024 • (212) 580-0082 

Or order direct from 

MICRO-AP 

9807 Davona Drive, San Ramon, CA 94583 
(415) 828-6697 



BYTE August 1979 133 



(ABC) IS BUILT UP OUT OF THREE OOTTEO PAIRS 



[ """"I 

A _ 



( J(KLM)N) IS BUILT UPOUTOF SIX OOTTEO PAIRS 



CI 



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 distinc- 
tion is made. A function is simply a single expression, 
whose value is the return value of the subprogram. 

This is made possible by built-in functions like 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 se- 
cond 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 ex- 
pression) 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 nor- 
mally accessible in other languages. Three primitives, 
CAR, CDR (pronounced could-er), and CONS are pro- 



Our MacroFloppy™ 
goes twice the distance. 

For $ 695. 




Introducing the Micropolis MacroFloppy T M041 and :1042 disk drive sub- 
systems. For the S-100/8080/Z-80 bus. Packing 100% more capacity into a 
5M-inch floppy disk than anyone else. 143K bytes, to be exact For as little 
as $695. 

The MacroFloppy:1041 comes with the Micropolis Mod I floppy packaged 
inside a protective enclosure (without power supply). And includes an S-100 
controller Interconnect cable. Micropolis BASIC User's Manual. A diskette con- 
taining 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 inte- 
grated right into your S-100 chassis. 

The MacroFloppy:1042 comes with everything the :1041 has, and more. 
Such as d.c. regulators, its own line voltage power supply, and, to top it off, 
a striking cover: Making it look right at home just about anywhere. 

Both MacroFloppy systems are fully assembled, tested, burned-in, and 
tested again. For zero start-up pain, and long term reliability. They're also 
backed up by our famous Micropolis factory warranty 

And both systems are priced just right. $695 for the MacroFloppy:1041 
and $795 for the MacroFloppy: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. 



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 func- 
tion 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 ele- 
ment, 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 list- 
manipulating 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 5M-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 MacroFloppy™ 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 stor- 
age. For less money than you'd believe possible. 

The MetaFloppy:1054 comes complete with four drives in dual config- 
uration. A controller. Power supply Chassis. Enclosure. All cabling. A new BASIC 
software package. And a DOS with assembler and editor. There's even a built- 
in Autoload ROM to eliminate tiresome button pushing. 

If that's more storage than you need right now, try our 
MetaFloppy:1053, with 630,000 bytes on-line. Or our Meta- 
Floppy: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 Deeripg 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 argu- 
ment 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 im- 
plement the program on a particular microcomputer. 
LISP makes such an undertaking quite straightforward 
(although not trivial, unfortunately!). 

LISP Interpreter 

Because programs are data objects (list structures) in 
LISP, the same routines used to read and print data ob- 
jects may be used to read and print programs. Further- 
more user functions, like a general list editor, can be 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 in- 
put, EVALs the resulting form, and PRINTs the result of 
EVAL. In a conventional high level language syntax, this 
would be: 

while true do begin 

patom("— > "); 

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 ar- 
bitrary 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 sym- 
bolic 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 

harrier 




With our Bank-Switching 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 inex- 
pensive 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-1 1 * memory. Break free. Join the family: 
RMA-032 32K by 16 bit RAM. $1200 

On-board refresh (Single qty.) 
RMS-016 16K by 16 bit ROM. $300 

(Intel 2716) (Single qty.) 

BSC-256 The Bank-Switch $300 

Controller (Single qty.) 

Substantial quantity discounts are available. For a free 
copy of our Bank-Switching manual, call or write on your 
company letterhead. 

Digital Pathways Inc. 

4151 Middlefield Road 

Palo Alto, C A 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 5V2" by 8V2" 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-80s $19.95 




TIM 
TREK 

A Tour De Force 

In Real Time Action 

Strategy Games 



TIME TREK by Brad Templeton for 8K PETs and Joshua Lavinsky 

for 4K Level I and II TRS-80s adds a dramatic new dimension to the 
classic Star Trek type strategy game: REAL TIME ACTION! You'll 
need fast reflexes as well as sharp wits to win in this constantly 
changing game. Be prepared— the Klingons will fire at you as you 
move, and will move themselves at the same time, even from 
quadrant to quadrant— but with practice you can change course 
and speed, aim and fire in one smooth motion, as fast as you can 
press the keys. Steer under power around obstacles— evade enemy 





A 1 

.3 

■ 
■ 
■ i 


A 

■ 

■ ■ 1 
■ 


-6.3 -3.\ -i e .. 

■ ■ 
■ ■ 
■ ■ 
■ -15 . 

S / 


.s 



shots as they come towards you— lower your shields just long 
enoughtofireyour phasers, bettingthatyou can getthem 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 for 4K Level I and IITRS-80s: 
Create dazzling real time graphics 
displays at speeds far beyond BASIC, 
by writing 'programs' consisting of 
simple graphics commands for a 
machine language interpreter. 
Commands let you draw lines, turn 
corners, change white to black, repeat 
previous steps, or call other programs. 
The ELECTRIC PAINTBRUSH manual 
shows you how to create a variety of 
fascinating artistic patterns including 
the one pictured. Show your friends 
some special effects they've never 
seen on a TV screen! $14.95 



program $14.95 

WHERE TO GET IT: Look for the PERSONAL SOFTWARE™ display rack at your local computer store. If you can't find the product you 
want, you can order direct with your V ISA/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 August 1979 



Circle 302 on inquiry card. 



Look for Personal Software™ products at the dealer nearest you! 



ALABAMA 

BYTE SHOP 

Huntsville, AL 35805 

COMPUTERLAND 

HuntsviJIe. AL 35805 

CPU, INC. 

Montgomery, AL 36104 

THE LOGIC STORE 

Opelika. AL 36801 

ALASKA 

ALPHA ELECTRONICS 

Anchorage, AK 99503 

ARIZONA 

MILLET'S TV & RADIO 

Mesa. A2 85204 

PERSONAL COMPUTER PLACE 

Mesa, A2 85202 

COMPUTERLAND OF PHOENIX 

Phoenix, A2 85016 

COMPUTER SHOWROOM 

Tucson. A2 85710 

ARKANSAS 

COMPUTERLAND 

Little Rock. AR 72212 

DATACOPE 

Little Rock, AR 72204 

CALIFORNIA 

JAY-KERN ELECTRONICS 

Bakersfield, CA 93305 

BYTE SHOP 

Burbank, CA 91506 

SILVER SPUR 

Chino. CA 91710 

BYTE SHOP OF SACRAMENTO 

Citrus Heights. CA 95610 

COAST COMPUTER CENTER 

Costa Mesa. CA 92627 

CAPITOL COMPUTER SYSTEMS 

Davis. CA 95616 

COMPUTERLAND SAN DIEGO EAST 

El Cajon, CA 92020 

COMPUTERLAND OF EL CERRITO 

El Cerrito, CA 94530 

COMPUTERWARE 

Encinitas, CA 92024 

BUSINESS ENHANCEMENT 

COMPUSERVICE 

Escondido, CA 92027 

CHANNEL DATA SYSTEMS 

Goleta, CA 93017 

RAINBOW COMPUTING 

Granada Hills, CA 91344 

JADE COMPUTER PRODUCTS 

Hawthorne, CA 90250 

BYTE SHOP OF HAYWARD 

Hayward, CA 94541 

COMPUTERLAND OF HAYWARD 

Hayward. CA 94541 

COMPUTERLAND OF WEST LA. 

Inglewood, CA 90302 

PROFESSIONAL COMPUTER STORE 

La Crescenta, CA 91214 

COMPUTER COMPONENTS 

OF SOUTH BAY 

Lawndale, CA 90260 

COMPUTERLAND OF SOUTH BAY 

Lawndale. CA 90260 

A-VIDD ELECTRONICS 

Long Beach, CA 90815 

COMPUTERLAND 

Los Altos, CA 94022 

BYTE SHOP 

Mountain View. CA 94040 

HOBBY WORLD ELECTRONICS 

Noithndge, CA 91324 

COMPUTERS-MADE-EASY 

Palmdale. CA 93550 

BYTE SHOP OF PLACENTIA 

Placentia. CA 92670 

COMPUTER CENTER 

Riverside. CA 92503 

CAPITOL COMPUTER SYSTEMS 

Sacramento, CA 95821 

COMPUTERLAND 

San Bernardino, CA 92404 

COMPUTER AGE INC. 

San Diego, CA 92111 

COMPUTERLAND OF SAN DIEGO 

San Diego, CA 92111 

COMPUTER MERCHANT 

San Diego. CA 92115 

COMPUTERLAND OF 

SAN FRANCISCO 

San Francisco. CA 94105 

VIDEO GAMES & COMPUTERS 

San Francisco, CA 94118 

VILLAGE ELECTRONICS 

San Francisco, CA 94121 

COMPUTERLAND OF SAN JOSE 

San Jose. CA 95129 

COMPUTERLAND (Central) 

San Leandro, CA 94577 

BYTE SHOP 

San Luis Obispo. CA 93401 

MARIN COMPUTER CENTER 

San Rafael, CA 94903 

ADVANCED COMPUTER PRODUCTS 

Santa Ana, CA 92705 

COMPUTER CITY 

Santa Ana. CA 92704 

BYTE SHOP 

Santa Clara. CA 95051 

COMPUTER FORUM 

Santa Fe Springs. CA 90670 



THE COMPUTER STORE 

Santa Monica, CA 90401 

SANTA ROSA COMPUTER CENTER 

Santa Rosa, CA 95404 

BYTE SHOP 

Suisun. CA 94585 

COMPUTERS PLUS 

Sunnyvale. CA 94087 

BYTE SHOP OF TARZANA 

Tarzana, CA 91356 

COMPUTERLAND OF 

THOUSAND OAKS 

Thousand Oaks. CA 91360 

SMALL SYSTEM SOFTWARE 

Thousand Oaks. CA 91360 

COMPUTER COMPONENTS 

Van Nuys, CA 91411 

COMPUTERLAND 

Walnut Creek, CA 94598 

BYTE SHOP 

Westminster. CA 92683 

COMPUTER COMPONENTS OF 

ORANGE COUNTY 

Westminster, CA 92683 

COLORADO 

BYTE SHOP 

Boulder, CO 80301 

COMPUTERLAND 

Colorado Springs, CO 80917 

AMPTEC 

Denver, CO 80216 

COMPUTERLAND 

Denver. CO 80222 

BYTE SHOP 

Engtewood, CO 80110 

MICRO WORLD ELECTRONIX 

Lakewood, CO 80226 

CONNECTICUT 

COMPUTERLAND OF FAIRFIELD 

Fairfield. CT 06430 

JRV COMPUTER STORE 

Hamden, CT 06518 

THE COMPUTER STORE 

Hartford. CT 06103 

COMPUTER LAB 

New London, CT 06320 

THE COMPUTER STORE 

Windsor Locks. CT 06096 

WASHINGTON D.C. 

COMPUTER CABLEVISION 

Washington, D.C. 20007 

FLORIDA 

COMPUTERLAND 

Boca Raton. FL 33432 

THE COMPUTER STORE 

Bradenton, FL 33505 

THE COMPUTER STORE 

Clearwater. FL 33516 

TRANS-DATA CORP 

Coral Gables, FL 32134 

UCATAN 

Destin. FL 32541 

BYTE SHOP 

Fort Lauderdale. FL 33334 

COMPUTERLAND 

Fort Lauderdale, FL 33308 

COMPUTERS FOR YOU 

Fort Lauderdale. FL 33312 

DATA MOVERS 

Fort Meyers, FL 33901 

SOUND IDEAS BYTE SHOPPE 

Gainesville, FL 32601 

FOCUS SCIENTIFIC ENTERPRISES 

Miami. FL 33132 

GRICE ELECTRONICS 

Pensacola, FL 32589 

COMPUTER AGE 

Pompano Beach, FL 33062 

PAPERBACK BOOKSMITH 

Sarasota, FL 33581 

AMF ELECTRONICS 

Tampa, FL 33612 

MICRO COMPUTER SYSTEMS 

Tampa. FL 33609 

COMPUTER CENTER OF 

PALM BEACHES 

West Palm Beach. FL 33409 

GEORGIA 

ADVANCE COMPUTER TECHNOLOGIES 

Atlanta, GA 30328 

COMPUSHOP 

Atlanta, GA 30342 

DATAMART 

Atlanta, GA 30305 

THE LOGIC STORE 

Columbus, GA 31906 

COMPUTERLAND OF ATLANTA 

Smyrna, GA 30080 

HAWAII 

COMPUTERLAND 

Honolulu. HI 96813 

MICROCOMPUTER SYSTEMS 

Honolulu. HI 96813 

RADIO SHACK (Dealer) 

Lihue. HI 96766 

IDAHO 

NORTHWEST COMPUTER CENTER 

Boise. 10 83704 

ILLINOIS 

COMPUTERLAND OF 

ARLINGTON HEIGHTS 

Arlington Heights, IL 03904 

FARNSWORTH COMPUTER CENTER 

Aurora, IL 60505 



KAPPEL'S COMPUTER STORE 

Belleville. IL 62220 

DOW-COM 

Carbondale. IL 62901 

BYTE SHOP 

Champaign. IL 61820 

THE ELEKTRIK KEYBOARD 

Chicago, IL 60614 

EMMANUEL B. GARCIA JR. 

AND ASSOCIATES 

Chicago, IL 60613 

PERSONAL COMPUTER 

Chicago, IL 60611 

VIDEO ODYSSEY 

Deerfield. IL 60015 

COMPUTERLAND 

Downers Grove, IL 60515 

COMPUTER STATION 

Granite City, IL 62040 

ORCUTT BUSINESS MACHINES 

La Salle, IL 61301 

ILLINI MICROCOMPUTERS 

Naperville, IL 60540 

COMPUTERLAND OF NILES 

Niles. IL 60648 

COMPUTERLAND 

Oak Lawn, IL 60453 

BIES SYSTEMS 

Oak Park, IL 60302 

COMPUTERLAND OF PEORIA 

Peoria. IL 61614 

WALLACE ELECTRONICS 

Peoria, IL 61614 

DATA DOMAIN 

Schaumburg. IL 60195 

INDIANA 

DATA DOMAIN OF FORT WAYNE 

Fort Wayne, IN 46805 

HOME COMPUTER CENTER 

Indianapolis. IN 46220 

PUBLIC COMPUTING 

Lalayette, IN 47904 

COMPUTER CENTER 

So. Bend. IN 46637 

IOWA 

SYNCHRONIZED SYSTEMS 

Des Moines. IA 50310 

COMPUTER SHOP 

Spencer, IA 51301 

THE COMPUTER CENTER 

Waterloo, IA 50701 

KANSAS 

THE COMPUTER ROOM 

Overland Park. KS 66212 

PERSONAL COMPUTER CENTER 

Overland Park, KS 66206 

COMPUTER SYSTEMS DESIGN 

Wichita, KS 67214 

KENTUCKY 

BARNEY MILLER'S INC. 

Lexington, KY 40507 

LOUISIANA 

COMPUTER SHOPPE 

Metaire. LA 70002 

MARYLAND 

COMPUTERLAND 

Rockville. MD 20855 

COMPUTER WORKSHOP 

Rockville, MD 20852 

COMPUTERS ETC. 

Towson. MD 21204 

COMPUTERS UNLIMITED 

Towson, MD 21204 

MASSACHUSETTS 

THE COMPUTER STORE 

Burlington, MA 01803 

THE COMPUTER STORE 

Cambridge. MA 02139 

CPU SHOP 

Charlestown. MA 02129 

MAD HATTER SOFTWARE 

Dracut, MA 01826 

NEW ENGLAND ELECTRONICS 

Needham. MA 02194 

MICHIGAN 

NEWMAN COMPUTER EXCHANGE 

Ann Arbor. Ml 48104 

NEW DIMENSIONS IN COMPUTING 

East Lansing, Ml 48823 

COMPUTER HOUSE DIV. 

Jackson. Ml 49202 

COMPUTERLAND OF 

GRAND RAPIDS 

Kentwood. Ml 49508 

COMPUTRONIX 

Midland. Ml 48640 

COMPUTER MART 

Clawson, Ml 48017 

TRI CITY COMPUTER MART 

Saginaw. Ml 48603 

COMPUTERLAND 

Southfield, Ml 48034 

LEVEL FOUR PRODUCTIONS 

Westland, Ml 48185 

MINNESOTA 

COMPUTERLAND 

Bloommgton.MN 55431 

ZIM COMPUTERS INC. 

Brooklyn Center. MN 55429 

MINN. MICRO SYSTEMS 

Minneapolis. MN 5' 54 

MISSISSIPPI 

OXFORD SOFTWAR 0. 

Oxford. MS 38655 



MISSOURI 

FORSYTHE COMPUTERS 
Clayton, MO 63105 
COMPUTER COUNTRY 
Florissant, MO 63031 
FUTUREWORLD. INC. 
St. Louis. MO 63131 
GREATEST GRAPHICS 
Springfield, MO 65804 
NEBRASKA 
OMAHA COMPUTER STORE 
Omaha. NE 68127 
NEVAOA 
CENTURY 23 
Las Vegas, NV 89102 
HOME COMPUTERS 
Las Vegas. NV 89109 
NEW HAMPSHIRE 
TRS-80 SOFTWARE EXCHANGE 
Milford, NH 03055 
COMPUTERLAND OF NASHUA 
Nashua, NH 03060 
BITS, INC. 

Peterborough. NH 03458 
NEW JERSEY 
COMPUTER LAB OF NJ 
Budd Lake, NJ 07828 
COMPUTER EMPORIUM 
Cherry Hill. NJ 08002 
COMPUTER MART OF NJ 
Iselin. NJ 08830 
MSM ELECTRONICS 
Medford, NJ 08055 
COMPUTERLAND 
Mornstown, NJ 07960 
COMPUTERLAND 
Paramus, NJ 07652 
COMPUTER NOOK 
Pine Brook, NJ 07058 
COMPUTER CORNER 
Pompton Lakes, NJ 07442 
COMPUTER ENCOUNTER 
Princeton, NJ 08540 
TYPTRONIC COMPUTER STORE 
Ramsey. NJ 07446 
STONEHENGE COMPUTER CO. 
Summit. NJ 07901 
NEW YORK 
COMPUTERLAND 
Buffalo. NY 14150 
COMPUTERLAND 
Carle Place. NY 11514 
COMPUTER SHOP OF SYRACUSE 
De Wilt, 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 
COMPUTERLAND 
Charlotte, NC 28205 
COMPUTER ROOM 
Charlotte. NC 28203 
FUTUREWORLD 
Durham, NC 27707 
BYTE SHOP 
Greensboro, NC 27401 
MICROCOMPUTER SERVICES 
Hickory, NC 28601 
BYTE SHOP OF RALEIGH 
Raleigh, NC 27605 
OHIO 

BASIC COMPUTER SHOP 
Akron, OH 44314 
INDUCTIVE COMPONENTS 
Amelia. OH 45102 
CINCINNATI COMPUTER STORE 
Cincinnati. OH 45246 
21ST CENTURY SHOP 
Cincinnati, OH 45202 
DIGITAL DESIGN 
Cincinnati, OH 45202 
CYBER SHOP 
Columbus. OH 43227 



MICRO MINI COMPUTER WORLD 

Columbus. OH 43213 

COMPUTER SOLUTIONS 

Dayton. OH 45409 

DAYTON COMPUTER MART 

Dayton. OH 45409 

ASTRO VIDEO ELECTRONICS 

Lancaster, OH 43130 

COMPUTERLAND OF CLEVELAND 

Mayfield Heights. OH 44121 

RADIO SHACK (Dealer) 

St.Clairsville. OH43950 

OKLAHOMA 

HIGH TECHNOLOGY 

Oklahoma City. OK 73106 

MICROLITHICS 

Oklahoma City. OK 73127 

HIGH TECHNOLOGY 

Tulsa, OK 74129 

OREGON 

THE COMPUTER STORE 

Corvalhs, OR 97330 

CAMERA AND COMPUTER 

EMPORIUM 

Portland. OR 97205 

COMPUTERLAND OF PORTLAND 

Tigart. OR 97223 

PENNSYLVANIA 

BYTE SHOP 

Bryn Mawr, PA 19010 

PERSONAL COMPUTER CENTER 

Frazer, PA 19355 

COMPUTER AID 

Latrobe. PA 15650 

THE COMPUTER WORKSHOP 

Murrysville. PA 15668 

A B COMPUTERS 

Montgomeryville. PA 18936 

MICROTRONIX 

Philadelphia, PA 19106 

COMPUTER HOUSE 

Pittsburgh. PA 15220 

SOUTH CAROLINA 

DATA MART 

Greenville, SC 29607 

TENNESSEE 

MICROCOMPUTER STORE 

Knoxville, TN 37919 

COMPUTER LABS OF MEMPHIS 

Memphis, TN 38117 

DOC'S COMPUTER SHOP 

Nashville, TN 37211 

TEXAS 

COMPUTER POST 

Arlington, TX 76011 

COMPUTERLAND OF AUSTIN 

Austin, TX 78757 

COMPUTERS 'N THINGS 

Austin, TX 78731 

MICRO COMPUTER SHOPPE 
Corpus Chnsti. TX 78411 

MICROSYSTEMS SERVICES INC. 
Corpus Chnsti, TX 78411 
COMPUSHOP 

Dallas, TX 75243 

COMPUTER IMAGINEERING 
Dallas, TX 75234 

COMPUTERLAND 

Dallas, TX 75231 

KA ELECTRONICS SALES 

Dallas, TX 75247 

COMPUTER TERMINAL 

El Paso, TX 79901 

RAM MICRO SYSTEMS 

Fort Worth, TX 76116 

COMPUTERCRAFT 

Houston, TX 77063 

COMPUTERLAND OF HOUSTON BAY 

Houston, TX 77058 

INTERACTIVE COMPUTERS 

Houston. TX 77036 

NEIGHBORHOOD COMPUTER 

Lubbock, TX 79401 

COMPUTER PATCH OF SANTA FE 
Odessa, TX 79762 

COMPUSHOP 

Richardson, TX 75080 

THE COMPUTER SHOP 

San Antonio, TX 78216 

COMPUTER SOLUTIONS 

San Antonio. TX 78229 

MICRO MART 

San Antonio. TX 78205 

WICHITA COMPUTER SYSTEMS 

Wichita Falls, TX 76301 

UTAH 

ADP SYSTEMS 

Logan, UT 84321 

TRI-POWER ELECTRONICS 

Murray. UT 84017 

COMPUTER SPECIALISTS 

Ogden. UT 84402 

COMPUTER CONCEPTS GROUP 

Salt Lake City, UT 84109 

COMPUTERLAND OF SALT LAKE 

Salt Lake City, UT 84111 

THE HI-FI SHOP 

Salt Lake City. UT 84117 

VERMONT 

COMPUTERMART 

Essex Junction. VT 05452 

VIRGINIA 

COMPUTER HARDWARE STORE 

Alexandria, VA 22314 



Circle 302 on inquiry card. 



COMPUTERS PLUS 

Alexandria. VA 22304 

COW, INC. 

Blacksburg, VA 24060 

HOME COMPUTER CENTER 

Newpoit News, VA 23606 

COMPUTER TECHNIQUES 

Richmond, VA 23235 

THE COMPUTER PLACE 

Roanoke, VA 24015 

COMPUTER WORKSHOP 

Springfield. VA 22151 

COMPUTERLAND 

Vienna. VA 22180 

HOME COMPUTER CENTER 

Virginia Beach, VA 23452 

WASHINGTON 

COMPUTERLAND 

Bellevue. WA 98007 

OMEGA NORTHWEST 

Bellevue, WA 98004 

COMPUTERLAND OF SOUTH 

KING COUNTY 

Federal Way. WA 98003 

YE OLDE COMPUTER SHOPPE 

Richland, WA 99352 

THE COMPUTER SHOPPE 

Seattle, WA 98115 

EMPIRE ELECTRONICS 

Seattle, WA 98166 

PERSONAL COMPUTERS 

Spokane, WA 99202 

COMPUTERLAND 

Tacoma, WA 98499 

WISCONSIN 

BYTE SHOP OF MILWAUKEE 

Greenfield, Wl 53227 

COMPUTERLAND 

Madison, Wl 53711 

MADISON COMPUTER STORE 

Madison. Wl 5371 1 

COMPUTERLAND 

Milwaukee. Wl 53222 

FOX VALLEY 

COMPUTER STORE 

Neenha. Wl 54956 

WYOMING 

COMPUTER CONCEPTS 

Cheyenne. WY 82001 

AUSTRALIA 

ELECTRONIC CONCEPTS PTY. LTD. 

COMPUTERLAND 

Sydney. N.S.W. 

CANADA 

COMPUSHOP 

Calgary. Alberta T2N2A4 

THE COMPUTER SHOP 

Calgary. Alberta T2T 4T9 

ORTHON COMPUTERS 

Edmonton, Alberta T5N 3N3 

TJB MICROSYSTEMS 

Edmonton, Alberta T5M OH9 

CONTI ELECTRONICS 

Vancouver, B.C. V5W 2Z4 

COMPUTER CITY 

Wmnepeg, Manitoba R3P OH8 

COMPUTERLAND 

Wmnepeg, Manitoba R3G OM8 

INTERACTIVE COMPUTER SYSTEMS 

Fredenckton, New Brunswick 

MINICOMP SYSTEMS 

Halilax, Nova Scotia B3K 2G1 

KOBETEK SYSTEMS 

Wollville. Nova Scotia BOP 1X0 

COMPUTERLAND 

Burlington, Ontario 

LYNTRONICS 

Downsview, Ontario M2J 2W6 

COMPUTER CIRCUITS 

London. Ontario N6A 3H2 

COMPUMART 

Ottawa, Ontario K2A 1J2 

COMPUTER INNOVATIONS 

Ottawa, Ontario K1B 4A8 

RICHVALE TELECOMMUNICATIONS 

Richmond Hill. Ontario 

THE COMPUTER CENTRE 

Sarnia. Ontario N7T 1B4 

COMPUTER MART 

Toronto. Ontario M4G 3B5 

THE COMPUTER PLACE 

Toronto, Ontario M5V 1Z1 

COMPUTER SPECIALIST 

Toronto. Ontario M3K 1E7 

HOME COMPUTER CENTRE 

Toronto. Ontario M2M 3W2 

HOUSE OF COMPUTERS 

Toronto. Ontario 

MARKETRON 

Toronto, Ontario 

MICRO-WARE 

Toronto, Ontario M4E 2L2 

COMPUCENTRE 

Montreal. Quebec H1J 124 

FUTURBYTE 

Montreal, Quebec H3B 3C9 

CUSTOM COMPUTING SERVICES 

Saskatoon. Saskatchewan S7K 2B5 

DIGITAL SERVICE 

Saskatoon, Saskatchewan S7J 3A9 

PUERTO RICO 

MICROCOMPUTER STORE 

Rto Piedras, 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 ac- 
cessible 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 collec- 
tion. 

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 univer- 
sally 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 pro- 
blem 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 incon- 
venient. 

One important requirement affecting this decision not 
yet mentioned is the need to implement the LISP EQ func- 
tion. 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 specify- 
ing 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 cell 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, initialize 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 im- 
practical 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 lisp type = 

(dtprtype, sy mat m type, numatmtype, nilatmtype); 
dtpr = 
record 

car: form; 
cdr: form 
end; 
symatm = 
record 

name: \ array [0..n] of char; 
value: form 
end; 
for/?? = 

packed record 
gcbit: boolean; 
case obj type: Hsptype of 

dtprtype: (dtprform: I dtpr); 

symatmtype: (symatmform: f symatm); 
numatmtype: (numatmform: -5000.. 4999); 
nilatmtype: ( ) 

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 inter- 
preter. READ accepts a fully parenthesized expression 
from the terminal, and builds up the internal representa- 
tion, allocating new dotted pairs and atoms as necessary. 
If the expression is a list, READ returns a form specifying 
the first dotted pair of the constructed list. If the expres- 
sion 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 August 1979 © BYTE Publications Inc 



H NTRTCC DATA SYSTBVB | 



- •■" J 



if : ' 



sr ■ -x 



v ^a, f n N-f 






Tlie 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 perfor- 
mance usually flunk the test in 
price. At least that was the case 
until the SuperBrain graduated with 
the highest PPR (Price/ Perfor- 
mance 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 in- 
clude: two dual-density mini-flop- 
pies 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 

*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 Receiv- 
able, Payroll, Inventory or Word Pro- 
cessing ... the SuperBrain handles 
all of them with ease. 

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



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

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



3 



sintetoc 
Cdata 
s systems. 



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



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

SP80's manual 
includes; functional 
source listings of up 
to two macro 
libraries, macro syntax (with examples), and ^^ 
detailed sample SP80 program. ^^ 

Send $50 for CPM diskette and manual, or $25 for manual alone, (add $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-11 for the LSI-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 of 
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 dot- 
ted 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 straight- 
forward 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 ac- 
cepting characters one at a time from the terminal, and 
building them up into an atom. RATOM must distin- 
guish 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 buf- 
fering 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 se- 
quence. 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 ascend- 
ing or descending order. 

EASE OF INTERFACING CBSort works well either as a 
stand alone sort or with production and turnkey sys- 
tems. 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 mem- 
ory consuming indexed tags in order to get sequential 
data. CBSort is practical for the micros and not a trans- 
plant 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 summari- 
zation 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 check- 
ing and produces clear runtime error diagnostics. 



CBSort on PTDOS data disk with User's Manual $75.00 



®PTDOS and HELIOS are registered trademarks of Processor Technology 

(cBs) Computer Bookkeeping Services, Inc. 

MIrm niwlalnn ' ' ^^ 

1446 Leimert Blvd. • Oakland, CA 94619 • (415) 531-7427 



Micro Division 



142 August 1979 © BYTE Publications Inc 



Circle 49 on inquiry card. 



_*~ 


.^ 


x: 






3 


o 

CD 


jj 






O 


4-> 
CO 


c 






C 






CO 




O 


4-> 




CJ 






to 








-S 




•rH 


T 






c« 


o 




"5 


I 




c 




•S- 


n 


T> 


•rH 




E 


V 


C 


C_ 




JJC 


CD 


CJ 




cj 




cc -o 




•H 


\- H 






rH 




Ou CO 




-i* 




re 


y h ^> 




cj 


CD 


an o >» 








CO JO rH 




"co 


C 


TO 


F. CJ 




■*-! 


o 


a; 


e >» > 




co 




4-> 


O «0 -rH 




Ad 


bOJ-J 


1- 4-J 




i 


CJ 


o 


<«-• cu o 


CC £) 


u. 


TO 


U CU 


E- <L 


l 




cr: n q. 


Ou u. 


X 


jt CJ 


ttf 1 • 




0) 


U CC CU 


f- X £ 


•*— • 


o 


c 


Q u. 


CO v- 


^ 


x: 




a u 


<J 3 


o 


jj 


CD XI 


a- x: 4-i 


c 






4-> T3 


x: 4-j cu 


e_ 


cu 


c t? 


4-J k- 


o 


O 


4-> 


c ro c 


OJ 


•d 




TO 


•rH ro 


0) U. T^ 


cs 


1» 


o 


cu 


4J O C 


5 


3 


o 


rH <C O 


ra jj q 


rH 


r-H 


rH O 


■o w 


cu 


r-H 


•H '>-' 


a ai 


> 


03 


C« «- 


3 U. 


-Si 






+ X 




a. 
E 


CD 


_l 


cc cc . 


cr: 


JZ 


LU 


E- x h «- 


t- X 


+ ' 


U 


a. -a. + 


a. - 


*~ 




l- 


^ CX ^ DC 


^ cc 


o 


CO 


UJ 


H Cj E- Q E-'i < 


o 


CUO 


CO Cj CO CJ CO u 


00 


> 








vo 


co 




< «C <C <C 




5 


CO 


cc 


< < <c er: 


X X CO 




n c h o i-H 


H Q H 




X 


en 


-J tT H (Ti CO —1 Cu 


<T) 


uu 1 










co 
ro 

Qu 


X 







o 






o 

CJ 



E 



O 
O 

00 






a. 



bO 



Lu 

o 



i cu co -rH 

. Q. 0) f\ 

: o a. 

i 0) J) 

J. 4-J 4J 10 

: 4J -H -rH 

; O i-h 
> t? n 

CO LU 

1 CU LxJ 

/ o -cc 

• J-. 4-> LJU 



I 4-J 

: o. cj 

1 3 u a, 

O 4-J 

i _•< E ro 

I -rH O Ct 

1 ri, l: d 



en 
c 



Q> O 


c. 


■^ 4-> 


u* 


c 


h^ 


h a> 


C 



O r; 



1 


4-> 


X 


c 




o 


T7 




CD 




O 


r-l 


rH 


CU 




u 


•o 




C 


cu 


ro x: 



X + 



cl 



>; 



DC UJ CC -C 

H UJ X h >- h x -- x+«- 

.Oucc -Du+£U- -H>Q_ . a. + 

: u; u, ct; ui :: w cc cc v t; 7 cr 

.. cc c» c_"i cc f-j c: Q ci [ -i < h < 



• «i: 



- ^-: cc cc -r < «r - 



; X U < «i ,- ci: cr c: <•: <; cr ^ r,- 

i u ci j ci u i ; u u u « j n cr 



tr 




X + 


+ X 


a- cc 


cc 


-CC —1 


■O DC DC - 


i- f- 


XH 


t- (— CaJ 


Cj (-, x £-, ^ X 


i a. 


-Cu 


+ DuU 


jj CU -CU + - 


X ^u 


cc^ 


CC >^ Ul 


4-J U-l CC IxJ cc cc 


t-- 


U 5-^ 


Cj (- CC 


O DC U CC Cj <r 


4-J 


C_) c., 


CJ CO Lju 


■DuOLuUU 


<r <r 


<S < 


q «- <r <: < 


X 


<x. <--: 


<£ < «a: 


'.<<<X01 


0) UJ 


QH 


Qhcr 


Q.C-J t- Q H Cj H 


o 

4-> 


^-J 0; 


-» co a 


3 ~j CO j co -J oc 






CJ —1 


CO 






CJ LU 


0i X 






u u 



3 cu c/: cj 



. x x co 
i Q Cj t- 






Cj C-» 

<£ <: 

I -J LU 



w a «< 



CJ CJ > 

*t r- 

lu o 

DC CJ 



<: 
^ LU 

r; cc 



, o 
u 





4-> 


^ 


CU 


•H 




c 


cu 




c^- 


CO 


o 


O V- 


rc 4-j 






JZ 




E E 


• r^ 


..H 


p 


a-rH 




fj 


4-J 




OOF 


r-H 


a 


O T3 






a 






J JO 






4> e 


■o TD 






C« 




ro ro 4J 


•o 


o 


(U ro 


cu -o 




a 


o 




ro 


CU 


4-J 




4-j ro 










4J = 


^ 




= 4-J 


4-J 




4-J 


u. 




3 ^ O 


e 


>> 


^ CO 


o -c 




cu 


•H 




a= x: 


•rH 


r- 1 


Z -rH 


t: e 




on 


CD 




c: 4-j 


rH 


CJ 


rH 


ro 






a 




•H CJ 




> 


C 


2 


» 


- 






x: e 


ro 


•H 


x: cu 


cu - 


"U 


4-> 


•D 




4-J 4-J U 




CO 


4-J sz 


e cc 


c 


CO 


0) 




X 3 


CJ 


u. 


4-J 


< 


3 


•rH 


4-J 




cu o J- 3 


N 


3 


o 


ro cj 


O 


l—i 


4-J 


• 


C 4-J QJ 


•r-i 


O 


4J cu 




u, 




o 


e 


J- 


rH 


cu 


N 


a» cu 


c 


CU 


•o 


^ 


0) rH 


ro 


^_ 


i~\ -H 


4-j x: 




x: 




3 


x: ro >» 


• r-t 




10 rH 


cr 4-j 


a. 4-j 


4-J 


4-> 


4-J 3 rH 


4-> 


£— 


3 CO 


o 


o 




CO 


CU 


cr a 


•H 


<: 


cr e 


O tu- 


o 


ai 


u. 


u, 


a o p 


C 


Lh 


O -rH 






N 






3 -H 


• rH 


CC 


c« 


rn 




•rH 


c« 


•o 


4-J CO 






4-> 


n; rH 


-a 


l—i 




c 


.* -rH 


- 


r-l 


■r-i 


r-H 


c 


CD 


CU 


rc 


o 


CO 


r-H 


CO 


-•rH 


CO 


e 


x: 




•H CO o 


cu 


n; 


co cu 


O c« 






4-J 




a.H e 


>> 


o 


■•-* >» 


c: 




C« 







{- rH h- Z Cl CJ 

^<hn <3 a Ou^: 

c5ccLUi-tC:cxO< =>LU 

h<cch<<uh — ih 

< a. a to lu c u co cj co 

cc_icc_irccccc_i cc^j 



ccxuKcxcicr 

CO cu ZZ 01 Ci Cu LU CO 

—3 cj a -j c; c j ci -a 



< cc 

CC CO 

CO -a 



a 
o 



—i cc 
rH Cj 
^ CJ 

cu o 
x: x: 

4-J 4-J 



o-c 

a to 



CO cu 

-l£^ 



O -4-J 

Ch _j 10 



o x t— X 

ro ra o x cu zc 

4-J DC co ^ co 

CO .* LU ZJ E- ^) 

o rvi cu co cu 

or co 
x: 4-j 
4-j coxcexxxcu 

Q CO Cj LU LU ?T 

a4J jt-iQQ^ 

3 CO 

Jw H 
4-J -rH i_: 



■O bC-H 
cu cu ro c« 

j tao. 

C I 

•rH m -o co • 
o o «o 
a. -d 4-j a> 

C 4-J u. 
4-J CD O TO- 
CO TO TO 
•H - CD 

rH rV) CD 



cu a. 

4-> O 

e 4-j 



a o 



3 


o 




TS 


to 








CO 

3 




P 


fc 




^ 


a 


o 



CiJ ** 

o a. 

fjj ts 

Kg c 

a o 

3 Si 



3 



r- O 
Uj -Q 

-J H^ 

-^ °i 
^S > 

C V4lt, 

Q £ 

Uj O 

■a o^ 



CU CU V- 


^: 


ro 3 




c -h a n. 


V- 4-J > 4-J 


c 


TT ^ 




•H<~ O 


1 cu cu cu 


•r-i 


Q. 




o a a 


<C r:0 ^ l_ 


- 1 


«- 3 
+ X X 




4-> 


-^-1 DC 


cc 


CC -DC 




TO 


WW H 


E- X 


H «- H X «- 




C U. 


CU CJ Cu x 


cu - 


CU + CU - + 




O O X X 


LHhOu 


— 1 cc 


_l cc ^ cc cc 




4-J CU Q. 


1 LU LU CJ 


IU CJ 


Loj Cj E— <! <C 




4.) C C C3 


X O CJ (- 


CJ o 


cj cj co cj cj 




CO -H Cu Cu 
•rH o 


CO 


<r < 


ca en «=c cj 




rH a 


V_ CC X cc 


*r: <c 


< <C X <c <c 


C/0 


DC cu 


CJ CO E- CO 


CJ H 


QhQh^ 


H 


<« e c/0 3: 


JO -0 CO -3 


^J GO 


^jt/j JOj CO 


cc 


t— l_ *~3 —j 


JO 








O 3 


O CJ 








4-> CO 


rH CJ 








CX CU r: 


o <c 








O u. LU 



August 1979 © BYTE Publications Inc 143 






,-h 4-) e 



4-> 

XJ 



re p 

v- <o o- x: 

O C rH 4-3 

a. co — 

E k- 3 3 

4-3 jr cd c 3 

~j> k. o 

C (D 4-) 

L 4JT- CD <L' 

I tU O k- CJ 

X O 

*J4J -XJ 

cd e to a; 

> h u a^ 

(0 O -rH O i-H 

to o.t~ e re 



X) I 

I M 

<-< j: 

XT <0 4-3 

4-3 3 •-• 

■r-< cr y 

3 c c- 

CJ 3 

C L v. o 

k- CO 13 CJ 
3 XT 4-) 

4-> cj o a; , 



cy 



O 



d. o rii-i 
o a> o i-i 
>> to cj ro 



t- h- *- 

<\j uj iij uj 

m- a. cc cc cc 

y p- x cl cl x cl 

f-- s- -s; 2- -;-, 

x x o cj cj *- CJ 



N 


o 






a 




CO 


E 






QJ CC 


cj 


4-> 


H 


k. 




Cu 


3 


E CJ 


jJ 


k. 


Cu 


CD 


O 


C/3 


k. 


<~ 


4-3 


~ 


o 


(U 


a 


> 


to 


QJ 


ro 


<u 


x 


10 


I- 



-cc s: *^ cc cc 

F H X H 5 F- r- 

ro cu -<r. G5;a a. j: 
4->E-ce_jHcee:2:oce 
ra tO < n Li uj CJ < cu O 

j U 2 Q: Ml n t/1 L 

•a 



s 




CD 






J- o 




40 






O 4-3 

c~ 




O 
















3 a> 




T 






CD 4-3 




C 






cj cj 




•<h 
















cj o 




O 






u a 




4-) 






3 










4-> JZ 




F 






CD 4-3 




i_ 






1- -H 


k- 


O 




Y— 


3 


•rH 


C_ 


r_ 


CO 


■c 


CO 




a> 


r~l 


cj ^h 


Q.C« 




_J 


CO ,-H 




O 


-V 


Cm 


CD 


T-" 




•—* 





^H CJ 


CD 4-3 







•— ' 


4-3 


•rH 




U F 


4-> XJ 


Q_ 




o o 


o 






D 


4-3 


XI 


k- 


3T 




3 X 




CD CC 


r 


CD 


C-, X> 





cj 3 


O 


k- 


u_ 


-?-■• 


CD 









ro 


co cj 


cc 










<=: 


1 




<!■ 


c; au 







4-3 3 




«— i 




■ 


CO 


c 




•- 


0- 


O 4-> 




4-3 


'0 




o a> 




CD 




rt 


rH tO 




to 




1—: 



o :r I 

4-3 <C I 

re r: 1 



*h + cr 

cc _j cc »— 

& « c=« <r 

c o cc: 



CO CD 
T. to 

=) -rH 

r= 3 

U CD 

r. 
t« 4-) 

00 



CD 4-) 


-V 


> CO 







• 


e 


4J .-H 


3-rH 


CD 


O U 


to 


X> 0/ 


cc 


E 


4-> f- 



4-3 CJ 4-3 


O-cr, 


c 


to 


■rH t0 -r-( 


CD r-< 


3 


X) 


QT-.C bC 


e 3 -rH 


1— 1 


v_ 


•H 4-3 -r-i 


O O 3 


ru 


ru 


XJ XJ 


-C r-l JO 


> 


to 


i_ 


4-3 rH 






CO O CO 


cr ► 


4-3 


v_ 


t£ 


cd :.; 


t~ 


O 


4-3 W 4-3 


V- 4-^ 


■1-1 


C-H 


O -rH O 


1 


x: 




C X5 £ 


E c: «r. 


to 





23 ZD Z3 

n =r r-: o ?: 

X o C-J O X Ci CO CC 

C3=Jsaj^CQ«-CU^lju 



I 

E 

o 

4-3 <~ 

o a» 
=r cj • 

-4-3 X • 

-X) C t3 



O CJ — 1 

r>> i_ x, 

- 3 3 • 

C\J O 4-3 U 

»H Q 

•- i- JZ 

CD 4-3 

4-3 O C 3 

•r-( 4-3 CO 

X) 10 



cc cc 
CJ O 



h- c-o y is. c/j uj m :z co u i: r: h a ^ :: cc h 

cv j O rci h a u u h rj h h t/: j h h tn k 



roXXXUJXXXXXc/': 

OQCL^QHQHaH 

CD ^j ^_i CJ CO ~j CO „-( ci _i cn 



(0 X 

Q 

CD ~-i 



c=.x x cc 

CT2(-Cn 

-a »-< cn ~ : _; 



<r <x <rr -x 
\— tz* v- cc 

.-. CC _' CO |X; 



to X) 

I 

CO CD 

e 
to o 



3 «=c <-c < n ccj <=: cc <r dt <s < 

X<CQh^HhUJ«:C^X N j^c:j<XutOut/l 

n n a d j >: u o) 2 a h o o f) o o h Q u h u h 
c ^1 u a u en [■ ■ ffi u o) k rc: < fc a to j u cc co k 



x: t 



CD rH 

d' o 



4-3 m 
cd >r. 

u. ZD 



* * Me CJ 



5 



3 



o 






CD 


a> ro 


4-3 






UJ. 


cr: 


rx 


x: a 


ro 






u: 


10 


O 


4-3 to 


(~ 






Q. 


CJ rH 

■r-( CO 


c: 4-3 


n 









r-H 




■rH to 


c >- 








r; 


CJ 4-' 


>~ 


•rH C 1 


CD 






X) 


CJ -r-» 


X 1 -rH 


(0 4-3 


E 


v_ 




O 


•rH 


a ^ 


4-3 ro 


(0 


ro 




rH 


j ' x: 


a. 


c u 


c 


x: 




:.? 


3 CJ 4-3 


>> 


tv 











O ^ -rH 


4-3 4-3 


O C.4-3 






CJ 


J- uj •* 




a- 


V 


—3 




•rH 


UJ 


E V- 


to to 


<D 


X 






k-Ci- c 


c a.- 


>> 


rH 


O 


• 





ro »_ 


4-3 4-3 


ro ro 


r—i 


c: 


ex 


v_ 


x: cj 3 


ro c 


3 


O 










— 1 4-3 


■— t 


rH CJ 


6 


4J 





4-> 


c 


4_) rv 


ro :*: 




1, 


l—t 


(0 


4-3 4J» V- 


x Ci. 


bJ 





rj' 






CD -r-( 


(T 


CJ IjJ 


C" 1 




X5 


T"? 


or x> 


CJ CD 


is. 0- 




- 


CJ 


c. 


<D C 


> 


LJ 


- 


to 


CJ 


ro 


Q' > ro 


1- ro 


La-! tO 


r\ 








to ro 


to 


CU -rH 


C 


>> 




" 


3 to 



Z ID 

— F 



Ci, (0 r-l 



ro 


ro 


a a 


to 


to 


4/ 


CD 


F 


E 



4-3 Zj£ CO 4-J 




■rH 





x: 


re to 


rH rH I U C O 




3 


CJ 





a 


CO 3 UJ ro 










T-! >> l^ 


■rH E CU CJ U 




0: O- 


F 


to 


c 4-3 ro cd 


ro to 




CJ 1- 




■r-i 


rc n.x: x: 


<d 4-3 j) oj: 




ro 


4-3 


XJ • 


C= CJ 4-3 


Q. CJ 4-3 to CJ 


r- 


X) -ro 


ro 


4-3 Cl 


* CD 


to ro 


k. 







ro 


CO CL 4-3 


r-> "C". T) 4_) 





r-H 


TJ 


>, 


CD O .C C 


CO 1—. CL to X 


4-3 


(— 1 l—i 


c: 


an 


V_ 4-3 4_) CD 


O 3 0.' 


ro 


ro ro 


O 





ro £ 


4.J C> t: L 


x_ 


•>H 




O X) 


4-2 CD CD 


.^t - c: 


ro 


- O 


- 


CJ 


CD CJ I- k. 


- to ro 4-3 


CL 


tO CD 


to 


- rr. 


F. -h O 


to ro c 


CD 


a; a 


<b 


O 


(0 O 4-> c 


■<-* CJ >. CU) 


to 


>> to 


>. 


CJ 


C Q. 10 -rH 



a 
a 



c: 


F 












n 




>> 


O 












4-3 




to 


CU 








c. 




ro 




a- 




p 






P" 




iii" 


F 


x: 


CD 


b 






re 




c 


O 


F 4-> 


x: 


4-3 




F 


ro 


cc 


•rH 


4-3 


k. 


43 


ro 




k. 




H 


-P 


ro 


l_ 








O 


to 


Q_ 


CO 




(^ 


q 


3 




C-, 


- 


y: 


•r-l 


4-3 


t« 




CD 






E 


<t: 


X 


X 


rj 




CJ 




t« 


O 


li*. 


CL 


CD 


•rH H 


4-3 






O 


4J 




I 


e 


k. CO 


c 


CD 






ro 


4J 


O 




a. h 


•iH 


XJ 




4-3 




ro 


k. 





E ~j 


O 






.— . 


CD 




Ci 


4-3 


3 CJ 


O. 


4-3 




X) 


x: 


4-> 






cj u 




to 






4J 


ro 


CJ 


c 




O 


3 




k. 




x: 


k. 


n 


CJ 0: 


4-3 


F 




c^ 


O 


*-) 


3 




k. XT 






s= 


x: 


+J 




4-3 


O 


3 4-3 


CC 


- 


O 


k. 




XJ 


V 


^n 


4J 


H 


4-3 


4-3 


O 


v_ 


4-> 


k. 




a. CJ 


Cu 


to 


CO 


1 


c> 


■rH 




- 


k. CO 


E- 


— H 




3 


4-3 


3 


— . 


rH 





1— t 


4-3 


O 


c 




4J 


n 


to 


_i 




X 


1— 1 


■r-t 


CD 


•rH 


3 


■30 




<~ 


CD 




O 


k. 




CT 


- 


b r . 


ro 


e 


k. 


a 


(V 


X) 


cu 


•« CD 


CJ 






ro 




a. cj 




a. a 


•fH 


XJ 


4 j 


CD 


4J 


F 


3 


4J 


cd ro 


10 


CJ 


CU 


r-- 


0) 




ro 





>» CJ 


3 


CD 


bJ 


O 


a; 


O 


c~ 


CJ 



>> CD 

r- 1 E 





Q.4-3 


jT 




F' 


ro 


U 




CD 








4-3 


1 








c> 


3 




r- 1 


CJ 


4-3 




CD 








k- 


4-3 


4-3 




1 


ro 


X 


yx 




(L 







4-3 


CJ 


v_ 


CD 


CJ 




• 






J_> 


C-i 


ro 


ro 


<D 




to 


a 


CO 



a. 

CU 
CJ 
CJ 

o 

&, 

in 

bo 
^3 K 



tv^CC CC Ci, 

CD f-H p- O CJ ZJ 

Ldny cj :•: c_j ^_i 

1 cj t: u; oj *r < o. 

x cu cc uj <•: :r ui uj 

t: ^ cu *. u c- t". 



k. <r < 

O X X «^ Cu {- tr.: < 

im tj h q r: o ij k 

_i c: -1 cj cj r. -1 ci: 



s 

2 = 



•rH cj s: 

H UJ 
«.-. UJ UJ 

ro r.-i a. 



o u cj «• u o u o cj o cj cu 

4j>M^_3Q^:c-iCjtij:^-ii:>Mr3 

it a. cj — 1 <c <c «c c\j -x c^ <r: c. ^j 

CJ CU Ci ( J CJ UJ «~r cj cu cj c."» CJ 

t*-. cj c: cr. cc tv; cc ^ co c/:- co cj cc 



ro -c 

:; e m iu rr. «•- c Q- y (t a n: < 

co ;'] jj; cwrr, co :_ —1 c/j uj oj k: 

4-3 co u?. f2 cj c 1 . cr. cj cj ctJ 1 J ci co 
o 

CD 



4.JJ CC CC 

QPCU CU 

CD CJ X CJ 

u. cu ~ cu 

1 co a x.i 



U, X «< X X CO 

njjJhzhh 

£ J C, H t/j CC 



Q.CJ 
c >- 
O Q- 



ro ^-1 

W CJ »-^ 

10 > CU - 

•rH =fe C/J =^ 



ro 

JZ 

CL C? Cu CO 

c_ i>. uj :r F- 

■•H CJ CJ CJ CC 



o rr 

CD CJ 



cr.. > t— cc r-: >" r" cc cu 

cj >;■ rjj) o j H h- x x en h { •« x — 1 

>h D ;: n a. <t « •> rr <x a. - ;r 

Cu 7- E - -j H *-< cc a: tu cz; [— rr; -rr: 

O ^ ti) CO CO U ) < < " J CO Q u 

u cj cc o j :: u cj cj o _j cj c: 



F rx cr: D-. r_) x x cj X x x qc cj x x «-•: 

l u c i to u a (-■ ui u u a :: iij a n (•. 

CD CJ CU -5 * ^j CO CJ ^j Q _j CJ CJJ _i _i CTJ 



rH O 

3 IT 

cj <: 



; '.:- -- X X 
r- «^ " - 

»x::(Jr- 



4-> X 


*t t .3 


10 4-3 XX 


•"-Jj "^ 


n E— cj 


O CJ1 


cd ro u. cj ^j 


—1 _i 


k. 0' 




ro 4-3 x: 




cc-rH xj l-: 




cju 0< 


CU 


ro 1 rH r- 


^J 


c> rvi cu 


CU 






* * Me O 


CJ 



144 August 1979 © BYTE Publications Inc 



(a) (DEF PRINT (LAMBDA (F) 
(PROGN 

(PRINR F) 
(PATCM MEWL INFO 
F 



(b) 



)) 



) 



(DEF 



PRINR 
(COND 

((ATOM F) 
(T (PRCGr 



(L.AM5DA (F) 

(PATOM F)) 



(PATOM 
(PRINR 
(PRINL 
(PATCM 



LPAREN) 
(CAR F)) 
(CDR F)) 
RPAREN) 



)) 



)) 



(DEF PRINL (LAMBDA (L) 
(CCNP 

((DTPR L) (PRCGK 
(PATCM SPACE ) 
(PRINR (CAR L)) 
(PRINL (CCR D) 
>) 



)) 



) 



* type 


out a 


form, ful] 


y parenthesized, and then go to a new 


pr hit 


JSR 


PUSI1X 


save X-reg on stack 




3SR 


PRINR 


simply pass the buck to recursive PRI 




LDX 


CRLFAT 


type out CR/LF 




DSR 


PATOM 


using PATOM 




JMP 


POPX 


restore X-reg and return. 


* type 


out a 


f o r 'it , with 


no CR/LF 


* clo' 


bber s 


X-re* 




PRINR 


JSR 


IS A TOM 


is the form an atom? 




PCC 


PATCM 


yes, pass the buck to PATOM 




JSR 


PUSHX 


nope, stack the X-rer, 




LDX 


LPAFAT 


type out a "( " 




DSR 


PATOM 




PRINL 


JSR 


TOPX 


restore the X-reg 




LDX 


CAR,X 


type out the CAR 




GSR 


PRINR 


(recursively! ) 




JSR 


POPX 


restore pointer to the dotted pair 




LDX 


CTR.X 


advance to next dotted pair in linked 




JSR 


ISDTPR 


is there a next dotted pair? 




3CS 


PRPAR 


nope, jo type a " ) " 




JSR 


PUSHX 


yep, save the new X-re"* ag?in 




LDX 


SPACAT 


type out a space 




[kSR 


PATOM 






BRA 


PRINL 


one! loop around. 


PRPAR 


LDX 


RPARAT 


type out a ")" 




BRA 


PATOM 


and return (through PATOM). 



1 ine . 



list 



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 
"]". However a simpler RATOM is quite enough for an 
initial implementation. To make this exposition simpler, 
only single digit numeric atoms will be allowed. Certain- 
ly in an eventual implementation, multidigit numeric 
atoms, optionally preceded by a minus sign would be ac- 
cepted. 

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 en- 
countered. 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 defin- 
ed 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 compris- 
ing the LISP interpreter. It takes a single form as argu- 
ment, and types the value as a fully parenthesized LISP 
expression. PRINT simply calls the more primitive func- 
tion PATOM when it is given an atom to type. Other- 
wise, PRINT types a left parenthesis, calls itself recursive- 
ly to type out the elements of the list, and then types 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 se- 
quence, 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 argu- 
ment evaluates to a dotted pair, and returns NIL other- 
wise. 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 mat- 
ter 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 L)) 
(PRINL (CDR L)) 

)) 

((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 accor- 
dingly. With symbolic atoms, PATOM simply types the 
null-terminated name of the atom. With numeric atoms, 
PATOM must convert back from the internal represen- 
tation of the numeric value, to the string of ASCII 
characters which represent the number. With NIL, 
PATOM simply types 'NIL ' . Listing 7 is a simplified ver- 
sion of PATOM with numeric atoms of only a 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 (LAMB- 
DA (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 ob- 
ject 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 complica- 
tion 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 for- 
mals. 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 call- 
ing 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 ex- 
amples 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 bre- 
vity'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 un- 
EVALed. NSUBRs are simply passed the CDR of the ori- 
ginal function call list, instead of a list of evaluated argu- 
ments. Similarly, NLAMBDAs are provided with only 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 argu- 
ment 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 



qj 2; 

i- cc 
w o 



<C QJ 

cj .o 

•H O 



bO E 

"■» o 

O ~ 4-> 

4-> >» ro 



10 4-> 
QJ l_ rH 



ro qj 
bO 
a; o 



4-> O 4-> 3 3 rH 



qj rH .-i i_ i_ - -h 

> -rH TO w (0 4-> 

ro 3 > to qj cj 

10 CD -H >,..H 



QJ Q 

•o CD 

cj «x 

O J 

4-> L. 

o o 
cj <~ 



j- sz 

QJ 4-> 



to to 

3 4-> 

CJ 

< OQ) 
Q 4-> Q. 

cu x 

2! l_ QJ 

*c o 

J U (1) 

I- cj 

QJ <V -r-t 

SZ -P = 

4-> 4-> 3 

I- O 

>» O V. 

,-h a. 

Q. QJ J* 

a. i_ ro 



>» - cj ro ti- 



ro 



QJ 



cc <i:«3: _ 
<: >co : 

UUJHL 



> 3 

TO O 
CO CJ 



E X 

o 

4-> CL CC 

CO J <£ 

I Lu u 
>» 



o c~ 

bO<i: 

C- Q 

cc -CO 

CD to 21 

Z> QJ <d 

CO >»_J 



O bO.O 



bO 



E- CO E- 
<C 3 <C 
CC CO CO 
CD ^J S 
Z> > <t 
CO UJ _) 



-~j o 

QJ > 
>>UJ OJ 

OO 

t: •»-> co 
«* 2: 
cj cc 
O cc 



• J» CJ 10 rH 



O l i 

I -rH 3 =r 

. 4-> 4-> 

> TO CD QJ 

3 i- i- 



QJ TO CJ 4-) 

I. O l. > > W 



1 




3 O 


X 




O j-> <~ 






I- QJ 


cj 




.£> l_ "C 


•iH 




3 QJ 
CO 4-) CJ 


4-> 




CJ O 

QJ -rH -rH 


3 




•o o +J 


to 




o ao 


QJ 




CJw c 






3 

QJ 10 <~ 

cj bo 


4-> 




•H \- <~ 






r. ro o 


3 




o 

TO <♦-« CC 


CJ 


• 


E O CJ 


L. 


T. 


U 


3 CC 


QJ 4-> 


4-> 


O 


SI 10 4-> 


QJ Lu 


4-> -rH TO 


V- 




r-» 




X3 


rH 4-> 


X3 


CJ 


rH _J CJ 


CJ 


TO 


TO <C -rH 


TO 




o > o 



CC 4-> 

CD QJ 



> -H UJ CC 



rH ?:x X 

3 CC CL CL D« CL 

to O O ^J O — i 

CD U* CL n: CL Lu 



cl cl cc 
O -i o 

a- «c Lu 



to CO 



rH TO **-* 



CC T. cc 

X cc o cc 

rH <£ - u) E- UJ 

^O-CC j< J 

b0> — i Q > CO > 

UUJL.UUJH UJ 
TO 



L. E 

4-> QJ 
W 4-> 



TO QJ 




E 


QJ -O 


E TO 


O QJ 


o cj 


cj to 


4-> 


QJ 3 


TO 4-> 


W 


CJ 


QJ O 


4.) -H 


U O 


O l_ 


CX<r> 


cj a 


M 




i- «~ 


(« o 


O OJ 


■H 4-> 


<« <r> 



I- O J= — 



cc cc 

X cc cc 

«— UJ ou 2". <cs:x 

ccxrvjjxojxcca-cc j 

<C ««r>> *<r>> -O C O > 

uo^sijj'-%ujf\j|j - a-[x 1 uj 



3 bO 








to 


TO 




>> 


-- 1 E 




O U 








1—! 


E 




i—t 


u u 




l_ TO 








TO 


L. 




QJ 


TO O 




n 




« 




F 


o 


<r 


> 


l-<~ 


• 


3 -o 




— i 




i_ 


<~ G 


■iH 


o 


J 


to <u 




<C 




10 o 




en 


to 


a<« 


*r 


4-> ^-j 




> 




b0<^« 


Su, 


%' 


L. 


E o 


> 


^ r-l <C 




UJ 




L. 


o <r 


3 


QJ 


UJ 


>-* 3 > 








ro <~ 


<« ^j 


O 


4-) 10 




TO tO UJ 




E 




o 






QJ 


QJ 


E 


CJ QJ 




o 




<« 


to 


<« 


L. 


E 3 


O 


l_ <~ 




u 




o to 


QJ 


o 


>w/ 


U rH 


i_ 


O 


bO 


t« 




QJ 


3 






O TO 


bO^ 


^ -o 


QJ 




^■v 


4-) 3 


rH 


>• 


>.<« 


QJ 


O QJ 4-> 


L. 


£ 


• 


10 rH 


TO 


TD 


"O 




V- CJ 


c to 


1 


U 


• 


•H TO 


> 


O 


o 


4-) -O 


1 u 


tO u -H 


X 


3 


• 


rH > 




X) 


A 


rH rH 


X 3 


^C 3 rH 




4-> 






3 






3 O 


4J> 


O 4-> 


QJ 


QJ 


"> 


QJ "O 


QJ 


o 


QJ 


to 


QJ QJ 


o qj a 


i_ 


U 


bi 


4-) rH 


CJ 


4J> 


4-> 


QJ QJ 


V- l- 


rH U 3 


O 






TO O 






TO 


I. v- 


O 




4J 


X3 


^> 


3 


QJ 


4J> 


3 


o 


4-> -O 


CC QJ OJ 


to 


CJ 


v_x 


rH 0; 


U 


CJ 


rH 


QJ 4-> 


10 CJ 


CD > OJ 


QJ 


TO 




TO > 


O 


■iH 


TO 


> to 


QJ TO 


3 TO l_ 


l- 




< 


> TO 


4J> 


o 


> 


TO QJ 


V- 


CO 10 <— 






Q 
CD 

2: 


cu to 


to 


a 


QJ 


to l_ 




CO 




E- 


«: co > 


o 






H 


H 


-J 




•— i 


j 


-1 CO 


CO 


X 




CO 


H 



^<2CC » — I CC X 

J J jcucc ^cu^a-_) 

CJ>>>^t >—!>—!> 

OUJUJUJ U,U UJLu.tjJU.UJ 



X CC CC u o 

a co co u si <c 

^J CD -a CD 10 Q 

CD 

bos: 

QJ <C 

I- ^Jj 
I 



3 



X X 

. E- Q 



xc_>xc_y qjxcc i_ uxccxccxccxxco 

CL.UJCL.UJ QcO O E-COE-COE-COE-QE- 
OCDuCDrHJ-3 CJCO-aCO-acO-acOJCC 



O 



TO 
bO 

QJ CC 

t-\ CC 
r-t UJ 



rH l_ 

TO 3 

L. QJ rH 

O i_ X 

CJ J 

> 

* * UJ 



ccXXujcct)xx<CLUJ<CLUJccXo:x< 

U C/J QQ— i(/]UUDQV2Qr2(/)hnacc 
n 



• CO 
> ~J 

> 



:ccccxx ccxccx< 
icocoQq coE-coacc 

>-3-3^Jj^J -3CO-3^-JCD 



rH 21 

TO <C 

> -J 





























QJ 












3 
O 
CJ 












5 




















t 






CJ 

•r-t 












L. 

o 










QJ 




















Hi 






4-> 












Cm 4-> 










CJ 


o 




















r- 1 






3 












•rH 










•H 












^ E 










ST 






o 












QJ X) 










4-> 










4-> U 










r 






L. 












4-> 










3 


_•*.» 










QJ O 




























>t TO 










O 


"5b 










to <~ 


F 








bO 


QJ 




L. 


QJ 










n 










• i- 














O 








e 


E 




TO 


F 










4-> 










3 


^ 


-H 








4.) <« 


4-> 








•H 


•r-t 




SZ 


TO 










i_ tH 










O u 


-Si 


TO 






O 


■r-t O 


TO 








L. 


4-> 




V 


CJ 










QJ 










CJ TO 


CJ 






L. 


A 










4J 


















TD 4-> 










SZ 


"bb 


•H 






QJ 


4-> 


t« 




E 




to 


TO 




4-> 


<« 










L. l« 










L. O 


•S 


E 






N 


J= -rH 


O 




L. 










3 


O 










O -rH 










O 


to 


L. 
QJ 






to 


bO-O 


QJ 




o 




T3 


4J 

TO 




a 


L. 










s: 

3 to 




o 

L. 


O- 




<~ 4-> 

3 


2 

5 


4J 






•rH 


J= 3 


E 








4J 






L. 


QJ 










O 




QJ 4-> 




= a . 










w o 


TO 




J 




TO 


QJ 




o 


4-> 










rH -O 




N 


•rH 




* 21 


CJ 






F 


r—t 


CJ 




r— 1 


<^> 


CJ 


CJ 




4-> 


o 










CJ 






bC 




= J- O 


3 


O 






i- 


E 




• 


z 


L. 


•H 


O 




•r-t 


TO 








4-> 


4-> TO O") 




L. 






O E- 


to 
to 






i_ 


O 


O v- 


4-> 


4J 




o 


E 






e 


L. 








3 


TO 




o -o 




4-> 4-J <X. 


QJ 




QJ 


t« 


4-> TO 


CJ 


3 


L. 


4-> 


u 


10 




o 


TO 








O 


-C\J 




c« 






3 -H CL, 


E 




4-> 




TO QJ 


•rH 


o 


o 


TO 


QJ 


L. 




E sz 








1 


JiC QJ •» 






QJ 




O CJ 


-C 


TO 




TO 


t« 


r-t 


L. 




t« 


CJ 


4J 


TO 


L. 




O 


• 






c 


O 4-> «- 




QJ 


rH 




O E 


cj 


CJ 




rH 


•H 


O O 


Q.4-> 




•rH 


1 


jr 


ro 27. 




-o 






a 


O >» 


O X) 


bO 




QJ F O 


^5 
3 










•r-t 




•rH 


4-> 


E 


1— 1 


oro 


4-> 


c 






>» 


H£l A 




O 


CJ 




a u 


4-> 




L. 


- 


L. - 


O 




c 


L. 


rH 




o cc 


X 


3 






4J> 


1 


4-> 


o 


•rH 




>> o <~ 


3 




o-» 


QJ E 


4-> 


QJ 


•rH 


QJ 


3 


QJ 






QJ 


O 


bO 


* 




>. »_ 1 


•rH 




to 




4-> 4-> 


O 


O 




<~ n 


E O 




a 


L. 


4-> 


CJ 


sz 


rH 


QJ 


CJ 


L. 


QJ 


CJ 


E 


rH QJ 


X) H 






CJ 








2": 


3 4-> 


L. 


>> 


a 






4J 




JZ 




TO 


L. 


i_ 


O 


CJ -u -3" 




r—t 


TO 




>»4-> »- 


QJ 




bO 


•- 


CJ TO 


QJ 


4J 




r—t 


TO 




3 4-> 


O 




1 


3 


4-> 


O L. - 


/N U 






rH -H 3 


a 




QJ 






4-> 




o 


r-t 




4-> 


C 




4-> 


a 


X 


4J> 


TO 


O on 


1 


CO 


CJ 




Q, b0 4-> 


h. 


>> 




L. 4-> 


4-> CJ 


CJ 


o 


4-> 


3 


O 


3 




bO 




o 




QJ 




*■ 


1 


<t 


TO 




E -rH QJ 


a. 


4-> 




1 


c 


CJ -H 


•H 


bO 




CJ 


4J 


O 


rH 


CJ 


QJ 


o 


QJ 


L. 


O 


. 3 c\j 






SZ 




•Ht3 U 






X 


•rH 


•rH rH 


o 




bO 








■H 


•rH 


O 


r—t 


L. 




•r-t 


?: o 


o 


c 


■P 




10 


~ 






L. 


L. O 


CL-O 


C 


a> 


4J 


QJ 4-) 


to 


CJ 




o 


TD 


L. 


CC rH 10 




•H 






■u "C 


V4_^ 


bO 




<b 


a 


Q..O 




CJ 


•rH 


j= 


CJ 


Q. 


CJ 


3 


TO 


ID 


4-> 


C 


QJ O 4-> 


4J 




QJ 




-cj c 


o 


QJ 




> 




E 


4-> 


TO 


L. 


4-> 


•H 


>. 3 




> 


CJ 


to 


TO 


f= 


LU 4-> -H 


•H 


X) 


V- 




10 QJ TO 




L. 




TO 


o 


O >. QJ 




4-> 


» — ' 


o 


4J 






T3 


TO 


QJ 




3 


QJ X) 


n -c 


o 




QJ tO 


C 


1 




to 


no 


bd to 


bO 




10 




a 








TO 




L. 




CJ 


CJ bO 




cu 


E 




>> 


o 


X 
















































*2 


CJ 






H 


f- 










>- 




2 












O 


•o «- 










2 


cu 


•H 






<I 


<c 


X 


UJ 


- 




< 




S 






UJ 








QJ + 










Z> 


p 






X-J 


s: 


•> 


s: 


-J 




2i 




Q u 




y 


T. 




CJ 


J- 5. 








(\J 


O Q 


•Si 


E 




CC 


H 


r> 


cc 


*j; 


H 




JXhh 




<t 


cc 




o 


OCC 




o en 


s:* E- E- 


L. 


bOO 2 


2 


<x 


z 


z 




rH 


. 


<f. 3 




p". 


O 






4JO 


o 


»■ 


- 


2 


- Z> «3T 


o 


QJ Lu CL 


CU 


o 


a. 


• 


o 


sr 


O CL. 0u 




Cu 


Lu 




to 


tO Lu 


^t 


s^s 


% 


Cu 


% cu cu 


v^> 


t« 


L. 
































L. 














"a. 


o 


1 
X 
































QJ 

> 


>> 

T3 












•iH 




































TO 














F 


to 


















<£ 














T3 


aj <c <c <c <c <j: 




<c 


to 


O 


QJ x cr E- x 


X 


<c 


o 


CD 


X 


<t 


accx 


<C 


X CO 


QJ 


u<o:uQ0luj<q:< 


^ 


4J 


> 


E- UJ 


HU1Q 


cc 


o 


o 


Q Q UJ CO 2 


CC 


a e- 


•H 


rH a co o a 


JU 


-j 


Q CO cc 


TO 


L. 


CO CD 


CD Q 


_l 


CD 


Lu 


Lu 


^Jj 


^_i 


CD -3 


n 


CD 


J CC 


<« 


ro_i^«3:<i:c_>co^Jj-3CO 


C\ 


CJ 


QJ 

to 
































r-t 


E 












CXJ 

•S 


QJ 


QJ 












j-; 




H 












^ 




a 


L-H 












> 


L. 


2: 










< 




<x. 


UJ 










r> 




E 


o<c 












•rH 


ao 










s 




J 


T. 










Q 




•rH 


U-> 2" 










c\j 


.to 


bO 




H 










J 




H 


<x. 










H 




to 


z5 










21 






<C 










t-H 




II 


zz 










< 






"nr. 










2 


^J 




* 


Cu 








* 


2 


* 


CL 


Cu 








Jit 


Cu 




* 


* cu 










CL. 



5 






a. 

5 



bo 



TO GJ 
Q. 3 



>. JO 0/ L 

rH XI 3 

a >» cj 

F o- i_ 4-> 

•rH g L. CO "O 

10 O TO 3 TO 

*» -P o F O 

H * TO r-t 

H J O - 

_ H O 4-> ^ - 

2 -rH CJ L. ^n 

rH -rH TO 4-) 

5 L. O QJ QJ 

X O JZi O r-t 10 

= E o 

U E >»4-> 4-> 

J O tO -rH 4-> -rH 

4-> JD -H X) 

= TO TO JD 

1 QJ 3 
} O tO 4-> 3 O 

" -r-t .rH TO O rH 

J- JT 4-> rH w 

D QJ 4-> O ^ 

> E »- co 

3 10 w O QJ 

1 CJ -rH CJ >» 



L. TD 
O CJ 
4-> TO 



TJ — I «- 

CU rH 4- 

to 21 2 2Z 

to cc ?■ cc 

TO O ^ O 

CXLu 2 Lu 



cc cc 
a o 

U Lu 



XUXCCOXXXCO 
(DhnQOUUJQhh 
4_>cOCD_icccDQ^JjcOCC 
TO 



>>2 



xi cu 

QJ —I 



o cu 

QJ —I 



•rH (X) 

4-> 3 

CJ rH 

CJ TO 

3 > 



QJ 



•O -r-t 

CJ bO 



-J O 
Lu 4-) 



3 4-) 

O CJ 



C X X X 

o x a: x 2! 
•rHCucOcucOCucOcc 
4->— iZ>— 13^)30 

o<:cL,LuCunT:CLLu 



x cc x cc x cc x 
j Q CO O CO Q CO Q 

) J ^ ^j -3 J -3 J 



August 1979 © BYTE Publications Inc 147 



COMPUTER/ 
COMMUNICATION 



SEMINARS 

OF EXCELLENCE 



SKA I TELEPROCESSING" 

^.L ^SYSTEMS 



DATA ' COMPUTER 1 
| NETWORKS | NETWORKS j PROTOCOLS ] 

a - i. 

*"* I ' "" 

"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 

KLEINROCK- 
FRANK- ROBERTS 

EXPERTS ON NETWORKS 

BOSTON ■ NOVEMBER 7-9, 1979 

Mcquillan -cerf 

COMPUTER COMMUNICATION PROTOCOLS 

WASHINGTON, DC. ■ NOVEMBER 5-7, 1979 

CYPSER 

ALL ABOUT IBM's SNA 

BOSTON" DECEMBER 3-5, 1979 . 

KLEINROCK 

COMPUTER NETWORKS 

SAN FRANCISCO ■ DECEMBER 3-5, 1979 



Seminar Fee: 
$675 



Call or write today: 

(213) 476.9747 



SESTNSWWPe 

P.O. BOX 49765, LOS ANGELES, CA. 90049 (213)476-9747 



EVAL routines, two additional checks must be added im- 
mediately prior to EVLERR: 



BEQ EVLLAM 
CPX NSUBAT 
BEQ EVLNSU 

CPX NLAMAT 
BEQ EVLNLA 

* illegal exp... 
EVLERR 



NSUBR? 

yes, go call machine code 

subroutine 

NLAMBDA? 

yes, pass list of args as single 

argument 



and the additional routines EVLNSU and EVLNLA 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 built- 
in 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 func- 
tion 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 identical forms, NIL otherwise 
EQSBR FCB $21 special preface string 

FCB $00 

* ALP points to the list of evaluated arguments 



EQSNIL 



TRUE 



LDX 


ALP 


get first arg 


BEQ 


TRUE 


no args is equivalent to 
(EQ NIL NIL ) 
which should return T. 


LDX 


CAR,X 


save first arg temporarily 


STX 


XTMP 




LDX 


ALP 


pick up second arg 


LDX 


CDR,X 




BEQ 


EQSNIL 


(EC X) is equivalent to 
(EQ X NIL) 


LDX 


CAR,X 




CPX 


XTMP 


are the forms identical? 


BEQ 


TRUE 


yes, return T. 


LDX 


ZERO 


no, return the NIL form 


RTS 






LDX 


TATOM 


return T atom 


RTS 







Listing 9: EVAL may have built in primitives to expand the 
language. This is an example of the primitive SUBR EQ. 



148 August 1979 © BYTE Publications Inc 



Circle 365 on 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 avail- 
able 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 sys- 
tems 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 Indus- 
trial 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 com- 
plete systems. And the prices are right. 

Ask your dealer to see the full Industrial Micro 
Systems line of products and be watching for excit- 
ing 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 




use TRcopy 

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 TRcopy system you can copy any TRS- 
80 Level II cassette tape whether it is coded in 
Basic or in machine language. You can also copy 
data created by programs and you can copy assem- 
bler listings. 

YOU CAN SEE THE DATA 
As the tape is being loaded, you can SEE the 
actual data byte-for-byte from the beginning to the 
end of the program. Up to 320 bytes are displayed 
at one time. ASCII characters are displayed on the 
first line and hexadecimal code is displayed on the 
following two lines. Data is displayed exactly as it 
is input including memory locations and check sums. 

IDENTIFY PROGRAMS 
With TRcopy you can identify programs on cas- 
sette 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. TRcopy 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. f 

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 lan- 
guage tapes that are more efficient than those pro- 
duced by the assembler itself. 

RECOVER FAULTY DATA 
With TRcopy you can experiment with the 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 cojiy faulty tapesby 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 com- 
puter 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 formatting conventions. 
With the TRcopy system, you can SEE what you are 
doing! 



TRcopy System Including 
Cassette Tope and Documcntatic 



195 



rr .J in 14 days. No CODV R«tm 
1 lull refund if you arc not satisfied. 



ND. Orders Add *TRS80 is a trod 
3% Sales Tax. of the Tandy Co 



Data/Print 

DEPT.BT, BOX 903, FARGO, N.D. 58107 



YOUR 
ORDER 



E H 

o o 

ill 



J? 5 ? £ = 

^ g z w — 

^ TS " "8 = 

~ -- *" °JI n I— 

-a a. =1 a ^ 

Qi s s 1 1 g 

2J or- 51 < CC 



SO 8*jL « ~ 






o a -a <d 






zu 



o ■£ 

E 

0) c 

E "" 



S I. 

a. 

o z _ 



C/D 



5 °* 

O -a Z 



a. ** ** 

„ * rj"S CC 

1 - ^ •- ° 

~ e "2 Z 

a o — c 



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 dot- 
ted 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 collec- 
tor 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 



150 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 collec- 
tion, 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 develop- 
ment thus far was simply to keep the design of the rou- 
tines simple and relatively intuitive. 

If the reader intends to include a garbage collector 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 collec- 
tion scan. PROPSH avoids this danger by marking the 
cell used to store the saved value so that the garbage col- 
lector will know to trace this form and its descendents. 

Initialization 

It is ironic, but somehow appropriate, that the section 
on initialization comes at the end of this article. Frequent- 
ly 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 ini- 
tialization is meant the inevitably awkward methods of 
getting the symbol tables, or the OBLIST in LISP pre- 
loaded 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 com- 
piler! You can customize your own version, or just use it the way 
it is. 

'Tiny' Pascal is a subset of Standard Pascal & includes: 
RECURSIVE PROCEDURE/FUNCTION, IF-THEN-ELSE, 
REPEAT/UNTIL, 'PEEK & POKE', WHILE, CASE, & MORE! 
(Plus full graphics for TRS-80 as well) 
Also you can save & load programs. 

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: 



/wmon 



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 pro- 
vides the OEM with a high performance, 
low.cost interface forfixed and removable 
(2315 or 5440) cartridge disc drives. The 
DCF-10 is currently supported by two 
operating systems. For information or 
manuals, contact XCOMP. 




XCOMP 

INCORPORATED 

9915-A Businesspark Ave., San Diego, C A 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, re- 
quiring 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, LAMB AT, 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 





FDB 


TATOM 


FCC 


'SUBR' 


FCB 





FDB 


SUBRAT 


FCC 


'LAMBDA 


FCB 





FDB 


LAMBAT 


FCC 




FDB 




FCB 


null- 



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 in- 
terpreter and looked at a specific example for the M6800 
processor. For further information on the garbage collec- 
ting routines and a complete listing of the interpreter, 
order BYTE document number 112. ■ 



Nyfjbles 



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 pro- 
gramming techniques in these programs can be directly 
used by readers with similar equipment, or can serve as 



an inspiration for improvisation on computers of dif- 
ferent characteristics. 

Potential authors for such programs should send us 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 ad- 
ded to the Nybbles Library. To order your personal copy 
at $10.00 (US and Canada), $12.00 (foreign airmail) 
postpaid, fill out the coupon below. 



Please send 



copies of BYTE Nybble it_ 



at $_ 



postpaid. 



Please remit in US funds only. 

Check Enclosed 

Bill my VISA It 

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 keep your BYTE intact. 



152 August 1979 © BYTE Publications Inc 



NEW POWER FOR 

YOUR APPLE n FROM 

MOUNTAIN HARDWARE. 



ROMPLUS+ 



«& 



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 ROMPLUS+ 
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+ 
offers five sockets for ROM or EPROM, plus "scratch- 
pad" RAM. And, sophisticated firmware on ROMPLUS+ 
allows one, two, or more of its chips to be used simul- 
taneously for programs longer than 2K. 
EXPANDED UTILITY. 

Many software programs really ought to be utilized 
as firmware. ROMPLUS-f 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. 




& 



Mountain Hardware, Inc. 

LEADERSHIP IN COMPUTER PERIPHERALS 

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

Sounds great. 

□ Please send me all the details on ROMPLUS+ and 
Keyboard Filter. 

Name 



Address. 

City 

Phone 



. State. 



.Zip. 



* Apple II is a trademark of Apple Computer, Inc. 



Circle 258 on inquiry card. 



BYTE August 1979 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 pro- 
blems. Rarely, however, does anyone implement an 
"M-expression" oriented version of LISP at the user soft- 
ware level. 

The problem is similar to that of the language APL, 
with one notable difference. In APL a special 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 ter- 
minals were available to be adapted to a natural expres- 
sion 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 im- 
plemented 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 empha- 
sizes 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 ex- 
hausts 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 in- 
spired, 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 implemen- 
tation and debugging, and do not really care about speed. 
Some people just like one particular style of expression. 
Some people think literally in tree forms and have to 
strain to think in sequential processing forms. To the ex- 
tent 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 



3Jrnb> 



ENTERPRISES 

INCORPORATED 



2967 W. Fairmount Avenue • Phoenix, AZ 85017 ■ (602) 265-7564 



154 August 1979 © BYTE Publications Inc 



Circle 325 on inquiry card. 



IffOW 



««««*"*! 



t£&&. 



'?J*K J^^V 



wjfe 




S*A*o 



ISBN 0-931718-07-4 

Buy this book at 
your favorite com- 
puter 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. 



wjBOTITvw 



"BOOKS OF INTEREST TO COMPUTER PEOPLE" 

70 Main Street Peterborough, New Hampshire 03458 



Circle 36 on inquiry card. 



BYTE August 1979 155 



is a whole new language for interaction with computers 
at an intellectual user's level. As a tool for use with com- 
puters, this language-like method of structuring an inter- 
face is completely orthogonal to any conventional se- 
quential language from BASIC to Pascal, although its 
conceptual underpinnings are very LISP-like. The pro- 
duct has roots in the artificial intelligence community, 
and it is a direct result of the programming efforts of 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 Soft- 
ware, a company formed last year by another graduate of 
the Cambridge computer scene, Dan Fylstra (along with 
Peter Jennings of Microchess fame). The Personal Soft- 
ware company distributes this new product exclusively, 
at retail cost and through manufacturers. The product is 
called "Visi-Calc." The first "public" showing of Visi- 
Calc occurred last May in the form of a hospitality suite 
at the Fourth West Coast Computer Faire in the San Fran- 
cisco Convention Center. The display was oriented to 
dealers and manufacturers. Advertisements have ap- 
peared 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 rela- 
tionships. This last phrase, "along with relationships," is 
the key element of the concept. When I record some 



TRS-80 ... all business! ! 

...with CP/M, CBASIC2, 
& applications software. 

CP/M Operating System (w/Editor, Assembler, 

Debugger, Utilities & 6 manual set) $150 

CBASIC2 Compiler (w/manual) $ 95 

DESPOOL Print Spooler (w/manual) $ 75 

*0sborne & Assoc. PAYROLL W/COST 

ACCTNG $250 

*0sborne & Assoc. ACCTS. RECEIVABLE & 

ACCTS. PAYABLE $250 

*0sborne & Assoc. GENERAL LEDGER $250 

*=CBASIC2 source programs; add $15 (each) for 
applicable O & A book. 

APH -Self-administered Automated Patient 

History $175 

DOWNLOAD -TR-80 (or other) 
CP/M to CP/M $95 

data/program (source or object) transfer over 
RS232 link 

Send 30d SASE for add'l. Software avail, (including 
CP/M Users Group software) and FREE "CP/M Primer/' 

CA residents add 6% tax. Visa, M/C,M/0,Check OK. 



(714) 848-1922 




^lV[BtE{RLN L EtT^LCLS 



1 

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 win- 
dow 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 exam- 
ple 1.2. On changing any such location, Visi-Calc 
automatically searches the tree of dependent expressions 
and evaluates new data for such locations. The depen- 
dency can effectively go through many levels of calcula- 
tion so that we can look at any intermediate stage of 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 program- 
ming 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 per- 
sonal computing field. It will certainly be used as a prac- 
tical 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 sup- 
port this sort of technique is impossible to find at 
reasonable cost in a traditional large computer time shar- 
ing system. It only works when the concept of "one user, 
one processor" is employed, ie: when the 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 com- 
puters like PDP-10's and IBM 370's. Such excessively ex- 
pensive 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. 




TJ^^CTA. F¥«a<9C3£i 



- XEHO ■* 




TSHBraisicUfllilfifcS 



o, 3% digit Luu display 
DIGITAL MULTIMETER .$149 DIGITAL 



1 display 
ETER ..$149 



New Data Precision super-accurate portables. 
To use 'em is to love 'em. Or your money back.* 

Both meters feature 1 / 2 " 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 @ $149 

Please add the following options: 

BE9 Battery Eliminator (120VAC±10% 50-60Hz)..@ $15 

CS11 10A Current Shunt @ $20 

IP151 Clamp-On Current Probe (2-150A) @ $65 

IP1001 Clamp-On Current Probe (10-1000A) @ $139 

RF471 RF Probe (to 700MHz) @ $99 

RFH1 Retractile hook probe tip for RF471 @ $5 

T5 Test Leads @ $5 

T7 Universal Test Lead Kit @$12 

TP1 51 Temperature Probe (-60°to+ 1 50° @ $95 

V41A High Voltage Probe (40kVDC) @ $45 



Please send me_ 



_Model(s) 938 @ $149 



Please add the following options: 

BE9 Battery Eliminator (120VAC±10% 50-60Hz)..@ $15 

CC35 Carrying Case @ $5 

LCI Plug-in Lead-Clip Test Fixture @ $7.50 

T9 12" Test Leads with Alligator Clips @ $5.50 

SUB TOTAL $ 

STATE & LOCAL TAX (if any) $ 



SHIPPING & HANDLING $ 5.00 

TOTAL AMOUNT OF ORDER $ 



mil 



Applications Specialists and Distributors 

of Computer Terminals, Peripherals, Power Conditioning and Instrumentation 

159 Northern Boulevard /Great Neck, New York 11021 

516/482-3500, 212/895-7177, Outside N.Y.S.: 800/645-8016 

I CAN'T WAIT TO GET MY HANDS AROUND THEM! 

□ Check/M.O. enclosed □Bill Visa nBill American Express 

Card No. Expiration Date 

Signature . 

Name (Please print) 

Title 

Company 

Address 

City_ 



State, 



.Zip. 



Phone 



*lf you are unhappy with these meters for any reason, return them to us within ten days in good working order, and we will 

refund your money less our costs for shipping and handling. 



BYTE August 1979 157 



HONEST 

, useo 
computes 




K*W*S5 



"...and this one was owned by a little old lady who 
only used it once a month to balance her checkbook. " 



Belais' Master Index Can Give You Access to 
$14,836.14 Worth of Computer Programs 
for Just $5.95! 

Special Pre-Publication Offer 



You paid hundreds or even thousands of dollars 
for your new microcomputer. By now it may be 
dawning on you that a S1.000 computer with no 
software is just S1000 worth of scrap metal! 

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 to spend hundreds of dollars to 
get a complete library of programs for your com- 
puter. That is. you don't if you have Belais'Master 
Index to Computer Programs in BASIC. 

Belais' Master Index gives reviews of 531 pro- 
grams 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 of 
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 for 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 com- 
plete. The text of the review gives you a full 
description of what the program does. In addition, 
the review gives you detailed technical informa- 
tion about what hardware and software the pro- 
gram needs. Everything you need to know is right 
at your fingertips! 

You don't have to be a programming wizard to 
use Belais' Master Index. That's because BMI 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 Belais' 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. Maybe you 
haven't thought of all the ways your "fun" com- 
puter could turn out a little of the green stuff for 
you. Maybe you haven't— but a lot of other people 
have, and they've written up their ideas for you to 
use. Belais ' Master Index lists dozens of programs 
that you can use to set up your own business. 

If you already have a business, Belais' Master 
Index has the programs to turn your home com- 
puter into a full-fledged business system. General 
ledger, billing, payroll, mailing lists, word pro- 
cessing—no matter what type of business you 
have, Belais' Master Index has the programs you 
need. 

All this and save S4.00, too! The west coast 
paper mill strike has delayed publication of Belais' 
Master Index. Because of this, we're making a 
special pre-publication offer. Reserve your copy 
now and you can have it for 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 51 shipping (Calif, residents add 36c sales 
tax). Send your order to Falcon Publishing, Dept. 
D-1, 140 Riverside Ave.. P.O. Box688,Ben Lomond, 
CA 95005. 

If you want to use your VISA or Master Charge 
card, write "Belais' Master Index" on a piece of 
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 ittousandwe'llrefundeverycent 
you paid. You can't lose, so order NOW 



Returning to the LISP theme of our current issue, Visi- 
Calc is an example of a tree-oriented parallel data struc- 
turing problem for which LISP is a most appropriate lan- 
guage of expression. Due to a lack of availability of 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 com- 
puting: one of the most generally useful new user soft- 
ware 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 ap- 
pearance 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 typeset- 
ting for BYTE magazine. I have often felt during the four 
years since BYTE started that we have been like the pro- 
verbial shoemaker's children who went barefoot. We 
have been producing a computer magazine without the 
benefit of any computer technology in the actual opera- 
tion 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 program- 
ming 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 adver- 
tisements 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 pro- 
duction department. One of its major features is the use 
of symmetrical page layouts employing 2, 3, and 4 col- 
umn 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 modifica- 
tion 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 ar- 
ticle includes many long examples and equations, these 
will often fit on one line in the two column format, mak- 
ing 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 ar- 
ticles 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 dou- 
ble density, IBM compatible; for nonstandard informa- 
tion 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 con- 
tinued attention to themes of voice input and output, 
graphics, languages, artificial intelligence and 
robotics... CH 



ANNOUNCING 




1 10 or 300 baud, RS 232C serial 

ASCII 

Friction feed, paper width to 15" 




New 
from DIABLO 

0IABL01640 $2 P 690. 00 
Receive-only $2,331.°° 

High-quality daisywheel printing at 
45 cps. 

DIABLO 1650 $2,779.°° 
Receive-only $2,419.°° 

Metal daisywheel printing at 40 cps. 

S0R0CIQ 120 $795. 00 

• RS 232C, upper/lower case full 
ASCII 

• Numeric keypad, protected fields 

• Cursor keys plus addressable 
cursor 

• Auxiliary extension port 



New 
from DEC 

LA34 DECwriler IV 

$ U99. 00 



Upper/lower case, 9 x 7 dot matrix 
1 0, 12, 1 3.2, 1 6.5 characters /inch 
2, 3, 4, 6, 8, or 12 lines/inch 
22"Wx7 ,, Hx15 1 /2 , 'D, 25 lbs. 



Teletype 43 $999.00 

• RS 232C, 110 or 300 baud 

• Upper/lower case full ASCII 

• Pin feed, 12" x 8 1 /2" paper 



T.I. 810 printer $1,695.°° 

• 150 characters per second 

• RS 232C serial interface 

• Adjustable forms tractor 

• Upper/lower case option $90.00 




S0R0C IQ 140 $1,250.0° 

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



cMCRQMfl 



E 



MICROMAIL • BOX 3297 • SANTA ANA, CA 92703 
(714) 731-4338 



Circle 223 on inquiry card. 



August 1979 © BYTE Publications Inc 159 



BITS 




LET'S TALK LISP 
by Laurent Siklossy 

□ 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 program- 
mers a quickie introduction to LISP is included. Good pro- 
gramming 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 



Books to erase the impossible 

LANGUfiG€ 



t^ 



QUICKTRAN 
by C. Kevin McCabe 

□ Learning a language can be made easier if one begins by 
mastering a small part of the language and then adds the re- 
maining 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 program- 
ming experience. Part II expands the readers' proficiency and 
adds other features of the language and by the end of Part 111 
all of standard FORTRAN IV has been covered. Example 
programs abound. 

220 pp. $8.95 



(pmm 



Kh 



fflPQ, 



A PRACTICAL INTRODUCTION TO PASCAL ^ 
by I.R. Wilson and A.M. Addyman 

□ 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 intro- 
duction to PASCAL suitable for first time or experienced pro- 
grammers. Describing PASCAL using syntax diagrams, the 
book encourages the stepwise refinement technique of struc- 
tured programming. Over 60 programs are included as ex- 
amples, and seven of its 14 chapters are devoted to data struc- 
tures. This book comes highly recommended and complements 
PASCAL-User Manual and Report by Jensen and Wirth. 

148 pp. $7.90 

PASCAL USER MANUAL AND REPORT 

(Second Edition) 

by K Jensen and N Wirth 

167 pp. $7.90 



STRUCTURED PROGRAMMING IN APL 
by Dennis Geller and David Freedman 

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



$©®m 



m 



COMPUTING WITH FORTRAN IV: A PRACTICAL COURSE 
by Donald M. Monro 

□ 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 program- 
mers are self-taught. In his book you'll find yourself program- 
ming 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 

□ 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 



324 pp. $10.95 

APL - AN INTRODUCTION Kl£V)3 ' 
by Howard A. Peelle ™ 

□ This is APL for the self-taught programmer or experimenter. 
Nine U-Program chapters present the APL functions and ex- 
pressions through examples followed by exercises designed to 
assure comprehension. Answers to all problems are included 
and access to a computer is not required. This method of learn- 
ing 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 



160 BYTE August 1979 




16FIRNING 



6502 APPLICATIONS BOOK 
by RodnayZaks 

□ 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. Ap- 
plications 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 RodnayZaks 

□ Here is the 6502 microprocessor from top to bottom: basic concepts, hardware or- 
ganization, basic programming techniques, the 6502 instruction set, addressing tech- 
niques, input-output techniques, data structures and program development. This 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. 

□ 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 

□ 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 success- 
ful in business, it is intended to save time, money and possible 
heartache by eliminating false starts and "blind alley" ap- 
proches 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 homebrewer- 
turned-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 



yfr 



ffffW* 



Mm 



RUNNING WILD 

THENEXT INDUSTRIAL REVOLUTION 

by Adam Osborne 



'^^XB 



□ Many of the uses to which computers are being put today 
could cause profound problems tomorrow. In industry, govern- 
ment, 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 



NTS, . 



WHAT EVERYONE SHOULD KNOW ABOUT PATENTS, 

TRADEMARKS AND COPYRIGHTS 

by Donald M. Dible 

□ So you've written a program that's of use to microcom- 
puterists everywhere? Got a circuit the world's waiting for. 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 n 



DIAL YOUR BANK CARD ORDERS TOLL FREE 800-258-5477 



Boo^s to erase the impossible 

25 Route 101 West, PO Box 428, Peterborough, NH 03458 



Name 

Address . 
City 



State. 



■ Zip_ 



□ Check enclosed 

Card# 

Signature 



□ Master Charge 
Expires_ 



□ VISA 



QTY. 


TITLE 


PRICE 


TOTAL 


































Dr ^ $ .75 for each book domestic 
MAK.ni -J * $1.00 for each book foreign 






P&H 




MANUL 


- IINnj (maximum postal charge - $3.00) 


Total 





(in N.H. dial 924-3355) MON-FRI 9-5 ^ 



1B1089 



! I 



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 Perlis of Yale University refers 
to them collectively) are, in Perlis' opinion and mine, not 
in the same class as LISP and APL with respect to the 
issues discussed here. (I do not know Professor Perlis' 
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 pro- 
grammer 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 con- 
structs 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). 



iCQMRJTRQNICS": 



MATVe^AnCAL APWJCAnorsS S€F*/C£" 



Box 149 New City, New York 10956 

ONE YEAR SUBSCRIPTION $24 _ 
TWO YEAR SUBSCRIPTION $48 _ 
SAMPLE OF LATEST ISSUE $4 




HOUR 
24 ORDER 

LINE 
(914) 425-1535 



^7 



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 be- 
tween 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, per- 
mits 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 in- 
terface to the Marksman® drive. An eight bit 
bus permits the DC/M to be used with all 
popular microcomputers. 








XCOMP 

INCORPORATED 

9915-A Businesspark Ave., San Diego, C A 92131 • (714) 271-8730 



dismiss.) Moreover, as compiler optimizers get pro- 
gressively "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 informa- 
tion to infer that a LISP list is being used array-style, and 
it can then choose to represent the list as an array. Con- 
versely 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 mix- 
ture. An advantage of this is that you don't need to store 
type information for every array element, leading to effi- 
ciency gains. A disadvantage is that it restricts the pro- 
grammer'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 argu- 
ment 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 ap- 
plying 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 + YX5' can be passed 
around just as freely in APL, and of course it can be exe- 
cuted 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 ver- 
sion of Goto in conjunction with Execute. Another 
restriction is that there is no APL expression whose exe- 
cution results in an APL function becoming defined; in- 
stead one uses a separate function, DFX. LISP observes 
neither of these restrictions. 

LISP goes beyond APL by also having mobile func- 
tions. From a programmer's viewpoint the main differ- 
ence between an expression and a function is that func- 
tions are objects that explicitly take arguments, whereas 
the only way to pass information to an expression is to 
store it in some variables before evaluating the expres- 
sion. 

LISP implements mobile functions by using lambda ex- 
pressions, a method of representing functions due to 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. 



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

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



TM 




The Electric Pencil II is a Charac- 
ter 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 automatic- 
ally. 

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 insert- 
ed 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 elim- 
inates guesswork. Text may be review- 
ed at will by variable speed scrolling 
both in the forward and reverse direc- 
tions. By using the search or search 
and replace functions, any string of 
characters may be located and/or re- 
placed with any other string of charac- 
ters 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 bidirec- 
tional printing are included in 
the Diablo versions. Multiple 
columns with right and left justified 
margins may be printed in a single pass. 

Wide screen video 

Versions are available for Imsai 
VIO video users with the huge 80x24 
character screen. These versions put al- 
most twice as many characters on the 



CP/M versions 

Digital Research's CP/M, as well as 
its derivatives, including IMDOS and 
CDOS, and Helios PTDOS versions are 
also available. There are several NEC 
Spinwriter print packages. A utility 
program that converts The Electric 
Pencil to CP/M to Pencil files, called 
CONVERT, is only $35. 

Features 

• CP/M, IMDOS and HELIOS compatible 

• Supports four disk drives 
Dynamic print formatting 
DIABLO and NEC printer packages 
Multi-column formatting in one pass 
Print value chaining 

• Page-at-a-time scrolling 

• Bidirectional multispeed scrolling con- 
trols 

• Subsystem with print value scoreboard 

• Automatic word and record number 
tally 

• Cassette backup for additional storage 

• Full margin control 

• End-of-page control 

• Non-printing text commenting 

• Line and paragraph indentation 

• Centering 

• Underlining 

• Bold face 

Upgrading policy 

Any version of The Electric Pencil 



Have we got a version 
for you? 

The Electric Pencil II operates 
with any 8080/Z80 based microcom- 
puter that supports a CP/M disk sys- 
tem and uses an Imsai VIO, Processor 
Tech. VDM-1, Polymorphic, VTI, Solid 
State Music VB-1B or Vector Graphic 
video interface. REX versions also 
available. Specify when using CP/M 
that has been modified for Micropolis 
or North Star disk systems as follows: 
for North star add suffix A to version 
number; for Micropolis add suffix B, 
e.g., SS-IIA, DV-IIB. 



Vers. 


Video 


Printer 


Price 


SS-II 


SOL 


TTY or similar 


$225. 


SP-II 


VTI 


TTY or similar 


225. 


SV-II 


VDM 


TTY or similar 


225. 


SR-II 


REX 


TTY or similar 


250. 


Sill 


VIO 


TTY or similar 


250. 


DS-II 


SOL 


Diablo 1610/20 


275. 


DP- 1 1 


VTI 


Diablo 1610/20 


275 


DV-II 


VDM 


Diablo 1610/20 


275 


DR-II 


REX 


Diablo 1610/20 


300 


Dl-ll 


VIO 


Diablo 1610/20 


300. 


NS-II 


SOL 


NEC Spinwriter 


275 


NP--II 


VTI 


NEC Spinwriter 


275. 


NV-II 


VDM 


NEC Spinwriter 


275 


NR-II 


REX 


NEC Spinwriter 


300 


Nl-ll 


VIO 


NEC Spinwriter 


300 


SSH 


SOL 


Helios/TTY 


250 


DSH 


SOL 


Helios/Diablo 


300 




MICHAEL SHRAYER SOFTWARE, INC 

1253 Vista Superba Drive 

Glendale, CA. 91205 

(213)956-1593 



may be upgraded at any time by sim- 
ply returning the original disk or cas- 
sette and the price difference between 
versions, plus $15 to Michael Shrayer 
Software. Only the originally purchas- 
ed cassette or diskette will be accepted 
for upgrading under this policy. 



Attention: TRS 80 Users! 

The Electric Pencil has been de- 
signed to work with both Level I 
(16K system) and Level II mod- 
els of the TRS-80, and with vir- 
tually any printer you choose. 
Two versions, one for use with 
cassette, and one for use with 
disk, are available on cassette. 
The TRS-80 disk version is easily tran- 
sferred to disk and is fully interactive 
with the READ, WRITE, DIR, and 
KILL routines of TRSDOS 2.1. 
Version Stora ge Price 

TRC Cassette $100. 
TRD Disk $150. 



screen ! ! 



Demand a demo from your dealer ! 



Circle 319 on inquiry card. 



BYTE August 1979 165 



Up Your 
Output. 



TEMPOS 



MULTI-TASKING! 

The TEMPOS Operating System is quickly becoming the standard in Multi- 
User, Multi-Tasking operating systems for 8080 and Z80 microcomputers. 
Multi-Tasking means that, even with only one user at one terminal, more 
than one job can be running on the system simultaneously ! If you have ever 
had to go get a cup of coffee while you wait for your computer to print list- 
ings, you know the advantages of a system that will handle one job 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 High- 
Level 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 undoubted- 
ly 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 
□□SYSTEMS 
□□□INC 
□□ 

1642 S. Parker Road, Suite 300, Denver, Colorado 80231 
(303) 755-9694 



ning the program (APPLY (READ) (LIST 3 4)) would 
cause the function typed in response to the Read to be ap- 
plied 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 com- 
puter 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 sub- 
routine libraries. 

LISP and APL, in contrast, are each just like a sub- 
routine library, being little more than a set of functions. 
The user may add to this set by getting more 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 invok- 
ed from the user's terminal or from the user's or any other 
program. All three kinds are invoked with identical syn- 
tax (within each language), in LISP: 



(Function Argl Arg2 ...Argn) 



in APL: 



d x for unary functions 
op y for binary functions, assuming right 
associativity 



op x 
x 



The conventions for representing lists, LISP's primary 
structured data type, are the same for representing pro- 
grams. Since those conventions are simple, there is little 
to learn. In this respect LISP differs from APL, which has 



166 August 1979 © BYTE Publications Inc 



Circle 8 on inquiry card. 






a convention for representing the structure of its pro- 
grams (namely the invocation of the right-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 represen- 
tations 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 pro- 
grammer I would want to do the same thing: have a syn- 
tactic preprocessor that permitted me to use the syntax I 
felt most comfortable with. 

Declarative Programming 

Here is an innocent looking pair of equations: 

(a + 1) Xb=aXb+b 
X b = 

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, I can use the 
equation to express 3X7 as 2X7 + 7, reducing the 
original problem to a smaller one which can be solved by 
the same method. Eventually I have '(((0X7 + 7) + 7) + 7, 
which the second equation turns into ((0-\-7)-\-7)-\-7. Us- 
ing the method for adding, three times, I end up with 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 (SUB1 A) B) B))) 

or in the "syntactically sugared" version of LISP referred 
to earlier: 

if a=0 then else (a-l)*b + b 

The significance of this example lies in two observa- 
tions: first, the facts were so obvious it was hard to 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 well- 
written 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. 



« 



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 inexper- 
ienced beginner. 

Look at these 
outstanding features: 

■ By far the best text editor available for microcomputer- 
based systems. 

■ Repays its initial cost many times over with its unique 
time-saving editing capabilities. 

■ FULL SCREEN window displays for viewing and edit- 
ing data a page-at-a-time, rather than line-by-line. 

■ Forward and backward scrolling in the FULL 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 com- 
ands. 

■ 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 deriva- 
tive 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, univer- 
sities, and in personal computing to significantly cut program develop- 
ment time and high labor costs. Why not let ED-80 begin solving your 
text editing problems today? 



Mail to: SOFTWARE DEVELOPMENT ft TRAINING, INC. 
P. 0. Box 4511, Huntsville, AL 35802 
ED-80 is protected by copyright and furnished under a paid-up license 
for use on a single computer system. 
D Please send additional information. 

D Send Diskette, User's Manual, and paid-up license agreement $99.00 

Specify SINGLE DENSITY Diskette size □ 5" □ 8" 

G Send User's Manual (credited on purchase of a paid-up license) $10.00 

□ Check or money order enclosed for $ 

□ Pleasecharge to my credit ca rd □ VIS A □ Master Charge 

Card No. Bank No Exp.Date __ 

NAME 

ADDRESS 

CITY STATE ZIP 



SIGNATURE . 



C-l 



SOFTWARE DEVELOPMENT & TRAINING, INC. 
Post Office Box 4511 — - Huntsville, Alabama 35802 

Dealer Inquiries 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 1 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 Gard- 
ner'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 pro- 
gramming 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 suppor- 
ting the method and the program itself. Rewriting the 
program in another programming language while preser- 
ving 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 en- 
couraged 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 lan- 
guage, 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 par- 
sing 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 con- 
sidered LISP's substantial contributions to language im- 
plementation 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 Receiva- 
ble 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 con- 
sultants 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 pro- 
grams 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 writ- 
ten 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: 

Peter Burke 

THE BASIC BUSINESS SOFTWARE CO., INC. 
P.O. Box 2032 

Salt Lake City, Utah 74110 (801)363-1199 
APPLE II: 
Jimmy Walter 

A.CE. COMPUTER SYSTEMS 
2449 North Westshorc 
Tampa. Florida 33607 (813) 872-2798 

COMMODORE PET: 

Chuck Stuart 

CMS SOFTWARE 

5115 Mcncrcc 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-3005 
M1CROPOLIS, NORTHSTAR 
(REQUIRES CP/M): 

James Rountree 

R&A COMPUTER SERVICES 

7700 Edgewatcr Drive, Suite 723 

Oakland. California 94621 (415) 562-3133 
MICROSOFT disk BASIC: 

Dan Kindred 

GNAT COMPUTERS 

7895 Convoy Court 

San Diego. California 921 1 1 (714) 560-0433 
NORTHSTAR BASIC: 

Isaac Bornstcin 

COMPUTER SERVICES OF ENCINITAS 

341 Willowspring Drive 

Encinitas, California 92024 (714) 436-2486 
POLYMORPHIC 8813: 

Bruno Caprez 

KEYSTONE SYSTEMS 

P.O. Box 767 

Spokane, Washington 99210 (509)747-5623 
TRS-KI): 

Don French 

APPLIED DATA CORPORATION 

P.O. Box 16020 

Fort Worth. Texas 76133 (817)738-0251 

Irwin Taranto 

TARANTO & ASSOCIATES 

P.O. Box 6073 

San Rafael, California 94903 (415) 472-1415 

WAN(J BASIC ON FLOPPY DISK: 

Richard Armour 

ATLANTIC COMPUTING & CONSULTING 

P.O. Box 7294 

Hampton, Virginia 23666 (804) 340-9350 



Order Form 



Name: . 



Address: 

City: 

State: 



. Zip: 



Phone:. 



#j 1 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 




a All foreign orders $4.00 per book for airmail . 

□ S0.45 per book 4th class in the U.S. (allow 3-4 weeks) 

□ S0.75 per book UPS in the U.S. (allow 10 days) Total Amount Enclosed 






□ SI. 50 per book special rush shipment by air in the U.S. 





Calif, residents add 6% sales tax. 

S.F. BART residents add 6-1/2 % sales tax. 



a I am an end user interested in 
running CBASIC programs on disk. 
Please notify me of the closest dealer 
for: 



□ I am a dealer interested in 
purchasing CBASIC programs on 
disk for resale. Please send descrip- 
tion and order information for: 



□ CBASIC Payroll With Cost Accounting 
a CBASIC Accounts Payable/Receivable 
D CBASIC General Ledger 



Please send the following information: 

□ Becoming an Osborne dealer 

□ School discounts 



D List of foreign distributors 
D Other Osborne publications 
□ Please send me the current conversion list 



Payment in advance must be enclosed for purchases of up to S70.00. Invoicing 
U.S. purchases over S70.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. 



SI034 
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 ar- 
chitecture of the machine has been 
frozen, and the microcode is nearing 



completion. A user programmable, 
on chip, control memory for dyna- 
mically 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 



FCI -+- 



E ■*- 
VMA •*- 
VPA — 
RES «*- 
HLT — 



BERR 



MC68000 



ADDRESS 



> 



I-A23) 



\ (D0-DI5) 



* AS 

* R/W 

D ► UDS 



-•> LDS 



DTACK 



BR 
BG 



BGACK 

I~ACK 
IPLO 
IPLJ 
IPL2 



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. 



170 August 1979 © BYTE Publications 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 24 = 
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 ortho- 
gonal 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 illustra- 
tion of the programming model. The 
five basic addressing modes are 
register direct, register indirect, ab- 
solute, 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 

Aillil Ian Halsema has worked as a program- 
mer since 1971. He is now a senior member of 
the programming staff at Xerox Corp. His per- 
sonal computer system includes a Southwest 
Technical Products Co 6800 and Okidata 
CP-110 printer. 






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 in- 
structions 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 (link- 
ed 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, unimple- 
mented 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 oper- 
ation 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 simul- 
taneously. Supervisory state makes 
certain instructions legal for oper- 
ating a separate memory manage- 
ment 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 in- 
cludes 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 pro- 
grammers, 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 pro- 
grammer 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 process- 
ing vast amounts of data, and for per- 
forming long repetitive sequences of 
operations. Since the personal com- 
puter 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 



D0-D15 


Address Leads 
Data Leads 


AS 


Address Strobe 


R/W 


Read/Write 


UDS, LDS 


Data Strobes 


DTACK 
BR 


Data Transfer 
Acknowledge 
Bus Request 


BG 


Bus Grant 


BGACK 

IACK 

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 
GND 


Enable 

Valid Peripheral 

Address 

Valid Memory 

Address 

4-5 V 

Ground (two pins) 



23 bit address bus; capable of addressing 
16,777,216 bytes in conjunction with UDS and 
LDS. 

16 bit data bus; transfers 8 or 16 bits of infor- 
mation. 

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 the 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 arbitra- 
tion. 

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 func- 
tion 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 pro- 
cessor 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 miser- 
ably 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 ex- 
ceed the power of an IBM 360 Model 
30 within the next decade.) Number 
crunching applications requiring little 
external storage (ie: disk or drum) in- 
clude artificial intelligence, encryp- 
tion/decryption, simulation, games, 
and Dynabook type applications. 
[See the article by Alan Kay on page 
230 of the September 1977 Scientific 
American for a general description of 
small talk, a software system intend- 
ed for small portable Dynabook com- 
puters.... 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 simula- 
tions 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 arti- 
ficial 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 repre- 
sented by: z = X 1 D 1 + X 2 D 2 + 
. . . + X n D n , 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 multi- 
ply, and exceedingly slow if the ar- 
rays 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 













1 1 




DO 










Dl 












D2 










- 


D3 


EIGHT 








- 




DATA 








. 


D4 


REGISTERS 








- 


D5 
D6 








1 1 




D7 






31 


16 15 















AO 










Al 












A2 






~ 






A3 


EIGHT 




- 








ADDRESS 




. 






A4 


REGISTERS 










A5 








1 




A6 






USER STACK POINTER 


A7 
A7 1 


PROGRAM 




1 
I 


SUPERVISORY STACK POINTER 








23 









f 
1 








I 






COUNTER 






15 8 7 





STATUS 




1 








l 




REGISTER 















STATUS REGISTER 



15 



13 



10 



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 func- 
tionally identical except for register A7. A7' , the supervisory mode stack 
pointer, is not available to the programmer. Figure reproduced courtesy of 
Motorola Semiconductor Products Inc. 



memory space which today's micro- 
processors 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 oper- 
ations of raising to a power, perform- 
ing 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 posi- 
tion in the message is given by an ex- 
ponent: the exponent 1 meaning that 
the letter is an A, 2 meaning a B, etc. 
The message as a whole is then ren- 
dered as the product of all the bases 
and exponents. For example, the 
word "CAB" can be represented as 
23X31X5 2 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 August 1979 © BYTE Publications Inc 



"THE ORIGINAL" 

1 Personal 
C Computing 



PC 79 



® 



Plan Now to attend 
the best Personal 
Computing show ever, 



Friday, Saturday, Sunday 
October 5 -6 -7th 
Philadelphia Civic Center 

Philadelphia, Pa. 




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 • Mays Landing, N.J. 08330 • 609/653-1188 

Industry TRADE SHOW on October 4th 

For exhibiting information please call or write. 



Circle 304 on inquiry card. 



BYTE August 1979 173 












player and the programmer. Simula- 
tions of nonlinear and dynamic pro- 
cesses require the large amounts of 
computing power made available by 
the 68000. High resolution graphics 
require the large address space pro- 
vided by the 68000, and with suffi- 
cient 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 pack- 
age the size of one encyclopedia 
volume. The 68000 computer, bubble 
memories, and low cost semiconduc- 
tor 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 process- 
ing, 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 com- 
prehend, but for comparison, the text 
of this article requires about 10,000 
bytes of storage. This Dynabook sys- 
tem would be battery powered and 
portable, with a solid-state display 
and thin, typewriter keyboard. 

There can be no doubt that the in- 
expensive 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 tempera- 
tures.] An example of what is possible 
with today's technology can be seen 
in Texas Instruments' "Speak and 
Spell" toy, which for under $50 pro- 
vides a keyboard, alphanumeric 
display, and microprocessor control- 
led speech feedback with a vocabu- 
lary 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 im- 
agination. ■ 



Table 2: Instruction set of 68000 processor. Operation of instructions is as con- 
sistent 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; Adleman, L, "A 
Method for Obtaining Digital Signatures 
and Public-Key Cryptosystems," Com- 
munications 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 Compo- 
nent 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 para- 
mount, most CompuPro products are also available in "unkit" form (sockets, bypass caps pre- 
soldered in place). All of this is part of our continuing commitment to provide the best 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 AND LOW PRICE MEET HIGH TECHNOLOGY. 



Name 


Storage 


Buss 


Speed 


Technology 


Configuration 


Unkit 


Assm 


CSC 


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. banks** 


$369 


$419 


$ 519 


Econoram XII-24 


24KX8 


S-100 


4 MHz 


static 


2 indep. banks** 


$479 


$539 


$ 649 


Econoram XIII 


32KX8 


S-100 


4 MHz 


static 


2 indep. banks** 


$629 


$699 


$ 849 


'Econoram is a trademark of Bill Godbout Electronics 














••Econoram XII-16 and 


-24 have 2 independent banks addressable on 8K boundaries; Econoram XIII has 2 independent banks addressable 


on 16K boundaries. 



SPECIAL SUMMER SfiLE: 16K MEMORY 
EXPANSION CHIP SET 44*9- $87. 20 

20% off one of our all-time best sellers from July 15 to August 31 
only. For Radio Shack-80, Exidy Sorcerer, Apple computers. 250 ns ac- 
cess time, low power parts, DIP shunts included, 1 year limited warran- 
ty, and easy-to-follow instructions that make memory expansion a 
snap. 

S-100 MOTHERBOARD 

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 TERMINATOR 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 BOARD KIT $39 

New from Mullen Computer Products. Really takes the hassle out of 
troubleshooting or testing the popular Heath H8 microcomputer; in- 
cludes jumper links in the power supply lines for insertion of fuses, Am- 
meters, current limiters, and the like. 

S-100 EXTENDER BOARD 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. 



DUAL CHANNEL/DUAL FUNCTION S-100 
I/O BOARD $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 232C 
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 pro- 
grammable 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 compensationon 
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 BOARD "UNKIT" $85 

4 independently addressable 4K blocks, with selective disable for 
each block. Built to CompuPro/Econoram standards (dipswitch ad- 
dressing, top quality board, sockets wave-soldered in place), and in- 
cludes dipswitch selectable jump start built right into the board. In- 
cludes all support chips and manual, but does not include EROMs. 
Special: if you order before August 1st, our introductory price of $69.95 
is still in effect. Orders postmarked August 1st or later are no longer 
eligible for the introductory price ... no exceptions. 

POPULAR COMPUTER ICs 

Low power 21L02 static 1K RAMs on special: 10/$9.90 (under 1$ 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'c 
like to emphasize that we are not planning to phase out our kits. The "hackers" 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 \ 
problem occurs. 



TERMS: Cal. res. add tax. Allow 
5% shipping, excess refunded. 
Orders under $15 add $1 han- 
dling. VISA®/Mastercharge® call 
our 24 hour order desk at (415) 
562-0636. COD OK with street ad- 
dress for UPS. Prices good 
through cover month of magazine 
except as noted. 

Circle 150 on inquiry card. 



CompuPro M 

Box 2355, Oakland Airport, CA 94614 



from 




ELECTRONICS 



FREE FLYER: We'll be glad to tell 
you more than the space of this ad 
permits. Just send your name and 
address, we'll take care of the 
rest. If you're in a hurry, enclose 
41c In stamps for 1st class 
delivery. 

BYTE August 1979 175 



LISP Based Symbolic 
Math Systems 



David R Stoutemyer 
The Soft Warehouse 

POB 11174 
Honolulu HI 96828 



On an interactive terminal, a user begins by typing the 
assignment: 

Q - 6*Xt3/(9*X) 

where — denotes assignment, * denotes multiplication, 
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 con- 
taining such unbound variables. Thus, the response of 
such a system to the above command is the automatic 
output: 

2*Xt2/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: 



2Xf 

3 



It is the ability to accept and transform input-data con- 
sisting 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 ra- 
tional 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 
2 i9.937 -i i s p r i m e. 



Virtually all symbolic math systems also support sym- 
bolic differentiation. For example, if the user enters an ex- 
pression after the above assignment to Q such as 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 built- 
in mathematical capabilities of these systems. 

Symbolic math systems are often called computer- 
algebra 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 dif- 
ferent from that of LISP, each of these systems provides a 
parser which translates the traditional external represen- 
tations 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 non- 
numerical 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 



a 



years in use 



cro systems 



This is a thoroughly tested and successfully installed software package. It is very user oriented 
and simple to use. The package is as comprehensive as available computer tax services. It 
will calculate taxes, prepare and print all forms. 

This package is supported by American Tax Associates, an established California accounting 
firm. In this way you can be assured that the yearly updates will be consistent with the current 
laws and accounting practices. 

This package is a real time saver. It can perform income averaging automatically, and based 
on the data input, the program can determine whether to itemize or to use the standard de- 
duction. 

The client data collection and input procedures were selected based on the experiences of 
American Tax Associates, and the techniques used by many service companies. A simple 
form is completed during the client interview. The data from this form is later input into the 
computer for processing. 

When the client data is entered into the computer you may select to have it print an audit trail 
of all data entered. This will enable you to double check the data entered. 

The returns are printed on continuous preprinted IRS approved forms. Those forms not requir- 
ing 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 either your dealer or directly 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 
2008 WILSHIRE BLVD., SANTA MONICA, CA 90403 • (213) 829-5137 



Ml! 
CONTROL 



Circle 238 on inquiry card. 



BYTE August 1979 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 lan- 
guage, 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 exten- 
dable parser-deparser, so that the user can introduce 
mathematical operators and programming syntax to suit 
personal needs and tastes. Such functional or parser ex- 
tensions can be freely intermixed with calculations utiliz- 
ing built-in facilities and previous extensions so that 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. Conse- 
quently, the following four sections briefly describe some 
of their capabilities and their availability, in order of in- 
creasing size. In the interest of brevity, each section em- 
phasizes features not described in previous sections. 

As with many other LISP programs, these computer 
algebra systems seem almost magical when first en- 
countered. 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 im- 
plemented 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 en- 
tirety, including an allowance of 5.7 K bytes for a resi- 
dent operating system, the system occupies 28 K bytes, 
for which an additional minimum of 16 K bytes is recom- 
mended to store the control stack, the symbol table, 
character strings, numbers, expressions, and user-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: 

VJ8 " Vf 1 

V3 



^6 



where — denotes is transformed to. 

• Unavoidable automatic algebraic simplifications in- 
clude collection of similar terms, collection of 
similar factors, reduction of integer powers of the 
imaginary number i, and exploitation of the identi- 
ty properties of and 1, such as: 

l*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 denom- 
inator, 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: 

e i«co _ U/ 

ln(e M ) — u, 

ln(u*v) zr ln(u) + ln(v), 

ln(u t v) 71 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 trigo- 
nometric 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!, (1+x) 20 



sin(17x), (x! + x 2 +... +x 13 ) 2 , 



or 



sin(x 1 +X2 + ...+x 5 ) in one minute. Try doing these by 
hand! 

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 ex- 
tended 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 Alpha Micro . . . 
so powerful, so reliable, so 
economical, you've never seen 
anything like it. Fast, easy and 
versatile: the revolutionary new 
Fujitsu M2201 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. 



Askyour dealer about Hard Times — the Fujitsu M2201 and CDC Phoenixdrivesfrom MicroAge. Availableto 
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 so 



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— , TRS-80 
LJ $34.95 



n PET 

LJ $29.95 



ADD $1.50 FOR 

MAILING AND HANDLING 

($6.00 FOREIGN) 



NAME 



ADDRESS 
CITY 



. STATE 



§ 



3G Company, Inc., Dept. BT 
Rt. 3, Box 2BA 
Gaston, OR 97119 



HOW TO BUY 
A BUSINESS 
COMPUTER 




WHEN TO BUY • WHEN NOT TO BUY #\ 

HOW TO CHOOSE CONSU LTANTS ©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. 

8 1 / 2 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 $1 2.95 

per copy. (CA residents add 6% sales tax) 

NAME 

ADDRESS 

CITY/STATE/ZIP. 

DCheck 
Card No 



DMasterCharge 



□ Visa 
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 ex- 
tensions 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(0) - 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 se- 
quence of expressions separated by commas. 

• The value returned when a function definition is ap- 
plied to its arguments is the value of the last expres- 
sion evaluated therein. 

• A conditional exit expression consists of the match- 
fix operator named WHEN, followed by one or 
more expressions separated by commas, followed 
by the matching delimiter named EXIT. 

• The value of a conditional exit is that of the last ex- 
pression 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 pro- 
ceeds 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 END- 
BLOCK 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 August 1979 © BYTE Publications Inc 



Circle 89 on inquiry card. 



FUNCTION DIFN(EXPN, VAR, N), 
LOOP 

EXPN^DIF(EXPN, VAR), 

WHEN N = 1,EXPN EXIT, 

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 expres- 
sions 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 struc- 
tured generalization of the REPEAT, WHILE, and 
halfloop constructs of some languages. 

Moreover, when a function definition is applied to fewer 
arguments than there are parameters, the extra para- 
meters 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), 
WHEN N = 0, EXPN EXIT, 
DIFN(DIF(EXPN, VAR), VAR, N-l) 
ENDFUN; 

As is frequently the case, the recursive version is more 
compact, and compactness is important on small com- 
puters. 

The block control-construct consists of the matchfix 
operator named BLOCK, followed by a conditional exit, 
then zero or more arbitrary expressions, then the mat- 
ching 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 in- 
terspersed 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 in- 
troducing additional mathematical operators or addi- 
tional programming control-constructs. The 
incrementally-extendable Pratt parser makes it easy to in- 
troduce 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 pars- 
ed the same as (X/Y)/2 rather than X/(Y/2 ). 

Prefix operators precede their operands. For example, 
to establish COS as a prefix operator so that we can 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 two8K block, 4K increments. Write Protectable 
in 2 blocks, Memory Disable using Phantom, Battery back up 
capability. 

Bank Select - Using output port 40H (Cromemco software 
compatible)-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.cDigital 



P.O. Box 906 Phone: 

Aurora, I L 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 

VDP42 3895.00 

VDP 44 4195.00 

16K Memory assem.. , 399.00 
PCS 80/15 679.00 

15% off on all other Imsai products 

CROMEMCO 

System III $1000 off . . 4990.00 

10% oft on all other Cromemco products 

TEXAS INSTRUMENTS 

810 Printer 1595.00 

CENTRONICS 

Microprinter 495.00 



Most items in stock for immediate delivery. Factory-fresh, sealed cartons. 

DATA DISCOUNT CENTER p.o.boxioo 

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 com- 
mand: 

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 opera- 
tional 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 advan- 
tages 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 ac- 
cess 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 con- 
venient 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 ex- 
pression, 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 



Part I: Inputs data on each household expenditure; lists, adds, updates, 
changes or deletes previously input items. Writes data to cassette tape. 
Part II: Reads data tape. Provides monthly and yearly summaries of 
financial data, single category summaries, and graphs a spending profile. 



Seawolf 



$10.00 



Ultra fast realtime graphics! Sink 
the ships with your moveable tor- 
pedo gun; extended play for high 
scoring. Uses joystick or keyboard 



this version of Life has variable 
speed pattern generation and nu- 
merous other special features. 



Creative Software products are now 
available at these fine dealers: 



PC Computer Computer Forum 

10166 San Pablo Ave. 14052 E. Firestone Blvd. 
El Cerrito, California Sante Fe Springs, Californi 

Barney Miller's Marin Computer Center 

232 E. Main St. 70 Sky view Terrace 

I Lexington, Kentucky San Rafael, California 



Computer Shoppe 
3225 Danny Pk. 
Metairie, Louisiana 

Memory Bank Inc. 
4128 Brady St. 
Davenport, Iowa 



Olson Electronics 
Sherwood Plaza Rte. 9 
Natick, Massachusetts 

Computerland 
4546 El Camino Real 
Los Altos, California 



Germany 
Hbfacker Verlag 
Tegernseerstrasse 18 
D-8150 Holzkirchen 
Munchen, West Gem 



Many other Creative Software products, including single 
and dual joysticks, are available for the PET. If your local dealer 
doesn't carry Creative Software products or program infor- 
mation, write directly to the address below. When placing an 
order please note: 

Add $1.50 shipping for each program ordered. California residents 
add 6% sales tax. VISA, MASTERCHARGE accepted. Include 
card number and expiration date. 



France 

S.I.V.E.A. 

20 rue de Leningrad 

75008 Paris, France \ 

Austria 

BYTE Computer Shop 
1040 Wien 
Favoritenstrasse 20, Austria 



Creative Software 

P.O. BOX 4030, MOUNTAIN VIEW, CA 94040 




Model DMB-6400 Series dynamic 64k byte RAMS incorporate the 
features which 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 incre- 
mented to 64k bytes in 16k 
increments. 

• Eight (8) 64k byte banks of mem- 
ory 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 MHzZ80 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 
□ DMB-4800/48KRAM 



□ DMB-3200/32KRAM 
D DMB-1600/16KRAM 



□ DM-6400/64KRAM 

□ DM-4800/48KRAM 



□ DM-3200/32KRAM 

□ DM-1 600/1 6K RAM 



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 & 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 LEVEL II AND DOS 



COMMAND PROCESSOR 'COMPROC' ***NEW PRODUCT*** 

Automatically load and execute any sequence of System and/or 

BASIC programs and data from power up. 

Command files created, saved, and edited in BASIC. 

Sophisticated options include interactive prompting and substitutional 

parameters. Allows non-computer personnel to easily execute 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 screendisplays, and more 

DISK SORT PROGRAM '00S0RT' 

SORT/MERGE multi-diskette sequential files. 

MULTIPLE variables and keys. User input/output sort exits. 

Includes GSF machine language in-memory sort, etc. 32 or 48K. 

COPY SYSTEM TAPES WITH 'COPSYS' 

Dealer Inquiries Invited 



REMODEL 

REMODEL + PROLOAD 

GENERAL SUBROUTINE FACILITIES 

DISKSORTPROGRAM 

Must specify 16, 32, or 48K on above. 

COMMAND PROCESSOR (DOS ONLY) 

COPSYS (Not DOS) 

For TAPES that TEST best 



|-RACET 



COMPUTES -3 
702 Palmdale, Orange C A 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. VISA. IYI/C. C.O.D. 
Calif, residents add 6% 
1714)637-5016 




SrFffiFLEET . 
fBIBfl sf^' 

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 battlewagons, 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 sheets • 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 in- 
stance 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 near- 
duplicate 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 computer- 
algebra 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 tradi- 
tional LISP lexical and syntatic rules, and muSIMP-77 
which employs the lexical rules and high-level syntax il- 
lustrated in the preceding examples. We used muSIMP-77 
to implement muMATH-79, but muSIMP-77, being a dis- 
guised version of LISP, is applicable wherever LISP is ap- 
plicable. We think that beginners are more comfortable 
with muSIMP than with LISP, hence they are more will- 
ing to learn the lovely semantics of LISP, and to ultimate- 
ly appreciate the Spartan syntactic simplicity of LISP, 
together with its consistency between program and data. 

To illustrate the convenience of Cambridge prefix as an 
internal representation, here is an example of how dif- 
ferentiation could have been implemented in muMATH: 

FUNCTION DIF(EXPN, VAR), 
WHEN EXPN = VAR, 1 EXIT, 
WHEN ATOM(VAR), EXIT, 
WHEN FIRST(EXPN = ' + , 

DIF(SECOND(EXPN),VAR) 
+ 

DIF(THIRD(EXPN),VAR) 
EXIT, 
WHEN FIRST(EXPN)= '* ... EXIT, 



WHEN FIRST(EXPN) = LN, 

DIF(SECOND(EXPN),VAR) 

/SECOND(EXPN) 

EXIT 

LIST(DIF,EXPN,VAR) 

ENDFUN; 

The built-in function named ATOM returns TRUE if 
its argument is a number or a name. The built-in func- 



184 August 1979 © BYTE Publications Inc 



Circle 18 on inquiry card. 



Circle 289 on inquiry card. 



tions named FIRST, SECOND, and THIRD, respectively, 
return the indicated elements of the list which is 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 pre- 
vent 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 im- 
plemented 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 im- 
plemented 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 IBM370, 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 omit- 
ting 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 ac- 
counts 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 op- 
tional ones controlled by flags are approximately 
similar to those of muMATH, except that REDUCE 
provides an important additional optional transfor- 
mation: cancellation of polynomial greatest 
divisors from the numerators and denominators of 
rational expressions. REDUCE can perform such 
simplifications as the following: 

2a 2 x 2 -a 2 bx-a 2 b 2 -ax 3 + axb 2 -x 4 + bx 3 2ax-hab + x 2 



a 2 x 2 -a 2 b-ax 2 -2axb-ab 2 -bx 2 +b 2 x 



a+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 quan- 
tumelectrodynamics problems of the high-energy 
physics. 




SOFTWARE AVAILABLE FOR F-8, 8080, 6800, 8085, Z-80, 6502, KIM- 
1, 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 IV2 I/O ports. Priced at 
$155 with one set of software. Personality modules are shown 
below. 



Part No. 


Programs 




Price 


PM-0 


TMS 2708 




$15.00 


PM-1 


2704, 2708 




15.00 


PM-2 


2732 




30.00 


PM-3 


TMS 2716 




15.00 


PM-4 


TMS 2532 




30.00 


PM-5 


TMS 2516,2716, 


2758 


15.00 



Optimal Technology, Inc. 

Blue Wood 127, Earlysville, VA 22936 
Phone (804) 973-5482 



List 
CROMEMCO 20% DISCOUNT 

System III 5990 

System II 3990 

System 1 1 with 1 Meg Disk 9995 

16KRam 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 

SoroclQ120 995 

Perkin Elmer Bantam CRT 996 

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

SARA TECH 

COMPUTERS ;s^™ 

P. 0. Box 692 

400 Base 

Venice, FL 

33595 

(813)485-3559 



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. 





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 built- 
in, and the latter is significantly more powerful than 
the muMATH integrator, which merely uses a few 
elementary rules such as: 



(u + v)dx — judx + jvdx, 

c u dx — cju dx if c= constant, 

v f(u)dx — v jf(u)du if - v . = constant, 
du/dx du/dx 

x M — In x, 

x a — — — ir a = const and ^ — 1, 



jsin(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 imple- 
ment many extensions. To have the system 
automatically replace every subsequent instance of 
mc 2 by E, we can merely enter the rule: 

LETM*C**2 = E; 

Thereafter, an expression such as 5*M*C**3 + 8 would 
be replaced automatically by 5*E*C + 8. There is also a 
mechanism for letting pattern variables represent ar- 
bitrary 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 + 2* LOG(B) — 
LOG(E**A*B**2*C) would simplify to -LOG(C). Final- 
ly, there is a mechanism for imposing extra prerequisites 
to replacements. To make the above LOG rules depen- 
dent upon the value of an option variable, we could 
change the first line to: 

FOR ALL X,Y SUCH THAT LOGEXPAND > 



New North Star Software 




• DOS+ $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 1 6 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 $20.00. 

Specify: 

North Star Disk/Meca Tape/Other 
Send for Free Literature 
INTERACTIVE MICROWARE INC. 
P.O. Box 771 - in- 

state College, PA 16801 ■ ■■■■ 

(814)238-8294 l|A|l 



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 implemen- 
tations. RLISP has the semantics of LISP clothed in the 
syntax of sweetened ALGOL. RLISP is applicable not on- 
ly to computer algebra, but also wherever LISP is ap- 
plicable, and I have found students far more receptive 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 inter- 
nal 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, subtrac- 
tion, multiplication, and exponentiation with 
positive integer exponents. There is frequently, at 
most, one division operation present, because ex- 
pressions are often put over a common 
denominator. If fractional powers, exponentials, 
logarithms, trigonometric functions or other irra- 
tional operations occur, they may usually be reduc- 
ed to numerous repetitions of a few unnested 
distinct irrational functions having trivial 
arguments such as x, x + y or 27tjc. 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 im- 
plicit. 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, recursive- 
ly 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 decreas- 
ing order of degree. 

REDUCE uses Cambridge prefix for some purposes, 
but REDUCE internally represents polynomials in a stan- 
dard form. A standard form is defined as an element from 
the underlying coefficient domain or as a leading term 
dotted with a reductum, where the latter is recursively 



The 



ftlQQ fiJJHl 

\M l\^\^ i ELECTRONICS 

An S-100 Bus Adapter/Motherboard 

for the TRS-80 

plus a whole lot more!!! 








• S-100 BUS INTERFACE 

• 6 SLOT MOTHERBOARD 



The 8100 allows a Riidii. Shack TRS-80 computer to be 
interfaced to the popular S-100 Bus for memory expansion 
and uxtended I/O capabilities. For example, you can now 
easily add more memory, floppy disc systems, PROM 
boards, printer interfaces, multi-purpose I/O boards, AC 
dcviccconlralleis.andfi whole hoslof olhervarieHperiph 

The 8100 has it sown built-in fi slot motherboard which 
includes our unique cord tfuide system which keeps the 
boards in their places. 

Tlie 8100 has support circuitry and sockets for eight 
I6K dynamic RAM chipsallowing you to expand the mem- 
ory of your TRS-80 by IfiK without having to buy any S-100 
RAM boards. 



• SERIAL RS232/20ma I/O 

• PARALLEL INPUT AND OUTPUT 

• SPACE FOR 16K DYNAMIC RAM 

• CAN USE LEFT OVER 4K CHIPS 

• LOW COST- PRICES START AT $185* 

• AVAILABLE IMMEDIATELY 



If you purchased an expansion memory kit for TRS-80 
you could be left with eight 4 K RAM chips and nowhere to 
put them! Well, they can go in the RAM sockets instead! 
Thai's right, you can use eitlier 4K or IfiK chips and ad- 
dressthem anywhere you like. 

The 8100 hnsn full KS232/20 ma serial interface who's 
features include: RS232 and 20 ma current loop inteifacc, 
software programmable baud rate from DC to 5fiK baud, 
software programmable modem control lines, on board 
DB-25 connector and much more. 

The 8100 also hits an S bit parallel input port and 
an 8 bit parallel output port. Both arc latched, haveboth 
positive and negative strobe inputs and outputs and have 
plenty ofdrive cupahility. 



PRICES START AS LOW AS $185* (S-100 bus interface only) 



RuhI 

! ELECTRONICS 



1429 Maple St. 

San Mateo, CA 

94402 

(415) 573-7359 



CALLOR WRITE FOR COMPLETE PRICING 
INFORMATION AND MORE DETAILS 
THE 8100 IS AVAILABLE FROM LEADING 
COMPUTER DEALERS OR FACTORY DIRECT 

DEALER INQUIRIES INVITED 

•Extra S-100 connectors, RAM support, 
I/O circuitry optional. 
USA DOMESTIC PRICE ONLY. 



fiuHl N "MINI-81QQ 

^!maZ!X!Z an <?.-inn riiq 



[ELECTRONICS AN S-100 BUS 

.tltllHUNIlb ADAPTER/MOTHERBOARD 
FOR THE TRS-80 



MINI-SIZE! 
MINI-PRICE! 




but MAXI-PERFORMANCE! 



HUH Electronics' 8100 is the established 
leader in S-I00/TRS-80 interfaces, running re- 
liably since November 1978 and giving you 
the most features for your dollar. But some 
folks don't need all the 8l00's versatility or 
want something more compact. 



So we created the MINI-8100. The MINI- 
8100 has the same proven reliable S-100 Bus 
interface circuitry as it's big brother coupled 
with a 4 slot shielded motherboard. It con- 
nects to the TRS-80 or to the expansion inter- 



face and opens up the vast world ofS-100 Bus 
products to the TRS-80 owner. 

For those of you who already own an S-100 
mainframe or motherboard, the MINI-8100 
may be purchased without (he built-in 
motherboard. (MINI-8100S). Just plug it in 
and go! 

The MINI-8100 has the same high quality as 
all HUH Electronics products — easy assem- 
bly, fully socketed, solder mask and silk 
screen component legend, comprehensive 
manual and design excellence that speaks for 
itself. 



PRICES 



MINI-8100 KIT 
MINI-8100 ASM 
MINI-8100S KIT 
MINI-8100S ASM 



- includes all parts and one S-100 connector 

- assembled and tested, includes four S-100 connectors 

- S-100 sized board, plugs into mainframe 

- same as above, but assembled and tested 



-S115 
-S155 
- $ 95 
-$125 



fiUHJ 

S ELECTRONICS 



1429 Maple St. 

San Mateo, CA 

94402 

(415) 573-7359 



•TRS-80 is a Radio Shack product. 



ORDERING INFO: The MINI-8100 is availa- 
ble from leading computer dealers or factory 
direct. Please include S4 for shipping and 
handling, CA residents include (-,% sales tax. 
We accept VISA or Mastcrcharge or we can 
ship COD. 
USA DOMESTIC PRICES ONLY. 

DEALER INQUIRIES INVITED 



Circle 168 on inquiry card. 



Circle 169 on inquiry card. 



August 1979 © BYTE Publications Inc 187 



Circle 95 on inquiry card. 




CP/M 



LOW-COST 

MICROCOMPUTER 

SOFTWARE 

CP/M® OPERATING SYSTEM: 

• Includes Editor, Assembler, Debugger and Utilities. 

• Standard version for BOBO, ZBO, or Intel MDS 
(other versions available.] 

• For IBM-compatible floppy discs. 

• S100-Diskette and Documentation. 

• S25-Documentation [Set of 6 manuals] only. 
MAC™ MACRO ASSEMBLER: 

• Compatible with new Intel macro standard. 

• Complete guide to macro applications. 

• $90-Diskette and Manual. 
SID™ SYMBOLIC DEBUGGER: 

• Symbolic memory reference. 

• Built-in assembler/disassembler. 

• $75-Diskette and Manual. 
TEX™ TEXT FORMATTER: 

• Powerful text formatting capabilities. 

• Text prepared using CP/M Editor. 

• $75-Diskette and Manual. 
DESPOOL™: 

• Background print utility. 

• Use with CP/M (version 1.4) 

• $50. Diskette and Manual. 



m DIGITAL 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 FICA, FED. TAX, 
UNEMPLOYMENT and much more. 

ALSO AVAILABLE 

ACCOUNTS RECEIVABLE $195 

ACCOUNTS PAYABLE $195 

INVENTORY CONTROL with 

BILLING & ACCT'S REC $550 

MANUALS $29.95/ea. 

CUSTOM PROGRAMS & OTHERS 

CAI 

1st Security Bank Bldg. 

3306 W. Walnut Suite 507 

Garland, TX 75042 

PHONE: (214) 272-3211 

With money order or certified check, orders shipped within 

24 hours. 



defined as a standard form of lower degree in the main 
variable of the leading term. The underlying coefficient 
domain can be indefinite-precision integers, indefinite- 
precision 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 sum- 
marize 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 in- 
termediate 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 . + ADDF(RED U, V) 
ELSE LT V .+ 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 .+ ADDD(D, RED V); 

SYMBOLIC PROCEDURE ADDFF(F1, F2); 
IF ADDITIVEIDENTITY Fl THEN F2 
ELSE IF ADDITIVEIDENTITY F2 THEN Fl 
ELSE LPOW U .*F1 .+ F2; 

In listing 1, use has been made of the ADDITIVE- 
IDENTITY 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 opera- 
tions than any other computer-algebra system. Here are 
some highlights: 

• The system provides arbitrary-precision floating- 
point as well as indefinite-precision arithmetic. 

• Besides the usual unavoidable algebraic transforma- 
tions, there are numerous optional automatic ones 
controlled by flags or which are employed by ap- 
plying 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, MAC- 
SYMA can perform the factorization: 

3w 2 z 6 + 2w 3 z 4 + 114xy 2 z 3 - 10w 2 y 2 z 3 + 
45w 2 x 3 z 3 - 3w 2 z 3 + 76wxy 2 z - 2w 3 z - 380xy 4 + 
1710x 4 y 2 + 10w 2 y 2 - 45w 2 x 3 - 
(3z 2 + 2wz - 10y 2 + 45x 3 )(w 2 y 3 + 38xy 2 - w 2 ). 

• There are numerous built-in transformations for 
fractional powers, exponentials, logarithms, 
trigonometric functions, inverse trigonometric 
functions, hyperbolic functions, and inverse hyper- 
bolic functions. There are also transformations for 
some higher transcendental functions such as the er- 
ror, gamma, be:a, 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 meta- 
LISP influence. 

• There is a powerful pattern-matching facility and 
an extendable Pratt parser. 

• Symbolic differentiation and integration are built- 
in. The latter employs a powerful Risch algorithm, 
among other techniques. There is also a distinct 
program for definite integrals, which employs con- 
tour integration and other techniques besides in- 
definite integration. 



Circle 378 on inquiry card. 



Expand your TRS-80. 

Save $100. 

Meet the Vista V80 Mini Disk System. The perfect way 
to upgrade your TRS-80* system. Inexpensively. 
(Our $395.00 price is about $1 00.00 less than the 
manufacturer's equivalent.) Here's how it can help you. 

23% more storage capacity. Useable storage 
capacity is increased from 55,000 to 65,000 bytes on 
drive one. 

8 times faster. While electronically equal to the TRS- 
80 Mini-Disk system, track-to-track access is 5ms 
versus 40msfor the TRS-80. 

Better warranty. The V80 carries a 1 20 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 



1 320 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 

C requires low- cost option modules 3 

* Works with 6502 , 68OO and other micros. 

SPECIAL OFFER: Buy the Kit Cupper case alpha- 
numeric option included) & get the Book at 1/2 price. 

ELECTRONICS, DEPT.8-B, 1D2QW. WILSHIRE BLVD.. OKLAHOMA CITY. OK 73116 



I'm Sold, PLEASE RUSH CD SEND FREE CATALOG 

C ) TVT-65/8 Kit & Cheap Video Cookbook - $42.95 (enclosed] 
C D TVT-65/8 Kit only Cbook required for assembly) -$39.95 



address:, 
city: 



. state: 



zip: 



ELECTRONICS DEPT.8-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 perfor- 
mance. 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 out- 
put; if-then-else; error trapping. Field proven for over 2 years. 

EDIT 

A powerful text editor with change, delete, replace commands. 
Automatic display of modification or context changes; 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 soft- 
ware. 

Complete package: $760.00 

Also (not including SDOS) available for SWTP, Exorcisor, SSB 
and MSI DOS. 

Write for free catalogue. Sizable distributor discounts. 

SOFTWARE DYNAMICS 

2111 W. Crescent Avenue, Suite G 

Anaheim, CA 92804 

(714)635-4760 




• PET 2001 • PET 2001 • PET 2001 • PET 2001 • PET 2001 • PET 2001 • PET 2001 

i s 

« Programmer's Guides § 
I for the PET™ 3 



TIS 




WORKBOOKS FOR THE COMMODORE PET 2001 
Getting Started with Your PET WB-1 $4.00 

Covers the fundamentals of PET BASIC: 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 Graphics WB-3 $4.95 

Covers use of cursor control and special graphics 
symbols to draw plots, histograms, and sketches. 

PET Cassette I/O WB-4 $4.95 

Covers OPEN, CLOSE, string and numeric data files. 
Miscellaneous PET Features WB-5 $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. 

TIS 

P.O. Box 921 

Los Alamos, NM 67544 



Dealer 

Inquiries 

Invited 



Money back guarantee M 



We also sell PET Software. Write for details. 



PET is a trademark of Commodore Business Machines g 



§ 



• PET 2001 • PET 2001 • PET 2001 • PET 2001 • PET 2001 • PET 2001 • PET 2001 



|-0 



• There is a powerful function which employs 
L'Hospital's rule and other techniques to computer 
limits. 

• There are powerful functions for determining in- 
finite and truncated generalized power-series expan- 
sions of expressions. 

• Laplace transforms and their inverses are built-in. 

• There is a function which uses a variety of tech- 
niques to seek closed-form solutions to first-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 transfor- 
mation: 

^ j 4 4' 2(n+l)(63n 4 +112n 3 +18n 2 -22n+3)4" _ 2 
N) 693( 2 n n ) ~ 231 



• Equations are legitimate expressions. Two equa- 
tions or an equation and a nonequation can be ad- 
ded, multiplied, etc, and there is a powerful func- 
tion named SOLVE which uses a variety of tech- 
niques to seek solutions to one or 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 4 = ex + 1. 

As another example, SOLVE is able to determine 
that the exact solutions for the two simultaneous 
nonlinear equations: 



z 4 + X 2 Z 2 



+ xz 2 + y 2 + x 3 = 2yz 2 + x 2 y + xy, 
yz 2 + 2xyz + xy = 2xz 3 + 2x 2 z + y 2 , 

are the curve (x = r, y = s 2 , z = r) together with the 
surface (x=r, y =s 2 + r, z = s), where r and s are ar- 
bitrary parameters. 
• There is an extensive user-contributed program 
library which includes packages for vector and ten- 
sor analyses, ordinary and variational optimiza- 
tion, 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 ma- 
jor difference from the REDUCE polynomial representa- 
tion is that in MACSYMA the variables are also implicit 
and stored separately, only once per complete 
polynomial. This usually saves additional space in the ex- 
pressions. 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 addi- 
tional minimum of 100 K bytes is recommended for 
workspace. The variety of built-in transformations cur- 
rently 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 in- 
definite or infinite size. 

• Symbolic differentiation and integration are built- 
in, with the latter employing the powerful Risch- 
Norman algorithm. 

• There is a particularly elegant built-in facility for 
determining Taylor series expansions. 

• There is a built-in SOLVE function capable of deter- 
mining the exact solution to a system of linear equa- 
tions. 

• There is a powerful pattern-matching facility which 
serves as the primary mechanism for user level ex- 
tensions. 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 expres- 
sion such as cos(4*b), the response will be a cor- 
responding expanded expression such as: 

8 cos 4 (B) - 8 cos 2 (B) + 1 



Omikron transforms 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-80* 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 plug- 
in modules. They don't require any circuit 
changes, are easy to install, and they don't 
interfere with the normal operation of your 
TRS-80? All your original software, includ- 
ing Level III BASIC will still run properly. 
Omikron products require 16K L II BASIC 
and the TRS-80* Expansion Interface. 

• • • 
MAPPER I is a memory management unit 
which adapts your TRS-80* to run stan- 
dard 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 pack- 
age plus a disk adapter module which 
allows both 5" and 8" drives to run on the 
same cable. Drive selection is under soft- 
ware control to permit easy file transfer 
between the drives. With cable, $249. 
CONVERSION -If you purchase MAP- 
PER I or II and plan to use only mini- 
drives, Omikron will transfer CP/M* 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 Publications Inc 



Thus, programs resemble a collection of math for- 
mulae, much as they would appear in a book or ar- 
ticle. 

• SCRATCHPAD has a particularly powerful 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 ra- 
tional functions in b and c, etc. For large expres- 
sions, 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 coeffi- 
cient 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, con- 
tact Richard Jenks at the IBM Thomas ] 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 member- 
ship 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. Member- 
ship 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, com- 
puter education, and recreational math. Consider the 
following: 

• How frequently approximate numerical computa- 
tions 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 in- 
trigued 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 compo- 
nent of scientific programming skills. ■ 



Bibliography 



1. Aho, A V, Hopcroft, J E, and Ullman, J D, The Design and 
Analysis of Computer Algorithms, Addison Wesley Publishing 
Co, 1975. 

2. Borodin, A, and Munroe, I, The 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. 

Petrick, S R (editor), Proceedings of the Second Symposium on 
Symbolic Manipulation, ACM Inc. 1971. 

Proceedings of 1974 Eurosam Conference, ACM SIGSAM 
Bulletin 8, August 1974. 

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

1 5. SI AM Journal on Computing, June 1 979. 

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. 



10 



11 



12 



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



Call or Write for Details 



* * ^V^'*'//^ 






PROGRAM 

GALACTIC BLOCKADE RUNNER 

SCI-FI GAME SAMPLER 

R/T LUNAR LANDER 

MICRO-TEXT EDITOR 

OTHELLO III 

AIR RAID 

MICRO-CHESS 

BRIDGE CHALLENGER 

APPLE 21 

STAR WARS/SPACE MAZE 

RENUMBER 

DISK RENUMBER 

PILOT 2.0 

PILOT 3.0 

APPLE TALKER 

APPLE LIS'NER 

TIC-TAC-TALKER 

SYSCOP 

ANDROID NIM-2 

SNAKE EGG 

LIFE 2 

DCV-1 

MUSIC MASTER 

DISK MUSIC MASTER 

TRS-80 CP/M 



DESCRIPTION 

• AN EXCITING SPACE WAR GAME WITH GRAPHICS 

• 3 GAMES— LUNAR LANDER— STAR MONSTER— SPACE BATTLE 

• A REAL TIME LUNAR LANDER WITH GRAPrllCS 

• FORMAT TEXT— SAVE & LOAD TO TAPE— OUTPUT TO PRINTER 

• A STRATEGY BOARD GAME— PLAY AGAINST COMPUTER OR OTHERS 

• A REAL TIME, ARCADE TYPE SHOOTING GAME IN MACH. LANG. 

• PLAY CHESS WITH YOUR COMPUTER-VARIOUS LEVELS OF DIFF. 

• DON'T WAIT FOR OTHERS TO PLAY-YOUR COMPUTER'S READY 

• BLACKJACK WITH HIRES GRAPHICS 

• SCI-FI GAMES FOR THE APPLE 

• RENUMBER YOUR BASIC PROGRAMS-RENUMBERS EVERYTHING 

• SAME AS ABOVE, BUT ON DISK 

• THE EDUCATIONAL LANGUAGE. IN MACH. LANG.— INC. EDITOR 

• THE DISK VFRSION OF THE ABOVE 

• YOUR APPLE SPEAKS! NO NEW HARDWARE REQUIRED 

• SPEECH RECOGNITION THE EASY WAY-GREAT WITH THE TALKER 

• TIC-TAC-TOE USING SPEECH SYNTHESIS AND RECOGNITION 

• MAKE BACKUP TRS-80 SYSTEM TAPES THE EASY WAY 

• GAME OF NIM WITH ANIMATED ROBOTS AND SOUND 

• A BETTING GAME WITH ANIMATED SNAKES AND SOUND 

• 100 GEN. PER MIN. LIFE & BATTI F OF LIFE W/ANIMATION & SOUND 

• PUT SYSTEM TAPES ON DISK EVEN IF IN SAME MEM AS DOS 

• ENTER SHEET MUSIC-THE TRS-80 THEN COMPILES & PLAYS IT 

• SAME AS ABOVE BUT ON DISK W/MANY SELECTIONS 

• OPENS UP THE WHOLE WORLD OF CP/M SOFTWARE TO THE TRS-80 



TRS-80 

r - *° 

-Eg 



> 

■0 
T 

r 
pj 



• • • 

• • • 

• • • 

• • • 

• • • 



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

o 

SD 

o 




CD 




AVAILABLE FROM THESE FINE MICRO COMPUTER DEALERS 



CAPITOL COMPUTEK SYSTEMS 
3396 EL CAMINO AVE. 
SACRAMENTO CA 95821 

TRS-80 SOFTWARE EXCHANGE 
17 BRIARCLIFF DR. 
MILFORD NH 03035 

OP AMP TECH BOOKS 
1033 N. SYCAMORE AVE. 
LOS ANCLES CA 90038 



COMPUTER CABLEVISION, INC. 
2617 42ND ST. NW 12 
WASHINGTON DC 20007 

KENNEf.Y SYSTEMS 
74 BROAD ST. 
LYNDONVILLE VT 058SI 

ADVANCFD COMPUTER PRODUCTS 
13108 i£ EllNriF.R 
SANTA ANA CA 92705 



HOBBY WORLD ELECTRONICS 
19355 BUSINESS CENFER DR. #6 
NORTHRIDGE CA 91324 

AUGUST AUTOMATION 
28 MILK ST. 
WESTBORO MA 01581 

THE CPU SHOP 
39 PLEASANT ST. 
CHARLESTOWN MA 02129 



J&J ELECTRONICS LTD 
28COLLINGTONAVE. 
BEXHILL-ON-SEA. E. SUSSEX. ENG. 

COMPUTER VILLAGE 
931 SW 87TH AVE. 
MIAMI FL 33174 

L. C. SALES 

100 HINCHEY AVE. »705 

OTTAWA. ONT.. CAN. KIY4L9 



Circle 202 on inquiry card. 



BYTE August 1979 193 



GYTElseugs 



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 avail- 
able on the HP67/97, 
users could probably cor- 
rect 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 pro- 
gram operating instruc- 
tions 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 pro- 
perly 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-Tac- 
Toe: A Programming Exer- 
cise" (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(0) to 
give a random number be- 
tween and 1. 

A Bug in the Field 

John P Costas has inform- 
ed us that several errors 
crept into listing 1 of "Cryp- 
tography 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 




\*o* 



I'd 



from Computer Headware 
. . . the Self-Indexing Query System 

for your Apple II, North Star, or CP/M machine 



Distributed by: 

i Infoimation Unlimited / 219-924-3522 
P.O. Box 8372. Merrillville, Indiana 4641 

i Lifeboat Associates / 212-580-0082 (CP/M model only) 
2248 Broadway, Suite 34, New York City 10024 

i Structured Systems Group, Inc. / 41 5-547-1 567 
5208 Claremont Avenue, Oakland, California 94618 




194 August 1979 © BYTE Publications Inc 



Circle 236 on inquiry card. 



Event Queue 



AUGUST 1979 



August 1-3 
Microcomputer Applica- 
tions, Southern Technical 
Institute, Marietta GA. The 
emphasis of this seminar will 
be on the applications of 
microcomputers in industry. 
Software, hardware and in- 
terfacing 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 sub- 
mitted and invited papers, 
and a large trade show of 
graphics and image process- 
ing 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 process- 
ing equipment. Contact 
Maxine D Brown, SIG- 
GRAPH 79 Exposition, 
Hewlett-Packard, 19400 
Homestead Rd, Cupertino 
CA 95014. 

August 6-10 
Modern Communication 
Systems: Analysis and 
Design, University of 
Southern California, Los 
Angeles CA. This course is 
devoted to the analysis and 
design of modern com- 
munication systems, with 
emphasis on the derivation 



of practical design equations 
useful for trade-off studies 
and overall synthesis. Con- 
tact 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 program- 
ming experience using ex- 
tended BASIC and FOR- 
TRAN, analyze technology 
trends in the microcomputer 
field, and assess the impact 
of VHSI/VLSI. Contact 
University of Southern 
California, Continuing 
Engineering Education, Los 
Angeles CA 90007. 

August 8-10 
SIGPLAN Symposium on 
Compiler Construction, 

Boulder CO. This sym- 
posium will consider 
methods of, and experience 
with, constructing com- 
pilers. The emphasis will be 
less on theoretical methods 
and more on techniques ap- 
plied to real compilers. Con- 
tact Professor Leon 
Osterweil, Dept of Com- 
puter 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 Com- 
puting Machinery (ACM) 
Special Interest Group on 
Personal Computing 
(SIGPC). A large trade show 



IMMEDIATE 
DELIVERY 

Domestic & Export 

DEC LSI -u 
COMPONENTS 

A full and complete 
line with software 
support available. 



mini Computer 
Suppliers, Inc. 

25 CHATHAM ROAD 

SUMMIT, NEW JERSEY 07901 

SINCE 1973 



(201) 277-6150 Telex 13-6476 




TCS 




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, under- 
lining, 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 

• N J— Ragged right margin 

• SO file— Read input source from 'file' 

• RD file —Read input data from 'file' 

INFORMER 

This program is a general purpose data management and retrieval system for inven- 
torycontrol, sales analysis, project scheduling, billing, check writing, and mailing lists. 

Informer is a collection of commands for creating, updating, manipulating, dis- 
playing, and analysing well defined data files. 

Here are a few sample commands: 

• NEWF1LE— 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 system. 
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 Avenue, Brooklyn, New York 11204, (212) 436-3777 



Circle 88 on inquiry card. 



August 1979 © BYTE Publications Inc 195 



Circle 93 on inquiry card. 



,-,.x ;,!;■;>•:■ ■ •: ■-;.-.: ::■ 



25 START-AT-HOME 
COMPUTER BUSINESSES 

In "Low Capital, Startup 
Computer Businesses" 

CONSULTING • PROGRAMMING • MICRO COMPUTER 
OPPORTUNITIES • SOFTWARE PACKAGES • FREELANCE 
WRITING • SEMINARS • TAPE/DISC CLEANING • FIELD 
SERVICE • SYSTEMS HOUSES • LEASING • SUPPLIES • 
PUBLISHING • HARDWARE DISTRIBUTORS • SALES 
AGENCIES • USED COMPUTERS • FINDER'S FEES • 
SCRAP COMPONENTS • AND MORE . . 

Plus — ideas on moonlighting, going 
full-time, image building, revenue 
building, bidding, contracts, marketing, 
professionalism, and more. No career 
tool like it. Order now — if notcompletely 
satisfied, return within 30 days for full 
immediate refund. 

• 8V2 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 



DVISA D Master Charge 
Exp. Date 




UGHT-PENtrs^o 

PLUGS RIGHT IN! Exclusive design includes two 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) 5738217 

Post Office Box 4139, Foster City, CA 94404 

□ Please send me TRS-80 Light Pens 

($24.95each enclosed. Calif, residents add tax). 

□ Send your catalogs. 



Name_ 



Address 

City 

TRS-80 is a trademark of Tandy Corp. 



_State_ 



-Zip- 



BY79 



of personal computer and 
graphics equipment is plan- 
ned to accompany an assort- 
ment of papers, panels, user 
group meetings, workshops, 
and person to person poster 
booths. Contact Bob Gam- 
mill, 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, program- 
ming, 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 con- 
ference will feature perfor- 
mance 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 at- 
tendee with the information 
necessary to model complex 
systems using Q-GERT. Em- 
phasis will be on the pro- 
cedures for modeling and 
analysis. Contact Pritsker 
and Associates Inc, POB 
2413, W Lafayette IN 47906. 

August 13-17 
High Speed Computation: 
Vector Processing, The 

University of Michigan, Ann 
Arbor MI. In this course, 
the architectural, software, 
and algorithmic issues of 
vector architecture are coor- 



dinated by discussion of 
concepts in computer archi- 
tecture and detailed study 
of current vector processors 
and their use. Contact 
Engineering Summer Con- 
ferences, 400 Chrysler 
Center, North Campus, The 
University of Michigan, Ann 
Arbor MI 48109. 

August 19-22 
International Conference on 
Computing in the 
Humanities, Dartmouth Col- 
lege, Hanover NH. This 
conference is intended to 
foster computer research and 
technique in all areas of 
humanistic study; to pro- 
mote international coopera- 
tion 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 Computa- 
tion Center, Dartmouth Col- 
lege, Hanover NH 03755. 

August 19-24 
1979 Symposium for In- 
novation in Measurement 
Science, Hobart and William 
Smith Colleges, Geneva NY. 
Sponsored by the Scientific 
Instrumentation and 
Research Division of the In- 
strument 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 instrumen- 
tation, and advances in in- 
dustrial measurement. Con- 
tact 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 soft- 
ware 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 manufac- 
turers, distributors, and 
publications in the small 
computer field. A lecture 
series will include topics of 
interest to business and pro- 
fessional people, hobbyists, 
and the general public. Con- 
tact National Small Com- 
puter Show, 74 E 56th St, 
New York NY 10022. 



SEPTEMBER 1979 

September 4-6 
International Conference 
and Exhibition on Engineer- 
ing 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. Con- 
tact Dr R Adey, Engsoft, 6 
Cranbury Place, Southamp- 
ton S02 OLG, ENGLAND. 

September 4-7 
Compcon Fall'79, Capital 
Hilton Hotel, Washington 
DC. This eighteenth IEEE 
Computer Society Interna- 
tional conference will pre- 
sent the latest developments 
in microprocessor architec- . 
ture, 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 ad- 
vanced business equipment. 
The exposition will be ac- 
companied 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 Conven- 
tions 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. 

September 25-27 
WPOE 79, San Jose Con- 
vention Center, San Jose 
CA. This show will be 
dedicated to word process- 
ing 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 of- 
fice. Contact Cartlidge and 
Associates Inc, 491 Macara 
Ave, Suite 1014, Sunnyvale 
CA 94086. 

September 26-29 
MIMI 79, Queen Elizabeth 
Hotel, Montreal, Canada. 
This symposium is intended 
as a forum for the presenta- 
tion and discussion of recent 
advances in mini and 
microcomputers and their 
applications. Special em- 
phasis 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 microcom- 
puters and small computer 
systems of interest to 
businesspeople, hobbyists, 
professionals, etc. Lectures 
and seminars will be 
presented for all categories 
and levels of enthusiasts, in- 
cluding introductory classes 
for novices. Contact North- 
east Exposition, POB 678, 
Brookline MA 02197. 
Text continued on page 200 



Circle 102 on inquiry card. 



Retro-Graphics™ 



mm / 






!:h^^ 



or your uumt> terminal. The Retro 
Graphics PC card mounts easily in the Lear 
Siegler ADM-3A to provide you with an afford- 
able graphics computer terminal. 
Features: 

• Z-80 Based • Point Plotting 

• 512 by 250 • Automatic Vector 
Dot Matrix Generation 

• Simple Plug-in • Optional TEKTRONIX 
Interconnect Software Compatibility 

You will be impressed with the packaging, per- 
formance and price of the Retro-Graphics card. 
Write or phone today for complete specifications. 

DIGITAL ENGINEERING, INC. 

1787 Tribute Road, Suite K 

Sacramento, CA 95815 

(916) 920-5600 



Computer Lab of New Jersey 

Computer Lab sells the best S-1 00 Bus products at the best 
possible prices. Notonlyare ourpricesgreat, so isourdeliv- 
ery. We offer a 1 0% discount on most major lines, plus a 5% 
additional discount for a cash purchase. 



Seattle Computer Products 1 6K 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 2 I/O Inter- 
face 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 I 



BUSINESS 

Appointment log by M. Kelleher. Perfect for the 
professional. Accepts name and address, meeting 
start and endings, subject matter, derives elapsed 
time. For Level II, 16K $9.95 

Payroll by Stephen Hebbler. Comprehensive 24 pg. 
manual with step-by-step instructions included in the 
package. Supports W2 and 941 information. D, 
$59.95. 

Mail List I by Michael Kelleher is the economy model 
of disk-based mailing list programs. Uses a single 
drive and handles up to 1400 names per disk, plus 
provisions for sorting options. 16K, D $19.95. 



Text-80 by Frank Rowlett. Fully-documented text 
processing system for disk. Create, edit, move, 
delete, insert, change, print words or lines. D, 32K 
$59.95 

KVP Extender by Lance Micklus. Corrects keyboard 
bounce, upper case lock, permits use as a terminal, 
screen printing. On tape ($24.95) or disk ($29.95) 



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 Micklus 

Turns your TRS-80 into a computer terminal. 
Features include CONTROL key, REPEAT 
key, ESC key, RUN key and a functioning 
BREAK key. Lets you list incoming data on 
line printer. Reprogram RS-232-C switches 
from keyboard, making baud rate changes 
simple. Level II, 16K $49.94 
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 



Batter Up by David Bohlke. Level II, 16K $5.95 

Ten Pin by Frank Rowlette. A game of coordination, 
the scoring is true to the rules of the sport. Level II, 
16K$7.95 

Taipan by Art Canfil. Sail the China seas, 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. 



Mail 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 Miller 
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 1 1 , 1 6K $25.00 

Inventory 1 1. 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 com- 
prehensive, 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 the Z80 equivalent. L 
II, 16K $15.00 

Basic Statistics by Steve Reisser. Pearson product- 
movement 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 bounce, 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 + 

Includes all the features of the original 
NEWDOS and adds 7 new utilities, including 
SUPERZAP, Disk Editor/Assembler, Dis- 
assembler, and Level I BASIC for Disk. 

$99.95 



ACTION GAMES 

Slalom by Denslo Hamlin. Choose between Slalom, 
Giant Slalom and Downhill. Level II, 16K $7.95 

X-Wing Fighter II by Chris Freund. Piloting 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 



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 battlestar 
... can you find the gold, rescue the princess, 
discover the plans and safely escape? Level 
II, 16K $9.95. 



Amazin' Mazes by Robert Wallace. Ever -changing 
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 byDr. 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 
comparableunits! Single drive - $399.00; Dual Drive - 
$799.00; Cable (required) - $29.95. 

Floppy Armour Protective envelopes for shipping 
floppy disks, of high-density, ultra-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 TacToe 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 

'Round the Horn by Rev. George Blank. You're the 
captain of a clipper ship racing from New York to San 
Francisco. Level II, 16K $9.95 



Concentration by Lance Micklus. One of the most 
popular television games. 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 M. Kelleher. Combines chess 
clock features with ability to record your moves while 
action is fast and furious. Level II, 16K $7.95 

Sargon Chess by Dan & Kathe Spracklen. Winner of 
the 1978 San Jose Microcomputer Chess Tourna- 
ment. Level II, 16K $19.95 

Mastermind 1 1. 2 by Lance Micklus. Lets you and the 
computer take turns making and breaking codes. 
Level II, 16K$7.95 



T|« 



TRJ-OO Software Exchange 

l*603*675*5M4 

17 BRIAR CLIFF DRIVE MILFORD, NEW HAMPSHIRE 03055 



PERSONAL 

RPN Calculator by Russell Starkey. A self-document- 
ing calculator program. Uses Reverse Polish Notation 
with 4-level stack, 100 memories, scientific functions. 
Level II, 16K $9.95 

Home Financial Management by M. Kelleher. Turns 
your computer into a personal financial advisor. Level 
II, 16K$9.95 

Tarot by Frank B. Rowlett, Jr. Probably the best 
future-gazing type program ever written. Try it - 
you'll like it! Level I or II, 16K $9.95 

Ham Radio by M. Kelleher. Amateur Frequency Allo- 
cations, 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 Micklus. 33 different 
budgets can be easily adapted by user to fit his 
individual needs. A 2-part program, entry and 
search. Level II, 16K $9.95 

Advanced Personal Finance by Lance Micklus. Same 
as above with advanced analysis routine. Supports 
Disk Files D, 32K $24.95 



jatsa 





Magazine Section 

Appfe Seed/ 

^ If you're an Apple II pioneer, 
^u you've been longing for a software 
2£ publication and hoping someone 
5^ would get around to it. 
8£ We have. Apple Seed is to the 
^5 Apple II what SoftSide is to the 
^TRS-80. And it's brand new. The 
3?first issue will roll off the press in 
3?August or September. Apple II 
t& enthusiasts will eat up this special 
!p introductory offer! 



SoftSide is for pioneers . . . those 
hardly souls who have adopted a 
TRS-80, installed it in their living- 
room or office, and unleashed their 
imaginations. 

SoftSide helps you discover the 
endless variety of tasks your new 
friend wil] 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 pro- 
grams, educational aids, business 
programs. We help you realize your 
expectations, fantasies, and 
dreams. 

SoftSide means Software! 



A bi-monthly magazine for the 
serious programmer who wants to 
know HOW his computer works and 
WHY. PROC/80 emphasizes tech- 
nique rather than canned programs. 
The subjects include machine lan- 
guage, construction projects and 
specialized applications software, not 
just for the advanced computer 
hobbyist, but for the computerphile 
who wants the most from his 
machine. 





DEALER 

INQUIRIES 

INVITED 

For further details call: 
603-673-5144 



SOFTSIDE 

□ 1 Year- 12 issues 

PROG/80 

□ 1 Year -6 issues 

APPLE SEED 

D 1 Year- 12 issues 



Exp. Date . 
Signature - 
Name 



$18.00 

$20.00 
$15.00 



PO Box 68 Milford, NH 03055 

D USA first class $25.00 - 1 yr. 
O APO/OVERSEAS surface $25 - 1 yr. 
□ CANADA/ MEXICO $25 - 1 yr. 
D OVERSEAS airmail $30 - 1 yr. 



.Interbank # [M/C only]. 



Address . 
City 



.State. 



_Zip. 



Telephone orders accepted for Master Charge or VISA accounts. Call Monday 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 sympo- 
sium will consist of a blend 
of paper and panel discus- 
sions with major emphasis 
on microcomputer applica- 
tions. Both hardware and 
software topics presenting 
state-of-the-art and state-of- 
the-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 an- 
nual exhibition and con- 
ference of electronic and 
microelectronic packaging 
and production equipment 
will feature displays of elec- 
tronic and microelectronic 
materials, hardware, tools, 
supplies and test instru- 
ments. Contact Industrial 
and Scientific Conference 
Management Inc, 222 W 
Adams St, Chicago IL 
60606. 

October 14-17 
International Data Process- 
ing Conference and Business 
Exposition, Town and 
Country Hotel, San Diego 
CA. Contact Data Proces- 
sing Management Associa- 
tion, 505 Busse Highway, 
Park Ridge IL 60068. 

October 15-18 
Sixth Information Manage- 
ment Exposition and Con- 
ference, New York Col- 
iseum, New York NY. Con- 
tact 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 Perfor- 
mance Evaluation Users 
Group sponsored by the Na- 
tional 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 Sys- 
tems Annual Conference, 

Granit Hotel, Kerhonksen 
NY. The theme of this con- 
ference 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, "Com- 
puter Technology for Space 
and Aeronautical Systems in 
the Eighties," will be carried 
out by a series of panels, in- 
vited presentations, and 
contributed papers which 
will bring computer system 
technologists together with 
specialists in the application 
of embedded computers in 
space and aeronautics. Con- 
tact 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, "In- 
strumentation for Energy 
Alternatives," will em- 
phasize current practices in 
instrumentation design and 
implementation. Contact In- 
strument Society of 
America, 400 Stanwix St, 
Pittsburgh PA 15222. 

October 28-30 
The Tenth North American 
Computer Chess Champion- 
ship, Detroit Plaza, Detroit 
Michigan. Sponsored by the 
Association for Computing 
Machinery, this is a four 
round, Swiss style tourna- 
ment, with the first two 
rounds to be played on Oc- 
tober 28th (1 PM and 7:30 
PM), the third on October 
29th (7:30 PM), and the 



final round on Tuesday, Oc- 
tober 30th (7:30 PM). Con- 
tact Monroe Newborn, 
McGill University, School of 
Computer Science, 805 Sher- 
brooke St W, Montreal PQ, 
CANADA H3A 2K6. 

October 29 - November 2 
Applied Interactive Com- 
puter 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 in- 
cluding configuration selec- 
tion 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 an- 
nual West Coast small com- 
puter and office automation 
systems conference and ex- 
position will feature over 
100 company exhibits and 
60 conference sessions cover- 
ing a variety of data pro- 
cessing, word processing, 
data communications, 
management hardware, soft- 
ware, and service topics. 
Contact the Interface 
Group, 160 Speen St, Fram- 
ingham MA 01701. 



Clubs and 
Newsletters 



Sacramento Micro- 
computer Users Group 

According to Push & Pop, 
the newsletter of the 
Sacramento Microcomputer 
Users Group, this organiza- 
tion meets the fourth Tues- 
day 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 se- 
cond meeting is usually 
more informal with free- 
wheeling discussion and pro- 
blem solving. Membership 
in the Northwest Computer 
Society, which includes the 
impressive Northwest Com- 
puter 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 Instru- 
ments' race for the home 
computer, an S-100 bus arti- 
cle, 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 Briar- 
wood, Carrollton 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. 



EasyWriter™ 

a 

Word Processor 

for your 

Apple-II 

If you've been hunting high and low for 
a word processor that you can live with, 
try on EasyWriter — a word processor you 
can't live 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 



ms-80 

VOTRAX 

COMPUTALKER 

SYNTHESIZERS 



Our ANGLOPHONE ZG0/G0G0 program converts ordinary 
English ASCII in reol rime into phonetic codes to drive your 
speech synthesizer. 

For TRS-80 (Level II 16K cassette or 32K diskette) $45 

For Computolker (requires CSR1 ) $45 

ForVotroxVSK S100 

For Votrox VS-6 $200 
(CUTS, CP/M G", North Star 5", Paper Tope) 

TALKING TERMINAL 

Our ANGLOTERM program turns any TRS-GO Level 1 11 6K with 
Expansion Interface, RS-232-C Doord and Voice Synthesizer 
into a talking computer terminal. Cossette or diskette $145. 

UPPER CASE, 201 1 Silver Ct. E.. Urbano, IL 61801 

(217) 364-4362 VISA/Master Charge 



innnrroTiT?nrrjr5TBTyirB"6T^ 



yTo further improve 
service to our customers we 
have installed a toll-free 
WATS line in our 
^Peterborough, New 
Hampshire office. 
If you would 
like to order a 
^subscription td 
BYTE, or if 

Toll-free x youhavea 



i 



BYTE's New 



% 



Subscriber 
W.A.T.S. Line 



(800)258-5485 

We thank you and look 
| o forward to serving you. 



question relat-* 
ed to a BYTE' 
subscription,) 
you are invited\ 
to call 3 
(800)258-5485 
between 8:00 AM and 
4:30 PM Eastern Time. 
^Friday 8 AM -Noon). A 
^# Galls from conti- 
nental U.S. 

only. 

9178*. 
UUUUUULP O 



r 



*x 



e&wptns&s pahs. me. 

/it 1UC% %u* /fa4wt& 

6120 ?i4stc&uA "Road 

AteuuuOii*. 1/i%yuua, 22390 

Yes, We're moving into larger quarters 
and onto bigger things . . . like expanded 
inventory, larger service facilities and a 
curriculum of microcomputer courses. All 
this, thanks to our patrons who have made 
this possible. Our thanks for your support! 



■a 



^ 



The Plus Makes the Difference" 



J 



Circle 65 on inquiry card. 



BYTE August 1979 201 




Circle 132 on inquiry card. 

If you own an 

IBM Selectric® 

you already have 

a high quality output printer. 

• Escon printer conversion fits right in 

• Installation does not affect: 

Shape or normal functioning of typewriter nor 
eligibility for IBM warranty and service 

• Available in S-100, Parallel RS-232 or IEEE-488 

• Entire high quality printer system for TRS-80, 
Apple, PET, Sorcerer, Horizon, etc. 

• All systems assembled, tested and burnt-in 

• Factory installations available; 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 Mayhew Way, Suite 204, 
Pleasant Hill, CA 94523 
(415) 935-4590 




APPLE II 

DEVICES BY MICROPRODUCTS 



CENTRONICS 779 and PR-40 PRINTER INTERFACE 

Fully assembled with software driver on cassette S49.95 

With Centronics connector installed 64.95 

OKIDATA 110 PRINTER INTERFACE 

Fully assembled with software driver on cassette 49.95 

With OKIDATA connector installed 64.95 

EPROM PROGRAMMER 99.95 

Fully assembled, programs 5 volt EPROMs, e.g.. INTEL 2716, 
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 generation editor/assembler with enhanced editor features 
and text file 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. / Redondo Beach / CA 90278 
(213)374-1673 



Computer Society has 
recently increased the 
printing of their newsletter, 
Interrupt, to 1,000 copies, 
and has begun over-the- 
counter 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 infor- 
mation, 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 in- 
formal, scientific style to 
clinical users of the com- 
puter. Three pages of each 
issue are devoted to a 
description of the computer 
related activities of sub- 
scribers. Each issue of the 13 
page newsletter contains 
summaries and reviews of 
recently published articles 
and books as well as an on- 
going bibliography and a 
program catalogue. Recent 
additions include a clear- 
inghouse for information on 
training opportunities in the 
field and a new hardware 
column. Subscriptions to 
Volume 2 can be obtained 
by sending $15 to Com- 
puters in Psychiatry /- 
Psychology, 26 Trumbull St, 
New Haven CT 06511. The 
Best of Micro-Psych — 
Volume 1, a 52 page com- 
pilation of articles and infor- 
mation from Volume 1, is 
also available for $12. 



The New England 
Computer Society 



The New England Com- 
puter Society meets on the 
first Wednesday of each 
month to exchange com- 
puter 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, 
6860, 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 Com- 
pany 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 pro- 
duction. The editors of DPD 
regularly search through 
numerous business and in- 
dustrial periodicals and 
reports to locate articles on 
all aspects of computer 
technology and its applica- 
tion to operations and 
management. Concise sum- 
maries of these articles, 
reviews of books on data 
processing, and listings of 
current professional 
meetings and seminars ap- 
pear in each issue. The 
subscription rates are $57 
for one year; $108 for two 
years; and $153 for three 
years. Contact Data Process- 
ing Digest Inc, 6820 La Ti- 
jera Blvd, Los Angeles CA 
90045. 



202 August 1979 © BYTE Publications Inc Circle 208 on inquiry card. 






(( 


^ 


^^ 


A Message 


to our Subscribers 


From time to time we make 


information of interest to 


the BYTE subscriber list 


them in the mail. Used are 


available to other companies 


our subscribers' names and 


who wish to send our 


addresses only (no other 


subscribers promotional 


information we may have is 


materia! about their products. 


ever given). 


We take great care to screen 




these companies, choosing 


While we believe the 


only those who are reputable, 


distribution of this 


and whose products, services, 


information is of benefit to 


or information we feel would 


our subscribers, we firmly 


be of interest to you. Direct 


respect the wishes of any 


mail is an efficient medium 


subscriber who does not want 


for presenting the latest 


to receive such promotional 


personal computer goods and 


literature. Should you wish to 


services to our subscribers. 


restrict the use of your name, 




simply send your request to 


Many BYTE subscribers 


BYTE Publications Inc, Attn: 


appreciate this controlled 


Circulation Department, 


use of our mailing list, and 


70 Main St, Peterborough NH 


look forward to finding 


03458. Thank you. 


^ 


)) 



Circle 12 on inquiry card. 

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 compa- 
nies in the world. 

• Some models under $100! 

• 30-day parts/ labor warranty 

• Nationwide AJ service network 

• Fast delivery 

• Variety of models — up to 1200 baud 

• Limited quantities 

• Use your Visa or Master Charge 

Act now. First come, first served. Write 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 



ANDERSON 
JACOBSON 




Circle 291 on inquiry card 



BYTE August 1979 



Circle 379 on inquiry card. 



U.S. ROBOTICS, INC. 



PENR1L 300/1 200 MODEM 

Originate/Auto-Answer 



4ew $79900 




300 or 1200 Baud 
Bell 212 Compatible 
FCC Certified 
RS232 



Half/Full Duplex on 

Dial-up Phone Lines. 
1 year warranty 
Stand Alone 




PERKIN- 

ELMER 

BANTAM 

$799.00 

All the Features of the 
Hazeltine 1400 & LSI ADM-3A 
Plus 



Upper/Lower Case 
7x10 Char Matrix 
White or Black Char. 
Transparent Mode 
Addressable Cursor 



Tab Function 
Backspace Key 
Shiftlock Key 

Print Key 

Integrated Numeric 
Pad 



$41 .61 per monl 
Lease-Purchase 



$1095.00 



TELETYPE 
MODEL 43 
KSR 




with RS232 

10 or 30 CHAR/SEC 

132 COLUMNS 

UPPER/LOWERCASE 




USR-310 

Originate 

Acoustic 

$159,00 Coupler 

0-300 Baud Stand Alone 

Crystal Controlled 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 120day warranty 
Optional Maintenance package available 



Any Product may be returned 
within 1 days for a full refund. 



U.S. RDBDTICS, INC. 

• 1D35 W. LAKE ST. 

CHICAGO* ILL. 6D6D7 

Sales (312)733-0497 

General Offices (3 1 2) 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 in- 
formed of what is happening 
in Australia. 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 writ- 
ten to inform us that the 
Detroit Personal Computer 
Network will be meeting in 
August. This organization 
was formed to help micro- 
computer users discover and 
exchange ideas on user pro- 
jects, to promote business or 
financial gain, and for en- 
joyment. 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 Soft- 
ware 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. Mem- 
bers will select division 
memberships such as 
business applications, educa- 
tion applications, high level 
languages, games and fun 
applications, and personal 
and home management ap- 
plications. Membership 
enrollment applications are 
available from Creative Dis- 
count Software, Software of 
the Month Department, 



POB 24-B-67, Los Angeles 
CA 90024. 



The Physicians 
Microcomputer Report 

The Physicians Microcom- 
puter Report is a monthly 
publication for doctors who 
wish to become better in- 
formed 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 hard- 
ware news, the bargain 
market, and computer ar- 
ticles of special interest to 
the physician. Additionally, 
the report contains articles 
on nonmedical applications 
such as linking your com- 
puter to a stock portfolio in- 
formation center. Another 
intent of this publication is 
to facilitate the exchange of 
information between physi- 
cians who own computers. 
For this purpose, the 
magazine has a listing of 
user groups. 

The Physicians Microcom- 
puter Report is available for 
$25 a year, $12.50 for 
students. Contact Dr Gerald 
M Orosz, POB 6483, 
Lawrenceville NJ 08648. 



BYTE's Bite 



Call for Papers 

The International Society 
for Mini and Microcom- 
puters (ISMM) will hold an 
international symposium on 
microcomputers and their 
application January 30 to 
February 1 1980 in 
Monterey CA. The sym- 
posium will highlight 
technology, hardware, soft- 
ware engineering, languages, 
systems architecture, design 
methodology, computer net- 
works, performance evalua- 
tions, concurrent processing, 
real time processing, 
operating systems, portabi- 
lity 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. Notifica- 
tion of acceptance will be 
sent by October 1. Camera 
ready copies of accepted 
papers are due December 15 
1979. Additionally, pro- 
posals 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 en- 
courage 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 com- 
puters will be awarded to 
the program judged best in 
each of four categories: 
business, education, fun and 
games, and home and per- 
sonal management. Every 
entrant will receive a free 
poster and a professionally 
written program in exchange 
for the program they sub- 
mit. 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 ad- 
dress. 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 Con- 
ference on Computer Com- 
munications to be held 
October 27 thru 30 1980 in 
Atlanta GA are being 
solicited for presentation at 
the regular conference ses- 
sions and publication in the 
official proceedings. The 
conference is held biannually 
by the International Council 
for Computer Communica- 
tions as an interdisciplinary 
forum for discussing social, 
economic, political and 
technological implications of 
computer communication 
networks. 

Topics for 1980 may in- 
clude a wide range of sub- 
jects 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 re- 
quirements, social implica- 
tions, applications, and 
technology. Manuscripts 
must be typed, double spac- 
ed, 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 1G-509, 
Holmdel NJ 07733. The Pro- 
gram Committee would also 
appreciate advance notice of 
the intention to submit a 
paper. ■ 



SUPER 
SOFTWARE! 

MICROWARE 6800 SOFTWARE IS 
INNOVATION AND PERFORMANCE 



INEWl 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 function- 
oriented syntax. Widely used for processing, artificial intelligence, 
education, simulation and computer-aided design. 6800 LISP requires 
a minimum of 12K RAM. 
Price $75.00 

A/BASIC Compiler 

The ever-growing A/BASIC family is threatening old-fashioned 
assembly language programming in a big way. This BASIC compiler 
generates pure, fast, efficient 6800 machine language'from easy to 
write BASIC source programs. Uses ultra-fast integer math, extended 
string functions, boolean operators and real-time operations. Output is 
ROMable and RUNS WITHOUT ANY RUN-TIME PACKAGE. Disk ver- 
sions have disk I/O statements and require 12K memory and host DOS. 
Cassette version runs in 8K and requires RT/68 operating system. 
Price: Disk Extended Version 2.1 $150.00 
Cassette Version 1.0 $65.00 



[NEWl 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 

[NEWl 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 stand- 
alone applications and control-oriented interpreter. Requires 8K RAM. 
The cassette version is perfect for Motorola D2 Kits. 
Price: $75.00 

RT/68 Real Time Operating System 

MIKBUG— compatible ROM that combines an improved monitor/ 
debugger with a powerful multitasking real-time operating system. 
Supports up to 16 concurrent tasks at 8 priority levels plus real 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. Re- 
quires 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 com- 
puter is in unstructured plain English. An impressive demonstration 
program. 
Price: $30.00 



Our software is available for most popular 6800 systems on cassette or diskette 
unless otherwise noted. Disk versions available on S.S.B., SWTPC, or Motorola 
MDOS. Please specify which you require. Phone orders are welcomed. We accept 
MASTERCHARGE and VISA. We try to ship orders within 24 hours of receipt. 
Please call or write if you require additional information or our free catalog. 
Microware software is available for OEM and custom applications. 



MICROWVRE 

SYSTEMS CORPORATION 1 



P.O. BOX 4865 

DES MOINES, IA 50304 

(515) 265-6121 



August 1979 © BYTE Publications Inc 205 



LISP Applications in Boolean Logic 



Richard Weyhrauch 

Stanford Artificial Intelligence Laboratory 

Stanford University 

Stanford CA 94305 

and 

Henson Graves 

Dept of Mathematics 

San Jose State University 

San Jose CA 95192 



In LISP, some data structures can be viewed two dif- 
ferent ways, either as data or program. This 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 in- 
to 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 transforma- 
tions on them. 

Combinatorial Circuits as Boolean Logic 

One learns in circuit theory that combinatorial circuits, 
those with no feedback, may be represented as Boolean 



or propositional expressions. Although these are 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 or- 
dinary 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 (X1,X2) 








1 





1 





1 








1 


1 






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 be defined by the Boolean 
expression (XI A X2) 



xi O- 



X2 C^ 






xi 



X2 



O 



-O XUX2 



206 August 1979 © BYTE Publications Inc 



as the list: 



(AND (OR P Q) R) 



<wff> 

<const> 

<var> 

< unary > 

< binary > 



We follow usual programming language practice and 
describe the lists which represent well-formed proposi- 
tional 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 (lhs E)) 
(ISWFF (rhs E))) 

(T NIL) )) ) 

The subfunctions body, lhs, rhs, ISCONST, ISVAR, 
ISUNARY and ISBINARY must also be defined. Their 
definition reflects our specific representation of well- 
formed propositional formulas in LISP. For example: 

(DEFINE ISUNARY (E) 

(EQ (CAR E) (QUOTE NOT)) ) 

Evaluation of these defining programs has the side ef- 
fect of storing the function definition in memory. Subse- 
quently, the name ISWFF may itself be used in a pro- 
gram. LISP represents function application by evaluating 
the list whose first element is the function and the remain- 
ing elements are the arguments. Evaluating the program: 

(ISWFF (QUOTE (AND (OR P Q) R))) 

returns the value T. 

For any expression A the evaluation of (QUOTE A) 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) ) 



<const> | <var> | <unary> | <binary> 

T j NIL 

<: identifiers 

(NOT <wff>) 

(AND <wff> <wff>) | (OR <wff> <wff>) | 

(IMPLIES <wff> <wff>) | (EQUIV <wff> <wff>) 



Table 1: In LISP, list representations for WFFs (well-formed pro- 
positional formulas) are described using a Backus Naur form of 
grammar. In LISP, T and NIL are generally used as the constants 
for true and false respectively. These correspond to 1 and in 
digital circuit diagrams. 















(w,v) 

f.f 


w 

t 


W V V 

f 


WAV 

f 


W5V 

t 


w D v 

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 proposi- 
tional formula as T. Logicians call this kind of assignment 
of truth values to the atoms an interpretation of the well- 
formed 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 func- 
tion? (analysis) 

• Given an I/O (input/output) specification con- 
struct a program with this behavior, (synthesis) 

Analysis 

Analysis of a program starts with the question — 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 pro- 
gram. In logic this function is just the set of all interpreta- 
tions of the well-formed propositional formula. The 
Boolean function for the expression (X A Y) V Z ex- 
pressed as a table is: 



X,Y,Z) 


(X A Y) V Z 


0,0,0 





0,0,1 


1 


0,1,0 





0,1,1 


1 


1,0,0 


1 


1,0,1 


1 


1,1,0 





1,1,1 


1 



If a well-formed propositional formula, w, has n vari- 
ables then there are 2 n interpretations. Thus the I/O table 
has 2 n entries. Complete behavioral knowledge could be 
obtained by making the 2 n 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 com- 
pute 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 (IM- 
PLIES (AND P Q) (OR R P)) is a tautology. Two well- 
formed 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 proposi- 
tional formula is a tautology is to compute all its inter- 
pretations. 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 Ar- 
tificial 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 for- 
mula. 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.9- 
1966 is included except COMPLEX 
data type. Therefore, users may 
take advantage of the many appli- 
cations programs already written in 
FORTRAN. Package includes: 

FORTRAN Compiler 

Macro Assembler (Z80) 

Linker 

Library 

Lib Manager (Not in TRS-DOS 
version) Price -$35&Se 

For this month only 

Sale Priced at $250.00 
Manual $25.00 
(Specify TRS-DOS or CP/M versions) 

CP/M is a registered trademark of Digital Research Corp. 
TRS-80 is a registered trademark of Radio Shack. 



PASCAL 

UCSD Pascal, the powerful general 
purpose language system, de- 
veloped for large and complex 
programs is now available for your 
TRS-80. 

The FMG/UCSD PASCAL system 
opens a new generation of value 
for your TRS-80. Package in- 
cludes: 

Operating System 

Screen Editor 

Z80 Macro Assembler 

Debugger 

Pascal Compiler 

Utilities and System 

Reference Book $150.00 

Requires 48K 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 Sys- 
tems. Up to four floppy disks. 
Package includes: 
CP/M System Diskette 5Va" 
CP/M Features and 
Facilities Manual 
CP/M Editor's Manual 
CP/M Assembler Manual 
CP/M Debugger Manual 
CP/M Interface Guide $150.00 
(Set of 5 manuals $25.00) 




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 be 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 
((ISCONSTW)W) 
(T(TAUT 

((LAMBDA (X) (MKAND (SUBSTTXW) 

(SUBST NILX W))) 
(FIRSTVAR W)) ))))■!■ 



(DE SIMP (W) 

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

((ISNOT W) (SIMPNOT (SIMP (body W)))) 
((ISOR W) (SIMPOR (SIMP (Ihs W)) 
(SIMP(rhs W)))) 
((ISAND W) (SIMPAND (SIMP (Ihs W)) 
(SIMP(rhs W)))) 
((ISIMPLIES W) (SIMPIMP (SIMP (Ihs W)) 
(SIMP(rhsW)))) 
((ISEQUIVW) (SIMPEQUIV (SIMP (Ihs W)) 

(SIMP(rhs W)))))) 



(DE SIMPNOT (W) (COND ((ISFALSE W) T) 
((ISTRUEW)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)(S I M P I M P W2 W1))) 

(DE SIMPANDOR (OP W1 W2 V1 V2) 

(COND((ISTRUE W1)V1) 
((ISTRUE W2) V2) 
((ISFALSE W1)V2) 
((ISFALSE W2) V1) 
(T(MKOPOP W1 W2)))) 

(DE FIRSTVAR (W1) 

(COND ((ISVAR W1) W1) 

((UNARY W1) (FIRSTVAR (body W1))) 
((FIRSTVAR (Ihs W1))) 
(T (FIRSTVAR (rhs W1))))) 

(DE ISIMPLIES (X) (EQ X T)) 

(DE ISFALSE (X) (EQ X NIL)) 

(DE ISNOT (X) (EQ (CAR X) (QUOTE NOT))) 

(DE ISOR (X) (EQ (CAR X) (QUOTE OR))) 

(DE ISAND (X) (EQ (CAR X) (QUOTE AND))) 

(DE ISIMPLIES (X) (EQ (CAR X) (QUOTE IMPLIES))) 

(DE ISEQUIV (X) (EQ (CAR X) (QUOTE EQUIV))) 

(DE ISEQOR (X) (EQ X (QUOTE OR))) 

(DE Ihs (WFF) (CADR WFF)) 

(DE rhs (WFF) (CADDR WFF)) 

(DE body (WFF) (CADR WFF)) 

(DE MKOP (OP X Y) (LIST OP X Y)) 

(DE MKAND (X Y) (MKOP (QUOTE AND) X Y)) 

(DE MKNOT (X) (LIST (QUOTE NOT) X)) 



f := t 






t D w 


= 


w 


f D w 


= 


t 


t V w 


= 


t 


t A w 


= 


w 


T:= 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, other- 
wise it is not. Applying the Quine algorithm to the well- 
formed propositional formula, (p A q) D (r V p) 
yields: 

((t A q) D (r V t)) A ((f A q) D (r V f)) 

(q D t) A (f D r) 

t A t 

t 

The LISP program in listing 1 represents the 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 a program with 
its I/O behavior specified by the table: 



X 


Y F(X,Y) 











1 1 


1 


1 


1 


1 


table may be represented by the list: 


( (X Y) 




(0 


0) 


(0 1 


1) 


(1 o 


1) 


(1 1 


0) ) 



(DE ISCONST (W) (OR (EQ W T) (EQ W NIL))) 

Listing 1 continued on page 



210 



A well-formed propositional formula which has this 
behavior may be constructed by observing that: 

F(X,Y) = 1 if either X = and Y = 1 
or 
X = 1 and Y = 0. 

This Boolean function mayj?e realized by the well- 
formed 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 

Text continued on page 211 



August 1979 © BYTE Publications Inc 209 



Circle 205 on inquiry card. 



DISCOUNT PRICES 

Microcomputers & Peripherals 



B 



ITS 
YTES 
00 KS 
ARGAINS 



r 



-<§t 




a 



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 IMUE& 

ton SALE 

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$ postage and handling ($3.50 total foreign). 

September '77 thru 79 issues are $2.00 plus 50$ 

postage and handling 
($4.00 total foreign). 
Send requests 




with 

payment 

to: 

BYTE 

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))) 
(SETQ L (CDR L)) 

(SETO 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)))) 
(GOLD)) 

(DEFINE mkor (V L) 
(PROG (X) 

(SETQ X (mkand V (REVERSE (CAR L)))) 
L1 (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(X1, . . . 
Xn) of n variables may be described by a well-formed proposi- 
tional formula in disjunctive normal form. This program con- 
structs a well-formed propositional formula in disjunctive 
normal form. 



(DE PN (WFF Z) 
(COND ((ATOM WFF) (COND ((ISEQOR Z) (MKNOT WFF)) (T WFF))) 
((ISNOT WFF) (PN (body WFF) (FLIP Z))) 
((ISEQUIV WFF) 
(MKOPZ 

(MKOP(FLIP Z) 

(PN (Ihs WFF) (QUOTE OR)) 
(PN (rhs WFF) (QUOTE AND))) 

(MKOP(FLIPZ) 

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

(PN (Ihs WFF)Z) 
(PN (rhs WFF) Z))) 
((ISOR WFF) (MKOP (FLIP Z) 

(PN (Ihs WFF) Z) 
(PN (rhs WFF) Z))))) 

(DE FLIP (Z) (COND ((EQ Z (QUOTE OR)) (QUOTE AND)) (T (QUOTE OR))) ) 

Listing 3: Any well-formed propositional formula may 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 cojitijuied from page 209: 

either variables or the negation of variables are called 
literals. The above well-formed propositional 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 nor- 
mal form). 

The_well-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(X1, . . .Xn) of n variables may be 
realized by a well-formed propositional formula in dis- 
junctive 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 for- 
mula in disjunctive normal form. Every well-formed pro- 
positional 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 s 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 pro- 
positional 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. 

DNF1 then applies the distributive law until the for- 
mula 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 us- 
ing 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 representa- 
tion 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! 






OUR 
LIST SPECIAL 
PRICE CASH 

PRICE 



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 



750.00 625.00 

610.00 425.00 

45.00 30.00 

149.00 118.00 

159.00 125.00 

555.00 440.00 



Call for Our Prices on: 

Cromemco, IMSAI, Vector Graphic, North Star, Sanyo, 

Hazeltine, IMC plus Most Other Major Lines. 

Subject to Available Quantities • Prices Quoted Include Cash Discounts. 
Shipping & Insurance Extra. 

Bus...5-IDD,inc. 

Address .7 White Place 

Clark, N.J. 07066 
Interface. .201-382-1318 



Z s - SYSTEMS 


: 






64K HAM BOARD 




mK ^^^' 4B4B 






--■ 


1AM 


Compatible with Cromemco 


Th 


3 Zs-SYSTEMS 64K I 


board is designed to operate 


system, Fully assembled, 


in any Z80 based microcom- 


burned in, & tested 


puter having S-100 bus. It 


Available from stock 


uses 16K dynamic RAM chips, 


to 60 days 


& features: 


As low as $500.00 in 


— Board select 


quantities of 100 


— Bank select 




— Transparent on-board 


Price of one $649.00 


refresh 


PC board only $59.00 


— 2 or 4MHz operation 


With 16K RAM $359.00 


(w/ no wait state) 


Plus shipping charges 


— Memory disable 

FLOPPY DISK 




m$*MI 


CONTROLLER 


Handles with no modification 


' 


* 4 standard 8" drives 


Use CP/M Disk Operating System 


(Shugart or compatible) or 


Using the 1771 LSI controller 




Price oi one $245.00 


Run with 2 or 4 MHz CPU 


PC board onlv S35.00 


SEND FOR FREE INFORMATION 


6 months warranty on c 


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 



frcgpsromingOuicMes 



Ira Chayut 

Bell Laboratories 

Naperville 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 1: SWITCH, a program to perform multi-way jumps. SWITCH is 
entered via a jump with register A containing the 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 1 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 FF a 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 




Stand Alone Video Terminal 

«jJTS s9'- xj>virIW»fto is? 04 ** W$ I *++* 
1 "#$•;&-' O *+, - . / 01 2456739 : : <=>? 




SO- 100 VIDEO BOARD FEATURES 

• 64x16 line format with 128 displayable characters 
• Serial ASCII or BAUDOT with multiple Baud rates 
# $107 Assembled or $167 Kit (Partial Kit $99) 
• Full cursor control with scrolling and paging 
• On board power supply 

• Serial interface RS23 2 or current loop 

• Purchase SCT-100 alone or complete terminal 



»XIT€XCORI> 



9861 Chartwel! Drive 

Dallas, Texas 75243 (214) 349-2490 



ORDER BY PHONE/Qyeraeas orders & dealer* welcome 



»XIT€X MORSE TRANSCEIVER 



> S225 Complete Kit 




• S95 Partial Kit 

COPY 

• I to 150 WPM with 
Auto-Sync. 

• Continuously computes 
and displays Copy WPM 



• Auto Spate on word boundries 

• Grid/Cathode key output 

• LED Readout for WPM 
Buffer space remaining 



212 August 1979 © BYTE Publications 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 -charac- 
ter commands for addition 
and subtraction. If the 
character is neither a sub- 
traction 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 1 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 
LXI H f CTBL 
JMP SWITCH 


; get a character 
; point to case table 
; decode command 


ADD: • • ■ 


; add routine 


SUB: • ■ • 


; subtract routine 


ERR: • ■ • 


; invalid command handler 


; case table follows 
CTBLDB '+' 
DWadd 


; add command 


DB '"' 
DWsub 


; subtract command 


DB FFH 
DWerr 


; default, error 



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 ac- 
companying your computer! 



4K CMOS Memory IC 

Eliminate heat build-up & 
Reduce Power Supply Requirements 



4Kx1 6504 CMOS memory chips $8.00 each 
The 6504 is plug compatible with 4044 NMOS 

1 Kx4 6514 CMOS memory chips $8.00 each 

BOTH CHIPS FEATURE: 

Low Power Standby <2.5mWMax 

Low Power Operation <25 mW/MHz Max 

Fast Access Time OOOnsecMax 

TTL Compatible Input and Output 

Common Data Input/Output 

Industry Standard 21 14 Type Pinout 

On Chip Address Register 

Easy Interfacing With Multiplexed Bus uP's (8085) 

ALL CHIPS TESTED - 100% FUNCTIONAL 

DIGITAL GROUP 
Equipment Users 



32K Memory Boards without memory chips 
These boards are designed to use either 
the 6504 or 4044 NMOS memory chips 



$60.00 



KIT ASSEM 

$284 $359 

$508 $608 



32K memory boards with 16K of memory 
32K memory boards with 32K of 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 



Circle 131 on inquiry card. 



August 1979 © BYTE Publications Inc 213 



Listing 1 : Metronome program for the 
KIM-1 computer. Nested timing loops 
create audible clicks through a tape re- 
corder 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 


000A 


49 


80 




EOR 


#80 


the line that goes to the 


OOOC 


8D 


42 17 




STA 


1742 


tape recorder. 


OOOF 


A5 


00 




LDA 


00 


\ 


0011 


85 


EO 




STA 


EO 


I 


0013 


A5 


01 


L3 


LDA 


01 


1 


0015 


85 


E1 




STA 


E1 


1 


0017 


AO 


FF 


L2 


LDY 


#FF 


1 


0019 


88 




L1 


DEY 




V Delay 


001 A 


DO 


FD 




BNE 


L1 


I 


001 C 


C6 


E1 




DEC 


E1 


1 


001 E 


DO 


F7 




BNE 


L2 


1 


0020 


C6 


EO 




DEC 


EO 


1 


0022 


DO 


EF 




BNE 


L3 


/ 


0024 


4C 


07 00 




JMP 


0007 


Repeat 



Figure 1: 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 hexadeci- 
mal memory locations 0000 and 0001. 



s 



9 — -Il 
8 — "1§ 
t jj 

6._-.|| 


ill 

111 

11= 


lllllllllli 

SSSEE5ES5SS 






====== ===== 


— =p j | _ _ _ . =^— : " = M =: ~ : ^t == f =: ^ 


4 =E 


IB 


||i|j||l=EE= 


lllllllllHllliiSllllllSlliiiiii=p|S 






^3^EEE|§jE 


= EEEEEEEE^^EEEEE±EEEEEE^^EEEEEEEEEEE==^ 


















9 1 
















































































2__ T 






















































J*iWtnnti 6f\\M3'h)r <KJ0 = r 










9 — B 


ilii 


jRrjr^- --— —- 


lj|lll|clz^^zjr^^ 


^Jj£== ===.== == £|==£==.= 


=— s§^SI= ? ^========s========= 


7___=E 


■= ILL 


jjiliiiilli 


£ ^|^ jjp 


•.-■ill 


— fTi-Li— ZL.:-j_ [=^g= == = E -~jl~;"~! 1= EE = E= = = = = = EiE ==^F== 


BL.J= = 


~,^gg 


^^^p=F^i=P 


= ^^SP^^^^^lll|llllllllllllll 111111 


4._ = = 


|| j 


SpEEEEEEEE 


llIIl||BllIIIIIIli|lllIIIIIIIIIIIIIIII 


3L- =~ 






^ffjplfe^^^^^^^ 








— J 1 |— j 1 . 


























2. 








E= 


-^hF 




"^r ~i~ ~" zzzzzzzzzztzzzzzzzzzzzzzz zzzzzz 








\ 1 f " 


















10.. __ 






L »hl 


00 


2( 


) 40 


60 80 AO CO EO 



CONTENTS OF LOCATION 0000 (In h«x) 



214 August 1979 © BYTE Publications Inc 



Memory Test Program 



Frank J Caperello 

1806 Kuser Rd Apt 9 

Trenton NJ 08690 



Did you ever have a program that ran 
successfully for months, only to have it 
suddenly bomb? Or are you getting in- 
consistent results from your data? It could 
be that your computer is losing its memory. 
Your problem may be due to memory loca- 
tions 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 micro- 
processor had parity memory. Parity mem- 
ory is implemented as an extra hardware bit 
that detects a bit malfunction. Unfortun- 
ately, parity memory also has a high cost 
factor, so it is usually unavailable on micro- 
computer systems. The memory test pro- 
gram 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 in- 
cremented to octal 377; when it is incre- 
mented 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 page 21 7 



68 MICRO JOURNAL 



® 



• 
• 




THE 

ONLY 

6800/09 

USER-ORIENTED- 
MAGAZINE 



Months ahead of all others with 
6800/09 articles & new products 

Crunchers Corner — Bryant (A monthly programming 
tutorial) * Flex® to BFD — Puckett * Tiny Music — 
Thompson * Semiconductor, Part 1 — Kinzer * Soup Up 
Your TVT — Pass * Hints & Kinks —fixes (soft & hard) * 
50 pages plus Each Month! 



Crunchers Corner — Bryant * A Look at 
the SWTPC CT-82 — Ferguson * 6800 
Relative Branch Calculation (Hand) — 
Berenbon * Relative Calculator (Machine) 
— Heatherington * Maillist (Disk) — Lilly * 
Modems — Schuman * Semiconductor - 
Part 2 — Kinzer * Locate — Pigford * A20 
MA, Printer-SWTPC — Perdue * AS-50 
Monitor Board — Pentecost * TSC Basic 
for 6800 — Shirk * Plus Much-Much More! 



Crunchers Corner — Bryant * A 
Case for the Small DOS — Mauch 

* MF-68 Motor Fix — Sorrels * 
Transfer (FLEX 1 to 2 or 5) - 
Womack * 6800 Delay — Beren- 
bon * Make Like a 6809 — Fein- 
tuch * 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 



KB 

7.8 



TOTAL 
PAGES 



BYTE CC DOBB'S 

6.4 2.7 2.2 19.1 ea. mo. 

Average cost for all four each month: $5.88 

(Based on advertised 1-year subscription price) 

'68' cost per month: 88£ 

($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 □ — 


VISA □ 


Card = 





Exp. Date 




For n 


1-Year 


O 2 Years 


□ 3 Years 






$ 




Name. . 








Street 


City 




SlalP 


7in 


My Computer Is: 



68 MICRO JOURNAL 

3018 Hamill Road 
HIXSON, TN 37343 

FOREIGN ADD: 
$9.50 PerYr. Surface 
$26.50 Per Yr. Air Mail 
NOTE: 

Subscription Rates to increase 
August 1 979 by 40% — Don't miss 
anymore than you have already! 



• MORE 6800 ARTICLES THAN ALL OTHERS COMBINED* 



Circle 329 on inquiry card. 



August 1979 © BYTE Publications Inc 215 



Listing 1: Memory test program. 



000 


START 


XRA 


A 


257 


001 




MOV 


E,A 


137 


002 




MOV 


D,A 


127 


003 




CMA 




057 


004 




MOV 


C,A 


117 


005 




OUT 




323 


006 




377 




377 


007 




IN 




333 


010 




377 




377 


011 




MOV 


B,A 


107 


012 




INX 


BC 


003 


013 


REDO 


MOV 


A,E 


173 


014 




LXI 


HL 


041 


015 


XXA 


(FIRST) 




133 


016 


XXB 






000 


017 


LOAD 1 


MOV 


M,A 


167 


020 




INX 


H,L 


043 


021 




MOV 


A,C 


171 


022 




CMP 


L 


275 


023 




JC 


Z 


312 


024 




LOAD 2 




032 


025 








000 


026 


LOAD 3 


MOV 


A,E 


173 


027 




JMP 




303 


030 




LOAD 1 




017 


031 








000 


032 


LOAD 2 


MOV 


A,B 


170 


033 




CMP 


H 


274 


034 




JC 


NZ 


302 


035 




LOAD # 




026 


036 








000 


037 




MOV 


A,E 


173 


040 




LXI 


HL 


041 


041 


XXC 


(FIRST) 




133 


042 


XXD 






000 


043 


CHECK 1 


CMP 


M 


276 


044 




JC 


NZ 


302 


045 




ERR 




107 


046 








000 


047 




INX 


HL 


043 


050 




MOV 


A,C 


171 


051 




CMP 


L 


275 


052 




JC 


Z 


312 


053 




CHECK 


2 


061 


054 








000 


055 


CHECK 3 


MOV 


A,E 


173 


056 




JMP 




303 


057 




CHECK 1 




043 


060 








000 


061 


CHECK 2 


MOV 


A,B 


170 


062 




CMP 


H 


274 


063 




JC 


NZ 


302 


064 




CHECK 3 




055 


065 








000 


066 




MOV 


A,E 


173 


067 




INR 


A 


074 


070 




MOV 


E f 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 f 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 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 0s. 

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 IO 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 7 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 the PET 
IEEE-488 bus. Now, the PET 
owner can obtain hard copy 
listings and can type letters, 
manuscripts, mailing labels, 
tables of data, pictures, in- 
voices, graphs, checks, needle- 
point 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 



m m 




Order direct or contact your local computer store. 
Add $3.00 for postage and handling per order. 

O CONNECTICUT microCOMPUTER 

gjjj |=q 150 POCONO RD. BROOKFIELD. CT 06804 

La (203) 775 9659 TLX: 7704560052 



120 






000 




121 




MOV A,D 172 


Now get the number of complete 


122 




STA 


062 


away for future use. 


123 




ERR 


126 




124 






000 




125 




HLT 


166 


Stop. 


126 


ERR 


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 switches. The test 
will run until the stop button is depressed 
or until an error is detected. 

Let's look at what happens when an error 
is detected; the machine comes to a halt — 
the error 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 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 loca- 
tion should be entered into locations xxB 
and xxD. Record the next error when it oc- 
curs, continuing the same routine until no 



new errors are detected, or until a pattern of 
errors is evident." 



NORTH STAR SOFTWARE 



TIMESHARING 

for th€ Horizon— 

The only true interrupt driven, bank 

switching timesharing software available | 

for the Horizon. 

A machine language program 

on 5' ," disk S49.95 I 



DOSCHG4 (8" disk drive interface patch to 

Release 4 North Star DOS and BASIC) $49.95 

DOSCHG5 (8" disk drive interface patch to 

Release 5 North Star DOS and BASIC) $49.95 

CSUB disk and documentation package $49.95 

The following programs, written with CSUB, are presently 
available: 

General Ledger (for accountants) $49.95 

General Ledger (for business use) $49.95 

Accounts Receivable (for accountants) $49.95 

Accounts Receivable (for business use) $49.95 

Accounts Payable $49.95 

Payroll $49.95 

Inventory $49.95 

Specify Release 4 (single density) or Release 5 (double density) 

North Star DOS and BASIC. 
All programs are shipped on 5 1/4" diskette and include documentation. 

This Summer: 
Hard Disk Interface For The Horizon 



oA/WAfc 



Micro Mike's, Incorporated 

905 South Buchanan * Amarillo, Texas 79101 * USA 
(806) 372-3633 



Circle 204 on inquiry card. 



August 1979 © BYTE Publications Inc 217 






Bock Reviews 



Practical Microcomputer Program- 
ming: The Z-80 
by W J Weller 

Northern Technology Books 
Evanston IL 
481 pages 
$29.95 



Practical Microcomputer Program- 
ming: The Z-80 is the third volume in a 
series which also includes works on the 
8080 and 6800 microprocessors. My re- 
view of the 8080 volume was published 
in BYTE, January 1978. 

The most obvious differences be- 
tween 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 au- 
diences: the first is the beginning 
assembly level programmer (as all of the 
textbook basics are included and iden- 



REBUILT Like New 

TTY-33ASR 

3320/5 J E ALSO 3320/6 J E 

Ml 2 Design 2400 Printers 

NEWKSRandRO 
Up to 1200 Baud 

• Immediate Delivery 

• 90 Day Warranty i tty-33 only j 

• 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 in- 
terrupts. I/O programming is divided in- 
to sections on polled, interrupt-driven, 
and graphical output. Explanations are 
clear, and there are many good ex- 
amples. 

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 program- 
mer can use them (the assembler flags 
non-8080 instructions). Typing in the 
code (either object or source) for pro- 
grams 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 Microcom- 
puter 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 ver- 
sion), 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 of- 
fers 18 months ago! ■ 

John A Lehman 
716 Hutchins #2 
Ann Arbor Ml 48103 



218 August 1979 © BYTE Publications Inc 



Circle 87 on inquiry card. 



SURPLUS ELECTRONICS 



ASCII 




ASCII 



IBMSELECTRIC 

BASED I/O TERMINAL 

WITH ASCII CONVERSION 

INSTALLED $645.00 

• Tape Drives i Cable 

• Cassette Drives • Wire 

• Power Supplies 12V15A, 12V25A, 
5V35A Others, • Displays 

• Cabinets • XFMRS • Heat 
Sinks • Printers • Components 
Many other items 

Write for free catalog 
WORLDWIDE ELECT. INC. 
130 NORTHEASTERN BLVD. 
NASHUA, N.H. 03060 
Phone orders accepted using VISA 
or MC.Toll Free 1-800-258-1036 
In N.H. 603-889-7661 



[^ 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 ship- 
ments. 

FREE Surface delivery in U.S. 

WARRANTIES will be honored 
by your local Radio Shack® store. 
Offered exclusively by 

Radio Shack 8 

Authorized Sales Center 

1117 Conway 

Mission, Texas 78572 

(512) 585-2765 



\ 



^ 



J 



SUPPLIES 




■ FLOPPY DISKS, MINI OR 
STANDARD MEM0REX OR 3M 

■ 3M DATA CARTRIDGES 
DC300A, OC100A 

• 3M DIGITAL CASSETTES 

• 3M OR MEM0REX AUDIO 
CASSETTES, C-BO 

■ 3M DISK CARTRIDGES 

WE OFFER: 
•COMPETITIVE PRICING 
•IMMEDIATE DELIVERIES 

(Any Quantity) 
• UNCONDITIONAL GUARANTEE 

BETA BUSINESS SYSTEMS 

8369 VICKEBS ST., #G 

SAN DIEGO. CA 9211 

(714) 565^505 



m 



Circle 391 on inquiry card. 



Circle 314 on inquiry card. 



Circle 34 on inquiry card. 



FLOPPY DISK 
REPAIR 

m PerSci and Shugart 
• Quick turnaround 
% Factory trained on 
PerSci 

COMPUTER SERVICE CENTER 

7501 Sunset Blvd 

Hollywood CA 90046 

213-851-2226 



TRS-80 16K MEMORY EXPANSION KIT 

INCLUDES 8 TESTED & GUARANTEED M5K 4116 3 16K RAMS. 
PROGRAMMING PLUGS & EASY-TO-FOLLOW INSTRUCTIONS. 

$72 00 PER KIT 



6800 64K BYTE RAM SET AND CONTROLLER 

CHIPSET mE 6 MBYTES Of MEMORY FOR YOUR 



$29589 



6800. THE CHIPSETS INCUJOE: 
32 M5K 4116-3 16K RAMS. 
1 MC3480L MEMORY CONTROLLER. 



PER COMPLETE SET. 



MC3242AP MEMORY ADDRESS 
MULTIPLEXER/COUNTER. 

DATA & APPLICATION SHEETS. 

PARTS TESTED & GUARANTEED. 



16K DYNAMIC RAMS 

M5K 4116-3 200NSEC 
ACCESS TIME/375NSEC 
CYCLE TIME.TESTEO & 
BURNED-IN. 
J850EACH/MIN.QTY.8 



4K STATIC RAMS 

EQUIV.TOTMS40L44-30 
300NSEC ACCESS TIME/ 
CYCLE TIME FOR 4MHZ 
2-80 OPERATION. 
JTO EACH/MIN.QTY. 8 
TESTED & GUARANTEED 



QUANTITY DISCOUNTS MAILABLE 
ALL ORDERS POSTPAID. U.S.FUNOS. CHECK OR MONEY 
ORDER. VISA,BA,MASTERCHARGE-SEND ACCOUNT NO, 
EXPIRATION DATE , INTERBANK NO., & SIGNED ORDER. 
PHONE ORDERS: 714/633-4460 

MEASUREMENT SYSTEMS & CONTROLS.inc. 

MEMORY DEVICES DIVISION, DEPT. B3 

867 NORTH MAIN ST., ORANGE, CA 92668 



Memorex 
Floppy Discs 

Lowest prices, WE WILL NOT 
BE UNDERSOLD!! Buy any 

quantity 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 68 on inquiry card. 



Circle 216 on inquiry card. 



Circle 294 on inquiry card. 



MAXIMUM VALUE 
FOR YOUR DOLLAR 

NORTH STAR COMPUTER PRODUCTS 

HORIZON1 16K KIT S 1275.00 

16K RAM BOARD KIT S 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-4815 (21 3) 429-0535 



save more than 20%! 

NORTH STAR INTERTUBE 

THINKER TOYS HUH 

the smartest computers at the smartest price 
DOUBLE DENSITY 

HORIZON-1-16Kkit, 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 FREE 

Measurement Systems asm memory 64K. $640 

Thinker Toys Discus/2 D asm $1149 $949 

TRS80 toS-100 HUH kit list $295 $260 

Assembled & tested, list $375 $350 

INTERTUBE II Terminal, list $995 $780 

MARYELLEN Word Processing. . . 

$34 + $1.50 shipping 

VERBATIM Disks. . . 

10 for $29.50 + $1.50 shipping 
Which Computers are best? BROCHURE. . . FREE 

AMERICAN SQUARE 
COMPUTERS 

KIVETT DR, JAMESTOWN NC 27282 
(919) 883-1105 



RECYCLED) 
COMPUTERS 

^■■■■■■KHEHiaHHHHHKKHHKIIKirilltiriinBnBllHHHHHKIlXHHSH 

BUY £ SELL £> SWAP 
Hardware & Software 

NEW PRODUCT ANNOUNCEMENTS 
■n 03P€* 

Mailed 1 st Class every 3 Weeks 
Iyr. (18 issues) %? $3.75 

ON_LINE ■■#«■ 

O.iur I'irrllr. Oublislitr £si.iUlisfirt> hi?? 

24695 Santa Cruz Hwy.. Los Gatos, CA 95030 



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 divi- 
sion problem starts with two num- 
bers, 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 



+ Remainder 



The quotient (integer portion) is 
simply the number of times the 
divisor can be subtracted from the 
dividend and still leave a positive re- 
mainder. 

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 deficien- 
cies. 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 pro- 
gram 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 frac- 
tions, 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 
0000 
0000 
0000 



nnOO 
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-fash- 
ioned 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 loca- 
tion 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 pro- 
duces 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 conven- 
ient place is between two memory 
words, as shown in figure 1. Al- 
though 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 in- 
creased time required for putting R 
into N after every successful subtrac- 
tion. However, extra time is only 
needed for BCD (binary coded deci- 
mal) 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 correspond- 
ing word of register D. All other loca- 
tions must be cleared to 0000, if not 
already done. Table 1 shows our star- 
ting arrangement. Because the pro- 
gram 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 allow- 
ed, 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 signifi- 
cant 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 dif- 
ference 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 coun- 
ter), 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 count- 
ing 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, coun- 
ting and shifting, a certain number of 




MICROPROCESSOR 
SOFTWARE ENGINEER 

A leader in the rapidly growing field of medical diagnostic instru- 
ments, 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 clas- 
sifier... MS-11, 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 Engi- 
neer 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 engi- 
neers 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 mov- 
ing 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 work- 
ing 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 ob- 
tained at the start of the program. If it 
is positive, shift Q to the left that 
many times; if it is negative, shift Q 
to 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's Most 
Powerful 8-Bit Computer 

Featuring The Famous Intel 8085! 

Explorer/85™ 

Starting for just $129.95 you can now build 
yourself a sophisticated, state-of-the-art 
computer that can be expanded to a level 
suitable for industrial, business and 
commercial use. You learn as you go. . . in 
small, easy-to-understand, inexpensive levels' 









As featured in 
POPULAR ELECTRONICS 

EXPLORER/85 shown wilh Video Montor and Keyboard/Video Terminal 

CHOICE OF HEX KEYPAD OR TERMINAL INPUT 

II you plan to customize EXPLORER for dedicated use. we recommend lhal you order 
hex keypad input. But. if you are planning to go whole hog and blow EXPLORER up 
into a lull size, state-ol-lhe-art syslem with 8K or extended basrc (commg soon), up 
1o 64K ol memory. Iloppy disks, telephone interlace, printers and all sorts ol S-100 
plug-ins— you II be beller ollwilhlhe Keyboard/Video Terminal mpui The SI49 95 
EXPLORER Keyboard/Video Terminal includes lull ASCII decoding wilh 128 ASCII 
upper/lower case sel. 96 pnnlable characters, onboard regulators and selectable 
display lormals— 32x16 lor tv sel or 64x16 lor video monitor (nol included) 
EXPAND EXPLORER. LEVELBYLEVEL 

Level "B", al S49 95. adds S-100 signals plus onboard RAM/ROM decoding 
Includes all parls necessary lo generate the signals for S-100 bus accessories Just 
add Iwo S- 1 00 bus connectors and you have a complete S-1 00 compa1il)le compuler 
wilh a world of add-ons al your Imrjertips Choose from hundreds ol products to 
EXPLORER/85 gives you 'big computer features immedialely. withoul lurning you satisly your individual needs Level "B krt also includes the address decoders lor 
mlo an appliance operator, doomed lo run pre-developed soflware lor life Simply onboard RAM and ROM expansion, which are addressableanywhere in Ihe 65K lield 
connect EXPLORER to a terminal video monitor or tv set and 8 voll power supply and Level "C ' expansion, at S39 95. expands the S-100 bus lo allow a lolal ol six 
start running programs Ihe very lirsl night' Level A leaches you machine s- 100 cards to be plugged mlo EXPLORERS motherboard and contained m 
language and compuler tundamenlals It lels you run exercise programs including EXPLORER'ssleelcabinet includes all hardware, mounting brackets board guides, 
programs lo examine Ihe cpu registers, examine memory, till memory, move memory etc Jusladd Ihe number ol S-100 bus connecters you need 
and make up games You can load and play back these programs on an ordinary tape L eue i --d" expansion, at S69 95, gives you 4K ol onboard slnlic RAM utilizing 
cassette— and display your ellorls on any 1v screen video monitor or printer (S8 95 2114 iC's Your board will also accept lour 27i6 EPR0M s. which can be purchased 
RF modulator required lor 1v use ) The simplified arcHMecture ol the miel 8085 separately You now have an advanced rnamlrame lhal can be customized wilh the 
makes EXPLORER lar easier lo understand lhan computers using the older, more peripherals ol your choice to lit any (or all) specific requirements Each level of 
complex but less powerlul 8080A Then when you re ready. EXPLORER can be EXPLORER is separately regulated lor ihe ultimate in stability Factory service is 
expanded— by you— lo rival the power of any 6-bil computer on earth Or you can available from Netronics OrderyourEXPLORERloday! 
customize it lo perform adedicated task, thanks 10 onboard ,_ _ _ — — — ORDER FROM THISCOUPON TODAY! — — — — 1 



• Features Intel 8085 cpu/100% compatible with 
8080 A 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 maJ4-V2 8bit parallel 

I/O and timer all on beginner's Level "A " system! 



Netronics R&D Ltd., Dept BY-8, 333 Litchtield Road, New Millord. CT 06676 



D Level "A" EXPLORER/85 kit (speedy □ ter- 
I mmal or □ hex keypad input). Si 29 95 plus 
■ S3 p&h 

1 □ Power Supply kit. 5 amp. ±8 volt. S34 95 
plus $2 p&h 



prototyping. RAM and ROM expansion capabilities 
LEVEL "A" SPECIFICATIONS 
EXPLORER'S Level "A" system tealures an advanced Intel 
8085 cpu. which is 50% taster lhan its 8080A prede- 
cessor, yet 100% compatible wilh 8080A soltware 
which, you'll discover, exists Dy the ton Big computer* 
features include an 8355 ROM with 2K deluxe monitor/ ^u^^on 

operating system which has two programmable 8-bn I rj im e i 8085 User s Manual. $7 50 ppd 
bi-direcllonal parallel I/O ports, built-in cassette interlace n ASC „ Keyboard/Video Terminal kit. S149 95 

with tape control circuitry lo allow label mg assetie files. | D lusS3D&h 

and commands which include: "disp lay contenls ol * M . CMni . .,_ 

memory." run al user location (go to)'' "insert data.' | □ Hex Keypad kit for hex version. S69 95 plus 
■■move contents ol memory. ' examine registers individ- * d P an ,, ..,„„.,« , 

ually or all ' lilt command (to Ml Ihe contents of memory I D Level "B S-100/Onboard RAM/ROM Decoder 
with any variable), automatic baud rate selection, program- M (less S-100 connectors). S49 95 plus S2 

mable characters per line display output tormat. and more 1 | P& n 

An 8155 RAM— 1/0 chip contains 256 bytes ol RAM. Iwo □ Level "C" S-100 5-Card Expander kit (less 

programmable 8-bn bi-direclional and one programmable I connectors). S39 95 plus S2 p&h 
6-bit bi-directional 1/0 ports plus programmable 14-btl □ S-100 Bus Connectors(goid). S4 85each. 

binary counter/timer, user interrupt and reset switches ' rj Levei rj- 4K onboard RAM kit S69 95 plus 

Onboard expansion provisions exist for up to stx S-100 I $2 p&h 

boards. 4K of RAM and 8K of ROM, PROM or EPR0M L___ - 



D Deluxe Steel Cabinet lor EXPL0REH/85. 

S39 95 plus S3 p&h 
D Deluxe Steel Cabmel tor Keyboard/Video Ter- 
minal. S19 95 plus S2 50 P&h 
D RF Modulator kit. S8.95 Ppd 
□ Total Enclosed (Conn res add lax) $ 
D VISA □ Master Charge Exp. Dale 
Account # . _ 



PHONE ORDERS CALL (203) 354-9375 

Print 



City 



. 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 opera- 
tion.) 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 conver- 
ting 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 for- 
ced 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 num- 
bers input via the keyboard. Also, 
battling with the attendant conver- 
sion 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 scien- 
tific notation, however, it's best to 
say that the 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 indi- 
cated to obtain conventional nota- 
tion. 

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 hexa- 
decimal 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 
+ 127 to -128 decimal. Arithmetic 
performed under this convention 
gives consistent answers (except 
under overflow conditions for which 
most processors have detection cir- 
cuits and warning flags). For binary 
coded decimal, the topmost digit 
position is the sign digit: for a 
positive number, and 9 for a negative 
number. Negative numbers are 
generally handled in tens complement 
form, obtained by subtracting the ab- 
solute value from 999999999.... 9 
and then adding 1 to the least signifi- 
cant digit (this is the way many early 
adding machines handled subtrac- 
tion). 

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- 



SlGN 
EXP 8 MS0 * n n n n 



n n n LSD 



° □□'[ 



]•□! 



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 (maxi- 
mum 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 + 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 sub- 
traction for which the tens comple- 
ment form can give correct answers. 
When dividing +956 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 quo- 
tient. 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 
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 inde- 
terminate 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 sub- 
tract 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 




PARALLEL PORTS: h Ports, m total bi-dire< iion.il bitv 



SERIAL PORTS: 



AVAILABLE BAUD 
RATES: 



J Serial Ports with asso< i.iled < onlrol line 
One Port TTL or RS-232. 
One Port 111 or MODEM. 



107.2 

153.b 

7(,.H 

W4 

19.2 

%on 

4H00 
2400 



kilobaud 
kilobaud 
kilobaud 
kilobaud 
kilobaud 
baud 

b,!LJ(l 

baud 



1760 
1200 
600 
500 
150 
110 
75 
27.5 



baud 
baud 
baud 
baud 
baud 
b.iud 
baud 
baud 



r 

i 

I 

I 

I 



Please rush the following : 

□ I/O Card (kit) 

□ I/O Card (assembled) 



MODEM: 
BUS TYPE: 
PRICE: 



or any user supplied baud rates up to 500 kilobaud. 
Full Duplex, answer or originate. 300 Baud 



5-100 

$149 (kit) 

$199 (assembled 






& 



^ 



ind rested). 



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 or 999999E99 to 
indicate that the result is beyond the 
capacity of the machine if the pro- 
gram is simply a calculator program 
without programmability or other 
exotic features. For a scientific pro- 
gram, this sort of thing could lead to 
serious 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 re- 
quired, 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 comple- 
ment 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 subtrac- 
tion 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 calcu- 
lated 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 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 divi- 
sion program in binary coded 
decimal, with a constant precision 
answer. Of course, we haven't actual- 
ly 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 con- 
ventional 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 direc- 
tion that suits the user. ■ 



E, 



c PET ANALOG INPUT 

Analog to Digital Conversion System for the Commodore PET Computer 



iYlTEMl , 



Give the F*ET the ability to sense* 

»ure» and control the world around 
it. with IiAM SYSTEMS modules. Just. r1u3 
the PETSET1 into the PET to Set 16 
channels of analog input. Screw 
terminals are provided for each channel 
so «=mdu can hook up Joysticks* pots, or 
whatever appropriate sensors you have. 

Each of the 16 analog inputs* in 
the rande of to 5.12 volts* is 
converted to a decimal number between O 
and 235 < 20 millivolt, s per count.). 
Conversion time is lOO microsconds. 

In addition* the PETMOD provides 
two IEEE ports and one user port as 
well as a DAM SYSTEMS port.. 

Software is provided. A one line 
program is all Lhat is necessary to 
re&ii 3 channel . 




ACCELERATION 
HUUI01TY 
LIGHT LEVEL 
FLUID LEVEL 



1-AIM161 
1 - PETMOO 
1- CABLE A24 
1-MANM0D1 
1- P0W1 



PETSET1 

16 ANALOG INPUTS -8 BITS-100 MICR0SEC 



24 INCH INTERCONNECT CABLE 
MANIFOLD MODULE -SCREW TERMINALS 
FOR INPUTS, REFERENCE, GROUND 

POWER MODULE 



DISPLAY MODULE 



f GP!B 1 f RS-232 1 

I MOD J I. MOO J 



VISA 
ADD 



PETSETia for 110 VAC $295 
PETSETIe for 230 VAC $305 

0rderdirec< or contact your local computer store. 

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 SHIPPING a HANDLING - FOREIGN ORDERS ADD 10% FOR AIR POSTAGE. 



224 August 1979 © BYTE Publications Inc 



Circle 78 on inquiry card. 



What's New? 



16 K Byte Dynamic Programmable 
Memory Board 




Called SupeRam, this S-100 bus com- 
patible 64 K byte dynamic program- 
mable 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 program- 
mable memory board capable of storing 
up to 64 K bytes of data on a single 
board. Completely S-100 bus compati- 
ble, it utilizes 16 K byte dynamic pro- 
grammable memories to achieve maxi- 
mum bit density, minimum power dissi- 
pation, and optimum cost and perfor- 
mance ratio. 

Refresh requirements are satisfied 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 tech- 
niques. Memory is addressable as in- 
dependent 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 an- 
nounced the availability of the new Soft- 
ware Package II. Designed to expand the 
range of applications of the Compu- 
talker CT-1, Software Package II con- 
tains: CTEDIT, a new parameter editor; 
CSEDIT, an editor for the CSR1 input; 
CTEST, a CT-1 hardware diagnostic; 
PLAYDATA, to hear the data files; MEM- 
VOICE, a vocal memory dumper; KEY- 
PLAY, a subroutine to play letters 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 for- 
mats; and paper tape. For further infor- 
mation, contact Computalker Consul- 
tants, 1730 21st St, Suite A, Santa 
Monica CA 90404. 

Circle 560 on inquiry ca'rd. 



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 imple- 
mented in Z-80 machine code. Zilog sug- 
gested 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 back- 
patching of forward re- 
ferences. Inserts ASCII 
hexadecimal represen- 
tation of the op code 
into the source code 

Loader generates binary exe- 

cutable code and loads 
it into either program- 
mable memory or a file 

The minimum hardware requirements in- 
clude a Z-80 processor, 32 K bytes of pro- 
grammable memory, one 5 inch floppy 
disk drive with a controller, interactive 
terminal, and optional printer as an out- 
put device. 

The package is priced at $35 which in- 
cludes 5 inch floppy disk, a manual with 
full program listing in BASIC, and Z-80 
commented assembler. For further infor- 
mation, 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 program- 
ming from the 
ground up. It will 
show the reader 
both the advan- 
tages and disad- 
vantages of us- 
ing the 6502. The 
knowledge of pro- 
gramming 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 pro- 
grammed 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 lower- 
ing power requirements. Buffered signal 
lines mean less loading on buses. 
Memory is expandable in 16 K byte in- 
crements 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 9460 S, Sandy UT 
84070. 

Circle 563 on inquiry card. 



Attention Readers and 
Vendors. . . 

Where Do New Products Items 
Come From? 

77? a in form at ion 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 per- 
sona! 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 capa- 
city to evaluate the products 
and companies appearing in the 
"What's New?" feature is neces- 
sarily limited. W~e therefore can- 
not be responsible for product 
quality or company performance. 



August 1979 © BYTE Publications Inc 225 



The 



I 



TO ORDER CALL TOLL FREE 800-223-7318 



«e« 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 attainableonly 
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 twostandard 574- 
inch 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 lower case), numbers and graphics available 
in the PET. The tractor feed capability has the advantage of 
accepting mailing labels, using standard preprinted forms 
(customized), check printing for salaries, payables, etc. 
The PET is programmable, allowing the printer to format print 



for: width, decimal position, leading and trailing zero's, left 
margin justified, lines per page, etc. It accepts 8y 2 -inch paper 
giving up to four copies. 

Features Include: 

• 150 cps • 6504 microprocessor-controlled • y 2 K RAM buffer 

• Bottom and rear tractor feed • 4K operating system in ROM 



Model 2023 (Friction Feed) - $849 



CABLE FROM PET TO DISK OR PRINTER - $39 
CABLE FROM PRINTER TO DISK - $49 



FULL SYSTEM NOW IN STOCK FOR IMMEDIATE DELIVERY! 



SUPER WORD PROCESSING SYSTEM 



$2395 complete 



with software *' 



System Includes: • Anderson Jacobson 841 Selectric Prime 

• 16K PET with Full Sized Keyboard • Interface 



The Super V 

Assembly Ls 
for such tasl 



performance printers with incremental and proportional letter 
spacing. The Super Word Processor easily creates, edits, 
rearranges, and formats text. It can merge multiple texts. In 
lands, the system has automatic text 

i mates the need for carriage returns. 

The system uses a holding buffer to rearrange blocks 



BUSINESS SOFTWARE FOR 
PET BUSINESS SYSTEM 



• Super Word Processing Package 
(disk & tape versions) 

• Real Estate 

• Statistics 

• Banking &. Finance 

• Mail List Management 

• Data Base System 



anywhere on the page. Up and down screen scrolling makes 
editing a breeze! Commands include end-to-end cursor line 
SCAN, INDENT, TAB, soft HYPHEN) for splitting syllables at 
the end of a line, ( and four-direction cursor control. Output 
formatting includes dynamic print control, Indentation, right 
justification, line width and line-to-line spacing and 
proportional letterspacing. 

Also included are programming capabilities for performing 
such useful tasks as direct-mail form-letter typing, multiple 
column printing, and automatic multiple forms entry. You may 
obtain this system in a cassette or disk drive version. 




• Small Business Package 
(A/R. A/P, G/L) 

• General Ledger 

• Super Random Access 

• Cash Receipts & 
Disbursements 

• Inventory Control 
(for manufacturers) 



PERIPHERALS FOR PET 

• 24K,Memory Expansion 

• 16K Memory Expansion 

• PET to RS232 Serial 

• 2 Way Serial/Communication , 



Min Credit Card 
Order $75 



VISA 9 



N.Y. residents add 8% sales tax • Same day 
shipment on prepaid and credit card orders 
• Add $5 shipping for computers. $3 for 
boards. $.25 each cassette tape. 

Open Mon-Fri 10-6 Sat 10-4 



alog to Digital Board . 
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. S39 




iNEWhrcn 

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 

• Automatic turn-on and card feed| 

• Ideal for marking test scores 

• Accepts any length card 

• Perfect for schools & business^ 



TO ORDER CALL TOLL FREE 800-223-7318 (46thSt) 

TIlA fVMWIDI ITCD CAf^Tf^DV 485 Lexington' Avenue 750 Third Avenue New York. N.Y, 10017 
I lit; K^KJiVirU I Cn TMV* I V/n I (212) 687-5OOI (212) PET-2001 Foreign order desk - Telex 640055 



226 BYTE August 1979 



I 



SUPRBRAIN 



TM 



INTE3TEC 

DATA 

SYSTEMS 

ONLY 

$2995 




TO ORDER CALL TOLL FREE 800-223-7318 



only $795 

• 14K ROM Operating system 

• 8K RAM Memory 

• 9" Video Monitor 

• Built in Keyboard 

• Digitally controlled tape 



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 itl General Ledger, Accounts 
Receivable, Payroll. Inventory or Word Processing. . .the SuperBrain handles 
all of them with ease. 

Your operators will praise the SuperBrain's good looks. A full ASCII keyboard 
with a numeric keypad and function keys. A non-glare, dynamically focused, 
twelve inch screen. All in an attractive desktop unit weighing less than a 
standard office typewriter. Sophisticated users will acclaim SuperBrain's twin 
Z-80 processors which transfer data to the screen at 38 kilobaud! Interfacing a 
printer or modem is no problem using SuperBrain's 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 II PLUS ONLY$1 1 95 



A cumplete self-contained computer system with APPLESOFT floating point 
BASIC in ROM, full ASC 1 1 keyboard in a light weight molded carrying case. 

Features Include: 

• auto-start ROM • Hi-Res graphics and 15 color video output. 

• Expandable to 48K. 



Disk $595 

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! 

W8SS8 



S35 of Software with purchase of any 
computer on this page 



Send for FREE Illustrated Software 
Catalog for PET/APPLE/TRS-80 
with hundreds of selections from 
all over the world. 





$1495 Complete! 
16K Model add $200 
32K Model add $500 

Compucdorll 

COMPUCOLOR II Disk-Base^ Mnrioi -\ 
Advanced hardware and soft 
gives you: 

• 13" Color Display 

• Advanced Color Graphics 

• 51K Disk Built-in 

• 16K ROM Operating System 
» 8K RAM User Memory 

• 4K RAM Refresh 

• 80B0A Microcomputer 

• RS-232 I/O 

Every unit comes with an extended DISK- 
BASIC that has full Hie management capa 
bility resident in the COMPUCOLOR II m 
16K of ROM. Color is fantastic, but COM- 
PUCOLOR II has the power to handle con 
plex tasks and small business applications 
An impressive software library supplement 



BUSINESS 

COMPUTER 

IMSAI 

The low cost solution 

for all small business 

problems A wide variety 

ol software is 

available lor all your needs 

PCS series include dual floppies, 32K RAM 

I O, DOS. BASIC 

• PCS-42 (400KB) $3295 

• PCS-44 (780KB) $3995 

VDP-42 series adds video terminal, key- 
board and VIO to above 



PET 



^SPECIAL SPECIAL 

$200 FREE Software with^^l 
purchase of 8K PET >* | 



BUSINESS COMPUTER 



>< 



/ 



DATA GENERAL 
micro NOVA 



The ultimate in small business computers 
when matched with COMPUTER FAC- 
TORY'S minicomputer; Software Accounts 
hie/Payable, Inventory Control/ 
' Data Lieneicll 0rd8r Emrv ' General Ledger. Payroll Sys 
terns from about <t 



$13,500 




• VDP-42 

• VDP 80 



$4995 
$7995 



• VDP-44 

• VDP 180 



$5595 
$8995 



SUPER SOFTWARE 



Word 

Processing 
For PET 



This super advanced full function program will allow 
you to create text from PET or terminal keyboard. [ 
• INSERT • DELETE • CENTER • UNDERLINE • | 
FULL SCREEN EDITING • MOVE LINES OR 
BLOCKS • SAVE TEXT ON TAPE • AUTO PRINT [ 
FEATURE.. ..$45 



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 plot3differentmoving 

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 




SORCERER 

SPECIAL 

12" Video Monito 

for SORCERER 

($299 value) 

ONLY 

$125 with 8K unit 
95 with 16K unit 
65 with 32K unit 



RADIO SHACK • PET • SORCERER • 
lAPPLE • COMPUCOLOR • ETC. 



PRINTERS • PRINTERS • PRINTERS 



The COMPUTER FACTORY'S extensive CENTRONICS 779. . . . $1095 

inventory and wide selection of computer TRENDCOM ... 375 

printers assures you of finding 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 computers 



ANDERSON JAC0BS0N 




„NOW 



• ASC 1 1 Code 

• 15 cps Printoul I 

• High Quality Selective Printing 

• Use Keyboarfl lor PET 

• Reliable heavy duly Mechanism 

• Completely Refurbished by A.J. 

• Service in 15 Ma| f Cit 



STOCK'| 

Parallel - 

$1095 

Serial 

$1195 




Open 
I Min Credit Card VISA* y\ on _ Fri 
Order $75 I ,'_:■ -.■■'> X iq-6 

NY residents add 8°/ D sales tax • Same day c a | 1 fl-d. 
shipment on prepaid and credit card orders ^ a *- ■ U" 4 * 
• Add S5 shipping for computers, S3 for 
boards. S 25 each cassette tape 



NEW 
CENTRONICS 730 

SO CPS - MICROPROCESSOR 

CONTROLLED! 

Tractor & Friction Feed • Uses 

Single Sheets, Roll, Fanfold • Upper 

& Lower Case • Light Weight 

Parallel $995 

Serial $1045 < -££\t a 



oU! 



,o<* 



Atf 



TO ORDER CALL TjOLL FREE 800-223-7318 [m 

f\Wk IQI ITCD CAf^TTT\DV 485 Lexington Avenue 750 Third Avenue New York, N.Y. 10017 
KJlVlfr U I EH "My I V/rl I (212) 687-5001 (212) PET-2001 Foreign order desk - Telex 640055 



BYTE August 1979 227 



What's New? 



PERIPHERALS 



Video Board Features High Density and Reverse Video 




A higher density version of the 
Flashwriter Video Board, featuring op- 
tionally controlled reverse video, has 
been announced by Vector Graphic lnc ( 
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 reso- 
lution 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 char- 
acters 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 up- 
dating of the screen via memory mapped 
I/O (input/output). Special circuitry 
prevents flashes on the screen when up- 
dating memory, and a keyboard port 
with latched data provides easy inter- 
face to Vector Graphic's Mindless Ter- 
minal or other parallel keyboards. 

The Flashwriter II is priced at $320 
assembled. 

Circle526 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 v 

This S-1 00 bus compatible data 
modem and communications adapter, 
designated the MM-103, has been ap- 
proved by the Federal Communica- 
tions Commission (FCC) for direct con- 




nection to the public switched tele- 
phone network without the use of 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 com- 
munications capabilities, the MM-103 
provides auxiliary inputs and outputs 
that will interface with computer sys- 
tem power-up control (on telephone 
ring or external input); voice recorder 
announcement equipment; and alarm 
recognition and automatic dial equip- 
ment. 

The modem is available fully as- 
sembled for $319.95 which includes 
an unconditional ten day return privi- 
lege and a one year limited warranty. 
For further information contact Poto- 
mac Micro-Magic Inc, POB 11149, 
Alexandria VA 22312. 

Circle 528 on inquiry card. 



New Family of RS-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 be- 
tween 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 ex- 
change data with the peripheral unit. A 
unique arrangement allows the cas- 
cading 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 Syn- 
thesizer, 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 self- 
contained unit with its own AC power 
supply. The interface circuit board con- 
tains an on board 2 W audio amplifier, an 
S-100 connector for the CT-1 speech syn- 
thesizer board, and a Radio Shack com- 
patible edge connector. An interconnect 
cable (supplied with the Model CT-1T) 
connects the unit to the TRS-80 bus con- 
nector on either the keyboard or expan- 
sion interface. Standard phone jacks pro- 
vide connections for external speakers, 
headphones or external amplifier (not 
provided). 

The Model CT-1T can be operated in 
two modes: direct parameter control and 
phonetic, and it is supported by a grow- 
ing library of software. Each unit is ship- 
ped 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 Com- 
putalker Consultants, 1730 21st St, Suite 
A, Santa Monica CA 90404. 

Circle 530 on inquiry card. 



228 August 1.979 © 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 com- 
patible, 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 power- 
ful 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 FDOS, Pascal, Basic and complete diag- 
nostics. 

A&T $175.00 
Blank PC $ 35.00 

• K2 FDOS Disk software in the DEC 
tradition. Includes character oriented text 
editor (TED), File Package (PIP), Debugger 
(HDT), Assembler (ASMBLE), HEXBIN, 1 
COPY, System Generator (SYSGEN) and 
more. Command syntax follows Digital's 
OS-8/RT-11 format. First in a family of high 
level software. Basic and Pascal available 
now. Soon-to-be-released Fortran. 

K2 Disk $ 75.00 

• Video Display Board features the 

full 128 upper/lower case ASC^I 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 mdis- 

pensable for storing dedicated programs and 
often used software. Accept up to 16K of 
2708's or 32K of 271 6'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— nowall their 
boards are available assembled and tested. 
"This is a natural progression for the com- 
pany" 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 sched- 
uled 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 
1$/Byte Barrier 

By cutting prices for 32K of RAM to $319 
Ithaca Audio becomes the first computer 
vendor ever to offer high speed memory for 
less than a penny a byte. Commenting on the 
announcement, Steve Edelman, Director of 
Engineering said "Just a few years ago 
people were wishing for a penny a bit, and 
even now memory for most large computers 
costs about 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 
64Kto take advantage of the lowpriceperbit. 
Furthermore, the board is available both as a 
kit and assembled and tested. 
Delivery is stock to two weeks. Pricing is: 

• 32K kit $319 

• 32K A&T $359 

• 64K kit $645 

• 64K A&T $695 

8" Disk Drives 

Shugart compatible Memorex 550's are in 

stock. 

Single and double density compatible, 330K 

bytes capacity with our controller or use your 

own. 

Either way $456 

• Protoboard Universal wire-wrap board 
for developing custom circuitry. Room for 
three regulators. Accepts any size DIP 
socket. 

Blank PC $ 25.00 



Pascal/Z Ready 

The first Pascal Compiler for the Z80, and the 
fastest Z80 Pascal ever is now ready. Over 
one year in development, Ithaca Audio was 
obviously pleased with the results. "We really 
have outperformed them" states Jeff 
Moskow, Director of Software Engineering, 
beaming over the recently released bench- 
marks, 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' pro- 
grams execute significantly slower. There- 
fore, 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 implementa- 
tion and may well be faster than dedicated 
Pascal machines such as the recently 
announced Western Digital Pascal Micro- 
engine.™ Unlike the Microengine, Pascal/Z 
does not require any new special CPU 
hardware and has the added benefit of com- 
patibility 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 Macro- 
assembler. Binary files may be as small as 
2.5K, or even less if the full library is not used. 
The compiler, including the Macroassembler, 
is available on an 8" K2 floppy disk. Price 
including full documentation is $175.00. The 
Macroassembler is available separately for 
$50.00. Delivery is from stock. 

More Software: 

For those that don't require the speed of a 
compiler like Pascal/Z, Ithaca Audio also 
offers the convenience of BASIC. BASIC/Z, 
an extended version of TDL's Super Basic, 
runs in slightly over 1 2K and is supplied on an 
8" K2 disk for $75.00. 

SAVE Even More - 

When you buy your software as a package 
K2 and Pascal/Z $225 

SAVE $25 
K2, Pascal/Z and Basic/Z $275 

SAVE $50 



HOW TO ORDER 

Send check or money order, include $2.00 shipping per order. 
N.Y.S. Residents include tax. 

For technical assistance call or write to: 



ITHACA 
AUDIO 



P.O. Box 91 

Ithaca, New York 14850 

Phone: 607/257-0190 



BYTE August 1979 229 



CASSETTE AND FLOPPY 
DISC LABELS. 



□ 



»e!i-tdhnsNe 

STANDARD CASSETTE 



Avery offers a complete line of labels for 
cassettes and floppy discs — all with re- 
movable adhesive. Including these stan- 
dard sizes* 

Cassette Label (1%" x 3 1 /2") #5250 
Floppy Disc Label (W x 5 1 /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" 
Mack m white/color 

Monitors * Combination Rcvr /monitor sets 
* Modulator kits * B-W Cameras * Color 
Cameras * Audio Subcarrier kits * Parts 




WRI^E or PHONE for DETAILS & PRICING. 



DIAL: 402-987-3771 F- 



Dealers welcomed. Well established program. 

13-B ATV Research Sl ko l a „5iP' 
Broadway y ^L^M NE - 6BT3 ' 



Circle 19 on inquiry card. 



GLARE FILTER 

HIGH CONTRAST 

SHARP RESOLUTION 

MICRO-POROUS OPTICAL FILTER 

FOR HOME COMPUTER CRT'S 



No Filter 




TRSBO 


16.95 


PET 


16.95 


A0M3A 


16.95 


Soroc 10 120 


16.95 


Hazeltine 




Southwest Tech. 


16.95 


14001500 


16.95 


Micro-Term 




Pel kin 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 
Check/money order Visa/Mastercharge 



cc 

.< 



L 



THE 

RECREATIONAL 
PROGRAMMER 



\ 



QUALITY SOFTWARE! 

Tl & HP Programmables 
BASIC (or most computers 



LU 

Q_ 



O 
00 

cc 



GAMES- ALGORITHMS- PUZZLES 
STOCK ANALYSIS- AND MORE! 

OVER 30 PAGES BIMONTHLY! 

ANNUAL SUBSCRIPTION ONLY: 
$12 within USA & APO/FPO's 

$24 Foreign by AIRMAIL 
Single issue for S3 incl P&H 

VISA and MASTERCHARGE OK! 
CALL (616) 343-3546 NOW! 
Box 2571 Kalamazoo Ml 49003 




HAZE LTINE 
1400 



only 

$649.95! 



• Verbatim Mini Diskettes . . . 

... $3.70 each {boxes of 1 0) 

• Intertube . . $784.00 

• TRS-80 16K Level II 
Expansion Kit $89.95 

• Centronics 779 tractor .... 

$1050.00 

• Horizon II ass. ... $ 1 999.00 



Ma' 1 TORA SYSTEM INC. 
Order 2 9-02 23rd Avenue 
° nly - Astoria NY 11105 
(212)932-3533 



AIRCRAFT SIMULATOR 
FOR APPLE II 




PROGRAMMERS 
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. BOX 199 (501)843-6037 

CABOT, ARKANSAS 72023 




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. Inter- 
face modules for industrial control, 
data acquisition, lab instrumentation, 
on 44 pin 4Vfe"*6W PCB'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 w «™l Corp. 
902 N. 9th Street 
Lafayette, IN 47904 
Phone (317) 742-6802 



Circle 389 on inquiry card. 



L 



• APPLE ) 

SUPER SALE 

16K Apple II $1019.95 

Disk with 

Controller $529.95 

Apple Soft Cards. . .$159.95 

Carrying Case $29.95 

Super Mod $29.95 

Printers— call for price 

UCATAN CORP. 

P.O. Box 1000 

Destin, Fla. 32541 

904-837-2022 
Credit Cards Accepted ■ 



Circle 375 on inquiry card. 



SOFTWARE 

for TRS-BO & North Star Z80 

all programs written in 

Z80 assembler 

WORD PROCESSOR $1 25 

Superior to the Electric Pencil at half the price. 
Gives total freedom of layout. Auto line justi- 
fication, underlining, centering, linespacing, 
pagination, re-pagination, etc. Works with any 
printer. 

B04B CROSS ASSEMBLER $95 

Assembles programs for B04B. 8041. B035 
series at 1 1 00 lines/min. INTEL mneumonics & 
error codes, multiple source files, symbol re- 
ference count, format control. 

TEXT EDITOR £75 

UNIX™-style editor with global search & re- 
place, pattern matching, reads & writes partial 
files, change, move, copy, append, delete, print, 
etc. 

UNIX™ is a trademark of Bell Labs 
Send 51 for specifications. 

S3 for documentation 
Dealer discounts available 

SOFTWARE INGENUITY 

P.O. Box 1964, Eugene, OR 97401 



Circle 356 on inquiry card. 



Circle 315 on inquiry card. 



Circle 333 on inquiry card. 






Computer 
Boards 



h HOBBY WORLD® 

CALL TOLL FREE: (800) 423-5387 
CA, HI, AK: (213) 886-9200 

Your No.l Source for Computer Electronics 



SlOO Bus 



CCS = California Computer S>ilerr 

WMC = Wameco 

IA Ithaca Audio 

SSM= Solid Stale Music 

SDS = SD Systems 

SPL = Spfechlab 

HUH = HUH Electronics 

MH = Mountain Hardware 

a At assembled & tested 



Cat No. Mfr/Mode! Description 

■ 16K. STATIC RAM MODULE, 450ns kit 



1601A CCS-MXVI 
1601B CCS-MXVI 
1602A CCS-MXVI 
1602B CCS-MXVI 
* CCS-MXVI 
CCS-PT1 
CCS-PT2 
CCS-PT3 
SSM-PB1 
SSM-T1 
SSM-MB7 
SSM-MB7 
SSM-MB7 



1603 
1600 
1604 
1609 
1440 
1442 
1405 
1406 
1407 
1425 
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 



SSM-MB3 
SSM-MB9 
SSM-MB9 
SSM-OB1 
SSM-OB1 
SSM-OB1 
SSM-J02 
SSM-102 
SSM-102 
SSM-SB1 
SSM-SB1 
SSM-SB1 
SSM-MT1 
SSM-104 
SSM-104 
SSM-104 
SSM-CB1 
SSM-CB1 
SSM-CB1 
SSM-VB1B 
SSM-VB1B 
SSM-VB1B 
SSM-MB6B 
.M-MB6B 
1M-MB6B 



as above. 200ns kit 

as above, 450ns a&t 

as above, 200ns a&t 

as above, bareboard 

WIREWrtAP PROTOTYPING BOARD 

SOLDERTAIL PROTOTYPING BOARD 

ETCH PROTOTYPING BOARD 

4K/8K EPROM BOARD 

TERMINATOR BOARD 

16K STATIC RAM BOARD, kit 

as above, a&t 

as above, bareboard 

2K/4K EPROM BOARD, kil 

as above, a&t 

4K STATIC PROM/RAM BOARD, kit 

as above, a&t 



Price 
$285 
$330 
$330 
$375 

ni\ 
i« 

$135 
$ 29 

$329 
$383 
$ 26 

$ 54 
$108 
$ 64 
>118 



VECTOR JUMP/PROTOTYPING CARD, kit $47 



as above, a&t 

as above, bareboard 

UNIVERSAL I/O BOARD, kil 

as above, a&t 

as above, bareboard 

MUSIC SYNTHESIZER, kil 

as above .i&t 

js j have, b.uc'mard 

15 SLOT MOTHfcKBOARD, bareboard 

2 PARALLEL + 2 SERIAL PORTS, k.t 



1509 

1510 

1511 

1513 

1512 

1514 

1500 

1501 

1505 

1506 

1518 

1520 

1516 

1517-0 

1517-16K 

1517-32K 

1517-48K 

1517-64K 



as above, u «... uu «. 

8080A CPU BOARD, kit 

as above, bareboard 

as above, a&t 

VIDEO INTERFACE BOARD, kit 

as above, a&t 

as above, bareboard 

8K STATIC RAM BOARD, kil 

as above, a&t 
_ as above, bareboard 
SSM-MB8A 16K 2708 EPROM BOARD, kil 
SSM-MB8A as above, a&t 
SSM-MBISA as above, bareboard 
SSM-VB2 VIDEO BOARD, kil 
SSM-VB2 as above, a&t 

SSM-MB4 STATIC RAM BOARD, kil, 2MHz 
SSM-MB4 as above, a&t 
SSM-MB4 as above, bareboard 
WMC-EPM1 4K EPROM BOARD, bareboard 
WMC EPM2 16/32K EPROM BOARD, bareboard 
VVMC-FPB1 FRONT PANEL BOARD, bareboard 
WMC-CPU1 8080A CPU BOARD, bareboard 
WMC-FDC1 FLOPPY DISK CONTROLLER BOARD, 

bareboard 
WMC-MEM18K STATIC RAM KIT, bareboard 



WMC-MEMlparfs only for above 

5708/1 6 JEPROM BOARD, bareboard 



IA 

IA 

IA 

IA 

HUH-MPA 

HUH-MPA 

MH 

MH 

SPL-20S 

SPL-50S 
SDS 
SDS 
SDS 
SDS 
SDS 
SDS 



APPLE BUS 

1607 CCS 
1606 CCS 

1608 CCS 
1519 SPL 



8K STATIC RAM, bareboard 

Z-80A CPU BOARD, bareboard 

WIRE WRAP PROTOTYPING BOARD 

PET & APPLE TO S-100 ADAPTER, kit 

as above, a&t 

100,000 DAY CLOCK, a&t 

INTROL 

32 WORD SPEECHLAB, a&t 

64 WORD SPEECHLAB, a&t 

VERSAFLOPPY, kit 

EXPANDORAM, kil 

as above, with 16K RAM 

as above, with 32K RAM 

as above, with 48K RAM 

as above, with 64K RAM 



SOLDERTAIL PROTOTYPING BOARD 
WIREWRAP PROTOTYPING BOARD 
ETCH PROTOTYPING BOARD 
32 WORD SPEECHLAB 



$ 74 
$ 26 
$ 48 
$ 93 
$ 26 
$145 
$212 
$ " ' 
$ 

$139 
$193 
$ 26 | 
$119 I 
$ 34 I 
$164 I 
$129 | 
$176 
$ 26 
$129 
$183 | 
$ 26 

$ r~ 

$118 
$ 26 
$139 
$199 
$ 89 
$142 
$ 26 
$ 28 
$ 28 
$ 48 
$ 28 | 

$ 48 

$ 28 

$ 80 

$ 28 

$ 28 

$ 32 

$ 24 

$199 

$279 

$219 

$329 

$189 

$299 

$159 I 

$185 

$249 

$330 

$425 

$500 



$ 21 
$ 21 
$ 18 

$189 



HUH 8100 
|TRS-80k>S100 BusAtaptorl 

• 6 Slot motherboard 

Includes options such as 

serial RS232/20ma I/O, 

parallel input and output, 

space for 4K or 16K RAM, 

and more. Basic unit in- 
cludes Bus interface and 

connectors only. 
1460 Bus interface kit $167 

Ram Support kit $ 42 

I/O Option kit $ 77 

5 connectors + guides $ 42 
Complete Package $266 

Bus Interface a&t $220 

Complete Pkg. a&t $340 



Cat No 
Cat No 
Cat No 
Cat No 
Cat No. 
Cat No. 1465 
Cat No. 1466 



1461 
1462 
1463 
1464 



*ti& 



¥& 




<*' 



^^ 




LOW PROFILE BASE 
Cat No. PV305 
$^9 $10.50 



BASE TRAY 
Cat No. PV312 
$ p& $ 8.50 



BASE MOUNTING CLAMP 
Cat No. PV311 

$j3<9t $10.00 




HORIZONTAL VISE HEAD 
Cat No. PV304 

$1>rf9 $12.00 



IC Sockets 

Penny-A-Pin 

» Texas Instruments 

• 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 top of Level II, 
turns your TRS-80 into a 
powerful system. Gives disk 
commands without the 
DOS. Solves loading prob- 
lems, cures keyboard 
bounce. Software cassette, 
with the power of a hard- 
ware modification. Guaran- 
teed satisfaction. 
Cat No. 1 32 $49.00 

$49 

Moltage 
Regulators 

I Type Equal to CASE PRICE I 



I7805KLM340K + 5 
J7812KLM340K + 12 
|7815KLM340K-f 15 
17818KLM340K + 18 
I 7805 T LM340T + 5 
J7812T LM340T + 12 
I7815T LM340T+15 
|7818TLM34oT + 18 
I7905KLM320K-5 
7912KLM430K-12 

■ 7905T LM320T-5 

■ 7912TLM320T-12 
I7915T LM320T-15 



TO-3 $1.40 1 
TOO $1.40 1 
TO-3 $1.40 1 
TO-3 $1.40 1 
TO-220 .95 I 
TO-220 .95 I 
TO-220 .95 1 
TO-220 .95 I 
TO-3 $1.75 1 
TO-3 $1.75 1 
TO-220 $1.25 I 
TO-220 $1.25 1 
TO-220 $1.25 I 



19355 Business Center Dr. 6B8 
NorthridgeGf 91324 






STANDARD BASE 
Cat No. PV300 
$>eK^9 $10.50 



VACUUM BASE 
Cat No. PV380 
$1^9 $14.50 




WIDE OPENING 
VISE HEAD 
Cat No. PV366 

$j>><5 $11.25 




STANDARD VISE HEAD 
Cat No. PV303 

$}*$$ $11.25 



PC BOARD VISES , 

Cat No- PV315 Standard. $1>$8 $14.75 

Cat No. PV315 S-100 $fcjf $16.75 



TRS232 

Printer Serial 
Interface $42 

Software driven RS232 out- 
put port. Interface printers 
such as DIABLO, TELE- 
TYPE, Tl SILENT, etc. 
Easy to install, with inst- 
ructions. 
Cat No. 1199 $42.00 



TTL'S 



i irdei by 



16K Memory 
>4c!d-On 



$95 



• For TRS-80, Apple II 

Guaranteed memory expan- 
sion! Includes everything 
you need. ..chips, jumpers, 
and step by step instruc- 
tions. No special tools, no 
soldering! 
Cal No. 1156 



"LIFT-IT- 
PC Duplicating Kit 
$25 

Copy PC patterns 



magazines quickly 
"--sal 



from 
and eas- 
ily! No additional materials 
required, no camera needed. 
With 10x12" sheet of film. 
We stock all refills. With 
step-by-step instructions. 
Cal No. 1203 $25 

LEEDEX 

12" Video /Monitor 

$139 

• TRS-80 compatible 
[no interfacing required) 
• High resolution 

Accepts standard composite 
video input, no RF modu- 
lator necessary. Stable & 
sharp. Lightweight. Ship- 
ping $6 gnd, $12 air, USA 
only. 
Cat No. 1204 $139.00 



Pay by check, COD, Visa, 
or Mastercharge. Order by 
phone or mail. Please in- 
clude phone number and 
magazine issue you are or- 
derinR from. USA: add $2 



7400 


.15 


7402 


.20 


7403 


.20 


7404 


.20 


7405 


.20 


7406 


.30 


7407 


.30 


7408 


.20 


7409 


.20 


7410 


.20 


7411 


.25 


7412 


.25 


7413 


.35 


7414 


.60 


7416 


.25 


7417 


.25 


7420 


.20 


7423 


.25 


7425 


.25 


7426 


.25 


7427 


.25 


7430 


.25 


7432 


.25 


7437 


.25 


7438 


.43 


7440 


.20 


7441 


.70 


7442 


.50 


7443 


.50 


7444 


.25 


7445 


.75 


7446 


.75 


7447 


.65 


7450 


.20 


7451 


.20 


7453 


UO 


7454 


.20 


7470 


.30 


7472 


.25 


7473 


.35 


7474 


.35 


7475 


.45 


7476 


.35 


7481 


1.20 


7483 


.60 


7485 


.75 


7486 


.35 


7489 


1.75 



type number 

7490 .45 

7491 

7492 

7493 

7495 

7496 

74107 

74109 

74121 

74122 

74123 

74126 

74132 

74141 

74145 

74150 

74151 

74153 

74154 roo 

74155 .70 
74157 <60 

74160 §5 

74161 .75 
74163 .75 
74165 .95. 



.55 

.45 
.45 
.65 
.65 
.35 
.55 
.35 
.40 
.60 
.40 
.65 
.80 
.65 
.90 
60 
60 



74166 1.25 
74170 1.60 

74173 1.10 

74174 .85 
.70 



74175 
74176 
74177 
74180 
74181 1.75 

74190 1.25 

74191 .95 



.75 
.65 



74192 
74193 
74194 
74195 



.75 
.75 
.90 
.70 



74198 1.49 
74221 85 



74365 
74366 
74367 
74368 



.65 
.65 
.65 
.65 



Send for 

FREE CATALOG 

Featuring 

The best selection of computer 
accessories add-ons, factory 
fresh IC's, led's, semi's, soft- 
ware, PC aids, prototyping 
aids, books, test equipment, 
and more! Always updated! 
Dozens of new products every 



for shipping/handling, $3 
for air. Foreign: add $3 for 
surface, 56 for 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 

d®iMra sum 



Mainframes 

Personal Computers 

S100 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 search for 
life-saving knowledge about 
catastrophic childhood disease. 
And this search continues 
because people core. There's 
no charge to patients or their 
families, once admitted to its 
research studies by physician 
referral. The cost of drugs, 
equipment, and research 
programs is met primarily 
by public contributions. Help 
us celebrate the child by send- 
ing your tax-deductible check 
or request for further informa- 
tion to St. Jude Children's 
>_ m Research Hospital, 
* mT 539 Lone Ave., 
A? Memphis, TN 38105. 

ST.JUOS CHILDREN'S HESEARCH HOSPITAL 



ROBOT 



ATTENTION FRANKENSTEINS 

12-VOLTDC, 17-RPM, 

REVERSIBLE GEARMOTORS 

500-ma NO LOAD, 

750-ma FULL LOAD 

11 INCH-POUNDS TORQUE 

2 MOTORS SEPARATELY DRIV- 
ING 6-INCH DIAMETER WHEELS 
WILL DRIVE A 1 00-LB ROBOT. 
$18.00* EACH PLUS $1.50 PER 
MOTOR FOR SHIPPING AND 
HANDLING IN USA. CHECK OR 
MONEY ORDER PLEASE. CALIFOR- 
NIA RESIDENTS ADD 6% TAX. 

GLEDHILL ELECTRONICS 

P.O. BOX 1644 
MARYSVILLE, CA 95901 

•THIS IS $5.50 BELOW MANUFACTURER'S UST! 



FOR TRS-80™ OWNERS ! 

Programming Amateur's Letter 

THE "DO-IT-YOURSELF" 
SOFTWARE NEWSLETTER 

PUBLISHED MONTHLY 

LEVEL II FROM THE BOTTOM UP 

BUSINESS 

PERSONAL 

HOBBY 

There's Nothing Else Like it! 

$24 per year . . . or write for FREE DETAILS 

THE MAIL MART 

Dept BA.Box 1 1 102,SanFrancisco,CA94101 



Circle 199 on inquiry card. 



fiuss 

ll?e Jn dependent 
YeivsleHer of 
Heaty Co. Computers 

31?-31fenns^ vania Awe. ,S.E. 
Ufos)?!n^toin,?.C. 20003 

ft 2.30 for 12 issues 
j 15.60 for 1H issues 

(overseas, $10. 50 /H- y 

$ 70/24 

payable on a U.$. bank) 



Circle 32 on inquiry card. 



ALIGNMENT 
ONLY 

$ 35 



SHUGART 
E 
FLOPPY 
A 

DISC 
R 



$ 80 

INCLUDES MISC. PARTS 

THfc 

COMPUTER 
REPAIR Cm. 

8746 Wurzbach / Suite 207 
San Antonio TX 78240 / (512) 696-0907 




Sad 



MICRO FOOTBALL 

(TRS-80 16K Level II Cassette) 

Great graphics and player action! 
You can run, pass, draw, punt, 
blitz or kick a field goal. 
Touchdown, safety, interception, 
fumble are all included. 

You can call an offense, your op- 
ponent calls a defense! Instruc- 
tions are included to 'fine tune' 
odds if you wish. 

(Send $12.95 to:) 

GLA Enterprises 

P.O. Box 125 
Reistertown, MD 21136 

(Maryland residents include sales tax) 



Circle 145 on inquiry card. 



Special Sale! 

DATA TERMINAL t«)AA 

PRINTER 05J «9 

We Buy-Sell-Trade all brands & 
models of Data Processing 
Equipment. 




USB-330 10/30 CPS impact 

Printing Tractor Feed 132 Print Positions 
tO-Key Pad 
Nearly a million dollars In inventory 

* * Phone for Price Quotes 

Ull" 214/357-5725 

"KALHRO 

computer brokers 

Formerly U S Brokers Co . A Division of Kalbro Corp 

2636 WALNUT HILL LANE, SUITE 347 

DALLAS, TEXAS 75229 

•••••••••••••• 



Circle 377 on inqu 


ry card. 




get your 
hands on . . . 

Hands on microprocessor short course with 
FREE take home microcomputer included in 
the$449tuition. 

5 dayjtiPand interfacing workshops 
Oct. 15-19 Washington, DC 
Oct. 22-26 Lafayette, IN 
Dec. 3-7 Lafayette, IN 
NEW Advanced programming work- 
shop 

Dec. 10-14 Lafayette, IN 
Learn microprocessor* first hand from the 
original hands on people. 
For more information call Jerilyn Williams, 
(317) 742-6802 or writeWintek Corp., 902 North 
9th Street, Lafayette. IN 47904 

■ 6800 Hardware/Software 

■ Custom Hardware/Software 

■ In-house short courses 




| WIN IKK 


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 Z60A 
CPU and serlal/paralle I/O system 

• Fully S-100 Bus compatible, 
IMSAI, ALTAIR 

• ZBOA CPU (4.MHz version of the 
Z80) 

• 158 Instructions — superset of 
and upward compatible from the 
8080's 78 instructions 

• Provision for up to 4K on board 
monitor program using 1K (2708), 
2K (2716), 4K 2732 

• On board EPROM can be hard- 
ware and/or software deselected 

• 2 MHz or 4 MHz operation is 
switch selectable 

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



1 Gold Contacts for higher relia- 
bility 

1 Power requirements: +8V @ 
800mA, + 16V, @ 86mA, - 16V 
@ 100mA 

• Operating temperature 0*-55*C 

• Will operate with or without 
IMSAI/ALTAIR front panel 

» Low power shottky tri-state buf- 
fers on all address and data lines 

' Fully warranted for 120 days from 
date of shipment 




$325.°' 



IMSAI CONN. 

100 PIN-SOLDERTAIL 
GOLD CONTACTS 

$3.°° each or 10/2.60 each 



8251 

PROGRAMMABLE/U-ART 

TESTED® 4 MHZ 

$5. 00 each 



TRS-80 



Floppy disk drive with 
cabinet & pwr. supply 
compatible with Radio 
Shack Interface. Ass- 
embled & tested with 
1 yr. warranty on 
parts & labor. 

Mfg. by Lobo Drive 



$385. 00 " 

Interface Cable Available 




SPECIAL 

.1 @ 12 VOLTS 
CERAMICCAP 

10$ each 

or 
100 /$9. 00 



MICROBYTE 16K STATIC RAM BOARD 



Fully S100 Bus Compatible, 
IMSAI, SOL, ALTAIR, ALPHA 
MICRO 

Uses National's Low Power 5257 
4K x 1 Static Rams 
2 MHz or 4 MHz operation 
On board single 5 amp regulator 
Thermally designed heat sink 
(board operating temperature 0' 
- 70'C) 

Inputs fully low power Shottky 
Schmitt Trigger buffered on all 
address and data lines 
Phantom is Jumper selectable to 
pin 67 

Each 4K bank addressable to any 
4K slot with In a 64K boundary. 
4K hardware or software select- 
able 

Selectable port address 
4K banks can be selected or dis- 
abled on power on clear or reset 



Will operate with or without front 
panel 
• Compatible with ALPHA MICRO, 
with extended memory manage- 
ment 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.°o 
300 NS $340.00 



MICROBYTE 32K STATIC RAM BOARD 



• Fully S100 Bus Compatible, 
IMSAI, SOL, ALTAIR. ALPHA 
MICRO 

• Uses National's Low Power 5257 
4K x 1 Static Rams 

• 2 MHz or 4 MHz operation 

• On board single 5 amp regulator 
■ Thermally designed heat sink 

(board operating temperature 0* 
- 70'C) 

• Inputs fully low power Shottky 
Schmitt Trigger buffered on all 
address and data lines 

• Phantom Is jumper selectable to 
pin 67 

• Each 4K bank addressable to any 
4K slot with in a 64K boundary. 

• 4K hardware or software select- 
able 

• One on board 8-bit output port 
enables or disables the 32K in 4K 
blocks 

• Selectable port address 

• 4K banks can be selected or dis- 
abled on power on clear or reset 



• Will operate with or without front 
panel 

Compatible with ALPHA MICRO, 
with extended memory manage- 
ment for selection beyond 64K 
No DMA restriction 

» Low power consumption 2.3 — 
2.5 amps 

1 Fully warranted for 120 days from 
date of shipment. 
Extended addressing up to 1 
megabyte of addressable ram 




450 NS $620. 00 
300NS$650. 00 



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 

9 slot kit $70. 00 A&T$100. 00 

20 slot kit$125. 00 A&T$155. 00 

Bare Board 9 slot $30. 00 20 slot $50. 00 



MICROBYTE DISK CONTROLLER 

'IBM 3740 Soft Sectored 'Compat- 
ible 

■ Z80 or 8080 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 1771 B-01 controller chip 

• Assembled and tested 

• Specify disk drive used when 
ordering by mail 




$225.' 



SHUGART 

801 -Disk Drive 

WITH CABINET & POWER SUPPLY 

ASSEMBLED & TESTED 

1 YR PARTS & LABOR 

Mfg. by Lobo Drive 

$585. 00 

Dual Cabinet & Drives Available 



2708's 

LOW POWER 
450 NS. 

$8. 75 each 
8for$66. 00 



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 5 
320 T- 12 
340 T5 
340T-12 
78H05 



1-9 10-49 50ud 
1.25 1.15 1.05 
1.00 .90 .85 

.70 

.70 



.75 
.75 



.65 
.65 



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 4ft. RIBBON 
CABLE 

$20. 00 ea. 

extra conn. $7. 00 ea. 



ORDERING INFORMATION: 

Name, Address, Phone 

Ship by: UPS or P.P. 

Shipping Charge: Add $2.50 up to 
5 lbs., all excess shipping 
charges will be refunded. Credit 

cards will be charged appropriate 
freight. 



TERMS: 

We accept cash, check, money 
orders, Visa, and Master Charge 
cards. (U.S. Funds Only). 
COD's: on approval only 
Open Acct's: companies may 

inquire for net terms. 
Tax: add 6% for Calif, residents only 



Circle 11 on inquiry card. 



BYTE August 1979 233 



TRS-80 USERS 

Loweco Computer Introduces 3 Diskless 
TRS-80 Programs 

- Telephone/ Address/Mailing list pro- 
gram - sorts by name or zip code. 
Retrieves telephone ff 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 com- 
mercials. 2 sets of four interweaving 
designs, Level I or II 4K RAM - $30.00 

- Introductory offer - all 3 for $75.00 

LOWECO COMPUTOR 

1803 Rodney 

LOS ANGELES CA 90027 

213-660-7530 

6% Tax in California 
Cashier Check Speeds Delivery 



Radio /haelf o E * LE » 

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 31 72B 

912-377-7120 



A/D 




• S-100 Bus Compatible A/D 
Converter 

• 1 2 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 Cone jo Road, Suite C10 
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 & 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 X 

RESET KEY 
PROTECTOR 

FAST RELIEF for the 
ACCIDENTAL RESET BLUES ' 

* Prevents reset when reaching 
for - and return 

* Allows deliberate usage 

* Custom, precision molded 
part * Easily installed 

* Original equipment look 

only S2.25- ihcl. shtp.&hndl. 

(calif, res. add 6 tax) 
send check or mon. order to: 
pkC, inc. dept. B 
2003 Quail St.. N.B. CA 92660 



1 




1112000 

system 


^ 


k^m^ 


The best choice 
in mainframes ! 

• S100 CARD FRAME ■ AXIAL BLOWER 

■ 22MHi 12" CRT MONITOR • ASSEMBLED & TESTED 

■ 18 AMP POWER SUPf'LY • READY FOR YOUR CARDS 

• UPPER & LOWER CASE • S995.O0 
ASCII KEY BOARDS 

VER r A 1 TRACTIVE OEM. ANO 
DEALER OlSCOUtiTS AVAILABL E. 

•CM INFINITE INCORPORATED 

CclcbrttlmK Our Illti Year. 
819 E. STRAWBRIDGE, MELBOURNE. FL 32901 - (3051 724-1588 



Circle 234 on inquiry card. 



Circle 299 on inquiry card. 



Circle 174 on inquiry card. 




nnnnnnnnnr^ 



E 



E 



BYTEs New 
Toll-free 
Subscriber 
W.A.T.S. Line 

{800)258-5485 



To further improve service to 
our customers we have installed 

a toll-free WATS line in our 

Peterborough, New Hampshire 

office. If you would\like to order 

a subscription to BYtE, or if you 

have a question related; to a BYTE 

subscription, you are, invited to 

call (800) 258-5485|between \ 

8:30 AM and 4:30 PJVl Eastern / 

Time. This applies to calls from 

within the continental US only. 

We thank you arid look 
forward to serving you. 



16K RAMS & RAM CONTROLLERS 

16k x 1 DYNAMIC RAM MK4116P3 

• 200 NSEC ACCESSI375 NSEC CYCLE TIMES 

• 16 PIN CERAMIC DEVICE/TTL COMPATIBLE 

• ALL CHIPS BURNED IN 8 125°C AND FULLY TESTED. 
BOTH DYNAMICALLY AND STATICALLY 

• PRICE (WITH DATA SHEET): 

• S68.00 IN OTY OF 8/THAT'S $8.50 EACH 

DYNAMIC MEMORY CONTROLLER MC3480L 

• GENERATES RAS/CAS & 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 (WITH DATA SHEET): $12.50 EACH 

QUANTITY DISCOUNTS AVAILABLE 
ALL ORDERS POSTPAID. U.S. FUNDS ON INTERNATIONAL 
ORDERS. CHECK OR MONEY ORDER. VISA/BAfMC ALSO AC- 
CEPTEO. SEND ACCT. NO., EXPIRATION DATE, & INTERBANK 
NO. WITH SIGNED ORDER. CALIF. RESIDENTS PLEASE ADO 
6% SALES TAX. PHONE ORDERS: 1714] 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 

M6821 PIA $4.95 

M6810 RAM. . .'. $4.95 

2708 EPROM (8K) $9.95 

2716 EPROM (16K). . . .$24.95 

Complete 6800 computer board 
kit with M6800, M6821, M6810, 
2708 EPROM, p.c. board, and 
power supply ready for oper- 
ation on 115 VAC with full 
instructions (with 2716 EPROM, 
add $10.00) $49.95 

ODS INC. 
P.O. BOX 2346 

Gaithersburg, MD 20760 



Circle 217 on inquiry card. 



Circle 286 on inquiry card. 



t ^-computer 
^/Products 



*A& 



/RAM boards. 



itfF* 



S-100 32K (uses 21 14) 
ASSEMBLED Kit 6 \ l h 

450ns. 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-100 16K (uses 21 14) KIT (exp. to 32K) 



ASSEMBLED 450ns. 279.00 

450ns. 325.00 250ns - 299.00 

250ns. 375.00 

Bare Board 49.95 

LOGOS i 8K 

ASSEMBLED 

450 ns. 169.95 KIT 450ns. 125.95 

250ns. 189.95 250ns. 149.95 

Bare PC Board w/Data S21 .95 
Now over 1 year successful field experience 
"Special Offer" Buy (4) 8 K 450ns. Kits S 1 1 7.00 



mm 



FLOPPY DISK DRIVES 




1. VISTA V-80 MINIDISK 
FOR TRS-80 

• 23% More Storage 
Capacity- 40Tracks 

• Faster Drive - f X 
Up to 8 Times Faster (395.00 I 

2 Drive Cable Add $29.95 V J 

4 Drive Cable Add S39.95 N y 

2. VISTA V-200 MINI-FLOPPY SYSTEM 

• 204K Byte Capacity • w/CPM, Basic "E' 

• One Single Sided. ^-— » v 
Double Density Drive /v-200 

• One Double Density 1699.00 
Controller w/Case & P.S. 

Add to your EXIDY, 
HORIZON, etc. 

3. VISTA V-1 000 FLOPPY DISK SYSTEM 

• (2)Shugart 800-R 8" Floppy Disks 

• Controller Card, Cable, >*"—*«v 
Case & P.S. /VMOOOA 

• CPM & Basic "E", H 699.0OJ 
InstructionsS Manual ^^_-^ 

4. MPI B51-5V4". 40 tracks 279.00 

5. Shugart SA400-5W\ 35 tracks .... 295.00 

6. Siemens/GSI FDD1 00-8 8". ..... 375.00 

7. Shugart 800/801 R 8" 495.00 

8. PERSCI Model 277 Dual 1 195.00 



EXPANDORAM MEMORY KITS 

• Bank Selectable • Uses 4 1 1 5 or 4 1 1 6 

200 ns. 

• Write Protect • Power 8 VDC. ±1 6VDC 

• Phantom • Lowest Cost/Bit 
Expando 32 Kit (41 1 5) Expandoj>4 Kit (4 1 1 6) 

8K S 179.00 16K S248.95 

16K S229.00 32K S369.00 

24K S299.00 48K S469.00 

32K S349.00 64K S565.00 



IMS STATIC RAM BOARDS #& 

•k Memory Mapping ■*■ Low Power 5* 
• Phantom • Assembled & tested 

Recommended by Alphamicrosystems 

250 ns^ 450 ns. 

8K Static S209.00 ~S 189.00 

16K Static S449.00 S399.00 

32K Static S799.00 S699.00 



ANADEX PRINTER 

Model DP-8000 compact, impact, parallel or 
serial. Sprocket feed, 80 cols, 
84 lines/min., bi-directional. 
New only S895.00 



4& 



VERBATIM™ DISKETTES 

• 5%" Minidiskettes • JJfltf 
Softsector. 1 Sector, 16 Sector -^OV 
S4.25 Each, 10/39.95 rt0^< 

• 8" Standard Floppy Disks • TctfS" 
Soft Sector, Hard Sector v w 
S4.50Each, 10/41.95 

•Add 4.95 for 10 Pack in Deluxe Disk Holdei 



MOTOROLA EXORCISER COMPATIBLE 

9600 MPU Module w/6802 CPU $495.00 

9601 16 Slot Mother Board 1 75.00 

9602 Card Cage (19" Retma R ack Moun t) . . . 75.00 

9603 6 Slot Mothe r Board 1 00.00 

9604SwitchmodeSystem Power-Supply ... 250.00 

961 Utility Prototyping Board 36.00 

961 6 Quad 8K Eprom Module '** 

9620 1 6 Channel Parallel I/O Module .... 295.00 
9622 Serial/Parallel I/O Combo *" 

9626 8K Static RAM Module 29 5.00 

9627 1 6K Static 450ns 495.00 

9630 Card Extender 68.00 

9640 Multiple Programmable Timer 

(24 Timers) 395.00 

9650 8 Channel Duplex Serial I/O 395.00 

96103 32/32 I/O Module 275.00 

96702 32 Point Reed Relay Module 35000 

6800 BARE BOARDS 

9620-0 $45.00 9603-0 27.00 

9626-0 45.00 9600 55.00 

9650-0 45.00 96103 55.00 

9601-0.. ..50.00 96702 55.0(3 

Also AMI EVK System in Stock 



APPLE/EXIDY/EXPANDO 
TRS 80 1 6K-UPGRADE KIT 



*■ 16K with Jumpers & instructions 

for either Level I or Level II S89.95 

*■ 16K for Apple It Upgrade S89.95 

Special: TRS80 Schematic S 4.95 

Expansion Interface Schematic . . . . S 4.95 



TRS 80 TO S-100 

PET TO S-100 ADAPTER 

Allows Pet/TRS 80 to be interfaced to 
popular S-100 Bus. 

Pet to S-100 Kit S1 89.95 

Assembled S269.95 

TRS80toS-100HUH 8100 Kit — S275.00 
Assembled S355.00 



KEYBOARD ASCII ENCODED 

Onetime purchase of 
NEW Surplus key- 
boards. From the Singer 

Corporation. The 

keyooard features 128 
GElpASCII characters in a 63 
BegF key format, M OS 

encoder circuitry "N" key 
rollover, lighted shift lock, control, escape and 
repeat functions. Ltd Qty 63 KEY $59,95 




UV "EpronV' Eraser 

Model UVS-11ES64.95 

Holds 4 Eprom's at a time 

Backed by 45 years 

experience. 

Model S-52T... $21 9.95 

Professional Industrial Model 




TARBELL FLOPPY INTERFACE 

# Z80/8080 S100 Compatible * Uses CPM 
Assembled for Shugart. . . . SALE $229.00 

Assembled Other Drives $269.95 

Kit $179.95 

Bare Board S36.95 (Doc. Add S 1 0.00) 

■Jflll. ?c- CPM *<:j ,-0O0 Dv. IK.11 ax **J S.>0 00 

Vista Double Density 5V/' Controller 

Assem S299.00 

SD Versa Rooov Kit S159.95 

SD Versa Floppy Assembled S189.95 

Tarbel Cassette I/O Kit $11 5.00 

Sale • 1771-01 Floppy Chip $27.95 

BYTE USER 8K EPROM BOARD 

■*■ Power on Jump • Reset Jump 

Assembled 8 Tested S94.95 

Byteuser Kit S64.95 

Bare PC Board $21.95 

Special Offer: Buy 4 kits only $59.95 each 

MR-8 8K w/1 K Ram S99.50 

MR- 16 16Kw/1KRam S99.50 

EPM-1 4K 1 702 S59.95 

EPM-2 2708 or 2716 Eprom S69.95 

Z-80/Z-80A/8080 CPU BOARD 

• On board 2708 • 2708 included (450ns.) 
■*■ Power on jump • completely socketed 

Assembled and tested S1 85.00 

Kit SI 29.95 

Bare PC Board S 34.95 

• For 4MHz Speed Add S15.00 

8080AKit S 99.95 

8080A Assembled S149.95 

S-100 MOTHERBOARD SPECIAL 

8 slot expandable w/9 conn. 

reg S69.95 NOW S52.95 



TARBELL FLOPPY CONTROLLER 

Card assembled and tested for use with Shugart 
Drives S SALE PRICE only S229.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 S29.95 



DATA BOOKS • COMPUTER BOOKS 



1976 IC Master 49.95 Inlet MCS 90 Manual 

NSC 1TL Daia 3.95 Intel MCS 40 Manual 

NSC Linear 4.95 AMD 8080A Manual 

NSC Linear App Notes ll . 3-95 AMD Schoiiky Daiabook . 

NSC CMOS 395 AMI MOS/LSI Data 

NSC Memory 3 95 Gl MOS/LSI Data 

Intel Daiabook 4.95 Harris Analog Databook- 

Inlel MCS85 Manual 7.50 Tl Linear Control Data. . . , 

BALI • OSBORNE BOOKS • SALE 

Intro to Micros vot. . ....IkeM 

Inlro to Micros Vol. I fl*sj) 

80 SO A Programme ftSQ 

68 00 Programming ff"SQ 

Z80 Programming ' bSq 

Vol. II Some Real Microprocessors w/Bmder .. 30QQ 
Vol Ml Some Real Support Devices w/Bmder . TftGG. 

Intro lo Micros Vol til T&8Q. 

SALE • DILITHIUM COMPUTER BOOKS • SAL! 

Understanding Computers . TMJ*. 

BOBOMicroComputer Experiments T3^ft. 

Btifjinning BASIC *9fc 

Begm nors Glossary S Guide . Bi*. 

Peanul Butter & Jelly Guide to Computur-. . . .TrS*. 

8060 Machine l.anjj-.i.c.;" P'ogMmminrj T"9A- 

Hame Computers Vol I Hardware T^* 

Home Computers Vol H Software T*96. 



THE FIRSTTO OFFER PRIME PRODUCTS TO THE HOBBYIST ^ 

AT FAIR PRICES NOW LOWERS PRICES EVEN FURTHER! 

1. PrOV6l1 Quality Factory tested products only, no re-tests 
or fallouts. Guaranteed money back. We stand behind our products. 

1979 CATALOG NOW AVAILABLE. 

Send $ 1 .00 for your copy of the mosl complete catalog of computer products. A must 
for the serious computer user. 

MICROPROCESSORS STATIC RAM HEADQUARTERS 



Z-80 Sia.95 

Z-80A 
F-3 (38501 
2650 
CDiB02 



8080A4WHZ 
SALE BOB 5 
8008-1 



6502 



18.95 
16U5 

18 95 
1995 

9 95 

19 95 
18.05 

14 95 
1695 
24 95 
49.95 
39 95 
it 50 
19.95 
2995 
1695 
2495 



6502A 

IM6100 

6800 ... 

6802P 

8035 

8755 

874B 



SUPPORT DEVICES 



388? (2-80 CTCi 



8224 Qo 
8224-4 u 
8226 Bw 



□nver 



2 50 
2 95 
9 75 
395 





1-24 


25-99 


100 


21L024S0nS 


1 30 


1 25 


1 15 


21L02 250ns 


1 59 


1 55 




2102 


1 25 


t 15 


1 10 


2111 


375 


3 65 


3 55 


2112-1 


2 95 


285 


265 




290 


270 


2.55 


2l14L-250ns 


12 95 


1095 


9 95 


21UL-300ns 


6.95 


7 95 


6.45 


2114L-450ns. 


7 50 


675 


4.75 


4044/404T 300ns 


995 


B75 


7 95 


4044/4041 450ns 


7 50 


6 75 


4.75 


EMM4200A 


9 75 8 75 


7 95 


EMM4402 


7 95 


7 25 


625 


EMM4804 


12 50 


11 50 


995 


5101C-E 


7 95 


7 95 


7 25 


u[>0410 142001 


1095 


10 25 


9 25 


AMD9140 4I 


1095 


1025 


525 


AMD9130 31 k 


1295 


1195 


1025 


FSC 460 .164 16K C :D Q> 


$lB95Eacn 


MQ1 


IBS 


' 1 75 


1 25 


P2I25 9342b i45p 


1 *35 


735 


7 25 


650S IK* 1 CMOS 


795 


795 


7 25 


6518 1K.v 1 CMOS 


7 95 


7 95 


7 25 


-45130 •-.•: t ii iijiti 


3 95 


325 


2 50 


81 55 l/Ow/flam 2 


.95 






2147 Lo>v Power 4K 


Static 1 


4 95ea 






CHARGE COUPLED DEVICES 


i6kccd • r«tii ikhu' 


nk'red Fa.rcmld 460 CCD 






penmenl w 


hCCD 


lecitnolcKly ;il .1 reaso 


iabie or 


ce UpaieApphca- 


uonnoiesuoCiteUivitr 


eacnor 


der Ouanlii 


ylimiled) 


$18.95 each (reg. 


43.00) 





8228 Sys Control 

8238 Sys Cont 

8251 Proa 1.0 

8253 In! t.mer 

8255 Prog F'O 

8257 Prog DMi 

6259 Prog Inl 

827 5 CRT Conl'OHer 

82 7 9 Prog Keyboard 

6810-1 128 » 8 RAM 

6820 PIA 

6621 PIA 

6828 PrionlV tr.l 

6834-1 512 ■ 6 Eprcn 

6850 ACIA 

6852 Ser.nl Ajaol*' 

66.15 H0.S6505CRTC 

6860 Mad em 

6862 Muduiator 

687 1 A 1 Gmhj OSC 

6875 

6880 Bus Drive- 

MC6848B >»«= 

1821 SCO ii\ RAM 2 5 00 

1B22SCD?S»4F;AM If 95 

1824 CrjU? .8 BAM 995 

1852CD81HI0 1095 

l854Uar1 1095 

1850 CD iO 895 

18S7C0I0 895 

6520 PIA 1 50 

S522 Mull 

6530-002 

6530-003 

6530-004 

6530005 

3851 F6Pr05l Slur 



CRYSTALS 

Microprocessor Ti 
Frequency Price 



19 95 

4 75 

6 50 
6.50 
11.00 



39 95 
995 
1 t 95 
2595 
825 



9 25 



DYNAMIC RAMS 

416MH6 16K(16Pm| 
Sr>lo!8 416's 

41158K|16P.n) 

4050 4K* 1 t)8 Pin) 
4080 .m« 1 122 P,n] 
4096 4K» I {16 Pml 



t24 5 
8995 
6.95 



4027 .!Kxl( 
5261 .. 19 
5262.. 1.9 
5270 . 4 9 



1103 

4006L 
CG05. . 
6804 . 
6002 



2/16-5V 

27 16-5V L'V 

2758 5V 

•".203AO 

5204 A« 

68S4-1 

IM 5610 

SALE 8223 32 s£ 

sisnssiaxen: 

82S12332J.8 
825126 256x4 .. 

825129 256x4(T! 

825130 512x4|0' 
NSC DM7578 32 x 



3 50 
5995 
4000 



-.2.93 

18.95 
. 2.50 
.3 50 
...3.50 
. 6.50 
. 2.95 



CHARACTER GEN 

2513-001 t5V)Upper 

251 3.005 (5V) Lower 

2513-ADM3(5V)Lo\ve 

MCMS571 

MCM6571A 

MCM6S74 

MCM6575 



14 95 
1075 

1075 



UARTS/USRTS 

TR1602B(5V 12VI 395 

AV5l0l3i5V. '^Vl 4 95 

AY5I014A.161- 5 14'/, 695 

AY51015A/1863 ilVI 695 

TMS6011 (5V 12V) 5 50 

IM6402 795 

IM8403 895 

2350USRT 9 95 

l67lBASIros 2495 

SALETR1472B ».«5 

BAUD RATE GEN 



KEYBOARD ENCODERS 

AY5-2376 13 75 

AY5-:i&00 13 ?b 

HD0185 

74C922 . 

74C923 



.9 95 
9.95 
9 95 



A/D CONVERTERS 



5536 
1OOMH/ 

UOMH. 1 



7/t.l.lMM.. 59S 48 0MH.' 

100KC 

DISPLAYS/OPTO/LED'S 

* 7 SEGMENT * CALC * CLOCKS 

DL 704 ICC) DL 707 ICAI 300' Bed 
FN0 3S7 1CC) 357" Red 
FND 500/503 ICCI 500" Rtrd . 
FND 507/510 ICAI 500' 'Red 
FND 800/803 ICCI 800" Red 
FND 807/810 (CA) 800" Red 
NAN 3062 500" Green 
HP5082-773I (CA) 300" Red 
9 digit Butiblp Mmi Calc Display 

9 Diqil Pan;tniex Display 400" 

9 Dlgil Fluorescent 300" 
MA 1 003 1 2V Aulo Clocl. Modulf 1 

Bezel lor MA 1003 w/RedFilln' 
MA1002ALED 12 hr Cock Module 



COMPUTER SPECIALS 



rtPlol Digihzei 
Ex.dy W/32K 
Apple II w/1 6K 
CompuCOlDr II w/ 1 
TEIPT208H avail 
Cromemco Sys III 
Commodore Pel 
SoroclO/120 
ADM3A Assem 
Teletype 43 
Cenlroi 



*** 



Cent 



sS-1 



15 00 
1395 00 
1 1 95 00 
1695 00 
499500 
5990 00 
795 OG 
995 00 
395 00 
1349 00 
49500 
59500 



SALE 

89900 
73500 
119500 
104500 
159500 
399500 
53950C 
765 (VI 
69500 
829 00 
115000 
39500 
52500 



8223 Pr or 



MK50I 
74 14 IN 
LM2S1? 
fir26'8!2a 
95H90 



C^ic 



ATTENTION 
APPLE II USERS 



16 P.« 



n ST 17 
n S T 20 
.1ST 22 
18 Pin WW 60 1 8 Pin ST J1 
2CP.n\VW 90 20P.nST34 
22 F-p W W 93 22 P.n S \ 35 
;j PnWW 85 24 Pm S T 41 
.Iti Pm \\ W I 15 28 Pin Si 49 
40 Pm WW I 49 JO Pm S T 63 

TEXTOOL ZERO 
INSERTION FORCE 
SOCKETS 

16 Pin S 5.50 24 Pin S7.50 

40PmSl0.2S 

CONNECTORS 



43/86 WAV S/T MOT 
50/100 S- 1 00 Connecloiw 
50/100 S-100 Connector s< 



095 

* HEX DISPLAYS * ENCODED DISPLAYS * 

If 5062-7340 Red Hextdecimal . . 15 95 

HP 5082-7300 Red N/menc 1 4.95 

TIL 306 Numeric w/LogiC 8.95 

TIL 308 Number w/Logic 8 95 

TIL 309 Number w/Logic 8 95 

TIL 311 Hexadecimal 1295 

MAN 2A 320' BeO Alpha-Num^nc 5 95 

MAN 10A 270" Red Alpnti-Numcnc 8 95 

• LED'a * OPTOISOLATERS * 

LEDSRed. Yello* Green 185 5/100 

MCT 2 Priolo XSTR HFE 250. 30V 99 

4N25 Photo XSTRHFE 250, 30V 1.29 

4N33 Photo Darlinyion 1.75 

FPT noBPholoXSTRFiatLense SALE4/1 00 

ATTENTION KIM USERS 

KlMSAI-expansion to S-100 125 00 K.t/16500 

KIMSt to KIM Connector 5 75/pair 

KIM 1 6502 Single Board Compuler .179 00 

KIM I Power Supply 59.95 

KIM Memoiy Plus ■ (tonsists oi 8K Bam. 

6K27 1 6 Eprom. Programmer, I/O elc). . . 245 00 
KIM SOFTWARE 

• Please package (cassette! 12 games. .. 16.95 

• Help Editor package(cassette) 1695 

• Help Mailing Lisl pkg. (cassette) . 16 95 

• Hetp Into Retnva! »kg (cassette) .. 16.95 

• Microcness (cassette) 16 95 

• Microaid Assembly/Disassem/Ediior . ..2795 

• Microaid Source Listing (cassettei . 2 7 95 

• Tiny Basic tor KIM (paper taoe) 10.95 



CTSDIPSWITCHES 


CTS 206-1 Si 75 CTS206-8 


SI 95 


CT520G-5 SI 75 CTS206-9 SI 95 


CTS206-6 Si 75 CTS206-10 Sl.95 


CTS206-7 Si 75 




LIVERMORE BASIC 


ON S5K ROM 




that s right on bom 1 " 




OUR FR1CE only S95 00 






NAKED PC BOARD SALE 


2-80 CPU (llhaca) .. . 


S3495 


8O80ACPU 


.34.95 


8K Sialic RAM (Logos) 


21 95 


16K Static RAM (2114) 


29 95 


32K Sialic RAM 12 11 4) 


.49 95 


Floppy i/»(Tarbell|. 


3995 


Cassette I/O (rarbell) 


29.95 


8K Eprom (2706) 


2195 


1702 Eprom Boa'd . 


300C 


2708/2716 Eorom lllhacal 


34 95 


2708/271 6 Eprom(WMC) 


30 00 


Realtime Clock 


34 95 


ACP ProlO Bd.(3M Conn ) 


27 95 


Veclor 8800 Proto 


19 95 


Vetlor 8803 1 1 slot MB 


2995 


ACP Extender w/Conn 


1595 


Video Interlace ISSM) 


.27 95 


Parallel Inlerface ISSM) 


27 95 


13 SI01 MotherBoard IWMCl 32 95 


9SlolMotherBoard(WMC) . 


2995 


8 Sioi M other lexpandabie) 


3495 


WAVEFORM 




GENERATORS 




8038 FuncliCn Gen 


395 


MC4024 VCO 


245 


LM566VCO 


1 75 


XR2206 Function Geneiator 5 25 


FLOPPY DISK I/O 




177101 6' & Mmiiioppy 


27 95 


uPd372 Nee Floppy 


4995 


1781 Dual Floppy 


3995 


1791 Dual Flooov 


44.95 


TV INTERFACES 




Puue-vener 


8 50 


TV-i Video interlace . 


-8.95 


Microv erlcr 


3500 


M*R Modulator . .... 


3500 


ATTENTION 




PET USERS 




BETSI-pet expansion to S100 
105 00 Kit/160.00 



PET Connector Kit. Includes (4) 
Connectors for memocy expansion. 
IEEE 488 I/O. cassette I/O and 

oaraileluser noil .,, 7.95/set 

Video Buller 
(converts i o Sid Video) 
Peluma (Music Board) 
Combo (Video S Petunia] 
Beeoer (signals tape lo c 



29 95 
2995 
.4995 



ATTN TRS 80 USERS 

20/40 Pin Memory Exp Conn 



16K Memory Add-on w/ln 
V.sta V80 Mmiiioppy . 
40TrackDOSPalchonOi5 
4 Drive Cable lor V80.. 
Centromcs779w/1raclor 



Centre 



s 701 E 



S795 

1 8995 

39500 

1095 

3995 

1179.00 

1579.00 

995 00 



MONTHLY IC SPECIALS 

LF13508 JFET Anloa Mult. 8 bit . 695 

ICM7206 Seven Decade Counter 17 95 

ICM7207 Oscilialor Controller 6 95 

ICM 7045 Precision Slo/Watch Time- 22 95 

iCL7l07 3 , »Difll1 A/D (LEDi M95 

ICL821 1 Vo'lage Relerencf) I 95 

LM390 Battery OP Audio Amp 3/1 00 

LM1830 Fluid Deleclor 3/1 00 

LM1850 Ground Fault IC 'Ml 00 

LM1800 Phase Lock Loon FM Slerco 3/1 00 

LM1820 AM Radio 3' 1 00 

DS3825 Dual Mos Sense Amo 2 50 

t-IUBUi 4-IU95 10l47ECLRa(^79.9S 

148H/I4a9 2/1 99 NE56 , 500 

S/T SocktM 10/1 00 LF3 56HBiFet .. 3/V99 

% *l MCM14505 8.95 

■ Ao ? 4S89 3/1.99 

V' 39 74107N 6/1.99 

3/ ' 9S 75452N S/1.99 

??f> 741N-14 10/1.99 

K39 S55CN 5/1.S9 

9 95 556CN ..3/1.99 



ANADEX DP8000 

Mioo-P (same as Ouick Printer) 

. 395 00 
CsblelooluginExpanSiOnliO 3900 
Power Strip |8 oullets) 
Surge Suppressor/Filter 
Microsofl Fortran on Du 
Eiecinc Pencil on Cassette 
Electric Pencn on D.sk 
CPrM lor TRS on Disk 



V 100 IC 
U.cro Chess, icassetiei 



23 95 
32500 
, 99 00 
150 00 
15000 

49.95 
. 1995 



tjviXiP'-*t*-i 



MMS/lrMCh.n*". 



All Shiprmm!. FCM or UHS. O 
under S100.0 add 5% handling 
post g« Ordtrt over S100.QB add 2 5 
handling & poilage. Mastercharge/Bank- 
americard/COD accepted w/25% deposit 
California Reudcittt add 6% tax. Foreign 
Orders add 8% handling. All Darttiuime 
laciory letted auaranteed. Same day 
slilpmont. Add .35 cents lor Data. 
Ri>l;iil jjricmy ni.iy v.siy inwn Mail Ordei 
Puciiin Al1 Pnci'^J "ublect to change 
withoul nolica 



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 



Circle 4 on inquiry card. 



BYTE August 1979 235 



What's New? 



SOFTWARE 



Extended FORTRAN Preprocessor 

X4 is an extended FORTRAN pre- 
processor for use in the Cromemco 
CDOS environment. X4 translates pro- 
grams into standard FORTRAN from a 
readable, well structured language pro- 
viding modern control structures for con- 
ditionals 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 com- 
plete documentation on CDOS (CP/M) 
format 5 inch floppy disk for $59.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 adjust- 
ing, 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 expan- 
sion. 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 1PRINT com- 
mand. 

The price of Word-Ill is $39 com- 
plete with source code. For further in- 
formation contact Micro Architect, 96 
Dothan St, Arlington MA 021 74. 
Circle 532 on inquiry card. 



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 com- 
mand processing module designed to 
allow the user to design a language of 
personalized commands and command 
subroutines to suit a particular appli- 
cation. 

The version of Robot that is being 
offered includes a command set and sub- 
routine package for the control of a 
video robot. The subroutines are designed 
specifically for the TVT-6 video inter- 
face, 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 com- 
mented 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 as- 
sembler. 

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 Soft- 
ware Review. Each month the software 
review examines and reviews new soft- 
ware packages and reports on the 
relative merits and value of the product. 
At the moment the mailing list has focus- 
ed on users of Northstar BASIC but plans 
are in the works to introduce a newslet- 
ter 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. 



Business Software Series in BASIC 

The Standard Software Library is a 
series of books containing listings of 
programs written in BASIC with com- 
plete documentation. Each volume in 
the series is devoted to a single applica- 
tion. 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, merg- 
ing and posting of transactions. A trial 
balance report is available in either sum- 
mary or detail at the user's option. 
Income statement and balance sheet re- 
ports may be obtained at the close of 
each accounting period with both 
current and year to date totals and 
percentages. 



Volume 2, Accounts Receivable pro- 
vides 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 minicom- 
puters. The modular nature of the pro- 
grams and the accompanying documen- 
tation make it easy to revise the program 
to meet special user requirements. 

The documentation includes an over- 
all 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 Consul- 
tants Inc, POB 2111, Norwalk CT 06852. 
Circle 535 on inquiry card. 



Microcomputer Text Editor 

Edit-80 is a random access, line or- 
iented editor for 8080 and 2-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 fea- 
tures such as automatic line renum- 
bering, 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 Edit- 
80, 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 Fl LCOM 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 avail- 
able 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 for- 
mat 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-to- 
date, 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, adver- 
tising, telephone or any other expense 
type. Complete data inpu ting, editing, 
and sorting capabilities, all with exten- 
sive 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 com- 
puters. Each 16 K bytes of user memory 
will handle 500 yearly expense pay- 
ments. 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 Man- 
hattan Av, Hermosa Beach CA 90254. 
Circle 537 on inquiry card. 



236 August 1979 © BYTE Publications Inc 




Venus 2001 
Video Board 



kiti99 



95 



Assembled & Tested 

$259.95 •Complete 

Unit with 4K Memory 

and Video Driver on 

Eprom assembled 

and tested $339.95 

OPTIONAL: • Sockets $10.00 

• 2K Memory $30.00 

• 4K Memory $60.00 

• Video Driver Eprom $20.00 

• S-100 plug-in • Parallel keyboard port 

On board 4K Screen Memory (Optional). On board Eprom 
(Optional) for Video Driver or Text Editor Software. 

Up and down scrolling through video 

memory Reverse Video, Blinking Characters. 

Display ; 128 ASC1 1 Characters 64 X 32 or 32 X 
16 Screen format (Jumper Selectable). 7 by 1 1 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 • Uses 21 14L, 450 nS. 

I.C. sockets -$20.00 
P.C. BOARD BY S-100 CO. 



16-K Static RAM $249. 



• S-100 Plug-In Kit includes P.C. board, all parts and 
assembly manual. Uses 21 14L450 nS. 

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 



n&N ! A DREAM COME TRUE 



lntroducing:30 MHZ 

DUAL TRACE 
PORTABLE 

foran$CCCv : 
amazing *J*JkJ 9 

• Dual trace 2-channel; separate, 
chopped or alternate modes. • 30 megahertz 
bandwidth. • External and internal trigger. 

• Time base - 0.05 , Microseconds to 0.2 SEC/div 
21 settings • Battery or line operation. 

• Line synchronization mode. 

• Power consumption less than 50W. • Vertical gain - 
0.1 to 50 volts/div- 1 2 settings. • Size: 2.9" H 6.4" 
W8.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 ~ 

15 mhz Dual Trace Portable Scope $ 399. 

MS-15 15 mhz Single Trace Scope $ 299. 




SHIPPING $3.50 / California residents add 6% sales tax 

ELECTRONICS WAREHOUSE In< 

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 imple- 
mentation of Pascal. The operating sys- 
tem 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 ter- 
minal with addressable cursor. It sells 
for $5485. For further information con- 
tact Independent Business Systems Inc, 
5476 CleoCt, Livermore CA 94550. 

Circle 635 on inquiry card. 




16 K Byte Programmable 
Read Only Memory Board 

Electronic Solutions 16 K byte pro- 
grammable 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 ad- 
dress 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 ad- 
dresses for the processor, programmable 



memory, etc. When fully loaded with six- 
teen 2708 erasable read only memories, 
the board typically draws 0.31 A (from 
+ 5 V), 0.48 A (from -5 V), and 0.80 A 
(from +12 V). For further information, 
contact Electronic Solutions Inc, 7969 
Engineer Rd, San Diego CA 92111. 
Circle 558 o n 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 
2 x 8 Vac 2x 14 Vac 2 x 24 Vac 



SIZE 
W x D x H 



UNIT 
PRICE 



T1 
T 4 



V, 110V, 120V 
V, 110V, 120 V 
V, 110V, 120 V 
V, 110V, 120 V 



2x9A 
2x1 2.5 A 

2x9A 
2x4.5A 



2x2.5A 
2x3.5A 
2x2.5A 



2x2.5A 
2X4.5A 



33/4"x3 5 / 8 "x3 1 /8" 
33/4"x4%"x3 1 /b" 
33/4"x43/8"x3 1 /b" 
33/4 M x3y8"x3V8 n 



19.95 
25.95 
27.95 
19.95 



POWER SUPPLY KITS (open frame with base plate, 3 hrs. assy.time) 

ITEM USED FOR @+8Vdc @-8 Vdc @+16Vdc (3-16 Vdc @+28 Vdc 



SIZEWxDxH UNIT PRICE 



KIT1 18 CARDS SOURCE 18A 

KIT 2 SYSTEM SOURCE 25A 

KIT 3 DISC SYSTEM 18A 

KIT 4 DISC SOURCE 8A 



2.5A 
3A 
2A 



2.5A 

3A 

2A 



4A 
8A 



12"x6"x4 7 /8" 
12"x6"x4%" 
14"x6"x4 7 / 8 " 
10"x6"x4 7 /a" 



46.95 
54.95 
62.95 
44.95 



1A 

1A 

EACH KIT INCLUDES: TRANSFORMER, CAPACITORS, RESIS., BRIDGE RECTIFIERS, FUSE & HOLDER, TERMINAL BLOCK, BASE 
PLATE, MOUNTING PARTS AND INSTRUCTIONS. 

REGULATED POWER SUPPLY "R2" assy. & tested, open frame, size: 9" (W) x 5" (D) x 5" <h) $69.95 

SPECS: +5V +1%, @ 5A, +24V, +1%, @ 5A. OVERCURRENT PROTECTION AND +5% ADJ. FOR BOTH VOLTAGES. 
REMARK: IDEAL FOR ROCKWELL AIM-65 MICROCOMPUTER. ALSO -5V, @ 1A OPTIONAL, S5.00 ADDITIONAL. 
SHIPPING FOR EACH TRANSFORMER: $4.75. FOR EACH POWER SUPPLY: $5.00 IN CALIF. $7.00 IN OTHER STATES. CALIF. RESIDENTS ADD 6% SALES TAX. OEM WELCOME. 



MAILORDER: 

P.O. BOX 4296 

TORRANCE, CA 90510 



SUNNY INTERNATIONAL 

(TRANSFORMERS MANUFACTURER) 
Telephone: (213) 633-8327 



STORE: 

7245 E. ALONDRA BLVD. 

PARAMOUNT, CA 90723 

STORE HOURS: 9 AM-6 PM 



238 August 1979 © BYTE Publications Inc 



Circle 354 on inquiry card. 



CaUFornIa Diq'iTAl 

Post Office Box 3097 B • Torrance, California 90503 



\ 



Sankyo Magnetic 
Card Reader 



I These Sankyo I/O units are capable of storing and retrieving over 
'400 characters of data in under two secords. 

The flexability of this device lends itself to numerous applications. 
As an input reader to a computerized security system, the com- 
puter has the ability of identifying the card holder and admitting 
I only those individuals who are authorized to enter the premises 
I during specified time frames. The device is also suitable for 
1 maintaining customer information files, or any other application 
I where small amounts of information must be quickly entered into 
J a data processing system. 

I Accepts 2" by 4" HP style mag-cards. (Similar to bank cards. ) 
1 Motorized feeder pulls the magnetic card across the four channel 
| read/write head. NEW surplus, original cost $2*00. Full documentation 



CONNECTORS 



C2 "°°° 1 



l°^^?°l 



your choice 

DB25P 

male plug &hood 

or 

DB25S female 

»395 

Oty. fe. male hd. 
10 3.45 2.45 1.15 
25 3.15 2.25 1.05 
100 2.S5 1.90 .95 
500 2.25 1.60 .85 
IK 1.97 1.37 .73 



Edge 
Connectors 




GOLD 

100 PIN 

IMSAI/ALTAIR 



imsai solder. 125X.250 
Imsai w/w.l25centers 
Altair soldertail .140 row 
SPECIALS 

22/44 Kim eyelet.156" 
25/50 solder tab. 156" 
36/72 wide post w/w.156 



$3.95 Z/% 9.00 
$4.95 3/$13.00 
$S.95 3 $15.00 

$1.95 3 $5.00 
$1.09 3 $2.00 
$1.95 3/$5.00 



S-100 Mother Board 
Quiet 




HEXADECIMAL KEYBOARD 

Maxi'Switch hexadecimal keyboards are designed lor 

microcomputer systems that require 4-bil output 

in standard hex code. 

Each assembly consists ot 16 hormetl- *w _ 

cally sealed reed switches and TTL "onej 

shot" debounce circuitry. 

Reliable low Irictionacetai resin 

plungersare credited lor the smooth 

operation and long life ol this premium 

keyboard. 

Requires single + 5 volt supply. 




$ UNIVAC 
KEYBOARD 




TELETYPE MODEL 4 3 



Even if we have to give them 
away, we're going to ship more 
43's in 1979 than the aggregate 
of all our competitors. 



Model 43AAA 
EACH 3 



TTL) 



$925. 875. 850. 

RS-232 Interface"**" Add'7$00 




11? 




Tne lamous Sper 



TEN KEY 

Data Entry Pad 



Plugs directly into you Apple II. 
Allows you to enter numerics, 
punctuation and upper case alpha 
characters, all from the data 
entry pad. Sold assembled in 
walnut finished enclosure. 



brrtoflm apple/trs-80 
clOallll 1 Mini - Soft sector 



SPGCiflL 



T ff*41 

50 + *3.85 



a 



Scotch 

BH AN 

Diskettes 

8inchSoft(IBMi 
8 inch 32 sector 
Mini Soft sec. 
Mini lOsector 
Mini 16 sector 



Certified Digital 

CASSETTES 

Won't drop a BIT! 
*5. 50 



\^Lshugar 



APPLE (( 

ISK MEMORY 

COLOR 'GRAPHICS. SOUND 

S1024 

PLUS SHIPPING 



Mfg.Sug. 
Retail.... 




CALIFORNIA 
INDUSTRIAL 

is an 

Authorized 

Dealer of 

Scotch Brand 

Dataproducts 



MEMORY 



ugart Associates 



SA800-R Floppy Disk Drive 

The most cost effective way to store data proc- 
essing information, when random recall is a 
prime factor. The SA800 is fully compatible 
with the IBM 3740 format. Write protect cir- 
cuitry, low maintenance & Shugart quality. 



$449.50 



CALIFORNIA DIGITAL 

16 BiT 8086 

S-100 CPU Board 

Directly addresses one megabyte. 
8 bit unidirectional & 16 bit bi- 
directional. 4K of static memory 
is supplied on board. $650. 00 



DiqiCAST 
A/V-100 

R.R MODULATOR 

S9QQR Broadcast both 
fc*F,*'^ audio and vidio 
on your existing color 
television. Recommend- 
ed for the Apple II. 



TRS-80© 
APPLE II 

16k memory (8) 4U6'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 mem- 
ory products. 

STATIC 1-31 32-99 100-5C -999 1K + 




21L02 450nS. 


1. 49 


1 


19 


1.05 


.95 


.89 


21L02 250nS. 


1. 69 


1. 


49 


1. 45 


* 


* 


2114 1Kx4 450 


6.95 


6 


50 


6. 25 


6.00 


5. 75 


2114 1Kx4 300 


8. 95 


8 


50 


8. 00 


* 


* 


4044 4Kxl 450 


5.95 


5 


50 


5.00 


+ 


* 


4044 4?ocl 250 


9.95 


9 


50 


9.00 


* 


* 


4045 1Kx4 450 


8. 95 





50 


8.00 


* 


* 


4045 1Kx4 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-1013A UART 4.95 


8080A CPU 


9.95 




Floppy Disc Controllers 


8085 


22.50 






WD 1771 


single D. 39. 95 


8086 Intel 16 bits 


* 






WD 1781 


Doubl 


eD 65.00 


T MS 0900 16 bits 


-19. 95 






WD 1791 


D/D3 


740 * 



E PROMS 1-15 16-63 64+ 
1702A 2K 4.95 4.50 4.00 
2708 8K 9.95 9.50 9.00 
2716 5vl6K 49.95 45.00 42.50 
2532 32K * * * 



PORTABLE DATA ENTRY SYSTEM 



These used data terminals were originally designed for chain store inventory con- 
trol and order entry systems. The operator enters the inventory control number, 
merchandise on hand and the unit price. After all pertinent data has been entered into 
the recorder, the main warehouse is telephoned, the handset is placed in the acoustic 
coupler and ail 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 wii.th associates across the country. 
All units were removed from service in working condition. Original cost $2,500. 
Each system comes complete with: 

■Portable Cassette Drive Unit "Five Gould "D" NiCads "DB25 Cable 

■Removable Entry Keyboard "Acoustical Coupler »Shoulder starp 

with LED Display "Battery Charger 



•Full Documentation 



your choice 

10 50 100 Ik 
$.88 .81 .73 .66 | 
SPOT Miniature Toggles 

7101 C&K ON -NONE- ON 

7107 jbt ON-OFF(mnt.ON) I 

7108 CK ON-(moment.ON) ] 

Rocker JBT DPDT 

Rotary 3P-4-Pos. 

Rotary 3P-6-Pos. 

PushEMN.O.) 5.39ea. 4 SI 



DIP Switch 



$149 




DISCOUNT 



I 



Wire Wfap<entef 



lg~S^ '_-_. ^^ tt'« »°l vth;n that California Digital ven- 

\-c^i*"~r£ i ^, l tures into the distribution of consumer pro- 

. . -'' ■">.; „. ducts, but we have resently come accross 

^vl n^S^^^ a P loducl ,nal appears so unique that we just had to add it 

V' to our product line. This is the System X-10 manufactured 

by ihe B SK turntable company. T his space age system will re- 
motely control any light or appliance in your home or office. Command sig- 
nals are transmitted from the command console over your existing wiring. 
f't'om your bod or easy chair you can control up to 16 different electrical de- 
vices inside and outside your home. U se the System X-10 to control 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 mod- 
ule and wall switch. The basic package is priced at only $99.50 Additional 
modules are available for .$13.95 each. 



IC SOCKETS 


pin 


Wire Wrap 
ea. 25 50 


low profile 
ea. 25 50 


8 
14 




17= 16 IS 
18 17 16 


37 36 35 


16 


38 37 36 


19 18 17 


24 


99 93 85 


36 35 34 


40 


169 155 139 


63 60 58 



50ft. 

J .98 



KYNARW 

500 1,000 11,000 
S9. $15. $105. 



C^nmn 



7400 TTL 



SN7400N 
SN7401N 
SN74Q2N 
SN7403N 
SN7404N 
SN7405N 
SN7406N 
SN7407N 
SN7408N 
SN7409N 
SN7410N 
SN7411N 
SN7412N 
SN7413N 
SN7414N 
SN7416M 
SN7417N 
SN7420N 
SN7421N 
SN7422N 
SN7423N 
SN7425N 
SN7426N 
SN7427N 
SN7428N 
SN7430N 
SN7432N 
SN7437N 
SN7438N 
SN7439N 
SN7440N 
SN7441N 
SN7442N 
SN7443N 
SN7444N 
SN744SN 
SN7446N 
SN7447N 
SN7448N 
SN7450N 
SN7451N 
SN74S3N 
SN74S4N 
SN74S9A 
SN7460H 



C04000 
CO4001 
CO4002 
C04006 
CD4O07 
C04009 
C04010 
C04011 
C04012 
CO4013 
CD4014 
CO4015 
C04016 
CO4017 
C04018 
C04019 
C04020 
CD4021 
CD4022 
CD4023 
CD4024 
C04026 
C04026 
CD4027 



74CO0 
74C02 
74C04 
74C08 
74C10 
74C14 
74C20 
74C30 
74C42 
74C48 
74C73 
J4G74_ 



.60 



.90 



78MG 

LM106H 

LM300N 

LM301CN/H 

LM302H 

LM304H 

LM30SH 

LM307CN/H 

LM306CM/H 

LM309H 

LM309K 

LM310CN 

LM311N/H 

LM312H 

LM317K 

LM318CN/H 

LM319N 1.30 

LM320K-S 1.35 

LM320K-5.2 1.35 

LM320K-12 1.35 

IM320X-15 1 .35 

LM320K-18 1.35 

LM32QX-24 1.35 

LM320T-S 1.25 

LM320T-5.2 

LM320T-8 

LM320M2 1.25 

LM320T-15 

LM320T-18 

LM320T-24 

LM323K-5 

LM324M 

LM339N 

LM340K-5 

LM340K-« 

LM340K-8 

LM340K-12 1.35 

LM340K-15 1.35 



6.50 



1.25 



5.95 



1.35 



74LS0O 
74LS01 
74LS02 
74LS03 
74LS04 
74LS05 
741508 
74LS09 
74LS10 
74LS11 
74LS13 
74LS14 
74LS15 
74LS20 
74LS21 
74LS22 
74LS26 
74LS27 
74LS28 
74LS30 
74LS32 
74LS37, 
74LS40 
L74LS42 



.29 



SN7470N 
SN7472N 
SN7473N 
SN7474N 
SN7475« 
SN7476N 
SN7479N 
SN74B0M 
SN7482N 
SN7483N 
SN74B5N 
SN7486N 
SN7489N 
SN7490N 
SN7491N 
SN7492N 
SN7493N 
SN7494N 
SN7495N 
SN7496N 
SN7497N 
SN741QON 
SN74107N 
SN74109N 
SN74116N 
SN74121N 
SN74122N 
SN74123N 
SN74125N 
SN74126N 
SN74132N 
SN74136N 
SN74141N 
SN74142N 
SN74143N 
SN74144N 
SN74145N 
SN74147N 
SN74148N 
SN74150N 
SN74151N 
SN74152N 
SN74153N 
SN74154N 
SN74155N 
SN74156N 
SN74157N 



.65 

3 00 



.79 
2.95 
2.95 
2.95 



C/MOS 



C04029 
C04030 
C04035 
CO4O40 
CD4041 
C04042 
CD4043 
C04044 
CD4046 
CO4047 
C04048 
C04049 
C04050 
C04051 
CO40S3 
C04056 
C04059 
C04060 
C04066 
C04068 
CD4069 



74C00 



74C85 
74C90 
74C93 
74C95 
74C107 
74C151 
74C154 
74C157 
74C160 
74C161 



3.00 
2.15 
2.49 
249 



LINEAR 

LM340K-18 1.35 

LM340K-24 1.35 

LM340T-5 1.25 

LM340T-6 1.25 

LM340T-8 1.25 

LM340M2 1.25 

Uyl340M5 1.25 

LM340T-18 V25 

LM340T-24 1.25 
LM358N 



LM370N 

LM373N 

LM377N 

LM380N 

LM380CN 

I.M381N 

LM382N 

NE501N 

NE510A 

NE529A 

NE531H/V 

NE536T 

NE540L 

NE544N 

NE550N 

NE555V 

NES56N 

NE560B 

NE5618 

NE5628 

NES65N/H 

NE566CN 

NE567V/H 

NE570N 

LM703CN/H 

UM709N/H 



1.95 
3.25 
4.00 
1.25 



3.95 
6.00 
6.00 
4.95 
1.30 



5.00 
500 
5.00 



SN74150N 
SN74161N 
SN74162N 
SN74163N 
SN74T64N 
SN74165N 
SN74166N 
SN74167N 
SN74170N 
SN74172N 
SN74173N 
SN74174N 
SN74175N 
SN7417BN 
SN74177N 
SN74179N 
SN74180N 
SN74181N 
SN74182N 
SN74184N 
SN74185N 
SN74186N 
SN74188N 
SN74190N 
SN74191N 
SN74192N 
SN74193N 
SN74194N 
SH74195N 
SN74196N 
SN74197N 
SN74198N 
SN74199N 
SN74S200 
SN74251N 
SN74279N 
SN74283N 
SN74284N 
SN74285N 
SN74365N 



SN74367N 
SN74368N 
SN74390N 
SN74393N 



CO4070 

C04071 

C04072 

CD4076 

C04081 

C04082 

C04093 

CD4098 

MC14409 

MC14410 

MC14411 

MC14419 

MC14433 

MC14506 

MC14507 

MC14562 

MC14583 

C04508 

CD4510 

CD4511 

C04515 

C04518 

CD4520 

C04566 



74C163 
74C164 
74C173 
74C192 
74C193 
74C195 
74C922 
74C923 
74C925 
74C926 
80C95 
80C97 



2.49 
2.49 
2.49 
5.95 
6.25 
8.95 
8.95 
1.50 
1.50 



LM710N 79 

LM711N .39 

LM723N/H .55 

LM733N 1.00 

LM739N 1.19 

LM741CN/H .35 

LM741-14N .39 

LM747N/H .79 

LM748N/1) .39 

LM1310N 2.95 

LM1458CN/H .59 

MC14B8N 1.39 

MC1489N 1.39 

LM1496N .95 

LM1556V 1.75 

MC1741SCP 3.00 

LM2111N 1.95 

LM2901N 2.95 

LM3053N 1.50 

LM3065N 1.49 
LM390ON(3401).49 
CM39I-I5N 
LM390SN 
MC5558V 



LM75450N 

75451CN 

7S452CN 

75453CN 

75454CN 

75491CN 

75492CN 

75493N 

75494CN 

RC4136 

RC4151 

RC4194 

RC4195 



4.95 



74LS00TTL 


74LS138 

741S139 


74LS47 


.89 


74LS151 


74LS51 


.29 


74LS155 


74LS54 


.29 


74LS157 


74LS55 


.29 


74LS160 


74LS73 


.45 


74LS161 


74LS74 


.45 


74LS162 


74LS75 


.59 


7415163 


74LS76 


.45 


741S164 


74LS78 


.49 


74LS175 


74LS83 


.89 


74LS181 


74LS85 


1.25 


74LS190 


74LSS6 


.45 


7415191 


74LS90 


.59 


74LS192 


74LS92 


.75 


74LS193 


74LS93 


.75 


74LS194 


74LS95 


.99 


74LS195 


74LS96 


1.15 


74LS253 


74LS107 


.45 


74LS257 


74LS109 


.45 


74LS2S6 


74LS112 


.45 


74LS260 


74LS123 


1.25 


74LS279 


74LS125 


.89 


74LS367 


74LS132 


.99 


74LS368 


74LS136 


.49 


74LS670 



EXCITING NEW 

JE600 HEXADECIMAL 
ENCODER KIT 

FEATURES: 

• full 8 bit laldted output tor micro- 
processor USB 

• 3 User Define keys wiirt one being bi- 
stable operation 

• Oebounce circuit provided tor a* 19 
keys 

• LEO readout to verily entries 

• Easy interfacing with standard 16 pin 
1C connector 

• Only +5VDC required lor operations 
FULL 8 BIT LATCHED OUTPUT— 19 KEYBOARD 

TheJE600Encoder Keyboard provides two separate hexadecimal 
digits produced horn sequential key entries to allow direct proa- 
ramming for 8 bit microprocessor or 6 bit memory circuits Three 
(SJaddillonalkoysare provided foruseroperationswithonehavirto 
a blstsbleoutputavaiui le. The outputs arelatcliedand monitored 
with LED readouts. Also included is a key entry strobe. 

JE600 $59.95 




KITS Di o i,al 

Thermometer Kit 




■Dual sensors— switching control for In- 
door/outdoor or dual monitoring 
■Continuous LED .8" ht. display 
■Range: -40°F to 199°F / -40°C to 100°C 
•Accuracy: ±1°nominal 
■Set far Fahrenheit or Celsius reading 
■Sim. walnut case- AC wall adapter incl. 
■Size: 3-1/4"HxB-5/8"Wx1-3/8 : 'D 



JE300 $39.95 



DISCRETE LEDS 



.200' dil. 
XC556R red 
XC556G green 
XC556Y yellow 
XC556C clear 

.200" dla. 
XC22R red 
XC22G green 
XC22Y yellow 

.170- dla. 
MV10B red 4 

.OSS' dla. 
MV50 red 6 
INFRA REO LED 
1/4-X1/4-X1/16" flat 
Sflj 



5/St 
4/S1 
4/S1 
4/S1 

5/51 

4/51 
4/S1 



XC209R 
XC209G 
XC209Y 

XC526R 
XC526G 
XC526Y 
XC526C 

XC111R 
XC111G 
XCT11Y 
XC111C 



.125- a». 

red 

green 

yellow 

.185-dla. 

red 
green 

yellow 
dear 

.190* dia. 
red 
green 

yellow 
clear 



5/S1 
4/S1 
4/S1 

5/S1 
4/S1 
4/S1 
4*1 

5/51 
4/S1 
4/S1 

4/S1 



DISPLAY LEDS 



TIMEXT1001 

LIQUID CRYSTAL DISPLAY 

CLASS II 

FIELD EFFECT 



raj 4 zzz 



4 DIGIT - .5" CHARACTERS 
THREE ENUNCIATORS 
2.00" X 1.20" PACKAGE 
INCLUDES CONNECTOR 

TIOOITransmiui e $7.95 

T1Q01A-Reflective 8.25 



TYPE 
MM 1 
MAN 2 
MAN 3 
MAN 4 
MAN 76 
MAN7Y 
MAN72 
MAN 74 
MAN 82 
MAN 84 
MAN3620 
MAN 3630 
MAN 3640 
MAN4610 
MAN4640 
MAN 4710 
MAN 4730 
MAN 4740 
MAN 4810 
MAN 4840 
MAN 6610 
MAN 6630 
MAN6640 
MAN 6650 



POLARITY I 

Common Anode-red 
5 x 7 Dot Matrix-red 
Common Cathode-red 
CommonCatrtode-red 
Common Anode-green 
Common Anode-yellow 
Common Anode-red 
Common Cathode-red 
Common Anode-yellow 
Common Cathode-ydtow 
Common Anode-orange 
Common Anode-orange ♦ 1 
Common Catiiode-orange 
Common Anode-orange 
Common Cathode-orange 
Common Anode-red 
Common Anode-red ± 1 
Common Cathode-red 
Common Anode-yellow 
Common Cathode-yellow 
Common Anode-orange-0.0. . 
Common Anode-orange ± t 
Common Cathode-oange-D.D. . 
Common Catliode-ofange ± 1 , 
CommonAnode-orange 
Common Cathode-orange 
Common Anode-red-O.D. 



TYPE 

MAN 6730 

MAN 6740 

MAN 6750 

MAN 6760 

MAN 6780 

DL701 

DL704 

DL707 

DL728 

DL741 

0L746 

0L747 

DL749 

DL750 

DL338 

FN070 

FND358 

FND359 

FND503 

FN0507 

5082-7730 

HDSP-3400 

HDSP-3403 

5082-7300 

5082-7302 

5082-7304 

5082-7340 



POLARITY 

Common Anode-red ± 1 
Common Cathode-red-D.D. 
Common Cathode-red ± 1 
Common Anode-red 
Common Cathode -red 
Common Anode-red ± 1 
Common Cathode-red 
Common Anode-red 
Common Calhode-red 
Common Anode-red 
Common Anode-red ± 1 
Common Anode-red 
Common Cathode-red * 1 
Common Cathode-red 
Common Cathode-red 
Common Cathode 
Common Cathode ± 1 
Common Cathode 
Common Calhode(FND500) 
Common Ancde (FND510) 
Common Anode-red 
Common Anode- ed 
Common Cathode red 
4x7 sgl. DlgilRHDP 
4 x 7 Sgl. Digit-LHOP 
Overrange character ( *1) 
4x7 Sgl. Digit-Hexadecimal 



1.30 
2.10 
2.10 
19.95 
19.95 
15.00 
22 50 



RCA LINEAR 



CA3013T 
CA2023T 
CA3035T 
CA3039T 
CA3046N 
CA30S9N 
CA3060N 
CA3080T 
CA3081N 



2.15 CA3082N 

2.56 CA3083N 

2.48 CA3086N 

1.35 CA3089N 

1.30 CA3130T 

3.25 CA3140T 

3.25 CA3160T 

.85 CA3401N 

2.00 CA3600N 



8 pin LP 
14 pin LP 
18PU1LP 
18 pin LP 
20 phi LP 



1-24 
.$17 
.20 



.34 



IC 



CALCULATOR 
CHIPS/DRIVERS 



MM5725 


S2.95 


MM5738 


2.95 


DM8864 


2.00 


DM3365 


100 


DMS887 


.75 


DM8889 


.75 


9374 7 seg. 




C A LEO driver 


150 



CLOCK CHIPS 

MM5309 $4.95 

MM5311 4.95 

MM5312 4. 95 

MM5314 4.95 

MM5316 6.95 

MM5318 995 

MM5369 2.95 

MM5387/1998A 4.95 

MM5841 9.95 



MOTOROLA 

MC1406I.7 $4.95 

MC1408LB 5.75 

MC1439L 2.95 

MC3022P 

MC3061P 3.50 

MC4016(74416) 7 50 

MC4024P 

NTC4Q40P 6.95 

MC4044P 450 



.32 



14 pin ST $.27 .25 

16 pin ST .30 .27 

18 pin ST .35 .32 

24 pin ST .49 .45 

8 pinSG $.30 .27 

14P«SG .35 .32 

16pinSG .38 .35 

iSpinSG .52 .47 

6 pin WW $39 .38 

10 pin WW .45 .41 

14 pin WW .39 .38 

16 pin WW 43 .42 

18pln WW 75 68 



SOLOERTAIL — LOW PROFILE (TIN) SOCKETS 

50-100 1-24 

2 2 pin LP t .37 
24 pin LP .38 
28 pin LP 45 
36 pin LP .60 
M SOLOERTAIL STANDARD (TIN) «P'"LP 63 
28 plnST $ .99 
36pinST 1.39 
40 pin ST 1.59 
SOLOERTAIL STANDARD (GOLD) 

24 pin SG $ -70 



50-100 
.35 



.24 
.29 



WIRE WRAP SOCKETS 
(GOLD) LEVEL #3 



28plnSG 1-10 

36pinSG 165 

40pinSG 1-75 

22 pin WW s .95 

24 pin WW i 05 
28 pin WW 1.40 

36 pin WW 1.59 

40 pin WW 175 



11 
1.30 
1.40 



1/4 WATT RESISTOR ASSORTMENTS - 5% 



ASST. 3 
ASST. 4 
ASST. 5 
ASST. 6 
ASST. 7 



10 OHM 12 OHM 15 OHM 

27 OHM 33 OHM 39 OHM 

68 OHM 82 OHM 100 OHM 

180 OHM 2?0OHM 270 OHM 

470 OHM 560 OHM 680 OHM 



I 8 OHM 72 OHM 

47 OHM 56 OHM 

120 OHM 150 OHM 

330 OHM 390 OHM 



so pcs $1.75 
so pes 1 .75 



3.3K 
Sea B.2K 



1.3K 
3.9K 



180K 
470K 
1.?M 
3.3M 



l.flK 
4.7K 



22QK 
560K 
1.5M 
3.9M 



8?0 OHM 
2.2K 



IK 
2.7K 



39K 



IBK 
47K 

I00K 120K 

270K 330K 

680K 820K 

I-8M ?.?M 

4.7M 5.6M 



BO PCS 
50 PCS 
50 PCS 
SO PCS 



1.75 
175 
1.75 
1.75 



ASST. 8R Includes Resistor Assortments 1-7(350 PCS. 



so pcs 1.75 
$9.95 ea. 



$10.00 Mln. Order - U.S. Funds Only Spec Sheets - 25f 

Calif. Residents Add 6% Sales Tax 1979 Catalog Available - Send 41c 1 stamp 

Postage— Add 5% plusSI Insurance (if desired) 

PHONE 

ORDERS 

WELCOME 

(415) 592-8097 




EE3H33EJI 



MAIL ORDER ELECTRONICS - WORLDWIDE 

1021 HOWARD AVENUE. SAN CARLDS. CA 94070 
ADVERTISED PRICES GOOD THRU AUGUST 



TELEPHONE/KEYBOARD CHIPS ^^\ 

AY-5-9100 Push Button Telephone Oialler S14.95 

AY-5-9200 Repertory Dialler 14.95 

AY-5-9500 CMOS Cbck Generator 4.95 

AY-5-2376 Keyboard Encoder (86 keys) 14.95 

HD0165 Keyboard Encoder 16 ksys) 7.95 

74C922 Keyboard Encoder (16 keys) 5.95 



ICM7045 
ICM7205 
ICM7207 
ICM7208 
ICM7209 



ICM CHIPS 

CMOS Precision Timer 
CMOS LED Stopwatch /Timer 
Oscillator Controller 
Seven Decade Counter 
Clock Generator 



24.95 
19.95 

7.50 
19.95 

6.95 



NMOS READ ONLY MEMORIES 

MCM6571 128 X 9 X 7 ASCII Shitted with Greek 13.50 

MCM6574 128 X 9 X 7 Math Symbol & Pictures 13.50 

MCM6575 128 X 9 X 7 Alphanumeric Control 13.50 

Character Generator 



TL074CN 

TL494CN 

TL496CP 

11C90 

95H90 

4N33 

MK50240 

DS0026CH 

TIU08 

MM5320 

MM5330 

L0110/111 



MISCELLANEOUS 

Quad Low Noise bi-fet Op Amp 
Switching Regulator 
Single Switching Regulator 
Orvfde 10/11 PrescaFer 
Hl-Speed Oi Ide 10/11 Piescaler 
Photo-Darlington Opto-lsolator 
Top Octave Freq. Generator 
5Mhz 2-phase MOS clock driver 



2.49 
4.49 
1.75 
19.95 
1T.95 
3.95 
17.50 
3.75 
,27" red num. display w/integ. logic chip 1 0.50 



TV Camera Sync. Generator 

4V* Digit DPM Logic Block (Special) 

3V4 0igitA/D Converter Set 



14.95 

3.95 

25.00/set 



LITRONIX ISO-LIT 1 

Photo Transistor Opto-lsolator 
(Same as MCT 2 or 4N25) 



2/99^ 



SN 76477 

SOUND GENERATOR 
Generates Complex Sounds 
Low Power - Programmable 

3.95 each 



TV GAME CHIP AND CRYSTAL 

AY-3-8500-1 and 2.01 MHZ Crystal (Chip & Crystal _ _. . 

includes score display. 6 games and select angles, etc, f . JU/ScI 



$840 
4.40 
4.40 
1.55 



XR205 
XR210 
XR215 
XR320 

XR-L555 1.50 

XR555 .39 

XRS56 .99 

XR567CP .99 

XR567CT 1.25 

XR131DP 1.30 

XR1468CN 3.85 

XR1488 1.39 

XR1489 1.39 



EXAR 

JE2206KA 14.95 
JE2206KB 19.95 
XR1B00 3.20 
XR2206 4.40 
XR2207 3.85 
XR220B 5.20 
XR2209 1.75 
XR2211 5.25 
XR2212 4.35 
XR2240 3.45 



XR2242CP 1.50 

XR22B4 4.25 

XR2556 3.20 

XR2567 

XR3403 

XR4136 

XR4151 

XR4194 

XR4202 

XR4212 

XR4558 

XR4739 

XR4741 



1.25 
1.25 
2.85 
495 
360 
2.05 
.75 
1.15 
1.47 



TYP* 

1N746 

1N751 

1N752 

1N753 

1N754 

1N757 

1N759 

1N959 

1N965 

1NS232 

1N5234 

1N523S 

1N5238 

1N5242 

1N5245 

1N456 

1N458 

1H465A 

W0O1 



DIODES 

VOLTS W 

3.3 400m 

5.1 400m 
5.6 400m 

6.2 400m 
6.8 400m 
9.0 400m 

120 400m 

8.2 400m 

15 400m 

5.6 500m 



500m 
SOOm 
500m 



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 



50 PIV 1 AMP 



6/1.00 
6/1.00 
5/1.00 
12/1.00 



TYPE 
1N4002 

1N4O03 
1N4004 
1N4005 
1N4005 
1N4007 
1N3600 
1N4148 
1N4154 
1N4305 
1N4734 
1N4735 
1N4736 
1N4738 
1N4742 
1N4744 
1N1183 
1N1184 
1N1165 
1N1186 
1.N1188 



VOLTS W 

100 PIV1AMP 
200 PIV 1 AMP 
400 PIV 1 AMP 
600PIV1 AMP 
800 PIV 1 AMP 
1000 PIV 1 AMP 
200m 



75 



10m 



35 10m 



PRICE 
12/100 
12/1.00 
12/1.00 
10/100 
10/1.00 
10/1.00 

6/1.00 
15/1.00 
12/100 
15/1.00 
2B 
28 



15 



1w 



50 PIV35 AMP 
100PIV35AMP 
150PIV35AMP 
200 PIV 35 AMP 
400 PIV 35 AMP 



SCR AND FW BRIDGE RECTIFIERS 

C36D 15A ® 400V SCR(2N1849) 

C38M 35A @ 600V SCR 

2N23Z8 1.6A @ 300V SCR 

MOA 980-1 12A @ 50V FW BRIDGE R£C 

MDA 980-3 12A®20QV FVDLBRIDGE R£C. 



C106S1 

MPSA05 

MPSA06 

TI597 

TIS98 

40409 

40410 

40673 

2N918 

2N2219A 

2N2221A 

2N2222A 

PN2222 Plastic 

2N2369 

2N2369A 

MPS2369 

2N2484 

2N2906 

2N2907 

PN290? Pestle 

2N292S 

MJE23S5 

2N30S3 



I Transistors 



1.95 



5/1.00 
6/1.00 
6/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 
1.25 
2/100 



2N3055 
MJE3055 
2N3392 
2N3398 
PN3567 



MPS3638A 

MPS3702 

2N3704 

MPS3704 

2N3705 

MPS3705 

2N3706 

MPS3706 

2N3707 

2N3711 

2N3724A 

2N3725A 

2N3772 

2N3823 

2N39Q3 



1.00 
5/1.00 
5/1.00 
3/1.00 
4/1.00 
4/1.00 
5/1.00 
5/1.00 
5/1.00 
5/1.00 
5/1.00 
5/1.00 
5/1. DO 
5/1.00 
5/1.00 
5/1.00 
65 

1.00 



2N3904 
2N3905 
2N3906 
2N4013 
2N4123 
PN4249 
PN4250 
2N4400 
2N4401 
2N4402 
2N4403 
2N4409 
2N5086 
2N5087 
2N5088 
2N5089 
2N5129 
PN5134 
PN5138 
2N5139 
2N5210 
2N5449 
2N5951 



4/1.00 
4/1.00 
4/1.00 
3/1.00 
6/1.00 
4/1.00 
4/1.00 
4/1. 00 
4/1.00 
4/100 
4/1.00 
5/1.00 
4/1.00 
4/1.00 
4/1.00 
4/1.00 
5/100 
5/1.00 
5/1.00 
5/1.00 
5/1.00 
3/1.00 
3/1.0Q 



CAPACITOR K= CORNER 



10 pf 
22 pi 
47 pt 
100 pi 
220 pi 
470 Dt 

.001ml 
.0022 
0047mt 
.01ml" 

.1/35V 
• 15/35V 
.22/35V 
.33/35V 
47/35V 
.68/35V 
1.0/35V 



.47/50V 

1.0/50V 

3.3/50V 

4.7/25V 

10/25V 

10/50V 

22/2 5V 

22/50V 

47/25V 

47/50V 

100/25V 

100/50V 

220/25V 

220«0V 

470/25V 

1000/16V 

2200/16V 



.04 03 .OOVF 
.04 .03 .0047^ 
.04 .03 .OVF 
.04 .03 .022/iF 
.04 .03 .047 M F 
.04 .035 .W 
100VOLT MYLAR FILM CAPACITORS 
.022ml 
047ml 



_». 10-99 100 

.05 .04 OlT 

.05 .04 .035 

.05 .04 .035 

.06 .OS .04 

.06 .05 .04 

.09 .075 



.12 .10 .07 
.12 .10 .07 



.13 



.11 



08 



12 



1ml 



-22ml .33 2 
+20% DIPPED TANTALUMS (SOLID! CAPACITORS 

' 1.5/35V .30 2! 

2-2/25V .31 .2 

33/25V 31 .2 

4.7/25V 32 .21 

6.8/25V .36 .31 

15/25V .63 .H 



.28 



.28 .23 



.17 



•WW TUBE ALUMWUM ELECTROLIfTIC CAPACITORS 
UrWLttd ItodiiJLud 

.15 .13 .10 47/25V .15 13 

-16 .14 .11 .47/50V .16 .14 

.14 .12 .09 1.0/16V .15 .13 

-15 .13 .10 1.0/25V .16 .14 

.15 .13 .10 1.0/50V .16 .14 

16 .14 .12 4.7/16V .15 .13 

.17 .15 .12 4.7/25V .15 .13 

.24 .20 .18 4.7/50V .16 .14 

.19 .17 .15 10/16V .14 .12 

.25 .21 .19 10/25V .15 13 

.24 .20 .18 10/50V .16 .14 

.35 .30 .28 47/50V .24 .21 

.32 .28 .25 100/16V .19 .15 

.45 .41 .38 100/25V .24 .20 

.33 .29 27 100/50V .35 .30 

.55 .50 .45 220/16V .23 .17 

.70 .62 .55 470/25V .31 .28 



240 BYTEAugustl979 



Circle 200 on inquiry card. 



Transistor Checker 




- Completely Assembled — 
— Battery Operated — 

The ASI Transistor Checker is cap- 
able of checking a wide range of 
transistor types, either "in circuit" 
or out of circuit. To operate, 
simply plug the transistor to be 
checked into the front panel 
socket, or connect it with the alli- 
gator clip test leads provided. 
The unit safely and automatically 
identifies tow, medium and high- 
power PNP and NPN transistors. 
Size: 3%" x 6V*" x 2" 
"C" cell battery not included. 

Trans-Check $29.95 e<X 



Custom Cables & Jumpers 






Part No. 

DB25P-4-P 
DB25P-4-S 
DB25S-4-S 

DJ14-1 

DJ16-1 

DJ24-1 

DJ14-M4 

DJ16-1-16 

DJ24-1-24 



DB 25 Series Cables 

Cable Length Connectors Price 

4 Ft, 2-DP25P S15.95 ea. 

4 r 1-DP25P/1-25S S16.95 ea. 



4 ft, 2-DP25S 

Dip Jumpers 

1 -'14 Pin 
1-16 Pin 
1 -24 Pin 
2-14 Pin 
2-16 Pin 
2-24 Pin 



1ft. 
1 ft. 
1 ft. 
1 ft. 
1ft. 
1 ft. 



S17.95 ea. 

S1 .59 ea. 
1.79 ea. 
2.79 ea. 
2.79 ea. 
3.19 ea. 
4.95 ea. 



For Custom Cables & Jumpers, See JflMECO 1979 Catalog for Pricing 



CONNECTORS 

25 Pin-D Subminiature 



DB25P (as pictured} PLUG (Meets RS232) $2.95 

DB25S SOCKET (Meets RS232) 53.50 

DB51 226-1 Cable Cover for DB25P or DB25S $1.75 

PRINTED CIRCUIT EDGE-CARD 

156 Spacino-T'f-Doufi'* Read -Out — Btfuracted Contacts — Fits .054 to .070 PC Cards 

15/30 PINS (Solder Eyelet) $1.95 

18/36 PINS (Solder Eyelet) $2.49 

22/44 PINS (Solder Eyelet) $2.95 

50/100 (.100 Spacing) PINS (Wire Wrap) $6.95 

50/100 (.125 Spacing) PINS (Wire Wrap) R681-1 $6,95 



4-Digit Clock Kit 




* Brignt .357" ht. red display 

* Sequential flashing colon 

* 12 or 24 hour operation 

* Extruded aluminum case (black} 

* Pressure switches for hours, minutes & hold functions 

* Includes all components, case and wall transformer 

* Size: 3Vj x IVi x 1V4 



je730 $14.95 



Jumbo 
6-Digit Clock Kit 




* Four ,630"ht. and two ,30Q"ht. common anode displays 

* Uses MM5314 clock chip 

* Switches far hours, minutes and hold functions 

* Hours easily viewable to 30 feet 

* Simulated walnut case 

* 115VAC operation 

* !2 or 24 hour operation 

* Includes all components, case and wall transformer 

* Size: 6V< X 3Vb x l*i 



je747 $29.95 




JE701 



• Bright .300 ht. comm. cath- 
ode display 

• Uses MM53 14 clock chip 
•Switches for hours, minutes 

and hold modes 
•Hrs. easily viewable to 20 ft. 

• Simulated walnut case 
•115 VAC operation 

• 1 2 or 24 hr. operation 
•Incl. all components, case Si 

wall transformer 
•Size: 6&" x 3-1/8" x 1 %" 



6-Digit Clock Kit $19.95 



REMOTE CONTROL 
TRANSMITTER* RECEIVER 




$19.95 



Digital Stopwatch Kit 

* Use Intersil 7205 Chip 

♦Plated tnru 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 
(cummulatlve)& taylor (sequential timing) 

* Uses 3 pentite batteries 

* Size: 4.5" x2.15" x .90" 



je900 $39.95 



MICROPROCESSOR COMPONENTS 



8080A 

8212 

8214 

8216 

8224 

8226 

8228 

8238 

8251 

8253 

8255 

8257 

8259 



MC6800 

MC6802CP 

MC6810API 

MC6821 

MC6828 

MC6830L8 

MC6850 

MC6852 

MC6860 

MC6862 

MC6880A 



Z80(780C) 

2B0A(78O-1) CPU 

CDP1802 

2650 

6502 

8035 

P8085 

TMS990aiL 



-8080A/8080A SUPPORT OEVICES— 

CPU 

8-Bit Inpul Output 
Priority Interrupt Control 
Bf-Directionai Bus Driver 
Clock Generator/Driver 
Bus Orlver 

System Conlroller/Bus Driver 
System Controller 
Prog. Comm. 1/0 (USART) 
Prog. Interval Timer 
Prog. Periph. 1/0 (PPI) 
Prog. DMA Control 
Prog. Interrupt Control 
—6800/6800 SUPPORT OEVICES — 



-MICROPROCESSOR MANUALS - 



M-Z80 User Manual 

M-CDP1802 User Manual 
M-2650 User Manual 



S7.50 
7.50 
5.00 



- ROM'S - 



2513(2140) Character Genera1or(upper case) $9 95 

2513(3021) Cfia acler Genera1or(lower case) 9.95 

2516 Characler Generator 10.95 

MM5230N 2048-Bil Read Only Memory 1 .95 



MPU 


S14.95 


MPU with Clock and Ram 


2495 


128X8 Sialic Ram 


5.95 


Periph. Inter. Adapt (MC6820) 


7.49 


Priority Interrupt Controller 


12.95 


1024X8 Bil ROM (MC68A30-8) 


14.95 


Asynchronous Comm. Adapter 


7 95 


Synchronous Serial Data Adapt. 


9.95 


0-600 bps Digital MODEM 


12.95 


2400 bps Modulator 


14.95 


Quad 3-Slate Bus. Trans. (MC8T26) 


2 25 


PROCESSOR CHIPS-MISCELLANEOUS 


CPU 


$19.95 


CPU 


24.95 


CPU 


19.95 


MPU 


1995 



B-Bit MPU w/clock, RAM, 1/0 lines 

CPU 

16-Bil MPU w/ltardware, multiply 

& divide 

SHIFT REGISTERS 



1101 

5103 

2101(8101) 

2102 

21L02 

2111(8111) 

2112 

2114 

2114L 

2114-3 

2114L-3 

5101 

5280/2107 

7489 

74S200 

93421 

UP0414 

(MK4027) 
UPD416 

(MK4116) 
TMS4044- 

45NL 
TMS4045 
2117 



256X1 

1024X1 

256X4 

1024X1 

1024X1 

256X4 

256X4 

1024X4 

1024X4 

1024X4 

1024X4 

256X4 

4096X1 

16X4 

256X1 

256X1 

4K 



MM500H 


Dual 25 Sit Dynamic 


MM503H 


DualSO Git Oynamic 


MM504H 


Oual 16 Bil Static 


MM506H 


Oual 100 Bit Static 


MM510H 


Dual 64 Bit Accumulator 


MM5U16H 


500/512 Bit Dynamic 


2504T 


1024 Dynamic 


2513 


Hex 32 Bit Slatic 


2522 


Oual 132 Bit Sialic 


2524 


512 Static 


2525 


1024 Dynamic 


2527 


Dual 256 Bit Slatic 


2528 


Duat250 Static 


2529 


Oual 240 Bit Static 


2532 


Quad 80 Bit Slaur 


2533 


1024 Sialic 


3341 


Fifo 


74LS670 


4X4 Register File (TriSta 



$.50 MM5262 2KX1 



- RAMS 

Sialic 

Dynamic 

Static 

Static 

Sialic 

Static 

Static M0S 

Slalic450ns 

Static 450ns low power 

Static 300ns 

Sialic 300ns low power 

Slatic 

Dynamic 

Sialic 

Sialic Trislate 

Static 

Dynamic 16 pin 

Dynamic 16 pin 

Sialic 

Static 

Dynamic 350ns 
(liouse marked) 
Oynamic 



1.75 
4.95 
2.95 



- PROM'S- 



3.95 
4.95 
2.95 
.99 
2.95 
2.95 
4.00 
4,00 
2.95 
2.95 



1702A 

2716INTEL 

TMS2516 

(2716) 

TMS2532 

2708 

2716T 



2048 



FAM0S 
16K* EPROM 

16K' EPRDM 

■Requires single +5V power supply 
4KX8 EPROM 

8K EPROM 

16K" EPROM 

"Requires 3 voltages, — 5V, +5V, +12V 
5203 2048 FAM0S 



A-Y-5-1013 30K GAUD 



6301 -.1(7611) 1024 
6330-1(7602) 258 
82S23 32X8 

82S115 4096 

82S123 32X8 

74186 512 

7418B 256 

74S287 1024 



Trislale Bipolar 

Open C Bipolar 

Open Collector 

Bipolar 

Trislate 

TTL Open Collector 

TTL Open Collector 

Static 



3.95 
19.95 
3.95 
995 
3.95 
2.95 



CONTINENTAL SPECIALTIES 



Ptoto Board 203 




*75.00 



Number 



LiWiH 
(Inches) 



Price 
P8-6 6.0x4.5x1.4 515.95 

PB-100 6.0 X 4.5 x 1.4 $19.95 

PB-1U1 6.0x4,5x1.4 S22.95 




Board 203 A 



All iht return ill 1h« PB 20J elm 
ufdid mil i-i.vt si!(iij'' t Mdibilily. 
piavidti r; R.-;..ijr--i 5VOC supply 
lunu mtcilicitmni » PB 2031 Ht, 
uUied lepiriit +t5VOC md -IS 
VOC 0.5A suapliti. -J.:" with 
InUtMtt) »r>d ini]e(iBfiden]|y ii)|U>t 



-1SV it 



I )0mV II 



PBZQ3A $724.95 



Model LiWiH 

Number (Inches) Price 

PB-102 7.0x4.5x1.4 $26.95 

PB-103 9.0x6.0x1.4 $44.95 

PB-104 9.8x8.0x1.4 $54.95 



THE SINCLAIR PDM35 



Options: AC adapter lor 
117 V 60 Hz power 
De-luxe padded 
carrying wallet. 



DC Uolls (4 ranges) 

Range 1mV1o 1000V 

Accuracy ol reading 1.0%- 1 count. 

Nole 10MO inpul impedance 

AC Volls (40 Mi-5 KIIjtI 

Range IV to 500 V. 

Accuracy ol reading 1 ± 2 counts 

DC Current (6 ranges) 

Range 1 n-\ lo20t)m.\. 

Accuracy ol reading 1 - 1 count. 

Note: Max. resolution 1 n.A 

Resistance (5 ranges) 

Range 1X2 to 20 Un 

Accuracy ol reading: 1.5%± 1 count. 

Also provides 5 jundion-lest ranges 

Dimensions: 6 in x 3 in x T'i in. 

Weight: 6V* oz. 

Power S 

Sinclair ..__ 

Sockets: Standard 4mm lor 

resilient plugs 



PDM35: Digital Multimeter . 

(completely assembled) 

PDM-AC: 117V AC Adapter . 

PDM-DP: 

Deluxe padded carrying case. 



, . $59.95 
. 6.95 
. 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, 

+ 9V and ±12V with 

JE205 Adapter 
♦Includes components, 

hardware & instructions 
♦Size: 3J4"x5"x2"H 



100 MHz 
8-Digit 
Counter 



• 20 HM00MH: Range • Four power souces, I.e 
« 6 LED Display batteries. 1l0or220Vwith 

• Cryslakontrolled limebas* charger 12V with aulo 

• Fully Automatic lighter adapter and external 

• Portable — completely 7. 2- 10V power supply 

.£38?x7.3i- MAX10 ° $134.95 

*5 63* . 

ACCESSORIES FOR MAX 100: 

Mobile Chirger Eliminator 

use power Irom car battery Model 100 — CLA S3. 95 

Charger/Ellmlnstor 

use 110 VAC Model 100 — CAIS9.95 



REGULATED POWER SUPPLY {& 
JE205 









ADAPTER BOARD 
- Adapts to JE200 - 
±5V,±9Vand±12V 
•DC/DC converter w/ 
+ 5V input 
•Toriodal hi-speed 
switching XMFR 
'Short circ. protection 
•PC Brd. construction 
•Piggy-hack to JE200 
board 
■Size:3%"x2"x9/16"h 

JE205 $12.95 



S10.00 Min. Order - U.S. Funds Only Spec Sheets - 25s? 

Calif. Residents Add 6% Sales Tax 1979 Catalog Available - Send 41* stamp 

Postage— Add 5% plusSI Insurance (if desired) 

PHONE 

ORDERS 

WELCOME 

(415) 592-8097 



FREE 

? 1979 catalog; 



J a 3 



MAIL ORDER ELECTRONICS - WORLDWIDE 

1021 HOWARD AVENUE, SAN CARLOS, CA 94070 
ADVERTISED PRICES GOOD THRU AUGUST 



The Incredible 
"Pennywhistle 103' 



$139.95 



Kit Only 




The Pennywhlslln 103 is capable ol recording data 1o and from audio tape without 

cnlicalspeed requirements forlhe recorderandilis ablelo communicatedirecllywilh 

another modern and terminal lor telephone "hamming" and communications. In 

addition, it is free ol critical adjustments and is built with non -precision, readily available 

parts. 

Data Transmission Method Frequency-Shift Keying, lull-duplex (halt-duplex 

selectable). 

Maximum Dala Rale 300 Baud. 

Data Formal Asynchronous Serial (return to marklevel required 

between each character). 
Receive Channel Frequencies . . .2025 Hz lor space; 2225 Hzlor mark 
Transmit Channel Frequencies , .Switch selectable: Low (normal) >• 1070 space, 

1270 mark; High = 025 space. 2225 mark. 

Receive Sensitivity -46 dbm accousticaily coupled. 

Transmit Level -t5 dbm nominal. Adjustable from -6 dbm 

to -20 dbm. 
Receive Frequency Tolerance .. .Frequency reference automatically adjusts 1o 

allow1oropera1ionbe1ween1800Hzand2400Hj. 
Digital Data Interlace EIA RS-232C or 20 mA current loop (receiver is 

oploisolated and non -polar). 

Power Requirements 120 VAC, single phase. 10 Watts. 

Physical. ....All components mount on a single 5* by 9" 

printed circuit board All components included. 
Requires a VOW. 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 

. PLASTIC CASE INCLUDED 
12 CASSETTE CAPACITY 

. ADDITIONAL CASSETTES 
AVAILABLE#C-15-S2.95ea 

CAS-6 

$14.95 

(Case and 6 Cassettes) 



SUP 'R' MOD II 

UHF Channel 33 TV Interface Unit Kit 

Wide Band B/W or Color System 

• Converts TV to Video Display tor 
home computers, CCTV camera, 
Apple II, works with Cromeco Daz- 
zler, SOL-20. IRS-80, Challenger, 
etc. 

MOD II is pretuned to Channel 33 
(UHF). 

* Includes coaxial cable and antenna 
transformer. 




MOD II 



$29.95 Kit 



Function Generator Kit 



* Provides 3 basic waveforms: 
sine, triangle & square wave 

* Frequency range from 1 Hz to 
100K Hz 

* Outputamplituue fromO-voltsto 
over 6 volts (peak to peak) 

* Uses a 12Vsupp!yora±6V split 
supply 

* Incl. chip. P.C. board, compo- 
nents and instru tions. 

JE2206B $19.95 




IDEAL FOR TRS 80 CASSETTE CONTROLLER 



"Plug/Jack interface 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 dur- 
ing computer loading opera- 
tion from cassette. 




63-Key Unencoded Keyboard 




This is a 63-key, terminal keyboard newly manufactured by a 
large computer manufacturer. It is unencoded with SPST keys, 
unattached to any kind of PC board. Avery solid molded plastic 13 
x 4" base suits most application. IN STOCK §29 95/eacfl 



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



BYTE August 1979 241 



Circle 171 on inquiry card. 



COMPUCOLOR II IS HERE!! 



HERE IS A SURPRISINGLY 
AFFORDABLE COMPUTER 
THAT MAKES THE COMPE- 
TITION LOOK TWICE I ! 

STANDARD FEATURES 

4 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 - 1 3 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 - 5(K 



9100 SUNSET BLVD. 

SUITE 112 

L.A. CALIF. 90069 



n 



BECKIAN ENTERPRISES 




All Prime Quality — New Parts Only 
Satisfaction Guaranteed 



J5y' 



EDGE CARD CONNECTORS: GOLD PLATED. (Not Gold Flash} 
BODY: Non brittle. Solvent res., G.E. Valox. 
CONTACTS: Bifurcated; Phos/Bronze: Gold over Nickel. 
ABBREVIATIONS: S/T Solder Tail; S/E Sold. Eyelet: 

W/W Wire Wrap 3; SW/W Short W/Wrap; 



PART P 

5010 
5020 
5030 
5040 
5050 
1450 



Description 
50/100 S/T ALTAIR 
50/100 S/T IMSAI 
50/1 00 W/W IMSAI 
50/100 S/E ALT/IMSAl 
50/100 S/T.CROMEMCO 
IMSAI CARD GUIDES 



.100" Contact Center Connectors. 



1020 
1040 
1050 
1060 
1065 
1070 
1075 
1080 
1085 
1090 
1093 
1095 



13/26 S/E Imsai MIO: 
2 5/50 S/E 
2 5/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 

1580 12/24 S/T PET 

1590 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 

1670 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 

1740 43/86 S/T Mot. 6800 

1 750 43/86 W/W Mot. 6800 

POLARIZING KEYS: For Above 



Bow Sp. 

.140 
.250 
.250 
.140 
.250 



.140 
.140 
.140 
.200 
.200 
.140 
.200 
.140 
.140 
.140 
.200 
.200 



.140 
.140 
.140 
.140 
.140 
.140 
.140 
.140 
.200 
.200 
.140 
.200 
.140' 
.200 
.200 



1-4 

3.75 
3.95 
4.10 
5.00 
6.25 
0.16 



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.35 
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.75 


3.50 


3.90 


3.70 


4.50 


4.25 


6.00 


5.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.15 
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 SUBM1NIATURE CONNECTORS: 



QUANTITY 

DE9P Male 
DE9S Female 
DE1 10963-1 
DA15P Male 
DA15S Female 
DA51211-1 
DA1 10963-2 
DB25P Male 
DB25S Female 
DB51212-1 
DB51226-1A 
DB1 10963-3 
DC37P Male 
DC37S Female 
DC1 10963-4 
DD50PMale 
DD50S Female 
DD51216-1 
DD1 10963-5 



2pc. Grey Hood 



1pc. Grey Hood 
2pc. Grey Hood 



1pc. Grey Hood 
2pc. Black Hood 
2pc. Grey Hood 



2pc. Grey Hood 



1pc. Grey Hood 
2pc. Grey Hood. 



D2041B-2 Hardware Sets 



1-4 

1.45 

193 

1.20 

1.95 

2.80 

1.25 

1.22 

2.20 

3.20 

1.30 

1.40 

1.35 

3.70 

4.90 

1.95 

4.40 

4.90 

2.30 

2.40 

0.75 



5-9 

1.35 

1.80 

1.10 

1.80 

2.60 

1.15 

1.10 

2.10 

3.00 

1.20 

1.30 

1.25 

3.50 

4.70 

1.85 

4.30 

4.70 

2.10 

2.20 

0.70 



10-24 

1.25 
1.70 
1.00 
1.70 
2.40 
1.10 
1.05 
1.90 
2.70 
1.10 
1.20 
1.15 
3.35 
4.40 
1.75 
4.10 
4.50 
1.90 
2.00 
0.65 



IC. SOCKETS. GOLD. 
WIRE WRAP 3 TURN. 

14 pin $0.36 ea. 
16 pin 0.38 ea. 



IC. SOCKETS 

Dip Solder. Tin . 
14 pin $0.1 5 ea. 
16 pin 0.17ea. 



8080 PRIME 
$B.OO ea. 



2708 EPROMS PRIME 

$14.00 ea. 



CONNECTORS FOR CENTRONICS 700 SERIES: 



Amhpenol 57-30360 For Back of Centronics '700' Series: 

Price: $9.00ea. 5 pes. $7.50ea. 

WHISPER FANS: Excellent for Computer cabinet cooling. Extremely quiet. 
Dim. 4-3/4" x 1-1/2" thick. U.L. Listed. JL4 5^9 10-24 

$22.00 $19.00 $18.00 
WRITE FOR LARGER QUANTITY DISCOUNTS. DEALER INQUIRIES ARE 
WELCOME. 

WE ARE CONNECTOR (EDGE CARD) SPECIALISTS. IF YOU DO NOT SEE 
WHAT YOU NEED IN THIS ADVERTISEMENT, PLEASE WRITE US. WE WILL 
RE PL Y. 

TERMS: Minimum Order $10.00: Add $1.25 for handling and shipping. All orders 
o*er$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. 

MAIL orders to ^ ec i Qim Enterprises 

P.O. Box 3089 
Simi Valley, CA 93063 



242 BYTE August 1979 



Circle 30 on inquiry card. 




PRECUTWIRE 



#30 WIRE KITS 

#1 $7.95 #2 $19.95 



WIRE WRAP TOOLS 



250 


3" 


100 4V 2 " 


250 


2V 2 " 


250 


5" 


250 


3V 2 " 


100 5" 


500 


3" 


100 


5 1 / 2 " 


100 


4" 


100 6" 


500 


3 1 / 2 " 


250 


6" 








500 


4" 


100 


6 1 / 2 " 








250 


4 1 / 2 " 


100 


7" 





#3 


$24.95 


#4 $44.95 


500 
500 
500 
500 


2V 2 ' 
3" 
3V 2 ' 
4" 


500 4V 2 " 
500 5" 
500 5V 2 " 
500 6" 


1000 2'/ 2 " 1000 4V 2 " 
1000 3" 1000 5" 
1000 3V 2 " 1000 5'/2" 
1000 4" 1000 6" 



Choose One Color or Random Assortment: 
Red, Blue, Green, Yellow, White, Orange, Black. 

* #26 Prices on Request 

#30 Kynar stripped 1" on each end. Lengths are overall. 
Colors: Red. Blue, Green, Yellow. Black, Orange, White. 
Wire packaged in plastic bags. Add 25C/length for tubes. 



In_ 
2V? 
3 

3</2 

4 

4V 2 

5 

5'/? 

6 

6'/? 

7 
Vh 



9Va 
10 



100 

1.04 
1.08 
1.13 
1.18 

1.23 
1.28 
1.32 
1.37 

1.60 
1.66 
1.73 
1.78 

1.82 
1.87 
1.92 
1.99 

:15 



500 



1000 



5000 



2.98 


. 5.16/K 


4.67/K 


3.22 


5.65/K 


5.06/K 


3.46 


6.14/K 


5.46/K 


3.20 


6.62/K 


5.87/K 


3.95 


7.1 2/K 


6.25/K 


4.20 


7.61/K 


6.62/K 


4.48 


8.10/K 


7.03/K 


4.72 


8.59/K 


7.43/K 


5.37 


9.84/K 


8.48/K 


5.63 


10.37/K 


8.91/K 


5.89 


10.91/K 


9.33/K 


6.15 


11.44/K 


9.79/K 


6.41 


11.97/K 


10.19/K 


6.76 


12.51/K 


10.62/K 


6.93 


13.04/K 


11.05/K 


7.26 


13.57/K 


11.48/K 



.60 



HOBBY 

WIRE WRAP TOOL 



BW 630 (Back Force) $34.95 

BT 30 Extra Bit 2.95 

BT 2628 #26 Bit 7.95 

Batteries & Charger 11.00 




INDUSTRIAL 
WIRE WRAP TOOL 

BW928 

BW 928BF (Back Force) 
#30 Bit & Sleeve 
#26 Bit & Sleeve 
Batteries & Charger 



$49.95* 

52.95* 
29.50 
29.50 
11.00 




ELECTRICAL INDUSTRIAL 
WIRE WRAP TOOL 



EW7D 

EW 7D BF (Back Force 
#30 Bit & Sleeve 
#26 Bit & Sleeve 

Industrial Tools do not include Bit & Sleeve 
L Spring Loaded bit on Back Force models. 



$85.00* 

92.90* 
29.50 
29.50 




£ 



EDGE CARD CONNECTORS 

44 pin Solder Tail $1.95 $17.50/10 ALLareGold 
00 pin Solder Tail $3.95 $35.00/10 100 pin are IMSAI 
00 pin Wire Wrap S3.95 S35. 00/10 spacing. 



TT 



b 



( 




INTERCONNECT CABLES 






•s 


Ribbon cableconnectorsfor connecting boards to front panels, or board to board. 

SINGLE ENDED DOUBLE ENDED 
14 pin )6 pin 24 pin 14 pin 16 pin 24 pin 




6" 
12" 
24" 
48" 


1 24 1 34 2.05 
1 33 1.44 2 24 
1.52 1.65 2 63 
1.91 2.06 3.40 


224 2.45 
2.33 2.55 
252 2.76 
291 3.17 


3.37 
392 
4.31 
5.08 










OK PRODUCTS 








WD 30 


50 ft. 


Wire Dispenser Red, 


White, Blue, 


or Yellow 


S3.75 




WD-30-TRI 
R-30-TR] 


TRI Color Dispenser 
Refill for TRI Color 






5.50 
3.75 




INS 1416 


14 & 


16 pin Insertion Tool 






3.25 




MOS40 


40 pir 


Insertion Tool 






7.50 




EX-1 


IC Ex 


tractor Tool 






1.49 




H-PCB-1 
WSU 30 
WSU 30M 


Hobby PC Board 

Hand Wrap/Unwrap/Strip Tool 

Same as WSU30 with Modified Wrap 




4.99 
6.25 
7.50 





SOLDERLESS 
BREADBOARDS 
SK 10 $16.50 

2.2" x 6.5" .//.& 




MB1Q 



$18.95 



SK10 mounted on board 
W74 Binding Posts & 
Rubber Feet 



WIRE WRAP SOCKETS 



1-9 10-24 25-99 100-249 250-999 



8 pin' 


.40 


.36 


.34 


.31 .27 


14 pin' 


— 


.39 


.37 


34 .32 


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 



P/K mm, mm 

135 E. Chestnut St. #5 Monrovia 1 . CA 91016 (213) 357-5005 



^ 



Ordering Information: 

• Orders under $25 and COD's add $2 

• All others, shipped Ppd in U.S, via UPS 

• For Blue Label (Air) or 1st Class, add $1 

• We accept Visa & Mastercharge 



Catalog available on request. 



LOGIC PROBE 

PRB-1 

$ 34.95 4\ mi i 




Dealer Inquiries Invited 



Circle 298 on inquiry card. 



• Compatible with all 
Logic Families 
l • 10 Nsec pulse response 



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, 
IO BOARD WITH CASSETTE INTERFACE. 

DEALER INQUIRIES INVITED, UNIVERSITY DISCOUNTS AVAILABLE 

AT YOUR LOCAL DEALER 



wwc 



iftC. WAMECO INC. 111 GLENN WAY #8, BELMONT, CA 94002 (415) 592-6141 



■I 



CALIFORNIA COMPUTER SYSTEMS 

16K RAM BOARD. Fully buffered addressable In 4K 
blocks. IEEE standard for bank ad