(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 07 - Automating Eclipses (RESCAN)"

JULY 1979 Volume 4, Number 7 $2.00 in USA/$ 




the small s 

A MCGRAW-HILL PUBL 




airnal 







AUTOMATING ECLIPSES 



Robert 

73llNN!EY 




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. 




1IUU1W 1 



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. 



G 



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

Cromemco 




For high reliability all Cromemco memory 

cards are burned in at the factory in these 

temperature-controlled ovens. 




Cromemco Multi-User System 
shown with 7 stations 



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

Tomorrow's computers now 



Circle 80 on inquiry card. 



BYTE July 1979 








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

BUSINESS — EDUCATION — ENGINEERING — MANUFACTURING 



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

Naturally, it's from Cromemco. 

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

Look at these features: 

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

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

• Each user has an independent bank 
of RAM 

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

• You have confidentiality between 
most stations 

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




PROGRAMMERS LOVE OUR BASIC 

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

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

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

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



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

• Terminals and printer are interrupt- 
driven — no additional overhead 
until key is pressed. 

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

• A line editor simplifies changes. 

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

Find out, too, about Cromemco's rep- 
utation for quality and engineering. 

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



ra 



Cromemco 



l^^fc^a^jH Microcomputer Systems 

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



BYTE July 1979 



Circle 80 on inquiry card. 



M 



In The Oueue 



WTI July 1979 
Volume 4, Number 7 



Foreground 



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

34 SOUND OFF, by Steve Ciarcia 

Interfacing a computer to external sound generation devices 

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

120 SONIC ANEMOMETRY FOR THE HOBBYIST by Neil Dvorak 

Measuring wind speed and direction by electronic means 

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

176 QU EST, by Roger Chaffee 

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

198 MOUSE, A Language for Microcomputers, by Peter Grogono 

Simple language to demonstrate implementation processes 

226 SUBROUTINE PARAMETERS, by W D Maurer 

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




page 34 



Background 



105 THE MATHEMATICS OF COMPUTER ART, by Kurt Schmucker 

Plotting figures that express mathematical relationships 

158 CREATIVITY IN COMPUTER MUSIC, by Hubert S Howe Jr 

Effect of computer use on music composition and theory 

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




page 54 



6 Letters 

8 Editorial, "Computers and Eclipses" 

36,192 Programming Quickies 

96 Event Queue 

98,156 BYTE's Bugs 

99 BYTE News 

154 Clubs and Newsletters 

155 BYTE's Bits 



Nucleus 

174 Nybbles: Tiny Pascal in Assembly Language 

193 World Power Systems: A Report 

187 Book Reviews 

222 Technical Forum 

231 Languages Forum 

233 What's New? 

270 Unclassified Ads 

272 BOMB, Reader Service 



I 111 I 1 I I FTT 



111 I I 



mm 



xXA-Cu 




7W 



: =1 



I II I II ITT 



page 105 



Cover Art: AUTOMATING ECLIPSES, by Robert Tinney. 




BYTE is published monthly by BYTE Publications Inc, 70 Main St, Peterborough NH 03458. A wholly-owned subsidiary of McGraw-Hill, Inc. Address all mail except subscriptions 
to above address: phone (603) 924-7217. Address subscriptions, change of address, USPS Form 3579, and fulfillment questions to BYTE Subscriptions, PO Box 590, Martinsville NJ 
08836. Second class postage paid at Peterborough NH 03458 and at additional mailing offices— USPS Publication No. 102410 (ISSN 0360-5280). Subscriptions are $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 respon- 
sible 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 WG1R 4EJ 
ENGLAND. 



Subscription WATS Line: (800) 258-5485 



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



July 1979 © BYTE Publications Inc 3 









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



In This BYTE 



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

This month "Ciarcia's Circuit 
Cellar" explores the use and inter- 
facing of Texas Instruments and 
General Instrument sound genera- 
tors. Find out how you can let your 
computer Sound Off. page 34 

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

page 54 

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



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

page 105 

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

page 120 

In part 2 of The Nature of 

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

Creativity in Computer Music by 

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

After you have successfully 
hunted the Wumpus, and des- 
troyed all the Klingons, what is 
your next step? Roger Chaffee sug- 
gests you try your hand in some 
caves, searching for hidden trea- 
sure. Enter the world of suspense 
and danger on your Quest for 
riches. page 176 



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

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

page 198 

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



Publishers 

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

Editorial Director 

Carl T Helmers Jr 

Executive Editor 

Christopher P Morgan 

Editor In Chief 

Raymond G A Cote 

Senior Editor 

Blaise W Lift Ick 

Editor 

RIchafd Shuford, N4ANG 

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 
Wai Chiu Li 
Christine Dixon 
Nancy Estle 

Typographers 

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

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



Circulation Manager 

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

Traffic Department 

Rick Fuette 
Mark Sandagata 

Book Division 
Publisher 

Edmond C Kelly Jr 
Production Editors 

Patricia Curran 
William Hurlln 
E S Associates 

Comptroller 

Kevin Maguire 
Assistant 

Mary E Fluhr 



National Advertising 
Sates 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 I L 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. 



July 1979 © BYTE Publications Inc 




Good News for Smart People 



TDS-lB Disk System 



HITACHI BASIC MASTER Compatible 




Coming Soon: 


• 


• TDS-IA 


% 


Apple II 
Compatible 


• 
• 


• TDS-nr 


• 


TRS-80 
Compatible 


• 




35 Tracks with ten 256 byte sectors 

per Track. 

87. 5K bytes per disk. 

Interface, power-unit included. 

Controls up to four drives. 

Software included. TDOS (TIP Disk 

Operating System). 

OPTION: Business utility programs. 



TRADE OF INDUSTRIAL PRODUCTS INC. 



2-1-19-815 Kanda-Surugadai 

Chiyoda ku, Tokyo 101, Japan 

(03) 295-7055 

TELEX 02226152 TIPINC J 






Circle 370 on inquiry card. 



BYTE July 1979 



Look for 

Shugart drives 

in personal 

computer systems 

made toy 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. 

San Leandro, CA 94577 

Industrial Micro Systems 

633 West Katella, Suite L 
Orange, CA 92667 

North Star Computer 

2547 9th Street 
Berkeley, CA 94710 

Percom Data 

318 Barnes 
Garland, TX 75042 

Polymorphic Systems 

460 Ward Dr. 

Santa Barbara, CA 93111 

Problem Solver Systems 

20834 Lassen Street 
Chatsworth, CA 91311 

Processor Applications Limited 

2801 E. Valley View Avenue 
West Covina, CA 91792 

SD Sales 

3401 W. Ktngsley 
Garland, TX 75040 

Smoke Signal Broadcasting 

6304 Yucca 
Hollywood, CA 90028 

Technico Inc. 

9130 Red Branch Road 
Columbia, MD 21045 

Texas Electronic Instruments 

5636Etheridge 
Houston, TX 77087 

Thinker Toys 

1201 10th Street 
Berkeley, CA 94710 

Vista Computer Company 

2807 Oregon Court 
Torrance, CA 90503 



fca.Shugart 

6 July 1979 © BYTE Publications Inc 



Letters 



SERIOUS COMMENTS ON 
AMENDED BASIC 

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

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

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

James L Boettler 

Director of theComputer Laboratory 

Claflin College 

Orangeburg SC 29115 



SQUISH BUGS 

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

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



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

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

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

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

The industry needs more systems like 
these. 

Ira Baxter 

Software Dynamics 

2111 W Crescent Suite G 

Anaheim CA 92801 



A FASTER MAILING LIST 

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

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

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



iJtyShugart 
followed me fa 



V* 



^ 



W 



:.-v v - 






y i 



m 



\ 






! 



1 




<o; 







\ 



X 



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

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

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



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

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

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

^ Shugart 

435 Oakmead Parkway, Sunnyvale, California 94086 



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

TM minifloppy is a registered trademark of Shugart Associates 



BYTE July 1979 



Editorial 



Computers and Eclipses 

by Carl Helmers 

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

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

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

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

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

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



ComputerLand 



Huntsvilie, AL 

Phoenix, AZ 

Little Rock, AR 

Belmont, CA 

Dublin, CA 

El Cerrito, CA 

Hayward, CA 

Lawndale, CA 

Los Altos, CA 

Los Angeles, CA 

Marin, CA 

Pasadena, CA 

Saddleback Valley, CA 

San Bernardino, CA 

San Diego, CA 

San Diego East, CA 

San Francisco, CA 

San Jose, CA 

Santa Maria, CA 

Santa Rosa, CA 

Thousand Oaks, CA 

Tustin, CA 

Walnut Creek, CA 

Colorado Springs, CO 

Denver, CO 

Fairfield, CT 

Newark, DE 

Boca Raton, FL 

Ft. Lauderdale, FL 

Jacksonville, FL 

Atlanta, GA 

Honolulu, HI 

Arlington Heights, IL 

Downers Grove, IL 

Mundelein, IL 

Niles, IL 

Oak Lawn, IL 

Peoria, IL 

Indianapolis, IN Call 

Overland Park, KS 

Louisville, KY 

Boston, MA Call 

Rockville, MD 

Grand Rapids, Ml 

Southfield, Ml 

Bloomington, MN 

Rochester, MN 

Springfield, MO 

Nashua, NH 

Cherry Hill, NJ 

Bergen County, NJ 

Morristown, NJ 

Buffalo, NY 

Ithaca, NY 

Nassau County, NY 

Charlotte, NC 

Cleveland, OH 

Columbus, OH 

Portland, OR 

Harrisburg, PA 

Austin, TX 

Dallas, TX 

South West Houston, TX 

Houston Bay Area, TX 

Salt Lake City, UT 

Tyson's Corners, VA 

Bellevue, WA 

Federal Way, WA 

Tacoma, WA 

Madison, W I 

Milwaukee, Wl 

INTERNATIONAL 



(205) 539-1200 
1602) 956-5727 
(501)224-4508 
(415)595-4232 
(415)828-8090 
(415)233-5010 
(415)538-8080 
(213)371-7144 
(415)941-8154 
(213)776-8080 
(415)459-1767 
(213)449-3205 
(714) 770-0131 
(714) 886-6838 
(714)560-9912 
(714) 464-5656 
(415) 546-1592 
(408) 253-8080 
(805)92B-1919 
(707) 528-1775 
(805) 495-3554 
(714) 544-0542 
(415)935-6502 
(303)574-4150 
(303) 759-4685 
(203) 255-9252 
(302) 738-9656 
(305)368-1122 
(305) 566-0776 
(904) 731-2471 
(404) 953-0406 
(808)521-8002 
(312)255-6488 
(312)964-7762 
(312) 949-1300 

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

Directory Information 
(913)492-8882 
(502) 425-8308 

Directory Information 
(301)948-7676 
(616)942-2931 
(313)356-8111 
(612)884-1474 

(313) 652-9000 
(417)883-7085 
(603) 889-5238 
(609) 795-5900 
(201)845-9303 
(201) 539-4077 

(716) 836-6511 

(607) 277h4888 
(516)742-2262 
(704) 536-8500 
(216)461-1200 
(614) 888-2215 
(503)620-6170 

(717) 763-1116 
(512)452-5701 
(214) 363-2223 
(713) 977-0909 
(713)488-8153 
(801)364-4416 
(703) 8930424 

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

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



Adelaide, Australia 
Brisbane, Australia 
Melbourne, Australia 
Perth, Australia 
Sydney, NSW Australia 
Brussels, Belgium 
Burlington, Canada 
Toronto, Canada 
Winnipeg, Canada 
Manila, Philippines 



22 35 083 

07 221 9777 

62 55 81 

Call Directory Information 

29-3753 

43 29 05 

(416) 632-5722 

(416)485-6700 

(204) 772-9519 

58-36-66 



8 July 1 979 © 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 you what you'll find, when you visit 
a ComputerLand store. 

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





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

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



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

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



ComputerLand Corp. 

14400 Catalina St. 

San Leandro, CA 94577 

(415) 895-9363 

Franchise Opportunities Worldwide. 

© ComputerLand Corp., 1978 




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

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

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




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

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



ComputerLand 

WE KNOW SMALL COMPUTERS 



® 



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

BYTE July 1979 ! 




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




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



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

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

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

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

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

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

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

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

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



1 July 1 979 © BYTE Publications Inc 



I've finally found a personal 



rve imauy round a personal ^n-p » ^ 

/ w * that professionals 

computer I respect. sSE£&5£SSEig& 

C O l Y lFYIlf^OlOt* 1 1 w ^h full color graphics display, built-in 5 IK 
^■ / *-* »**J/WW **mtR a. m.0 111 { n i- < j{ s i c drive, and the best cost performance 

ratio available in a personal computer. 

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

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

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

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



Corporation 




Circle 50 on inquiry card. 



BYTE July 1979 







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



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



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

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

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

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

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

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



I/2000 

l/IOOO 

I/500 - 

I/250 

I/I25 

I/60 

I/30 

I/I5 



SHUTTER TRIPS 
FRAME I.D. 



MANUAL CUE 



iiilt 

I | 3 | 5 



100% ECLIPSE BEGINS 



1/2000 



'A/ 



i/toob y T \i/iooo i 



2 4 6 



-4 -2 2 4 6 8 10 



\ 1/500 



V 



\|/I25_ 



"\ 1/60 ! 
x 1 



\ 1/30 J 



1 L 




L 



5.5 SECONDS BETWEEN INTERMEDIATE SHOTS 
FOR 2/28/79 ECLIPSE 



20 



30 40 

TIME IN SECONDS 



50 



60 



1 2 July 1 979 © BYTE Publications Inc 






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





Photo 4: One of the most unusual occur- 
rences was the appearance of several hot air 
balloons in the sky at the time of the eclipse. 
While the balloonists must certainly have 
been having fun, some of the people watching 
from the ground were, no doubt, perturbed. 
Here is a kind of man made t4 cloud" pheno- 
menon totally unpredictable by any meteoro- 
logist. 



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



100% ECLIPSE ENDS- 



1/2000 



y 



1/500 / " 



M000 f 



\ 



1/500 



\ 1/250 



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



J L 



i 




1/60 


H\l/I25 




""N, 1/60! 




T\ l/30| 


/ ! 




|\ 1/15 










J I I I I I I L 



1/2000 



19 20 21 22 23 24 25 26 27 28 29 30 r 



31 32 33 34 35 36 

ru 



MANUAL CUE 



90 



110 



130 136 138 140 142 



July 1979 © BYTE Publications Inc 13 



Articles Policy 

BYTE is continually seeking quality 
manuscripts written by Individuals who 
are applying personal computer systems, 
designing such systems, or who have 
knowledge which will prove useful to 
our readers. For a more formal de- 
scription of procedures and require- 
ments, potential authors should send a 
targe (9 by 12 Inch, 30.5 by 22 .8 cm), 
self-addressed envelope, with 28 cents 
US postage affixed, to BYTE Author's 
Guide, 10 Main St, Peterborough NH 
03458. 

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



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

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



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

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

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

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

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

. . . .Carl Helmers 



A Note About the Cover. . . 

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

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

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



1 4 July 1 979 © BYTE Publications Inc 



Circle 255 on inquiry card. 



DOUBLE DENSITY 



■rs 



■ 




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/M* 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^Morrow makes disk memory for 

Thinker Toys 









Graphic Input of Weather Data 



Stephen P Smith 
106 E Clearview Av 
State College PA 16801 






#.. V''*- 




• 



IP^ 








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



1 6 July 1 979 © BYTE Publications Inc 



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

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

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

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

A second tool, satellite imagery, has 

extended that coverage significantly (see 

figure 2). Geostationary satellites, which 

remain fixed over one point on the earth, 

provide pictures every half hour. Polar 

orbiting satellites, flying much closer to the 

earth, provide more detailed images several 

times a day. A trained meteorologist can 

identify cloud formations in pictures like 

photo 1. Several investigators primarily at 

the National Oceanic and Atmospheric 

Administration (NOAA, pronounced like 

Noah) have developed schemes to estimate 

the rainfall beneath these clouds, (see 

references 1 and 2). 

Text continued on page 20 




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




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



July 1979 © BYTE Publications Inc 1 7 



Wfe Ve worked like mad to 




cook up all your favorites. 



r 



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

California Computer Systems 

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

So Nobody Goes Away Mad, 




r 



A &MI3 



7740 »PL*y f>r *&cfc 8 & i 
: S£ sffSS* 



7470 **>ix 9 * D .. 

to DiQit a ,X°'9i1 Ben a 



■•*»4)d 



*«O.Oo 






! 9/sio,„f c " ra <fefn arf . . . 



• ara "CyCo. 



■Circle 37 on inquiry card. 



20 i 6 ^Wr^^Pare 
ttocta 2m *>*<>c »A%l na a %«. a u 8es $2 *L00 
With an i inf ,°f'J°"ftin al0r 4K 






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




Text continued from page 7 7: 

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

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



ground station reports and radar data as 
a supplement. 

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

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

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

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



20 July 1979 © BYTE Publications Inc 



Circle 285 on inquiry card. 



North Star Announces — 

Double Density x 2 Sides = Quad Capacity! 

The North Star Horizon now delivers quad capacity by using two-sided 
recording on our new mini drives! That's 360,000 bytes per 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, 
that's a bargain that is hard to beat! 

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






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






Horizon-1-32K-Q 

Horlzon-2-32K-Q 

Horizon-1-32K-D 

Horizon-2-32K-D 



$2349 
$2999 
$2099 
$2549 




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

NorthSlar^ 

North Star Computers 

2547 Ninth Street 

Berkeley. CA 94710 

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









Next 
Byte 



I 



Byte 
Received 



Mode 
2 



Mode 
1 



Rate 
4 



Rate 
2 



Rate 
1 



Status 
Valid 



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



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

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



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

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

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



SHUGART SERENADE 



If you want your machine to play, give it quality 

mini magnetic media. And at Verbatim Corporation 

the whole message is quality. 

Would Victor Rorgc kid you? 

For the name of your nearest Verbatim distributor, 

call toll free: (1)800-538-1793. 

In California call: |408| 737-7771. Call collect. 



PEOPLE 

^ «S E •£ fX f*M 

Specity 
Verbatim* 




22 July 1979 © BYTE Publications Inc 



Circle 375 on inquiry card. 




'3. 



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: VM, 1M, 2M, or 4M bytes. The ACS8000 features 
the ultimate in high technology hardware: a fast 4 MHz Z80 
CPU, 64 kilobytes of 16K dynamic RAM, 1 kilobyte of 2708 
EPROM, an AMD 9511 floating point processor, a Western 
Digital floppy disk controller, a Z80 direct memory access, 
Z80 Parallel and Serial I/O (two serial RS232 ports, 1 parallel 
port), and a Z80 CTC Programmable Counter/Timer (real time 
clock). In essence, the best in integrated circuit technology. 



ALTO 

COMPUTER SYSTEMS 



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 

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

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

ACS 8000-4, double density, double-sided [2Mb] $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. 

Circle 6 on inquiry card. 

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



*Z80 is a trademark of Ziiog. Inc. 

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



1 


Status 
(1) 


Byte 
Available 


F3 i 


F2 


F1 


F0 





i 


1 


Data 
(0) 


Byte 
Available 


X6 1 


X4 


X3 


X2 


X1 

I 


XO 

i 


Data 
(0) 


Byte 
Available 


i x "i 


X10 


X9 


X8 


X7 

I 


i x6 i 


Data 
| (0) 


Byte 
Available 


Y5 

I I 


Y4 


Y3 


Y2 


Y1 

I 


i Y ° i 


Data 
(0) 


Byte 
Available 


Y11 

I 


Y10 


Y9 


Y8 


Y7 

i 


i ye i 



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



f START J 



COMPUTER SETS 
"NEXT BYTE" 



NO 




YES 



HAS | 

--I BIT PAD SET | 

I "BYTE available" i 

I J 



COMPUTER 

I) RESETS "NEXT BYTE" 

2) READS DATA 

3)SETS "BYTE RECEIVED" 




I 1 

HAS I 

1 BIT PAD RESET | 

| "BYTE AVAILABLE" | 

] 

I WAS THIS I 

THE FIFTH BYTE | 

I 



f END J 



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



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

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

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

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



24 July 1979 © BYTE Publications Inc 






- . 



* , * I - ■ > \ \ \ 

\ \ \ \ \ 

\ \ \ \ \ 



MEET MINIMAX: 
THE MOST ADVANCED, LEAST EXPENSIVE COMPUTER EVER CREATED. 



Minimax has the largest memory ( 108k internal, 2.4 
megabytes external) and the fastest data transfer rate 
(2 seconds per 30k characters) of any microcomputer 
in the world. 

Minimax also has the most advanced full screen 
data entry and editing capabilities plus the highest 
resolution graphics (240x512). 

The Minimax CPU features 64 user definable opcodes 
and ROM resident software complete with Microsoft 
Basic, DOS operating system, FIFTH language interpreter 
plus a complete machine language monitor with 
Tiny Assembler, Disassembler, Dump Facility and 
Debugging Aid. 

Circle 71 on inquiry card. 



And Minimax has a software library unmatched in 
the industry. 

If all this sounds unbelievable, just check out the 
price; $4495 for the 800 kilobyte Minimax I and $5995 for 
the 2.4 megabyte Minimax II. 

Now that's unbelievable. 

Write or call for complete ordering information today. 
Dealer inquiries invited. 

MINIMAX 

Compu/Think™ 

3260 Alpine Road, Menlo Park, CA 94025 (415) 854-2577 






10 

20 

30 

40 

50 

60 

1000 

1010 

1020 

1030 

1040 

1050 

1060 

1070 

1080 

1090 

1100 

1110 

1120 

1130 

1140 

1150 

1160 

3000 

3010 

3020 

3030 

3040 

3050 

3060 

3070 

3080 

3090 

3100 

3110 

3120 

3130 

3140 

3150 

3160 

3190 

3200 

3210 

3230 

3240 

3250 

3260 

3270 

3280 

3290 

3300 

3310 

4000 

4010 

4020 

4030 

4040 

4050 

4060 

4070 

4080 

4090 

4100 



REM DATA ENTRY ROUTINE USING SUMMAGRAPHICS BIT PAD 

REM WRITTEN IN MICROSOFT 6502 BASIC 

REM STEPHEN P. SMITH, STATE COLLEGE, PA 

DIM D(4),EW(20,20),NS(20,20),M(10) 

P1=63844: REM ADDRESS OF PARALLEL PORT 

REM 

REM GET A POINT FROM THE BIT PAD 



GOSUB 1100: 

IF DK128GOTO 1010: 

FOR 1=1 TO 4: 

GOSUB 1100: 

D(l)=D1-64: 

NEXT I 

X=D(2)*64+D(1): 

Y=D(4)*64+D(3): 

RETURN 

REM HANDSHAKE ROUTINE 

POKE P1, 128: 

WAITPI+2,64,0: 

D1=PEEK(P1+2): 

POKEP1,64: 

WAIT P1 +2,64,64: 

RETURN 

REM SET UP AUTOSCALING 

GOSUB 1000: 

AX=X: AY=Y 

GOSUB 1000: 

BX=X: BY=Y 

REM 

DATA 0,0,30,50: 

READ AG,AH,BG,BH 

S1=SQR((BG-AG)t2+(BH-AH)t2): 

S2=SQR((BX-AX)t2+(BY-AY)t2): 

S=S1/S2: 

T1=ATN((BY-AY)/(BX-AX)): 

T2=ATN((BH-AH)/(BG-AG)): 

DT=T2-T1 : 

DX=AX-(AG*COS(DT)-AH*SIN(DT))/S: 

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

RETURN 

REM 

CONVERT ABSOLUTE X,Y TO GRID COORDINATES 

J IS NUMBER OF ISOHYET 

K IS NUMBER OF THIS POINT 



REM FETCH A BYTE 

REM IS ITTHEFIRSTOF5 

REM IF YES, READ NEXT 4 

REM FETCH A BYTE 

REM STRIP THE HANDSHAKE BIT 

REM FIND THE ABSOLUTE X POSITION 
REM FIND ABSOLUTE Y POSITION 



REM SET "NEXT BYTE" 

REM LOOK FOR "'BYTE AVAIL" SET 

REM READ DATA 

REM RESET "NEXT BYTE", SET "BYTE RCVD" 

REM LOOK FOR "BYTE AVAIL" RESET 



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



REM A & B IN GRID COORDINATES 

REM DISTANCE AB IN GRID SYSTEM 

REM DISTANCE AB IN BIT PAD SYSTEM 

REM SET SCALE FACTOR 

REM ANGLE IN BIT PAD SYSTEM 

REM ANGLE IN GRID SYSTEM 

REM ROTATION ANGLE 

REM X TRANSLATION 

REM Y TRANSLATION 



REM TRANSLATE X 

REM TRANSLATE Y 

REM ROTATE X 

REM ROTATE Y 

REM SCALE X AS EAST-WEST COORDINATE 

REM SCALE Y AS NORTH-SOUTH COORDINATE 



REM 

REM 

REM 

REM 

X=X-DX: 

Y=Y-DY: 

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

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

EW(J,K)=X1*S: 

NS(J,K)=Y1*S: 

RETURN 

REM MENU BOARD ROUTINE 

REM 

DATA 0.,.01 ,.02,.03,.04,.05,.06,.07,.08,.09,.1 

FOR 1=1 TO 10: REM INITIALIZE 10 

READ M(l): REM VALUES FOR MENU 

NEXT I 

GOSUB 1000: REM FETCH AN X,Y POINT 

IF X>2794/20 GOTO 4060: REM USE LEFTMOST 5% OF TABLET 

N=Y/2794*10: REM MENU HAD 10 ELEMENTS 

R=M(N): REM Y POSITION SELECTS ONE 

RETURN 



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



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

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



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

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



26 July 1 979 © BYTE Publications Inc 



"Our inventory is our existence* 

Think we'd trust it to anything less 

than Scoter! Brand Diskettesr 




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

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

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

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

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



If it's worth remembering, 

it's worth Scotch 

Data Recording Products* 



3M 



Circle 368 on inquiry card. 



BYTE July 1979 



27 









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



K : fe 



cos d 
sin d 



- sin d 
cosd 



m 



m 




Would You Like to Participate in a 
Weather Reporting System? 

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



that the first station to be installed was 
called Grumpy. 

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



MENU 




=^==< 


[> 






fj.,0 


2 r / 






□ ■'» 


3 ( 3 \ 

X. 4 

4 ^=*-. m — ^^ 




5 


□ .30 






□ , S o 






□ so 







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



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

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

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



28 July 1979 © BYTE Publications Inc 



Circle 180 on inquiry card. 



ZI.INTRTEC DATA SYSTEMS SUPRBRA1N 



■■" "1 ,; :'■-■■■ ■"■^±, '■ ■■•' ■'■:, ,„ ■ - (^ , <^_ ■■■■ ,^, ■■„., 



TTTT 



7#ie 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. 



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 



= NTERTEC 

Cdata 
s systems, 



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



BYTE July 1979 



29 




EPROMs out at 
the touch of a finger. 

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

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

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

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

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

PB1 2708/2716 Programmer &4k/8k EPROM Board 



Textool 
programming sockets 




Programming 
protect switch v 



LED indicating 
programming mode 



f « j mm 'm 





111111111 



■l 



Programming 
power supply 



4k/8k 
EPROM sockets 



EPROM 
addressing switches 



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

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



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

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

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



REFERENCES 



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

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

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

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



30 July 1 979 © BYTE Publications Inc 



Circle 335 on inquiry card. 



Circle 256 on inquiry card. 



S-100 I/O INTERFACE 




4P+2S+Strobe+Attention+RAH+fPROM=S19B 



Introducing TheSwitchBoard™ I/O Interface, 
the most complete interface available for S-100 
systems. . .designed by George Morrow exclusively 
forThinkerToys™. 

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

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

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



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

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

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

^Sockets provided; chip set optional. 

^y A product of Morrow's Microstuff for 

Thinker Toys 



CAST A SPELL 



t 



K 






7 



Urn 



t f # t t t i i t f f f I 



3S 




If you've written software 
in Altair Basic, you've written 
spells" for the Exidy Sorcerer. 

Now, make it pay off! 




There's never enough software. 

Particularly good software. 

That's why Exidy is sponsor- 
ing a software contest where 
nobody loses. 

Altair programs run on Sorcerer 

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



WIN THIS EXIDY SORCERER. 



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

Test-run your entry free. 

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

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



RULES: 

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

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

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

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

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



Circle 133 on inquiry card. 



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

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

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

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




EXIDY, INC. 

969 W. Maude Ave. 
Sunnyvale, CA 94086 



inc. 



Gentlemen: 

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



NAME 



AnnpFciq 


TTTY 


STATF 


7FP 


DAYTTMF PHOMP 


TTTTF DFPRnr.RAM 


CATEGORY □ Business 
□ Education 

SIGNATURE 


□ Fun & Games 

□ Home/Personal Management 

PATF 




Copyright 1979, Exidy, Inc. 







Bispcis's 
Circuit 

Qellsp 



Sound Off 



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



Steve Ciarcia 

POB 582 

Glastonbury CT 06033 



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

A second technique for sound synthesis is 
to use an analog approach. The computer 




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



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

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

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

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

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



34 July 1979 © BYTE Publications Inc 



+ 5 TO 12V 



VOLTAGE CONTROLLED 
OSCILLATOR AND PITCH- 
CONTROLS 



NOISE CLOCK AND 
FILTER CONTROLS 



ONE SHOT AND 
INHIBIT CONTROL 



SN 76477 



VOLTAGE CONTROLLED 
AND SUPER LOW 
FREQUENCY 
OSCILLATORS 




ENVELOPE SELECT 1 

GROUND 

EXTERNAL NOISE CLOCK 

NOISE CLOCK RESISTOR 

NOISE FILTER CONT. RESISTOR 

NOISE FILTER CONT. CAPACITOR 

DECAY CONTROL RESISTOR 

ATTACK/DECAY TIMING CAP 

SYSTEM INHIBIT 

ATTACK CONTROL RESISTOR 

AMPLITUDE CONTROL RESISTOR 

FEEDBACK RESISTOR 

AUDIO OUTPUT 

V CC 




VOLTAGE 
REGULATOR 



MIXER 



ENVELOPE 
GENERATOR AND 
MODULATOR 



AMPLIFIER * 



MIXER 

SELECT CONTROL 



ATTACK AND 
"DECAY CONTROLS 



■VOLUME CONTROL 



AUDIO 
OUTPUT 



ENVELOPE SELECT 2 
3^ MIXER SELECT C 
3 27 MIXER SELECT A 

■ ze' 

^23 — 

^22 VCO SELECT 

D2I SLF OSC. CONT. CAPACITOR 

I]20 SLF OSC. CONT. RESISTOR 

HI9 

Die 

Dl7 

Hl6 



Figure 7 : Functional block 
diagram and pin descrip- 
tion of Texas Instruments 
SN76477 complex sound 
generator. 



MIXER SELECT B 

ONE SHOT CONT. RESISTOR 

ONE SHOT CONT. CAPACITOR 



PITCH CONTROL 

VCO CONTROL RESISTOR 

VCO CONTROL CAPACITOR 



"115 EXTERNAL VCO CONTROL 

reg 






synthesis: VCO (voltage controlled oscil- 
lators), mixers, envelope generators, noise 
generators, etc. The Texas Instruments unit 
is specifically designed to be used independ- 
ently with sound defined through compon- 
ent selection. The General Instrument unit 
is bus oriented and attaches to a micropro- 
cessor. Both produce sound, but their inter- 
faces are quite different. 



The SN76477 Complex Sound Generator 

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






July 1 979 © BYTE Publications Inc 35 



SUPER LOW FREQUENCY OSCILLATOR 



SUPER LOW FREQUENCY 

OSCILLATOR CONTROL 

RESISTOR 



SUPER LOW FREQUENCY 

OSCILLATOR CONTROL 

CAPACITOR 



2A) 



Figure 2: The SLF (super 
low frequency) and VCO 
(voltage controlled oscil- 
lator) sections of the 
Texas Instruments SN- 
764 77 complex sound gen- 
erator. The desired fre- 
quency is selected by 
adjusting the resistor and 
capacitor circuits. The fre- 
quency is determined by 
the following formulas: 
super low frequency = 




0.64/R 



SLF 



x C 



SLF 



and 



voltage controlled oscil- 
lator=0.64/R VC QX C vco . 



Figure 4: Outputs of the 
super low frequency oscil- 
lator, voltage controlled 
oscillator, and noise gener- 
ator are digitally selected. 
The control table indi- 
cates the output produced 
for any particular input 



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



EXTERNAL NOISE 
CLOCK 



O EXTERNAL 
NOISE 
CLOCK 



VOLTAGE CONTROLLED OSCILLATOR 



VOLTAGE CONTROLLED 

OSCILLATOR CONTROL 

RESISTOR 



VOLTAGE CONTROLLED 

OSCILLATOR CONTROL 

CAPACITOR 



EXTERNAL VOLTAGE 

CONTROLLED OSCILLATOR 

CONTROL 



PITCH CONTROL 



2BJ 




O EXTERNAL 
I 



J INPUT 



19 



^^ PITCH 



CONTROL 



Oscillators 

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

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



NOISE CLOCK 
RESISTOR 



NOISE FILTER 
CONTROL RESISTOR 



NOISE FILTER 
CONTROL CAPACITOR 




m 



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

Noise Generator and Filter 

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

The noise generator output is sent to 
the mixer. 

The Mixer and Envelope Selection 

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



SUPER LOW 
FREQUENCY — 
OSCILLATOR 

VOLTAGE 
CONTROLLED - 
OSCILLATOR 



NOISE- 



INHIBIT- 



y y y 

I 27 [25 | 26 



MIXER 

SELECT 

C 



MIXER 

SELECT 

B 



MIXER 



MIXER 

SELECT 

A 



, OUT TO MODULATOR 
AND AMPLIFIER 



Mixer Select Inputs 


Mixer 


C 


B 


A 


(Pin 27) 


(Pin 25) 


(Pin 26) 


Output 


L 


L 


L 


VCO 


L 


L 


H 


SLF 


L 


H 


L 


NOISE 


L 


H 


H 


VCO/NOISE 


H 


L 


L 


SLF/NOISE 


H 


L 


H 


SLF/VCO/NOISE 


H 


H 


L 


SLF/VCO 


H 


H 


H 


INHIBIT 



H = high level 

L = low level or open 



36 July 1979 © BYTE Publications Inc 



Turning computer programmers 

into computer 
composers! 



^liiiivsL^ 



The BYTE Book of 




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



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

The articles range from flights of fancy about the reproductive 

systems of pianos to Fast Fourier transform programs 

written in BASIC and 6800 machine language. Included in 

this fascinating book, edited by Christopher P. Morgan, 

are articles discussing four-part melodies, a practical music 

interface tutorial, electronic organ chips, and a remarkable 

program that creates random music based on land terrain maps! 



ISBN 0-931718-11-2 



$1000 



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

Add 60C per book for postage and handling 




BUI 

BOOKS 




"BOOKS OF INTEREST TO COMPUTER PEOPLE" 



70 Main Street Peterborough, New Hampshire 03458 



Circle 36 on inquiry card. 



BYTE July 1979 37 



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

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

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

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

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



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

Manual Sound Synthesizer 

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



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



5n 












MIXER OUTPUT 














SUPER LOW 
FREQUENCY 
OSCILLATOR 




VOLTAGE 

CONTROLl 

OSCILLAT 


r D ► nnnn i — i nnnnminnn r 




■ E R JU U u U U UUIUUlJ u 



5b 




l_ 


JUU 










, r 


MIXER 

turn 




J 


~ l^t~ 




UlfUUIUUlL 


OUTPUT 


SUPER LOW 
FREQUENCY 
OSCILLATOR 






NOISE - 




_J1M1L 










J 














5c j_ 








Ml 


mm 


11 




MIX 
— fll 


ER OUTPUT 


VOLTAGE 

CONTROLLED 

OSCILLATOR 






NOISE 




jiniuiL 












^JUIL 














5d 


_ 




l_ 






1 


MIXER 

Ti nnr 
i [ i n 




j 


jpiWHIIllI 


OUTPUT 




INHIBIT 
ONE SHOT 










[i f;f ] ! 














i 



38 July 1 979 © BYTE Publications Inc 



:y\€- 



t*<e>* 



CO' 



AAVV 



^ 



«**•* 



A^'^ 



><*< 









*© 



^ *-~ o^ 



co<r^YH 






"*.<=■* 



o« 



/Vn° 



Vi>0^> 



.^»« 



o^ 






c^ ° 



©* 



t\* 



,o° 



^' 



LT^ 



o^-' 



•*< 






<** 






A ^ A<3* 

***** l*°* ^ /•** ^ r 



v^ 



x* r 



^S* 






*<^ 



J.VA« 






Xi<* C 






6<> 



go 6 






^v 



OCN 



v/^ 



*v 







\>'- V 



v o* v 



\^ 






o« 



$ o& 






w aC 



o» 



5* 



This exceptional print quality for $560! 

The new Comprint model 912 printer for computers and terminals: 



■ Fast — 225 characters/second (170 Ipm) 

■ 80 character lines on 8V2" wide paper 

■ Quiet, non-impact operation 

■ 6 month warranty 

Available now at computer stores and industrial distributors. 



CMippH- 




Computer Printers International, Inc. 340 E. Middlefield Rd., Mt. View, CA 94043 • 415 969-6161 
Circle 48 on inquiry card. 



BYTEJuly1979 39 



Figure 6: The envelope 
selection (table) is deter- 
mined by envelope select 7 
and envelope select 2 (pins 
1 and 28) as shown in the 
table. The attack and 
decay timing is determined 

ty R 0S> C 0S> R D> c > and 



TYPICAL 



I 

K ^Hlllk: 



ATTAC 



DECAY 



H = high level 

L = low level or open 



NE J 




SHOT 



ATTACK 

AND 

DECAY 



Envelope Select 


Function Selected 


1 2 
(Pin1) (Pin 28) 


L L 
L H 
H L 
H H 


VCO 

Mixer only 

One shot 

VCO with alternating cycles 



23 



10 



Ros 

COS 



M D 



-fr 



m 



ONE SHOT -• B (Rqs^Cqs) 



DECAY TIME ~ (R n )(C) 



ATTACK TIME ~ (R A )lC) 



+ 5V 

6 



► IOOK 



DISCHARGE 



IC 2 
NE555 



THRESHOLD 
TRIGGER 



; 220pF 



PUSH 

BUTTON 

NORMALLY 

OPEN 



OOl 



rh 



Number 


Type 


+5 V 


GND 


IC1 
IC2 


SN76477 
NE555 


15 

8 


2 
1 



26 



O.I 

-}| 2J 



l00 * "% 20 

^wv -vy\ 



5V 



23 



19 



ENVELOPE SELECT 2 
MIXER SELECT C 



IC I 
SN76477 



PITCH CONTROL 

ENVELOPE 
SELECT 



MIXER SELECT A 



MIXER SELECT B 



SUPER LOW FREQUENCY 
OSCILLATOR CONTROL 
CAPACITOR 



SUPER LOW FREQUENCY 
OSCILLATOR CONTROL 
RESISTOR 



VOLTAGE CONTROLLED 
OSCILLATOR CONTROL 
RESISTOR 



VOLTAGE CONTROLLED 
OSCILLATOR CONTROL 
CAPACTTOR 



EXTERNAL 
NOISE CLOCK 



NOISE CLOCK 
RESISTOR 



NOISE FILTER 

CONTROL 

RESISTOR 



NOISE FILTER 

CONTROL 

CAPACITOR 



SYSTEM 
INH1BI T 



ATTACK 

CONTROL 

RESISTOR 



EXTERNAL VOLTAGE 
CONTROLLED OSCILLATOR 
CONTROL 



AMPLITUDE 

CONTROL 

RESISTOR 



FEEDBACK AUDIO 
RESISTOR OUTPUT 



39K 
-a/v* — 



47K 
^vw— 



390pF 



-31- 



IOOK 




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



40 July 1 979 © BYTE Publications Inc 



■ ™ 

The Computer Cookbook. 





Fast Becoming the Reference Standard 



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

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

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



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

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

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



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

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



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



Name 



Company /Street 

City State Zip , 

( ) Mastercharge: Interbank No: Card No: 

( ) Visa BOTH: Expiration date: / 

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

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

Circle 52 on inquiry card. byte j u i y 1979 41 







I/O Port Bit Assignment 






Port 8 
Port 9 
Port 10 


BitO 1 

Envelope Select 1 Inhibit 


2 

Envelope Select 2 


3 4 

Mixer C Mixer A 


5 

Mixer B 


6 

VCO Select 


7 
External VCO Select 


Noise Filter Capacitor 


Attack/Decay Capacitor 


unused 


SLF Capacitor 


'l50pF 0.001 /LtF 


0.01 IXF ' 


'o.1)UF 1.0/UF 


4.7 /iF ' 


*0.1 jUF 


SLF Capacitor 


VCO Resistor 

1 


VCO 


Capacitor 

i 


0.47 jUF 1 .0 JUF ' 


'lOkfl 


100 k£2 1M£2' 


1 0.005 fJF 


0.05 /iF 


0.47 JUF l 

















Sound Effect 
Desired 




Hexadecimal 
Value Sent to 
Output Port 






Port 8 


Port 9 


Port 10 


Train 


32 


80 


80 


Phaser 


B6 


10 


54 


Siren 


82 


00 


62 



Table 1: Designation of I/O (input/output) port assignments and associated component choices in the interface for the Texas 

Instruments SN 76477 sound generator. 

Text continued from page 38: 
controlled oscillator only position approxi- 
mately half the time. The voltage controlled 
oscillator is programmed to produce a 
whistle. Sufficient power to drive a speaker 
is facilitated by a two transistor complemen- 
tary amplifier attached to pins 1 2 and 1 3. 

Build a Computer Programmable 
Sound Generator Interface 

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

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

A More Sophisticated Programmable 
Sound Generator 

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



Table 2: Values which are sent to the output ports connected to the SN- 
76477 interface to produce the indicated sound effects. 



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




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



,^. ......... 



"11 : 




42 July 1979 © BYTE Publications Inc 




Q 










2 


CN 


r^ 


r^» 


r> r^ 


O 










> 


If) 


^r 


<* 


r* ^r 


ld 










+ 












r^ 










r^ 








03 


<tf 








a 


CD 


CD 


CD 


CD CD 


> 


r^- 


CO 


CO 


CD CD 


h- 


^ 


o 


O 


O O 




c/d 


<3- 


<3" 


<d- ^r 


1- 










03 










E 


«— 


CM 


CO 


<tf LD 


O 


O 


o 


o o 


z 











^3 

o 



I 

$ 

$ 

£ 



^ 






§ 






S 

<3 



! 



ex 









o 

O 

en 

o 



o 




u 






^ 


\> 


*o 


vo 


+i 




^ 
^ 




Q) 


CD 


V, 


•C- 


^ 


K 


£ 




a 


00 


•$5 


Q> 


<^ 


V, 


^ 


^ 


v. 


•^ 


^ 


k. 


^ 



July 1 979 © BYTE Publications Inc 43 



Figure 9a: Functional 
block diagram of the 
General Instrument A Y- 
3-8910 programmable 
sound generator. The de- 
vice is made by General 
Instrument Corp, Micro- 
electronics Division, 600 
W John St, Hickwille NY 
11802. 



_ BDIR, 

AB, A9 BC2.BCI DA0-DA7 



INPUT LOGIC AND BUS CONTROL 



REGISTER 
DECODE 



I/O 
PORT A 



I 



IOA0-IOA7 

^ 



16 READ/WRITE 
CONTROL 
REGISTERS 
(SEE TABLE) 



I/O 
PORT B 



IOB0-IOB7 

J 



PARALLEL I/O 



AY-3-B9I0 



NOISE 
GENERATOR 



TONE 

GENERATOR 

(3) 



AMP 
CONTROL 



ENVELOPE 
GENERATOR 



MIXERS (3) 



4 BIT 

DIGITAL TO 
ANALOG 
CONVERTERS (3) 






I 



V ? ! ' 

ABC 
ANALOG OUTPUTS 



Figure 9b: Map of the con- 
trol registers of the A Y-3- 
8910. 



^^*-»*^ < ^^ BIT 
REGISTER ^ - — ^^ 


B7 


B6 


B5 


B4 


B3 


B2 


Bl 


BO 


RO 


CHANNEL A TONE PERIOD 


8 BIT FINE TUNE A 


Rl 


'///////////////. « - CO*.,E TUNE * 


R2 


CHANNEL B TONE PERIOD 


BBITFINE TUNE B 


R3 


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


4 BIT COARSE TUNE B 


R4 


CHANNEL C TONE PERIOD 


8 BIT FINE TUNE C 


R5 


'//////////////A « - c °— ™ne C 


R6 


NOISE PERIOD 


V////////// 


5 BIT PERIOD CONTROL 


R7 




IN /OUT 


NOISE 


TONE 


ENABLE 


IOB IOA 


C 


B 


A 


C 


B 


A 


RIO 


CHANNEL A AMPLITUDE 


'/////////// 


M 


L3 


L2 


LI 


LO 


Rll 


CHANNEL B AMPLITUDE 


y/////////// 


M 


L3 


L2 


LI 


LO 


RI2 


CHANNEL C AMPLITUDE 


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


M 


L3 


L2 


LI 


LO 


RI3 


ENVELOPE PERIOD 


8 BIT FINE TUNE E 


RI4 


8 BIT COARSE TUNE E 


RI5 


ENVELOPE SHAPE /CYCLE 


V/////////////A COET ATT ALT 


HOLD 


RI6 


I/O PORT A DATA STORE 


8 BIT PARALLEL I/O ON PORT A 


RI7 


I/O PORT B DATA STORE 


, 8 BIT PARALLEL I/O PORT B 



44 July 1 979 © BYTE Publications Inc 






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



TOP VIEW 



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

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

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

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

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

The timing of BC1 and BDIR control 

lines are shown in figure 12. Data transfer is 

carried out by strobing these lines, while the 

Text continued on page 48 



VSS (GND) 


CZ 


• 1 


NC 


d 


2 


ANALOG CHANNEL B 


q 


3 


ANALOG CHANNEL A 


cz 


4 


NC 


cz 


5 


IOB7 


cz 


6 


I0B6 


cz 


7 


IOB5 


cz 


B 


10B4 


cz 





I0B3 


cz 


10 


IOB2 


cz 


II 


10BI 


vz 


12 


XOBO 


cz 


13 


10A7 


cz 


14 


10A6 


cz 


15 


IOA5 


cz 


16 


L0A4 


cz: 


17 


I0A3 


rz: 


IB 


I0A2 


cz 


19 


I0AI 


czt 


20 



40 ZZ3 


VCC(+5V) 


39 


ZZi 


TEST 1 


38 


Z3 


ANALOG CHANNEL C 


37 


=3 


DAO 


36 


=3 


DAI 


35 


ZZ 


DA2 


34 


ZD 


DA3 


33 


Z3 


DA4 


32 


Z3 


DA5 


31 


Z3 


DAS 


30 


ZZ 


DA7 


29 


zz 


BCI 


26 


r;j 


BC2 


27 


ZZ 


BDIR 


26 


ZJ 


TEST 2 


25 


ZZ1 


A8 


24 


-a 


A9 


23 


RESET 


22 


ZZ 


CLOCK 


21 


ZZI 


10A0 



Whistling Bomb Sound Effect 

Hexadecimal 
Register Number Load Value 



Explanation 



Any not specified 


00 


R7 


3E 


R10 


OF 


RO 


30 (start) 


RO 


CO (end) 


R6 


OF 


R7 


07 


R10 


ion 


R11 


10 L 


R12 


10-1 


R14 


10 


R15 


00 



Phaser Sound Effect 



Register Number 


Hexadecimal 
Load Value 


Any not specified 
R7 
R10 


00 
3E 
OF 


RO 
RO 


30 (start) 
70 (end) 



R10 



00 



Enable tone only on channel A only. 

Select maximum amplitude on channel A. 
r Sweep effect for channel A tone period via 
J a processor loop with approximately 25 ms 
| wait time between each step from 30 to CO 
L (0.429 ms/2330 Hz to 1 .72 ms/582 Hz). 

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

Select full amplitude range under direct 
control of envelope generator. 

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



Explanation 



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

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



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



July 1 979 © BYTE Publications Inc 45 



Figure 10: Typical micro- 
processor to programmable 
sound generator interface. 



MICROPROCESSOR 



BUS 
CONTROL < 



ADDRESS < 
AND DATA 
BUS 



CLOCK- 



22 



RESET 23 



BCI 29 



BC2 28 



BDIR 27 



30 



DAO- DA7 



J 



37 
A8 25 



A9 24 



AY-3-8910 
CLOCK 



ANALOG 



RESET CHANNEL A 



ANALOG 
BCI CHANNEL B 



ANALOG 
BC2 CHANNEL C 



BDIR 



DAO- DA7 



A8 
A9 



4 ANALOG A 




fl4 

21 



PORT A 



PORT B 



8 BITS 8 BITS 
v J 

PARALLEL I/O 



SPEAKER 



CLOCK GENERATION 



EITHER 
CLOCK TO 
MICRO 



<D 



1.7897725MHz 



COMPUTER ^ <C r 



3.579545MHz 
CRYSTAL 



0.8948863MHz 



I — llh 



I0M 



1 — T — l 



>300& 
3 I 



fXoi-1 4>>o^ 



ICI 
CD4069 




12 



Q2 DATA2 Q2 

Ql 

CLOCK 2 

RESET I 

4013 

SET I 

SET 2 
Ql DATA I RESET 2 



10 




PROGRAMMABLE 

SOUND 

GENERATOR 



CL 



^ 



1.7897725 MHz 
CLOCK TO PSG 



Figure 1 la: A simple clock 
generator which can be 
used as a clock for the 
processor and the pro- 
grammable sound gener- 
ator. 



rh 



PROGRAMMABLE 

SOUND 

GENERATOR 



SUfh?,5. AUDIO OUTPUT INTERFACE 

CHANNEL 
OUTPUTS 



ft? 



5V 
A 



10/iF 



JT 



O.I/iF 



r^h* 



Number 


Type 


+5 V 


GND 


IC1 


CD4069 


14 


7 


IC2 


4013 


14 


7 


IC3 


LM386 


6 


4 




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



46 July 1979 © BYTE Publications Inc 



Circle 151 on inquiry card. 



'smi 



BEAT 

THE 

HOUSE 




mjSGSSSBGBw 
r ATTACK !\ 





vM 



OUTWTTi 

nflBI 



X 



II1HOI 



mm 




i 






A 







aasvcl 







AT YOUR COMPUTER RETAILER NOW 




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

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

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

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

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

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



Consumer 
1 286 North 



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

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



THE REASON 

YOU BOUGHT 
YOUR COMPUTER. 



BYTE July 1979 



BDIR 



1 
1 



BC2 

1 
1 
1 
1 



BC1 


1 


1 



Function 

Inactive 
Read from PSG 
Write to PSG 
Latch Address 



CP1600 

Function 

Abbreviation 

NACT 

DTB 

DWS 

INTAK 



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



SET PROGRAMMABLE SOUND GENERATOR REGISTER ADDRESS 



BDIR 



BCI 



J V 
J V 



CONTROL NACT Y//\ INTAK \//A NACT 



DA7--DA0 



FLOAT 



X OUTPUT Y 

ADDRESS A 



FLOAT 



WRITE DATA TO PROGRAMMABLE SOUND GENERATOR OR I/O PORT 



BDIR 



BCI 



BUS 
CONTROL 



\ 



NACT 



VZA 



DWS 



WA 



NACT 



DA7--DA0 FLOAT 



X 



OUTPUT DATA 
(TO PSG) 



T 



FLOAT 



READ DATA FROM PROGRAMMABLE SOUND GENERATOR OR I/O PORT 



BDIR 



BCI 



r 



\ 



CONTROL 



BUS NACT Y//\ DTB 



W& 



NACT 



DA7--DA0 FLOAT 



X INPUT DATA \j 

(FROM PSG) I\ 



FLOAT 



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

Tone Select 

The registers are divided into six cate- 
gories, and numbered in base eight: 



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



R thru R 5 

R 7 

R 10 thru R-| 2 
R 13 thru R 15 
R 16 and R 17 . 



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

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

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

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



Figure 12: Programmable sound generator bus timing logic. 



Number 


Type 


+5 V 


GND 


IC1 


7485 


16 


8 


IC2 


7485 


16 


8 


IC3 


7404 


14 


7 


IC4 


7402 


14 


7 


IC5 


7400 


14 


7 


IC6 


7400 


14 


7 


IC7 


74148 


16 


8 


IC8 


74LS367 


16 


8 


IC9 


74LS367 


16 


8 


IC10 


74LS367 


16 


8 


IC11 


74LS367 


16 


8 


IC12. 


AY3-8910 


40 


1 



48 July 1 979 © BYTE Publications Inc 



r^h 



^o<<K 




6 



o 



s o- 



o- 



o- 



o 



^ 



3 
fO O 

< m 



O - - - O 

< m CO CO CO 



3 O 



O- 



-^0- 



fO O O O ro 

4:1 m co m m 

ii V A 

< < <t 



< cQ CD CD CO 

m V A 
< < < 



v»- 



5 * 

en cvj 
V\^ 



v— H 



o UJ 

O 5 

I- < 





O 

o 



5Y 



4 



■^ 



re 




r 




^F 






^1^ ( 



£> 






rii > — 



-<ZI ov 



-<3] UMd 



<^J dNIS 



-<CD inos 

-<Z2 NIBQd 



HZ>^ia 



-O^oa 



-O 9ia 

-O90Q 



-O sia 



^C]soa 



-O na 



-<CJt>oa 



HO cia 



-<ncoa 



— C> zia 
<^P^ <Zlsoa 



GO 

— <^F O "oa 



-Ooia 



Figure 13: The AY-3-8910 can be connected to the S-100 bus. SWJ thru SW6 define the starting address of the 16 control 
registers. The power pin assignment is shown in the table at left 



July 1979 © BYTE Publications Inc 49 






LATCH ADDRESS ROUTINE 

PORTADDR EQU 80H ; ADDRESS TRANSFER PORT ADDRESS 
PORTDATA EQU 81 H ; DATA TRANSFER PORT ADDRESS 

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

OUT PORTBAR ; SEND TO ADDRESS PORT 

RET 



WRITE DATA ROUTINE 

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

PSGWRITE CALL PSGBAR ; GET ADDRESS LATCHED 

MOV A,B ; GET VALUE IN A FOR TRANSFER 

OUT PORTDATA ; PUT TO PSG REGISTER 
RET 



READ DATA ROUTINE 

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

PSGREAD CALL PSGBAR 

IN PORTDATA ; GET REGISTER DATA 

MOV B,A GET IN TRANSFER REGISTER 
RET 



Listing 1: Routines written for the 8080 microprocessor to operate the AY- 
3-891 programmable sound generator. 



latch address routine 

; at entry, b has address value 

Latch clra 

staa8005 ;getd dir a 

LDAA#FF 

STAA 8004 ; OUTPUTS 

LDAA #4 

STAA 8005 ; GET PERIPHERAL A 

STAB 8004 ; FORM ADDR 

STAA 8006 

CLRA 

STAA 8006 ; LATCH ADDRESS 

RTS ; RETURN 

WRITE DATA ROUTINE 

; AT ENTRY, B HAD DATA VALUE 

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

STAA 8006 ; WR ITE DATA 
RTS ; RETURN 

READ DATA ROUTINE 

; AFTER READ, B HAS READ DATA 

READ STA A 8005 ; GET D DIR 
STAA 8004 ; INPUTS 
LDAA #4 

STA A 8005 ; GET PERIPHERAL 
DECA 

STA A 8006 ; READ MODE 
LDA B 8004 ; READ DATA 
CLRA 

STA A 8006 ; REMOVE READ MODE 
RTS ; RETURN 



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



M6800 



A 



PIA/ 
MC682I 



PAO 
PAI 
PA2 
PA 3 
PA4 
PA5 
PA6 
PA7 

PBO 
PBI 
PB2 



2 


37 


3 


36 


4 


35 


5 


34 


6 


33 


7 


32 


8 


31 


9 


30 


10 


29 


II 


28 


12 


27 




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



I— < <f~| ANALOG A 
<^| ANALOG B 
<C~] ANA L0G C 



50 July 1979 © BYTE Publications Inc 



Text continued from page 48: 

Reading and writing from it is as 
illustrated. 

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

In Conclusion 

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

Circuit diagrams and draw- 
ings pertaining to the 
AY-3-891 were provided 
courtesy of General Instru- 
ment Corp. 



Come Help Us 
Celebrate The Child 

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



ST. JUDE CHILDREN'S RESEARCH HOSPITAL 

Danny Thomas, founds 



ATTENTION CREATIVE 

ELECTRONIC ENGINEERS, 
MICROCOMPUTER 
PROGRAMMERS 
AND 
TECHNICIANS 




SIMON SAYS: 



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

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

Senior Electronic Product Engineers 

Qualified candidates will have a minimum of ten years electronic 
consumer product experience with a BSEE degree or the equiva- 
lent thereof. 

Electronic Product Engineers 

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

Software Engineers/ 
Microcomputer Programmers 

3 to 5 years experience in microcomputer programming and know- 
ledge of microcomputer assembly languages is required. 

Electronic Technicians 

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



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

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

Please send resume and salary requirements in confidence to: 



MB 



MILTON 
BRADLEY 



Director of Corporate Personnel Administration 

Milton Bradley Company 

P.O. Box 3400 - Springfield, MA. 01 101 

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






Programming Cuickies 



Apple Kaleidoscope 



Robert J Bishop 
213 Jason Way 
Mountain View CA 94043 




Photo 1: Typical output of the Kaleido- 
scope program. 



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

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

The program was written using Micro- 
products Editor/Assembler program for 
the Apple III 



KALEIDOSCOPE 



0869 4CA508 



0883 18 

0884 A914 

0888 6518 
0886 R8 

0889 A914 
0888 6511 
0880 2088F8 



8818 

8828 

8838 

8848 

8858 

8888 

8878 DRAW CLC 

8888 



JMP STAR 
PLOT <28+X,28+V> 



8898 



8118 
8128 
8130 
8140 
8150 



LDfl 14 
ADC *X 
TflV 
LDfl 14 
flOC *V 
JSR PLOT 

PLOT (28-X,28+Y) 



3818 
0811 
0813 
0815 
0816 



0819 
0818 
081C 
081E 
081f 
0821 
0823 



0826 
0827 
0829 
0828 
082C 



082F 
0838 
0832 
0834 
0835 
0836 
0838 
0838 



0830 
083E 
0848 
0842 
0843 



8846 
0847 
0849 
0848 
084C 
084D 
084F 
0851 



0854 
0855 
0857 
0859 
0858 
083) 



38 
A914 

E518 

08 

288EF8 



18 

8914 

6511 

88 

8914 

6518 

2860F8 



38 
0914 

E511 

fl8 

288EF8 



18 

8914 

6518 

88 

38 

0914 

E511 

2880F8 



38 

A914 

E518 

A8 

288EF8 



18 

0914 

6511 

08 

38 

0914 

E518 

2888F8 



38 

0914 

E511 

08 

268EF8 

69 



8168 
8178 
8188 
8190 
8268 
8218 
8228 
8238 
8240 
8250 
8260 
8279 
8288 
8298 
830P 
6310 
8329 
8338 
8340 
8350 
8366 
8378 
8380 
8396 
0488 
8410 
8420 
8430 
0440 
0450 
8468 
0470 
8480 
6490 
05RR 
6510 
8520 
6530 
8540 
8550 
8560 
8578 
8588 
8598 
6600 
8610 
8628 
8630 
8640 
6650 
8660 
8678 
6680 



8788 

8710 
8720 
0738 
8740 
8750 
8768 
8770 
8788 
8798 
8888 
8810 
8620 



SEC 

LD0 14 
SBC *X 
TOY 
JSR PL.T1 

PLOT (28+V/20+X) 

CLC 

LDfl 14 
0DC *V 
TflV 

LC-fl 14 
OOC *X 
JSR PLOT 

PLOT (28-V, 28+X) 

SEC 
LOfl 14 

sec *v 

TflV 

JSR PLT1 

PLOT (284&28-V) 

CLC 

LDfl 14 
ADC *X 
TflV 
SEC 

LDfl 14 
SBC *V 
JSR PLOT 

PLOT (28-X/28-V) 

SEC 

LDfl 14 
SBC *X 
TflV 
JSR PLT1 

PLOT (28+V.28-X) 

CLC 

LDfl 14 
ADC *Y 
TAV 
SEC 

LOfl 14 
58C *X 
JSR PLOT 

PLOT <28-V,28-X) 

SEC 

LDfl 14 

S8C *Y 

TflV 

JSR PLT1 

RTS 

X DL 8016 

V DL 0611 

Z DL 0812 

PLOT DL F888 



52 July 1979 © BYTE Publications Inc 






085E 
085F 
9861 
0861 
8867 
0869 
086C 
0861" 
0871 



0872 
0874 
0877 
087S 
087B 
087E 
08% 
0882 
0885 
0888 
0889 
0888 
088f 
08* 
0892 
0893 
0895 
0897 
0899 



0890 
089E 
08% 

08fi2 
08fM 



08fl5 



08* 
08flD 
0888 
0882 
0884 
0866 
0868 
08Bfl 



0880 
086f 
08C1 
08CS 
08C5 
08C7 
08C8 
08CC 

08W 

0802 



E8 

D88C- 

EE7B08 

AD7888 

09E6 

8D79MR 

E615 

BDB8E0 

68 



H518 

2889118 

8518 

fiSll 

2689* 

85ii 

A512 

2864F8 

288388 

68 

858F 

285E88 

1862 

E68F 

6fl 

9682 

C66F 

A56F 



0913 

68 

C914 

D682 

fiSB9 

68 



2832F8 

R988 

8D50C8 

8D52C8 

8513 

8514 

8515 

8516 

851? 

flfi 

A513 

8518 

R514 

8511 

A515 

8512 

297288 

A516 

8513 

R511 

8514 

8516 



8838 
8848 
8856 
6866 
6876 
8888 
0896 
8908 
6916 
8926 
0926 
iWi 
0956 
0966 
097fi 
0986 
0996 

1016 
182* 
1836 
1046 
1656 
1866 
1876 
1886 
1896 
1166 
1116 
1126 
1136 
11-16 
1156 
1166 
1176 
1186 
119R 
1286 
1216 
1226 
1236 
1246 
1256 
1268 
1276 
1286 
1298 
1386 
1316 
1328 
1336 
1346 
1358 
1368 
1370 
1386 
1398 
I486 
1418 
1426 
1438 
144ft 
14-% 
1466 
14?fc 
1480 
1496 



PLT1 . DL F88E 

■RANDOM" NUMBERS 

RND INX 

BNE GRRB 
INC GRflE+82 
LDfl GRFlP+82 
ORfi 6E8 
STfi GRflB-tg? 

GRAB LDfi EfiSE.. X 
RTS 

HflIN SUBROUTINE 



08M 
0806 



GUTS LOR 
JSR 
STfi 
LOfi 
JSR 
STfi 
LDfl 
JSR 
JSR 
RTS" 

STEP STfi 
JSR 
BPl 
INC 

CONT ROR 
BCC 
DEC 

TEST LDfi 
BPL 
LDfl 
RTS 
CMP 
BNE 
LDfl 

EXIT RTS 

mori;: . OL 



CMP 



*X 

STEP 
*X 

*v 

STEP 

*V 

*2 

SETC: 

DRflW 

♦WORK 
RND 
CONT 
•NORK 

TEST 

*MORK 

♦WORK 

CMP 

13 

14 

EXIT 

89 

888F 



WIN PROGRAM 



STAR JSR: 
LDfl 
STfi 
STfi 
STfi 
STfi 
STlfl 
STfi 
STfi 
TAX 

LOOP LDfl 
STfi 
LDfl 
STfi 
LDfi 
STfi 
JSR 
LDfl 
STfi 
LDfl 
STfi 
LDfl 



GR 
86 
*C858 



*XX 
*VY 
*ZZ 
*XXX 

*wv 

*xx 
*x 

*w 
*v 

*?z 
*z 

GUTS 
*X 

*xx 
*v 

*vv 
*xxx 



08DH 
08DC 

escf 

08E1 
08O 
08E5 
08E7 
08E9 
08EC 
08EF 
08F8 
88F? 
68F6 
08F8 
QHFP, 
08FD 



8516 
H51? 

8511 

8988 

8512 

287268 

R519 

8516 

851:1 

851? 

HD08C8 

16CD 

H90W 

8D18C0 

flD00C6 

18FB 

RSBft 

8MJ9C8 

fw: 



1566 
1518 
1526 
1556 
1546 
1556 
IV® 
1576 
1586 
1596 
1686 
1636 
1626 
1636 
164 6 
165.6 
1666 
1676 
1686 
1698 
1786 
1716 
1728 
1736 
1748 
1758 
1766 
1776 



LDfi 
STfi 



MR!"! 



XX 

w 

ll 

m 
w 

BASE 
SETC 
GR 
END 



STfi *X 
LDfl «VW 
STfi *Y 
LDfi 68 
STfi *Z 
JSR GUTS 
*X 
*XXX 
LDfl *V 
STfi *VW 
LDfl *C888 
BPL LOOP' 
LDfi 68 
STFI SCSI 8 
LDfl SC888 
BPL 1-JfiIT 
LDfi 08 
STfi 1-C918 
8EQ LOOP 
. DL 6013 
. DL 8014 
. DL 8615 
. DL 8016 
. DL f J817 
. DL E0W 
. DL HifA 
. CL F832 
.EN 



SVHK3L 


TABLE 


DRAW 


8863 


X 


0310 


V 


0811 


"7 


6812 


PLOT 


F886 


PLT1 


F80F 


RND 


085E 


GRAF: 


886F. 


anrs 


8872 


STEP 


8889 


CONT 


889,? 


TEST 


889? 


CUP 


889E 


EXIT 


08A4 


WORK 


800F 


STAR 


efiftS 


LOOP 


88BB 


WAIT 


88F3 


XX 


0613 


VV 


9914 


ZZ 


0815 


XXX 


8016 


YYV 


8017 


BASE 


E080 


SETC 


F864 


GR 


F832 


END 


88FF 



computer mart of new jersey 
computer mart of Pennsylvania 



the 
^Tj microcomputer 
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 M» w J. 

501 Rout* 27 
iMlIn, HJ 06600 
(201) 260-0600 



STORE HOURS 

Tum. -Sot. 10am -6pm 
Tom. G Thur». 'til! «pm 
CLOSED MONDAYS 



Computer Mart of Ponnsylvor 

SSODoKolbPIko 

King of Pruulo. PA 19406 

(215) 265-2560 



Circle 66 on inquiry card. 



July 1 979 © BYTE Publications Inc 53 






A Model of the Brain 
for Robot Control 

Part 2: A Neurological Model 



James Albus 

Project Manager 

United States Dept of Commerce 

National Bureau of Standards 

Washington DC 20234 



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



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

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

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



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

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

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

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



54 July 1979 © BYTE Publications Inc 



Hit -291 



/7*o BREAKING THE SOUND BARRIER Unn^I 



""RoSE?! 




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 



o 



Circle 369 on inquiry card. 



BYTE July 1979 



55 



The principal input to the 

cerebellar cortex arrives 

via mossy fibers. 



number of important neurophysiological 
relationships. 

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

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

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



MOTOR CORTEX 
SENSORY CORTEX 




AUDITORY CORTEX 



BRAIN STEM 



VISUAL CORTEX 



CEREBELLUM 



SPINAL CORD 



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



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

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

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

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

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



5 6 July 1 979 © BYTE Publications Inc 




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



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

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




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



July 1979 © BYTE Publications Inc 57 



The Golgi cells suppress 

the outputs of all but the 

few maximally stimulated 

granule cells. 



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

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



Figure 4. A theoretical model of the cerebellum. 



CMAC is defined by a series of mappings: 

where: 

S is an input vector; 

M is the set of mossy fibers used to 

encode S; 

A is the set of granule cells contacted 

by M; 

p is an output value. 

The overall mapping: 

S->p 

has all of the properties of a function: 

p = h (S) 

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

S^P 

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



TABLE OF 
WEIGHTS 



COMMANDS FROM 
HIGHER LEVELS 



SELECTION 
OF WEIGHTS 



SET OF ALL 
POSSIBLE INPUTS 



A SPECIFIC 
INPUT y 



SUMMATION 
\ OF SELECTED 
\ WEIGHTS 



OUTPUT 



// 



/ / 



/ ADJUST 



/ WEIGHTS 



FEEDBACK FROM 
SENSORS 



DESIRED 

OUTPUT 



58 July 1979 © BYTE Publications Inc 




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





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



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

Open-nose construction enables 
probe at IC leg. 

Pin rows are offset for easy attach 
ment of probes. 



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

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

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




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



The new A P Super Grip II Is, without 
question, the best way there Is to trouble- 
shoot DIP ICs. 

You get positive contacts. No Inter- 
mlttents. No shorts. Ever. 

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



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



AP PRODUCTS 
INCORPORATED 

Box 1 10D • 72 Corwin Drive 
Painesville. Ohio 44077 
Tel. 216/354 2101 
TWX: 810-425-2250 



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

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



Faster and Easier is what we're all about. 



Circle 10 on inquiry card. 



BYTE July 1979 



59 



MOSSY FIBER 

INPUT FROM 

HIGHER CENTERS 



SELECTION 
OF ACTIVE 
P ARALLEL FIBER S ADJU STABLE 

WEIGHT 
SYNAPSES 



GRANULE 

CELL 

LAYER 



BASKET 



PURKINJE 
CELLS 



SUMMATION OF 
SYNAPTIC INFLUENCE 



OUTPUT 



MOSSY FIBER 

FEEDBACK 
FROM LIMBS 



STELLATE 



ADJUST , 



WEIGHTS 



CLIMBING FIBER 



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



Pulse frequency and phase 

modulation are subject 

to quantization noise and 

bandwidth limitations. 



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

C = (s-j , s 2 , . . ., sj is a vector, or list, 



of command variables; 



and 



F = (s j+1 , . . ., s N ) is a vector, or list, 
of feedback variables. 

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



That is: 



S = C + F 



means that S = (s 1; s 2 , 



,Si,S 



i+1j 



.,sn) 



Some of the elements of the command 
vector C may define symbolic motor com- 
mands such as <REACH>, <PULL BACK>, 
<PUSH>, etc. The remainder of the ele- 
ments in C define arguments, or modifiers, 
such as the velocity of motion desired, the 
force required, the position of the terminal 



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

Mappings -► M 

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

The brain solves this problem by encoding 



60 July 1979 © BYTE Publications Inc 






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

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

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



1 Ct I A, B,C, D, E| 
] C 2 |F,G,H,j,Kf 
^3 |M,N,P,Q ; R| 
1 C 4 =|S,T,V,W,Xt 



Each quantizing function is offset from 
the previous one by one resolution ele- 
ment. For every possible value of s s there 
exists a unique set m 1 * consisting of the 
set of values produced by the K quantizing 
functions. For example (in figure 8), the 
value s 1 = 7 maps into the set m 1 * = {B, H, 
P,V}. 

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

2 q =|a, b, c, d,e| 

2 C 2 = |f,gAJ,k| 
2c 3 =|m, n, p, q, r| 
2 C 4 = |s, t, v, w, x| . 

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



FIRING 
RATE 




90° 120° 

ELBOW POSITION 



160° 



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



s 2 ->m 2 * 



S->M=< 



^s N 



m 



N 



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

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



FIRING 
RATE 




ELBOW POSITION 



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



July 1979 © BYTE Publications Inc 61 



NEECO 



PET 2001 — 32K 




PROUDLY ANNOUNCES THE NEWEST 

PET MICROCOMPUTERS BY COMMODORE/ 

The PET™ is now a truly sophisticated 

Business System with the 
announcement of these Peripherals. 



ThePET'", incorporated wimihe PloppyOisk anrj Prmler 
makes an idea! business system (or itidsi piotessionnl 
andspeoalizedfieids medicine, law. denial. research 
engineering, loolmakmg printing education, enetQycon- 
servation. eic The PET " Business System as a 
management loot, delivers mlormaiion Co all levels of 
Business, previously attainable only wthequpment 
many times more expensive The PET'" Business 
System isoneot the most cosiclfioeniuusinesslools 



today it oilers a wide range ot applications Iromtoggmg 
management stiategymmatoi corporations to organizing 
accounts and inventory control ot small businesses Here 
are tust a few ot the cosi-savmg uses inlhe corporation 
professional office or small business stock control 
purchasing.lorecasttng. manufacturing costing customer 
records, nrvalng lists, etc The PET". Floppy Disk ana 
Printer, a compatible business system at a reasonable 
price — Take a closer took at these Penohetais 



i t n n h i h i f 

f jl.* k fc ...*.. i.. I JJ i 




LARGE TYPEWRITER KEYBOARDS NOW AVAILABLE! 



PRODUCT DESCRIPTION 

PET 2001— 4K 4K RAM 

PET2001-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 
PET C2N 



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 


AVAILABILITY 


$ 595 


IMMEDIATE 


$ 795 


IMMEDIATE 


$ 995 


IMMEDIATE 


$1295 


IMMEDIATE 


$ 850 


IMMEDIATE 


$ 995 


IMMEDIATE 


$ 895 


JUNE/JULY 


$1295 


IMMEDIATE 


$ 100 


IMMEDIATE 



ALL UNITS ARE FULLYTESTED BY NEECO BEFORESHIPMENT. ALL PETS 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! 



THE NEW ^ commodore PET PERIPHERALS 




c 



1 



2040 



2022 



Dual Drive Floppy Disk Tractor Feed Printer 



The Dual Drive Floppy is the latest in Disk technology 
with extremely large storage capability and excellent file 
management. As the Commodore disk is an "Intelligent" 
peripheral, il 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 tc the latesttechnological advances 
incorporated in this disk, a total of 360K bytes are avail- 
able in the two standard 5W disks, without the problems 
of double tracking or double density. This is achieved by 
the use of two microprocessors and fifteen memory I.C.s 
built into the disk unit. Only two connections are neces- 
sary — an A/C cord and PET™ interface cord. 

CALL FOR COMPLETE SPECIFICATIONS! IMMEDIATE DELIVERY! 

NEW ENGLAND AREA SUB-DEALERSHIP INQUIRIES INVITED! 



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), cheque 
printing for salaries, payables, etc. Again, the only con- 
nections required are an A/C cord and PET™ connecting 
cord. The PET™ is programmable, allowing the printer to 
format print for: width, decimal position, leading and 
trailing zero's, left margin justified, lines per page, etc. 
It accepts 8V?" paper giving up to four copies. Bidirec- 
tional printing enables increased speed of printing. 



CENTRONICS 
730 PRINTER 

• COMBO FRICTION/TRACTOR 

• 50 CPS, UPPER/LOWER CASE 

• 7x7 DOT MATRIX IMPACT 

• 80 CHARACTER BUFFER 

• 80 OR 20 COLUMNS 



$995 



ONLY 
PET INTERFACE $150 

COMBO PRICE: 

$1095 



BUSINESS 
SOFTWARE 

BUSINESS PACKAGES AVAIL- 
ABLE ON THE 2040 DUAL 
FLOPPY: 

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



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

ALL NEECO PETS CARRY A FULL ONE-YEAR NEECO WARRANTEE 



NEECO 



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 



6 2 BYTE July 1979 



Circle 281 on inquiry card. 



^MINIMAX 

w tt i— i i i i % # i k iTr-/M-\ a -^r— i-n, ^\^s. k m r-\i 1 1- r— i-\ *^\ x^^r— A 4 99 



"FULLY INTEGRATED COMPUTER SYSTEM" 




M #1 




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

SPECIAL DEALER PRICING AVAILABLE ON DEMONSTRATION 

MINIMAX AND SOFTWARE PACKAGES TO QUALIFIED 

SELECTED DEALERS. CONTACT NEECO FOR INFO. 



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



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



THE MINIMAX IS NOW AVAILABLE FOR QUANTITY DELIVERY. DOMESTIC DEALERSHIPS AVAILABLE. 

EUROPEAN DISTRIBUTORSHIPS/DEALERSHIPS AVAILABLE TO QUALIFYING COMPANIES WITH 

SUPPORT CAPABILITIES. SOFTWARE HOUSES AND OEM INQUIRIES INVITED. CONTACT NEECO. 



NEECO 



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



'» (617)449-1760 



TELEX 951021, ANSWERBACK "NEECO" 



Circle 282 on inquiry card. 



BYTE July 1979 63 















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

Encoding Advantages 

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



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

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



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

WEIGHTS 



SELECTION 
OF WEIGHTS 





IT 


2 


*2 


INPUT SPACE 


K 
W 

V 

t 

1 


r 

p 

n 

■ 


h 

9 

f 


Is 
d 14 

d l3 
12 

<K> 
9 
8 

7 

"\ 

4 
3 

1 





































































































V 


















































































































































































































































































































! i 






1 


012345671 9 10 111213141516 
A B C D [E 


^ 


F | O H J K 




ft 1 * 1 t t I 1 


"1 


S T V W X 





• 


•1.25 





1 


■1.25 


•225 


d 


•liS 


1 


1 


1.25 


•U5 


C 


1.0 


1.0 


2.0 





1 


b 


-.5 


.75 


US 


1.25 


1.25 


o 


■1.25 


.25 


1.2S 


•1.25 


■1.25 




A 


B 


c 


D 


E 



X 


•1.25 


1 








■1.25 


w 





1.0 


1.0 








V 


2.0 








2.25 





t 





•2.5 


1.25 








i 


•US 





1.25 





•1.25 




s 


T 


V 


w 


X 



r 


•1.25 





1 


1 


•1.25 


q 


1 


2.1 


1.1 


1.1 


1 


p 


1.1 


-.25 


-.5 


1.25 


1 


n 





•1.5 


-.25 


in 





m 


1.25 


1 


1.25 





•175 




M 


N 


r 


o 


R 



1.25 








1 


1.25 


1 


1.1 


2.0 


1.1 





1.1 


1 


-.25 


1.25 


1 


1.25 


•1.5 


.25 


1.25 





1 





1.25 


1 


•U5 


f 


G 


H 


J 


K 




SUMMATION 
OF WEIGHTS 




OUTPUT 



DESIRED 
OUTPUT 



64 July 1 979 © BYTE Publications Inc 



NOW YOU CAN AFFORD 

THE WORLD FAMOUS 
Diablo Printer Terminal 




S 



IPSI PROUDLY ANNOUNCES A PRICE 

BREAKTHROUGH ON DAISY WHEEL 

PRINTER TERMINALS 

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

Price: $2,595.00 each in single units, quan- 
tity discounts available. 

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



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

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

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

IPSI 

INTERNATIONAL PERIPHERAL SYSTEMS, INC. 

1849 N. HELM 

FRESNO, CALIFORNIA 93727 

CALL (209) 252-3635 



•Hyterm and HyType are registered trademarks of Xerox Corp. 

Circle 174 on inquiry card. 



BYTE July 1979 



65 



The number of mossy 
fibers dedicated to a 
variable determines pre- 
cision of its representation. 



S2 



M -> A Mapping 

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

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









16 




We can 


define A to be the set of 








15 




granule cells identified by their mo 








14 












13 












12 












II 












- 


10 
c 
9 

6 


- 


Be 




7 












- 


6 
5 
4 
3 


- 










- 


2 

1 



i i i 


i i i 


iiii 








12 3 

i 


4 5 6 7 
B 


8 9 10 II 12 13 14 15 16 

i i 




i 


i i i 




1 


i i i 




1 


l i i 



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

Since we already know which mossy 
fibers are maximally active (ie: those mossy 
fibers in the sets irij*), we can compute 
names of granule cells in A*. For example, 
in figures 8 and 1 0, if s-| =7 and s 2 = 1 0, then 
rV = {B, H, P, V| and m 2 * = jc, j, q, v}. 
The active granule cells in A* can now be 
computed directly as A* = J Be, Hj, Pq, Vv}. 
All other granule cell names in the larger 
set A involve at least one mossy fiber which 
is not maximally active (ie: not in m-|* or 
m 2 *). 

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

A -» p Mapping 

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



Figure 9. The weight Be will be selected as long as the CMAC input vector 
lies in the region bounded by 4<s 7 < 7, 8 < s 2 < 7 /. 



Be 
Hj 

Pq 
Vv 



1.0 
2.0 
1.0 
0.0. 



66 July 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 



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



Tarbell Disk BASIC 

• 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 1 5 single character edit com- 
mancls. 

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 





'11MMWMM 



• 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 July 1979 



67 









10 



These weights are summed to produce the 
output: 

p = 4.0. 

Thus the input S = (7, 10) produces the out- 
put h(S) = 4. 

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

p=h(S). 

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

In the cerebellum there are many Pur- 
kinje cells which receive input from essen- 
tially the same mossy fibers. Thus, there are 
many CMACs all computing on the same 



Be 



Hj 



Pq 



Vv 



_J 



_l l l l s, 



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



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

P = H(S). 

Data Storage in CMAC 

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

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

Cerebellar learning is modeled in CMAC 
by the following procedure: 

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

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

• For every element in: 

P= (p 1 ,p 2 ,.. ,p L ) 
and in: 



P = (p ll p 2 ,...,p L ) 



if: 



IPi-PjKfi 

where £ is an acceptable error, then do 
nothing; the desired value is already 
stored. (|pj — p ; | is the absolute value 

of Pj -P|.) 

However, if |p; — p-\ > & then add A j 



68 July 1979 © BYTE Publications Inc 







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

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



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



A. = , 



|A*| 



|A*| is the number of weights in the 

set A* which contributed to p, and g 

is a gain factor which controls the 

amount of error correction produced 

by one learning experience. 

If g = 1, then CMAC produces oneshot 

learning which fully corrects the observed 

error in one data storage operation. If 



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

An example of how an arbitrary function 
such as: 



p = (sin x)(sin y) 



where: 



x = 2tt S! /360 



and: 



y = 27rs 1 /360 



July 1 979 © BYTE Publications Inc 69 



12a 



1 




360 



Figure 12. The effect of 
training CMAC on the 
function p = sin (2i\ 
5 7 1360) sin (27i s 2 I 
360). (a) One training at 
(s 7 , s 2 ) = (90, 90). (b) A 
second training at (s 1} s 2 ) 
= (270, 90). (c) Training at 
16 points along a trajec- 
tory defined by s 7 = 90. 
(d) Training at 175 se- 
lected points scattered 
over the input space. 



can be stored in CMAC is shown in figure 
1 2. In this example the input is defined with 
unity resolution over the space < s-j < 360 
and < s 2 < 180, and the number of 
weights selected by each input is |A*I = 32. 
Initially all the weights were equal to 0. 
The point S 1 = (90, 90) was chosen for the 
first data entry. The value of the desired 
function p = h (90, 90) is 1. By formula (1) 
(where g = 1 ) each of the weights selected by 
S = (90, 90) is set to 1/32, causing the prop- 
er value to be stored at S = (90,90) as shown 
in figure 12a. After two data storage opera- 
tions, one at (90, 90), the other at (270, 90), 
the contents of the CMAC memory are as 
shown in figure 12b. After 16 storage oper- 
ations along the s 2 = 90 axis the results are 
as shown in figure 12c. After 175 storage 
operations scattered over the entire input 



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

CMAC Memory Requirements 

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

This suggests that the Cerebellar Model 



12b 




360 



70 July 1 979 © BYTE Publications Inc 



72c 



180 




360 



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

A conventional memory requires R N 
memory locations to store a function of N 
variables, where R is the number of resolu- 
tion elements on each variable. CMAC re- 
quires at most KX Q N memory locations, 
when K is the number of quantizing func- 
tions and Q the number of resolution ele- 
ments on each quantizing function. 

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



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

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



Hash coding, a memory 
addressing technique, com- 
presses sparse address 
space. 



12d 



1 




360 



July 1 979 © BYTE Publications Inc 7 1 












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

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



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



13a 



CONVENTIONAL TABLE LOOK-UP 




MS) 



SET OF R 

INPUTS 

(ADDRESSES) 



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



R N MEMORY 
LOCATIONS 



72 July 1 979 © BYTE Publications Inc 



THE SEARCH FOR A 

SMALL COMPUTER SYSTEM 

STARTS HERE 



Iff 3rd Annual National Smalt Computer $ft 

New York Coliseum, August 23-26, 1979 



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

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



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

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

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



LECTURES: (Program subject to change) 



Thursday, August 23 
I p.m. The Peril of Becoming a Machine- 
Oriented Business User 

1 p.m. Introduction to Small Business 

Systems 

2 p.m. Selecting a Word Processing 

System 

2 p.m. Distributed Data Processing 

3 p.m. Accounts Receivable/General 

Ledger/Accounts Payable 

3 p.m. Is There a Computer in Your 

Educational Future 

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

Cost 

4 p.m. Word Processing Systems in 

the Law Office 

5 p.m. Basic BASIC 

5 p.m. Achieving Quality Control in 
Word Processing 



Friday, August 24 
I p.m. The Peril of Becoming a Machine- 
Oriented Business User 

1 p.m. Introduction to Small Business 

Users 

2 p.m. Selecting a Word Processing 

System 

2 p.m. Distributed Data Processing 

3 p.m. Unassigned at press time 

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

Program 

4 p.m. Efficient Expansion of a Small 

System 

4 p.m. Investment Analysis 

5 p.m. Accounts Receivable/General 

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



Saturday. August 25 
11 a.m. Introduction to Personal 
Computing 

1 1 a.m. Unassigned at press time 

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

1 p.m. Introduction to PASCAL 

1 p.m. Computer Art Forms 

2 p.m. Household Applications 

2 p.m. Artificial Intelligence 

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

Program 

3 p.m. Investment Analysis 

4 p.m. Basic BASIC 

4 p.m. Unassigned at press time 



Sunday. August 26 
1i a.m. Introduction to Personal 
Computing 

11 a.m. Computer Music Update 

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

1 p.m. Etticient Expansion of a Small 
System 

1 p.m. Computer Art Forms 

2 p.m. Unassigned at press time 

2 p.m. Unassigned at press time 

3 p.m. Microcomputers for the 

Handicapped: Update 

3 p.m. Exploiting the Apple/Dow Jones 

Computer Link 

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

Cost 
4 p.m. Introduction to PASCAL 



r REGISTRATION FOR AMERICA'S BIGGEST SMALL COMPUTER SHOW 1 



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



NAME 



COMPANY (If Any) 
ADDRESS 



BUSINESS TITLE (If Any) 
TELEPHONE 



1\P . 



(Check main Interest) 

D Banking/Insurance 

□ Business office 

□ Communications 
D Educational 

□ Government 

□ Hobby 

D Industrial/Manufacturing 

D Military 

D Professional 

□ Stock Brokerage 

□ Transportation 

□ Utility 

□ Wholesale/Retail 

□ Other _^ 



(Check main job function) 

D Accountant 

□ Administrator (Business) 
D Architect/Builder 

□ Art Director 
D Banker 

□ Computer technician 
D Consultant 

□ Controller 
D Engineer 

D Industrial Designer 
D Lawyer/law office mgr. 

□ Marketing manager 

□ Medical doctor 



D Medical technician 

D Office manager 

D Programmer 

D Public Servant 

D Research/Development 

□ Teacher 

□ DP manager 
D WP manager 

□ WP operator 
D Stock Broker 

D Systems Analyst 
D Student 

□ Other ___^_^_ 




D ONE DAY $5 Q TWO DAYS $10 

D THREE DAYS $15 D FOUR DAYS $20 

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






Circle 258 on inquiry card. 



BYTE July 1979 



73 






13b 



CMAC TABLE LOOK-UP 
(DISTRIBUTED MEMORY) 




■h(S) 



SET OFR 

INPUTS 

(ADDRESSES) 



M MEMORY 
LOCATIONS 



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

CMAC can tolerate a fairly high incidence 
of collisions because of its distributed mem- 
ory (ie: its output is the sum of many loca- 
tions). Thus a collision (which in a conven- 
tional memory would make the output com- 
pletely incorrect) in CMAC introduces only 
a small amount of noise into the output. 
Hash coding noise can be seen in the base 
plane in figure 12a, b, c. 



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



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

CMAC Memory Generalization 

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



74 July 1979 © BYTE Publications Inc 



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



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



Music. VP-550 Super Sound Board turns your VIP into a music 
synthesizer. 2 sound channels. Program controlof 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-volt2716EPROMs— comparable to units 
costing much more than the VP-565 and VIP put 
together! Programming voltages generated on 
board. ZIF PROM socket included. $99* 



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



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



Tiny BASIC** VP-700 
Expanded Tiny BASIC Board 
puts this high-level language 
on your VIP. BASIC stored 
in 4K of ROM. Ready for 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.* 





Auxiliary Keypads. Program 
your VIP for 2-player inter- 
action games! 16-key keypad 
VP-580with cable ($15*) 
connects to sockets pro- 
vided on VP-590 Color Board 
or VP 585 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 monitor or cassette recorder. 
"Available 1st Quarter. 1979. 

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



The fun way 
into computers. 



ItCJI 



Circle 322 on inquiry card. 



BYTE July 1979 



75 



(14a) 



CMAC TABLE LOOK- UP S,« S 2 




Figure 14. The CMAC 
memory generalizes, (a) S 2 
selects three out of four of 
the same weights as Sp 
Thus output h(S 2 ) will be 
similar to h(Sj) } differing 
only by the contents of 
the location not in com- 
(b) When S 





\ 




\ 
























































































































/ 




-► 



h(S.)«h(SJ 



mon. 



is 



outside of the neighbor- 
hood of generalization of 
S 7 the overlap goes to 
(except for random hash- 
ing collisions). 



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

In figure 14a the input vector S 2 selects 
three out of four of the same memory loca- 
tions as S 1 . Thus, the output h(S 2 ) will be 
similar to h(S 1 ), differing only by the con- 
tents of the single location which is not in 
common. The S -> A* mapping controls the 
amount of overlap between sets of selected 
memory locations such that, as the input 
space distance between two input vectors in- 
creases, the amount of overlap decreases. 
Finally, at some distance the overlap be- 
comes (except for random hashing colli- 
sions), as in figure 14b, and the sets of 



selected memory locations are disjoint. At 
that point input S 2 can be said to be out- 
side the neighborhood of generalization of 
S-| . The value of the output h(S 2 ) is thus 
independent of h^ ). 

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

A good example of generalization can be 



76 July 1 979 © BYTE Publications Inc 









(14b) 



CMAC TABLE LOOK-UP S,# S 2 



\ 



> 



\ 



\ 



\ 



\ 



\ 



\ 



\ 



\ 



\ 



\ 



\ 



d> 



/ 



/ 



/ 



/ 



/ 



/ 



/ 



/ 



/ 



/ 



/ 



h(S,) INDEPENDENT 



I OF h(S 2 ) 



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

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

Generalization has the advantage that 



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

Generalization enables CMAC to predict 






July 1979 © BYTE Publications Inc 77 



from PEFOCM 




One-Drive System: 

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

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

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




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

In the Size You Want. 

When you're ready for add-on disk storage, we're ready for you. 
Ready with six mini-disk storage systems — 102K bytes to 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 102.4K bytes of data on 
one side of a disk — compared to 80K 
bytes on a TRS-80* mini-disk drive — 
and 102.4K bytes on the other side, too. 
Something you can't do with a TRS-80* 
drive. That's almost 205K bytes per 
mini-disk. 

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



— 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 . . . the Electric Crayon™ to map your computer memory onto your color TV 
screen —for games, animated shows, business displays, graphs, etc. Coming PDQ! 



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



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 




78 BYTE July 1979 



Circle 305 on inquiry card. 



For your SWTP 6800 Computer . . . 

PERCOM's ™ 
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-file disk architecture, with automatic file 
creation and allocation for ASCII and binary files, supports sequential 
and semi-random access disk files. Multi-level file name directory 
includes name, extension, version, protection and date. Requires 8K 

RAM at $A000. Diskette includes numerous utilities $99.95 

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

prepared using a text editor described below $49.95 

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

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 use"d to create programs and data files. Supports MACROS which 
perform complex, repetitive editing functions. Permits text files larger 
than available RAM to be created and edited . ; $39.95 

TOUCHUP™ Modifies TSC's Text Editor and Text Processor for 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 LIST 700 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 July 1979 79 









ABOUT THE AUTHOR: 

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



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

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



COMMAND 



S 4 



*5,6 



s 9,IO 



13,14 



S I5,I6 



17,18 



P4 



SHOULDER LIFT 




FEEDBACK 

(POSITION AND VELOCITY) 



DRIVE 



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



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

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

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

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

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



80 July 1 979 © BYTE Publications Inc 



1 V.l lull t I 1 o 1 c> \ * E " 




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 smallcomputer, books for the computer user, how and 
where to buy your personal computer and numerous features concerning the fascinating 
world of the microprocessor. 

mputing to your library of 'must* publications. Act now, s 
(4) issues •/;: 58.50 for one year (Cl.S.); Canada and Mexi 




in 




GUIDE TO PERSONAL ^ COMPUTING 



SUBSCRIBE NOW! COMPLETE AMD MAIL ATTACHED POSTAGE PAID REPLY CARD 

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



TM 












A 

Pi 

SHOULDER 

LIFT 



30* 


^ 


^^to) 




20° 












(b) 




10° 






1 1 



40° 



SHOULDER 
ROTATE 2Qe 



10° 



(a) 



(b) 





















A 


30° 
















P3 


20° 


- 














UPPER 
















/ 


ARM 
















'm 


ROTATE 


10° 


;> 








f 


/ 












S 


' 














s 






























n° 


*■* 












i i 



100* 



A 
P4 


90* 


ELBOW 




LIFT 


80 




70 



r 














v. 


(a) 

(b) 


- 


- 


! 


- 


— 1 





40° 




A 




* ' ^0f^ / 


P 5 

LOWER 

ARM 


30° 


^ •*" y 

-. y 

^y^ -■- """" 

r s^"* (b) 


ROTATE 


20° 

IA« 


- y 

/ 

1 I I 



A 
P 6 

WRIST 
FLEX 




Figure 76. Two similar trajectories Tp Q and Tp b which have different starting 
points but the same end point. Both trajectories define a version of an Ele- 
mental Movement (SLAP) which was taught to the CMACs of figure 15. 



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

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



800 i 



700 



600 






500 






400 






300 


- 1 




200 


I \ 


\(\) 


100 


(ID 


ill) 



5 10 15 

TRAINING SESSIONS 



20 



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



control computation in multivalent servo- 
systems typically derives from cross- 
products which affect the slope of the func- 
tion, or produce skewness, and nonsymetri- 
cal hills and valleys in various corners of the 
N dimensional space. As can be seen from 
figure 1 1 these are the type of functions 
CMAC can readily store, and hence com- 
pute. Nevertheless, even on smooth func- 
tions generalization may sometimes intro- 
duce errors by altering values stored at 
neighboring locations which were already 
correct. This type of error corresponds to 
what psychologists call learning interference, 
or retroactive inhibition. 

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



82 July 1 979 © BYTE Publications Inc 



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





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

^^^^^^^^^ |r SOFTWARE 



*ssu. 






.00 







c^ 



\ot 9« ceS 






AAOO- 
AAA0- 



AA0-- • ■ L 



i$m- 



6^1 

tot P^ ceS , 



Here are nine packages that t 

enable you to make full use of 
the potential in your small 

computer system: 

ACCOUNTS RECEIVABLE 

INVENTORY 

ORDER ENTRY 

WORD PROCESSING 

PAYROLL 

REAL ESTATE MGT. 

MEDICAL-DENTAL 

MAILING PROGRAM 

SHIPPING & RECEIVING 

and MORE! 

Microsoft Basic, Fortran, Cobol 

available 

CALL for prices 



**?$»■ 




AA0--iU- 



43 ••■• WP" ce 



ce^os 



tJ\\CT0.- 

779-2 

700-2- 

703-0 



prices 



Our Prices are too low to advertise. Please call or write. 

We now carry a full line of 

Alpha — Micro Products 




cowv>v*0* 



S^stem3. -•■ w pncB 

MORE SPECIALS 




Decwriterll $1595.00 

Qume Sprint 5/45 

R0 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 249.00 

Javelin 9" Monitor ... ..159.95 

Centronics 

Micro PI Printer ... 495.00 



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




SYNCHRO-SOUND 

The Computer People 

193-25 Jamaica Avenue, Jamaica, New \brk 11423 

212/468-7067 TWX 710-582-5886 



ENTERPRISES, INC. 



Hours 9-4 Daily 
and Saturday 

Visit our new showroom 
Working units on display 

BankAmericard Master Charge 



Circle 355 on inquiry card. 



BYTE July 1979 



83 












800 r 




INTERRUPTED BY 20 TRAINING SESSIONS ON TA 




10 



15 



20 



25 



30 



35 



40 



45 



50 



55 



60 



65 



70 



75 



TRAINING SESSIONS ON TA 



Figure 18. The effect of learning interference. If training on TB is interrupted by training on the similar trajectory Tp h , a de- 



gradation in performance on Tp Q is observed. Repeated iterations gradually overcome this learning interference. 



over another 20 training sessions. Following 
this another 20 training sessions are con- 
ducted on Tp a . Again degradation in Tp b 
due to learning interference occurs, but not 
as severely as before. Another set of 20 
training sessions on Tp b followed by another 
20 on Tp shows that the amount of learn- 

r a 

ing interference is declining due to the build- 
up of values in the few weights which are 
not common to both T$ a and T$ b . Thus, 
learning interference, or retroactive inhibi- 
tion, is overcome by repetition of the learn- 
ing process. 

CMAC as a Computer 

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



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

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

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

p = (sin x)(sin y) if s 3 = 
p = 3x + 5y 2 if s 3 = 50 . 

In the interval < s 3 < 50 the function 
would change smoothly from p = (sin x) 
(sin y) to p = 3x + 5Y 2 . Additional func- 



84 July 1 979 © BYTE Publications Inc 



Circle 18 on inquiry card. 




HARDWARE FOR TRS-80 

DPertec Disc Drives FD-200 $375.00 ea. 

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

□ 16K Upgrade Kit $ 99.95 

□ 779 Centronics TRACTOR FEED Printer $1100.00 

Same as Radio Shacks Complete with Cable. 

Shipped Freight COD. 

□701 Centronics TRACTOR FEED 

Bidirectional Printer $1 549.95 

Vh times as fast as the Radio Shack 779 Printer, has full 
size 1 32 Char. Carriage Bell tone. Complete with Cable 
plug in and use. Shipped Freight COD. 

□ 200 ns 16K Dynamic Memory Clips for Keyboard or Expan- 

sion Interface, Lifetime Guarantee, complete . . . $1 1D.00 

Lifetime Guarantee. Complete with Instructions and 
Jumper Blocks. 

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

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

□ Expansion Interface $275.00 

□ RS-232-C Interface $ 89.00 



ORDER NOW AND SAVE 

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



SOFTWARE BY ACS 



□ Monitor No. 3 $ 39.95 

Complete Machine Language Monitor for TRS-80"Teatures: 
Find, EDIT, Relocate, Symbolic Dump to Tape, etc. 

□Trash DATA BASE Management System $ 89.95 

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

□ PLCEND $ 15.95 

Will Patch ASCII files of Basic Programs or text or 
DATA FILES so that they may be loaded into the Disk 
Version of the Electric Pencil for Editing purposes 

comes on Cassette that will automatically create a Disk 
file of PCLEND. 

□MAKE TAPE AND MAKE DISK 

for Cassette Dealers $ 69.95 

These are two programs that will allow you to take any 
type of Program from Disk and store it on tape for 
mailing purposes. When the user receives the program in 
the mail on cassette, it is loaded into the computer which 
will automatically make a Disk file of the program. 

□CP/M & C BASIC for the TRS-80® 

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

CP/M $150.00 

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

C BASIC 2 $ 99.95 

□G2 LEVEL III BASIC for TRS-80? Special $39.95 

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

Telecommunications for the TRS-80^llows one TRS-80® 
to communicate with another through the RS-232-C 
over the phone line. 

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



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

U TO MA TED 

OMPUTER 

OFTWARE SERVICE 

(615)244-2798 



Division of 



acmpLtar Hull 



Inc. 



625 Main Street • Nashville, TN 37206 



Send Check or Money Order payable to — 

SOFTWARE • P.O. Box 60097 



Nashville, TN 37206 



Quan. Description 



Unit Price Total 



























HAND 
TENN 


LING CHARGE $1.50 

. RES. ADD 6% SALES TAX 


TOTAL 





Name 



Address 

City „ 



State 



□ Check 

□ Money Order 

□ MasterCharge 

□ Visa 

Card No. 



Exp. Date- 



Zip. 



a) 















S| 










H 












s 2 






S3 















H 


S 


p 


s l s 2 s 3 


p, p 2 




1 
1 

1 1 

1 

1 1 

1 1 

1 1 1 


1 


1 

1 1 
1 1 

1 



1 



b) 




It is possible to construct 

a CMAC equivalent of 

any finite state automaton. 



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



tions could be stored for other values of s 3 , 
or other conditional variables S4, s 5 , and so 
on might be used for additional branching 
capabilities. If these conditional variables are 
part of a command vector, then each dif- 
ferent input command can select a different 
subgoal generator. If they are part of the 
feedback, then different environmental con- 
ditions can trigger different behavioral pat- 
terns for accomplishing the subgoals. 

If some of the variables in the P output 
vector loop directly back to become part of 
the S input vector (as frequently happens in 
the cerebellum as well as in other parts of 
the brain), then CMAC becomes a type of 
finite state automaton, string generator, or 
task decomposition operator. For example, 
the CMAC in figure 19a behaves like the 
finite state automaton in 19b. The loop- 
back inputs s 1 and s 2 define the state of the 
machine, and s 3 is the input. The H function 
defines the state transition table. In general 
it is possible to construct a CMAC equival- 
ent of any finite state automaton. Of course, 
CMAC can accept inputs and produce out- 
puts which are nonbinary. Furthermore, the 
outputs generalize. Thus, CMAC is a sort of 
"fuzzy state automaton." 

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



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

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

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

The capability of CMAC to simulate a 
finite state automaton, to execute the equiv- 
alent of a conditional branch, and to com- 
pute a broad class of multivarient functions 
makes it possible to construct the CMAC 
equivalent of a computer program. Con- 
versely it is possible to construct a hierarchy 
of computing modules, perhaps imple- 
mented on a network of microprocessors, 
which is the equivalent of a CMAC hier- 
archy. This has profound implications re- 
garding the type of computing architecture 
which might be used to build a model of 
the brain for robot control. 

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

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



86 July 1979 © BYTE Publications Inc 



COMPACT 
COMPILER 




FORMS 
GENERATOR 



STRNDRRD 
COMPILER 



FOR FAST IMPLEMENTATION 
OF BUSINESS APPLICATIONS 



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

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



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



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



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

Circle 221 on inquiry card. 



j MICRO FOCUS 

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

BYTE July 1979 87 



SMOKE SIGNAL BROADCASTING 
PRESENTS IT'S 

$299.00 

M-16A STATIC MEMORY SYSTEM 

• Allows SWTPC 6800 expansion to 48K 

• Low Power • Uses Single +8 Volt Supply 

• SWTPC 6800 Plug Compatible •STATIC - No refresh required 



The M-16A STATIC random access 
memory system, with a total storage capacity of 
16834 words of 8 bits each, I 
is switch selectable to any 4K 
starting address, and a hardware | 
write protect switch is also included. 
The system's storage elements are] 
4K by 1 STATIC memory chips 
which store 4 times as much in 
^only 12% more space than the low' 

power 2102's. Typical access time is fast enough to work a 
6800 based computer operating at 2 MHz and all systems 
are factory tested at 2 MHz. 



The M-16A STATIC random a< 
memory system, with a total storage capacity of 
16834 words of 8 bits each, ■ 
' is switch selectable to any 4K I 
starting address, and a hardware I 
write protect switch is also included. I 
The system's storage elements are I 
4K by 1 STATIC memory chips I 
s much in I 
^only 1 2% more space than the low I 

power 2102' s. Typical access time is fast enough to work a 
" Q based computer operating at 2 MHz and all systems i 
e factory tested at 2 MHi. 



[smoke sighal Pbboadcastihc 

31336 Via Colinas, Westlake Village. CA 9136) 
(213)889-9340 

D Send information on your M-16A 
L_l Send name of nearest dealer 



5M0K SIGIAL 



ft 



.1336 Via Colinas. Westlake Village. CA 91361 (213) 869-9340 




Address 

Company- 
City 

State /Zip _ 



Circle 328 on inquiry card. 



unchanged throughout the lower level tra- 
jectory deviation. This, however, is quite a 
different mechanism from the interrupt 
circuitry in the normal computer where a 
program counter is stored so that program 
execution can continue after the interrupt 
has been serviced. 

The implication here is that a set of robot 
control programs modeled after a CMAC 
hierarchy will include no DO-loops and will 
not be interrupt driven. Every computing 
module will implement a simple state map- 
ping function of the form P = H(S). 

Note also that in a CMAC hierarchy, a 
deviation in a higher level trajectory changes 
the command string, and hence the program, 
of all the levels below it. This implies real 
time modification of program statements 
and thus makes the use of a compiler based 
programming language somewhat cumber- 
some. A robot control system modeled after 
a CMAC hierarchy should use some form of 
an interpretive language where program 
statements are translated into machine code 
at execution time. A language similar to 
FORTH seems ideal. (An interpretive lan- 
guage can, of course, be written in a com- 
piler based language. Also, languages can be 
devised which are partially compiled and 
partially interpreted.) We will return to these 
and other practical issues of computing 
architecture for robot control at a later time. 

CMAC as a Pattern Recognizer 

As was discussed in part 1, any spatial 
pattern can be represented as a vector. For 
example, a picture can be represented as an 
array, or ordered list, of brightness or color 
values. A symbolic character can be repre- 
sented as an ordered list of features (or arbi- 
trary numbers, as in the ASCII convention). 
Any temporal pattern can be represented as 
a trajectory through an N-dimensional space. 
For example, an audio pattern is a sequence 
of pressure or voltage values (ie: a one- 
dimensional trajectory). A moving picture 
or television scene corresponds to a sequence 
of picture vectors (ie: an N-dimensional tra- 
jectory where N is the number of picture 
resolution elements or pixels). 

The fundamental problem of pattern 
recognition is to name the patterns. All the 
patterns with the same name are in the same 
class. When a pattern has been given a name 
we say it has been recognized. For example, 
when the image of a familiar face falls on 
my retina and I say to myself "That's 
George," I have recognized the visual pattern 
by naming it. 

At this point we need to introduce some 
new notation to clearly distinguish between 



88 July 1979 © BYTE Publications Inc 




MicroPro International Corporation 
The Producers of WORD-MASTER™ and SUPER-SORT™ 

Proudly Present 








Here it is! The most complete, totally integrated, word processing system software you've ever 
seen on a microcomputer. WORD-STAR™ really shines in ease of use, with its unique, 
dynamically activated menu scheme that allows typists to become word processing operators 
in minutes instead of weeks. For only $495, your 8080/8085/Z-80 with any CRT device becomes a 
word processing system with the features of a Lanier, Wang, Vydec, Xerox, etc, for far less cost. 

Features like ON-SCREEN VISUAL TEXT COMPOSITION, with word wrap, plus dynamic justifi- 
cation and remargination. Imagine being able to type without hitting return, and as WORD- 
STAR TM moves you to the next line, the preceding line is redisplayed, justified to your left and 
right margins! Center a line with a keystroke! Set BOLDFACE and/or underline even in mid 
paragraph! Rejustify text to new margins, on-screen, at will! 

DYNAMIC PAGINATION shows the printer page breaks during text entry, correction, or review. 
Dot commands control vertical page layout, CONDITIONAL PAGINATION, page HEADINGS, 
page NUMBERS, etc. The integrated PRINT COMMAND can print selected pages only, pause 
between pages for letterhead loading, and drive any CP/M* list device. WORD-STAR TM runs with 
the CP/M interfaced printer and terminal of your choice. 

SPECIFICATIONS: status line showing page, line, column of cursor; variable menu suppression for experienced operators; dynamic display 
of text during entry or on call permits CRT preview of printed copy; full disk buffering (document sizes up to diskette capacity); multiple 
file/disk edits in a session; CP/M file compatible — also useful for data entry, editing programs, etc. Commands include: cursor 
up/down/left/right; scroll line/screenful, up/down, once/variable rate; insert/overtype; delete character/word/line left/right/entire; variable 
margin set/release; set/clear tab stops; justify/ragged right; block move/copy/delete; search/replace once/n times/global/selective/whole 
words only; write to/read from additional files; set/go to any of 10 place markers. Additional support provided for CRT's with inverse 
video/dual intensity, line insert/delete, and erase to end of line. Dialog interface for easy installation. AND MORE! 

Registered WORD~MASTER TM users can get a $100 discount from us or your participating dealer 
when upgrading to WORD-STAR.™- Offer good for a limited time only. 

WORD-STAR TM operates with any CP/M* operating system, 32K, and either a memory mapped 
video board or any CRT TERMINAL with cursor control and clear screen (Hazeltine, Lear-Siegler, 
Soroc, Microterm, Hewlett Packard, Infoton, Beehive, Processor Tech VDM, IMSAI VIO, SD 
Systems, Altos, Dynabyte, GNAT, etc). We ship on 8" IBM, Micropolis II, or Northstar diskette. 



Other fine MicroPro Products include: 

Software/Manual 
Word-Star™- $495/25 

Word-Master™- $150/25 

Tex-Writer™- $ 75/15 



Super-Sort™! 

Super-Sort™ll 

Super-Sort™lll 



Software/Manual 
$250/25 
$200/25 
$150/25 



MICROPRO INTERNATIONAL CORPORATION 

1299 4th Street, San Rafael, California 94901 

Telephone (415) 457-8990 Telex 340388 Dealer/OEM inquiries invited 

"PROFESSIONAL QUALITY SOFTWARE YOU CAN COUNT ON, NOW" 

*CP/M is a trademark of Digital Research Corp. 



Circle 228 on inquiry card. 



BYTE July 1979 







Figure 20. The D vector is composed of sensory variables E and context vari- 
ables R. The function G recognizes the existence ofaD vector in a particular 
region of pattern plus context space by outputting a Q vector which is the 
name of that region. 

vectors in the sensory processing hierarchy 
and those in the behavior-generating hier- 
archy. Thus we will define the input vector 
to a CMAC pattern recognizer as: 

D = E + R 

where: 

E*(d 1 ,d 2 ,...,d l ) 

is a vector, or list, of data variables derived 
from sensory input from the external 
environment, and: 

R=(d i+1 ,. . ., d N ) 

is a vector of data variables derived from re- 
called experiences, or internal context. The 



CMAC mapping operator in the sensory 
processing hierarchy will be denoted G and 
the output Q such that: 

Q = G(D) 

We can now define a CMAC D vector to 
represent a sensory pattern plus context 
such that each component dj represents a 
data point or feature of the pattern plus 
context. The existence of the D vector with- 
in a particular region of space therefore 
corresponds to the occurrence of a particu- 
lar set of features or a particular pattern in a 
particular context. The recognition problem 
is then to find a set of CMAC weights such 
that the G function computes an output 
vector: 

Q = G(D) 

such that Q is the name of the pattern plus 
context D as shown in figure 20. 

In other words G can recognize the exis- 
tence of a particular pattern and context 
(ie: the existence of D in a particular region 
of input space) by outputting the name Q. 
For example, 

Q = Class I whenever D is in Region 1 
Q = Class II whenever D is in Region 2 



etc. 

The D -> A mapping in the sensory 
processing CMAC can be chosen so as to 
define the size of the neighborhood of gen- 
eralization on the input space. This means 
that, as long as the regions of input space 
corresponding to pattern classes are reason- 
ably well separated, the G function can 
reliably distinquish one region of input space 
from another and hence classify the corre- 
sponding sensory patterns correctly. 

In the case where the D vector is time de- 
pendent, an extended portion of a trajectory 
T D may map into a single name Q as shown 
in figure 21. It then is possible by integrating 
Q over time and thresholding the integral to 
detect, or recognize, a temporal pattern T D 
such as a sound or a visual movement. 

Note that the recognition, or naming, of a 
temporal pattern (as illustrated in figure 21) 
is the inverse of the decomposition of a task 
as illustrated in figures 14 thru 1 7 in the pre- 
vious article in this series. In task decompo- 
sition a slowly varying command C is decom- 
posed into a rapidly changing output P. In 
pattern recognition a rapidly changing 
sensory experience E is recognized by a 
slowly varying name Q. 



90 July 1 979 © BYTE Publications Inc 



Wordsmith is the video text editing system you've been 
waiting for. Its power, flexibility and simplicity help you carve 
any text editing task down to size — in a way you can 
understand. We wanted a system that allows you to think in 
traditional ways about text layout, yet at the same time makes 
the traditionally tedious operations such as cut and paste 
simple and fast. We think we've done it. We want you to decide 
for yourself h^khh^h^^h^^^hmh 



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. 





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. 




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


♦ ♦ 


\ 


♦ t 



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 

COORTDSmftb 

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 DDS 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: $15 

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 B" diskette? 



Inquire about our custom keyboard. 



Circle 219 on inquiry card. 



BYTEJuly 1979 



91 







Figure 21. A time varying D vector traces out a trajectory T D which repre- 
sents a sensory experience T E taking place in the context T R . A section of 
a T D trajectory which maps into a small region of Q space corresponds to 
the recognition of an extended temporal pattern as a single event. 

The Use of Context 

It frequently occurs in pattern recogni- 
tion or signal detection that the instantane- 
ous value of the sensory input vector E is 
ambiguous or misleading. This is particu- 
larly true in noisy environments or in situa- 
tions where data dropouts are likely to 
occur. In such cases the ambiguity can often 
be resolved or the missing data filled in if the 
context can be taken into account, or if the 
classification decision can make use of some 
additional knowledge or well founded pre- 
diction regarding what patterns are 
expected. 

In CMAC the addition of context or pre- 
diction variables R to the sensory input E 
such that D = E + R increases the dimension- 
ality of the pattern input space. The context 



variables thus can shift the total input (pat- 
tern) vector D to different parts of input 
space depending on the context. Thus, as 
shown in figure 22, the ambiguous patterns 
E-j and E 2 , which are too similar to be relia- 
bly recognized as being in separate classes, 
can easily be distinguished when accom- 
panied by context R-, and R 2 . 

In the brain, many variables can serve as 
context variables. In fact, any fiber carrying 
information about anything occurring simul- 
taneously with the input pattern can be re- 
garded as context. Thus context can be data 
from other sensory modalities as well as 
information regarding what is happening in 
the behavior-generating hierarchy. In many 
cases, data from this latter source is particu- 
larly relevant to the pattern recognition task, 
because the sensory input at any instant of 
time depends heavily upon what action is 
currently being executed. For example, 
information from the behavior-generating 
hierarchy provides contextual information 
necessary for the visual processing hierarchy 
to distinguish between motion of the eyes 
and motion of the room about the eyes. 

In a classic experiment, von Hoist and 
Mittelstaedt demonstrated that this kind of 
contextual data pathway actually exists in 
insects. They observed that a fly placed in a 
chamber with rotating walls will tend to 
turn in the direction of rotation so as to null 
the visual motion. They then rotated the 
fly's head 180° around its body axis (a pro- 
cedure which for some reason is not fatal to 
the fly) and observed that the fly now 
circled endlessly. By attempting to null the 
visual motion it was now actually increasing 
it. 

Later experiments with motion percep- 
tion in humans showed that the perception 
of a stationary environment despite motion 
of the retinal image caused by moving the 
eyes is dependent on contextual information 
derived from the behavior-generating hier- 
archy. The fact that the context is actually 
derived from the behavior-generating hier- 
archy rather than from sensory feedback can 
be demonstrated by anesthetizing the eye 
muscles and observing that the effect 
depends on the intent to move the eyes, and 
not the physical act of movement. The per- 
ceptual correction occurs even when the eye 
muscles are paralyzed so that no motion 
actually results from the conscious intent to 
move. 

CMAC as a Predictive Memory 

Contextual information can also provide 
predictions of what sensory data to expect. 
This allows the sensory processing modules 



92 July 1 979 © BYTE Publications Inc 



to do predictive filtering, to compare incom- 
ing data with predicted data, and to "fly- 
wheel" through noisy data or data dropouts. 

The mechanism by which such predic- 
tions, or expectations, can be generated is 
illustrated in figure 23. Here contextual 
input for the sensory processing hierarchy is 
shown as being processed through a CMAC 
M module before being presented to the 
sensory pattern recognition G modules at 
each level. Inputs to the M modules derive 
from the P vector of the corresponding 
behavior-generating hierarchy at the same 
level, as well as an X vector which includes 
context derived from other areas of the 
brain, such as other sensory modalities or 
other behavior-generating hierarchies. These 
M modules compute R = M(P + X). Their 
position in the links from the behavior- 
generating to the sensory processing hier- 
archies allows them to function as a pre- 
dictive memory. 

They are in a position to store and recall 
(or remember) sensory experiences (E vector 
trajectories) which occur simultaneously 
with P and X vector trajectories in the 
behavior-generating hierarchy and other 
locations within the brain. For example, 
data may be stored in each Mj module by 
setting the desired output R- equal to the 
sensory experience vector Ej. At each instant 
of time t = k, sensory data represented by 
Ej k will then be stored on the set of weights 

selected by the P. + X. vector. The result 

i i 

will be that the sensory experience repre- 
sented by the sensory data trajectory Tr£. 
will be stored in association with the con- 
text trajectory Tp.+Xj. 

Any time afterwards, t = k + j, a reoccur- 
rence of the same context vector Pf+i + 
Xf +I = Pf + Xj< will produce an output 
Rj k+ i equal to the E-f stored at time t = k. 
Thus a reoccurrence of the same context 



a) 





b) 




NAME 
q ( • . . q L 




G 








a 





CONTEXT 

R 



di+i 



PATTERN 

E 



Figure 22. In (a) the two pattern vectors E-j and E 2 are too close together 
in pattern space to be reliably recognized (ie: named) as being in different 
classes. In (b) the addition of context R 1 fo E 1 and R 2 to E 2 makes the 



trajectory Tp. + Xj will produce a recall vectors D-| and D 2 far enough apart in pattern plus context space to be 



trajectory Tr. equal to the earlier sensory 



easily recognized as in separate classes. 




AIM 65 

AIM 65 is fully assembled, tested and warranted. With the addition of a low cost, readily available power 
supply, it's ready to start working for you. It has an addressing capability up to 65K bytes, and comes 
with a user-dedicated 1K or 4K RAM. 



• Thermal Printer 

• Full-Size Alphanumeric Keyboard 

• True Alphanumeric Display 

• Proven R6500 Microcomputer System Devices 



• Built-in Expansion Capability 

• TTY and Audio Cassette Interfaces 

• ROM Resident Advanced Interactive Monitor 

• Advanced Interactive Monitor Commands 



PRICE: $375.00 



(1K RAM) 

Plus $4.00 UPS (shipped in U.S. must give street address), $10 parcel post to APO's, FPO's, Alaska, 
Hawaii.Canada, $25 air mail to all other countries 

We manufacture a complete line of high quality expansion boards. Use reader service card to be added 
to our mailing list, or U.S. residents send $1.00 (International send $3.00 U.S.) for airmail delivery of our 
complete catalog. 



i]RNB> 



ENTERPRISES 

INCORPORATED 



2967 W. Fairmount Avenue • Phoenix, AZ 85017 • (602)265-7564 



Circle 325 on inquiry card. 



July 1979 © BYTE Publications Inc 93 



A 










C 4 






F4 


H 4 




Q4 


Jx 4 


















64 


R 4 


M 4 


^4 










c 3 
















E 4 ' 




F 3 


H 3 




Q 3 


4 x 3 


















G 3 


R3 


M 3 


P 3 










r° 2 


_ 


1 








1 




E3 ' 




F 2 


H 2 




Q2 


|x 2 


















62 


R2 


M 2 


P 2 










, C l 




i 








i| 


E 2 




F, 


H, 




Qi 


jx, 


















6. 


R| 


M| 


P| 








ACTION 




E ( 


1 

SEN 


SATION 







ENVIRONMENT 



Figure 23. A cross-coupled, processing-generating hierarchy. The Mj modules 
remember sensory experiences which occur in association with specific ac- 
tivity in the generating hierarchy (?;) and other sensory modalities (Xj). 
The Mj modules thus learn a set of internal expectations (ie: a predictive 
model) of the external world as seen through the sensory input channels. 



experience Te-. These predictive memory 
modules thus provide the sensory processing 
hierarchy with a memory trace of what 
sensory data occurred on previous occasions 
when the motor generating hierarchy (and 
other parts of the brain) were in similar 
states along similar trajectories. This pro- 
vides the sensory processing system with a 
prediction of what sensory data to expect. 
What is expected is whatever was experi- 
enced during similar activities in the past. 
In the ideal case, the predictive memory 
modules Mj will generate an expected 
sensory data stream Tr. which exactly 
duplicates the observed sensory data stream 

Tp.. To the extent that this occurs in 
■-i 

practice it enables the Gj modules to apply 
very powerful mathematical techniques to 
the sensory data. For example, the Gj 
modules can use the expected data Tr. to: 

• Perform cross-correlation or convolu- 
tion algorithms to detect sync patterns 
and information bearing sequences 
buried in noise. 

• Flywheel through data dropouts and 
noise bursts. 

• Detect (or recognize) deviations or 
even omissions from an expected 
pattern as well as the occurrence of 
the pattern in its expected form. 

If we assume, as shown in figure 23, that 
predictive recall modules exist at all levels of 
the processing-generating hierarchy, then it 
is clear that the memory trace itself is multi- 
leveled. In order to recall an experience 
precisely at all levels, it is necessary to gen- 
erate the same context (ie: P, + Xj address) 
at all levels as existed when the experience 
was recorded. 

Internal World Model 

We can say that the predictive memory 



PET PRINTER ADAPTER 



GET HARD COPY FROM YOUR 
COMMODORE PET USING A 
STANDARD RS-232 PRINTER 



1200B ^ 1200C 



The CmC ADA 1200 drives an 
RS-232 printer from the PET 
IEEE-488 bus. Now, the PET 
owner can obtain hard copy 
listings and can type letters, 
manuscripts, mailing labels, 
tables of data, pictures, in- 
voices, graphs, checks, needle- 
point patterns, etc., using a 
standard RS-232 printer or 
terminal. 



$98.50 adai2oob 

Assembled and tested 

$169.00 ADA 1200C 

With case, power supply 
and RS-232 connector 



'JHMB^ 


\ iA 


^BlPipfj 



Order direct or contact your local computer store. 
Add $3.00 for postage and handling per order. 

O CONNECTICUT microCOMPUTER 

|)ra 150 POCONO RD t BROOKFIELD, CT 06804 

Lo (203) 775-9659 TLX: 7104560052 



94 July 1979 © BYTE Publications Inc 



Circle 78 on inquiry card. 



modules Mj define the brain's internal model 
of the external world. They provide answers 
to the question, "If I do this and that, what 
will happen?" The answer is that whatever 
happened before when this and that was done 
will probably happen again. In short, IF I do 
Y, THEN Z will happen when Z is what- 
ever was stored in predictive memory the last 
time (or some statistical average over N last 
times) that I did Y, and Y is some action 
such as performing a task or pursuing a goal 
in a particular environment or situation, 
which is represented internally by the P 
vectors at the various different levels of the 
behavior-generating hierarchy and the X 
vectors describing the states of various other 
sensory processing behavior-generating hier- 
archies. 

The Mj modules (as all CMAC modules) 
can be thought of as storing knowledge in 
the form of IF/THEN rules. The CMAC 
property of generalization produces a recall 
vector Rj (a THEN consequent) which is 
similar to the stored experience so long as 
the context vector Pj + Xj (the IF premise) 
is within some neighborhood of the context 
vector during storage. 

Much of the best and most exciting work 
now going on in the field of artificial intel- 
ligence revolves around IF/THEN produc- 
tion rules, and how to represent knowledge 
in large computer programs based on pro- 
duction rules. Practically any kind of knowl- 
edge, or set of beliefs, or rules of behavior 
can be represented as a set of production 
rules. The CMAC hierarchy shown in figure 
23 illustrates how such computational mech- 
anisms can arise in the neurological structure 
of the brain. 



Conclusion 

We have now completed the second step 
in our development. I have described a neu- 
rological model which can store and recall 
(and hence compute) a broad class of mathe- 
matical functions. I have shown how a hier- 
archical network of such models can execute 
tasks, seek goals, recognize patterns, re- 
member experiences, and generate expecta- 
tions. The final part of this series will include 
a brief overview of evidence that such net- 
works actually exist in the brain. Also, this 
part will describe how a CMAC hierarchy 
can create plans, solve problems, and produce 
language. Finally I will discuss the design of 
robot control systems incorporating these 
properties and offer some suggestions as to 
how brain-like computing networks might be 
constructed and trained." 



ADDITIONAL READING 

1. Albus, J S, "A New Approach to Manipulator 
Control: The Cerebellar Model Articulation 
Controller (CMAC)," Journal of Dynamic Sys- 
tems, Measurement, and Control, September 
1975, pages 220 thru 233. 

2. Albus, J S, "A Theory of Cerebellar Function," 
Mathematical Biosciences, 10, 1971, pages 25 
thru 61. 

3. Eccles, J C, M. Ito, and J. Szentagothai, The 
Cerebellum as a Neuronal Machine, Springer, 
Berlin, 1967. 

4. Stelmach, G E, (editor) Motor Control: Issues 
and Trends, Academic Press, New York, 1976. 



Practically any kind of 
knowledge can be repre- 
sented as a set of pro- 
duction rules. 




Circle 33 on inquiry card. 



July 1979 © BYTE Publications Inc 95 










In order to gain optimum coverage of 
your organization's computer confer- 
ences, seminars, workshops, courses, etc, 
notice should reach our office at least 
three months in advance of the date of 
the event. Entries should be sent to: 
Event Queue, BYTE Publications, 70 
Main St, Peterborough NH 03458. Each 
month we publish the current contents 
of the queue for the month of the cover 
date and the two following calendar 
months. Thus a given event may appear 
as many as three times in this section if 
it is sent to us far enough in advance. 



July 2-13, Applications of Microcom- 
puters to Life Science Education, Michi- 
gan Technological University, Houghton 
Ml. The emphasis of this workshop will 
be on the use and development of 
educational computer models and simu- 
lations. The workshop will be set up to 
provide a maximum interaction with the 
microcomputer. Discussions will focus 
on ways of employing computer mod- 
eling techniques in undergraduate course 
work. Contact Dept of Biological Sci- 
ences, Michigan Technological University, 
Houghton Ml 49931. 

July 9-20, Computing Systems Reliabil- 
ity, University of California, Santa Cruz 
CA. Contact Institute in Computer 
Science, University of California Exten- 
sion, Santa Cruz CA 95064. 

July 11-13, Microcomputer Applications, 
Southern Technical Institute, Marietta 
GA. The emphasis of this seminar will 
beon theapplications of microcomputers 
in industry. Software, hardware and 
interfacing techniques will be discussed. 
Contact Dr Richard L Castellucis, South- 
ern Technical Institute, Electrical Engi- 
neering Technology Dept, 534 Clay St, 
Marietta GA 30060. 

July 16-1 8, Software Engineering, Crystal 
City Marriott, Arlington VA. This 
seminar is intended to familiarize the 



PARlEZ VOUS fRANQAiS? 
I doN'T, 

buT My TRS-80" doES. 

INTRODUCING TLF-5D® , THE ONLY TURN' 
KEY DISK SYSTEM AVAILABLE FOR 
LANGUAGE TRANSLATION & 




FEATURES I 

(TRANSLATOR > 

■ OVER 4,500 WORDS 

■ BO PHRASES 

■ SCREEN OR PRINTER 
OUTPUT 

■ ALPHABETICAL 
LISTING 



< INSTRUCTOR) 
FRENCH GRAMMAR 
CONJUGATIONS 
VOCABULARY ANO 
SPELLING DRILLS 
PRONUNCIATION 
METRIC CONVERSIONS 



■ ANO MUCH MORE 

INTRODUCTORY OFFER 



$ 30. 



P&H linguistics, Ins. 



56 BAY STATE RO. , BOSTON 
< 617> 266 46BB 
MCSVISA ACCEPTED 



MASS D2215 



). 



project manager, the system analyst, and 
the application programmer with tech- 
niques of developing software to meet 
user needs. Contact Information Technol- 
ogy Inc, POB 1 01 29, Austin TX 78766. 

July 16-18, Data Base Management, 
Crystal City Marriott, Arlington VA 
22202. This seminar is intended to 
familiarize the applications programmer, 
data processing manager, and software 
system engineer with the latest tech- 
niques for the implementation and use 
of data base management. Contact 
Information Technology, POB 10129, 
Austin TX 78766. 

July 16-27, Introduction to Digital 
Electronics and Microcomputer Inter- 
facing, Lexington VA. This hands-on 
laboratory course is for academic and 
industrial personnel. There will be 
approximately 60 hours of laboratory 
instruction with one microcomputer 
laboratory station for each two partici- 
pants. Contact Prof Philip Peters, Dept 
of Physics, Virginia Military Institute, 
Lexington VA 24450. 

July 19-20, Project Management, Crystal 
City Marriott, Arlington VA. The purpose 
of this seminar is to provide a basic un- 
derstanding of the methodologies, tools, 
techniques and skills of software man- 
agement. Contact Information Technol- 
ogy Inc, POB 10129, Austin TX 78766. 

| uly 19-20, Structured Programming, 
Crystal City Marriott, Arlington VA. 
This course is aimed at both program- 
mers and managers. It will cover an inte- 
grated set of software development tech- 
niques that can be scaled up for any size 
project development. It supports the de- 
velopment of error free programs by pro- 
viding the programmer with effective 
means of controlling the design and code 
through continual validation checks. 
Contact Information Technology Inc, 
POB 10129, Austin TX 78766. 

July 19-20, BASIC: A Computer Lan- 
guage for Executives, New York NY. 
Executive computing, problem solving, 
planning, forecasting and database sys- 
tems will be discussed. Also to be cov- 
ered are programming fundamentals, the 
mindless computer, sequence, decision 
and iteration, computer languages and 
BASIC. Contact American Management 
Associations, 135 W 50th St, New York 
NY 10020. 

July 23-27 Finite Element Method in 
Mechanical Design, University of Mich- 
igan, Ann Arbor Ml. This course is in- 
tended for engineers working in mechan- 
ical design where knowledge of stresses, 
displacements, or vibratory motion is im- 
portant. No previous experience with 
finite elements is assumed. The course 
will familiarize the attendee with finite 
element modeling concepts and will re- 
view the fundamentals on which the 
method is based. Contact Engineering 
Summer Conferences, 400 Chrysler Ctr, 
North Campus, University of Michigan, 
Ann Arbor Ml 48109. 



96 July 1979 © BYTE Publications Inc 



Circle 294 on inquiry card. 



August 1 -3, Microcomputer Applications, 
Southern Technical Institute, Marietta 
GA. The emphasis of this seminar will be 
on the applications of microcomputers 
in industry. Software, hardware and 
interfacing techniques will be discussed. 
Contact Dr Richard L Castellucis, South- 
ern Technical Institute, Electrical Engi- 
neering Technology Dept, 5 34 Clay St, 
Marietta GA 30060 

August 6-8, Pattern Recognition and 
Image Processing, . Hyatt Regency Chi- 
cago O'Hare, Chicago IL. This con- 
ference is sponsored by the Machine 
Intelligence and Pattern Analysis Com- 
mittee of the IEEE Computer Society. 
The program will consist of submitted 
and invited papers and a large trade 
show of graphics and image processing 
equipment. Contact PRIP 79, POB 639, 
Silver Spring MD 20901. 

August 6-10, SIGGRAPH 79, Chicago 
IL. This sixth annual conference on com- 
puter graphics will feature tutorials, 
technical sessions and an exposition of 
state-of-the art computer graphics and 
image processing equipment. Contact 
Maxine D Brown, SIGGRAPH 79 Expo- 
sition, Hewlett-Packard, 19400 Home- 
stead Rd, Cupertino CA 95014. 

August 6-10, Modern Communication 
Systems: Analysis and Design, Univer- 
sity of Southern California, Los Angeles 
CA. This course is devoted to the anal- 
ysis and design of modern communi- 
cation systems, with emphasis on the 
derivation of practical design equations 
useful for trade-off studies and overall 
synthesis. Contact University of South- 
ern California, Continuing Engineering 
Education, Los Angeles CA 90007. 

August 6-10, Advanced Microcomputer 
System Development: High Level Lan- 
guages, 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 microcom- 
puter revolution, provide hands-on pro- 
gramming experience using Extended 
BASIC and FORTRAN, analyze technol- 
ogy trends in the microcomputer field, 
and assess the impact of VHSI/VLSI. 
Contact University of Southern Cali- 
fornia, Continuing Engineering Educa- 
tion, Los Angeles CA 90007. 

August 8-10, SIGPLAN Symposium on 
Compiler Construction, Boulder CO. 
This symposium will consider methods 
of, and experience with, constructing 
compilers. The emphasis will be less on 
theoretical methods, and more on tech- 
niques applied to real compilers. Contact 
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 Per- 
sonal Computing, Hyatt Regency O'Hare, 
Chicago IL. This conference is sponsored 
by the Association for Computing Ma- 



chinery (ACM) Special Interest Group 
on Personal Computing (SIGPC). A 
large trade show of personal computer 
and graphics equipment is planned to 
accompany an assortment of papers, 
panels, user group meetings, workshops, 
and person-to-person poster booths. 
Contact Bob Gammill, Computer Sci- 
ence Division, Dept of Mathematical 
Sciences, 300 Minard Hall, North Dakota 
State University, Fargo ND 58102. 

August 13-1 5, Conference on Simulation, 
Measurement and Modeling of Computer 
Systems, Boulder CO. This conference 
will feature performance prediction tech- 
niques employed during the design, pro- 
curement and maintenance of computer 
systems. It will provide a forum for both 
applied and theoretical work in the disci- 
plines of performance monitoring, mod- 
eling, and simulation of computer sys- 
tems. Contact Gary Nutt, Xerox PARC, 
3333 Coyote Hill Rd, Palo Alto CA 
94304. 

August 13-16, Q-GERT Network Mod- 
eling and Analysis, Ramada Inn, Lafay- 
ette IN 47905. This course will provide 
the attendee with the information neces- 
sary to model complex systems using 
Q-GERT. Emphasis will be on the pro- 
cedures for modeling and analysis. 
Contact Pritsker and Associates Inc, 
POB 241 3, W Lafayette IN 47906. 



August 1 3-1 7, High Speed Computation: 
Vector Processing, The University of 
Michigan, Ann Arbor Ml. In this course, 
the architectural, software, and algorith- 
mic issues of vector architecture are co- 
ordinated by the discussion of concepts 
in computer architecture, and by de- 
tailed study of current vector proces- 
sors and their use. Contact Engineering 
Summer Conferences, 400 Chrysler Ctr, 
North Campus, The University of Mich- 
igan, Ann Arbor Ml 48109. 

August 19-22, International Conference 
on Computing in the Humanities, Dart- 
mouth College, Hanover NH. This con- 
ference is intended to foster computer 
research and technique in all areas of 
humanistic study; to promote interna- 
tional cooperation in the development of 
programs, data banks, and equipment; 
and to make the results of research avail- 
able. The program will include a plenary 
session each evening and shorter ses- 
sions during the day. Contact Stephen V 
F Waite, Kiewit Computation Ctr, Dart- 
mouth College, Hanover NH 03755. 

August 19-24, 1979 Symposium for 
Innovation in Measurement Science, 
Hobart and William Smith Colleges, 
Geneva NY. Sponsored by the Scientific 
Instrumentation and Research Division 
of the Instrument Society of America, 
scheduled sessions at this symposium 



READ THE MAGAZINE 
THE PROS READ. 



For over 20 years DATAMATION has 
been the magazine for the data processing 
professional. Now DATAMATION 
magazine is available to hobbiests, busi- 
ness men, accountants, engineers, pro- 
grammers . . . anyone with a deep curiosi- 
ty about the real world of data process- 
ing. 

Written by the data processing pro- 
fessional for the data processing profes- 
sional, DATAMATION magazine's arti- 
cles 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 as 
well as a monthly department on person- 
al computing. 

Whether your interest in computers is 
for fun or profit, DATAMATION maga- 
zine has a world of information for you 
every month . . . plus an annual Special 



Edition, the Industry Profile featuring 
the "DATAMATION 50" — the top 
U.S. DP companies. 



TECHNICAL PUBLISHING COMPANY 
A Dun & Bradstreet Company 
35 Mason St., Greenwich, CT 06830 
(203) 661-5400 




FOR A ONE YEAR SUBSCRIPTION 
(13 ISSUES) SEND $32. 



' TO: SUZANNE A. RYAN 

1 DATAMATION magazine 

; 666 FIFTH AVENUE 

I NEW YORK, NY 10019 



Name 



Address 



I City_ 



L 



State/ Zip. 



magazine 



Circle 94 on inquiry card. 



July 1 979 © BYTE Publications Inc 97 



include innovation in computers and 
electronics, mass flow measurement, 
chemical analysis, applied analysis in 
instrument control, physical analysis, 
medical instrumentation, and advances 
in industrial measurement. Contact In- 
strument Society of America, 400 Stan- 
wixSt, Pittsburgh, PA 15222. 

August 23-26, National Small Computer 
Show, New York Coliseum, New York 
NY. Exhibitions will include those of 
major manufacturers, distributors, and 
publications in the small computer field. 
A lecture series will include topics of 
interest to business and professional 
people, hobbyists and the general 
public. Contact National Small Com- 
puter Show, 74 E 56th St, New York 
NY 1 0022. 

September 4-6, International Conference 
and Exhibition on Engineering Software, 
University of Southampton, England. 
The aim of this conference is to provide 
a forum for the presentation and discus- 
sion of recent advances in engineering 
software and the state-of-the-art in this 
field. The exhibition, held in conjunc- 
tion with the conference, will cover all 
software products, services and equip- 
ment related to engineering software. 
Contact Dr R Adey, Engsoft, 6 Cran- 
bury Place, Southampton S02 OLG, 
ENGLAND. 

September 4-7, Compcon Fall '79, 
Capital Hilton Hotel, Washington DC. 
This 18th IEEE Computer Society 
International conference will present the 
latest developments in microprocessor 
architecture, support software, operating 
systems, and peripheral devices. Contact 
IEEE Computer Society, POB 639, 
Silver Spring MD 20901. 

September 5-8, Info/Asia, Ryutsu Center, 
Tokyo. This exposition will be devoted 
to information management, computers, 
word processing and advanced business 
equipment. The exposition will be ac- 
companied by a four day conference. 
Contact Clapp and Poliak Inc, 245 Park 
Av, New York NY 10017. 

September 18-20, Wescon/79, St Francis 
Hotel, San Francisco CA. Contact Elec- 
tronic Conventions Inc, 999 N Sepulveda 
Blvd,EISegundoCA 90245. 

September 25-27, WPOE '79, San Jose 
Convention Ctr, San Jose CA. This show 
will be dedicated to word processing and 
office/business equipment, services and 
materials. Complementing the exhibit 
will be a three day executive conference 
program that focuses on emerging tech- 
nologies and their applications in the 
office. Contact Cartlidge and Associates 
Inc, 491 Macara Av, Suite 1014, Sun- 
nyvale CA 94086. 

September 26-29, MIMI '79, Queen Eliz- 
abeth Hotel, Montreal, Canada. This 
symposium is intended as a forum for 
the presentation and discussion of recent 
advances in mini and microcomputers 
and their applications. Special emphasis 



will be given to the theme of the con- 
ference, "The Evolving Role of Minis 
and Micros Within Distributed Process- 
ing.'* Contact The Secretary, MIMI '79 
Montreal, POB 2481, Anaheim CA 
92804. 

September 28-30, Northeast Personal 
and Business Computer Show, Hynes 
Auditorium, Boston MA. Displays and 
exhibits will showcase microcomputers 
and small computer systems of interest 
to businesspeople, hobbyists, profes- 
sionals, etc. Lectures and seminars will 
be presented for all categories and levels 
of enthusiasts, Including introductory 
classes for novices. Contact Northeast 
Exposition, POB 678, Brookline MA 
02147." 



Letters 



Text continued from page 6: 

written) would only perform garbage 

collection. 

There are more facilities which could 
be added to this simple data base struc- 
ture, but it would probably be better to 
stop at this point. 

Jack L Warner 

Bell Laboratories 

600 Mountain Ave 

Murray Hill NJ 07974 

HAMMING ERROR CORRECTING 
CODE HAS PROBLEMS? 

Michael Wimble recently described a 
method for storing coded data using a 
Hamming error correcting code which 
will correct a single bit error and detect 
double bit errors (February 1979 BYTE, 
page 180). It is very similar to a scheme 
I have used successfully for several 
years and recently published (Computer 
Design, September 1978). 

Mr Wimble's scheme, however, will 
cause havoc with some data recording 
devices as some of his coded bytes are 
exactly the same as some of the common 
control characters, ie: his data 3, coded 
as a hexadecimal 93, is identical to the 
ASCII Device Control 3 character, and 
data E, coded as a hexadecimal IE, is the 
ASCII Record Separator. The latter 
should not cause trouble, but the former 
will automatically activate or deactivate 
some kinds of papertape terminals. 

If this is likely to be a problem on 
the equipment you are using, one simple 
way to overcome it is to omit the P4 
parity bit altogether and use strictly 7 
bit codes. The media channel on which 
the omitted bit would have been stored 
is then placed so that no objectionable 
control characters are ever generated 
(except, of course, by error). Programs 
to generate and decode such schemes are 
presented in the Computer Design paper 
cited above. 

You are not able to detect double 
errors using only 7 bits, but if your 



equipment is that bad it's probably time 
to pack it in anyway. 

George White 

Institut de Recherche 

d'lnformatique et d'Automatique 

Domaine de Voluceau 

Rocquencourt BP 105 

78150 LeChesnay FRANCE 

COMMENTS FROM A CHESS MASTER 

I was most flattered to read the story 
about my chess match with CHESS 4.7 
("Chess 4.7 versus David Levy" Decem- 
ber 1978. BYTE, page 84) and I am 
delighted that you have been giving chess 
such excellent coverage in the pages of 
your magazine. 

Since your article appeared I have 
been plagued by people writing to 
ask whether I have collected the $2,500 
that I won in the bet. Professors Donald 
Michie (Edinburgh University), John 
McCarthy (Stanford University) and 
Seymour Papert (MIT) paid promptly 
and with great sportsmanship, just as I 
would have done had I lost the bet. 
Edward Kozdrowicki (Aerospace Cor- 
poration, El Segundo CA) has refused all 
attempts to persuade him to pay. 

I hope that this will answer any 

further readers who might be curious 

about the bet. 

David N L Levy 

104 Hamilton Terrace 

London NW8 9UP 

ENGLAND ■ 



BYTE's Bugs 



Community Bulletin Board Correction 

In the BYTE News for April 1979 
(page 195) we mentioned that there was 
a PCNET run by the Chicago Area Com- 
puter Hobbyist Exchange. We should 
have said that a Community Bulletin 
Board is privately run by Ward Christen- 
sen and Randy Suess. 

Correction 

In May's "What's New" on page 254 
we listed Semionics Associates' REM 
S-100 board as having a capacity of 8 K 
bytes and priced at $525. This should 
have read "The REM S-100 add-in 
recognition memory board has a capa- 
city of 4 K bytes and is priced at $345." 

Trap Door Trap 

For shame! The National Bureau of 
Standards standard data encryption 
algorithm is not a trap-door algorithm. 
That term refers to one-way or public 
key systems. 

Don McClimans 

Computer Systems Consultant 

41 Washburn Pk 

Rochester NY 14620 

Oops! You, along with several other peo- 
ple, caught us with that one. [RGAC] ■ 



98 July 1979 © BYTE Publications Inc 



iiiiniiiiiiiiiiiiiiiiiiiniiinaimiinniiiiiiiiiiiiiiiiiiii i ■ ■■■■■■ ■ ■■■■ iiiiiiiiiiiiiiiiiiiiiiiiNiiiiiiiiiiiiiiiiiiiniiiiiiiiiiniiiiiiiiii 

BYTE News . • . . 



iiiiiiiiiiiniiiiiiiiiiuiiiiiiiiiiiiiiiiiiiiiiiiiiiiHi 



iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii 




FCC TRYING TO CRACK DOWN ON TV INTERFERENCE . The Federal Communications Commission 
(FCC) has asked Atari, Apple, Commodore, Heath, Southwest Technical Products, and Radio Shack 
to submit their personal computer systems for TV interference testing. The systems made by these 
companies are presently exempted from FCC regulations since they are not directly connected to a 
TV set. However, there have been complaints regarding radio frequency (RF) interference from 
personal computer systems, and the FCC has decided to develop regulations regarding permissible 
RF radiation levels. 

The computer manufacturers involved have indicated a willingness to cooperate with the FCC's 
effort. The regulations could fine noncomplying manufacturers and permit the issuance of cease and 
desist orders. Some industry experts feel that a few manufacturers' computer systems would not pass 
the FCC regulations. 

INTEL ENHANCES 8086 FAMILY WITH I/O PROCESSOR . Intel continues to lead the way in 
microprocessor and microcomputer systems. Recently they announced the 8089, an I/O (input/output) 
processor to work with the 8086 16 bit microprocessor. This processor can more than double the 
performance of the 8086 by relieving it of I/O operations, much like the communications channel on 
an IBM 370. 

$200 DISK SYSTEM EXPECTED BY YEAR END . Shugart and Matsushita Electric of Japan have signed 
an agreement whereby Matsushita will manufacture a low cost version of Shugart's popular minifloppy 
disk drive. The drive is expected to sell for $50 in large OEM quantities and retail at about $125. Add 
to this the interface/controller circuitry, and the total retail cost should work out to a little over $200. 
This is less than a third of the price of current minifloppy systems. Matsushita expects to be making 
100 Strives per hour by year end. 

The drive will store 70 K bytes, use a new head design, and be housed in sheet metal rather than 
cast aluminum. It will be only 2 inches high, half the height of the current drive. An industrial 
version with heavy duty components will be sold at $65 OEM. 

Nippon Electric (NEC) is also rumored to be developing a low cost 5 inch disk drive. 

14 MILLION MICROPROCESSORS SOLD LAST YEAR . That's right, 14 million microprocessors were 
manufactured in 1978. One million 8 bit microprocessors and 13 million 4 bit microprocessors were 
made. If you didn't realize it already, most were used in games. The most manufactured 
microprocessors were the 8 bit 6502 and the 4 bit TMS-1000. However, sales of electronic games 
using microprocessors have recently taken a sharp drop. Hence, the probability exists that there may 
be a slight decrease in microprocessor production in 1979. 



16 BIT MICROPROCESSOR PICTURE STILL FUZZY . It is beginning to look as if Intel may have taken 
the right approach with the 8086 by designing a part which could be placed in production far ahead 
of the Zilog Z-8000 or Motorola 68000. They have over a year's head start compared to the Z-8000 and 
possibly another half year's lead over the 68000. 

The 8086 part is far simpler than the Z-8000 or 68000 parts, and as a result it is closer to the earlier 
generations of microprocessors. Support parts for the 8086 such as the new 8087 floating point 
coprocessor also give the 8086 a commanding availability lead over the other two contenders at this 
time. All three machines are aimed at the high end of microcomputer application, providing signi- 
ficant computational power equivalent to traditional mini and main frame computers. 

July 1 979 © BYTE Publications Inc 99 



In the meantime, the traditional minicomputer manufacturers are not sitting still. Digital Equipment 
Corp (DEC), the largest of the "old-time" minimakers, has created an integrated circuit 
manufacturing facility to make its own 16 bit microprocessor (the LSM1). This fall they will be 
making a super-micro mainframe, called the LSI-11/23, that will have almost all the power of a 
standard minicomputer at a fraction of the price ($6,800 compared to $12,000). 

THE JAPANESE ARE COMING . Although last year a few Japanese electronics manufacturers 
introduced personal computer systems on their own home ground, none, so far, has ventured into 
the US market. This is probably due to the competition that already exists and the lack of sufficient 
price markup on personal computer systems. If the Japanese enter the personal computer market, it 
will probably be in the peripherals area. 

However, the first major Japanese manufacturer has entered the small business computer 
market. NEC has introduced its ASTRA series of 16 bit microcomputer systems that start at $13,000 
and range up to $130,000. The video terminal employs a Z-80 processor. 

NEW BUBBLE MEMORY TECHNOLOGY . In a paper delivered by a Bell Laboratory researcher at a 
recent conference, it was disclosed that Bell Labs has made a major breakthrough in bubble memory 
technology/This breakthrough will mean a four times increase in storage size, a substantial decrease 
in cost and ten times faster operating speed. Although Texas Instruments and Rockwell have been in 
production on bubble memory devices for nearly a year, their high cost and small storage capability 
have prohibited their wide use. This new development, which will still take a few years to reach the 
market, should have a large impact on the mass storage area, particularly floppy disks. 

The new device replaces the drive coils used in present bubble memories with wafer-thin 
conductive layers of gold or aluminum overlaid on the garnet structure. A current flows through these 
layers forming tiny magnetic fields around holes etched into the surface. The polarity of these fields 
controls the bubble movements. 

By eliminating the costly and bulky coil structure, a new pathway design became available which 
provides a fourfold increase in storage capacity, is easier and less costly to produce, and reduces 
integrated circuit size, thereby reducing travel time. 

IBM also announced that it has fabricated bubble memory devices that are 1 square inch in size 
and contain 25 M bits. These devices were made at the IBM Research Center in Yorktown Heights NY. 

In the meantime, TI and Rockwell are currently sending out samples of their 256 K bit bubble 
devices and expect to be in production on these units by the end of the year. They expect to be 
sampling 1 M bit devices by the end of 1980, with production beginning in 1981. 

On the whole, it does not appear that bubbles will provide any meaningful competition to floppies 
until the mid 1980s. 

PERSONAL COMPUTER/CABLE TELEVISION SYSTEM PLANNED. Six Star Cablevision, a Los 
Angeles cable television outfit, will soon begin test marketing a personal computer system designed 
for use with a closed circuit TV system. Six Star will allocate 3 of 42 available channels to transmit 
data from data banks to subscribers. They claim to have 50 applications programs already prepared, 
which would be regenerated every 7 seconds. They plan to use a Mattel personal computer system 
with a printer, and charge $4 to $6 above the regular $7.50 monthly fee. 



Sol Libes 

ACGNJ 

1776 Raritan Rd 

Scotch Plains NJ 07076 




July 1979 © BYTE Publications Inc 



"BOOKS OF INTEREST TO COMPUTER PEOPLE" 




More BYTE 



Hilt 



KS 



in your future 



Circle 36 on inquiry card. 



BYTE July 1979 101 



And the future 



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



\0l 



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



SUPERWUMPUS is an excit- 
ing computer game incorpo- 
rating the original structure of 
the WCIMPCIS 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, SCIPERWCIMPCIS is not only addictively fun, 
but also provides a splendid tutorial on setting up 
unusual data structures (the tunnel and cave system 
of SCIPERWCIMPCIS forms a dodecahedron). This is a 
PAPERBYTE™ book 





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 collection of more than a year's worth of 
the popular series in BYTE magazine, Ciarcia's Circuit 
Cellar includes the six winners of BYTE's On-going 
Monitor Box (BOMB) award, voted by the readers 
themselves as the best articles of the month: Control 
the World (September 1977), Memory Mapped IO 
(November 1977), Program 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 



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



\0I 



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



is right now! 



BASEX, a new compact, compiled language for 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. I n 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 
IO 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. 



$221 



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



<dJBBh^ 




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. 

ISBN 0-931718-13-9 
Editor: Blaise W. Liffick 
Pages: approx. 80 
Price: $6.00 
Publication: Winter 1979 



RA6800ML: AN M6800 RELOCATABLE MACRO 
ASSEMBLER is a two pass assemblerf orthe 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 ICOM Floppy Disk Operating System), 
and some form of mass file storage (dual cassette 
recorders or a floppy disk). 

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

There is a complete description of the 6800 Assembly 
language and its components, including outlines of 
the instruction and address formats, pseudo 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 IO driver source code 
listings, and PAPERBYTE™ bar code representation 
of the Assembler's relocatable object file are all included 

This book provides the necessary background for 
coding programs in the 6800 assembly language, and 
for understanding the innermost operations of the 
Assembler. 

ISBN 0-931718-10-4 
Author: Jack E. Hemenway 
Pages: 184 
Price: $25.00 



to order books see next page 






LINK68: AN 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 I COM 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-023 
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, I nc, 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. 
D Computer Music $10.00 □ Simulation $6.00 



□ SUPERWUMPUS $6.00 

□ Tiny Assembler (3.1) $9.00 

□ Circuit Cellar $8.00 
DBASEX$8.00 

□ Program Design $6.00 



DRA6800ML $25.00 
DLink68$8.00 

□ TRACER $6.00 
DMondeb$5.00 

□ Bar Code Loader $2.00 



Total Books 
Add 60$ per book 
Postage/Handling 

Grand Total 



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



Name 



Title 



Company 



Street 



City 



State/Province 



Code 



V / 



1 04 BYTE July 1979 



Circle 36 on inquiry card. 



KurtSchmucker 
Mathematician 
Dept of Defense 
Washington DC 
20755 



The 

Mathematics 
of Computer 
Art 




Introduction 

Computer scientists and personal com- 
puter enthusiasts have a great appreciation 
of the beauty and form of art. They often use 
the tools of their trade, the computer and 
its associated peripheral devices, to create 
works of art. These works express particular, 
somewhat algorithmic and mathematical 
tastes in art forms. Since the late 1960s the 
use of computers and computer controlled 
devices for the generation of this artwork 
(often in three dimensions) has been firmly 
established. (See references 3, 4, 8, 9, and 
14.) A great portion of this artwork has 
relied heavily on the computer's ability to 
precisely manipulate numerical quantities 
to produce drawings or sculptures that ex- 
press complex mathematical relationships. 
Drawings in this category include figures 
which show the relationships between the 
phase, amplitude, and periods of different 
trigonometric functions; graphs of functions 
of two or more variables; and moire patterns 
that can express complex relationships by 
interaction between families of similar sim- 
ple curves (see reference 1 3). 

This is not to say that all or even the 
majority of computer art is inherently math- 
ematical. Two of the latest crazes in com- 
puter art, the recreation of natural scenes 
and the randomly drawn picture (called 
"controlled serendipity" by one artist in 
reference 11), are in essence nonmathe- 
matical. This article, however, will be 



concerned only with those figures which 
have mathematics as their basis. 

Among figures which rely heavily on 
mathematics, two classes can easily be sepa- 
rated. One class is distinguished by the fact 
that it is precisely the equations themselves 
which give the figures beauty and appeal. 
While even the mathematically uninitiated 
can perceive the beauty of these forms, only 
those who understand the underlying mathe- 
matics can fully appreciate the plots. Some 
examples of this class are the end less varieties 
of lissajous figures (see references 2 and 6), 
and two other famous trigo no metrically 
based plots, "Sine Curve Man" (shown in 
figure 1; see reference 15) and "Christmas 
Wreath" (see reference 1). The beauty of 
"Sine Curve Man" is in part due to the undu- 
lating sine curves, differences in the phase 



Figure 1: "Sine Curve 
Man" by Charles Csuri and 
James Shaffer, a trigono- 
metrically based plot. Re- 
printed with permission 
from Computers and Auto- 
mation,. August 1967, 
Copyright 1967 and pub- 
lished by Berkeley Enter- 
prises Inc, 815 Washington 
St, Newtonville MA 02160. 



About the Author 

Kurt J Schmucker has been employed as a mathematician at the 
Department of Defense in Washington DC since 7974. He has masters 
degrees from both Michigan State University and Johns Hopkins Uni- 
versity. He is now an advanced special student in the Computer Science 
Department at the University of Maryland and an assistant professorial 
lecturer in computer science at George Washington University, Mr 
Schmucker 's current interests are in natural language processing and 
computer graphics. 

Mr Schmucker is the author of "The Computers of Star Trek/' 
which appeared in the December 7977 BYTE. 



July 1 979 © BYTE Publications Inc 1 05 



between the different curves, and the varia- 
tion in the amplitudes. These form the 
mathematical base for the figure. 

The other class of figures relies on mathe- 
matics not for the positioning of the actual 
lines but for the meaning or the importance 
of the resulting total plot. For these figures, 
the actual equations which are plotted are 
not as important as the relationships which 
are revealed. Some examples of this class are 
moire patterns and projection plots of multi- 
dimensional figures (see reference 1 2). 

An example of a moire figure is shown in 
figure 2. Notice that the lines in this figure 



are nothing more than regularly spaced radii 
of two circles — lines whose equations are 
easily determined. What is fascinating is the 
complex interference pattern, a pattern 
which can express complex relationships 
between those lines. In this article, these two 
classes of figures will be discussed by ex- 
amining in detail one example of each. 

Crest 

An example of a computer generated fig- 
ure which relies on complex mathematical 
relationships for its beauty is the crest, 




Figure 2: Mo ire figure, an 
interference pattern be- 
tween regularly spaced 
radii of two circles. 



1 06 July 1 979 © BYTE Publications Inc 



shown in figure 3 (see reference 5). While 
the beauty of this figure can be appreciated 
without examining its mathematics, a more 
complete understanding is necessary in order 
to reproduce it on a different computer or to 
fully comprehend the complexity of the 
figure. One can easily examine figure 3 and 
determine by its symmetry the decomposi- 
tion which is shown in figure 4, 

The basic unit of figure 3 is shown in fig- 
ure 5. If the equations which generate the 
basic unit can be found, then the entire fig- 
ure can be generated by appropriately ma- 
nipulating these equations. In an analysis of 
the unit in figure 5, one can see that the 
equation of the outer envelope of lines is the 
only portion of real importance. An examina- 
tion of this curve brings to mind the spirals 
studied when one first encounters the use 
of polar coordinates. There are a number of 
different kinds of such spirals, most notably 
the spiral of Archimedes, the parabolic spiral, 
and the logarithmic spiral. By comparing the 
graphs of these spirals to figure 5 it can be 
seen that the logarithmic spiral closely ap- 
proximates the desired curve. Recall that a 
logarithmic spiral (shown in figure 6) has an 
equation of the form r = ae _0 ' b , where a 



and b are positive real numbers. By a suit- 
able choice of the constants a and b, along 
with some transformations applied to the 
equations of two such spirals, we will be 
able to obtain the equation of the desired 
envelope. 

To find the equation of this envelope, the 
graph of the logarithmic spiral must be ro- 
tated, translated, and reflected. The fact that 
the curve is usually expressed in polar form 
simplifies this task considerably. All three of 
these transformations can be expressed 
much more easily in that system than in 
Cartesian coordinates. Figure 7 shows the 
resulting graphs and their equations as the 
graph of the spiral is progressively reflected 
about the y axis, rotated clockwise by 60°, 
and translated. 

Superimposing the graph of: 

x = -ae~ 0/b cos(0 - rr/3) + a cos tt/3 
y = ae~ 0/b sin(0 -tt/3) + a sin it/3 

upon the last portion of figure 7, the graph 
in figure 8 is obtained, which is precisely the 
desired envelope. 

Text continued on page 7 70 



Except where noted 

Illustrations by: 

Alexander A Ames 
Systems Analyst 
Dept of Defense 
Washington DC 
20755 



A COMPLETELY REFURBISHED "SELECTRIC" ASCII 
TERMINAL FOR THE SMALL BUSINESSMAN OR SERIOUS HOBBYIST 

The AJ 841 I/O terminal. 
Now available from dealers nationwide. 



Demand for our AJ 841 I/O computer terminal has 
been great. And now it's getting even greater. So call your 
local computer shop dealer right away. Supply is limited! 
You may never have another opportunity like this one to buy 
your own professional terminal. 




The A J 841 features: 

• Choice of serial RS 232 or parallel interface 

• ASCII code 

• 14.9 cps printout 

• High quality Selectric printing 

• Heavy-duty Selectric mechanism 

• Off-line use as typewriter 

• Documentation included 

• 30-day warranty on parts and labor (details available 
on request) 

Call toll-free now 

For location of your nearest AJ dealer, call toll-free: 

800/538-9721 

California residents call 408/263-8520. 




Circle 9 on inquiry card. 



July 1979 © BYTE Publications Inc 107 



Aw, cut it out! 




DIGITAL RESEARCH 




L 



/Manual 
Alone 

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

D 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) $1 00/S1 5 

□ 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/$ 15 

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

□ DESPOOL — Program to permit simultaneous printing of 
data from disk while user executes another program from the 
console $50/$1 

MICROSOFT 

□ Disk Extended BASIC — New version, ANSI compatible 
with long variable names, WHILE/WEND, chaining, variable 
length file records $300/525 

□ 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 Pseudo-compiler with relocatable 
object runtime package. Format same as FORTRAN-80 and 
MACRO-80 modules. Complete ISAM, interactive ACCEPT/ 
DISPLAY, COPY, EXTEND $625/$25 

□ MACRO-80 — 8080/Z80 Macro Assembler. Intel and Zilog 
mnemonics supported. Relocatable linkable output. Loader, 
Library Manager and Cross Reference List utilities included 

$149/$15 

□ MACRO-80 plus FORTRAN subroutine library available. Li- 
brary includes ABS, SIGN, EXP, DLOG, SORT, DSQRT, /§«\i< 
ATAN, DATAN etc. etc $219/$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/$ 1 5 

XITAN (software requires Z-80 CPU) 

□ Disk BASIC — Fast powerful interactive interpreter. PRI- 
VACY password security. Can dynamically open a large 
number of files simultaneously for random or sequential I/O 

$159/$20 

□ 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 $69/$20 

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

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

*CP/M is a trade name of Digital Research 



Software / 

with /Manual 
Manual/ Alone 

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

□ Super BASIC — Sub-set of Xitan Disk BASIC with extensive 
arithmetic and string features but without random access data 
file support. Available optionally with features to supDort VDB 
Xitan video output board $99/$20 

□ A3 package includes Z-TEL, TOP, ASM and Super BASIC 

. . . $249/$ 40 

□ A3+ package includes Disk BASIC, Z-TEL, TOP, ASM, 
Z-BUG and LINKER $409/$40 

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 I 



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 

□ Corresponder — Mail list system, supporting form letter 
generation with personalized greetings. Reference fields per- 
mit sorting and extraction by name, address fields or reference 
data using Super Sort. Requires CBASIC $95/$25 

SOFTWARE SYSTEMS 

CBASIC-2 Disk Extended BASIC — Non-interactive BASIC 
with pseudo-code compiler and runtime interpreter. Supports 
full file control, chaining, integer and extended precision var- 
iables etc. Version 1 users can receive Version 2 and new 
manual for $45 with return of original diskette. Standard CP/M 
and TRS-80 CP/M versions available $90/$1 5 

STRUCTURED SYSTEMS GROUP 

□ General Ledger — Interactive and flexible system providing 
proof and report outputs. Customization of COA created inter- 
actively. Multiple branch accounting centers. Extensive check- 
ing performed at data entry for proof, COA correctness etc. 
Journal entries may be batched prior to posting. Closing pro- 
cedure automatically backs up input files. All reports can be 
tailored as necessary. Requires CBASIC $899/$20 

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/S20 

□ 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 $20 

□ 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 

□ 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 $95/$20 



108 



BYTE July 1979 



Software for most popular 8080/Z80 computer disk systems, including 
NORTH STAR, MICROPOLIS, iCOM, SD SYSTEMS, DYNABYTE DB8I2, 
HELIOS, ALTAIR, TRS-80, 8" IBM and OHIO SCIENTIFIC formats. 



Software / 

with /Manual 
Manual/ Alone 

GRAHAM-DORIAN SOFTWARE SYSTEMS 

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

S605/S35 

□ APARTMENT MANAGEMENT SYSTEM - Financial 
management system for receipts, disbursements and security 
deposits of apartment projects. Captures data on vacancies, 
revenues, etc. for annual trend analysis. Daily report shows 
late rents, vacancy notices, vacancies, income lost through 
vacancies, etc. Requires CBASIC. Supplied in source code. 

$605/$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 $605/$35 

OTHER 

□ Z80 Development Package — Consists of: (1) disk file 
line editor, with global inter and intra-line facilities; (2) Z80 
relocating assembler, Zilog/Mostek mnemonics, conditional 
assembly and cross reference table capabilities; (3) linking 
loader producing absolute Intel hex disk file for CP/M LOAD, 
DDT or SID facilities. Standard CP/M and TRS-80 CP/M ver- 
sions available $95/$ 15 

□ TEXT WRITER 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 
other files. Ideal for contracts, manuals, etc S75/S5 

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

□ DISZILOG — As DISINTEL to Zilog/Mostek mnemonic files. 
Runs on Z80 only. Standard CP/M and TRS-80 CP/M versions 
available $65/$1 



Filitin. 

Lifeboat Associates, 2248 Broadway, New York, N.Y. 10024 (212) 580-0082 



Software / 

with /Manual 
Manual/ Alone 

□ 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 unique 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 

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

□ Selector 1 1 — 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 

□ 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/520 

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 

□ Flippy Disk Kit — Template and instructions to modify sin- 
gle sided 5 1 /i" diskettes for use of second side in singled sided 
drives $9i75 

□ 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 

□ TRS-80 FORTRAN PACKAGE - Professional disk- 
based language and utility package written by Microsoft, 
creators of Level II BASIC, the package runs on a TRS-80 
system with 32K RAM, one or more drives and TRSDOS. The 
software is supplied on diskettes and consists of a relocatable 
machine code FORTRAN Compiler, Macro Assembler, a Link- 
ing Loader, Subroutine Library, Text Editor $325 

Macroassembler, loader and editor alone $165 



1 



Software 


Price 


□ manual alone 




□ manual alone 




□ Check DU.P.S, COD □ Visa □ Master Charge 


Shipping 




Account # Exp. Date 


$1.00 for C.O.D. 




Signature 


Total 




My computer configuration (specifying disk system): 


Name 


Address (No P.O. Box) 


City State 




Zip 




EFFECTIVE APRIL 15. 1979 



*\The Software Supermarket is a trademark of Lifeboat Associates 



Disk systems and for- 
mats: North Star single or 
double density, IBM 
single or 2DI256, Altai r, 
Helios II, Micropolis Mod 
I or II, 5Va" soft sector 
(Micro iCOM/SD Sales/ 
Dynabyte), etc. 

Add $1 litem ship ping ($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. 




Jboat Associates 

„ THE 

SOFTWARE 
.SUPER- 
MARKET 




BYTE July 1979 



109 




Figure 3: "Crest. " This figure is composed of fundamental units shown in 
figure 5, and the authors algorithm is explained in the text. 




Text continued from page 707: 

By redoing this work in rectangular coor- 
dinates, we can see how much easier it is to 
manipulate these equations in the polar co- 
ordinate system. The reflected, rotated, and 
translated coordinates of a point (X,Y) can 
be calculated with the matrix equation 
which is called a in table 1. 

Substituting the specific values needed to 
repeat the previous work and multiplying 
the three 3 by 3 matrices together, we ob- 
tain equation b in table 1. This is the same 
result obtained earlier. 

It is now a trivial matter to obtain the 
lines in figure 5 by drawing chords between 
points selected equiangularly along each of 
the two curves. One can extend this by 
similar modifications to the equation r = 
ae -0/b t0 obtain the crest in figure 3. The 
constants a and b determine the size of the 
resulting plot and the curvature of each of 
the six "leaves" respectively. 

The Dissected Square 

The plot in figure 9 is not too difficult 
to understand at first glance (see reference 
7). In essence it is a set of concentric squares 
with the area between the squares divided 
into smaller squares. Postponing the detailed 
discussion until later, the figure can be con- 
structed in the following manner: given a 
square with a side of length X, construct 
a concentric square with a smaller side of 
length Y. The value of Y is determined by X 
in a manner to be explained later, but note 
that Y < X. Extend the sides of the smaller 
square until they meet the edges of the 
square of side X. The intermediate result is 
shown in figure 10. Divide the shaded 
regions into squares. (It will be shown that 
this is always possible when X and Y are 
chosen carefully.) At this point, consider the 
square of side Y to be the outer square and 



Figure 4: Decomposition of crest in figure 3. 

110 July 1979 © BYTE Publications Inc 




Figure 5: Fundamental 
building block of the crest 
figure. The form of the 
curves resembles a loga- 
rithmic spiral. 




The 

Software 

Company 



Technical Sy/tem/ Con/ultant/, Inc. 



6800 & 8080 Text Processing 

TSC's Text Editing System and Text 
Processing packages, available for both 
6800 and 8080, can turn your micro into 
a very powerful word processing system. 
Two steps are involved. First you edit a 
file to say what you want without 
worrying about justification, pagination, 
etc. The TSC editor is a very powerful 
line and content oriented editor which 
may be used for this purpose. 

The second step is to "process* the 
edited file. The TSC text processor 
reads the edited file and outputs it to a 
printer with right justification, 
pagination, page numbering and titling, 
indenting, margin control, title 
centering, and much more. Macros may 
be written in the text processor 
commands which allow complex 
operations such as footnotes, form 
letters, or almost anything imaginable. 

Price includes manual with printed 
source listing and object code on tape 
or disk. 

6800 Text Editing System 

SL68-24C w/cassette $30.45 

SL68-24D w/mini FLEX™ disk $31.50 
SL68-24F w/8" FLEX™ 1.0 disk $50.00 

8080 Text Editing System 

SL80-10P w/papertape $37.50 

SL80-10F w/8" CP/M™ disk $40.00 

SL80-10D w/5" HS CP/M™ disk $40.00 

6800 Text Pr ocessing System 

SL68-29C w/cassette $38.95 

SL68-29D w/mini FLEX™ disk $40.00 

SL68-29F w/8" FLEX™ 1.0 disk $75.00 

SL68-29F2 w/5" FLEX™ 2.0 disk $65.00 

8080 Text Processing System 

SL80-11P w/papertape $41.00 

SL80-11F w/8" CP/M™ disk $50.00 

SL80-11D w/5" HS CP/M™ disk $50.00 



FLEX ™ Software 

The FLEX™ disk operating system is 
rapidly becoming the standard of 6800 
disk users. It's powerful capabilities and 
ease of use make it a natural choice for 
any application from the most minimal 
hobbyist system to the most complete 
industrial development system. 

FLEX™ for SWTPC and SSB 

SWTPc mini floppy users can now 
upgrade to FLEX™ 2.0, the same version 
of FLEX™ as found on the SWTPc 8" 
disk system. Simply add 8K of memory 
at $A000 and boot up from a FLEX™ 2.0 
disk. Also available for Smoke Signal 
disk users in a mini floppy version 
(FLEX™ 2.0) and a full sized version 
(FLEX™ 1.0). Includes TSC editor and 
assembler on disk. All manuals also 
supplied (no source listings). 

FX02-SWT FLEX™ 2.0 for 

5" SWTPc $75.00 

FX02-SSB FLEX™ 2.0 for 5" SSB $90.00 
FX01-SSB FLEX™ 1.0 for 8" SSB $100.00 

Sort/Merge Package 

Sorts any type file according to 
parameters you supply. Files too large 
to fit in memory are automatically split 
up, individually sorted, and merged into 
one output file. Accepts fixed or 
variable length records, up to 20 
ascending or descending keys, non- 
ASCII sequence sorts, and much more. 
No source listing. Specify mini FLEX™, 
FLEX™ 1.0, or FLEX™ 2.0 

AP68-10 6800 Sort/Merge $75.00 

Manual Only $15.00 

FLEX™ Utilities 

Complete set of 36 additional utilities 
ranging from memory dump to disk 
diagnostics. Includes printed manuals 
and source listings with object code 
AND source listing on disk. 

UV1-6D w/mini FLEX™ disk $99.95 

UV1-6F w/8" FLEX™ 1.0 disk $124.95 
UV1-6F2 w/5" FLEX™ 2.0 disk $119.95 



TSC BASIC for 6800 

The fastest floating point BASIC 
interpreter for any 8 bit microprocessor. 
Features include six digit floating point 
math, full transcendental functions, 
unlimited string length, if/then/else 
construct, logical operators, and 
two-dimensional arrays including 
string arrays. 

FLEX™ disk versions support random 
as well as sequential access files (the 
mini FLEX™ version has only sequential). 
Random files accessed by true record 
I/O or by virtual arrays. Disk version 
also allows TRACE, a renumber facility, 
ON ERROR GOTO, PTR for obtaining 
the address of a variable, CHAIN, and a 
very powerful method of printing to any 
type and number of output devices. 
SAVE and LOAD commands produce 
FLEX™ compatible files which can be 
externally edited while a COMPILE 
command places an unreadable, 
compressed form of the source on disk 
which can only be executed by RUN. 
This feature permits the distribution of 
proprietary BASIC programs. 

Cassette version runs in a minimum of 
12K, disk version should have at least 
16K. No source listing is included. 
AP68-11C w/casette $39.95 

AP68-11D w/mini FLEX™ disk $49.95 
AP68-11F w/8" FLEX™ 1.0 disk $59.95 
AP68-11F2W/5" FLEX™ 2.0 disk $54.95 

All orders should include 3% for postage 
and handling (8% on foreign orders). 
Send 25$ for a complete software 
catalog. 

Technical Systems 
Consultants, Inc. 

Box 2574 W. Lafayette, IN 47906 

*CP/M ,M is a registered trademark of Digital Research 
FLEX™ is a trademark of Technical Systems 
Consultants, Inc. 



Circle 363 on inquiry card. 



BYTE July 1979 



111 







Figure 6: Logarithmic spiral with equation of form r = ae Q l b using polar 
coordinates. 



x = ae' e/b cos(0) 
y = ae'0 /b sin(0) 



x=-ae~ 0/b cos(0) 
y = ae' 9/b s\r\{9) 




x =-ae fl/b cos(0 + Tr/3) + acos(ir/3) 
y = ae" 0/b sin(0+ir/3) + asin(ir/3) 



x = -ae" 0/b cos(0+ir/3) 
y=ae 0/b sin(0 + ir/3) 



F/^re 7; Graphs and equations of a logarithmic spiral as it is reflected about 
the y axis, rotated clockwise by 60° \ and translated. 




Figure 8: Superimposition of graph of: x=—ae~ d l b cos(B — it/3) -ha cos it/3; 
and y= ae~°l b sin(6 — ir/3) + a sin ir/3; which yields the desired envelope 
shape. 



begin again by choosing a suitable Y' where 
Y'< Y. This process is terminated when Y' 
assumes a certain specified value. What is 
significant about this plot, however, is the 
mathematics that it represents. This figure 
proves the following theorem: 



n 


i 


' n 


2 |3 


= 


2 i 


= 1 


\ 


\ 1 = 1 



for all positive integers, n (an offshoot of the 
theorem of Nicomachus) for the case n - 26. 
To see this, it is easier to examine the 
associated figure for a smaller n than 26, say 
n = 6 (see figure 11). If the smallest squares 
in the center of the figure are taken as unit 
squares, then the area of the large square can 
be calculated in two different ways. In the 
first way, the lengths of two sides can be 
multiplied. Since we are dealing with squares, 
any two sides can be used. The left side is of 
length 6(6 + 1 ) or in general n[n + 1 ), as can 
be seen by considering the shaded squares 
which lie along the left side. The length of 
the opposite side can be calculated by con- 
sidering the shaded squares which extend 
diagonally from the center to the right side 
to obtain: 

b = 2(6 + 5 + 4+3 + 2 + 1) 

or in general: 

n 
b = 2 Si 

i= 1 

Therefore the area of the square is: 

ab = 6(6+ 1)X2(6 + 5 + 4+3 + 2+ 1) 
or in general: 



ab = n(n + 1) X2 2 i=4 
j = 1 



5.' ) 



However, the area of the square can also 
be calculated by summing the areas of all the 
component squares. There are four squares 
of area 1, eight squares of area 4, twelve of 
area 9, etc. Therefore the area of the large 
square is: 

4X1X1 2 + 4X2X2 2 + 4X3X3 2 + 4X4X4 2 
+ 4X5X5 2 + 4X6X6 2 

or in general: 

n 
4 2 i 3 

i=1 



112 July 1 979 © BYTE Publications Inc 



By equating these computations of area, the 
desired theorem is obtained. 

In drawing this figure, one need only 
choose an X of the form n(n + 1 ) for the side 
of the largest square, where n is an integer 
greater than 3. The sides of the inner squares 









"-1 "" 




cos 7 —sin 7 




~1 0^ 




a 


[xV 1] = 


= [xy1] 


1 
. ° ° 1 - 




sin 7 cos 7 
_ 1_ 




1 
- T x T y K 






new 
point 


old reflection rotation 
point by 7 


translation 








"—cos 7r/3 sin tt/3 


O" 




b 


[x'y'1] = 


[r cos r sin 6 1] 


sin 7r/3 cos 7r/3 
a cos 7r/3 a sin tt/3 



1 








[-r cos(0 +tt/3) + a cos tt/3 r sin(0 + tt/3) + a sin tt/3 1] 






[-ae~ d/b cos(0 + tt/3) + a cos tt/3 
ae~ 0/b sin(0 + tt/3) + a sin tt/3 1 ] 





Table 7 : Matrix equation a reflects, rotates, and translates coordinates of a 
point (X, Y). Matrix equation b has substituted in it the specific values needed 
to repeat the earlier equations. We obtain the same result. 















L< ! ' . ' ! . i 


















1 1 i ! . M ,|| i 1 . 1 ' i 




















1 ! ! i i 1 ! ! 1 ! 1 1 ! 












— 












JJ 1 l l I ' ! ! 1 1 ! 1 










— 


— 


— 














1 1 1 1 1 1 1 1 1 1 1 1 1 1 










— 










1 1 


1 1 1 1 1 1 1 1 1 1 1 1 1 












- 


- 








1 , 


1 1 1 1 1 1 1 1 1 11 




















n 


MINIMI 


1 1 










- 


- 


- 




I 


1 












1 1 1 1 1 1 1 1 1 1 1 








- 




Mill 






- 


— 


1 1 1 1 1 1 1 1 1 1 




- 


— — 


1 1 1 11 1 1 11 




:-:-- 


MINIMI 




IIIMM 


=: = l 


1 1 1 1 1 1 i 


ri 1 1 M 


"_-_--:±H 


jm;-^- 


"- ==: ==ffi 




£=:=:= 


- "- " TlV rrT J " ~ 


11111 


III ill 11 




— — _ 


1 1 1 III I I I 




— — 


II 1 






. 1 1 1 1 1 1 1 II 1 






1 1 III 1 1 1 I 1 








1 1 III 1 1 1 1 1 1 












1 1 1 1V1 1 1 1 1 1 


1 1 










□ 


1 1 1 III 1 1 1 1 
















1 1 


1 I I 1 1 iVi'i'i 1 ; 1 
















1 1 


1 1 1 1 1 1 1 1 1 1 1 1 1 
















II'M i 1 ! ' ! 1 i 1 


















D , : 1 ; 1 1 . , ^ ! ! 1 ! i : > ' 
















□ : 1 ! , i : ' . 1 1 ' 1 1 I 














Ill 'MM .. ' i ! ' 
















1 1 1 1 1 1 1 I 1 1 1 1 1 1 1 1 1 1 1 1 















Figure 9: Dissected square, a set of concentric squares with the area between 
the squares divided into smaller squares. 




Thousands of users know the 
Ithaca Audio Simple Upgrade™ as 
the best memory expansion available 
-- and with good reason. 

Our clear, concise, step-by-step 
instructions and illustrations make 
upgrading a snap. Jumpers are 
packaged just as they appear in the 
diagrams, no hunting for the correct 
part. 

Fully-tested RAMs and 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 independentcompu- 
ter retailers. 

For the name of the dealer nearest 
you, contact: 



ITHACA 
AUDIO 



P.O. Box 91 

Ithaca, New York 14850 

(607) 257-0190 

Circle 190 on inquiry card. 

TRS-80 is a registered trademark of Tandy Corp. 

Apple II is a registered trademark of Apple Computer Inc. 



Sorcerer is a registered trademark of Exidy Inc. 
July 1979 © BYTE Publications Inc 



113 



Figure 10: A square with sides of length X 
has constructed within it a concentric square 
with sides of length Y. The sides of the 
smaller square are extended until they meet 
the edges of the square of side X. The 
shaded regions are next divided into squares. 





Figure 1 7 : Dissected square for n = 6. The leftside is of length 6(6+1). 





Figure 12: Two plotting procedures for a square with vertices A BCD. The 
smallest amount of pen motion occurs at left when plotting begins at point 
A with consecutive drawing movements to B, C, D, and then back to A, In 
this method the length of nondrawing moves is 0. 

At right is seen a no n optimal plotting scheme. Starting at A, the pen 
draws to B, a nondrawing move is made to point D, the pen draws from D to 
C and then to B, a move is made to A, and then pen draws from A to D. 



are also numbers of this form, obtained by 
decrementing n by 1 for each successive 
new square. When Y '= 2, the last two lines 
are drawn, completing the figure. This choice 
of X and Y always allows the shaded areas of 
figure 10 to be decomposed into squares, 
as they are all rectangles with one side of 
length n and the other of n[n — 1). A rec- 
tangle with these proportions is dissectible 
into (n — 1 ) squares of side n. 

Plotting Considerations and Implementation 

In developing the software to produce 
these drawings, the logic used to understand 
the generation of the figures was extended 
into the implementation of the code. Al- 
though this solution to the problem works, 
it turns out to be grossly inefficient in con- 
struction and plotting time. 

These figures are best plotted on a high 
speed incremental plotter using ink rather 
than a ballpoint pen. The use of ink in plot- 
ting immediately causes a 50% reduction in 
plotting speed in order to avoid smears on 
the final plot. This and the high density of 
lines required to produce an aesthetically 
pleasing picture resulted in an average plot 
time of two hours per figure. 

With these two considerations in mind, 
it became desirable to optimize the required 
plot time by minimizing pen movement. In 
the plotting of figures like those above, the 
total pen movement is comprised of the 
movement used to reposition the pen prior 
to the drawing of a new line (ie: when the 
pen tip is in the up position) and the actual 
drawing of the line (ie: when the pen tip is 
in the down position, that is, is in contact 
with the plotting surface and is drawing). 
While the total length of the "draws" (ie: 
when the pen tip is down and drawing) is 
fixed for any given figure, the length of the 
"moves" is variable. The total plot time can 
be diminished by minimizing these moves. 

Consider the plotting of a square whose 
vertices are ABCD (see figure 12). Let us 



114 July 1 979 © BYTE Publications Inc 



We haue what you want 
when you want it . 



You want speed? Except for the Heath H8 board, every 
Econoram* runs trouble-free with 4 MHz systems. You 
want low power? We use low power static parts exclu- 
sively, which means our max/mum guaranteed current specs 
are often lower than the typical current specs of our competi- 
tors. You want low cost? Our volume purchasing and 
technical know-how keeps our products price-competitive with 
boards that do a whole lot less. You want it now? Not only 
do we stock what we advertise, but many computer stores 
both nationwide and overseas stock much or all of the 
CompuKit tm line. 



You want a choice of configurations? For lowest 
price buy an "unkit", with sockets and bypass caps pre- 
soldered in place for easy assembly; specify assembled 
and tested boards when you can't wait to get up and run- 
ning; and if you're dealing with critical applications— like ac- 
counting or medical applications— check into the boards 
qualified under our high-reliability Certified System Com- 
ponent CSC) program. These boards are burned in for 200 
hours minimum and are immediately replaced in the event of 
failure within 1 year of invoice date. 

You want reliable, cost-effective operation? That's 
how we got our reputation . . . ask any Econoram owner. 



■"FEATURED BOARD OF THE MONTH::-:: 

■ Econoram HA $149 unIut, $164 assm ■ 



The 8K X 8 Econoram II has been the workhorse of many an 
S-100 computer system... and now it's improved, with features 
like new 4K static chips, guaranteed 4 MHz operation, simpler 
layout, and low power (draws 8W maximum from the 8V buss 
—and that's a guaranteed spec). We've retained all the 
popular features of the original, such as deselect switch for 
4K operation, dual 4K block configuration with independent 
addressing, and switchable memory protect for each block. 
The oldest board on the block is now one of the newest, and 
we think you're really going to like it. 




OTHER ECONORAM* FULLY STATIC MEMORY BOARDS: 



Name 

Econoram IV 
Econoram VI 
Econoram VII 
Econoram IX 
Econoram X 
Econoram XI 



Storage 

16KX 

12K 

24K 

32K 

32K 

32K 



Buss 

S-100 

H8 

S-100 

Dig Grp 

S-100 

SBC 



Speed 

4 MHz 
MHz 
MHz 
MHz 
MHz 
MHz 



Configuration 

1-16K block 
1-8K, 1-4K 
2-4K, 2-8K 
2-4K, 1-8K, 1 
2-8K, 1-16K 
2-8K, 1-16K 



16K 



Unkit 

$295 
$200 
$445 
$649 
$599 
n/a 



Assm 

$329 
$270 
$485 

n/a 
$649 

n/a 



esc 

$429 

n/a 

$605 

n/a 

$789 

$1050 



BANK SELECT MEMORIES 

Econoram XII-16 16KX8 S-100 

Econoram XII-24 24K X 8 

Econoram XIII 32K X 8 

* Econoram is a trademark of 



100 
100 



Bill Godbout Electronics. 



(for Alpha Micro Systems, Marinchip, etc.) 

4 MHz 2 indep. banks** $369 $419 $519 
4 MHz 2 indep. banks** $479 $539 $649 
4 MHz 2 indep. banks** $629 $699 $849 

** Econoram XII-16 and -24 have 2 independent banks addressable on 8K boundaries; 
Econoram XIII has 2 independent banks addressable on 16K boundaries. 



NEW! 2708 EROM BOARD KIT... 

at a special introductory price. 

4 independently addressable 4K blocks, with selective dis- 
able for each block. Built to Econoram standards (dipswitch 
addressing, top quality board, sockets wave-soldered in place), 
and includes dipswitch selectable jump start built right into 
the board. Includes all support chips and manual, but does not 
include EROMs. Special introductory price through August 1, 
1979: $69.95. After that, the price goes up to the normal $85... 
don't say we didn't warn you. 

POPULAR ICs AT POPULAR PRICES 

Low power 2102s for 2 MHz systems on special: 10/$9.90. 
1791 MOS LSI dual density disc controller from Western Digi- 
tal: $59 with pinout and data. 1771 single density controller: 
$22.50. All parts are offered on a while-they-last basis. 



i 

»i 
"°! 

Si 

si 



<* 



MULLEN COMPUTER PRODUCTS: 
H8 EXTENDER BOARD KIT $79 

We're happy to distribute a kit that really takes the hassle 
out of troubleshooting or testing the popular H8 computer. In- 
cludes jumper links in the power supply lines for insertion of 
fuses, Ammeters, current limiters, etc. 

ACTIVE TERMINATOR KIT $54.50 

As written u p in the April '79 issue o f Kilobaud Microcomput- 
ing. Our much imitated design plugs into any S-100 mother- 
board to reduce ringing, crosstalk, noise, and other buss- 
related problems. 

S-100 MOTHERBOARDS 

11 slot unkit: $90. 18 slot unkit: $124. Each mother- 
board includes all edge connectors wave-soldered in place for 
easy assembly, integral active termination circuitry, extra wide 
power and ground traces, and much more. 



TERMS: Allow 5% shipping, ex- 
cess refunded. Cal res add tax. 
VISA®/Mastercharge® call our 24 
hour order desk at (415) 562-0636. 
COD OK with street address for 
UPS (COD charge applies). Prices 
good through cover month of 
magazine. Orders under $15 add 
$1 handling. 



CoinpuPro M 



from 




(pG© 

ELECTRONICS 



FREE FLYER: We'll beglad to 
tell you more than the space of 
this ad permits. Just send your 
name and address, we'll take 
care of the rest. If you're in a 
hurry, enclose 41* in stamps for 
1st class delivery. 



Circle 150 on inquiry card. 



BYTE July 1979 



115 




Figure 13: A simple plot 
for which the best possible 
plotting scheme includes 
some none/rawing pen 
moves. 



assume that vertex A is the origin of the 
plot. Clearly, the smallest amount of pen 
movement possible is 45, where s is the 
length of the side of the square. The value of 
45 is obtained when the plotting begins at 
point A (ie: the origin) with consecutive 
draws to B, C, D, and then a final draw to A. 
In this case the length of the moves is 0. A 
nonoptimal plotting scheme for this figure 
would be to start at A, and then draw to B, 
move to D and draw to C and then to B, 
move to A and then draw to D. The total 
pen movement for this scheme is 55 + 
y/2s } where again s is the length of the 
square. It should be clear that there is no 
upper limit on the total pen movement, 
as the moves have no effect on the resulting 
plot and can be increased without bound. 

Unfortunately, it is not always possible 
to find a plotting scheme in which the length 
of the pen moves is 0. A simple plot for 
which the best possible plotting scheme in- 
cludes some moves is shown in figure 13. I: 
5 is the side of the square, the best possible 
plotting scheme has a total pen movement 
of 55 + 2 \/2s (see reference 1 0). 

Of the two figures discussed in detail, 
the crest and the dissected square, only 
the crest can be drawn with zero moves. The 
plotting scheme which obtains this optimal 




Figure 14: Optimal plotting scheme for drawing the crest with no wasted pen 
movement. 



solution is shown in figure 14. Using this 
strategy resulted in a substantial savings 
in total plotting time. 

Unfortunately, no plotting scheme for 
the dissected square which has zero moves is 
possible. In fact, no scheme was found 
which significantly reduced the total plot 
time from that obtained by using the 
notions explained in detail above. It is felt 
that this is because all the plotting schemes 
we tried involved decomposing long line 
segments into a number of smaller such 
segments which were not drawn consecu- 
tively. With an on line incremental plotter 
this requires the processor controlling the 
pen to issue a much larger number of plot 
commands. In a multiprocessing environ- 
ment, any advantage gained in the total 
length of the moves was completely elimi- 
nated by the increased processing time with 
its associated overhead." 



REFERENCES 

1. "Christmas Wreath," Entry in the 6th Annual 
Computer Art Contest, Computers and Auto- 
mation, volume 17, number 8, August 1968, 
pages 8 thru 27. 

2. "Circus," First prize winner in the 8th Annual 
Computer Art Contest, Computers and Auto- 
mation, volume 18, number 9, August 1969, 
pages 12 thru 32. 

3. Csuri, Charles, "Computer Graphics and Art," 
Proceedings of the IEEE, volume 62, number 
4, April 1974, pages 503 thru 515. 

4. Franke, Herbert W, Computer Graphics — 
Computer Art, Phaidon, 1972. 

5. Franke, Herbert W, opci t, page 18. 

6. Franke, Herbert W, op cit, pages 20 thru 22. 

7. Gardner, Martin, Scientific American, volume 
229, number 10, October 1973, pages 114 
thru 118. 

8. Hertlein, Grace C, "Computer Art for Com- 
puter People - A Syllabus," SIGGRAPH '77 
Proceedings, Computer Graphics, volume 11, 
number 2, Summer 1977, pages 249 thru 254. 

9. Ives, Roger, "Computer-Aided Sculpture," 
Computers and Automation, volume 18, num- 
ber 9, August 1969, page 33. 

10. Lewis, Harry R, and Papadimitriou, Christos 
H, "The Efficiency of Algorithms," Scientific 
American, volume 238, number 1, January 
1978, pages 96 thru 109. 

11. Mueller, Robert E, "Idols of Computer Art," 
Art in America, May-June 1972; reprinted in 
Creative Computing, May-June 1978, pages 
100 thru 106. 

12. Noll, A Michael, "Computer Animation and 
the Fourth Dimension," AFIPS Fall Joint 
Computer Conference 1968, pages 1279 thru 
1283. 

13. Oster, Gerald, and Nishijima, Yasunori, "Moire 
Patterns," Scientific American, volume 208, 
number 5, May 1963, pages 54 thru 63. 

14. Prueitt, Melvin L, Computer Graphics, Dover 
Publications Inc, New York, 1975. 

15. "Sine Curve Man," First prize winner in the 
5th Annual Computer Art Contest, Computers 
and Automation, volume 16, number 8, Au- 
gust 1967, pages 8 thru 21 . 



116 July 1 979 © BYTE Publications Inc 



ANOTHER FIRST FROM 
MOUNTAIN HARDWARE. 

SUPERTALKER. 



GIVE VOICE TO 
YOUR APPLE. 

SuperTalker allows you 
to add the dimension of 
human speech output in 
your computer programs. 
Add voice to games. Pro- 
gram verbal prompting for 
the operator of your busi- 
ness system. Use verbal 
warnings under program con- 
trol as an enunciator in com- 
mercial security or control rooms. 
Create educational programs that 
verbally coach the student. 

THE SUPERTALKER SYSTEM. FOR YOUR 

SuperTalker is a new Mountain APPLE II 

Hardware peripheral system which 
allows the Apple II computer to output exception- 
ally high quality human speech through a loud- 
speaker under program control. Output may also 
be directed through any PA. or stereo system. 
Initially, spoken words are digitized into RAM 
memory through the system microphone. Speech 
data in RAM may then be manipulated like any 
other stored data. 
A COMPLETE PACKAGE. 
The SuperTalker peripheral system consists of: 
The SuperTalker peripheral card which plugs into 



a penpnertf 

Apple II; a microphone; 
a loudspeaker; easy- 
to-use operating soft- 
ware and documentation; 
plus, two ready-to-run 
SuperTalker programs. 
OPERATING SYSTEMS. 
In order to achieve maximum 
utility using SuperTalker, the 
SuperTalker Disk Operating 
System permits output of 
human speech under program 
control with direct I/O routines. 
It also provides a preparation pro- 
gram which permits the creation 
of voice files on diskette. BASIC 
program routines are provided 
which require only one-line statements to out- 
put a word or phrase. Routines also support 
cassette storage. 

TEACH YOUR COMPUTER TO TALK. 
For $279 assembled and tested, SuperTalker 
gives your Apple II a voice in the matter. 
AVAILABLE NOW. 

Mountain Hardware's SuperTalker, Apple Clock 
and 100,000 Day Clock™ (for S-100 bus 
computers) are available through computer 
dealers worldwide. 




SKS Mountain Hardware, Inc. 



* 



LEADERSHIP IN COMPUTER PERIPHERALS 

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

Sounds super. 

□ Send me everything I need to know about SuperTalker. 

□ Also information on your Real-Time clocks for Apple II and S-100. 

Name 



Address. 
City 



. State . 



-Zip- 



Apple II is a trademark of Apple Computer, Inc. 



Circle 257 on inquiry card. 



BYTE July 1979 



117 



PET / TRS-80 /APPLE: Personal Software brings you the finest! 




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 errorchecks ... complete instructions in a5 1 /2 M 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 m any 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, 1 6K 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 1 1 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 






shots as they come towards you— lower your shields just long 
enough to fire your phasers, betting that you can get them back up 
in time! With nine levels of difficulty, this challenging game is easy 
to learn, yet takes most users months of play to master. ADD 
SOUND EFFECTS with a simple two-wire hookup to any audio 
amplifier; the TRS-80 also produces sound effects directly through 
the keyboard case, to accompany spectacular graphics 
explosions! You won't want to miss this memorable version of a 
favorite computer game $14.95 




BLOCKADE by Ken Anderson for 4K 

Level I and II TRS-80s is a real time 
action game for two players, with high 
speed graphics in machine language. 
Each player uses four keys to control 
the direction of a moving wall. Try to 
force your opponent into a collision 
without running into a wall yourself! A 
strategy game at lower speeds, 
BLOCKADE turns into a tense game of 
reflexes and coordination at faster 
rates. Play on a flat or spherical course 
at any of ten different speeds. You can 
hear SOUND EFFECTS through a 
nearby AM radio— expect some 
razzing if you lose! 14.95 



GRAPHICS PACKAGE by Dan Fylstra 
for 8K PETs includes programs for the 
most common 'practical' graphics 
applications: PLOTTER graphs both 
functions and data to a resolution of 80 
by 50 points, with automatic scaling 
and labeling of the axes; BARPLOT 
produces horizontal and vertical, 
segmented and labeled bar graphs; 
LETTER displays messages in large 
block letters, using any alphanumeric 
or special character on the PET 
keyboard; and DOODLER can be used 
to create arbitrary screen patterns and 
save them on cassette or in a BASIC 



ELECTRIC PAINTBRUSH by Ken 
Anderson 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 VISA! Master Charge card by dialing 1-800-325-6400 toll free (24 hours, 7 days; in Missouri, dial 1-800-3426600). 
If you have questions, please call 617-783-0694. Or you can mail your order to one of the addresses below, as of the dates shown. 



Until July 1: P.O. Box 136 
Cambridge, Mass. 02138 



Personal 
Software™ 



118 



BYTE July 197 9 



After July 1: 592 Weddell Dr. 
Sunnyvale, Calif. 94086 

Circle 302 on inquiry card. 



Look for Personal Software™ products at the dealer nearest you! 

DAIIA oiifin PVPiru pnn..i«nr ..,. — ... ** 



ALABAMA 

BYTE SHOP 

Huntsvrile, AL 35805 

COMPUTERLAND 

Huntsville. AL 35805 

CPU. INC. 

Montgomery, AL 36104 

THE LOGIC STORE 

Opelika. AL 36801 

ALASKA 

ALPHA ELECTRONICS 

Anchorage, AK 99503 

ARIZONA 

MILLETS TV & RADIO 

Mesa, AZ 85204 

PERSONAL COMPUTER PLACE 

Mesa. AZ 85202 

COMPUTERLAND OF PHOENIX 

Phoenix. AZ 85016 

COMPUTER SHOWROOM 

Tucson, AZ 85710 

ARKANSAS 

COMPUTERLAND 

Little Rock, AR 72212 

DATACOPE 

Little Rock. AR 72204 

CALIFORNIA 

JAY-KERN ELECTRONICS 

Bakersfjeld, CA 93305 

BYTE SHOP 

Burbank, CA 91506 

BYTE SHOP OF SACRAMENTO 

Citrus Heights, CA 95610 

COAST COMPUTER CENTER 

Costa Mesa, CA 92627 

CAPITOL COMPUTER SYSTEMS 

Davis, CA 95616 

COMPUTERLAND SAN DIEGO EAST 

El Caion. CA 92020 

COMPUTERLAND OF EL CERRITO 

El Cernto. CA 94530 

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 

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 

Noithridge. 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 Bernadino, CA 92404 

COMPUTERLAND OF SAN DIEGO 

San Diego, CA 92111 

COMPUTER MERCHANT 

San Diego, CA 92115 

COMPUTERLAND OF 

SAN FRANCISCO 

San Francisco, CA 94105 

VIDEO GAMES & COMPUTERS 

San Francisco, CA 94118 

COMPUTERLAND OF SAN JOSE 

San Jose, CA 95129 

COMPUTERLAND (Central) 

San Leandro, CA 94577 

BYTE SHOP 

San Louis Obispo, CA 93401 

MARIN COMPUTER CENTER 

San Rafael, CA 94903 

ADVANCED COMPUTER PRODUCTS 

Santa Ana. CA 92705 

BYTE SHOP 

Santa Clara, CA 95051 

COMPUTER FORUM 

Santa Fe Springs, CA 90670 

THE COMPUTER STORE 

Santa Monica, CA 90401 

SANTA ROSA COMPUTER CENTER 

Santa Rosa. CA 95404 

BYTE SHOP 

Suisun. CA 94585 

COMPUTERS PLUS 

Sunnyvale, CA 94087 

BYTE SHOP OF TARZANA 

Tarzana, CA 91356 

COMPUTERLAND OF 

THOUSAND OAKS 

Thousand Oaks. CA 91360 



SMALL SYSTEM SOFTWARE 

Thousand Oaks, CA 91360 

COMPUTER COMPONENTS 

Van Nuys, CA 91411 

COMPUTERLAND 

Walnut Creek, CA 94598 

BYTE SHOP 

Westminster, CA 92683 

COMPUTER COMPONENTS OF 

ORANGE COUNTY 

Westminster, CA 92683 

COLORADO 

BYTE SHOP 

Boulder. CO 80301 

COMPUTERLAND 

Colorado Springs, CO 80917 

AMPTEC 

Denver, CO 80216 

COMPUTERLAND 

Denver. CO 80222 

BYTE SHOP 

Englewood, CO 80110 

MICRO WORLD ELECTRONIX 

Lakewood, CO 80226 

CONNECTICUT 

COMPUTERLAND OF FAIRFIELD 

Fairfield. CT 06430 

JRV COMPUTER STORE 

Hamden, CT 06518 

THE COMPUTER STORE 

Hartford, CT 06103 

THE COMPUTER STORE 

Windsor Locks, CT 06096 

WASHINGTON D.C. 

COMPUTER CABttVlSlON 

Washington, DC. 20007 

FLORIDA 

COMPUTERLAND 

Boca Raton. FL 33432 

THE COMPUTER STORE 

Bradenton, FL 33505 

THE COMPUTER STORE 

Clearwater, FL 33516 

UCATAN 

Destm. FL 32541 

BYTE SHOP 

Fort Lauderdale, FL 33334 

COMPUTERLAND 

Fort Lauderdale. FL 33308 

COMPUTERS FOR YOU 

Fort Lauderdale. FL 33312 

DATA MOVERS 

Fort Meyers, FL 33901 

FOCUS SCIENTIFIC ENTERPRISES 

Miami, FL 33132 

GRICE ELECTRONICS 

Pensacola. FL 32589 

COMPUTER AGE 

Pompano Beach. FL 33062 

PAPERBACK BOOKSMITH 

Sarasota, FL 33581 

AMF ELECTRONICS 

Tampa, FL 33612 

MICRO COMPUTER SYSTEMS 

Tampa, FL 33609 

COMPUTER CENTER OF 

PALM BEACHES 

West Palm Beach, FL 33409 

GEORGIA 

ADVANCE COMPUTER TECHNOLOGIES 

Atlanta, GA 30328 

COMPUSHOP ' 

Atlanta, GA 30342 

DATAMART 
Atlanta. GA 30305 

THE LOGIC STORE 

Columbus, GA 31906 

COMPUTERLAND OF ATLANTA 

Smyrna. GA 30080 

HAWAII 

COMPUTERLAND 

Honolulu, HI 96813 

MICROCOMPUTER SYSTEMS 

Honolulu. HI 96813 

RADIO SHACK (Dealer) 

Lihue. HI 96766 

IDAHO 

NORTHWEST COMPUTER CENTER 

Boise. ID 83704 

ILLINOIS 

COMPUTERLAND OF 

ARLINGTON HEIGHTS 

Arlington Heights, IL 03904 

FARNSWORTH COMPUTER CENTER 

Aurora, IL 60505 

KAPPEL'S COMPUTER STORE 

Belleville. IL 62220 

DOW-COM 

Carbondale, IL 62901 

BYTE SHOP 

Champaign, IL 61820 

THE ELEKTRIK KEYBOARD 

Chicago, IL 60614 

EMMANUEL B. GARCIA JR. 

AND ASSOCIATES 

Chicago, IL 60613 

PERSONAL COMPUTER 

Chicago. IL 61820 

COMPUTERLAND 

Downers Grove, IL 60515 

COMPUTER STATION 

Granite City, IL 62040 

ORCUTT BUSINESS MACHINES 

La Salle, IL 61301 



ILLINI MICROCOMPUTERS 

Naperville, IL 60540 

COMPUTERLAND OF NILES 

Niles, IL 60648 

COMPUTERLAND 

Oak Lawn, IL 60453 

COMPUTERLAND OF PEORIA 

Peoria. IL 61614 

WALLACE ELECTRONICS 

Peoria, IL 61614 

DATA DOMAIN 

Schaumburg, IL 60195 

INDIANA 

DATA DOMAIN OF FORT WAYNE 

Fort Wayne, IN 46805 

HOME COMPUTER CENTER 

Indianapolis, IN 46220 

PUBLIC COMPUTING 

Lafayetle, IN 47904 

IOWA 

SYNCHRONIZED SYSTEMS 

Des Moines, IA 50310 

THE COMPUTER CENTER 

Waterloo. IA 50701 

KANSAS 

THE COMPUTER ROOM 

Overland Park, KS 66212 

PERSONAL COMPUTER CENTER 

Overland Park, KS 66206 

COMPUTER SYSTEMS DESIGN 

Wichita, KS 67214 

LOUISIANA 

COMPUTER SHOPPE 

Metaire, LA 70002 

MARYLAND 

COMPUTERLAND 

Rockville, MD 20855 

COMPUTER WORKSHOP 

Rockville, MD 20852 

COMPUTERS ETC. 

Towson, MD 21204 

COMPUTERS UNLIMITED 

Towson, MD 21204 

MASSACHUSETTS 

THE COMPUTER STORE 

Burlington, MA 01803 

THE COMPUTER STORE 

Cambridge, MA 02139 

CPU SHOP 

Charlestown, MA 02129 

MAD HATTER SOFTWARE 

Dracut, MA 01826 

NEW ENGLAND ELECTRONICS 

Needham, MA 02194 

NEW ENGLAND ELECTRONICS 

Springfield. MA 01103 

MICHIGAN 

NEWMAN COMPUTER EXCHANGE 

Ann Arbor, Ml 48104 

NEW DIMENSIONS IN COMPUTING 

East Lansing, Ml 48823 

COMPUTER HOUSE DIV. 

Jackson, Ml 49202 

COMPUTERLAND OF 

GRAND RAPIDS 

Kentwood, Ml 49508 

COMPUTRONIX 

Midland, Ml 48640 

COMPUTER MART OF ROYAL OAK 

Royal Oak. Ml 48073 

TRI CITY COMPUTER MART 

Saginaw, Ml 48603 

COMPUTERLAND 

Southfield, Ml 48034 

LEVEL FOUR PRODUCTIONS 

Westland, Ml 48185 

MINNESOTA 

COMPUTERLAND 

Bloommgton, MN 55431 

MINN. MICRO SYSTEMS 

Minneapolis, MN 55454 

MISSISSIPPI 

OXFORD SOFTWARE CO. 

Oxford, MS 38655 

MISSOURI 

FORSYTHE COMPUTERS 

Clayton, MO 63105 

COMPUTER COUNTRY 

Florissant. MO 63031 

GREATEST GRAPHICS 

Springfield, MO 65804 

NEBRASKA 

OMAHA COMPUTER STORE 

Omaha. NE 68127 

NEVADA 

HOME COMPUTERS 

Las Vegas. NV 89109 

NEW HAMPSHIRE 

TRS-80 SOFTWARE EXCHANGE 

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 

Iselm, NJ 08830 

MSM ELECTRONICS 

Medford, NJ 08055 

COMPUTERLAND 

Morristown, NJ 07960 

COMPUTERLAND 

Paramus, NJ 07652 

COMPUTER NOOK 

Pine Brook, NJ 07058 

COMPUTER CORNER 

Pompton Lakes, NJ 07442 

COMPUTER ENCOUNTER 

Princeton. NJ 08540 

TYPTRONIC COMPUTER STORE 

Ramsey. NJ 07446 

NEW YORK 

COMPUTERLAND 

Buffalo, NY 14150 

COMPUTERLAND 

Carle Place, NY 11514 

COMPUTER SHOP OF SYRACUSE 

De Witt, NY 13214 

THE COMPUTER TREE 

Endwell. NY 13760 

LONG ISLAND COMPUTER 

GENERAL STORE 

Lynbrook. NY 11563 

COMPUTER MICROSYSTEMS 

Manhasset, NY 11030 

COMPUTER SHOPPE 

Middle Island, NY 11953 

THE COMPUTER FACTORY 

New York, NY 10017 

COMPUTER MART OF NEW YORK 

New York, NY 10016 

DATEL SYSTEMS 

New York. NY 10036 

AUTOMATIC SYSTEMS 

Poughkeepsie. NY 12603 

COMPUTER HOUSE 

Rochester, NY 14609 

THE COMPUTER STORE 

Rochester, NY 14618 

HOME COMPUTER CENTER 

Rochester. NY 14607 

THE COMPUTER CORNER 

White Plains, NY 10601 

READOUT COMPUTER STORE 

Williamsville. NY 14221 

NORTH CAROLINA 

BYTE SHOP 

Charlotte. NC 28212 

COMPUTERLAND 

Charlotte, NC 28205 

FUTUREWORLD 

Durham. NC 27707 

BYTE SHOP 

Greensboro. NC 27401 

MICROCOMPUTER SERVICES 

Hickory. NC 28601 

BYTE SHOP OF RALEIGH 

Raleigh. NC 27605 

OHIO 

BASIC COMPUTER SHOP 

Akron. OH 44314 

CINCINNATI COMPUTER STORE 

Cincinnati, OH 45246 

21ST CENTURY SHOP 

Cincinnati. OH 45202 

DIGITAL DESIGN 

Cincinnati, OH 45202 

CYBER SHOP 

Columbus, OH 43227 

MICRO MINI COMPUTER WORLD 

Columbus, OH 43213 

COMPUTER SOLUTIONS 

Dayton, OH 45409 

DAYTON COMPUTER MART 

Dayton, OH 45409 

ASTRO VIDEO ELECTRONICS 

Lancaster. OH 43130 

COMPUTERLAND OF CLEVELAND 

Mayfield Heights, OH 44121 

RADIO SHACK (Dealer) 

St. Clairsville, OH 43950 

OKLAHOMA 

HIGH TECHNOLOGY 

Oklahoma City, OK 73106 

MICROLITHICS 

Oklahoma City. OK 73127 

HIGH TECHNOLOGY 

Tulsa, OK 74129 

OREGON 

THE COMPUTER STORE 

Corvallis, OR 97330 

CAMERA AND COMPUTER 

EMPORIUM 

Portland, OR 97205 

COMPUTERLAND OF PORTLAND 

Tigart, OR 97223 

PENNSYLVANIA 

BYTE SHOP 

Bryn Mawr. PA 19010 

PERSONAL COMPUTER CENTER 

Frazer, PA 19355 

COMPUTER AID 

Latrobe, PA 15650 

THE COMPUTER WORKSHOP 

Murrysville, PA 15668 



P.S.: VISICALC—Howdidyou 
ever do without it? 



A B COMPUTERS 

Perkasie, PA 18944 

MICROTRONIX 

Philadelphia, PA 19106 

SOUTH CAROLINA 

DATA MART 

Greenville, SC 29607 

TENNESSEE 

MICROCOMPUTER STORE 

Knoxville, TN 37919 

COMPUTER LABS OF MEMPHIS 

Memphis. TN 38117 

DOC'S COMPUTER SHOP 

Nashville, TN 37211 

TEXAS 

COMPUTERLAND OF AUSTIN 

Austin, TX 78757 

COMPUTERS 'N THINGS 

Austin, TX 78731 

MICRO COMPUTER SHOPPE 

Corpus Chnsti, TX 78411 

COMPUSHOP 

Dallas, TX 75243 

COMPUTERLAND 

Dallas, TX 75231 

KA ELECTRONICS SALES 

Dallas. TX 75247 

COMPUTER TERMINAL 

El Paso, TX 79901 

RAM MICRO SYSTEMS 

Fort Worth. TX 76116 

COMPUTERCRAFT 

Houston. TX 77063 

COMPUTERLAND OF HOUSTON BAY 

Houston, TX 77058 

NEIGHBORHOOD COMPUTER 

Lubbock, TX 79401 

COMPUTER PATCH OF SANTA FE 

Odessa, TX 79762 

COMPUSHOP 

Richardson, TX 75080 

THE COMPUTER SHOP 

San Antonio, TX 78216 

COMPUTER SOLUTIONS 

San Antonio, TX 78229 

WICHITA COMPUTER SYSTEMS 

Wichita Falls. TX 76301 

UTAH 

ADP SYSTEMS 

Logan. UT 84321 

COMPUTER CONCEPTS GROUP 

Salt Lake City, UT 84109 

THE HI-FI SHOP 

Salt Lake City, UT 84117 

VERMONT 

COMPUTERMART 

Essex Junction, VT 05452 

VIRGINIA 

COMPUTER HARDWARE STORE 

Alexandria, VA 22314 

COMPUTERS PLUS 

Alexandria, VA 22304 

COW. INC. 

Blacksburg, VA 24060 

HOME COMPUTER CENTER 

Newport News. VA 23606 

COMPUTER TECHNIQUES 

Richmond. VA 23235 

THE COMPUTER PLACE 

Roanoke. VA 24015 

COMPUTER WORKSHOP 

Springfield, VA 22151 

COMPUTERLAND 

Vienna. VA 22180 

HOMECOMPUTERCENTER 

Virginia Beach, VA 23452 

WASHINGTON 

OMEGA NORTHWEST 

Bellevue, WA 98004 

COMPUTERLAND OF SOUTH 

KING COUNTY 

Federal Way. WA 98003 

YE OLDE COMPUTER SHOPPE 

Richland, WA 99352 

THE COMPUTER SHOPPE 

Seattle, WA 98115 

EMPIRE ELECTRONICS 

Seattle, WA 98166 

PERSONAL COMPUTERS 

Spokane, WA99202 

COMPUTERLAND 

Tacoma, WA 98499 

WISCONSIN 

BYTE SHOP OF MILWAUKEE 

Greenfield. Wl 53227 

COMPUTERLAND 

Madison. Wl 53711 

MADISON COMPUTER STORE 

Madison, Wl 53711 

COMPUTERLAND 

Milwaukee, Wl 53222 

FOX VALLEY 

COMPUTER STORE 

Neenha, Wl 54956 

WYOMING 

COMPUTER CONCEPTS 

Cheyenne, WY 82001 

AUSTRALIA 

ELECTRONIC CONCEPTS PTY. LTD. 

COMPUTERLAND 

Sydney, N.S.W. 

CANADA 

COMPUSHOP 

Calgary, Alberta T2N 2A4 



THE COMPUTER SHOP 

Calgary, Alberta T2T 4T9 

ORTHON COMPUTERS 

Edmonton, Alberta T5N 3N3 

TJB MICROSYSTEMS 

Edmonton,AlbertaT5M 0H9 

CONTI ELECTRONICS 

Vancouver, B.C. V5W 2Z4 

COMPUTER CITY 

Winnepeg. Manitoba R3P OH8 

COMPUTERLAND 

Winnepeg, Manitoba R3G 0M8 

INTERACTIVE COMPUTER SYSTEMS 

Fredenckton, New Brunswick 

MINICOMP SYSTEMS 

Halifax. Nova Scotia B3K 2G1 

KOBETEK SYSTEMS 

Wolfville, 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 K1B4A8 

RICHVALE TELECOMMUNICATIONS 

Richmond Hill, Ontario 

THE COMPUTER CENTRE 

Sarnia, Ontario N7T 1B4 

COMPUTER MART 

Toronto, Ontario M4G 3B5 

THE COMPUTER PLACE 

Toronto, Ontario M5V 1Z1 

COMPUTER SPECIALIST 

Toronto. Ontario M3K 1E7 

HOME COMPUTER CENTRE 

Toronto. Ontario M2M 3W2 

HOUSE OF COMPUTERS 

Toronto, Ontario 

MARKETRON 

Toronto, Ontario 

MICRO-WARE 

Toronto, Ontario M4E 2L2 

COMPUCENTRE 

Montreal, Quebec H1J 1Z4 
FUTURBYTE 

Montreal, Quebec H3B 3C9 
CUSTOM COMPUTING SERVICES 
Saskatoon. Saskatchewan S7K 2B5 

DIGITAL SERVICE 

Saskatoon, Saskatchewan S7J 3A9 

PUERTO RICO 

MICROCOMPUTER STORE 

Rio Piedras. PR 00921 

ENGLAND 
BYTE SHOP 

llford, Essex 

INFOGUIDE 

London 

CYTEK 

Manchester M4 3E4 

PETSOFT 

Newbury, Berkshire RG13 1PB 

KEEN COMPUTERS 

Nottingham NG7 1FN 

T & V JOHNSON 

MICROCOMPUTERS 

Camberly, Surrey 

PETALECT 

Woking, Surrey 

J&J ELECTRONICS 

Bexhill-on-Sea, East Sussex 

OPTRONICS 

Twickenham 1W1 4RY 

DENMARK 

MICRO SYS 

Copenhagen V1BYJ 

FRANCE 

SVEA 

Paris 75008 

GERMANY 

BECK COMPUTERS 

8 Munchen 70 

ING. W. HOFACKER 

8 Munchen 75 

HOLLAND 

COMPUTRON 

Den Haag 2502 ER 

ITALY 

HOMIC MICROCOMPUTERS SRL 

20123 Milano 

SCOTLAND 

MICRO CENTRE 

Edinburgh EH3 5AA 

SINGAPORE 

THE COMPUTER CENTRE PTE. LTD. 

Singapore 7 

SWEDEN 

MICROFUTURE 

Stockholm 10322 

SEMIDAKO 
Uppsala 75353 

SWITZERLAND 
INTERFACE TECHNIC 
Basel 

INGENIEUBUREAU 

Basel 1 

DIALOG COMPUTER 

Lucerne 

ELBATEX 

Wettingen 



Circle 302 on inquiry card. 



BYTE July 1979 



119 



Sonic 

Anemometry for 
the Hobbyist 



Neil Dvorak Meteorological measurement generally 

2562 s Newport concerns itself with five variables: air pres- 

Denver CO 80224 sure, humidity, temperature, wind speed, 

and wind direction. A single sonic ane- 
mometer can sense each of the last three 
variables. Accuracy and linearity are excel- 
lent. Additionally, the actual air temperature 
is detected in a manner which is insensitive 
to solar radiation, which can easily heat up 
conventional thermometers. 

In a sonic anemometer, wind vane and 
rotating cups are replaced with transducers 
which measure the speed of sound as a func- 
tion of wind velocity and temperature. Com- 
mercially available research grade instru- 
ments cost upwards of $10,000, and until 
recently employed analog computational 
circuitry. 

The arrival of the microcomputer and its 
associated display techniques makes such a 
scientific instrument economically feasible 
as an experimenter's project. As a bonus, 
data can be logged into memory overtime, 
averaged, and displayed as desired. A tanta- 
lizing option involves the attachment of a 
fast but inexpensive 4 bit analog to digital 
converter which enables the instrument to 
double as an ultrasonic echo radar device. 
At this time, however, such investigations 
have progressed only to echoing observa- 
tions on the time base of a triggered 
oscilloscope. 

In operation the instrument uses a pair of 
pulse travel times in the North-South di- 
rection and a corresponding pair for the 
East-West direction. These vector compo- 
nents are easily processed into a resultant 
wind vector with magnitude and direction. 
Physically, two sets of ultrasonic transducers 
face each other at opposite ends of a path. 
Simultaneous sound fronts and eventual 
reception yield two travel times whose 
difference is a measure of wind speed along 
the path. 



Fundamental Relationships 

The following derivation yields wind 
speed: 



At = t 9 - t 



D 



D 



1 C-W C+W 



2DW _ 2DW 

C 2 -W 2 C 2 



Therefore W 



c 2 



% H 



d) 

(2) 



where C = speed of sound 

D = path length 

W = wind speed 

t = difference of travel times. 

The resultant wind speed, W p being the sum 
of two orthogonal vectors, is simply ex- 
pressed as: 



w r 


= x/w 2 
v VV NS 


+ w 2 
EW 




(3) 


Temperature is foui 
travel times: 


id by add 


ing a pair of 


h + h 


D 
C+W 


D 
C-W 


2DC 

C 2 -W 2 






. 2DC _ 
% C 2 


2D 
C 


- 


(4) 



If C = 20 V T k is substituted in the 
above relationship: 



T k = 



2D 



_20(t, +t 2 ) 
where T k is degrees Kelvin. 



, (5) 



Since the velocity calibration of the 
instrument varies about 3.5% over a 0°C to 
30°C range, the temperature measurement 
can be used to correct the velocity readings. 
Using equations (2) and (4) above: 



W 



2D(h -t 2 ) 
(ti+t 2 )2 



(6) 



Wind speed measuring resolution can be 
determined if the computer's input cycle 
time and anemometer path length are 
known. Recall that: 



W = At 



1 20 July 1979 © BYTE Publications Inc 




it's on the dou 



INTRODUCING — LOUMAR MANAGEMENT SYSTEMS SOFTWARE 



<a 



programs to give you a comprehensive package for business management 



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

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

All software is written in 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 1 000 customers and 1 000 monthly 



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

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

$450 



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 for our brochure - Dealerships still available 
Contact: Distributor 

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

Circle 237 on inquiry card. byte July 1979 121 









Assume a path length of 4.84 feet and 
C = 1100 feet per second. A Z-80 based 
computer operating at a system clock 
frequency of 2.5 MHz, for example, can 
accept input no faster than 8 jus per byte. 
Under these conditions, resolution is: 

8 X 1 0~ 6 seconds X (1 100 feet/second) 2 
2X4.84 feet 

= 1 foot/second. 

For physical construction convenience I 
chose a three foot path length. This gives a 
resolution of nearly 1 mile per hour. 

Construction Details 

Rigid support should be used for the 
transducer mounting. I chose 3/4 inch plas- 
tic pipe for low cost and ease of assembly. 
See figure 3 for more detail. The angle a is 
not critical. Just keep in mind that the 
height (H) must be high enough to prevent 
off-axis energy from the transducers from 
bouncing off any hardware in the bottom 
center of the assembly (such as a printed 
circuit card). These reflections can return to 
the point of origin before arrival of the 
desired pulse. The plastic pipe for both axes 
can easily be fastened to a wooden base 
frame. If you need a permanent installation, 
you can investigate better support arrange- 
ments. 

The ultrasonic transducers (Model MK- 
109) range from one to two dollars apiece 
on the surplus market, and they can be con- 
veniently supported by pieces of 3/4 inch 
thin wall plastic pipe. Use shielded wire 
between the transducers and the interface 
electronics. The electronic circuit card 
should be sheltered from the elements. (A 
plastic sandwich bag will work for the short 
term.) Unshielded wire, such as a ribbon 
cable, can be used between the computer 
and the interface. 

Mechanical adjustment, besides the ob- 
vious line-of-sight alignment, consists of 
physically moving one or more transducers 
in their holders so that both component 
vectors are zero in still air. A program such 
as the demonstrator routine in listing 1 
should be used for this adjustment. 

In wiring the preamplifier section of the 
receiver, note that all the 74C04 integrated 
circuits are connected to a separate 5 V zener 
regulated supply. The shields of the receiver- 
transducer coaxial cables connect to the 
negative side of this zener diode. This pre- 
amplifier common connects to ordinary 
digital ground at only one location — a lead 
from the negative side of the zener to supply 
ground. 



Interface Electronics 

Figures 1 and 2 may seem to indicate 
that considerable effort was wasted on ob- 
taining an enormous signal to noise ratio. 
Not so. The barium titanate transducers 
(commonly used in intrusion alarms), having 
inherently high Q (ratio of inductance to 
resistance) and self resonance, are efficient 
only after many oscillations have built up. 
As impulse generators they are only margin- 
ally acceptable; I used them for their low 
cost and availability. 

Complementary metal oxide semicon- 
ductor inverters, biased in their linear region, 
perform as stable high gain preamplifiers. 
The logic state edge detectors, formed by 
the comparator and type D flip flop combin- 
ation, respond to the first negative or posi- 
tive cycle received that exceeds a preset 
noise threshold. 

The triacs are used to switch the output 
of the step-up transformer to either pair of 
transmitting transducers. Exclusive OR gate 
IC7c generates a delayed start strobe to the 
pulse generating circuitry. This delay allows 
the steering tria'cs to settle and permits only 
the desired set of transducers to activate. 
The monostable multivibrator IC10a, sensi- 
tive to transitions of either polarity, allows a 
single line from the output port to strobe 
the pulse generator and also select the de- 
sired wind direction to be measured. 

The trigger threshold of all receiver cir- 
cuitry is determined by a single resistor, 
R t , in a simple voltage divider string. Re- 
sets the difference between the comparator 
trip point levels, Vj_j and V[_. The receiver 
must be sensitive enough to trigger on 
the second, third, or fourth incoming half 
cycle^ but it must not be so sensitive as to 
latch up on extraneous noise. Increasing the 
value shown in the schematic, for example, 
decreases output sensitivity. Such action 
may be necessary if different path lengths or 
transducers are used. 

Transformer T should have a turns ratio 
of approximately 10:1. A small 120 V to 
12 V filament transformer will work here 
as a step up device, even at 40 kHz. 

A precautionary note: when testing the 
pulse generating circuitry, do not run it 
continuously with transducers connected 
because the 200 V peak to peak signal could 
result in a burn-out of these devices. 

Software 

Listing 1 contains a program written for 

the Z-80 microprocessor which displays data 

from the anemometer. It sends data to one 

bit of an output port and accepts data from 

Text continued on page 132 



1 22 July 1979 © BYTE Publications Inc 










Figure 1: Schematic diagram of receiver section of circuit. The arrival time of a pulse is perceived by the receiver as the first 
negative or positive half cycle to exceed a noise threshold. 



July 1979 © BYTE Publications Inc 123 




KT l-Q- 1 



moQ- 



1 24 July 1 979 © BYTE Publications Inc 



Circle 35 on inquiry card 



Table 1: Power table for the integrated circuits used in figures 1 and 2. 



Number 


Type 


+5 V 


GND 


-12 V 


+12 V 


IC1 


74C04 


14 


7 


— 


— 


IC2 


74C04 


14 


7 


- 


- 


IC3 


74C04 


14 


7 


- 


- 


IC4 


MC3302P 


- 


12 


- 


3 


IC5 


7474 


14 


7 


- 


- 


IC6 


7474 


14 


7 


- 


- 


IC7 


7486 


14 


7 


- 


— 


IC8 


MC3302P 


- 


- 


12 


3 


IC9 


555 


8 


1 


- 


- 


IC10 


74123 


16 


8 


- 


- 





Figure 3: Structural diagram of the sonic anemometer transducer apparatus. 
Shown are the two transducers for one axis; only a cross section of the other 
axis is seen. The electronic circuit card is seen near the center of the assembly. 
The measuring resolution is a function of the distance D between the trans- 
ducers. The angle a should not be less than 30 degrees. 



: 



X 



K 



] T 



; 



INTERFACE 
ELECTRONICS 



wzp- 



-CROSS SECTION VIEW OF 
REMAINING AXIS PIPE 



Listing 1 : Program in Z-80 assembler code to gather data from the sonic ane- 
mometer and display wind direction on a video monitor. 



S 0600 


063B 










0600 thru 063B triggers the pulse generator and 


0600 


00 






NOP 




calls all the support routines in their proper se- 


0601 


00 






NOP 




quence. 


0602 


00 






NOP 






0603 


CD 


40 


07 


CALL C 


740: 




0606 


00 






NOP 






0607 


00 






NOP 






0608 


00 






NOP 






0609 


00 






NOP 






060A 


00 






NOP 






060B 


00 






NOP 






060C 


00 






NOP 






060D 


00 






NOP 






060E 


00 






NOP 






060F 


00 






NOP 






0610 


3E 


00 




LD / 


V00: 




0612 


D3 


02 




OUT C 


)2: 




0614 


CD 


60 


07 


CALL C 


)760: 




0617 


CD 


3 4 


07 


CALL C 


)734: 




061A 


CD 


00 


07 


CALL C 


)700: 




061 D 


CD 


BD 


08 


CALL C 


)8BD: 




0620 


3E 


1 




LD / 


\,01 : 




0622 


D3 


02 




OUT ( 


)2: 




0624 


CD 


65 


07 


CALL ( 


)765: 




0627 


CD 


1 


07 


CALL ( 


)710: 




062A 


CD 


34 


07 


CALL ( 


)734: 





Listing 1 continued on page 126 



••• 






Participate in the exciting, fast- 
growing retail personal computer 
business. We're Byte Industries 
Incorporated® the oldest micro- 
computer distributor in the country, 
and we're offering individual Byte 
Shop" dealerships nationwide. 

As a Byte Shop * dealer you get: 

• The nationally recognized Byte 
Shop" Trademark 

• A broad full-line inventory of 
small-business and personal 
computer products 

• National and regional advertising 
support 

• Store development guidance 

• The benefits of a national chain 
organization without franchise fees 
or ongoin g ro yalties 

• Exclusive, protected territories. 

To qualify, you should have an 
interest in computers, combined 
with the desire and ability to run 
your own business. Retail and/or 
sales management experience 
is a definite plus. A theoretical or 
working knowledge of computer 
technology is also helpful, though 
not necessary. Investment is 
roughly $80,000, with an initial 
equity contribution of $40,000. 

If you're ready for your own 
business and have what it takes, 
write or call Mike Chase now. 

408-739-8000 



ByteOMhosfirfte 

* Incorporated - A LOGIC Comp 



Company 



Yes, I'm interested. Please send me 
your Byte Shop" dealership information 
packet today. 

NAME 

I ADDRESS 

CITY 

I STATE 



_ZIP_ 



PHONE 

Byte Industries, Incorporated* 
930West Maude 
Sunnyvale, CA 94086 
(408) 739-8000 



July 1979 © BYTE Publications Inc 125 



Circle 385 on inquiry card. 




SOFTWARl 

BUYERS 
Glffflb 

The latest Buyers-Guide of microcom- 
puter software, accessories and sup- 
plies is now available. Up to the minute 
releases on software and accessories 
for the APPLE II and the TRS-80 as 
well as a wide range of computer sup- 
plies are listed on these sheets. This is 
the most comprehensive guide of its 
kind available today. If you own a 
microcomputer you can't afford to pass 
up this offer. If you are a supplier of sof- 
tware or accessories you'll want a copy 
of this guide to see if your products are 
listed because if they aren't you are 
missing out on sales. 

$3.00 

(we will send you a certificate 
worth $3.00 off of your first pur- 
chase.) 

AUTOMATIC INSTANT 
UPDATE 

We send you the current Buyers-Guide 
bound in a handsome 3 ring binder. 
Monthly you will receive current up- 
dated pages to add to the catalog. A 
directory of suppliers, their phone num- 
bers and their addresses are always at 
your finger tips. We publish user com- 
ments on items purchased. As a sub- 
scriber to Automatic Instant Update 
you will be the first to learn of new sof- 
tware releases, you'll get some great 
buys on overstocked items or new 
release specials, and you'll never have 
to search again. 
One years service $25.00 



Wallace 
Electronics, Inc. 

4921 N. Sheridan Rd 
Peoria, Illinois 61614 




Listing 1 continued from page 125: 



062D 


CD 


00 


07 


CALL 


0700: 


0630 


CD 


D4 


08 


CALL 


08D4: 


0633 


CD 


0A 


08 


CALL 


080A: 


0636 


CD 


7B 


08 


CALL 


087B: 


0639 


C3 


00 


06 


JP 


0600: 


READY 












S 080A 


*084£ 


: 








080A 


2 1 


DF 


0A 


LD 


HL.0ADF: 


080D 


3A 


F3 


06 


LD 


A,(06F3) : 


0810 


4 7 






LD 


B,A: 


0811 


3A 


F2 


06 


LD 


A,(06F2) : 


0814 


98 






SBC 


B: 


0815 


38 


08 




JR 


C/081F* 


0817 


32 


F1 


06 


LD 


(06F1),A: 


081A 


CD 


4D 


08 


CALL 


084D: 


081D 


1 8 


08 




JR 


*0827* : 


081F 


ED 


44 




NEG 




0821 


32 


F1 


06 


LD 


(06F1),A: 


0824 


CD 


5 1 


08 


CALL 


0851 : 


0827 


3A 


F5 


06 


LD 


A,(06F5) : 


082A 


47 






LD 


B,A: 


082B 


3A 


F4 


06 


LD 


A,(06F4) : 


082E 


98 






SBC 


B: 


082F 


38 


OC 




JR 


C/083D* 


0831 


32 


F6 


06 


LD 


(06F6),A : 


0834 


28 


05 




JR 


Z.*083B* 


0836 


CD 


A0 


08 


CALL 


08A0: 


0839 


00 






NOP 




083A 


00 






NOP 




083B 


1 8 


0A 




JR 


*0847* : 


083D 


ED 


44 




NEG 




083F 


32 


F6 


06 


LD 


(06F6),A : 


0842 


23 






INC 


HL: 


0843 


23 






INC 


HL: 


0844 


3D 






DEC 


A: 


0845 


20 


FB 




JR 


NZ/0842 


0847 


36 


AA 




LD 


(HL).AA : 


0849 


C9 






RET 




READY 












S 087B 


*0892 


> • 








087B 


3E 


"Vf 




LD 


A.7F : 


087D 


CD 


FA 


00 


CALL 


00FA: 


0880 


01 


00 


04 


LD 


BC.0400 : 


0883 


2 1 


00 


09 


LD 


HL.0900: 


0886 


7E 






LD 


A,(HL): 


0887 


D3 


00 




OUT 


00: 


0889 


AF 






XOR 


A: 


088A 


D3 


00 




OUT 


00: 


088C 


23 






INC 


HL: 


088D 


0B 






DEC 


BC: 


088E 


78 






LD 


A,B: 


088F 


B1 






OR 


C: 


0890 


20 


F4 




JR 


NZ/0886 


0892 


C9 






RET 




READY 












S 084D 


' 086E : 








084D 


3E 


42 




LD 


A.42: 


084F 


1 8 


02 




JR 


*0853*: 


0851 


3E 


4A 




LD 


A.4A: 


0853 


32 


6A 


08 


LD 


(086A),A : 


0856 


3A 


F1 


06 


LD 


A,(06F1): 


0859 


57 






LD 


D,A: 


085A 


FE 


00 




CP 


00: 


085C 


C8 






RET 


Z: 


085D 


DE 


07 




SBC 


07: 


085F 


38 


04 




JR 


C,*0865* 


0861 


3E 


07 




LD 


A, 07: 


0863 


1 8 


01 




JR 


*0866* : 


0865 


7A 






LD 


A,D: 


0866 


01 


40 


00 


LD 


BC.0040 : 


0869 


ED 


42 




SBC 


HL.BC: 


086B 


3D 






DEC 


A: 


086C 


20 


FB 




JR 


NZ,*0869' 


086E 


C9 






RET 




READY 












S 08BD 


' 08D2 : 








08BD 


3E 


46 




LD 


A,46: 


08BF 


32 


F0 


08 


LD 


(08F0),A : 


08C2 


CD 


EB 


08 


CALL 


08EB: 


08C5 


32 


F2 


06 


LD 


(06F2),A : 


08C8 


3E 


4E 




LD 


A.4E: 


08CA 


32 


F0 


08 


LD 


(08F0),A : 


08CD 


CD 


EB 


08 


CALL 


08EB : 


08D0 


32 


F3 


06 


LD 


(06F3),A : 


READY 












S 08D4 


'08F^ 


: 








08D4 


3E 


56 




LD 


A.56: 


08D6 


32 


F0 


08 


LD 


(08F0),A : 



080A thru 0849 positions an ASCII asterisk in 
the video memory buffer. 



087B thru 0892 outputs the video buffer to the 
1 6 by 64 character generator. 



084D thru 086E is a subroutine to raise or lower 
the asterisk for routine 080A. 



08BD thru 08D2 extracts and stores vertical 
(N/S) travel times. 



08D4 thru 08EA extracts and stores horizontal 
(E/W) travel times. 



Listing 1 continued on page 128 



1 26 July 1979 © BYTE Publications Inc 







The line your reputation should be on. 



When a computer supplier or retailer sells equipment, 
his reputation is on the line. 

And when the customer has to justify his investment 
decision, his reputation is on the line too. 

So, naturally, everybody's a lot better off on a reliable 
line. Like ours. 

With a name like Industrial Micro Systems, we 
wouldn't think of building anything short of industrial 
standards . . . even our S-100 products. 
No short cuts or jumpers. 

All of our boards — CPU, memory and controllers — 
are made from real fiberglass instead of a plastic 
substitute. And contacts are gold plated over a copper- 
ion barrier of nickel. 

Every disk enclosure features a heavy-gauge steel 
chassis, and a heavy duty power supply. Built to take it. 

Then come our complete systems. Aside from the 
disk drives, we manufacture every component that goes 
into them. Even the desk that goes around them. So 



we can vouch for rugged reliability inside and out. 
Two complete systems: 

Our new Series 5000 features a megabyte of storage 
on integral mini-floppies. And our Series 8000 is all 
business too. It can handle up to three megabytes on 
8-inch drives. A large library of software, growing daily, 
includes CP/M* PASCAL, and FAMOS** 
Breaking the 64k barrier. 

Using Industrial Micro Systems 32k memory boards 
with Memory Management, our systems can handle 
up to 576k RAM internally. 
More in store. 

That's not the end of the line. It's growing all the time, 
along with our reputation for quality. Put your reputation 
on the line. Our line. 

For more details just call or write. Supplier/dealer 
inquiries welcomed. 

Industrial Micro Systems, 628 N. Eckhoff, Orange, 
CA 92668. (714) 633-0355. 



INDUSTRIAL MICRO SYSTEMS 

The great unknown. 



Circle 173 on inquiry card. 



*Trademark of Digital Research **Trademark of M V/T Systems 



•P.E.T.*Food* 



HEE33B 


i;mhzi^ 




1 A 


3.33 


CASH 


PENNZOIL 


2 Z 


35.98 


MCHG 


CRITTERS 


3 C 


288.11 


B OF A 


WOOL SUIT 


4 Z 


1.29 


CASH 


TOOTHBRUSH 


5 E 


9.95 


CHKK181 


BOOK 


6 F 


68.47 


CASH 


2 WEEK'S FOOD 


7 G 


13.44 


MCHG 


GIFT FOR HIFE 


8 8 


316 


CHKKiBl 


MORTGAGE 


9 I 


2.75 


CASH 


PAV FOR 1 HOUR 


18 Z 


5.81 


CASH 


SUIT CLEANED 


To go 


on, press any key 





Household Finance Part 1 



Vou spent the following amounts in each 
category for the months of ■• JANUARY FEBRU 
FiRV 

CATEGORY AMOUNT CATEGORV AMOUNT 



MRTGE 

CLOTHES 

ENTRTAIN 

EDUC 

FOOD 

GIFTS 

HOUSE 



INCOME ?- 

TAXES I 

MEDICAL 210 „ 

INSUR 281.55 

SAVINGS 8 nn 

UTIL 36.23 

VACATION 1823.41 



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



Total amount spent was 4358.99 

Total income was 2.75 

Do you want a spending profile for this 
period?<V or N) 



Household Finance Part 2 

Part 1 inputs, lists, adds, 
updates, changes, 
and deletes items. 
Writes data to a 
cassette tape. 

Part 2 reads data tape; 
gives single item, 
single month and 
year-to-date sums. 

Both parts $15.00 

» Also Available « 
SPACE WAR..S10.00 
Household Utility 1 

C3 Programs]... $12.00 

Dual Joystick 
Interface s^s.oo 

SEAWOLF. ..$10.00 
BREAKOUT. S3 -lo.oo 
LIFE ^20.00 

ORDERS: Send check, money order, 
or VISA/Mastercharge (include expi- 
ration date) and add $1.50 shipping. 
Calif, residents add 6% sales tax. 

INFORMATION: More information 

on these and many other currently 

available programs is available on a 

free flyer. Write directly to Creative 

Software. 

Circle 83 on inquiry card. 

Creative Software 

P.O. BOX 4030, MOUNTAIN VIEW, CA 94040 
1 28 July 1 979 © BYTE Publications Inc 



Listing 7 continued from 126: 



READY : 



08D9 


CD 


EB 


08 


CALL 08EB: 


08DC 


32 


F4 


06 


LD (06F4),A : 


08DF 


3E 


5E 




LD A.5E: 


08E1 


32 


F0 


08 


LD (08F0),A : 


08E4 


CD 


EB 


08 


CALL 08EB: 


08E7 


32 


F5 


06 


LD (06F5),A: 


08EA 


C9 






RET 




08EB 


AF 






XOR A: 


08EC 


2 1 


00 


0D 


LD HL,0D00 


08EF 


CB 


5E 




BIT 3,(HL): 


08F1 


CO 






RET NZ: 


08F2 


23 






INC HL: 


08F3 


3C 






INC A: 


08F4 


1 8 


F9 




JR 


08EF* : 


READY 












S 0700 


073/> 


: 








0700 


06 


00 




LD B.00: 


0702 


0E 


02 




LD C.02 : 


0704 


2 1 


00 


0D 


LD HL.0D00 


0707 


ED 


B2 




INIR 




0709 


C9 






RET 




070A 


00 






NOP 




070B 


00 






NOP 




070C 


00 






NOP 




070D 


00 






NOP 




070E 


00 






NOP 




070F 


00 






NOP 




0710 


3E 


CE 




LD A.CE: 


0712 


32 


1 F 


09 


LD (091F),A: 


0715 


3E 


D3 




LD A.D3: 


0717 


32 


DF 


OC 


LD (0CDF),A 


071A 


3E 


C5 




LD A.C5 : 


071C 


32 


FF 


0A 


LD (0AFF),A 


071F 


3E 


D7 




LD A.D7: 


0721 


32 


CO 


0A 


LD (0AC0),A 


0724 


3E 


EF 




LD A,EF: 


0726 


32 


DF 


0A 


LD (0ADF),A 


0729 


C9 






RET 




072A 


00 






NOP 




072B 


00 






NOP 




072C 


00 






NOP 




072D 


00 






NOP 




072E 


00 






NOP 




072F 


00 






NOP 




0730 


06 


1 




LD E 


3,01 : 


0732 


1 8 


02 




JR 


0736* : 


0734 


06 


1 




LD E 


3,01 : 


0736 


0E 


7F 




LD C 


J.7F: 


0738 


ED 


BB 




OTDR 




073A 


C9 






RET 




READY 












S 0740 


*074F 










0740 


2 1 





09 


LD h 


HL.0900 


0743 


06 


00 




LD E 


J,00: 


0745 


3E 


A0 




LD / 


^.A0: 


0747 


77 






LD ( 


HL),A: 


0748 


23 






INC r 


HL: 


0749 


1 


FC 




DJNZ * 


0747* : 


074B 


77 






LD ( 


HL),A: 


074C 


23 






INC h 


HL: 


074D 


1 


FC 




DJNZ * 


074B* : 


074F 


C9 






RET 




READY 












S 0760 


0770 


; 








0760 


2 1 





0B 


LD h 


HL.0B00 


0763 


1 8 


03 




JR 


0768* : 


0765 


2 1 


00 


OC 


LD V 


HL.0C00 


0768 


06 


00 




LD E 


J,00: 


076A 


3E 


A0 




LD ft 


^,A0: 


076C 


77 






LD ( 


HL),A: 


076D 


23 






INC h 


HL: 


076E 


1 


FC 




DJNZ * 


076C* : 


0770 


C9 






RET 




READY 












S 08A0 


' 08AB : 








08A0 


47 






LD E 


J,A : 


08A1 


DE 


OF 




SBC C 


F: 


08A3 


38 


02 




JR C 


:,*08A7* 


08A5 


06 


OF 




LD E 


},0F: 


08A7 


2B 






DEC h 


\L: 


08A8 


2B 






DEC h 


\L: 


08A9 


1 


FC 




DJNZ * 


08A7* : 


08AB 


C9 






RET 





OBEB thru OBF4 counts the number of memory 
spaces necessary to find a bit set in the data. 



0700 thru 0709 inputs a block of data from a 
port to a page in memory. 



0710 thru 0729 places the N-S-E-W graticule in 
the buffer allocated for the video display. 



0730 thru 073A is for delay only. 



0740 thru 074F erases half the video buffer. 



0760 thru 0770 are the remaining video erase 
routines. 



OBAO thru OBAB moves the asterisk to the left in 
proportion to the magnitude of the horizontal 
(E/W) wind vector. Limits the data to 1 5 decimal 
to prevent overwriting other memory. 




^^^M^Onw^U 




Ml£j 



Announcement I. The first eight Personal 
Programs® from Aladdin Automation are 
waiting for you now at your neighborhood 
computer retailer or direct from Aladdin. 

Now you can get yourfull 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 t'me. ' ' 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 
give you full chance to test your 
powers of logic, deduction and reason. And 
test them you will, as you try and solve the 
computer's puzzle, using clues as they're 
provided one-by-one. You control the degree of 
difficulty in this classic Personal Program® that 
offers one simple, yet all-consuming challenge: 
beat the Mastermind in a direct, one-on-one 
battle of wits. Aladdin's Mastermind. The first 
release from the Aladdin Old Favorites® Series. 

Tic-Tac-Toe Five different levels 
of difficulty allow a person of any 
age or skill to take part in this 
relaxing, enjoyable game that can act as a 
learning tool, as well. Level I, for example, is 
suitable for children and is excellent also for 
teaching simple mathematics. The computer 
plays just about perfectly at Level V. Just 
about, that is, so go ahead and take your best 
shot. See if you can beat the computer in this 
traditional favorite of young and old alike. 
Tic-Tac-Toe. Another first release from the 
Aladdin Old Favorites® Series. 



Jungle Island® Shipwrecked in a 
raging storm at sea. miraculously 
you survive only to find yourself 
stranded on a seemingly deserted jungle 
island. Without food, water or supplies of any 
kind, you begin to try and find your way to 
safety. The computer will be your eyes and 
ears as you explore your jungle island and all 
the mysteries and dangers that lie in wait for 
you. Jungle Island® A captivating first 
release from the Aladdin Adventure® Series. 

Stix^ Aladdin's Stix® can be 
played with 2 to 5 piles of st icks 
and between 1 and 1 9 sticks in 
each pile. The object: to be the one to pick up 
the last stick. Sounds simple? Yes, but you're 
playing agamst 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. 




Math-Ter-Mind 8 Lunar Lander 



Craps 



Mastermind 



Tic-Tac-Toe Jungle Island® Stix® 



Super Pro Football 9 



Welcome to the All-New World of 
Aladdin. And Get Ready to 
Make Your Own Magic 




AL/DDN >1UTOM>4T10N, ISC 
/LADON COMPUTE? CORR 

3420 Kenyon Street, Ste. 131. San Diego. CA9211 



Copyright 1978 by Aladdin Automation 



Design and copy by Campbell Marsh Graphic Communications 



Circle 3 on inquiry card. 



BYTE July 1979 



129 












Table 2: Summary of 
actions taken by program 
in listing 7. 



1. 
2. 

3. 
4. 

5. 
6. 
7. 
8. 
9. 



10. 
11. 

12. 



Output to a port to trigger the North-South transducers. 

Erase part of the video buffer (must be a time-invariant task). 

Input a block of data into memory from anemometer port. 

Examine memory, extract, and save North-South travel times. 

Output to port to trigger East-West transducers. 

Erase remainder of video buffer. 

Input a block of data into memory. 

Examine memory, extract, and save East-West travel times. 

Move cursor (equivalent to head of resultant wind vector) in video memory buffer 

appropriate horizontal (East-West) and vertical (North-South) distances from 

origin. 

Display the contents of video buffer on the videomonitor. 

Compute and display the temperature, (optional) 

Go to step 1 . 






Figure 4: Block diagram 
of anemometer hardware. 



O "O 



-o 



T ! } : 

TRANSDUCERS 
R T ( 




PULSE 
GENERATOR 



\ /amp 



AMP 



V 



RECEIVER 

DEADEN 

ONE-SHOT 



-o BIT 



EDGE 
DETECTOR 



-o BIT 



EDGE 
DETECTOR 



-o BIT I 



IDENTICAL CIRCUITRY FOR REMAINING VECTOR 



» « BIT 2 



-* « BIT 3 



Figure 5: Timing relation- 
ships of signals present in 
the sonic anemometer. 



STROBE FROM COMPUTER 



IMPULSE TO TRANSDUCER 



■aA/V\a^ 



PULSE BURST FROM SAME TRANSDUCER 



AMPLIFIER OUTPUT 



•*f\I\ 



SIGNAL FROM EDGE DETECTOR 



1 30 July 1 979 © BYTE Publications Inc 



<CC 



^ 



msBsm 



' >■ >*>* ^ 



iliiiiiiiiiiiiiliiiiiiniiiiiiiiiiiiiiiiiiiiiim, 



Both our UNCommon Dynamic and our UNCommon Static RAMS have the following 
features and specifications: 



5 



• NEW PRODUCT* 

64K bytes of 
fast, low 
power dyna- 
mic RAM. 
MEMORY 
BANK SELECT 

$89500 

lor mnrffl DMB 6400 



64K bytes of 
f as t , low 
power dyna- 
mic RAM. 

$79500 

tor model DM C.400 



• NEW PRODUCT* 

32K bytes of 
faster Static 
RAM which 
MEMORY 
BANK SELECT 

$69500 

h» mo.it- SMB 3200 



• They are all GUARANTEED to be compatible with the following S-100 
systems: 

CROMEMCO. IMSAI. ITHACA AUDIO. MITS. NORTH STAR. PROCESSOR 
TECHNOLOGY. TDL.TEI. VECTOR GRAPHICS, and other S-100 systems. 



Both of Our UNCommon Dynamic RAM Series, 
the DMB -6400 and the DM-6400, feature: 

• 64K bytes of dynamic RAM with on board transparent refresh. 

• S-100 interface compatible, with crystal controlled timing INDEPENDENT 
of bus or processor timing. 

• No wait states with 8080 or Z-80 to 4MHz. Lip to 5MHz with I wait state. 

• Memory selectable or deselectable in 4K byte increments. 

• Low power. 8 watts maximum, in G4K byte configuration. 

Our UNCommon Static RAM Series, the SMB 
3200, features: 

• Memory Bank select capabilities: Either two (2) I6K byte banks of mem- 
ory, or one (!) 32K byte bank per board. 

• 32K bytes of low power static RAM. 

• No wait stares with 8080. 8085, or Z-80 processors up to 5MHz. 

• Addressable in 4K byre increments at 4K boundaries. Deselectable in 4K 
byte increments. 



UNCommon Dynamic RAMS with | 
MEMORY BANK SELECT. 

□ DMB 6400 64K RAM - >895' 

□ DMB 4800 48K RAM - s 795 

□ DMB 3200/32K RAM - *695 00 

UNCommon Static RAMS with 
MEMORY BANK SELECT. 

□ SMB 3200/32K RAM - *695 00 

UNCommon Dynamic RAMS 

D DM 6400/64K RAM - s 795 00 

□ DM 4800/48K RAM - ^695 00 

□ DM 3200/32K RAM - *595 n0 




ruicts suBjrcT to change without noticli 



Announcing the Model DMB-6400 Series 
of UNCommon Dynamic RAMS. This Series 
incorporates the features which are stan- 
dard in the DM-6400 Series and adds the 
following capabilities: 

• MEMORY BANK SELECT which is compatible with CROMEMCO. 

NORTH STAR, and other systems using output port bank select. 

• 256 ports selectable (including CROMEMCO 40H ^nc\ NORTH 
STAR COH) 

• Eight (8) 64K bytes banks of memory per output port. 

• Each I6K bytes of addressable memory space may be individually 
set to start at 0000, 4000. 8000, or C000 and can be set for any of 
the 8 banks on one selected output port. The bank memory size 
can be incremented from I6K bytes to 64K bytes in I6K increments, 
allowing 5I2K byte bank sizes. 

• Total memory addressing to over 100 Megabytes by using different 
I O ports for memory control. 



All of our UNCommon Dynamic and Static Series 
RAMS feature the following: 

• Inputs are RC filtered and buffered with I LS TTL load. Compatible with 
terminal eel or unterminated busses. 

• Outputs arc all tri-state. 

• Disc compatible. DMA compatible 

• Phantom memory selectable on pin 6 7. 

• DIP switch selectable addressing. 

• Reliability — all boards fully tested and burned-in, 

• FLILL DOCUMENTATION - Schematics, layout, parts list, theory of oper- 
ation, timing diagrams, and option selection. 

• Industrial quality design, components and construction. Glass epoxy 
boards. Fused, double solder masks. Silk screened legends. Gold plated 
connector contacts. All IC s socket mounted 

• Guaranteed performance on parts and labor for one year 



MEASUREMENT 

systems &. controls 

incorporated 

For the above products see your local dealer or order directly. 

ORDERS - BA. VISA. MASTER CHARGE, money orders, or personal checks. Please allow 14 
days for checks to clear bank. California residents please i\6c\ 6% sales rax to your order. 

All orders shipped postpaid. All orders in U.S. funds. Please add 10% on all orders outside the 
U.S.A. and Canada. 



867 North Main Street 

Orange. California 92668 

Telephone: (714) 633-4460 



Circle 215 on inquiry card. 



BYTE July 1979 



131 




Photo 2: The interface elec- 
tronic circuits are housed 
inside a convenient but 
necessary weather barrier. 





Photo 1: Wind direction display as it appears 
in the 16 line by 64 character format on the 
video monitor. The wind speed and velocity 
are indicated by the position of the asterisk 
with respect to the origin at center. 



Photo 3: This view shows the plastic pipe construction of the sonic ane- 
mometer and the positioning of the transducers. 



Text continued from page 122: 

four bits of an input port. The composite 
wind vector is displayed on a video monitor 
in a 1 6 line by 64 character format. The pro- 
gram does not include a routine for comput- 
ing the square root of the sum of squares; 
the plotting method used in the video for- 
matting makes this unnecessary. 

1 K bytes of memory is allocated for 
video display storage. A fixed cardinal direc- 
tion graticule and an asterisk varying with 
the wind vector are placed in this buffer by 
subroutines. For each complete measure- 
ment by the transducers, the program erases 
and restores the video buffer. The position 
of the asterisk with respect to the center of 
the screen indicates wind direction and 
magnitude. Photo 1 shows the display. This 
arrangement, although cramping the display 
to only a ±8 unit variation in the North- 
South direction and allowing a ±32 unit 
variation in the East-West direction, still per- 
mits an interesting, virtually instantaneous 
display of wind activity. 

Some of the subroutines in the listing 
have been split up so that the computer is 
doing useful things even during the transit 
times of the sound pulses (eg: erasure of 
the video buffer). The program measures the 
pulse travel times in a manner analogous to 
a counter. At a fixed time after pulse initia- 
tion, the input routine begins to look at a 
particular pulse has arrived flip flop (part of 
the hardware interface that connects to an 
input port) and records its logic state, or 1, 
into an initial location in memory. This rou- 
tine repeats itself 256 times, each time enter- 
ing another observation into the next 
memory location allocated for logging. 
Checking for a 1 state (pulse has arrived) is 
saved for later in order to get the best time 
resolution out of the processor. A number 
whose value is proportional to travel time 
is finally obtained by a routine which starts 
at the beginning of the logging buffer and 
counts the number of successive memory 
bytes necessary to find a 1 in a particular bit 
position. Since a bit is allocated for each of 
the four travel times, determining the wind 
direction and speed is simply a matter of 
testing each of the four bits in an identical 
fashion." 



1 32 July 1 979 © 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 IV| | S S I O l\l 

2008 WILSHIRE BLVD., SANTA MONICA, CA 90403 • (213) 829-5137 CONTROL 



Circle 238 on inquiry card. 



BYTE July 1979 133 












The Nature of Robots 

Part 2: Simulated Control System 



Figure, table, and listing 
numbering continued from 
part 7. 



Note on North Star BASIC 

The method of accessing strings in North 
Star BASIC is different from that of Micro- 
soft and other BASlCs. Translate as follows: 

A$(1,n) becomes LEFT$(A$,n) 
A$(n) becomes RIGHT$(A$,n) 

A$(m,n) becomes MID$(A$,m,n) 



Listing 2: A control system simulator written in North Star BASIC. 



1 

2 

3 

4 

5 

6 

7 

8 

9 

10 

11 

12 

13 

14 

15 

16 

17 

18 

19 

20 

21 

22 

23 

24 

25 

26 

27 

28 

29 

30 

31 

32 

33 

34 

35 

36 

37 

38 

39 

40 

41 

42 

43 

44 

45 

46 



'PROGRAM TWO: SIMULATION OF CONTROL SYSTEM BEHAVIOR' 



'AFTER PROMPT (COLON), YOU MAY TYPE" 
"PLOT XXXXXX', WHERE XXXXXX MEANS" 
'ANY ONE OR MORE CHARACTERS FROM THE" 
'SET P,E,R,l,0,D, IN ANY SEQUENCE." 

'YOU MAY ALSO SET PARAMETERS BY TYPING IN" 
'THE PARAMETER SYMBOL IMMEDIATELY FOLLOWED' 
'BY AN EQUAL SIGN AND THE VALUE (NO SPACES)." 

'PARAMETERS ARE L, K1 , K2, S1 , S2, 0, P, R, AND D' 
'DEFAULT VALUES 1 6, 1 , 2, 1 , 1 , 0, 0, 0, AND 1 5" 

"TO RUN, TYPE '.' (INITIALIZE), OR V (DON'T INIT)." 



PRINT ' 

PRINT 

PRINT 

PRINT 

PRINT 

PRINT 

PRINT 

PRINT 

PRINT 

PRINT 

PRINT 

PRINT 

PRINT 

PRINT 

PRINT 

PRINT 

K1 =1 

K2 = 2 

51 =1 

52 = 1 
P0 = 
00=0 
R0=0 
D0 = 15 
V(4) = 1 
V(5) = 1 
V(6) = 1 

INPUT "DISPLAY WIDTH: 
W = W-2 

C = W/2 \ REM CENTER OF DISPLAY 

DIM Z$(W),M$(W),A$(20),B$(6),K(6),U(6),E$(72) 

B$ ="PERIOD" 

L1 =15 

FOR J = 1 TO W 

Z$(J,J)=" " 

NEXT J \ REM CREATE BLANK FILE 

DEFFNI(X)\ REM INPUT FUNCTION 

P = P+S1*(K1*X-P) 

RETURN P 

FNEND 

DEF FNO(X) \ REM OUTPUT FUNCTION 

0=0+S2*(K2*E-0) 

RETURN 

FNEND 

DEF FNF(X)=0.5*X\ REM FEEDBACK FUNCTION 

DEF FND(X)=0.8*X\ REM DISTURBANCE FUNCTION 



\W 



William T Powers 

1138 Whitfield Rd 

Northbrook IL 60062 



In part 1, we went through a chain of 
reasoning that ended with the conclusion 
that the behavior of an organism is not what 
it seems. Behavior appears to be at the end 
of a cause and effect chain that starts with 
the inputs to a nervous system, but that 
chain is subject to disturbances that can 
occur after the output of the nervous sys- 
tem. Nevertheless, the behavior at the end 
of this chain is stable and repeatable, while 
events closer to the organism become less 
predictable as we get nearer to the neural 
signals at the output of the nervous system. 
By analyzing an example in which a car 
is maintained in the center of its lane, we 
saw that this measure of behavior belongs 
at both the cause and effect ends of the 
chain, and that if this variable is shown 
only once in the diagram, a closed loop 
results. 

We are going to look in more detail at 
the behaving system in this closed loop, 
to see how it might be organized to pro- 
duce the results seen. We will start using a 
simulator written in BASIC which allows the 
user to vary many parameters of the con- 
trol system to see the effects on its actions. 
Human behavior will not be mentioned 
much in this installment; there are many 
fundamentals to cover before we can get 
back to the main purpose of this series. The 
object here is to retrain the intuition so that 
the closed loop way of seeing behavior 
becomes as natural as the old straight 
through cause and effect way. 

Organization of a Control System 

The simulator (listing 2) is set up to 
demonstrate the properties of a standard 
sort of control system organization. We will 
first look at that organization, then at the 
simulator itself, and finally at some details 
of the operation of the control system. You 



1 34 July 1 979 © BYTE Publications Inc 






can do much more experimenting than we 
will discuss here. 

Figure 5 is a diagram of a typical control 
system. Almost every control system can be 
expressed in this form, although in the real 
system, functions that are shown here as 
separate are often combined into one 
physical entity. The symbols for functions 
and variables are those which appear in the 
BASIC simulator. 

The behaving system is entirely above 
the boundary line. All that is not the be- 
having system (or systems inside the organ- 
ism at a higher level, not considered here) 
is called the environment of the system. 
Variables inside the system will always 
be called signals, and variables in the envi- 
ronment will always be called quantities. 
In the environment we have three quantities 
mentioned in part 1. The input quantity is 
a physical variable that the system can sense. 
The state of this quantity is the result of 
all influences acting on it (which in our 
limited universe means the influence from 
the system's own output) and one repre- 
sentative disturbing quantity that can vary 
independently from what the system does. 
The system's output is represented by the 
output quantity. The input quantity is 
called I, the output quantity O, and the 
disturbing quantity D. 

The output and disturbing quantities are 
separated in space from the input quantity, 
and they influence the input quantity 
through properties of the intervening envi- 
ronment. The connection that translates 
the state of the output quantity into an 
influence on the input quantity is called the 
feedback function, symbolized in BASIC 
as FNF. The function that translates the 
state of the disturbing quantity into another 
influence on the input quantity is the dis- 
turbing function, symbolized FND. If the 
input quantity is associated with some 
physical object, then FNF and FND may 
both contain properties of that object 
(eg: its mass). There are less redundant 
ways to handle this in special cases. 

The meaning of the previous paragraph 
is summed up in line 102:1 = FNF(O) + 
FND(D). The state of the input quantity is 
the sum of the influences from the output 
quantity and the disturbing quantity. In 
the real world, both the output quantity 
and the disturbing quantity may have many 
effects other than those on I, but those 
effects are irrelevant to the operation of 
this system (perhaps not to the designer or 
user of the system, if it is artificial). We have 
therefore considered everything about the 
environment that is of interest here. 



\K1," K2= ",K2," S1 



TAG VARIABLES TO 
BE PLOTTED. 



47 REM ** 

48 REM ** COMMANDS FOR SETTING PARAMETERS 

49 GOTO 51 

50 A$=" "\'F E1>LEN(E$) THEN 51 ELSE 53 

51 INPUT ":",E$\A$=" "\E1 =1 

52 IF LEN(E$)<>OTHEN 53 \ PRINT \ GOTO 51 

53 E1$=E$(E1,E1)\E1 =E1 +1 

54 IF E1 $ ="," THEN 57 ELSE IF E1 >LEN(E$) THEN 56 

55 A$=A$+E1$\GOTO 53 

56 A$=A$+E1$ 

57 IF A$ ="." THEN 95 

58 IF A$='7" THEN 99 

59 IF A$<>"?"THEN 62 

60 PRINT \PRINT%7F3,"K1 

61 GOTO 51 

62 IF LEN(A$)<5THEN 72 

63 IF A$(1,5)O"PL0T" THEN 72 

64 A$=A$(6) 

65 FOR J = 1 TO 6\ REM 

66 V(J)=0\ REM 

67 FOR K = 1 TO LEN(A$) 

68 IF A$(K,K)=B$(J,J) THEN V( J) = 1 

69 NEXT K 

70 NEXT J 

71 GOTO 50 

72 IF LEN(A$)<3THEN 91 

73 IF A$(1,3)<>"K1 =" THEN 7 5 

74 K1 =VAL(A$(4))\GOTO 50 

75 IF A$(1,3)<>"K2=" THEN 77 

76 K2=VAL(A$(4))\GOTO 50 

77 IF A$(1,3X>"S1 =" THEN 79 

78 S1 =VAL(A$(4))\ GOTO 50 

79 IF A$(1,3)<>"S2=" THEN 81 

80 S2=VAL(A$(4))\ GOTO 50 

81 IF A$(1 ,2)<>"0=" THEN 83 

82 O0=VAL(A$(3))\ GOTO 50 

83 IF A$(1 ,2)< >"?=" THEN 85 

84 P0=VAL(A$(3))\ GOTO 50 

85 IF A$(1,2)o"R = " THEN 87 

86 R0=VAL(A$(3))\ GOTO 50 

87 IF A$(1 / 2)<>"D=" THEN 89 

88 D0=VAL(A$(3))\ GOTO 50 

89 IF A$(1,2)o"L = " THEN 91 

90 L1 =VAL(A$(3))\ GOTO 50 

91 PRINT "???", \ GOTO 50 

92 REM ** 

93 REM ** 

94 REM ** 

95 P = P0\REM 

96 O=O0\D=D0\R=R0 

97 l = FNF(0)+FND(D) 

98 E = R-P\GOSUB 109\REM 

99 D=D0\REM 

100 R = R0 

101 FOR L = 1 TO L1 \ REM 

102 l=FNF(0)+FND(D) 

103 P = FNI(I) 

104 E=R-P 

105 0=FNO(E) 

106 GOSUB 109\ REM 

107 NEXT L 

108 GOTO 50 

109 REM ** 

110 REM ** 

111 REM ** 

112 U(1) = P + C 

113 U(2)=E + C 

114 U(3)=R + C 

115 U(4)=l+C 

116 U(5)=0+C 

117 U(6)=D + C 

118 PRINT 

119 M$=Z$\ REM 

120 M$(C + 1,C + 1) = "."\FIEM 

121 FOR J = 1 TO 6\ REM 

122 U=INT(U(J)+.5) + 1 

123 IF U<1 THEN U = 1 

124 IF U>WTHEN U=W 

125 IF V(J) = 1 THEN M$(U,U) = B$(J, J) 

126 NEXT J 

127 PRINT M$,\ REM PRINT BUFFER 

128 RETURN 
999 END 



,SV 



S2 = 



S2 



SIMULATION AND PLOTTING LOOP 
ENTRY WITH INITIALIZATION 



PLOT INIT. CONDITIONS 
ENTRY, NO INITIALIZATION 

CONTROL LOOP SIMULATION 



CALL PLOTTING SUBROUTINE 



PLOTTING SUBROUTINE 



CLEAR OUTPUT BUFFER 
MARK SCREEN CENTER 
LOAD BUFFER 



July 1 979 © BYTE Publications Inc 1 35 



REFERENCE 
SIGNAL 



P, PERCEPTUAL 



COMPARATOR 



E, ERROR 



SIGNAL 




DISTURBING 
QUANTITY 



Figure 5: The system's output quantity, O, influences the input quantity, I, 
via the feedback function, FNF. The disturbing quantity, D, influences the 
input quantity via the disturbance function FND. Both FNF and FND 
represent physical [ links in the environment. The state of the input quantity 
is determined by the sum of these two influences. 

The system 's input function, FN/, converts the state of the input quan- 
tity into a magnitude of the perceptual signal P. P is compared with the 
reference signal R in the comparator function, which emits an error signal 
E = R — P. The error signal is converted into a magnitude of the output 
quantity via the output function, FNO. 



Above the line we have the behaving sys- 
tem. We cross the boundary at the input 
function, FN I. This is the function which 
turns the state of an external quantity, 
I, into the magnitude of a perceptual signal, 
P. Both sensors and computing processes 
may be involved in a complex input function. 
The outcome, however, is always the magni- 
tude of a single signal, whatever it repre- 
sents. This signal can only increase or de- 
crease; we will always work with one- 
dimensional control systems, treating multi- 
dimensional control phenomena by using 
multiple control systems. The perceptual 
signal is the system's internal representation 
of the external world — its only such repre- 
sentation. 

Line 103 expresses the definition of the 
input function and the way it relates the 
input quantity and perceptual signal: P = 
FNI(I). 

Inside the system is another signal, the 
reference signal, R. In living systems, this 
signal is generated elsewhere in the organ- 
ism; it is not accessible from outside. The 
reference signal, along with the perceptual 
signal, enters a function called the com- 
parator, which subtracts one signal from the 
other and emits an error signal, E, repre- 
senting the signed difference of magnitudes. 
It does not matter which signal is subtracted 
from which, but for uniformity we will 
always treat the reference signal as the posi- 
tive input and the perceptual signal as the 
one subtracted from it. Thus, a positive 
error signal always means that the refer- 
ence signal is larger than the perceptual 
signal. This function does not have to be 
generalized, as nonlinearities and amplifica- 
tion can always be absorbed into one of the 
other functions. 






WE'RE NOT JUST THE VIDEO PEOPLE 



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

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

If you're programming EPROMs a lot, you might take a look at our PROM System Board. PSB-08 features space for up to eight 2708 EPROMs 
and 1K of 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 thlna 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-80and 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 11 DEL MAR, CA 9201 4 71 4-756-2687 



1 36 July 1 979 © BYTE Publications Inc 



Circle 231 on inquiry card. 



FR€€ SOFTWMK! 



PRACTICAL MICROCOMPUTER PROGRAMMING: THE Z80 
by W.J. Weller 



FINALLY. 



Here from W.J. Weller and Northern Techno- 
logy Books is the third in the Practical Microcom- 
puter Programming series. It is a comprehensive 
text covering assembly language programming 
forZ80 based microcomputers. The first 16 chap- 
ters cover Z80 programming comprehensively, 
from binary operations to interrupt handling. In- 
cluded are chapters on moving data, logical and 
arithmetic operations, use of the stack, commu- 
nications with the terminal, floating point arith- 
metic and graphic output. All programming tech- 
niques are illustrated with formal tested ex- 
amples. An important feature of the book is that 



AN EDITOR/ASSEMBLER SYSTEM 

FOR 8080/8085 BASED COMPUTERS 

by W.J. Weller and W.T. Powers 

This 148 page book contains complete intormation for initializing 
and using a powerful new editor/assembler and debugging monitor 
system, and the full SOURCE text of both. The assembler fully sup- 
ports all Intel instruction mnemonics as well as the entire language 
used in Practical Microcomputer Programming™:The Intel 8080. The 
editor/assembler is resident in less than 8K RAM and will run on 
any 8080, 8085 orZ80based computer with peripherals which trans- 
fer on a character basis or can be made to do so by buffering. The us- 
er supplies his or her own I/O drivers. The text editor is extremely 
simple to use and does not require irrelevant line numbers. Also in- 
cluded is a program to convert Processor Technology™ format tapes 
to a format usable by the editor/assembler. 

This system is not the usual "quickie" software, riddled with er- 
rors and limitations, but a professionally created, thoroughly tested 
and debugged system. At $14.95 it is the best software bargain you 
are ever likely to see. 

AND BY THE WAY... paper tape object copies of all this software 
are sent FREE to book purchasers when the coupon at the back of the 
book is returned to Northern Technology Books. 8V2" x 11 ". $14.95 

• 8080/8085 editor/ assembler object code on diskette for North 
Star disc systems. Only $14.00 

• 8080/8085 editor /assembler and debug source code for North 
Star disc systems. Only $14.00 

• Or both for $26.00! 

PRACTICAL MICROCOMPUTER PROGRAMMING: 
THE INTEL 8080 
by W.J. Weller, A.V. Shatzel and H.Y. Nice 

Here is a comprehensive source of programming information for 
the present or prospective user of the 8080 microcomputer, including 
moving data, binary arithmetic operations, multiplication and divis- 
ion, use of the stack pointer, subroutines, arrays and tables, convers- 
ions, decimal arithmetic, various I/O options, real time clocks and 
interrupt driven processes, and debugging techniques. 

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

PRACTICAL MICROCOMPUTER PROGRAMMING: THE M6800 
by W.J. Weller 

This second volume of the Practical Microcomputer Programming 
series addresses the problems of applications programming at as- 
sembly level for the M6800. In 16 chapters and more than 100 formal 
examples , the fundamental techniques of assembly level programm- 
ing are applied to the solution of specific problems with the 6800. No- 
where theoretical, it is a thorough and detailed methods text for the 
beginning and intermediate application programmer using the 6800. 
$21 .95 hardcover. 

* A trademark of Tandy Corporation 



it uses the universal standard 8080 mnemonics. 
This is of great help to users who are upgrading 
their machines and software to utilize the Z80 
processor. 

The last part of the book is software; an editor/ 
assembler which will run on any 8080 or Z80 ma- 
chine and a debugging monitor. 

Hardcover $29.95 




a quality assembler for the TRS-80* 




Send in the coupon supplied with the book and 
receive FREE the object programs of the editor/ 
assembler and debug on either paper tape or on 
cassette tape for the TRS-80 microcomputer. 

(Loads in Level I with 16K RAM or Level II.) 

Both the book and software for only $29.95! 

• Also available is the editor/assembler object code for the Z-80 
on diskette for North Star disc systems. Only $14.00 

• In addition, the editor/assembler and debug source code for the 
Z 80 are available on diskette for North Star disc systems. 
Only $14.00 

• Orbothfor $26.00! 



ins 



25 Route 101 West, 
PO Box 428, 
j ^ f- Peterborough, NH 03458 
If IL 603-924-3355 

Books to erase the impossible 



Please send me the items checked below. 

□ Practical Microcomputer Programming — The Z80 

(with choice of either FREE paper tape or FREE TRS-80 cassette 
when I mail coupon supplied with book) $29.95 
D Editor/ Assembler System for 8080/8085 Based Computers 
(with paper tape object copies of the software sent FREE when I mail 
coupon supplied with book) $14.95 

□ Practical Microcomputing Programming — The Intel 8080 $21 .95 

□ Practical Microcomputing Programming — The M6800 $21 .95 

□ Editor/assembler object code for the Z 80 on diskette for North 
Star disc systems $14.00 

□ Editor/assembler and debug source code for the Z 80 on diskette 
for North Star systems $14.00 

□ SAVE $2.00! Both object code and sourcecode for the Z 80 $26.00 

□ Editor/assembler object code for 8080/8085 on diskette for North 
Star disc systems $14.00 

□ Editor/assembler and debug source code for 8080/8085 on disk- 
ette for North Star disc systems $14.00 

□ SAVE $2.00! Both object code and source code for 8080/8085 $26. 



.(Please enclose 75$ shipping/ handling 



Total enclosed $. 

for each item ordered) 



□ Check Charge Card □ Master Charge □ Visa 

Card # 

Expires Signature 



Name_ 



Address. 
City 



_State_ 



-2\P- 



Dial your charge card orders toll-free: 800-258-5477 Mon.-Fri 9 - 5 PM 
(In New Hampshire dial 924-3355) 



You may photocopy this page 



J 

Dealer inquiries invited 



BYTE July 1979 



137 






Anatomy of the Simulator 

Let's run through the simulator quickly before we start using it, to 
see how this control organization operates. 

Lines 1 thru 16 are user instructions. Lines 17 thru 27 initialize the 
system in a way that will be used to illustrate a point. Lines 28 thru 33 
do more initializing, and ask for the width of your display. Lines 34 
thru 36 create a blank string in case your BASIC doesn 't set dimensioned 
strings initially to spaces. 

Lines 37 thru 46 define the various functions of the control system. 
If your BASIC can't do multiline functions, you can substitute sub- 
routines here. The idea is to make it easy to try out different kinds of 
functions in the control system. 

Lines 49 thru 91 comprise the interpreter, which accepts character 
strings and sets initial conditions and parameters before each run. Vari- 
ables are initialized and constants are set by typing a string of the form 
A=m or An=m (no spaces; terminated by a carriage return). To set up 
the plotter, the statement is PLOT XXXXXX, where XXXXXX is one 
or more characters from the set P,E,R,J,0, and D, in any sequence. 
The plotter comes up set to plot P, E, and R. If you forget the last 
values of the parameters K1 , K2, SI, and S2, type I and they will be 
printed out. We will eventually define them. 

The control system itself is simulated from line 95 to line 108. 
Entering the simulator at line 95 initializes the perceptual and output 
variables to values given to the interpreter. Entering at line 99 runs the 
simulation from the conditions left at the end of the last run. This is 
taken eare of by the two run commands in the interpreter: a dot (.) 
means run with initialization, and a slash (/) means run without initial- 
ization. AH commands require a carriage return termination. 

The plotting subroutine goes from line 1 12 to line 128. Its operation 
deserves a note, since it was arrived at after some more normal schemes 
were rejected for being too slow. When the interpreter is given a string 
of symbols to set up the plotting, a table is set up (V(j)) in which a 1 
means plot and a means don't plot. When the plotter is entered, it 
transfers all six variables to another table, U(j). The output buffer is 
then cleared, and a short loop scans the V table, picking up variables 
from the U table when V(j)=l , and putting the symbol into the output 
buffer in a position corresponding to the value of the variable. Then the 
output buffer is printed out. This eliminates sorting the variables by 
size or printing the line as many times as there are variables. This 
method nicely cures the fundamental "rheumatism" of BASIC, as it is 
able to plot about two lines per second on my Polymorphics VTI 
display. 

When two variables fall on the same spot, the variable that actually 
appears is the latest one in the series PERIOD. Thus far is has always 
been easy to figure out where a missing variable is hidden. 

Once we have a set of variables connecting functions together, and 
an overall arrangement, we can treat the system by assembling it piece 
by piece. Let's look at the pieces we have, represented by the four 
statements in listing 2 from line 102 to 105: 

102 I = FNF(0) + FND(D) 

103 P = FNI(I) 

104 E = R-P 

105 O * FNO(E) 

Looking at figure 5, we can see that these four statements lead us 
clockwise around the closed loop. I is the result of combining the out- 
puts of the feedback and disturbance functions. It becomes the input 
to the input function, producing a value of the perceptual signal P. P is 
one of the inputs to the comparator, which produces the error signal E. 

Continued on page 140 



Therefore line 104 represents the com- 
parator without using a function; it is the 
comparator function itself: E = R — P. 

The error signal drives the output of 
the system via the output function, FNO. 
The output of the system, therefore, de- 
pends not on the input quantity or the 
perceptual signal alone, but on the differ- 
ence between the perceptual signal and the 
reference signal. The output function trans- 
lates a signal inside the system into a quan- 
tity outside it, according to whatever rule 
is described by FNO. If the error signal 
changes sign, the output quantity also 
changes; in other words, we assume that 
output functions have no constant term. 
Any such constant term would have the 
same effect as a reference signal, creating 
an offset in the overall system response. 
Not every system can handle error signals 
and output quantities that go through zero 
and thus change sign, but the principles 
remain the same in the region where the 
system works. 

Line 105 expresses the operation of the 
output function: O = FNO(E). This closes 
the loop of cause and effect since the 
output quantity appears in line 102 where 
the input to the system is calculated. 

If the system functions are properly de- 
signed for the properties of the system's 
environment, this entire closed loop will 
seek an equilibrium state. Our simulator will 
let us look at time-varying effects, but for 
the most part we will be concerned with 
steady state relationships. 

Once we have seen how time variations 
come into the picture, we will concentrate 
on variations that occur slowly enough that 
the system and its environment never get 
far from a steady state relationship. This 
is the whole trick in grasping how control 
systems work. If you allow yourself to 
become embroiled in the interesting details 
of stabilization, or interested in the limits 
of performance in the presence of large and 
rapidly changing disturbances, you may 
learn a lot about one control system, but 
you will miss the organizational features 
that are obvious only when the system is not 
being subjected to unusual stresses. We will 
be concerned mainly with the normal range 
of operation, the range within which this 
system can behave very nearly like an ideal 
control system. Once that mode of opera- 
tion is understood, there is plenty of time to 
explore the limits of operation. (See "Ana- 
tomy of the Simulator" text box). 

A Wrong Approach 

Let us start off by assuming that we have 
a simple linear system. The input function is 
a multiplier of 1, the comparator is already 



1 38 July 1 979 © BYTE Publications Inc 



Circle 291 on inquiry card. — ► 



m i| 



BLUE 
WHITE 
YELLOW 
RED 



BLUE 
WHITE 
YELLOW 
RED 



r 




L 



.. V * 








11 HI 
If m 




IIJIll 


ill || 






i 3lSSil* T iliS; 









JUST WRAP TOOL WITH 
*^ONE 50 FT. ROLL OF WIRE 

~~ I U.S. LIST PRICE 



REPLACEMENT ROLL OF 
WIRE 50 FT. 



WHY CUT? 
WHY STRIP? 
WHY SLIT? 

WHY HOT 










• AWG 30 Wire 

• .025" Square Posts 

• Daisy Chain or Point To Point 

• No Stripping or Slitting Required 
...JUST WRAP™.... 

• Built In Cut Off ^ 

• Easy Loading of Wire 

• Available Wire Colors: 
Blue, White, Red & Yellow 



i 





DAISY CHAIN 



POINT TO POINT 



MACHINE & TOOL CORPORATION 3455 CONNER ST., BRONX, N.Y. 10475 (212) 994-6600/TELEX 125091 

•MINIMUM BILLING $25.00 / AD SHIPPING CHARGE $2.00 / NEW YORK CITY / STATE RESIDENTS ADD APPLICABLE TAX. 



E is the input to the output function that produces O, the output 
quantity. The output quantity is the input to the feedback function, 
which leads us back to the start. 

ft might seem that all we have to do now is to supply some specific 
forms for the functions, and turn the system on to see what it will do. 
In a sense, this is right. If this were an analogue computation, we might 
even get a correct idea of how the system works. However, it is unlikely 
that anyone who hasn't done this before would plug in the right func- 
tions to make a digital computer give us anything more than a fairy 
tale, ft is so important to understand this point that I have written the 
simulator to come up initialized in order to illustrate it. 



in fact, that you do solve it (by successive 
substitutions). Solve for the value of the per- 
ceptual signal in terms of R and D. You'll 
getP=l=(R-0.8xD)/2. 

Ready for a shock? Your computer can't 
come up with that solution! Let's fire up the 
BASIC simulator, which is initialized accord- 
ing to equations 1 thru 4 above, and plot 
I, D, and O. Type RUN, and answer the 
question with a reply that tells the width 
of your display. After the colon prompt 
appears, type in the following: 



simple and linear, the output function is a 
multiplier of 2, the feedback function is a 
multiplier of 0.5, and the disturbance func- 
tion is a multiplier of 0.8. These choices 
are dictated partly by the need to keep vari- 
ables from falling on each other when we 
plot them. The simulator initializes D to 15. 
Our four system equations, with these 
values substituted, now look like this: 



I = 0.5xO+ 0.8xD = 0.5xO+ 12 


(D 


P = I 


(2) 


E = R-P 


(3) 


O = 2xE 


(4) 



This system of equations is iterated 
during a simulation of behavior. 

The above is a pretty simple system of 
equations. So why can't we just solve it 
algebraically and skip the rest? I suggest, 



I D 
I D 

D 
I D 

D 
I D 

D 
T D 

D 
T 1) 

D 
I D 


I D 

D 
T D 



Figure 6: The initial plot generated by the BASIC simulator. Disturbance is 
set to 15 units and the reference signal is initialized to 0. The system is in 
a state of oscillation. 



I trust nobody had trouble with that. 

The dot says "do a plotting run after 
initializing the variables." A slash (/) would 
say "do the run from where the last run left 
off." The result can be found in figure 6. 

The disturbance is set to a steady +15 
units, and the reference signal is initialized 
to 0. According to the algebraic solution 
above, the input signal should be a steady 
0.8 x 15/2, or 6 units, to the right of center 
(dots indicate center when nothing is there). 
It is clear that something else happened. The 
whole system is in a state of endless oscilla- 
tion. (When variables fall on top of each 
other in a plot, the visible one is the latest 
in the sequence PERIOD.) 

Nature has a way of slapping your wrist 
when you forget something important. Our 
wrist has just been slapped. Naturally we 
do not get the same result that algebra gives: 
the algebraic solution comes from treating 
all of those relationships simultaneously. 
Our computer program is treating them 
one at a time. The algebra says that if one 
variable changes, they all change. The com- 
puter, being a purely sequential machine, 
thinks it can change one variable without 
changing the others. If the physical system 
being modeled is of that nature — if it, too, 
is a sequential state machine — then the 
computer will produce a correct picture of 
behavior. But, if the system being modeled 
works in terms of continuous variables, 
even in part, the computer will turn it into 
a sequential-state machine and analyze that 
kind of system instead of the one we actu- 
ally have. That is what has happened here. 
We forgot to tell the computer that these 
variables can't change as fast as the com- 
puter can compute. 

A More Accurate Approach 

In order to make this simulated system 
behave the way the algebra says it should, 
we have to slow down changes in one or more 
variables to take account of the fact that 
we are dealing with real, physical variables 



14 July 1 979 © 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- 
hiP 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 MH j^^_-^p W **^^J™ , ^B BO-AP MICRO-AP Ml 

;ro-ap micro-afSB |pfc : -- ■_ IKro-ap micro-ap i 

-ap micro-ap mI ■ Bli|{|i« BBo-ap micro-ap mi 

;ro-ap micro-afB ^Mp: *"^^^^^ m HQ . AP micro-ap h 

-AP micro-ap mI K|tt^^gM Bo-ap micro-ap mi 

:ro-ap micro-af« B:ro-ap micro-ap * 

-ap micro-ap mb_ jo-ap micro-ap ml 

:ro-ap micro-afB kro-ap micro-ap f 

-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 r 
-AP micro-ap micro-ap micro-ap micro-ap micro-ap micro-ap mi 
;ro-ap micro-ap micro-ap micro-ap micro-ap micro-ap micro-ap * 



RANDOM, MULTI-KEY RECORD RETRIEVAL under CP/M,CDOS 5 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 July 1979 



141 






S1=0.5 
S2=0.2 




. 



Figure 7: The slowing factors have been changed. SI equals 0.5 and S2 is 
0.2. We now have a much smoother curve. 



and not abstract numbers. The simulator 
does this in the input and output functions, 
lines 37 thru 40 (input) and 41 thru 44 
(output). We will be basically dealing with a 
linear system in which both the input and 
output functions are constants of propor- 
tionality. As you can see from listing 2, 
however, there's a little more to it than that. 

Consider line 42: O = O + S2* (K2*E 
— O). The O on. the left side is the new value 
of that quantity after this program step has 
been executed. On the right side, O indicates 
the last value of the output quantity. We 
recognize K2*E as a calculation of the 
output quantity as if it were simply propor- 
tional to the error signal, E. The expression 
in parentheses, therefore, is the difference 
between this calculated new value and the 
old value of O. This is how much the output 
quantity would change if it could change 
instantly. 

This calculated amount of change is 
multiplied by S2, a slowing factor, and 
the result is added to the old value of O. 
We calculate the amount of change that an 
instantly reacting system would produce, 
but allow only a fraction S2 of it to occur 
on any one iteration. S2 is a positive num- 
ber between zero and one. We've put a low- 
pass filter into the output function, without 
affecting the steady state proportionality 
constant. 



The same thing is done for the input 
function. A slowing factor S1, between zero 
and one, acts to slow P down. We need only 
one slowing factor to make this simulator 
behave realistically, but there is provision 
for two, so that you can explore the effect 
of having two if you wish. In all the plots 
to follow, we'll use a modest slowing factor 
of SI =0.5 in the input function, and essen- 
tially all of the required slowing in the out- 
put function. Once you get the hang of this 
you can put slowing factors into any of the 
functions. 

The simulator is initialized with SI and 
S2 set to 1, which reduces O + S2x (K2xE 
- O) to O + K2xE - O or just K2xE (no 
slowing at all). The same is done for the 
input function. Let's set them to other 
values and see what happens. The values of 
S1 and S2 can be set by typing S1=n or 
S2=n and a carriage return: 



:S1=0.5 
:S2=0.2 



(run with initialization) 



Suddenly we see nice, smooth relation- 
ships (figure 7). If you measure, you'll see 
that the input signal, I, ends up just six 
units to the right; the same solution given 
by the algebraic approach. 

Does this mean we can just use algebra 
to analyze a control system? Not at all. 
We won't delve into this, but the algebraic 
solutions are valid only if the differential 
equations which really describe the system 
have steady state solutions. Then the alge- 
braic solutions are the steady state solutions. 
In our simulator, we see all the time 
variations that lead toward the steady state, 
and the algebra says nothing about these. 
By putting the slowing factors into our cal- 
culations we have caused this system to seek 
a steady state. Therefore, it is the stability 
of the system that tells us we can use alge- 
bra, not the other way around. Predicting 
stability can become a messy process. We 
fiddle around with slowing factors until we 
get stability, which is more or less how 
Nature does it anyway. 

We have now established the fact that 
using natural logic and following causes 
and effects around the closed loop as a 
sequence of events will lead to a wrong 
prediction of control system behavior. This 
immediately eliminates three-quarters of 
what biologists, psychologists, neurologists, 
and even cyberneticians have published 
about control theory and behavior. We 
are just beginning to see that one must 
view all the variables in a control system 
as changing together, not one at a time. 
This is what I mean by retraining the in- 



142 July 1979 © BYTE Publications Inc 




after 





BATTERY SUPPORTED 
CALENDAR CLOCKS 



PDP-11 * 

TCU-100»$495 

■ Provides month, day, hour, minute and second. 

■ Can interrupt on date/time, or periodic intervals. 

TCU-150»$430 

■ Provides year, month, day, hour, minute and 
second. 

■ Automatic leap year. 

■ Patches for RSX-11M, RT-11 FB/SJ V02, V03 
and UNIX. 

LSI-11/2* 

TCU-50D • $295 

■ Provides month, day, hour, minute and second. 

■ Dual size board. 

■ Patches for RT-11 SJ/FB V02, V03B. 

Lockheed SUE 

TCU-200 • $550 

■ Provides year, month, day, hour, minute, second 
and milli-second. 

■ Interval interrupts between 1/1024 seconds and 
64 seconds. 

Computer Automation (Naked Mini) 

TCU-310*$385 

■ Provides year, month, day, hour, minute and 
second. 

^Trademark of Digital Equipment Corporation 




Multi-Bus** 

TCU-410*$325 

■ Provides year, month, day, hour, minute and 
second. 

■ SBC/BLC compatible. 

HP 2100 

TCU-2100*$395 

■ Correct time restored after power failure. 

■ Compatible with the HP TBG card. 

Serial Clock (RS 232 or 20 mA) 

SLC-1 • $575 

■ Connects between any terminal and host computer. 

■ Provides date, time and more! 

All Digital Pathways TCUs have on board NICAD 
batteries to maintain time and date during power 
down. Timing is provided by a crystal controlled 
oscillator. Prices are U.S. domestic single piece. 
Quantity discounts available. 

For more information on these products, contact: 
Digital Pathways Inc. 
4151 Middlefield Road 
Palo Alto, CA 94306 
Phone: (415) 493-5544 



**Trademark of Intel Corporation 



DIGITAL PATHWAYS 



Circle 86 on inquiry card. 



BYTEJuly1979 143 



Using the Simulator 

The simulator is run from the keyboard, using commands that tell it 
which variables to plot and what values of variables and parameters to 
start with. The instructions can be given one at a time, terminated by 
carriage returns, or they can be given in a continuous string with com- 
mands separated by commas. The latter is useful for altering parameters 
in the middle of a plot in order to see their effects. 

The only time a space is permitted in a command or string of com- 
mands is when it is separating the word PLOT from the string of 
variable symbols to be plotted. 

In order to tell the simulator what variables to plot, type: 

PLOT XXXXXX 

where XXXXXX means a string of 1 to 6 symbols from the set PE- 
RIOD. The order of the symbols makes no difference. When two or 
more symbols land on the same plot, the one that you see is the latest 
in the series PERIOD, regardless of the order in which they were given. 

To start a plotting run, type a period followed by a carriage return 
or comma if initialization is to occur first, and type a slash (/) if the 
run is to start from the conditions at the end of the previous run. Initial- 
izing creates one extra line of plot showing the initial conditions. 

The parameters and variables that can be set are as follows: 

L Number of lines to be plotted in any plotting run. 

K1 Steady state proportionality factor of the input function. 

51 Slowing factor for the input function; positive and between 
Oand 1. 

K2 Steady state proportionality factor of the output function. 

52 Slowing factor for the output function; positive and be- 
tween and 1. 

O Initial value of output quantity. 

P Initial value of perceptual signal. 

R Setting of reference signal. 

D Magnitude of disturbing quantity. 

Examples: (colon is prompt from computer. Always terminate a 
string with a carriage return). 



SetL to 16 



:L=16 



Set D to 0, run without initializing :D=0,/ or 

:D=0 
:/ 

Set D to 0, plot 2 points 

after initializing, set D to .PLOT PER,D=0, L=2,.,D=10, L=73,/ 

10, plot 13 points from 

previous conditions. Plot P,E, and R 

The program is written so that after a plot is completely done (a 
complete string has been interpreted), the prompt character appears to 
the right without a carriage return. That allows a 16 point plot to be 
shown on a 16 line video display screen without the final carriage re- 
turn bumping the first line off the screen. If you want your next string 
to start at the left, just hit a carriage return. 

To find out the values of Kl , K2, SI, and S2 when you forget them, 
type '? " followed by carriage return and they will be printed. 



tuition. Cartesian concepts of cause and 
effect, and Newtonian physics, have trained 
us to think along directed lines. What we 
need to do to understand control systems 
is to learn how to think in circles. 

Properties of a Control System 

Figure 8 shows the control system and 
its environment as we will be dealing with 
it from now on. Let's start with some 
definitions: 

Loop Gain means the product of 
all the steady state factors encoun- 
tered in one trip around the closed 
loop, counting the comparator as 
a factor of —1. In the initial setup, 
K1 was 1, K2 was 2, and the feed- 
back function FNF was a multi- 
plier of +0.5, so the loop gain was 
—1. The sign of the loop gain is the 
sign of the feedback; we have (and 
will continue to have) negative 
feedback. 

Error Sensitivity is the factor K2, 
the steady state proportionality fac- 
tor in the output function FNO. 
This number expresses how much 
output will be generated by a given 
amount of error signal. 

Input Sensitivity is the factor K1, 
the steady state proportionality fac- 
tor in the input function FNI. This 
number expresses how much per- 
ceptual signal will be generated by a 
given amount of input quantity. 

We are going to perform a series of 
experiments with this control system in 
order to arrive at some useful rules of 
thumb for thinking about how control 
systems work. These rules are approxi- 
mations, but by doing the experiments 
and seeing how good the approximations 
are, you will learn to think precisely about 
control phenomena, even when using ap- 
proximate language. 

We will set the system parameters to 
give a loop gain of —10. As a way of sum- 
marizing where we are (refer to figure 8), 
the commands are given one at a time 
with annotations: 



Kl =1 Input sensitivity = 1. 

K2=20 Error sensitivity = 20. 

:S1 =0.5 Input slowing factor = 0.5. 

S2=0.07 Output slowing factor = 0.07. 

R=0 Reference signal = 0. 

O=0 Output initialization = 0. 

P=0 Perception initialization = 0. 

D=0 Disturbance = 0. 



144 July 1979 © BYTE Publications Inc 



Circle 99 on Inquiry card. 



DIABLO PROVES 
LOOKS ARE EVERYTHING. 

With Diablo's printers and terminals, you can always be sure that beauty will be 
in the eyes of the beholder. Because no one knows more about print wheel teclinology than 
the company that invented it in the first place. 

Diablo s metal and plastic wheel printers have established industry standards for crisp, 
clear characters, proportional spacing, and uniform density. 

So, when you're ready to choose a printer for your own computer, pick the one that 
produces "picture perfect" originals every time. 

If you really want to look good, remember this. With Diablo, you'll always look 
your best. • 11 

Diablo Systems 









m 



Diablo® is a registered trademark of XEROX CORPORATION. 



Figure 8: Adjustable pa- 
rameters are K1 (input 
sensitivity), SI (input slow- 
ing factor), K2 (output 
sensitivity), and S2 (out- 
put slowing factor). P and 
O can be initialized to any 
starting value (normally 
zero). R and D can be set, 
and remain the same dur- 
ing a run. The value of the 
feedback function is set at 
0.5, the value of the 
disturbance function at 
0.8. 



COMPARATOR 



-*E 



K I.SI 



INPUT 
FUNCTION 



OUTPUT 
FUNCTION 



K2.S2 



I"*- 



x0.5 



xO.8 



Type those commands, and the system is 
now set up in a "home base" condition. 
Remembering that the comparator is equiv- 
alent to the factor of —1 and the feedback 
function is permanently set to be a factor 
of +0.5, this combination of parameters gives 
a loop gain of 1 x (-1) x 20 x 0.5 = -10. 

There are two fundamental rules of 
thumb: a control system keeps its perceptual 



signal matching its reference signal, and the 
output of a control system cancels the effects 
of disturbances on the input quantity. We 
will take these up in order. 

Rule J: P = R 

We're looking at the system with no 
disturbance acting (D=0). If you want to 
be sure that everything stays at zero, type 
PLOT PERIOD, followed by a carriage 
return. You will see a row of Ds, D being 
the last symbol in the sequence PERIOD 
and hence the only one visible when all 
variables are at zero. 

Now we will plot just the reference 
signal and the perceptual signal. The first 
two points will be done with the initial 
conditions set up above. The reference 
signal will then be set to +25 units, and the 
plot will be continued for 13 more points. 
Since this plot will commence with ini- 
tialization (the dot command), an extra 
line showing the initial conditions will 
be plotted first. This makes a total of 16 
lines, which will fit on most video displays. 
Of course, if you're doing this on paper 
you don't have to worry about the number 
of points plotted. Here is the command 
string: 



WE HAVE U 

What is IT? The New Pascal Microen g ine . 

JT features the new Western Digital 16 Bit Pascal Microengine CPU, 64K 
RAM, (2)RS232 ports, (2) parallel ports &(2)Shugart 8014 dual density drives. 
IT will directly execute Pascal generated P-Code (the only CPU on the market 
designed to directly execute a high level language), & JT will run compiled 
BASIC. Wait, that's not all — JI normally sells for $4,495, but you can have IT 
for $4,195. Dealer prices are much lower. Plus we have software galore. 
Call us about IT at (803) 756-6000. 



THE PASCAL 
MICROENGINE 

FROM THE COMPANY 

THAT GIVES YOU 

TOMORROW'S INVENTIONS 

TODAY 




-•-i:1 






TECHNOLOGY SYSTEMS SOOTH 
L Suites 9 & 10 Henry Building, Loris, S.C. 29569. 



1 46 July 1979 © BYTE Publications Inc 



Circle 364 on inquiry card. 



TRS-80 SOLUTIONS ! 



*»»» LI = Level I »»*** HI = Level II +* + + + + Jf p = Disk ***^^L ALL THIS AND MORE!!! * * * * 



BUSINESS 

Appointment Log by M. Kelleher Perfect for the 
professional. Accepts name and address, meeting 
start and endings, subject matter, derives elapsed 
time. For Level II, 16K $9.95 
Payroll by Stephen Hebbler Comprehensive 24 pg. 
manual with step-by-step instructions included in the 
package. Supports W2 and 941 information. D, 
$59.95 

Mail List I by Michael Kelleher is the economy model 
of disk-based mailing list programs. Uses a single 
drive and handles up to 1400 names per disk, plus 
provisionsforsorting options. 16K, D $19.95 



ft 



> 



BIZ-80 
The Business Software People® 
Just about everything you need ... within 1 
year, participants receive programming for 
Inventory, Accounts Receivable, Accounts 
Payable and General Ledger systems, plus 
Sales and Payroll. Complete documentation 
and software on diskette, $200.00 

€ y 

Mail List II by BIZ-80 Complete mail list system for 
dual disk. Enter, update, merge, sort, and print 
mailing labels. D.32K $99.95 
Small Business Bookkeeping by Roger W. Robitaille, 
is based on the Dome Bookkeeping Journal, sold for 
years in stationery and discount outlets. Level II, 4K 
with ($22.00) or without ($15.00) Dome journal. 
Inventory System II by BIZ-80 Proper inventory 
management is the backbone of a profitable business, 
yet it's very difficult to keep current on price 
increases, shrinkage, low-on-stock items, profitable 
items versus losers, without an efficient and prompt 
method of surveying your inventory levels at any 
given time. This program can help you to achieve 
optimal management — it can handle up to 1 ,000 
items on one disk; each additional disk can handle 
another 1 ,000 items. With Documentation, $150.00 
Inventory S by Roger W. Robitaille, Sr. 240 stock 
items can be contained using the full 6 data areas and 
2 pieces of alpha information. Level I or II ,16K $25.00 
Inventory 11.2 Disk based program allows for 
creation, maintenance and review of over 2,000 items 
per clean diskette. Operates under Disk BASIC, DOS 
2.1 with minimum memory allocation. D, $59.95 



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 ratechanges simple. Level II, 16K 
$49.94 



Text-80 by Frank Rowlett Fully-documented text 
processing system for disk. Create, edit, move, 
delete, insert, change, print words or lines. D, 32K 
$59.95 

KVP Extender by Lance Micklus Corrects keyboard 
bounce, upper case lock, permits use as a terminal, 
screen printing. On tape ($24.95) or disk ($29.95) 
8080-Z80 Conversion by M. Kelleher Permits you to 
enter 8080 codings and returns theZ80 equivalent. L 
M,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 1 1 , 16K $20.00 
Renumber by Lance Micklus Complete user control 
over which lines are renumbered, and how, including 
all GOSUB's and GOTO's. Specify 4, 16, 32, or 48 K 
version when ordering. Operates in Disk mode. L II, 4 
through 48K, $15.00 Source Listing, $20.00 All 4 
versions on disk, $25.00 

Circle 374 on inquiry card. 



j NEWDOS | 

Apparat 

I DISK ERROR SOLVED! Stop blaming your I 

| drive, fix your DOS with NEWDOS: an j" 

! enhanced disk-operating system capable of I 

| correcting over 70 errors in TRSDOS 2.1 to i 

improve reliability, end key bounce, enable 

| DOS commands to be called from BASIC and ! 
i much more! Available NOW for 16K systems 

j with a minimum of 1 disk drive. $49.95 | 



ACTION GAMES 

Slalom by Denslo Hamlin Choose between Slalom, 
Giant Slalom and Downhill. Level II, 16K $7.95 
X-Wing Fighter by Rev. George Blank Put yourself 
into the cockpit of this fighter. Extensive use of 
INKEY function puts all ship controls at your 
fingertips without hitting ENTER key. Long range 
sensors warn of approaching aircraft prior to visual 
contact. Level II, 16K $7.95 

Air Raid by Small System Software High speed 
machine language program with large and small 
aircraft flying at different altitudes. Ground-based 
missile launcher aimed and fired from keyboard. 
Planes explode when hit, cause damage to nearby 
aircraft. Score tallied for hits or misses. Level I or II, 
4K $14.95 

Batter Up by David Bohlke Level 1 1 , 16K $5.95 
Ten Pin by Frank Rowlette A game of coordination, 
the scoring is true to the rules of the sport. Level 1 1 , 
16K $7.95 



ADVENTURES 
Scott Adams 
Feel as if you're manipulating HAL from 2001 
when you play these games. Hardly any rules, 
finding out is part of the fun. Two adventures 
on 32K disk, $24.95 Tape, one adventure on 
each tape - pirate or land - Level II, 16K $14.95 

DOG STAR ADVENTURE 
Lance Micklus 
You're trapped aboard an enemy battlestar ... 
can you find the gold, rescue the princess, 
discover the plans and safely escape? Level II, 
16K $9.95 



Amazin' Mazes by Robert Wallace Ever-changing 

maze situation Level II, 16K $7.95 

Sink 'UM by Rev. George Blank L II, 4K $4.95 

Breakaway by Lance Micklus Level I or II, 4K $4.95 

Treasure Hunt by Lance Micklus Explore caves in 

search of twenty hidden treasures. L I or II, 

16K $7.95 

Kamikaze by Russell Starkey Command your ship 

against attacking suicide planes. Machine language 

graphics make this fast and fun! L 1 1 , 16K $7.95 

MISCELLANEOUS 

Diskettes Dysan 104/1 Box of five, $24.95 + $1.00 
shipping Verbatim, box of ten, $34.95 + $1.00 
shipping/handling 

Z80 Instruction Handbook by Scelbi Publ. $4.95 
The BASIC Handbook by Dr. David A. Lien $14.95 + 
$1.00 shipping/handling 

SIMULATIONS 

3-D Tic Tac Toe by Scott Adams Three ski 1 1 levels — 
author warns you to practice before tackling 
computer's third skill level. L I or 1 1 , 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 1 1 , 16K $7.95 

Cribbage by Roger W. Robitaille, Sr. You versus 

the computer cribbage played by standard rules. 

Level I or II, 16K $7.95 

Bridge Challenger by George Duisman You and the 

dummy play 4-person contract bridge against the 

computer. Level II, 16K $14.95 

'Round the Horn by Rev. George Blank You're the 

captain of a clipper ship racing from New York to San 

Francisco. Level II, 16K $9.95 

Concentration by Lance Micklus One of the most 

popular television games L I or 1 1 , 16K $7.95 

Safari by David Bohlke You're in the running for a 

film contract at a major Hollywood studio. To qualify, 

you must photograph the most wild animals in their 

natural habitat. Level II, 16K $7.95 

Pork Barrel by Rev. George Blank Places you in the 

shoes of an aspiring Congressman. L II, 16K $9.95 

Backgammon by Scott Adams Level II, 16K $7.95 

Chess Companion by M. Kelleher Combines chess 
clock features with ability to record your moves while 
action is fast and furious. Level 1 1 , 16K $7.95 
Sargon Chess by Dan & Kathe Spracklen Winner of 
the 1978 San Jose Microcomputer Chess Tournament 
Level II, 16K $19.95 

Mastermind II. 2 by Lance Micklus Lets you and the 
computer take turns making and breaking codes. 
Level II, 16K $7.95 

PERSONAL 

RPN Calculator by Russell Starkey A self- 
documenting calculator program. Uses Reverse 
Polish Notation with 4-level stack, 100 memories, 
scientific functions. Level 1 1 , 16K $9.95 
Home Financial Management by M. Kelleher Turns 
your computer into a personal financial advisor. Level 
II.16K $9.95 

Tarot by Frank B. Rowlett, Jr. Probably the best 
future-gazing type program ever written. Try it — 
you'll like it! Level I or II, 16K $9.95 

Ham Radio by M. Kelleher Amateur frequency 
Allocations, ID Timer, Q-signal File, Amateur Log 
Routine, Propagation forecasting. L II, 16K $9.95 
Special Disk-enhanced version, 32K $24.95 
Educator Assistant by Steve Reisser Five programs 
of value to educators. Compute percentage, 
individual student averages, class averages, standard 
test scores, final grades. L II, 16K $9.95 D, $14.95 
Electronic Assistant by John Adamson A group of 8 
subprograms designed to solve problems such as 
tuned circuits and active and passive filters. L II, 
16K $9.95 

Personal Finance by Lance Micklus 33 different 
budgets can be easily adapted by user to fit his 
individual needs. A 2-part program, entry and 
search. Level II, 16K $9.95 

Advance Personal Finance by Lance Micklus Same 
as above with advanced analysis routine. Supports 
Disk Files D, 32K $19.95 



^ 



SOFTSIDE Your BASIC software magazr 

Regular 1 year subscription - 12 issues - $15.00 

PROG/80 For the serious programmer, from 
beginner to professional 1 year regular 
subscription -4 issues -$10.00 Jj 



TfC I-605-675-5M4 

'Hi TRS-80 Software Exchange — ■ 

.^M *S) 17 Briar Cliff Drive Milford. Nrmi Hnmnihlro ranm; H 



17 Briar Cliff Drive Milford, New Hampshire 03055 



BYTE July 1979 



147 



:PLOTPR,L=2,.,R=25,L=13,/ 



: K1 = 1 ,K2=20, 51 = 0.5,32 = 0.0 7, R=0,0=0,P= 0,0 = 
:PLOT PR,L=2,.,R=25,L=13,/ 

R 
R 
R 
P 



:R=-25,/ 

R 

R 

R 

PR 

P R 



R 
P R 
RP 
R 
R 
R 
R 
R P 



R 
R 
R 
PR 
R P 
RP 



R 

P R 

P R 

P R 

P R 

P R 

P R 



Figure 9: The values of variables are listed in this plot. The disturbance value 
is changed from +25 to —25. 



Before discussing this, let's do another 
run of 13 points (figure 9), setting the 
reference signal to —25 units and continuing 
without initialization (the slash command,/): 

:R=-25,/ 

It is clear that the perceptual signal comes 
to a steady state quite close to the magni- 
tude of the reference signal, whatever the 
reference signal may be. The question is, how 
critically does this tracking effect depend 
on the input sensitivity and error sensitivity? 

Let's leave the reference signal at —25 
and do a run in which the error sensitivity 
is doubled at the start, and the input sensi- 
tivity is doubled halfway through the run. 
We will start from the previous conditions. 
The loop gain will now be —40 instead of 
-10. 

:K2=40,L=8,/,K1=2,/ 

To insure that everything is working 
correctly, let's flip the reference signal 
to +25 units (figure 10): 



:L=16,R=25,/ 



:K2=40,L=8,/,K1=2,/ 

R P 
RP 
RP 
RP 
RP 
RP 
RP 
RP 
P R 
R 

R P 
RP 
P R 
R 

R P 
RP 

:L=16,R=25,/ 

P 



R 
R 
R 
R 
R 
R 
R 
P R 
3 R 
R 

RP 

PR 

PR 

R 

R 

PR 



Figure 10: Change of gain during plot. After 8th line, gain goes from 20 to 
40. Reference signal is changed to check operation. 



While there is an effect on the way the 
tracking takes place, the only effect of 
these rather drastic changes in input and 
error sensitivity is to make the tracking a 
little better. What about a decrease in 
these parameters? 

:L=16,K1=0.5,K2=10,/,R=25,/ 

(Loop gain now 2.5) 

Figure 1 1 shows that the approximation 
P=R isn't very accurate any more. For 
loop gains smaller in magnitude than about 
10 (negative), the approximation begins to 
lose accuracy. 

You will notice that doubling the error 
sensitivity, which doubles the amount of 
output generated by a given error, does 
not double the amount of output that 
actually occurs. Far from it. When, for 
any reason, the loop gain goes up, the 
steady state error simply gets smaller, 
assuming that the system remains stable. 
This fact does violence to the popular idea 
that the brain commands muscles to pro- 
duce behavior. If that were the case, doubl- 
ing the sensitivity of a muscle to the nerve 
signals reaching it ought to produce twice 
as much muscle tension. Nothing of the 
sort happens, unless you've lopped off the 
rest of the nervous system, particularly the 
feedback paths. 



1 48 July 1 979 © BYTE Publications Inc 



As long as the loop gain is sufficiently 
large and negative (—10 or more negative 
will do for a number), a stable control 
system will match its perceptual signal 
nearly to its reference signal, regardless 
of the reference setting. We are ignoring, 
of course, transient effects. 

All of this was done with the distur- 
bance set to zero. Now let us set the ref- 
erence signal to zero, and check the second 
fundamental rule of thumb. 

Rule 2: (delta 0) = -(delta D) 

This rule requires some interpretation. It 
says, for the sake of brevity, that (with the 
reference signal constant) a change in the 
output quantity is equal and opposite to 
(the minus sign) a change in the disturbing 
quantity. Generally, the input and disturb- 
ing quantities will affect the input quantity 
through different physical paths. In our 
model, the output quantity acts through a 
multiplier of 0.5, and the disturbance 
through a multiplier of 0.8. The rule has to 
be interpreted to mean that the effects of 
the changes on the input quantity are equal 
and opposite. We will see this demonstrated. 

We will now plot the output quantity, 
O, the disturbing quantity, D, and the input 
quantity, I (to make the above clear). The 
reference signal could be left where it is, 
but to avoid confusion let's set it to zero 
for this set of plots. The loop gain is set to 
-10. 

:PLOT OID, R=0,K1 = 1,K2=20,L=1,D=0, 

.,L=15,D=15,/ 

Let this plot run out, then: 

:d=-15,/ 

There is some lurching back and forth 
in figure 1 2, but in the steady state the 
behavior of the input quantity shows that 
the effect of the disturbance is essentially 
cancelled by the final effect of the output 
quantity. 

If you did some measuring on the plot, 
you would find that the final value of the 
output quantity is very close to 8/5 of the 
value of the disturbing quantity. This 
follows from three facts: the input quantity 
ends up nearly at zero; one unit of output 
has 0.5 unit of effect on the input quantity; 
one unit of disturbance has 0.8 unit of 
effect on the input quantity. This is the 
kind of reasoning that helps in understanding 
how a control system works. 

The primary observation about a control 
system is always the existence of an input 
quantity which is stabilized against disturb- 
ances by variations in the output quantity. 
If the input quantity is held essentially 



:L=*!6,K1=0.5,K2 = 10,/,R: 



25,/ 



Figure 11: The simulation parameters have been changed to produce a gain 
of 2.5. Notice that the approximation P=R is now inaccurate. 



:PL0T 0ID,R=0,K1=1,K2=20, 1=1,0=0,. ,L=15, 0=15,/ 



:D=-15,/ 









D 














[> 





















I D 










I. 
I. 


I 


I 


D 
D 
D 

D 
D 

D 































D 















D 















D 















D 















D 















D 





D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 
D 




I 


I. 

I. 
I . 
I . 

I. 

I. 

I. 

I. 


I 
I 




D 




Figure 12: The reference signal has been set to zero. This plot shows us the 
input quantity, the output quantity and the disturbance signal for D=+l 5 
and then D=-l 5. 

July 1 979 © BYTE Publications Inc 1 49 






:PLOT RI0D,D=0,R=0,L=1,.,R= 12, L=15,/,D= 15,/ 



R 







R 






RI 






R 


I 




R 


I 




I 







IR 







I R 







I R 







I R 







IR 







IR 







IR 







IR 







IR 







R0 


D 




R 


D 


I 


R 


ID 




IR 


D 




I R 


D 




I R 


D 




IR 


D 




I 


D 




I 


D 




I 


D 




I 


D 




I 


D 




I 


D 




I 


D 




I 


D 





Figure 13: A look at different reference signal effects. As explained in the 
text, the disturbance signal has made the perceptual signal match the refer- 
ence signal. 

constant (in the steady state), then one 
can deduce the relationship between disturb- 
ances and the system's output quantity 
simply from observing the properties of the 
system's environment. On inspection, an 
external observer can see both the feedback 
function and the disturbance function, here 
multipliers of 0.5 and 0.8 respectively. For 
any given disturbance, the effect on the 
input quantity for a constant output 
quantity can be calculated on purely physi- 
cal grounds. Since the input quantity 
remains undisturbed in the steady state, one 
can then look at the connection between 
the output quantity and the input quantity, 
and deduce how the output quantity must 
change to account for the fact that the input 
quantity doesn't change. 

Thus, in order to predict how this system 
will react to any external disturbance, it is 
necessary only to know that the system is a 
control system and to look closely at its 
environment. The kind and amount of reac- 
tion follow from the nature of the feed- 
back and disturbance functions which are 
properties of the visible environment. 

Most important, as far as the life sciences 
are concerned, the form and amount of 
reaction do not depend on any property of 
the control system; not enough to make any 
difference. Therefore, when you apply a 
stimulus and see a response, you are using 
the organism as a complicated analogue 
computer in order to study the physics of 



the local environment. This is not what 
the life sciences have thought they were 
doing. 

All that remains to wrap up this section 
is to see the effects of disturbances when 
the reference signal is set to different values. 
This will lead to the definition of a useful 
technical term: the reference level of the 
input quantity (see figure 1 3): 

:PLOT RIOD,D=0,R=0,L=1,.,R=12, 
L=15,/,D=15,/ 

If you have a 16 line video display this 
will scroll past you, losing the early parts, 
but no matter. The first event is that the 
reference signal is set to 12, and the input 
quantity moves essentially to +12. The out- 
put quantity goes to +24 in order to accom- 
plish this. Then the disturbing quantity goes 
to +15, which has the exact effect on the 
input quantity that +24 units of output 
have. As a result, the output quantity drops 
to zero - exactly zero, if you look at the 
numbers. 

In effect, the disturbance, by itself, has 
enough effect to make the perceptual sig- 
nal match the reference signal. Looking at 
figure 8, you can see that this would mean 
a zero error signal and no drive to the out- 
put function. So, whenever the output drops 
to zero, we know that the perceptual signal 
is matching the reference signal, even if we 
can't see it. 

In our model right now, the input sensi- 
tivity is 1, so the perceptual signal is numer- 
ically equal to the input quantity. That's 
a coincidence, since the units are different: 
physical units outside, impulses per second 
inside. Even if K1 wasn't 1, the output 
would still drop to zero when P = R. Thus, 
we can give a special name to the particular 
value of input quantity (however created) 
that brings the error signal, and hence 
the output quantity, to zero: the reference 
level of the input quantity. The reference 
signal clearly determines what this reference 
level will be, but so does the form of the 
input function. 

Main Points Reviewed 

All of this is supposed to have established 
two principal ideas. The first is that control 
systems control what they sense, not what 
they do. The second is that control systems 
act on the outside world only in order to 
protect a controlled perception against 
disturbance. 

As we have demonstrated these princi- 
ples, we have established some other odd 
facts. We have found that the main effect 



1 50 July 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 

Write for Details 







TRS-80 



DESCRIPTION 

• AN EXCITING SPACE WAR GAME WITH GRAPHICS 

• 3 GAMES— LUNAR LANDER— STAR MONSTER— SPACE BATTLE 

• A REAL TIME LUNAR LANDER WITH GRAPHICS 

• FORMAT TEXT— SAVE & LOAD TO TAPE— OUTPUT TO PRINTER 

• A STRATEGY BOARD GAME— PLAY AGAINST COMPUTER OR OTHERS 

• A REAL TIME, ARCADE TYPE SHOOTING GAME IN MACH. LANG. 

• PLAY CHESS WITH YOUR COMPUTER— VARIOUS LEVELS OF DIFF. 

• DON'T WAIT FOR OTHERS TO PLAY— YOUR COMPUTER'S READY 

• 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 & BATT1 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 
1007o 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 /jttft^^H 1 

ADD 75c SHIPPING & HANDLING • MASS. RESIDENTS ADD 5<7o SALES TAX liKl .^ 

MAD HATTER SOFTWARE • 900b SALEM RD • DRACUT, MA 01826 .■■! 



PROGRAM 

GALACTIC BLOCKADE RUNNER 

SCI-FI GAME SAMPLER 

R/T LUNAR LANDER 

MICRO-TEXT EDITOR 

OTHELLO III 

AIR RAID 

MICRO-CHESS 

BRIDGE CHALLENGER 

APPLE 21 

STAR WARS/SPACE MAZE 

RENUMBER 

DISK RENUMBER 

PILOT 2.0 

PILOT 3.0 

APPLE TALKER 

APPLE LIS'NER 

TIC-TAC-TALKER 

SYSCOP 

ANDROID NIM-2 

SNAKE EGG 

LIFE 2 

DCV-I 

MUSIC MASTER 

DISK MUSIC MASTER 

TRS-80 CP/M 





c 


"0 
M 

H 


> 

•v 
r 
m 




• 




• 


• 


$ 9.95 


• 


• 
• 


• 


• 


$ 7.95 
$ 7.95 
$ 9.95 


• 
• 




• 


• 


$ 7.95 
$ 14.95 


• 
• 




• 
• 


• 
• 
• 
• 


$ 19.95 
$ 14.95 
$ 9.95 
$ 12.95 


• 






• 


$ 14.95 


• 


• 
• 




• 
• 
• 


$ 19.95 
$ 14.95 
$ 24.95 
$ 15.95 
$ 19.95 
$ 19.95 
$ 9.95 
$ 14.95 
$ 14.95 
$ 14.95 
$ 9.95 
$ 14.95 
$ 24.95 
$150.00 







O 

CD 

G) 

SD 

o 




CD 



AVAILABLE FROM THESE FINE MICRO COMPUTER DEALERS 



CAPITOL COMPUTER SYSTEMS 
3396 EL CAMINO AVE. 
SACRAMENTO CA 95821 

TRS-80 SOFTWARE EXCHANGE 
17 BRIARCLIFF DR. 
MILFORD NH 03055 

OP AMP TECH BOOKS 
1033 N. SYCAMORE AVE. 
LOSANGLES CA 90038 



COMPUTER CABLEVISION. INC 
2617 42ND ST. NW #2 
WASHINGTON DC - 20007 

KENNEDY SYS IbMS 
74 BROAD ST 
LYNDONVILLE VT 05851 

ADVANCED COMPUTER PRODIK 
13103 i£ E.)lN'uFR 
SANTA At. A CA V2705 



HOBBY WORLD ELECTRONICS 
19355 BUSINESS CENTER DR. 16 
NORTHRIDGE CA 91324 

AUGUST AUTOMATION 
28MILKST. 
WESTBORO MA 01581 

THECPUSHOP 
39 PLEASANT ST. 
CHARLESTOWN MA 02129 



JAJ ELECTRONICS LTD 
28 COLLINGTON AVE. 
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. 



BYTEJuly 1979 



151 






of negative feedback in a control loop is to 
diminish the effects which disturbances 
would otherwise have on the system's input 
quantity. While we have had only one 
disturbance at our disposal, it should be 
clear that the number or the causes of 
disturbances make no difference. If ten 
different disturbances were acting at once, 
they could only end up increasing or 
decreasing the value of the controlled input 
quantity. Since the system maintains control 
by acting directly on the input quantity, 
and not by acting to oppose the cause of 
the disturbance, the system does not have 
to take account of the number of causes 
acting, or the phenomena that are involved. 
It acts to oppose the net effect of any dis- 
turbances on the input quantity. 

' From the point of view of the behaving 
system itself, reality consists of the magni- 
tude of one perceptual signal, because that 
is the only internal representation of the 
outside world. If the system can be said 
to have a purpose or intention, it must be 
to maintain the perceptual signal matching 
the reference signal. The reference signal 
specifies to the system what it is to sense, 
but not what it is to do. The output that 
matches perceptual and reference signals 
is determined by the nature of the feed- 
back function and by the strength and 
direction of any disturbances that may 
be acting. Whatever sets the reference 
signal, thus effectively controlling the per- 
ceptions of this system, does not have to 
know anything about how the control 
system comes up with a matching perception. 

What is perhaps most amazing to a person 
who has not previously worked with nega- 
tive feedback systems is the capability that 
this system has to maintain quite precise 
control over its own perceptual signal, even 
if its own properties change. If its output 
apparatus becomes stronger or weaker, or 
its perceptual apparatus becomes more or 
less sensitive, there is scarcely any effect on 
the perceptual signal. As long as some mini- 
mum loop gain is maintained and the system 
does not become unstable and begin oscil- 
lating, it does not really matter how much 
loop gain there is, or whether most of it is 
in the output or the input function. 

A servomechanism engineer might find 
this approach somewhat odd. Why all this 
fuss about the system's internal perceptual 
signal? When you build a control system for 
a practical use, you worry more about the 
external variables than internal variables, 
because the customer is interested in the 
external variables. 



This is exactly the point. Living control 
systems are not interested in the external 
variables. They can't be. They don't know 
about them, except indirectly. All they 
know is what happens to themselves. The 
point of behavior is not to accomplish 
something for a user in the external world, 
but to affect the system itself. Everything 
that a living system knows about the outside 
world has to first exist in the form of per- 
ceptual signals, or some other internal effect 
of external events (not all organisms have 
nervous systems). 

In part 3 we will start looking at living 
systems more directly, and this will become 
much clearer. We now know that control 
systems control, above all, their own internal 
perceptual signals. Next time we will see 
why they do that. 

In the meantime you might enjoy using 
this simulator to do further explorations. 
We have looked into only a few of the 
questions that might be raised about control 
systems. The simulator can reveal far more 
than we have seen. For example, it is in- 
structive to look at the effects of the 
disturbance strictly from the external 
point of view (plotting I, O, and D), and 
then to look at exactly the same effects 
from inside (plotting P, E, and R). We 
haven't even raised the question of what 
a control system looks like when it becomes 
unstable, how the slowing factors interact 
with loop gain to determine stability, or 
what happens when the input function, the 
output function, or both are nonlinear. 
Speaking of nonlinearity, you might try 
rewriting the definition of the feedback 
function as follows: 

45 DEF FNF(X)=X*X*X/2048+X/2 

and then performing some of the experi- 
ments again. Try to make the input func- 
tion logarithmic (adding a constant to 
make sure you don't make the perceptual 
signal negatively infinite), and see how the 
input quantity and perceptual signal behave 
as the reference signal or disturbance is 
changed. 

The main objective before the next 
article in this series appears is to under- 
stand how a control system controls its 
perceptual signal, and why an external 
observer, who doesn't know about the 
controlled input quantity, might think 
the disturbance acts on the system to 
make it respond, like a doorbell. The sim- 
ulator is there to help you grasp this closed 
loop phenomenon. I hope it does help." 



1 52 July 1979 © BYTE Publications Inc 







CBASIC BUSINESS SOFTWARE 
for MICROCOMPUTERS 

Osborne & Associates is publishing its business systems in book form. These 
systems represent five years of development and testing by O&A programmers. 
Each book includes source listings, program and system documentation and 
user's manual. 

What systems are we selling? 

* PAYROLL WITH 

COST ACCOUNTING 

* ACCOUNTS PAYABLE AND 

ACCOUNTS RECEIVABLE 

* GENERAL LEDGER 



The books sell for $15.00 each. All three are available right now with listings in 
Wang BASIC. New editions of each book, with listings in CBASIC-2, will be 
published during the summer of 1979. These new editions will run on many flop- 
py disk-based microcomputer systems. 

Don't know programming? Don't want to key in thousands of lines of source 
code? We have over 130 dealers who will sell you the CBASIC-2 programs on 
ready-to-run floppy disks. Contact us for the name of your nearest dealer. 

CBASIC or Wang BASIC won't work? Take a look at the list of consultants who 
have converted O&A programs to run on many popular systems, and are waiting 
to hear from you. 

CONSULTANTS- 
COMPUTER STORES- • • 

SOFTWARE HOUSES GOOD NEWS- • • 

* * *CP/M CBASIC* * * 

You can be a dealer for the magnetic surface of O&A's CBASIC-2 software, which runs under CP/M 
on many floppy disk-based computer systems. We will sell the CP/M magnetic surface only to con- 
sultants, computer stores and software houses. Osborne & Associates prefers to write and sell books, 
not customize the programs or answer the end user's questions. The disk for each book sells for 
$250.00. Once you buy the floppy disk you can copy it, resell it, change it or use it. We place no 
restriction on the magnetic surface; we copyright only the printed word in our books. CBASIC-2 
Payroll is available now. The magnetic surfaces for all three systems are scheduled to be available in 
the first half of 1979; call or write for the exact availability of each system. 



ALPHA MICRO: 

Peter Burke 

THE BASIC BUSINESS SOFTWARE- CO.. INC. 

P.O. Box 2032 

Sail Lake City, Utah 74110 

(801) 363-1199 
APPLE 11: 

Jimmy Walter 

A.C.E. COMPUTER SYSTEMS 

2449 North Wesishorc 

Tampa. Florida 33607 

(813) 872-2798 
COMMODORE PET: 

Chuck Stuart 

CMS SOFTWARE 

5115 Menefee Drive 

Dallas. Texas 75227 

(214) 381-0690 
CROMEMCO: 

Richard French 

THE NETWORK COMPUTER SYSTEMS 

495 Third Avenue #8 

San Francisco. California 941 18 

(415) 668-7777 
DATAPOINT 1500: 

Paul Marchetti 

OCCIDENTAL COMPUTER SYSTEMS. INC. 

6666 Valjeun Avenue 

Van Nuys. California 91406 

(213) 782-3005 
M1CROPOLIS. NORTHSTAR 
(REQUIRES CP/M) 

James Rountree 

R&A COMPUTER SERVICES 

7700 Edgewater Drive. Suite 723 

Oakland, California 94621 

(415) 562-3133 
MICROSOFT disk BASIC: 

Dan Kindred 

GNAT COMPUTERS 

7895 Convoy Court 

San Diego. California 92111 

(714) 560-0433 
NORTHSTAR BASIC: 

Isaac Bornstein 

COMPUTER SERVICES OF ENCIN1TAS 

341 Willowspring Drive 

Encinita*. California 92024 

(714) 436-2486 
POLYMORPHIC 8813: 

Bruno Cap re/ 

KEYSTONE SYSTEMS 

P.O. Box 767 

Spokane. Washington 99210 

(509) 747-5623 
TRS-80: 

Don French 

APPLIED DATA CORPORATION 

P.O. Box 16020 

Fort Worth. Texas 76133 

(817) 738-0251 

Irwin Taranto 

TARANTO& ASSOCIATES 

P.O. Box 6073 

San Rafael. California 94903 

(415) 472-1415 
WANC BASIC ON FLOPPY DISK: 

Richard Armour 

ATLANTIC COMPUTINCi & CONSULTING 

P.O. Box 7294 

Hampton. Virginia 23666 

(804) 340-9350 



fj \ OSBORNE & ASSOCIATES, INC. 

^-^P.O. Box 2036, Dept. 122 

Berkeley, CA 94702 USA 

(415) 548-2805 TWX 910-366-7277 

Name: 



Address:- 
City: 

State: 



.Zip:. 



Phone:. 



Title 


Price 


Quantity 


Amount 


09-8 Payroll with Cost Accounting in Wang BASIC 


SI 5.00 






13-6 Accounts Payable/Receivable in Wang BASIC 


S15 00 






20-9 General Ledger in Wang BASIC 


SI 5.01) 






Calif, residents add o% sales lax. 

S l ; BART residents add fvl/2 % sales tax 

Shipping (Shipping lor large orders to be arranged) 


California residents tax 
Shipping 

Total Amount Kudosed 

ks) 






D All foreign orders S4.00 per hook for airmail 

□ S0.45 per book 4th class in the U.S.Iallow 3-4 wet 





D 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 program-, on 
disk for resale. Please send descrip- 
tion and oirder information for 



□ CBASIC Payroll with Cost Accounting 

□ CBASIC Accounts Payable/ Receivable 

□ CBASIC General Ledger 



□ S0.75 per book UPS in the U.S. (allow 10 days) 

□ SI .50 per book special rush shipment bv air in the U S 



Please send the following information 
D Becoming an O&A dealer 

□ School discounts 

□ List of foreign distributors 



□ Other O&A publications 

□ I am interested in the CBASIC business books. 
Please send me description and order information. 



Payment in advance must be enclosed for purchases of up to S7()(H) Invoicing U S purchases over 
S70.00 available upon approval of vour account. All foreign orders must be prepaid in LI S dollars 
drawn on a U.S. bank. 



Circle 292 on inquiry card. 



S1034 
BYTE July 1979 153 



Glubs and 
Newsletters 



Virginia Club for Radio and 
Computer Amateurs 

The Amateur Radio Research and 
Development Corp (AMRAD) is a 
Virginia based club of over 200 radio and 
computer amateurs. The purpose of the 
club is to develop skills and knowledge 
in radio and electronic technology; ad- 
vocate design of experimental equip- 
ment and techniques; promote basic and 
applied research; organize forums and 
technical symposiums; collect and 
disseminate technical information; and 
provide experimental repeaters. 

Meetings are on the first Monday of 
each month at 8 PM at the Patrick Henry 
Branch Library, 101 Maple Av E, Vienna 
VA. The Amrad Newsletter is a monthly 
publication which is mailed to all 
AMRAD members. Contact Amateur 
Radio Research and Development Corp, 
1524 Springvale Av, McLean VA 22101. 



Sacramento Microcomputer Users 
Group 

The Sacramento Microcomputer Users 
Group newsletter, Push & Pop, comes our 
way on a monthly basis. The most recent 
contained articles on CP/M Sleuth and 
CP/M to Pencil and Pencil to CP/M in 
Z-80 Mnemonics. The general club 
meetings are the fourth Tuesday of every 
month at 7:30 PM. The club also spon- 
sors a PET workshop, SOL workshop, and 
hardware study group. For meeting loca- 
tion and more information about this 
group contact SMUG, POB 161513, 
Sacramento CA 95816. 

Attention: Fox Valley Area 
Illinois Computer Enthusiasts 

A fairly new computer club is getting 
started in the Fox Valley area of Illinois. 
Called the Microprocessor User Group, 
they are primarily an Apple user group 
but wish to include all processors in their 
discussions. With a current membership 
of 50, it is the club's intention to publish 
a newsletter and a calendar. Meetings 
are held in the Fermi National Accel- 
erator Laboratory Hi-Rise on the main 
floor in the SW meeting facility on the 
third Monday of every month at 8 PM. 
Contact Mike Urso, 641 Woodlawn, 
Aurora IL 60506. 



Health Insurance 
for Your Floppies! 

Problem: Dust, Smoke, Solution: The Flex 80 
and Warpage will Ruin System will Protect, Index, 

Your Floppy Disks. and File Your Floppy Disks 

Quickly and Easily. 



m< 



SYSTCM 

For Further Information 

and a 

Free Copy of Our "Policy" 

CALL TOLL FREE 
800323-0254 

ADVANCE ACCESS GROUP 

0526 W. Cermak Westchester, I L 60153 312 562-5210 
Manufacturers of Information Processing Supplies'' 



Association of Computer Experimenters 

Besides holding monthly meetings, 
this active Canadian group publishes a 
most impressive newsletter called Ipso 
Facto. The most recent issue contains 72 
pages and is filled with articles and pro- 
gram listings. Membership in the club is 
$10 per year, and they are constantly 
seeking new members with interesting 
ideas. Contact Bernie Murphy, 102 Mc- 
Crany St, Oakville, Ontario, CANADA 
L6H 1H6. 

Pacifica TRS-80 Club 

The Pacifica TRS-80 Users Group is 
meeting in the Radio Shack store in the 
Eureka Square Shopping Center which is 
located about 10 miles from San Fran- 
cisco. They meet the second and fourth 
Thursday of the month to exchange pro- 
grams and ideas regarding the TRS-80. 
All individuals are cordially invited to at- 
tend one of their meetings. Contact John 
F Strazzarino, 637 Brussels St, San Fran- 
cisco CA 94134. 

Evansville Indiana Computer Club 

Evansville IN does have a computer 
club according to a recent letter from 
Robert Heerdink. He is concerned with 
increasing the club's membership and 
encourages any interested individuals in 
that area to attend one of their 
monthly meetings. The group is in- 
terested in several types of microcom- 
puters. They usually meet at the Blind 
Association, Second Av and Virginia, at 
7:30 PM on the second Wednesday of 
the month, although he recommends 
checking with him first. Robert can be 
reached at the Evansville Computer 
Club, c/o National Sharedata Corp, POB 
3895, Evansville IN 47737, (812) 
426-2725. 

Theater Computer Users Group 

The Theater Computer Users Group is 
sponsored by Theater Sources Inc, a cor- 
poration created to gather and distribute 
information about theater in the United 
States. Their newsletter, called TCUG 
Notes, is $4 per year, and back issues are 
available. Contact TCUG Notes, Mike 
Firth, Editor, 104 N St Mary, Dallas TX 
75214. 

Alamo Computer Enthusiasts 

Located in San Antonio, the Alamo 
Computer Enthusiasts meet on the third 
Friday of each month at the Norris 
Technical Center, Room 208, St Philip's 
College, San Antonio TX. Their monthly 
newsletter is available for a one year 
subscription fee of $2. Contact Dave 
Fashenpour, 5411 Cerro Vista, San An- 
tonio TX 78233. 

LISP Users Newsletter 

The first issue of the Lisp Users 
Newsletter is an announcement of this 
new organization which is designed to 



1 54 July 1979 : ) BYTE Publications Inc 



Circle 2 on inquiry card. 



spread information about applications, 
implementation and general information 
on LISP-like languages. It will pay par- 
ticular attention to those LISPish things 
which are within the realm of currently 
available microprocessor systems. As an 
initialization process, a mailing list of 
prospective interested individuals is be- 
ing compiled. If you are interested, send 
your name and address, background, in- 
terest in and knowledge of LISP, what 
system (if any) you own, and memory 
capacity (internal and mass storage) to 
John R Allen, 18215 Bayview Dr, Los 
Gatos CA 95030. Please include any sug- 
gestions you may have about organiza- 
tion or topics you would like to see 
discussed. John requests that you submit 
a dollar to cover postage and duplica- 
tion of the newsletter. 

Free TRS-80 Newsletter 

The free TRS-80 Bulletin, which prints 
club and product news about the TRS-80, 
is sporting a new format and is now mon- 
thly. The Bulletin is an offshoot of 
TRS-80 Computing (see BYTE Clubs and 
Newsletters December 1978]. For a free 
copy of the Bulletin write to the Com- 
puter Information Exchange Inc, POB 
158, San Luis Rey CA 92068. 

Ventura County TRS-80 Club 



the creation, organization and realiza- 
tion of this idea. Interested persons 
should contact him by mail, in care of 
the station or by phone at (414] 271-1036. 

Chess Tournament 

The second London microprocessor 
chess tournament will be held in the 
West Centre Hotel, Lilee Road, Fulham, 
London England, from November 1 thru 
3 1979. Any individual or company 
wishing further details should write to 
David Levy, c/o Personal Computer 
World, 62a Westbourne Grove, London, 
W2. 

This year's event will be the first Euro- 
pean Open Microprocessor champion- 
ship. The highest placed participants will 
automatically qualify for places in the 
final of the first World Micro Champion- 
ship which is scheduled to be held in 
London in 1980. 



IECI 80 Issues Call for Papers 

IECI '80, the Sixth Annual Conference 
and Exhibit on Industrial and Control 
Applications of Microprocessors, will be 
held at the Sheraton Hotel in Phila- 
delphia next March 17 thru 19, 1980. IECI 
'80 will offer an exhibition and technical 
program dealing with the current and 



new work of industrial microprocessor 
applications. Papers dealing in such 
areas as automotive diagnosis and 
operation, intelligent instrumentation, 
transducers and sensors, automated 
manufacturing, numerical control and 
robotics, and biomedical control and 
monitoring are invited. Ten copies of the 
paper in extended summary form, 500 to 
600 words long and an abstract of no 
more than 40 words describing work not 
generally published or previously pre- 
sented, should be mailed by September 
14 1979 to H T Nagle Jr, Electrical 
Engineering, Auburn University, Auburn 
AL 36830. The extended summary will be 
used for paper selection and session 
assignment and should clearly define the 
salient concepts and novel features of 
the work described. Notification of ac- 
ceptance and format required for publi- 
cation in the IECI '80 proceedings will be 
sent by October 19 1979. 

Forth Inc Announces 
13 Software Seminars 

Forth Inc, producer of Forth based 
software systems for mini and micro- 
computers, has announced a schedule of 
13 software seminars to be held 
throughout the US this summer. The 
seminars, which are half day events, 
cover design, application and 



This group is comprised of about fifty 
computer enthusiasts living in the Ven- 
tura County area. Their main purpose is 
to share information relating to the prac- 
tical applications as well as the enter- 
tainment possibilities for Radio Shack's 
TRS-80 microcomputer. Membership 
dues are $10 a year which includes a 
newsletter. Meetings are held the first 
Tuesday of each month at the Camarillo 
Public Library, 3100 Ponderosa Dr, 
Camarillo CA at 7 PM. Visitors are 
welcome and prospective members are 
encouraged to attend a meeting. Con- 
tact Lee Steinmetz, Secretary, 567 W 
Loop Dr, Camarillo CA 93030, (805) 
484-1724. 



BYTE's Bits 



A Public TV Series 

In a recent phone conversation with 
Robert J Whitney, Producer/Director at 
WMVS/WMVT television, channels 10 
and 36 in Milwaukee WI, we learned of a 
proposed television series for public 
television concerning people who build, 
buy and use small computers. The series 
idea is for 8 to 15 half hour shows about 
small computer hobbyists, experimenters 
and enthusiasts. Robert is looking for 
people in the Southeastern Wisconsin 
area who could lend their expertise to 



Build The World's Most 
Powerful 8-Bit Computer 

Featuring The Famous Intel 8085! 

Explorer/85™ 

Starting for just $129.95 you can now build 
yourself a sophisticated, state-of-the-art 
computer that can be expanded to a level 
suitable for industrial, business and 
commercial use. You learn as you go. . . in 
small, easy-to-understand, inexpensive levels! 




\ 
as 




• Features Intel 8085 cpu/100% compatible with 
8080 A software! 

• Onboard S100 bus (up to 6 slots)! 

• Onboard RAM and ROM expansion! 

• Built-in deluxe 2K Monitor/Operating ROM! 

• Cassette/RS 232 or 20 maJ4V2 8bit parallel 

I/O and timer all on beginner's Level "A" system! 



As featured in 
POPULAR ELECTRONICS 

EXPLORER/85 shown with Video Monitor and Keyboard/Video Terminal 

CHOICE OF HEX KEYPAD OR TERMINAL INPUT 

If you plan lo customize EXPLORERlor dedicaled use. we recommend that you order 
hex keypad inpul. Bu1. if you are planning lo go whole hog and blow EXPLORER up 
inloa full size, slale-of-the-arl system with 8K or extended basic (coming soon), up 
lo 64K ol memory, floppy disks, lelephone inlerlace. printers, and all sorts ol S-100 
plug-ins— you'll be better oil with Ihe Keyboard/Video Terminal input The S149 95 
EXPLORER Keyboard/Video Terminal includes lull ASCII decoding with 128 ASCII 
upper/lower case sel. 96 printable characters, onboard regulators and selectable 
display lormats— 32x16 forlv set or 64x16 for video monitor (notincluded) 
EXPAND EXPLORER. LEVEL-BY-LEVEL 

Level "8". al 549.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-100 bus connectors and you have a complete S-100 compatible computer 
with a world of add-ons al your lingertips Choose Irom hundreds of producls lo 
EXPLORER/85 gives you "big compuler ' features immediately, wilhout lurning you satisty your individual needs. Level "8 kit also includes the address decoders for 
mlo an appliance operalor doomed lo run pre-developed sotlware lor life Simply onboard RAM and ROM expansion, which are addressable anywhere in Ihe 65K field 
conned EXPLORER to a terminal video monilor or Iv sel and 8 vott power supply and L eve | ■■c" expansion, al S39 95. expands the S 100 bus lo allow a total ol Six 
slart running programs. Ihe very first night' Level "A" teaches you machine S-100 cards lo be plugged into EXPLORER s molherboard and contained in 
language and compuler lundamenials II lels you run exercise programs including EXPLORER'S steel cabinel Includes all hardware, mounting brackels. board guides, 
programs to examine Ihe cpu registers, examine memory Ml memory move memory etc j us1 a ^ (ne number ol S-100 bus connectors you need 
and make up games You can load and play back Ihese programs on an ordinary lape Level "D" expansion, al S69 95. gives you 4K ol onboard sialic RAM utilizing 
cassette— and display your ellorls on any Iv screen video monilor or printer (S8 95 2114 IC's Your board will also accepl four 2716 EPROM s. which can be purchased 
RF modulalor required lor tv use } The simplilied architecture ol the Intel 8085 separately you now have an advanced mainlrame lhal can be customized wilh the 
makes EXPLORER lar easier to undersland lhan computers using Ihe older, more peripherals of your choice lo lit any (or all) specific requirements Each level ol 
complex but less powerful 8080A Then when you're ready. EXPLORER can be EXPLORER is separately regulaled lor Ihe ultimate in stability Faclory service is 
expanded— by you— lo rival the power of any 8*bit compuler on earth Or you can available from Netronics Order your EXPLORER today! 

customize il loperiorma dedicated task, lhanks to onboard _ _ _ _ — — ORDER FROM THIS COUPON TODAY 1 — — — [ 

Netronics R&D Ltd., Dept BY-7, 333 Litchlield Road, New Milford, CT 06676 , 

□ Level "A" EXPLORER/85 kit (specify D lei- □ Deluxe Steel Cabmel for EXPLOREH/85. , 
minal or □ hex keypad input). S129 95 plus S39 95 plus S3 p&h 
S3p&h. 

1 D Power Supply kfl. 5 amp. ±8 volt. S34 95 

I plus$2p&n 

1 D Intel 8085 User s Manual. S7 50 ppd 

□ ASCII Keyboard/Video Terminal ktl, 5149.95 
plus S3 p&h 



I, 



LEVEL "A" SPEC IFICATIONS 

EXPLORER'S Level "A" system leatures an advanced Inlel 
8085 cpu. which is 50% tasler than its 8080A prede- 
cessor, yet 100% compatible with 8080A sollware 
which, you'll discover, exists by the Ion Big computer' 
leatures include an 8355 ROM with 2K deluxe monitor/ 
operating system which has iwo programmable 8-bit 
bi-directional parallel I/O ports, buill-m cassetle interface 
wilh tape control circuitry lo allow labeling casselle tiles. | 
and commands which include "display contents ol 
memory, "tun al user location (go to)." insert data." | G "** Keypad kit for hex version. $69.95 plus 
"move conlenls ol memory." "examine registers individ- 5<^ p&h. 

ually or all." fill command (to fill the conlenls ol memory | □ Level "B" S-100/0nboard RAM/ROM Decoder 
withany variable), automatic baud rate selection program- *il ('ess S-100 connectors). S49.95 plus S2 

mable characters per line display output format, and more' I P& n 

An 8155 RAM— 1/0 chip conlams 256 bytes of RAM. two D Level "C" S-100 5-Card Expander kit (less 
programmable 8-bil bi-directional and one programmable I connectors). S39 95 plus S2 p&h 
6-bH bi-directianal I/O ports plus programmable 14-bit □ S-100 Bus Connectors (gold). S4. 85 each, 
binary counter/timer, user interrupt and reset swilches I q Leve | D 4K Onboard RAM kil. $69 95 plus 
Onboard expansion provisions exist for up to six S-100 I S2 o&h 
boards. 4K of RAM and 8K of ROM PROM or EPROM L__~ - 



□ Deluxe Sleel Cabinet for Keyboard/Video Ter- 
minal. S 19. 95 plus $2.50 p&h. 

□ RF Modulalor kit. $8.95 ppd 

□ Total Enclosed (Conn res add tax) S 

□ VISA □ Master Charge Exp. Date 

Account n 



I 
I 
PHDNE ORDERS CALL (203) 354-9375 i 

Print 

Name . | 



Address 
City 



I 



. DEALER INQUIRIES INVITED _ 



Circle 280 on inquiry card. 



July 1979 © BYTE Publications Inc 155 



demonstration of miniForth, microForth, 
and new polyForth software systems, are 
open to programmers, project managers, 
data processing professionals, electronic 
engineers, and OEMs. Following the 
seminar, there will be a meeting to 
discuss various plans for OEMs of Forth 
software. For a complete list of seminar 
locations and dates, write to Forth Inc, 
815 Manhattan Ave, Manhattan Beach 
CA 90266. 

Call for Papers for Computer 
Networking Symposium 

The 1979 Computer Networking Sym- 
posium to be held December 12 1979 in 
Gaithersburg MD has issued a call for 
papers. The symposium will feature 
papers of a tutorial nature which 
describe practical experiences with com- 
puter networks and network applica- 
tions, and papers that present new 
research results. Accepted papers will be 
published in the symposium pro- 
ceedings. Four copies of 1,000 word 
abstracts should be submittd by July 15 
1979 to Dr Vijay Ahuja, E96/B629, IBM 
Corp, Research Triangle Park NC 27709. 
Authors will be notified of acceptance 
by August 1 1979. The Computer Net- 
working Symposium is sponsored by the 
National Bureau of Standards, and the 
IEEE Computer Society. 



Byte News Update 

Byte News in the March 1979 issue 
began with a paragraph listing computer 
manufacturers that support Pascal. For a 
year Texas Instruments has supported 
Pascal which can be implemented on the 
Model 990 minicomputer in the form of 
Tl Pascal (TIP). There are also two exe- 
cutive operating systems available 
which are appropriate for use with 
Pascal. 

The Texas Instruments Microprocessor 
Executive Library (TIPMX) is a collection 
of operating system components avail- 
able to users of the TMS 9900 family of 
microprocessors. Minimum develop- 
ments tools required for use with TIPMX 
are a text editor, an assembler and a link 
editor, all of which are available with the 
purchase of a Texas Instruments soft- 
ware license. TIPMX may be used on 
either the floppy disk based FS990 
development system, or any of the 
several hard disk systems such as the DS 
990. TIP and its extensive run time sup- 
port library are available on the hard 
disk based system and are highly recom- 
mended for use with TIPMX. 

The latest addition to Tl's software 
support is called Texas Instrument's 
Modular-Based Executive in Read only 
memory (TIMBER). TIMBER is targeted 
for users of the TM 990 series of 



microcomputer modules. In this way it is 
possible to do Pascal software develop- 
ment on a low cost system incorporating 
the TM 990/302 software development 
system. The fundamental benefit of 
TIMBER is that it is pre-packaged in 
erasable read only memory, thereby 
freeing the user from the concern of in- 
advertently destroying the operating 
system. 

In the second paragraph of Byte News, 
Intel was mistakenly credited with being 
the first to market a 32 K byte program- 
mable read only memory. Texas Instru- 
ments introduced the world's first 32 K 
programmable read only memory in 
April of 1978. The TMS 2532 is organized 
as 4 K by 8 bits and operates from a 
single +5 V power supply with standby 
power dissipation of 50 mW typical. A 
+ 25 V supply is only needed for pro- 
gramming. 

Dale R Gibble 

Project Engineer Texas Instruments 

POB 1443 MS 6750 

Houston TX 77001 ■ 



NEW FROM MOUNTAIN HARDWARE. 

THE APPLE CLOCK. 



Jew utility for 
your computer. 

Now, there's a real time clock 

for the Apple II*: the Apple 

Clock from Mountain Hardware. 

It keeps time and date in ImS 

increments for one year. On-board 

battery backup keeps the clock 

running in the event of power 

outage. Easy to use with BASIC 

using routines carried in on-board 

ROM. That means you can time events, 

put time and date on printouts, create games in which elapsed 

time is important... and many more. Mountain Hardware offers 

a complete line of peripheral products for many fine computers. 




23 




Available at your dealer's. Now. 

Mountain Hardware, Inc. 

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

•Apple II is a trademark of Apple Computer, Inc. 



BYTE's Bugs 



A Reorganized Wine Cellar 

As one who enjoys both wine and 
computers, I must comment on several 
inaccuracies in the article entitled 
"Computerized Wine Cellars" (February 
1979 BYTE, page 128). The second wine 
in listing 1 is Rauenthaler Rothenberg 
Riesling Spatlese 1976 — von Simmern. 
The varietal name is not, as listed, Rhine, 
which is a geographical area, but Riesling, 
which is the name of the best grape 
variety produced in Germany. The 
Rheingau, which is the Rhine sub-area 
from which this wine comes, produces 
Riesling almost exclusively, but other 
Rhine areas produce Sylvaner, Muller- 
Thurgau, and other varietals as well. 

More strangely, the producer is listed 
as Rauenthaler. In top quality German 
wines, the first name refers to the village 
and the second to a particular vineyard. 
Here, we have the village of Rauenthal 
and the vineyard Rothenberg. The pro- 
ducer is the Graf (Count) von Simmern. 

In any case, I have recently enjoyed 
tasting this wine and I can verify the 
accuracy of the tasting notes in the 
listing — it is a super wine, and in wine 
drinking, that's what counts! 

Larry Rosenblum 

12008 Trailridge Dr 

Potomac MD 20854- 



1 56 July 1979 © BYTE Publications Inc 



Circle 257 on inquiry card. 




THE LERDERIN 

miCROCOmPUTER EDUCATION 



PRESENTS 



BEST-SELLING BOOKS 

Used by Universities and Industry worldwide (ten languages) 



< 



ANMIRODUCUON 
TOPSRSCm. 
AND BUSINESS 
CONFUTING 

tKXSNMlM.% 




piflfl 


POfO 


Hflflflfl 


|£EEEI 



> 





6502 

RPPLICflTIONS BOOK 




MICROPROCESSOR 

INTERFACING 

TECHNIQUES 



RODNAY ZAKS 



re 




C200- AN INTRODUCTION TO 
PERSONAL AND BUSINESS COMPUTING 

Rodnay Zaks, 250 pp 

A comprehensive introduction to small computers, their 
peripherals, and what to select. §6.95 

C201- MICROPROCESSORS: FROM 
CHIPS TO SYSTEMS 

Rodnay Zaks, 416 pp 

The basic text on all aspects of microprocessors and 
the assembly of a system. §9.95 



C202 - PROGRAMMING THE 6502 

Rodnay Zaks, 320pp 

A complete introductory programming text for the 
6502. §10.95 

D302 - 6502 APPLICATIONS BOOK 

Rodnay Zaks, 288 pp 

Connecting a 6502 board to the outside world: from 
home alarm to music and industrial control. §12.95 

C280 - PROGRAMMING THE Z80 

SameasC202fortheZ80. §10.95 



C207-MICROPROCESSOR 
INTERFACING TECHNIQUES 

A. Lesea & R. Zaks, 416 pp 

How to interface a microprocessor to external devices: 
from keyboard to ADC to floppy disk, including 
standard busses. §11.95 

XI -MICROPROCESSOR LEXICON, 125pp 

All the definitions of the microprocessor world in a con- 
venient pocketbook format. §2.95 



AVAILABLE AT BOOKSTORES, COMPUTER STORES, AND ELECTRONIC SHOPS EVERYWHERE! 

SELF-STUDY COURSES ON CASSETTES 



< 



»TM 



"The time-efficient way to learn 

Self-study courses include two to eight audio-cassettes and a special book. They offer the fastest way to learn the topic covered 
(from V% to two days). Highly effective. 




1- INTRODUCTORY- SHORT (2.5 hrs ea) 

SI-INTRODUCTION TO 

MICROPROCESSORS $29.95 

S2-PROGRAMMING 

MICROPROCESSORS S29.95 

S3-DESIGNING A MICROPROCESSOR 

SYSTEM S29.95 

SI OB-INTRODUCTION TO PERSONAL AND 

BUSINESS COMPUTING $21 .90 



2 -INTRODUCTORY- COMPREHENSIVE 
(10to12hrsea) 

SB1-MICROPROCESSORS $59.95 

SB2-MICROCOMPUTER 
PROGRAMMING $59.95 



TO ORDER 

By Phone: 415 848-8233, Visa, M.C., 

Amer Express. 
By mall: Include payment. 
Shipping: add S1.50 per book (UPS) or 

75c (4th class- allow 4 weeks). 

Double for cassettes and overseas. 
Tax: in California add tax. 

FREE DETAILED CATALOGUE 



fsYBEXj 



2020 Milvia Street 

Berkeley, CA94704 

Tel 41 5 848-8233 Telex 336 311 



3 - S PECI ALIZED (4.5 to 6 hrs ea) 

SB3-MILITARY MICROPROCESSOR 
SYSTEMS $49.95 

SB5-BIT-SLICE $49.95 

SB6-INDUSTRIAL MICROPROCESSOR 
SYSTEMS $49.95 

SB7-MICROPROCESSOR 
INTERFACING $49.95 



NAME. 

COMPANY . 
ADDRESS_ 

CITY 



^POSITION. 



_ST ATE/ZIP 



DC200 DC201 DC202 DC207 DD302 DC280 DSl DS2 

□ S3 DS10B DSB1 DSB2 DSB3 DSB5 DSB6 DSB7 

□ charge my DVisa DM.C DAmer Express 
Number Exp. date 



Signature. 



□ Send Catalogue B7 



Circle 356 on inquiry card. 



BYTE July 1979 



157 



Creativity in Computer Music 



Hubert S Howe, Jr 

Deptof Music 

Queens College CUNY 

Flushing NY 11367 



The most important result of computer 
applications in music is that they have en- 
couraged a variety of new ideas to be formu- 
lated, tested, and reformulated in a short 
period of time. Concepts that previously 
would have taken much longer to develop 
and verify have already been brought forth. 
Musical thought is consequently on a higher 
level today. This applies to all aspects of 
work with computers — as much to research 
as to creative work, but perhaps less to 
music than to some other fields. The in- 
creasing availability of microcomputers can 
only further this trend. 

The distinction between research and 
creative work is artificial, for much research 
is creative — certainly when it pursues new 
ideas. Computer work in music has for many 
years been carried out in the creative areas 
of musical composition and sound synthesis, 
and the research areas of musical analysis 
and music theory. In this discussion I will 
not consider such areas as music bibliog- 
raphy, music printing, CAI (computer- 
assisted instruction), and related disciplines. 
While much important work has been done 
in these areas, they are not generally con- 
cerned with creative or conceptual problems. 
Music bibliography essentially involves an 
information storage and retrieval system. 
Music printing is a problem of automation. 
CAI certainly encompasses creative work, 
but thus far only the most rudimentary 
instructional tasks have been delegated to 
computers, and then only with limited 
success. 

Instead, I will discuss music theory, 
analysis, sound generation, and composi- 
tion and their relation to the computer. 
While we are discussing the question of 
musical tasks in general, it is relevant to 
point out that any musical task is in prin- 
ciple subject to delegation to a computer. 
Musical tasks include any activities carried 
out by human beings that involve interaction 
with music. 

Music is composed by composers in ways 
that, traditionally at least, involve only their 
own internal ideas, realized sometimes with 



the assistance of an instrument like the 
piano. Music is performed by performers 
who usually play from printed notation. 
Music is heard by listeners who may then 
engage in reflection, evaluation, or criticism. 
Musical documents such as recordings or 
scores are kept in libraries where they are 
filed according to careful systems of clas- 
sification. Computer composition, perform- 
ance, printing, recording, documentation, 
bibliography — even evaluation or criti- 
cism — all are feasible. 

The problems involve simulating the 
sensory processes with which people inter- 
act with music — listening, writing, visual 
communication — and the mental processes 
with which they make their conclusions 
about music. The sensory processes are simu- 
lated by the I/O (input/output) devices on 
computers, and since computers cannot do 
all of these tasks in the same way that 
people can, various languages have been 
devised to enable translation from the 
human form into a form computers can 
read. The mental processes are simulated 
by the programs. 

Now that we have described these general 
features of computer work in music, let us 
consider some specific problems concerning 
the four disciplines mentioned above and 
how using a computer has encouraged the 
formulation of new concepts in creative 
ways. 

Music Theory 

There has always been a close relation- 
ship between the discipline of music theory 
and other fields, particularly analysis and 
composition. In the twentieth century, 
composers have produced some highly 
original theories that they have attempted 
to apply to their compositions, either 
before or after they have written them. 
The term "speculative music theory" de- 
scribes theories conceived before the music 
illustrating them is written. 

After the music has been composed, it 
is usually a simple matter to verify whether 



1 58 July 1 97 9 © BYTE Publications Inc 



At last. 

A controller you'll 

never have to throw 




If you've got a floppy disk 
controller on your S-100 bus, you've 
got a big problem. Because when you 
want to upgrade your system from single to double 
density, or from single-sided to double-sized, or from 
5" to 8" floppy, you'll have to throw that old controller 
off the bus. 

But not any more you don't. Because at 
DATASPEED, we've developed one controller that 
works with all four kinds of floppy disk drives. 
And doubles the density, too. 

Works with all 
floppy disk drives. 

Single-sided minifloppysI M Double-sided minis. 
Single-sided maxis. Even the new double-sided maxis 
with up to 8 megabytes. This is the only controller 
in the world that works with all four. 



So when you buy this controller, and a compatible 
CP/M™ we're including a free software package that 
lets you transfer all your files to double density. 

We call it 
The Conductor. 

The DATASPEED Floppy Disk Controller. 
It handles all your upgrades. It packs in twice as much. 
And at only $295, it's even the cheapest way to go. 
That's why this is one controller you'll never have to 
throw off the bus. And that's why we had to call 
it The Conductor. Ask for it at your local computer shop 
or send $295 for immediate delivery. By the way, we 
have Double-Density CP/M™ for only $100. Complete 
disk drive systems are available. 

Write us for more information. Dealer inquiries 
welcome. And watch our future ads for trade-in 
offers. DATASPEED, INC., 1302 Noe Street, 
San Francisco, CA 94131. 



Handles any upgrade. HE CONDUCTOR 1 " 



When you want to go from single-sided to 
double-sided drives, this great new controller reads 
each side automatically. And you can upgrade from 
5" to 8" disks just by changing a simple Header socket. 

Packs in 
twice the data. 

Now you can pack double density data on every side 
of every disk. Because we've designed in a bootstrap 
PROM that automatically controls any shift from single 
to double density. And, of course, when you're running 
double density, you can transfer data in half the time. 

Circle 97 on inquiry card. 




Minifloppy is a TM of Shugart Associates. 
CP/M is a TM of Digital Research. 



BYTE July 1979 



159 



a theory applies to it, assuming that the 
theory is adequately formulated. For ex- 
ample, Schoenberg's conception of atonal 
music and later his "method of composi- 
tion with 12 tones" originated as specu- 
lative ideas which were described, albeit 
confusingly, in his books Harmonielehre 
and Style and Idea. More recent composer/ 
theorists like Milton Babbitt have extended 
Schoenberg's original ideas to even greater 
levels of abstraction. 

The availability of computers has spurred 
great efforts to test these theories and other 
ideas to a greater degree than people had 
been willing to attempt before. (Though 
most theoretical work has been done on 
large general-purpose computers, much can 
now be done on microcomputers, as is 
shown in our example of pitch structures.) 
Concomitantly, the results obtained by 
these researchers have brought forth new 
ideas and exposed the inadequacies in old 
ones. 

Part of the reason for such success has 
been the fact that it is by no means obvious 
or easy to explain how theoretical ideas 
apply to a piece of music in detail, and 
people have had to clarify their methods 
in ways that go beyond what had been 
accepted before in noncomputer work. Com- 
puters do not presently have the ability to 



listen (in the sense that a person "listens") 
to a piece of music to decide whether 
or not a given idea applies to it. Researchers 
have instead formulated methods that in- 
volve detailed inspection of the notation 
for a piece. Sometimes these produce results 
that seem mystifying or incorrect when 
compared with results reported by listeners. 
This conflict demonstrates the difficulty 
of accepting unintuitive ideas about music 
and the question of whether or how listeners 
ought to revise their listening habits in order 
to perceive musical structures that are veri- 
fied to exist in the music. 

Theories, in the sense employed thus far, 
are ideas that explain the structure of entire 
compositions or passages of music. Few 
musical theories, even that of triadic ton- 
ality, are in fact expressed in any such detail. 
Usually there is a large gap between the the- 
oretical constructions and their applications 
to the music that is supposed to be filled by 
the reader. This is obviously true of such 
modern concepts as pantonality (see refer- 
ence 6), or of attempts to perceive Schoen- 
berg's 12 tone compositions in a certain key 
(see page 407 of reference 7). Allen Forte's 
theory of set complexes (reference 8) pre- 
sents a collection of ideas that would still 
not be a theory in the sense described above, 
but he nevertheless has much more success 




1 60 July 1 979 © BYTE Publications Inc 



Circle 75 on inquiry card. 



inc 

Books to erase the impossible 

POB 428. 25 Route 101, Peterborough. NH 03458 

L€T'SG€T 

P6RSONFII 

How to use use your personol microcom- 
puter to its fullest potential 







jptzS&i 



>«' 



:^ V " 



SMALL COMPUTER 

SYSTEMS HANDBOOK 

By Sol Libes 

□ This is an introductory text for those 
with a minimal knowledge of electronics 
who are interested in microcomputers 
as a hobby. The author explains micro- 
computer concepts from the number 
systems and logic circuits to program- 
ming languages and applications with 
the emphasis on practical knowledge. 

197 pp. $8.45 

YOUR HOME COMPUTER 
By James White 

□ A clearly written, nontechnical de- 
scription of personal computers that re- 
quires no prior knowledge of computers 
or electronics. The emphasis is on un- 
derstanding; over 100 illustrations are 
included. Topics include: computing 
and you; communication inside a com- 
puter; computer thought processes; 
fixed memory; inputs and outputs; peri- 
pherals; systems components; how to 
choose a microcomputer; and so on. 
Your Home Computer is the ideal book 
for readers who thought they could ne- 
ver understand how computers work. 
The best part is that this is both easy 
and fun to read. 

235 pp. $9.95 



PIMS - PERSONAL INFORMATION 

MANAGEMENT SYSTEM 

By Madan Gupta 

□ This book describes a data base man- 
agement system designed for personal 
use on small computer systems using 
BASIC. Along with complete source list- 
ings of the program and comprehensive 
operating instructions, the book discus- 
ses the personal microcomputer and its 
potential for personal use. The tasks 
you could perform with this information 
management tool include: maintaining 
a mailing list, balancing small business 
and personal checking accounts, keep- 
ing track of inventories, maintaining log 
books, and countless others. Powerful 
commands allow you to create, add to, 
change, list, delete, sort, and search 
your data files. 

This book can really unleash the full 
powerof your personal computer! 

88 pp. $9.95. 

... and for your personal 
programming needs 

The Bits 
Programmer Pad 

□ Improve your style with BITS Pro- 
grammer's Pads.™ One side is an 
ingenious memory /register allocation 
form, custom-tailored to the micro- 
processor you're programming: 8080A, 
6800, 6502, Z-80, or 1802. The 
other side is for your program, with 
pre-numbered lines and columns for 
addresses, object code, labels, in- 
structions, and those essential com- 
ments. Write your source code first 
and later assemble by filling in the 
object codes and assigning memory 
addresses. (If you're hand assembling 
your programs, these pads are a must ! ) 

50 page pads on durable paper. 
Prepunched for a 3-ring notebook, too. 
ONLY $2.50 each. 

Postage: $.75 for one Pad, $1.25 for two 
or more Pads. 



TM 



#N€W # 



Z80 ASSEMBLY 

LANGUAGE PROGRAMMING 

By Lance A. Leventhal 

□ Hot off the press, here's the Z80 as- 
sembly language and its use in Lance 
Leventhal's graphic style. A parallel to 
his earlier book "6800 Assembly Lang- 
uage Programming", it covers the Z80 
instruction set in depth and program- 
ming techniques for its use, including 
many sample products. 

FROM OSBORNE & ASSOC. $9.50 

INTRODUCTION TO 

TRS-80 GRAPHICS 

By Don Inman 

□ TRS-80 users, here in Level-I BASIC 
are the techniquesyou need to makefull 
use of your video display. This book is 
ideal for the beginner, with complete 
explanations for the statements and 
commands used. The plot and print me- 
thods are detailed and used in creating 
lines, curves, and more complex geo- 
metric shapes. Moving patterns are ex- 
plored. The basic techniques will stir 
your imagination to make full use of the 
TRS-80's graphics capabilities. 

133 pp. $8.95 

32 BASIC PROGRAMS 

FOR THE PET COMPUTER 

By Tom Rugg and Phil Feldman 

□ Here are 32 fully documented pro- 
grams, ready to run on your Commo- 
dore PET 2001 computer, including ap- 
plications programs, educational pro- 
grams, games, graphical display pro- 
grams, math programs, and more. The 
program instructions are detailed 
enough to allow you to modify any pro- 
gram and sample runs are included. 
PET users, don't leave your PET on 
the shelf, put it to work for you ! 

267 pp. $15.95 

PEANUT BUTTER AND JELLY 

GUIDETO COMPUTERS 

By Jerry Willis 

□ This book is much like a peanut but- 
ter and jelly sandwich: simple but nu- 
tritious. It is an introduction to the hard- 
ware of personal computers that is free 
of technical jargon; a combination con- 
sumer's guide and tutorial. The funda- 
mental parts of a computer, computer 
languages, and personal applications 
are covered. Included are case studies 
of people, their computers and applica- 
tions. It's a humorous and painless in- 
troduction to the world of the personal 
computer. 

207 pp. $7.95 



DIAL YOUR CHARGE CARD 
ORDERS TOLL FREE 
800-258-5477 



ViSA 



(in NH call 924-3355) Mon-Fri 9-5 
For your convenience in ordering, please use this page plus the order form on page 137 



BYTE July 1979 1 61 



in describing how his ideas relate in specific 
ways to actual musical content and the 
difficulties encountered in this process. 

Forte's theory is a striking example of 
a series of ideas that grew out of a contin- 
uing interaction with computers. In his case, 
as well as that of this author, computers 



Pitch Structures 

Pitch structures are sets of notes related by transposition (see 
Glossary). Within 12 tone equal temperament, there are exactly 351 of 
them available. The BASIC program shown in listing 1 generates all 
pitch structures in normal form. Normal form is a method of notation 
that chooses the representation with the smallest overall intervallic 
span. Individual pitch classes are indicated according to their intervallic 
distance from the lowest note. For example, the major triad (C E G) 
has three orderings: 4 7 (C E G), 3 8 (E G C), and 5 9 (G C E). 
The normal form representation would be 4 7. When two representa- 
tions have the same overall span, the choice is made according to the 
smallest second, third, etc, interval. Some sets, like the augmented 
triad 4 8 (C E G#) have the same intervallic pattern for each ordering; 
these sets all have two or more transpositions that produce the same set 
of pitch classes. 

This program is written in TRS-80 Level 1 BASIC, which allows 
multiple statements to be given in a single line using the colon (:) as 
a delimiter. LET is optional in assignment statements, and has been 
omitted in the program. 



Listing 1 : Program written in TRS-80 Level 1 BASIC to compute pitch 
structures in normal form. 

5 REM PROGRAM TO COMPUTE PITCH STRUCTURES IN 

6 REM NORMAL FORM - 

10 FORI = lTO24:A(I)=0:NEXTI 

20 S=2: K=1:L=S-1: M=2: N=l: Q=0: A(25)=0 

30 FOR 1=1 TO L: A(I)=A(10*N+14+I): NEXT I:A(S)=K: V=A(2) 

40 GOSUB 2 1 : IF T <> THEN 80 

50 FOR 1=1 TO S : A(10*M+14+I)=A(I) : NEXT I 

60 Q=Q+1 : PRINT S, Q,: FOR 1=1 TO S: PRINT A(I) ; : NEXT I: PRINT 

70 K=K+l:M=M+l:GOTO30 

80 IFV<=A(10*(N+1)+16)THEN100 

90 L=S:S=S+1:Q=0:IFS > 10 THEN 110 

100 N=N+1 : K=A(10*N+14+L)+1 : GOTO 30 

110 GO TO 999 

200 REM SUBROUTINE NRMLFM 

210 P=S-1:X=0:T=0 

220 IFA(1)=0THEN250 

230 X=A(1):T=X 

240 FORI=lTOS:A(I)=A(I)-X: NEXT I 

250 FOR 1=1 TO S: A(I+12)=A(I): NEXT I: A(S+13)=12 

260 U=A( 14): X=X+U : IF X >= 12 THEN RETURN 

270 FOR 1=2 TO S : A(12+I)=A(13+I)-U: NEXT I 

280 IFA(S+12)<A(S)THEN330 

290 IFA(S+12)>A(S)THEN260 

300 FOR F=2 TO S : IF A(F+ 12) < A(F) THEN 330 

310 IFA(F+12)>A(F)THEN260 

320 NEXT F: RETURN 

330 FOR 1=1 TO S: A(I)=A(I+12): NEXT I: T=X: GOTO 260 

999 END 



figured prominently in the development of 
the concepts employed in formulating the 
theory. Composers have sometimes referred 
to these concepts as precompositional ideas. 

In my own work (described in "Some 
Combinational Properties of Pitch Struc- 
tures," Perspectives of New Music, volume 4, 
number 1, fall/winter 1965, pages 45 thru 
61) the basic concepts were pitch, pitch 
class, pitch class collection, and pitch struc- 
ture. A computer was used to generate the 
basic sets of all of these elements, and then 
to test various operations such as inversion 
and cycle of fifths equivalence. The fact that 
a computer was used in this work meant that 
my list of pitch structures generated by the 
computer was one of the first accurate lists 
ever produced. Howard Hanson's count of 
distinct pitch sets in The Harmonic Materials 
of Modern Music: Resources of the Tempered 
Scale, Irvington Pub, NY, 1961, is incorrect. 
Forte's list published in "A Theory of Set. 
Complexes for Music," Journal of Music 
Therory, volume 8, number 2, winter 1962, 
is correct according to his definition, but his 
definition does not reflect current practice. 
I have continued to use computers in my 
work, which now includes computer com- 
position as well as theory development. 

It is not difficult to see that the contin- 
uing use of computers in music theoretical 
work will have beneficial results, if only 
because it will force the theorists to formu- 
late their ideas in more specific terms. 
Such continuing investigations could reveal 
and clarify many inadequacies in the theory 
of harmony or tonality as presently stated 
in harmony textbooks. 

In fact, the computerization of the 
principles stated in any of these books 
ought to point up all kinds of basic problems 
that are never acknowledged — for example, 
just exactly what the theory explains about 
which music and what that has to do with 
any activity the reader would be likely to 
engage in with respect to either the theory 
or the music. Harmony, as we understand 
it from harmony texts, is simply the trans- 
lation of a piece of music into a different 
notation or vocabulary — a vocabulary 
that is imprecise and overlooks many of the 
most important characteristics of the music 
itself. The reasons why such a translation 
is made and what advantages it possesses 
are unclear. Because they have to clarify 
their purposes to impersonal machines, 
computer researchers are not able to ignore 
these questions as easily as traditional 
ones. 

Musical Analysis 

Computer work in musical analysis high- 
lights the question: what do we really want 
to know about a piece of music? There are 



1 62 July 1979 © BYTE Publicat ( ons Inc 




32K Board Pictured Above 



New RAM Prices. 

From The Dynamic Memory Company. 



16K— $249 
48K-S500 



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 1 6K 
boundaries (shorting plugs are 
placed over wire-wrap pins to 
address the board — located on 
the top of the board for easy 
changes), S-100 and Z-80 
compatability and totally invisible 
refresh — no wait states. 

Fully assembled, tested, and 
guaranteed. 

All of our boards go through a 
rigorous testing procedure. They 
are then placed on burn-in running 
a series of memory tests to detect 
any other possible faults. After you 
receive the board, you are backed 
by us with a one year warrantee. 



Low power consumption keeps 
your computer from "losing its 
cool." 

The total power consumption of 
our 1 6K board is typically less 
than 4 watts ( + 8V @ 300ma, 
+ 1 6V @ 1 50ma and - 1 6V @ 
20ma). Boards with additional 
memory typically increase power 
consumption only 1 watt per 1 6K! 

Standard S-100 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 July 1979 



163 



two ways in which computer programs 
attempt to answer this question. One is to 
pose a traditional question to which we 
supposedly know the answer, in the hope 
that the task of carrying this out on the 
computer will improve our understanding; 
in other words, it helps us understand 
musical intuition. The second way is to ask 
the computer to solve problems we have not 
yet understood when traditional methods 
have been used. Serious research will always 
be concerned with questions of this sort, 
but unless those of the first sort can also 
be handled we will be in doubt about the 
success of the second. 

There have been many research projects 
in musical analysis, most of which are 
ongoing and have thus far produced only 
tentative or incomplete results. In my 
opinion, the most important conflict in 
this area concerns both purpose and pro- 
cedure: should computers be used to 
examine the characteristics of a single 
work, or rather to analyze the common 
properties of whole bodies of works? 

Some of the most significant results in 
musical analysis have been obtained by 
theorists who are more interested in the 
theoretical problems than the musical 
works, and who have analyzed works more 
in order to prove their theories than to 



Encoding Languages 

The following example shows a line of music from the Hosanna of 
the Missa Ave Maris Stella by Josquin des Pres encoded for computer 
input in the IML encoding language: 

' = CLEFG" = KEY F' 

R11/R1 *B1,HO,/B2*C2 D1 ,SAN,/G1 1,NA,/ 

R1 *C1/C2*B4A4*A1// 

Keywords indicating the clef and key signature are enclosed in quo- 
tation marks with an equal sign at the beginning. Rests are indicated by 
the letter R. Notes are indicated by the letter name (C, D, E, F, G, A, 
B) as read on the staff (people who encode this data must be able to 
read music). Following the letters A through G or R is a number indi- 
cating the duration: 1 1 is a breve, 1 is a whole note, 2 is a half note, 
and 4 is a quarter note. Text syllables are enclosed in commas follow- 
ing the note, and the slash (/) indicates a bar line; the double slash 
indicates the end of the line. Asterisks indicate the beginnings or ends 
of ties. 



i 



s p 



HO- 



SAN - NA, 



HO- 



i 



Figure 1: Musical excerpt from the Hosanna of the Missa Ave Maris Stella by 
Josquin des Pres (see "Encoding Languages'" text box). 



discover new aspects of the music. I have 
already mentioned the work of Allen Forte, 
who has produced excellent analysis of 
diverse atonal works with the assistance 
of a computer. Another example is the 
well-known "Josquin Project" conducted 
by Professors Arthur Mendel and Lewis 
Lockwood at Princeton University. While 
this project is remarkable for the sheer 
quantity of music that has been encoded 
for study, all analytical work has been 
carried out from the standpoint of music 
analysis according to the theoretical prin- 
ciples formulated by contemporaries of 
Josquin. (See reference 9. Josquin des Pres, 
cl 445-1 521, was a prominent composer of 
early music.) Few studies have produced 
results as successful as these. (Some are 
absurd. See my review of "Two Parameters 
of Melodic Line as Stylistic Discriminants" 
by David Sheldon Lewis and "Some Tech- 
niques for Computer-Aided Analysis of 
Musical Scores" by Donald Margedo 
Pederson in Perspectives of New Music, 
volume 9, number 2 and volume 10, 
number 1, 1971.) 

One of the most time-consuming aspects 
of computer analysis of music has been the 
development of encoding languages in which 
musical notation can be transcribed for 
computer input. Analytical studies have 
become studies of musical notation, not 
of sound or auditory experience, and are 
thus open to the objections raised above. 
Many languages have been developed for 
different purposes, and many of them 
choose to represent the notational char- 
acteristics in very different ways. There 
has been much unfruitful debate over these 
languages prompted by some researchers 
trying to get others to adopt their language 
as universal. One researcher, Eric Regener, 
has instead taken the intelligent line of 
writing programs to transcribe other nota- 
tions into his. 

An important quality of these languages 
is that each was developed with a different 
purpose in mind, and thus each emphasizes 
different aspects of the music. Some lan- 
guages developed for the purpose of music 
printing (like DARMS) are necessarily quite 
complex in their methods of representing 
spacing between notes and other features 
of page layout that are irrelevant for lan- 
guages concerned with analytical work. 
Other languages developed for use with a 
specific body of music (like IML) cannot 
be used for other types of music because 
they do not provide methods for encoding 
features that do not occur in the works 
for which the languages were developed. 

The point I would like to make about 
these languages is that any notation ex- 
presses a conceptual structure of the music 



1 64 July 1979 © BYTE Publications Inc 






99* 



^^^ 




Complete System includes: 

• 10 MILLION CHARACTER HARD DISK STORAGE 

• DISK OPERATING SYSTEM & EXTENDED BASIC 

• POWERFUL 16-BIT CENTRAL PROCESSING UNIT 

• VIDEO DISPLAY TERMINAL 

• 1 50 CPS LINE PRINTER AND PRINTER STAND 

• DESK ENCLOSURE 




IC 



tim 



1215 E. El Segundo Boulevard 
El Segundo, California 90245 
213/322-4435 



Circle 23 on inquiry card. 



BYTE July 1979 



165 



it represents. Printing languages are very 
specific about graphical features because 
those are important aspects of the intended 
result. Other languages developed for 
analysis represent elements like pitches 
and rhythms as the basic aspects to be 
examined, and provide many ways for 
representing nuances in these domains 
but not others. For another example, 
guitar notation providing only a melodic 
line and a basic chord pattern is a remark- 
ably efficient means of indicating a diverse 
quantity of sounds in a few symbols, and 
the symbols convey a sense about the 
irrelevance of certain nuances in the chord 
structure that would be unthinkable in 
other music. No language currently in 
existence is universally satisfactory and 
efficient to represent all music that could 
be transcribed for any purpose. Arguments 
about encoding languages show only a lack 
of understanding of the diverse and even 
cross-disciplinary purposes for which certain 
research is carried out. 

Sound Generation 

In the area of sound generation, com- 
puters have already had a significant impact 
on the music of our time, and the future 
is even more promising. (An excellent 
description of the facilities needed to pro- 
duce music on a microcomputer is contained 
in Tom O'Haver's article "Audio Processing 
with a Microprocessor" in June 1978 BYTE, 
page 166.) To explain the reasons for this, it 
is necessary to review some of the history of 
both computer generated music and elec- 
tronic music, of which computer music is a 
part. 

Electronic music has been shaped by 
several disparate influences. Historically, 
the first was the use of nonconventional 
sounds that were previously considered 
to be nonmusical. Early works were based 
on the sounds of railroads, water dripping, 
and other noises of everyday experience 
and of nature. Another significant influ- 
ence was the availability of analog electronic 
sound generating and modifying equipment, 
which is now packaged into devices called 
synthesizers. (A third influence, less im- 
portant than the first two, was the use of 
speech and language in noncommunicative 
ways.) Music based on sounds of nature 
tended to be extremely complex in the 
foreground, whereas music produced by 
electronic equipment often lacked dynamic 
variations in tonal characteristics. 

Today, these early tendencies have been 
mollified as a result of the experiences 
of many people working with these ideas, 
often in conjunction with computers. 
People have begun to analyze the charac- 



teristics of nonconventional sounds, often 
by computer, to discover and generalize 
the properties of interest in them. Thus, 
early exploratory use of these sounds has 
now given way to conceptual thinking 
about them. Such thinking is a natural 
result of processes which people must 
employ to generate sounds by computers, 
because users must present information 
to the computer in concrete ways. A 
computer cannot generate a sound from 
a person's abstract recollection of what 
it sounds like. 

Sounds produced by electronic music 
synthesizers have evolved from the life- 
less organ-like sounds that contain no 
dynamic variation in tonal characteristics 
to sounds that mimic live musical instru- 
ments. A synthesizer is, indeed, a musical 
instrument, and it is natural that people 
would begin to develop performance tech- 
niques once they are able to work with 
them for a while. Such expert performers 
as Walter Carlos and Isao Tomita can rou- 
tinely produce any quality such as vibrato, 
tremolo, or dynamic spectral variations. 
They have also developed excellent methods 
of imitating specific instruments, particu- 
larly woodwinds, brass, and percussion 
(solo string sounds are easier to imitate than 
the lush sounds of an entire string section). 

The trouble with this procedure is that 
even expert synthesizer performers now 
at least partly judge their work not by 
the originality of the sounds they produce, 
but by their resemblance to the familiar 
sounds of musical instruments. This is in 
complete contrast to computer music 
composers. 

To cause a computer to generate music, 
it is necessary for the composer (who is 
actually the performer in this case) to 
provide a detailed description of the sound 
desired. The description can be anything 
that is mathematically sufficient to cause 
the desired properties to be produced by 
the computer. Any describable sound can 
be produced; the limitation is not in the 
capability of the computer but rather in 
the ability of composers to provide adequate 
descriptions of what they want. A detailed 
explanation of how computers generate 
musical sound is contained in Electronic 
Music Synthesis (see reference 3). 

This factor has been one of the primary 
reasons for the recent interest in the analysis 
of sounds of all types. Computer music syn- 
thesis is thus not limited by the comparison 
of the results produced to any pre-existing 
standard. Indeed, composers are encouraged 
to be creative with the qualities of the 
sounds they produce, by the very procedure 
by which they must work. 

Of course, people who work with syn- 



1 66 July 1979 © BYTE Publications Inc 



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. 


Sl-ll 


VIO 


TTY or similar 


250. 


DS-II 


SOL 


Diablo 1610/20 


275. 


DP-II 


VTI 


Diablo 1610/20 


275 


DV-II 


VDM 


Diablo 1610/20 


275 


DR-II 


REX 


Diablo 1610/20 


300 


DIM 


VIO 


Diablo 1610/20 


300 


NS-II 


SOL 


NEC Spinwriter 


275 


NP--II 


VTI 


NEC Spinwriter 


275. 


NV-II 


VDM 


NEC Spinwriter 


275 


NR-II 


REX 


NEC Spinwriter 


300 


Nl-ll 


VIO 


NEC Spinwriter 


300 


SSH 


SOL 


Helios/TTY 


250 


DSH 


SOL 


Helios/Diablo 


300 




MICHAEL SHRAYER SOFTWARE, IIMC 

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! 



ill 



Demand a demo from your dealer ! 



Circle 319 on inquiry card. 



BYTE July 1979 



167 






thesizers are not limited either; nevertheless 
it seems that there have been far more 
successful electronic performances of con- 
ventional music recently than there has 
been original music. Part of the reason 
for this difference is actually one of the 
limitations of computer music as it is 
produced in most situations today: the 
lack of immediacy between performance 
time (at which the input is fed to the com- 
puter) and audition time (when the sound 
is produced). Very few installations today 
have any immediate playback facilities 
except for more than a few simple sounds, 
and real time computer music synthesis of 
entire compositions is practically impos- 
sible (see reference 3, chapter 9). 

The inherent difficulty in producing 
sounds by computer, together with the delay 
in hearing the results, forces computer 
music composers to evaluate their work 
reflectively and to think carefully before 
trying things out. While immediacy is 
important to the act of performance, it is 
not necessary for the act of composition 
itself, which is a conceptual task. 

An excellent example of the kind of 
creativity on the sound level made pos- 
sible in computer music is described by 
J K Randall in his article "Operations 
on Waveforms" [Perspectives of New 
Music, volume 5, number 2, spring/summer 
1967, page 124). These ideas are exploited 
compositional ly in Randall's Lyric Var- 
iations for Violin and Computer, written in 
1968 and recorded on Vanguard C-10057. 
Randall describes several original ideas he 
used to synthesize new timbres from com- 
pletely new theoretical principles. He 
produces sounds in which the individual 
constituent partials (harmonics of the 
fundamental) of a tone are operated upon 
just as the pitch, rhythm, and dynamics 
are in conventional music. The result is 
music of unusual interest in which all 
variations of the sounds relate in novel 
ways to the structure of the music. 

The same kinds of processes in which 
partials are treated as pitches were em- 
ployed in my compositions entitled Studies 
in Timbre, of which there are presently 
four. The first study employs sounds that 
dissolve into others by glissandos that 
move from one partial to another. These 
are contrasted with other sounds of fixed 
pitch but changing timbre. The second study 
uses instrument-like sounds with transient 
elements in the attack and variations in 
the steady state portions of the tones. 
The third is based on varying timbral pat- 
terns associated with specific musical events. 
The typical instrument produces 12 partials 
that fade in and out in different ways over 
the course of each tone, correlated to 



amplitude and location changes. Contrasts 
between partials of some tones and the 
fundamental frequencies of others are 
emphasized in conjunction with rhythmic, 
dynamic, and harmonic properties that 
develop concomitantly. The fourth study 
uses harmonic series that progress to non- 
harmonic ones, but which nevertheless 
preserve some abstract ratio between the 
elements, thus producing another kind of 
dissolution of a tone into a somewhat 
clangorous sound. 

The main point of these considerations 
is to show how a computer music com- 
poser is encouraged to experiment with 
original ideas that often lead to results 
unobtainable by any other method of 
music production. But since computers 
are theoretically capable of producing 
any sounds, this is not the only beneficial 
or distinguishing result. The fact is that 
the same sounds can be produced by 
different descriptions that are based on 
generalizations about different aspects of 
the sounds. Thus, the really important 
point is that it is the relationship between 
the input and the output which is clarified 
by the process of computer music synthesis. 
Whatever this may be in relation to a specific 
musical work is in itself a concept about the 
structure of that work. 

Musical Composition 

Although I have emphasized the creativ- 
ity involved in the other disciplines dis- 
cussed, it is obvious that composition is, 
by comparison, the ultimate creative act to 
be delegated to a computer. Many people 
express disbelief or doubt that this can 
really be done successfully. I believe that 
this doubt is rooted more in misunderstand- 
ing of what musical composition itself 
involves rather than of what the computer 
does. Composers may employ mysterious 
methods, but they are even more prone to 
making mysterious explanations of straight- 
forward methods in order to preserve their 
compositional mystique. 

Any detailed consideration of musical 
analysis or theory suggests numerous 
avenues of approach to the compositional 
method employed. Whether a piece actually 
has been composed according to the prin- 
ciples that can be abstracted from its struc- 
ture is not necessarily relevant, and often 
can never be known. In recent years, the 
work of Heinrich Schenker and post- 
Schenkerian analysts has attempted to 
discover large scale structural properties in 
tonal music which almost certainly were not 
consciously considered by the composers 
who wrote the music, and which raise 
questions not previously posed in the history 
of theory. 



168 July 1979 © BYTE Publications Inc 



PASCAL 



For Greater Power Potential With Your 



TRS-80 



UCSD PASCAL, the powerful, general purpose 

language developed for large and complex 

programs is now available for your TRS-80. This 

new, Industry standard language avoids many 

errors normally encountered when using 

older languages. 

Although it is relatively easy for beginners to learn 

and use, it provides added potential to cover most 

problems of practical programming. The UCSD 

PASCAL Compiler allows long variable names, and 

block structured control statements. 

The FMG/UCSD PASCAL System opens a new 
generation of value for your TRS-80. 



Package Includes 
Operating System 
Screen Editor 
Z80 Macro Assembler 
Debugger 
Pascal Compiler 
Utilities and System 
Reference Book 

$150.00 

Requires 48K System with 2 Drives 
Available without Macro Assembler 

Linker and Debugger $100.00 



AvailablG "Microcomputer Problem Solving Using PASCAL" By Dr. K.L Bowles $ 9.95 
PASCAL UCSD Pascal Reference Manual Version 2.0 $19.95 
BOOkS Pascal User's Manual & Report By I.C. Jensen & N. Wirth $ 9.95 



CBASIC 


FORTRAN 


MACRO ASSEMBLER 


CP/M OPERATING 


A commercially oriented 


Comparable to compilers on 


A relocatable Macro Assembler 


SYSTEM 


BASIC compiler-interperter 


large mainframes and 


for both 8080 and Z80 op- 


Editor, Assembler, Debugger 


designed for use with the 
CP/M disk operating system. 


minicomputers. All of ANSI 


codes. Incorporates most big 


and Utilities for 8080 and Z80 


Standard FORTRAN X3.9-1 966 


computer assembler features 


Systems. Up to four floppy 


The compiler features 


is included except COMPLEX 


without sacrificing speed or 


disks. Package includes: 


D Variable Length Files 


data type. Therefore, users 


memory size. Package in- 


jCP/M System Diskette 5W 


l Double Precision Numbers 


may take advantage of the 


cludes: 


□CP/M Features and 


D Optional Line Numbers 


many applications programs 


DComment Blocks 


Facilities Manual 


"While. . .End" 


already written in FORTRAN. 


□ Full Intel Standard Macros 


□CP/M Editor's Manual 


D Structural Group 


Package includes: 


□Lib Manager (not included 


□CP/M Assembler Manual 


D Long Variable Names 


D FORTRAN Compiler 


in TRS-DOS version) 


□CP/M Debugger Manual 


(up to 31 characters) 


D Macro Assembler (Z80) 


□Linker 


□CP/M Interface Guide 


D Multiline User Defined 


D Linker 


□Library 


$150.00 


Functions 


D Library 


$219.00 (Included in 


(Set of 6 manuals 


□ 98 Page Manual 


D Lib Manager (Not 


FORTRAN) 


only $25.00) 


$99.00 


in TRS-DOS version) 


Manual $25 00 




(Manual only $25.00 


Price $350.00 


IVILLIIULII yJL-KJ.WW 

. (Specify TRS-DOS or CP/M 


SID® SYMBOLIC 




Manual $25.00 
(Specify TRS-DOS or CP/M 


versions) 


INSTRUCTION 


TEXTWRITER II 

Textwriter 1 1 i s a text formatting 


DEBUGGER 


versions) 


TEX® TEXT 
FORMATTER 


□Symbolic Memory 

Reference 
□Built-in Assembler/ 


program that prints files 
created by an editing program. 
Form letters can be printed 


MAC MACRO 


ASSEMBLER 


Powerful text formatting capa- 


Disassembler 


from a mailing list file and per- 


Compatible with new Intel 


bility using CP/M Editor. TEX 


□SID Diskette and Manual 


sonalized with automatic name 


Macro standard. Package in- 


Diskette and Manual $125.00 


$125.00 


and address insertion any- 


cludes complete guide to 


Manual $25.00 


Manual $25.00 


where in the body of the text. 


Macro Applications; MAC Dis- 






$130.00 


kette and Manual 


^SP Cali ° r 


Write ifflMftt 
Information jqppjf 


Manual $25.00 


$150.00 


•2SSF- for Complete 



FMG for HIGH LEVEL LANGUAGES 

BASIC FORTRAN COBOL and now PASCAL 

CP/M is a registered trademark of Digital Research Corp. 
TRS-80 is a registered trademark of Radio Shack. 



/ 



FMG OTPfOTMO 

P.O.Box -16020 • Fort Worth, TX 76133 • (817) 294-2510 



Circle 134 on inquiry card. 



BYTE July 1979 169 









Computer composition can be employed 
as a method of verifying theories and anal- 
yses of specific works, especially if they 
consist of multilayered abstractions like 
Schenkerian analysis. These abstractions 
suggest a generative approach starting from 
a background and building through succes- 
sive layers of elaboration to the foreground. 
One method of verifying such an analysis 
is to prove that it can actually regenerate 
the work, at least in its essential structural 
aspects, by a particular sequence of opera- 
tions. Another method is to change some of 
the background or middleground structure 
or the particular sequence of operations to 
produce new works that can be compared 
with the original. Although they might not 
be intended to be taken seriously as original 
compositions (since their structure is deriva- 
tive of another work), such compositions 
would unquestionably be computer com- 
posed music. 

Instead of using this structural approach, 
early work in computer composition has 
tended to emphasize the sensational aspects 
of "machine music" and has been based on 
random and aleatoric methods (see ref- 
erence 2). Very few conditions of the in- 
tended music have been specified, with the 
result that certain characteristics are quite 
clearly present (eg: consonances) or absent 
(eg: dissonances) but the music is otherwise 
aimless and without structure. These facts 
are quite obvious when the music produced 
resembles some early style like a Bach 
invention, but are less clear when some 
avant-garde style is imitated. Nevertheless, 
such experiments (often designated as 
experiments rather than as music) are not 
typical of musical compositional methods 
in general, nor of computer work in this 
field. 

In my own music I have employed 
computer composition in extensive ways 
("Composing by Computer," Computers and 
the Humanities, volume 9, 1975, page 281). 



Nevertheless, the computer does not make 
any decisions that I would not make myself, 
nor indeed that I have not already made 
when it executes my instructions; it merely 
carries out many time-consuming calcula- 
tions that would otherwise have to be done 
by hand. Basically, the program works out 
aspects of the foreground syntax which 
assure various rhythmic, harmonic and 
structural properties. All aspects of this 
syntax are specified by instructions pro- 
vided together with the data (pitch classes) 
on which they are carried out. 

Using a program like this allows com- 
posers to work more from a background 
perspective than from the foreground. They 
are able to concentrate on the large scale 
structural properties without being encum- 
bered with the foreground details that may 
arise from these characteristics; these are 
handled quickly and automatically by the 
computer. Several different possibilities for 
working out a given passage can be tried 
before any commitment is made to them. 

Even more important, the process of 
writing a program to carry out such com- 
positional details forces composers to be 
absolutely explicit about their procedures 
and intentions. Any errors or incomplete- 
ness in the specifications will be exposed 
when a program is executed by the com- 
puter. Ad hoc methods that composers 
may use to fix certain passages when they 
don't work out as expected are not neces- 
sary, because it is easy enough to revise 
the program once these problems are 
exposed. The composer's attention is thus 
always directed to the most important con- 
ceptual aspects of the music, and his or her 
ability to solve problems in these areas is 
facilitated. 

Conclusion 

By examining aspects of the four musical 
disciplines discussed above, we have seen 
many instances where the use of computers 



c. 



■o PET ANALOG INPUT 

Analog to Digital Conversion System for the Commodore PET Computer 



■YBTKMB 



Give the PET the ability to senser 
n*3sure» end control the world around 
it, uilh HAM SYSTEMS rwDdules. Just, plud 
the PETSET1 into t.he PET to Set 16 
channels of analog input,. Screw 
terminals are provided -For each channel 
so «ou can hook up JoysticKsr pois» or 
whatever appropriate sensors you have. 

Each of the 16 analog inputs* in 
the ranSe of to 5.12 volts* is 
converted to a decimal number between O 
and 255 < 20 millivolts F'er count,). 
Conversion time is 100 mieroseonds. 

In addition* the PETWOD provides 
two IEEE ports and one user port as 
well as a DAM SYSTEMS port,. 

Software is provided. A one line 
>»roSraiTi is all that, is necessary to 
read a channel . 




• ACCELERATION 
yiOITT 

• UGMT LEVEL 

• OUIO LEVEL 



AIM161 
PETMOD 
CABLE A24 
MANM0D1 
P0W1 



PETSET1 

16 ANALOG INPUTS -8 BITSHOO MICROSEC 



24 INCH INTERCONNECT CABLE 
MANIFOLD MODULE- SCREW TERMINALS 
FOR INPUTS, REFERENCE, GROUND 



JX - 

^ ) trs-bo uoo 

TflS-80 INTERFACE 



T CPIB 1 r RS-2SZ 1 

L ioo J L mod J 



- POWER MODULE 

PETSETla for 110 VAC $295 
PETSETle for 230 VAC $305 

Order direct or contact your local computer store. 

CONNECTICUT microCOMPUTER , Inc. 

150 POCONO ROAD 

BROOKFIELD, CONNECTICUT 06804 

TEL: (203) 775-9659 TWX: 71 0-456-0052 

VISA AND M/C ACCEPTED - SEND ACCOUNT NUMBER, EXPIRATION DATE AND SIGN ORDER. 

ADO $3 PER ORDER FOR SHIPPING 8 HANDLING- FOREIGN ORDERS ADD 10% FOR AIR POSTAGE. 



1 70 July 1 979 © BYTE Publications Inc 



Circle 78 on inquiry card. 




MicroSource™ is becoming the chosen business software producer. For all the right reasons. For example, before 
you ever see one of our applications, it's field tested and refined. Another reason is our Operations Manuals. 
They're called the finest in the industry . . . you never need special training to use MicroSource. One more 
reason: versatility. MicroSource works with different terminals and printers. You can use your favorite terminal, 
and choose between speed or print quality in a printer. Add in the rest of the story — like support, enhance- 
ments, low cost — and you get the picture. 

If your dealer stakes his business on MicroSource software, can you afford to do less? 

MoneyBeit — The Money Manager™ LedgerPlus — The Company Bookkeeper™ 

A modular in-house bookkeeping package with gen- Also modular, with all the accounting modules of 



MoneyBeit, plus inventory, check reconciliation and 
mailing list. Each interacts with the others, but stands 
alone, too. A first for Vector Graphic, MZ, Apple and 
Micropolis disk based systems. Less than $8000 
(under $200/mo. on a financing lease) for all hardware 
and first module (sugg. list). 

Other business software packages by MicroSource: AutoScribe — The Paperwork Manager™, Bookkeeper — 
The Office Accountant™, Timekeeper — The Time Accountant™. 



eral ledger, accounts payable and receivable, and 
payroll. Buy at your own pace . . . one at a time or all 
at once. Less than $8000 (under $Z00/mo. on a fi- 
nancing lease) for all hardware and first module (sugg. 
list). Horizon and other North Star disk based systems. 



AliCrOSGUi v*^ 

1425 W. 12th Place • Tempe, Arizona 85281 • (602) 894-9247 • Cable: MICROAGE 
Telex: 165 033 (MICRO AGE TMPE) 

The following are trademarks of The Phoenix Group, Inc.; 

MicroSource, Autoscribe, Bookkeeper, MoneyBeit. LedgerPlus, TimeKeeper. 

DEALERSHIPS STILL AVAILABLE 

Circle 227 on inquiry card. 



BYTE July 1979 



171 



necessitates a conceptual approach to the 
questions at issue. While many projects 
continue to pose problems because of the 
difficulty of computer programming, and of 
preparation of data, progress in these fields 
is nevertheless being made in significant 
ways. There still remain, and there always 
will be, gaps between those subjects that 
computer researchers tend to deal with and 
those that traditional, noncomputer people 
will choose, partly in the belief (from both 



sides) that some subjects are not suitable 
or possible for computer analysis. While 
important questions are always difficult 
to answer and sometimes require genera- 
tions of work in order to achieve accurate 
answers, they are never impossible. We will 
know that we have truly reached a high 
state of conceptual thinking when the con- 
clusions of computer research tend to agree 
with those of noncomputer research —both 
will then be operating on the same level." 



GLOSSARY 



Aleatoric music: music, usually composed by 
computer, in which all or many of the most 
important characteristics are chosen randomly. 

Analysis: description of music according to 
certain fundamental properties that are judged 
to be relevant to a given piece, showing how 
different elements in the work may be related 
by these properties. 

Atonality: music which is not tonal, and where 
a specific attempt is made to avoid reference 
to a key, or when the concept of key is not 
relevant. The term has two basic uses, specific 
and general: specifically, it describes a body of 
early twentieth century music by Schoenberg, 
Berg, Webern, and others, preceding 12 tone 
music (qv), in which tonality (qv) was con- 
sciously avoided. Generally, the term is used 
to describe any twentieth century music 
avoiding tonality that cannot be described 
simply by other methods. 

Background: musical substructure describing 
large scale properties and relations that may 
not be evident from an inspection of the 
immediate note to note properties, or from a 
superficial auditioning of the music; see fore- 
ground. In certain theories, the background is 
considered divisible into several levels. 

Computer music: music employing computers 
at any stage of its composition or realization 
as sound. 

Cycle of fifths equivalence: an operation on a 
group of notes in which each element is re- 
placed by its equivalent on the circle of fifths; 
analogous to inversion (qv). The circle of fifths 
generates the total chromatic (qv) by starting 
on any note, adding the note a perfect fifth 
(seven half steps) higher, and continuing this 
process. 

Electronic music: music in which the sounds 
are produced by electronic means. In a some- 
what simplified form, electronic music as cur- 
rently practiced can be broken down into four 
general areas: (1) musique concrete, in which 
use is made of natural sounds that are recorded 
on tape and modified by recording processes 
or other means; (2) tape music, in which sounds 
are modified according to procedures that may 
be applied to magnetic tape or tape recorders; 
(3) synthesized music, in which the sounds are 



produced by electronic music synthesizers 
(qv); and (4) computer music (qv), in which 
the sounds are produced or controlled by 
computers. 

Encoding language: a method in which musical 
notation may be represented in code suitable 
for computer input. The most widely used and 
documented languages to date are IML (Inter- 
mediary Musical Language), DARMS (Descrip- 
tive Alphanumeric Representation of Musical 
Symbols), the "Plaine and Easie Code System 
for Musicke," LMT (Linear Music Transcrip- 
tion), and ALMA (Alphanumeric Language for 
Music Analysis). 

Foreground: the "surface" of a piece of music, 
including sounds that are simultaneous or that 
appear in direct succession; distinguished from 
the background (qv). 

Glissando: a continuous sliding from one pitch 
to another. 

Half step: the smallest interval (qv) used in 
music based on equal temperament (the tuning 
system in widespread use in Western cultures 
since the eighteenth century). Music employing 
smaller intervals is said to be microtonal. 

Harmony: a theory describing properties of 
simultaneous sounds (chords) in tonal music 
(see tonality). Chords are expected to move in 
certain progressions, and dissonances resolve 
into consonances according to various rules. 

Interval: the distance, measured in half steps, 
between two pitches or pitch classes. Tonal 
music also employs another definition of inter- 
val, based not on the sound but on the notation 
for the two notes involved. 

Inversion: an operation on a group of notes in 
which each element is replaced by its equiva- 
lent on the descending chromatic scale, or 
ascending circle of major sevenths (11 half 
steps). (In this formulation, an ascending 
chromatic scale would be the identity opera- 
tion.) Identity and inversion, along with cycle 
of fifths equivalence and its inversion (cycle of 
fourths equivalence) are the only single interval 
cycles that generate the total chromatic (qv). 

Octave: a musical interval of 12 half steps, 
corresponding to the frequency ratio of 2 to 1 . 
Pitches related by octaves possess a strong 
similarity, which has been called octave 
equivalence. 



1 72 July 1 979 © BYTE Publications Inc 



Pitch: a single tone in a musical composition. 
Most pitches used in music are taken from the 
range of the 88 produced by the piano, but 
some extend beyond this range. 

Pitch class: a group of pitches separated by 
any number of octaves. In musical theories, 
pitches in different octaves employ the same 
letter names (C, C #or ub , D, D #or e/> , etc) 
reflecting the fact that theories are based on 
pitch classes rather than pitches. Pitch classes 
are also often called notes. While there are 
many pitches, there are only 12 distinct pitch 
classes in Western music. 

Pitch structure: a set of pitch class collections 
that all possess the same intervallic structure, 
so that they are related by transposition (qv). 
Pitch structure is the basic way that collections 
of tones, such as chords, are compared: as 
major triads, minor triads, etc. 

Spectrum: the overtone structure of a sound, 
represented as a series showing the amplitude 
of each overtone present; see timbre. 

Structure: any abstract method in which the 
properties of a piece of music can be encom- 
passed. Generally, a piece is divided into several 
sections, each of which has a different struc- 
ture. Sometimes structure is described in terms 
of a function or purpose at work in an entire 
section, such as introduction, development, or 
statement (of a theme or idea). Sometimes 
structure is described numerically, proportion- 
ally, or in other abstract ways. 

Synthesizer: a machine that generates and pro- 
cesses sounds automatically, used in the pro- 
duction of electronic music. Most synthesizers 
consist of a number of discrete components 
that perform different functions (eg: oscillators 
that generate tones, filters that modify their 
spectrum, etc). Some recently designed syn- 
thesizers include microprocessors, which are 
used as controlling devices. 



Theory: a set of concepts describing properties 
and relations that can be shown to exist in a 
body of musical literature. The most commonly 
known theories today include tonality (qv) and 
12 tone music (qv), but there are many others 
that have been described and used by various 
authors. Most theories have originated after 
the music they purport to describe has been 
written. Speculative theory originates as spec- 
ulation, before such music has been written, 
so that its success or failure has not yet been 
demonstrated. 

Timbre: musical tone quality, descriptive of 
the way in which different tones may possess 
a similarity not on the basis of pitch, ampli- 
tude, or rhythm. In electronic music, this term 
is normally used synonymously with spectrum 
(qv), but in contexts where it is described qual- 
itatively rather than numerically. 

Tonality: a theory describing music which is in 
a key, or a series of keys, usually pertaining to 
music written during the eighteenth and nine- 
teenth centuries. Basic concepts include the 
major and minor scales, triads, and specific 
rules according to which dissonances resolve 
into consonances. Much of the music of the 
twentieth century is based on an extended 
notion of tonality, in which some, but not all, 
of the basic concepts are employed. 

Total chromatic: any series of notes including 
all 12 pitch classes. 

Transposition: the addition or subtraction of 
a constant interval to each tone in a collection, 
moving the set up or down by a uniform 
amount. 

Triad: a chord consisting of three notes (or 
pitch classes) with a root note, and other notes 
a third and fifth above the root. 

12 tone music: music in which all note succes- 
sions, and sometimes other properties are based 
on sets of orderings of the total chromatic. 



REFERENCES 

1 . von Forester, H, and Beauchamp, J W, (editors), 
Music by Computers, John Wiley and Sons Inc, 
1969. 

2. Hiller, Jr, L A, and Isaacson, L M, Experimental 
Music, McGraw-Hill Book Company Inc, 1959. 

3. Howe, Jr, H S, Electronic Music Synthesis, 
W W Norton and Co Inc, 1 975. 

4. Lincoln, H B, (editor), The Computer and Music, 
Cornell University Press, 1970. 

5. Morgan, C P, (editor), The BYTE Book of Com- 
puter Music, BYTE Publications, 1979. 

6. Reti, R, Tonality in Modern Music, Crowell- 
Collier, 1962. 

7. Sessions, R, Harmonic Practice, Harcourt, Brace, 
Jovanovich Inc, 1951. 

8. Forte, A, The Structure of A tonal Music, Yale 
University Press, 1973. 



Mall, T, et al, IML-MIR User's Manual, Prince- 
ton University Music Dept, 1972. 



Journals 

Computers and the Humanities, Pergammon Press 
Inc, Maxwell House, Fairview Park, Elmsford, 
NY 10523. 

Computer Music Journal, People's Computer Com- 
pany, Box E, 1263 El Camino Real, Menlo Park 
CA 94025. 

Journal of Music Theory, Yale School of Music, 
New Haven CT, 06520. 

Perspectives of New Music, Perspectives of New 
Music Inc, Annandale on Hudson, NY 1 2504. 



July 1979 © BYTE Publications Inc 173 




Dr G Louis 

OB/GYN Department 

St Michael's Hospital 

30 Bond St 

Toronto CANADA M5B 1W8 



6809! 



MD-690a Single Board Computer 
$239 kit $299 assembled 

S-1 00 Compatibility. 
6809 Computability. 



• 1KRAM 

• 10K PROM space 

• MONBUG II monitor included 

• 2400 baud cassette interface 

• 20 I/O lines 

• RS-232 level shifters 

• Real time clock 

• DMA 

• Parallel keyboard input 

• Memory-mapped video output 

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

• A complete system, ready to use. 




6809 

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



MicroDaSys 

P.O. Box 36051 

Los Angeles, CA 90036 

(213)935-4555 



r 

i 

i 

i 

i 



Please rush the following 

D CPU Card (kit) 

□ CPU Card (assembled) 



Company— 

City 



CA residents add 6% 



"Tiny" Pascal in 8080 
Assembly Language 



The p-code interpreter, Pascal 
to p-code compiler, and p-code 
to 8080-code translator describ- 
ed in "A 'Tiny' Pascal Compiler" 
by Kin-Man Chung and Herbert 
Yuen (September thru Novem- 
ber 1978 BYTE) have been 
rewritten in 8080 assembly 
language. In addition to pro- 
viding approximately two orders 
of magnitude increase in speed, 
the object versions run in far 
less memory. 

To use the assembly language 
version of tiny Pascal you need: 
an 8080 (or Z-80) m icrocomputer 
system with not less than 12 K 
bytes of memory (the package 
would run in 8 K bytes but you 
need file space); a copy of the 
articles by Chung and Yuen, 
which have been reprinted by 
BYTE magazine and are avail- 
able for $3 (BYTE document 
number 100); an elementary ac- 
quaintance with 8080 assembly 
language; the package of 
assembly language modules. 

Additionally, it is desirable to 
have a text editor, an assembler 
that stores lines in the form: 
length byte, 4 digit line number, 
space or tab, text, carriage 
return, and a relocator program 
that is useful for tailoring the 
package to your system. 

The Nybbles Library is an inex- 
pensive 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 
different characteristics. 

Potential authors of such pro- 
grams should send us a self- 
addressed stamped envelope, 
with a request for a copy of 
our "Guidelines for Nybbles 



1 74 July 1979 © BYTE Publications Inc 



Circle 220 on inquiry card. 






Authors." Payment for Nybbles 
items is based on sales and 
length of the item. Rates are set 
at the time of acceptance. 

Nybbles Library programs are 
sent in listing form, printed on 
8.5 by 11 inch paper on both 
sides. The Nybbles Library pro- 
grams are 3 hole punched for 
collection in loose leaf binders, 



and come in an attractive folder 
which serves as a cover. 

This month "'Tiny' Pascal in 
8080 Assembly Language" 
(document #1 1 1) has been added 
to the Nybbles Library. Use the 
coupon below to order your per- 
sonal copy, at $10.00 (US and 
Canada) or $12.00 (foreign air- 
mail] postpaid. 



Please send 



copies of BYTE Nybble tt_ 



at $_ 



postpaid. 



Please remit in US funds only. 

Check Enclosed 

Bill my VISA ti 

Bill my MC # 

Name 



. Exp Date 



. Exp Date 



Street. 



City 



State 



Zip Code 



BYTE Nybbles Library, 70 Main St, Peterborough NH 03458 

You may photocopy this page if you wish to keep your BYTE intact. 



IMMEDIATE 
DELIVERY 

Domestic & Export 

DEC LSI 11 
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 



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

# Works with 6502 , 6800 and other micros. 

SPECIAL OFFER: Buy the Kit Cupper case alpha- 
numeric option included D & get the Book at 1/2 price. 

ELECTRONICS, DEPT.7-B, 1020 W. WILSHIRE BLVD.. OKLAHOMA CITY. OK 73116 



I'm Sold. PLEASE RUSH C ) SEND FREE CATALOG 

C } TVT-65/8 Kit & Cheap Video Cookbook - $42.95 (enclosed] 
C ] TVT -6 5/g Kit only Cbook required for assembly) -$39.95 



address:, 
city: 



.state: 



. zip : ■ 



ELECTRONICS DEPT. 7-B. 1020 W. WILSHIRE BLVD.. OKLAHOMA CITY. OK 73116 



Circle 236 on inquiry card. 



Circle 297 on inquiry card. 



July 1 979 £i BYTE Publications Inc 175 



Quest 



Roger Chaffee 

POB 7495 

Menlo Park CA 94025 



You are at one end of a vast hall stretch- 
ing forward out of sight to the west. There 
are openings to either side. Nearby, a wide 
stone staircase leads downward. The hall is 
filled with wisps of white mist swaying to 
and fro almost as if alive. A cold wind blows 
up the staircase. There is a passage at the top 
of the dome behind you. Rough stone steps 
lead up the dome. 



> FEED SNAKE 

There's nothing here it wants to eat (except 
perhaps you). 

>YELL 

Are you trying to somehow deal with the 
snake? 



> GO DOWN 



>YES 



You are in the hall of the Mountain King, 
with passages off in all directions. A huge 
green fierce snake bars the way! 

> ATTACK SNAKE 

A ttacking the snake both doesn 't work and 
is very dangerous. 



QUEST 

YOU WERE WALKING THROUGH THE 

WOODS, AND YOU CAME ACROSS THE ENTRANCE 

OF A CAVE, COVERED WITH BRUSH. 

PEOPLE SAY THAT MANY YEARS AGO A 
PIRATE HID HIS TREASURE IN THESE 
WOODS, BUT NO ONE HAS EVER FOUND IT. 
IT MAY STILL BE HERE, FOR ALL I KNOW. 

WHEN YOU ANSWER A QUESTION, I LOOK AT 
ONLY THE FIRST LETTER, ALTHOUGH YOU CAN 
TYPE THE WHOLE WORD IF YOU WANT. 

TYPE N, S, E, W, U, OR D FOR NORTH, SOUTH, 
EAST, WEST, UP OR DOWN. TYPE P FOR SCORE 

YOU'RE OUTSIDE THE CAVE. 
GO SOUTH TO ENTER. 



WHICH WAY? SOUTH 



YOU'RE IN A LOW CHAMBER. A TIGHT TUNNEL 
GOES EAST, AND YOU CAN WALK TO THE 
SOUTH OR WEST. THERE IS LIGHT 
TOTHE NORTH. 



YOU'RE AT A DEAD END! 



WHICH WAY? WEST 



WHICH WAY? EAST 



YOU'RE IN A LOW CHAMBER. A TIGHT TUNNEL 
GOES EAST, AND YOU CAN WALK TO THE 
SOUTH OR WEST. THERE IS LIGHT 
TOTHE NORTH. 



WHICH WAY? SOUTH 



YOU'RE ATTHE HOME OF THE GNOME-KING. 
FORTUNATELY, HE'S GONE FOR THE DAY 



WHICH WAY? SOUTH 



YOU CAN'T GO IN THAT DIRECTION 



Listing 1: Sample dialogue from the Quest game. This shows only the first 
few moves. 



I am prepared to give you a hint, but it will 
cost you 2 points. Do you want the hint? 

The preceding paragraphs are taken from 
a session I played on a computer running a 
program called Adventure, Which has used 
many, many cycles of machine time on 
many, many computers in the past year or 
two. The original version, I believe, was 
written in FORTRAN, by Willie Crowther 
(now at Xerox Palo Alto Research Center), 
and was subsequently modified and rewrit- 
ten by Don Woods at Stanford's Artificial 
Intelligence Laboratory. 

The version I ran has been bootlegged 
through several generations, and I'm not sure 
of its exact ancestry. It requires close to 
200,000 bytes of memory on an IBM 370/ 
1 68. Adventure has been translated into PL/1, 
APL, and BASIC. It is the successor to 
Hunt the Wumpus and the many Star Trek 
games. 

I hope it is the precursor of more elabo- 
rate games which combine computers with 
fantasy to produce an "electric novel," 
which the user and the computer write or 
experience together. Already, a few com- 
puters around the country are offering a 
child of Adventure called Zork or Dungeon, 
which has a more sophisticated understand- 
ing of English, and a whole new set of prob- 
lems to solve and monsters to defeat. Space 
War, which used to belong to the "freaks" 
and the "hackers" (in the hours after the 
managers went home), is now available in 
your neighborhood tavern for 25tf per 
enemy starship. How much longer will it be 
until we can each rule our own kingdom and 
rescue our own fair maidens? 

Quest 

There aren't many personal computers 
yet with 200 K bytes of memory available, 
and not all of us have free or inexpensive 
access to the machines on which Adventure 
can run. A smaller computer would require a 
floppy disk file for keeping the cave descrip- 
tions, and most users have no hardware for 



1 76 July 1 979 © BYTE Publications Inc 



Circle 104 on inquiry card. 



YOU'VE READ THEM ALL- 
NOW GET THE BEST! 

The 80-US Journal 

A PUBLICATION FOR TRS-80 

USERS - COVERS ALL TRS-80 

CAPABILITY! 



BI-MONTHLY, SEND $16.00 CHECK OR 
MONEY ORDER FOR A 1 YEAR 
SUBSCRIPTION TO: 
80 US 

PO Box 71 12 
TACOMA, WA. 98407 

MASTER CHARGE, VISA OK • (206) 759-9642 

WANTTOCHECK IT OUT FIRST? SEND $3.00 

for current sample copy. 

A SELECT CHOICE OF SOFTWARE IS AVAILABLE 



Circle 142 on inquiry card. 
a ■ t 



T.D.Q. 
TAPE DATA QUERY 



TRS-80-LEVEL II I 



PET-8 K SOL-IIA 

*FILE MANAGEMENT SYSTEM 

—UTILIZES DUAL AUDIO CASSETTE RECORDERS I 

'INTERACTIVE QUERY LANGUAGE 

-ENGLISH-LIKE COMMANDS 

—POWERFUL INFO RETRIEVAL CAPABILITY 

'COMPUTERIZED BUSINESS & PERSONAL RECORDS 

—CUSTOMIZE YOUR OWN FILE STRUCTURES 

—CREATE & MAINTAIN DATA FILES j 

—NO PROGRAMMING EXPERIENCE REQUIRED 

'IMPLEMENTED IN BASIC 

T.D.Q. CASSETTE WITH MANUAL & REF. CARD $50.00 j 

THE FOLLOWING PRE-DEFINED T.D.Q. FILE STRUCTURES 



ARE AVAILABLE TO SOLVE YOUR DATA PROCESSING NEEDS: 



$35.00 j 
$35.00 ! 
$35.00 i 
$35.00 j 
$25.00 i 
$25.00 j 



INVENTORY CONTROL 
ACCOUNTS RECEIVABLE 
ACCOUNTS PAYABLE 
ORDER PROCESSING 
CUSTOMER DIRECTORY 
APPOINTMENT SCHEDULING 

EACH WITH CASSETTE AND MANUAL 

SEND SELF-ADDRESSED STAMPED ENVELOPE FOR 
COMPLETE SOFTWARE CATALOGUE. 
SEND CHECK OR MONEY-ORDER TO: 

H. GELLER COMPUTER SYSTEMS 

DEPT. B, P.O. BOX 350 
NEW YORK, NY 10040 

(NEW YORK RESIDENTS ADD APPLICABLE SALES TAX J 



fiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiinf; 




® 



CP/M 

LOW-COST 

MICROCOMPUTER 

SOFTWARE 

CP/M® OPERATING SYSTEM: 

• Includes Editor, Assembler, Debugger and Utilities. 

• Standard version for 8080, Z80. or Intel MDS 
(other versions available.] 

• For IBM-compatible floppy discs. 

• S100-Diskette and Documentation. 

• $25-Documentation (Set of 6 manuals] only. 
MAC™ MACRO ASSEMBLER: 

• Compatible with new Intel macro standard. 

• Complete guide to macro applications. 

• S90-Diskette and Manual. 
SID™ SYMBOLIC DEBUGGER: 

• Symbolic memory reference. 

• Built-in assembler/disassembler. 

• S75-Diskette and Manual. 
TEX™ TEXT FORMATTER: 

• Powerful text formatting capabilities. 

• Text prepared using CP/M Editor. 

• $75-Diskette and Manual. 

DESPOOL™: 

• Background print utility. 

• Use with CP/M (version 1.4] 

• S50. Diskette and Manual. 

1 DJEJTflL RESEARCH 

P.O. Box 579 • Pacific Grove, California 93950 
(408) 649-3896 



® 




NEW SHAPES 

by Julius Guest 

Is a collection of 110 orlg 
Inal and fascinating com- 
puter-generated designs 
created by the author over, 
an eight-year period. The^ 
designs are satisfying art 
creations In themselves and 
may evoke the response 
that their titles suggest." 

As each art piece Is ac 
companled by a mathemat 
leal formulation and pro- 
gram, the reader may thus 
create his own 'New Shapes 
and derive as much enjoy- 
ment from them as the 
author obviously did. 

The designs are reproduced In 
color (some In exciting solid reverse) on high quality art paper. 

Details: 174 pages, 28cm x 27cm (ll"xlOWJ. (At $12.00 U.S. 
that's only 11£ per diagram!) Add $1.25 postage. ISBN 0-9596384 

INTRODUCTION TO PL/1 
& STRUCTURED PROGRAMMING 

R.A. Vowels, Senior Lecturer, Royal Melbourne Inst, of Technology. 
1978; 311 pages, 60 diagrams, ISBN 0-9596384-0-7. 

This book covers an easy-to-learn subset of ANSI PL/1. Fundamen- 
tals are emphasized and structured programming Is encouraged. The 
book contains numerical and non-numerical worked examples, and 
200 exercises and problems. The versatile subset Is defined In only 
3 pages of syntax diagrams. Suited to a one- or two-semester course. 
Also appropriate for self-study. An excellent reference document- 
only $5.00 U.S. (Add 80£ postage.) 

Contents: ten chapters and six appendixes. Data representation, 
fixed and floating-point, character strings, LIST and EDIT-dlrected 
I/O, DO, WHILE, declarations, arrays (fixed and variable 
bounds), procedures and functions, bullt-lns, computational error 
detection and correction, ON-unlts. 

Order direct from publisher R.A. Vowels, 93 Park Drive, Parkvllle 
3052, Australia. 

Personal checks accepted (In your currency), or Bank Draft Check 
In Aust. currency. Discount: 5% for 2 or more books. 



Circle 95 on inquiry card. 



Circle 383 on inquiry card. 



BYTE July 1979 



177 



CPW 



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! Ifc 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? 

I Mail to: SOFTWARE DEVELOPMENT & TRAINING, INC. 

I P.O. Box 4511, HuntsvHIe, AL 35802 

ED-80 is protected by copyright and furbished under a paid-up license 
for use on a single computer system. 

□ Please send additional information. 
Q Send Diskette, User's Manual, and paid-up license agreement $99.00 

Specify SINGLE DENSITY Diskette size □ 5" Q 8" 

□ Send User's Manual (credited on purchase of a paid-up license) $10.00 

□ Check or money order enclosed for $ 

□ Please charge to my credit card □ VISA Q Master Charge 

Card No Bank No. Exp.Date 

NAME 

ADDRESS 

CITY STATE ZIP 



SIGNATURE . 



C-l 



SOFTWARE DEVELOPMENT & TRAINING, INC. 
Post Office Box 451 1 Hun tsville, Alabama 35802 

Dealer Inquiries Welcomed 
® CP/M is a trademark of Digital Research 



rapid random access outside the computer 
memory. Adventure on everybody's com- 
puter is still in the future, although it is com- 
ing soon. 

I was playing Adventure at about the 
time Peninsula School, Menlo Park CA, 
received two Commodore PET 2001 
machines for the children to work with; and 
the incredible idea of Adventure on a PET 
was too exciting to ignore. Adventure on a 
PET, with only 7123 bytes available for the 
BASIC program, is impossible, but couldn't 
I do something just a bit less ambitious? In a 
couple of intense work weeks, I wrote a pro- 
gram I called Quest, which ran on the PET. 

Comparing Quest and Adventure 

Compared to Adventure, Quest is a toy, 
in the same measure that the PET is a toy 
compared to larger computer systems. But 
it is an enjoyable and even exciting toy, in 
the same ways that the PET can be enjoyed 
by someone who can also play with the big 
computers. Each system has its own prob- 
lems and pleasures. Adventure, as you can 
see from the opening paragraphs, has some 
novel problems for the adventurer to solve, 
and will proceed according to the adventur- 
er's 2 word commands. On the other hand, 
the problem you must solve in Quest is 
basically to find your way around the cave. 
The only commands Quest normally under- 
stands are six directions: NORTH, SOUTH, 
EAST, WEST, UP, and DOWN, and even 
there, only the first letter is examined. 

No huge green snake will confront you, 
and even the pirate, who swoops down to 
protect his treasure at some point, is beyond 
your control. He steals back the treasure 
after you have found it, and the problem 
continues: find the treasure again, and find 
your way out of the cave. To make it more 
interesting, various passages open and close 
according to your progress through the 
game. 

One limitation which Quest and Adven- 
ture share is that they never change. Once 
you know how to get past the snake, you 
always know, and once you can find the 
treasure, you always know where it is. A 
friend of mine has suggested having earth- 
quakes, which open and close passages at 
random. It seems to me, however, that that 
simply makes a bigger problem of the same 
kind, and I would rather have different prob- 
lems. In that respect, both Adventure and 
Quest are very limited. 

In a closer approach to the electric novel, 
there would be no guarantee that the prob- 
lems can really be solved. In a Star Trek 
game, for instance, the fate of the Enterprise 
depends on the random number generator, 



1 78 July 1 979 © BYTE Publications Inc 



which can set the starship down in the same 
quadrant with four Klingon commanders 
and two super commanders, or cause all the 
starbases to be overrun by a plague of trib- 
bles. In Adventure and Quest, as in cross- 
word puzzles, the solution is part of the 
problem definition, and you know it exists. 

It is possible in Adventure to do some- 
thing which will ruin your chance for suc- 
cess. For instance, if you feed the bird to the 
snake, you will neverget past the problem to 
which the bird is the solution. However, this 
doesn't change the basic limitation. 

An important part of both games is the 
descriptions of the locations. These are of 
course not created by the computer, but 
were elaborated over a long period by the 
programmer and his friends. The topology of 
the Quest cave could be more complex if the 
location descriptions were something like 
"YOU'RE AT LOCATION 28. NOW 
WHAT?", but that would spoil a good part 
of the game. The descriptions in Quest have 
been worked out very carefully. Some of 
them are just for fun, and some of them 
have hints about the neighborhood. 

Scoring 

The original version of Quest had no scor- 
ing at all, to minimize the competitive situa- 



tions I thought might develop. The children 
who used it soon said that they wanted 
points. My own cynical analysis suggests that 
they don't know whether or not they're hav- 
ing fun unless they keep score, but perhaps 
there is simply a need in all of us to track 
our progress in a quantitative way. In any 
case, Quest now awards you one point for 
each location that you visit, plus up to 25 
for the various checkpoints you pass along 
the way. In this version you can get up to 66 
points. 

Playing Time 

Many people who play Adventure find 
that it takes them about two weeks of seri- 
ous study to get through. The corresponding 
time for Quest is about two hours, although 
it has been done in an hour, and some 
people haven't finished after a day of frus- 
trating search! 

The Program 

Quest was written for the PET 2001, and 
used some features of the PET to reduce the 
size of the program. The version given here 
has been rewritten in a simpler dialect of 
BASIC, which l believe will run with minor 
Text continued on page 186 



Listing 2: Game of Quest in BASIC. 



1 


REM 


2 


REM 


3 


REM 


El 


REM 


5 


REM 


6 


REM 


7 


REM 


6 


REM 


9 


REM 


10 


REM 


11 


REM 


12 


REM 


13 


REM 


14 


REM 


15 


REM 


16 


REM 


17 


REM 


16 


REM 


IP 


REM 


20 


REM 


21 


REM 


22 


REM 


23 


REM 


24 


REM 


25 


REM 


26 


REM 


27 


REM 


28 


REM 


29 


REM 


30 


REM 


31 


REM 


32 


REM 


33 


REM 


34 


REM 



QUEST BY ROGER CHAFFEE 
INSPIRED BY WILL CROWTHER'S "AD 
COPYRIGHT (C) 1978 

PENINSULA SCHOOL, MENLO PARK 
PERMISSION TO USE, NOT TO SE 
THE ORIGINAL VERSION OF THIS PR 
COMMODORE PET 2001- THIS VERSI 
REC0DED, AND IS IN "PLAIN VANIL 
EXCEPTION OF THE RANDOM NUM8EF 
6600-6800, THE STRING MANIPULAT 
STATEMENTS WHICH GIVE A STATEME 
A STATEMENT NUMBER TO GO TO. 
VARIABLES USED 

N NODE (CAVE) NUMBER 

M0 MOVE COUNTER 

T CURRENT LOCATION OF TRE 

T1,T2 FIRST AND SECOND HIDIN 

M6 SAVES THE MOVE NUMBER W 

WANT TO TAKE THE TREASU 

M MAP OF INTERCONNECTIONS, 

M(I,J) IS NEXT NODE FB 

N,E,U,D,W,S FOR 1=1 



VENTURE" 



CA 



LL 

OGRAM WAS WRITTEN ON A 

ON HAS BEEN CONSIDERABLY 

LA" BASIC, WITH THE 

GENERATOR IN LINES 

ION, AND THE IF ... THEN 

NT TO PERPORM INSTEAD OF 



ASURE (-1 FOR CARBYIHG) 
G PLACES (NODE NUMBERS) 
HEN HE SAID NO, HE DIDNT 
RE WITH HIM. 

OM NODE J, WHEN YOU GO 
,2,3,4,5,6 



BOUNCES 
TO GO TO NODE -2 MEANS BOUNCE BACK TO THE NODE YOU 
CAME FROM. 

FORCED AND/OR RANDOM MOVES 
M(1,N)=-2 MEANS A FORCED MOVE AS SOON AS YOU BEACH 
NODE N- IN THAT CASE, M(2,N) OF THE TIME YOU GO 
TO NODE M(3,N). IF YOU DON'T GO THERE, M(4,N) 
OF THE TIME YOU GO TO NODE (5,N), AND THE REST OF 
THE TIME YOU GO TO NODE (6,N). 

Listing 2 continued on page 1 80 



July 1 979 © BYTE Publications Inc 1 79 



Listing 2 continued from page 1 79: 

35 REM NODES > 100: 

36 REM NODE N*100 MEANS NODE N IF YOU DON'T HAVE THE 

37 REM TREASURE, AND NODE N*1 IF YOU DO. 

38 REM NODE N+200 MEANS NODE N+1 IF TOU HAVE THE TREASURE 

39 REM THE SECOND TIME, AND NODE N OTHERWISE. 

aO REM NODE N*500 MEANS RUN THROUGH A DELAY LOOP AMD THE* 

41 REM GO TO NODE N. THIS IS USED POB FALLING DOWN THE 

42 REM EXIT CHUTE, AND YOU MAY WANT TO ADJUST THE DELAY 

43 REM TIME (LINE 6250) . 

44 REM 

45 REM Q$ INPUT STRING 

46 REM A$ CHARACTERS TO MATCH IN THE INPUT ROUTINE 

47 REM A2 NUMBER OF CHARACTERS IN A$ 

48 REM A1 OUTPUT FROM THE INPUT ROUTINE 

49 REM P PIRATE FLAG 1 IF PIRATE HAS GOT YOU, OTHERWISE 

50 REM PI COUNTER FOR PIRATE ROUTINE 

51 REM N9 SAVES OLD NODE IN MOVE ROUTINE, FOR BOUNCE 

52 REM N8 SAVES NODE WE BOUNCED FROM IN MOVE ROUTINE, 

53 REM FOR PRINT FLAG 

54 REM NO SAVES OLD NODE IN MOVE ROUTINE, FOR DEAD END 

55 REM AO SAVES OLD DIRECTION IN MCVE ROUTINE 

56 REM D DEBUG FLAG (NON-ZERO TO PRINT) 

57 REM I, J MISC. COUNTERS 

58 REM W TRAVEL FLAG, USED IN SCORING. W(I)=1 IF HE'S 

59 REM BEEN TO NODE I, OTHERWISE 

60 REM S SCORE 

61 REM M9 MAXIMUM NUMBER OF NODES 
80 D = 

100 REM — 

110 REM GIVE 'EM SOMETHING TO READ WHILE I GET THE DATABASE SET UP 

120 PRINT " QUEST" 

130 PRINT 

140 PRINT "YOU WERE WALKING THROUGH THE" 

150 PRINT "WOODS, AND YOU CAME ACROSS THE ENTRANCE" 

160 PRINT "OF A CAVE, COVERED WITH BRUSH." 

170 PRINT 

IRQ PRINT "PEOPLE SAY THAT MANY YEARS AGO A" 

190 PRINT "PIRATE HID HIS TREASURE IN THESE" 

200 PRINT "WOODS, BUT NO ONE HAS EVER FOUND IT." 

210 PRINT "IT MAY STILL BE HERE, FOR ALL I KNOW." 

400 READ M9,T1,T2 

490 REM DIMENSION OF W, M IS M9, IF YOU HAVE DYNAMIC ASSIGNMENT 

500 DIM W(42) ,M(6,42) 

510 REM READ MAP INTO M ARRAY 

520 FOR 1=1 TO M9 

530 BEAD N 

540 IF I-N THEN 570 

550 PRINT "DATA3ASE PROBLEM"I,N 

560 STOP 

570 FOR J=1 TO 6 

580 READ M (J, I) 

590 NEXT J 

600 NEXT I 

900 PRINT 

905 PRINT "WHEN YOU ANSWER A QUESTION, I LOOK AT" 

906 PRINT "ONLY THE FIRST LETTER, ALTHOUGH YOU CAN" 

907 PRINT "TYPE THE WHOLE WORD IF YOU WANT." 
920 GOSUB 7500 

1000 REM 

1010 N=5 

1020 M0=0 

1030 M6=0 

1040 T=T1 

1050 P=0 

1060 P1=0 

1070 FOR J=1 TO M9 

1080 W(J)=0 

1090 NEXT J 

1100 PRINT 

1110 REM DESCRIBE 

1120 GOSUB 8000 

1400 REM 

1405 REM MAIN LOOP STARTS HERE 

1410 REM COUNT MOVES 

1420 M0 = M0M 

1430 REM MOVE 

1440 GOSUB 6000 

1450 REM CHECK FOR FINDING THE TREASURE 

1460 GOSUB 2000 



1 80 July 1 979 © BYTE Publications Inc 



1470 
1490 
1490 
1500 
1510 
1700 
1710 
1720 
1730 
17*10 
1750 
1760 
1770 
1771 
1780 
1790 
2000 
2010 
2100 
2110 
2120 
2200 
2210 
2220 
2230 
2240 
2250 
2260 
2300 
2310 
2320 
2330 
2400 
2410 
2420 
2430 
2440 
3000 
3010 
3020 
3030 
3040 
3050 
3060 
3070 
3080 
4000 
4010 
4020 
4030 
4040 
4050 
4060 
4065 
4070 
4080 
4090 
4100 
4110 
4120 
4130 
4140 
4150 
4160 
4170 
4180 
4190 
4200 
4210 
4220 
4230 
5000 
5010 
5020 
5030 
5040 
5050 
5060 
5070 



REM TRY THE PIRATE 

GOSUB 4000 
REM LOO? UNLESS FINISHED 

IF I>0 THEN 1400 

IF N<>5 THEN 1U00 
RES CALCULATE SCORE 

GOSUB 3000 

PRINT 

PRINT "CONGRATULATIONS! YOU GOT THE TREASURE" 

PRINT "OUT IN";M0; 

PRINT "MOVES AND YOU GOT"S ♦ 1 0"POI NTS ! " 

PRINT "WANT TO HUNT AGAIN? "; 

A$="YN" 

A2 = 2 

GOSUB 5000 

ON A1 GO TO '000,9999,1760 



REM 



REN FOUND? 

IF TON THEN RETURN 

IF T<0 1HEN RETURN 

IF H6*5>H0 THEN RETURN 

PRINT "DO YOU WANT TO TAKE IT WITH YOU? "; 

A$="YN" 

A2 = 2 

GOSUB 5000 

ON A1 GO TO 2300,2400 

PRINT "WELL?... ." 

GO TO 22 10 

T=-1 

PRINT 

PRINT "OK, LETS GET OUT OF HERE!" 

RETURN 

PRINT 

PRINT "WE'LL LEAVE IT HERE AND YOU CAN EXPLORE" 

PRINT "SOME MORE." 

M6 = M0 

RETURN 

REM 



REM 

S = 

IF T=-1 THEN S = S*5 

IF P=1 THEN S=S*10 

FOR J=2 TO M9 

S = Sf V (J) 
NEXT J 
RETURN 
REM 



SCORE 



THE TREA 
GET HERE, 



REM PIRATE 

IF N-T2 THEN RETURN 
IF P=1 THEN RETURN 
IF T1=T2 THEN RETURN 
IF TO-1 THEN RETURN 

REM HES AT THE EXIT WITH 
REM (ARRGH. HOW DID HE 

IF N=16 THEN P=160 
REM COUNT MOVES SINCE H 
IF P1>0 THEN P1 = PU1 
IF N = 3 THEN P1 = PU1 
REM GIVE HIM A FEW MORE 
IF PK15 THEN RETURN 
PRINT 

PRINT"SUDDENLY TH 
PRINT"GLOOM AND G 
PRINr"'HAH! ■ , HE 
PRINT"TREASURE, D 
PRINT"IT BETTER T 
PRINT"AND HE D1SA 
PRINT"WITH THE TR 
P=1 
T = T2 
RETURN 

REM 

REM INPUT 

REM FIRST CHARACTER OF A1 INPUT STRI 

REM THE LETTERS OF A$ # AND IF THESE 

REM IN A$ IS RETURNED IN A1. IF NO M 

REM RETURNED. 

REM GET INPUT STRING 

INPUT 2$ 



SURE. ZAP HIM. 
ANYWAY?) 



ITTING TIGHT TUNNEL WITH TREASURE 



MOVES, THEN ZAP HIM 



EAPS OUT OF THE" 
REASURE FROM YOU!" 
CU FOUND MY" 
WELL, I'LL HIDE" 



E PIRATE L 

RABS THE T 

SHOUTS, «Y 

ID YOU?! 

HIS TIME! • " 

PPEARS INTO THE DARKNESS" 

EASURE." 



NG IS COMPARED WITH 
IS A MATCH, THE INDEX 
ATCH, SIZE(A$)«-1 IS 



Listing 2 continued o n page 782 



July 1 979 © BYTE Publications Inc 181 



Listing 2 continued from page 181: 



5080 

5090 

5100 

5110 

5120 

5130 

5140 

51<*5 

5150 

5160 

5170 

5180 

5190 

5200 

5210 

5220 

5230 

5240 

6000 

6010 

6020 

6030 

60(10 

6050 

6060 

6070 

6080 

6090 

6100 

6110 

6120 

6130 

6200 

6210 

6220 

6230 

6240 

6250 

6260 

6270 

6300 

6310 

6320 

6330 

6340 

6350 

6355 

6360 

6370 

6380 

6390 

6400 

6410 

6420 

6430 

6440 

6450 

6500 

6510 

6520 

6530 

6540 

6600 

6610 

6620 

6630 

6640 

6650 

6660 

6670 

6680 

6690 

6700 

6710 

6720 

6730 

6800 

7000 

7010 



REM USE OSLY FIRST CHARACTER 

Q$ = LST(Q$,1) 

REM SEAfeCH POR THE CHARACTER Q$ IN THE STRING A$. IN THIS V 
REM OF BASIC, NDX IS THE INDEX FUNCTION, WHICH DOES EXACTLY 

A1=NDX(A$,QS) 
REM BUT CHECK FOR THB CASE WHERE THE CHARACTER WAS NOT FOUN 

IF A1=0 THEN A1=A2*1 
RETURN 

REM IF YOUR VERSION OF BASIC DOESN-T HAVE THB NDX FUNCTION, 
REM DOSS, FOR INSTANCE, HAVE A FUNCTION WHICH WILL PICK A 
REM PARTICULAR CHARACTER FROM A STRING, SUCH AS MID(JL$,A2,1 
REM PICKING THE A2-TH CHARACTER FROM A$, YOU MIGHT USE THE 
REM FOLLOWING CODE. 



ERSION 
THAT. 



BUT 



FOR A 1 = 1 TO A2 

IF Q$ = MID(A$,A1, 1) THEN RETURN 
NEXT A1 
A1=A2*1 
RETURN 



DEBUG , ;N;«TO« ;I 



REM 
RES 
REM 
REM 
REM 

REM 

REM MOVE 

REM REMEMBER WHERE WE ARE, FOR BOUNCE. 

N9 = N 
REM SET N8 TO ANYTHING BUT YOU CANT GO THAT WAY 

N8=0 
REM ASK WHICH WAY 

GOSUB 7000 
REM REMEMBER WHERE WE ARE, UNLESS A DEAD END 
IF N=l THEN 6120 
N0 = N 
A0 = A1 
PRINT 
I=H(A1,N) 
IF I=-2 THEN I=N9 
IF DOO THEN PRINT 
IF K500 THEN 6300 

REM DELAY LOOP TO WASTE SOME TIME 
1=1-500 

FOR J=0 TO 100 
NEXT J 
GO TO 6200 
ON 1/100 GO TO 6340,6370 

REM NORMAL ROUTE — LESS THAN 100 
N=I 

GO TO 6400 
REM N*100. ADD ONE IF CARRYING THE TREASURE 
N=I-100 

IF T=-1 THEN N=N+1 
GO TO 6400 
REM N + 200. ADD 1 IF CARRYING TREASURE THE SECOND TIME 
N=I-200 

IF T=-1 THEN N=N*P 
IF N<>1 THEN 6500 

REM DEAD END. TURN IT SO YOU GET OUT THE OTHER WAY 
FOR J=1 TO 6 

M(J,N) =2 
NEXT J 

M(7-A0,N) =N0 
REM PRINT OUT THE NODE DESCRIPTION 

IF N8<>2 THEN GOSOB 8000 
REM REMEMBER WEVE BEEN HERE 
W(N)=.1 
NB=N 
IF M(1,N)<>-2 THEN 6800 

REM FORCED HOVE, WITH RANDOM DESTINATIONS 
REM ON THIS VERSION OF BASIC, J=- 1 FOLLOWED BY BND(J) 
REM GETS YOU A NUMBER BETWEEN ZERO AND ONE. 
REM YOUR VERSION WILL DIFFER, AND THE NEXT FIVE 
REM LINES WILL HAVE TO BE CHANGED. 
I=fl(6,N) 
J=-1 

IF H(4,N) 
J = -1 
IF M(2,N) 



> 100*RND(J) THEM I=M(5,1 



IF DOO THEN PRINT 

REM MOW HAVE A NEW DESTINATION. 



100*RND(J) THEN I = M(3,N) 

DEBUG BOUNCE TO 1 ;I 
GO BACK AND REDO IT 



GO TO 6200 



RETURN 

REM 

REM 



WHICH WAY? 



Listing 2 continued on page 184 



1 82 July 1 979 © BYTE Publications Inc 



Circle 53 on inquiry card. 



The Best 
MICRO-SOFTWARE 



GENERAL LEDGER • ACCTS. PAYABLE 

ACCTS. RECEIVABLE • INVENTORY 
^ PAYROLL ^ 

forTRS • 80 Apple II Micropolis 

Vector MZ Exidy Sorcerer Cromemco 

CBasic-CP/M Microsoft-CP/M 

Buy simple, effective programs designed specifically for your 
machine. Call us once for same week delivery on a product you 
can use the day you receive it, and two years from now when 
your company is twice as big. And ask about MICROMAX - our 
computer output videotape system. 

TRS«80: $100/each. CBASIC-CP/M: $200/each. Apple II, Mi- 
cropolis, Vector, Exidy, Cromemco, and Microsoft: $140/each. 

Order today by U.P.S. 
COD. We'll pay postage 
and handling on Visa, Mas- 
tercharge, or prepaid or- 
ders. 



505 Hamilton Ave., Palo Alto, CA 

94301 {415)321-2881 




OMPU 



[AX 



SSOCIATES, INC. 



Announcing. . . 

THE GUIDE TO DESKTOP 

MICROCOMPUTER SELECTION 

A guide to the selection of a desktop computer that is 
right for your needs. Over 1 00 pages are crammed with 
features & specifications on models offered by the 
leading suppliers in the industry today. Manufacturers 
such as Radio Shack, Apple, Wang, Tektronix, IBM & 
Hewlett-Packard are included. 

Other features include: 

• a matrix of BASIC statements with over 250 
entries comparing the capabilities of 8 
different BASIC Interpreters. 

• a matrix of hardware characteristics comparing 
desktop systems and their associated options. 

• capabilities to consider when determining 
your needs & options. 

• space within each matrix to include your 
choice of system not listed. 

• key elements for development of software which 
can convert from one computer to another. 

TO OBTAIN YOUR COPY, RUSH $13.65 
PLUS $1.35 POSTAGE AND HANDLING TO: 

/~ ^^ ^ # ATLANTIC ANALYSIS CORPORATION 



5 KOGER EXECUTIVE CENTER 



s_ 



• SUITE 219 
(804) 461-1980 

VA Residents, add 4% sales tax 



NORFOLK. VIRGINIA 23502 



^ QDQODDQOQQDQQQQQQQQQP PQQQOQOOQOOQPQQQQQQgOPDOOOPg J00 flJUW09MMM! 



TRS-80 means business! ! ! 

• ••with CP/M, CBASIC2, 
& applications software. 

CT/M ("the software bus") & CBASIC2 (the stan- 
dard for business software) bring new power and 
| versatility to the TRS-80 for practical use. 

CP/M Operating System (w/Editor, Assembler, 

Debugger, Utilities & 6 manual set) S150 

CBASIC2 Compiler (w/manual) $ 95 

DESP00L Print Spooler (w/manual) $ 75 

*0sborne & Assoc. PAYROLL W/C0ST 

ACCTIMG $250 

*0sbome & Assoc. ACCTS. RECEIVABLE & 

ACCTS. PAYABLE $250 

*0sbome & Assoc. GENERAL LEDGER $250 

*=CBASIC2 source programs; add $1 5 (each) for 
applicable O & A book. 

APH - Self-administered Automated Patient 

History $175 

Write/call for additional software available & FREE 
"CP/M Primer". 

CA residents add 6% tax. Visa, M/C,M/0, Check OK. 



M c ^ 



IC,IYIBIE,IRINIE LT LjJClS 
IN 



(714)848-1922 



«. 8041 NEWMAN AVENUE • SUITE 208 • HUNTINGTON BEACH. CALIFORNIA 92647 



iffiWMMMTOTSTCWKSfi^^ 



BUILDING BLOCKS FOR 
MICROCOMPUTER SYSTEMS, 
CONTROL &TEST EQUIPMENT 




R 2 I/O 

2K ROM 2 K RAM 

3 SERIAL PORTS 1 PARALLEL PORT 




TABLE TOP MAINFRAMES 

fbmm 




ECT-100-F * 

RACKMOUNT CARD CAGES 

POWER SUPPLIES, CPU's, 
MEMORY, OEM VARIATIONS 



SPECIALIZING 

IN 

QUALITY 

MICRO- 
COMPUTER 
HARDWARE 

INDUSTRIAL 
EDUCATIONAL 
SMALL BUSINESS 
PERSONAL . 

ELECTRONIC 

CONTROL 

TECHNOLOGY 

763 RAMSEY AVE. 
HILLSIDE, N.J. 07205 

(201) 666-8080 



Circle 85 on inquiry card. 



Circle 120 on inquiry card. 



BYTE July 1979 



183 



Listing 

7100 

7110 

7120 

7130 

71U0 

7150 

7160 

7170 

7180 

7190 

7200 

7210 

7300 

7310 

7320 

7330 

73U0 

7350 

7U00 

7500 

7510 

7520 

7530 

7550 

7560 

7570 

8000 

8010 

8050 

8060 

8070 

8080 

8090 

8100 

8200 

8210 

8220 

8230 

82U0 

8250 

8260 

8270 

8280 

8290 

8U00 

8U10 

8420 

8500 

8510 

8520 

8530 

85U0 

8550 

8560 

8600 

9000 

9001 

9002 

9003 

9010 

9011 

9012 

9020 

9021 

9022 

9023 

9030 

9031 

9032 

9037 

90U0 

90U1 

90U7 

9050 

9051 

9052 

9053 

9060 

9061 

9062 

9067 

9070 



WHICH HAY? "; 



2 continued from page 182: 

PRINT 

PRINT " 

A$="NEUDWSP" 

A2=7 

GOSUB 5000 

IP AK8 THEN 7300 

PRINT "WHICH WAY DO YOU WANT TO GO?" 
REM GIVE INSTRUCTIONS 

GOSUB 7500 
BEM DESCRIBE THE LOCATION AGAIN 

30SUB 8000 
GO TO 7100 
IF AK7 THEN 7U00 

REM CALCULATE AND PRINT SCORE 
30SUB 3000 

PRINT "YOU HAVE"S"POINTS!" 
REM START AGAIN 
GO TO 7100 
RETURN 

REM 

REM SUBROUTINE TO GIVE INSTRUCTIONS 
PRINT 

PRINT "TYPE N,S,E,W,U, OR D FOR NORTH, SOUTH," 
PRINT "EAST, WEST, UP OR DOWN. TYPE P FOB SCORE" 
PRINT 
RETURN 

REM 

BEM DESCRIBE THE CURRENT LOCATION 
I = INT (N/5) 
J=N-5*I*1 

REM THERE ARE ENOUGH STATEMENT NUMBERS HERE TO HANDLE NODES 
REM ZERO THROUGH U9. YOU WILL HAVE TO ADD MORE IF YOU ADD 
REM NODES 50 AND BEYOND. 

ON I ■♦■'.! GO TO 8200,8210,8220,8230, 82U0, 8250, 8260, 8270, 8280, 8290 
ON J GO TO 9000, 9010, 9020, 9030, 90U0 
ON J GO TO 9050,9060,9070,9080,9090 
GO TO 9100, 9110, 9120, 9130, 91U0 
GO TO 9150,9160,9170,9180,9190 
GO TO 9200, 9210, 9220, 9230,92U0 
GO TO 9250,9260,9270,9280,9290 
GO TO 9300, 9310, 9320, 9330, 93U0 
GO TO 9350,9360,9370,9380,9390 
GO TO 9U00,9U10,9U20,9U30,9UU0 
ON J GO TO 9U50,9U60,9U70,9U80,9tl90 
IF TON THEN 8500 
PRINT 

PRINT "THE TREASURE IS HERE!" 
IF TOT2 THEN 8600 
IF T1=T2 THEN 8600 
IF TK>N THEN 8600 
PRINT 

PRINT "A NOTE ON THE WALL SAYS" 
PRINT » 'PIRATES NEVER LEAVE THEIR TREASURE" 
PRINT " TWICE IN THE SAME PLACE!" 
RETURN 

REM 

REM FIBST DATA STATEMENT IS NUMBER OF NODES, AND THE 2 
REM HIDING PLACES FOR THE TREASURE, 
DATA U2,23,12 
DATA 1,0,0,0,0,0,0 

PRINT "YOU'RE AT A DEAD END!" 
GO TO 8U00 
DATA 2,-2,101,-2,0,0,0 

PRINT "YOU CAN'T GO IN THAT DIRECTION" 
PRINT 

GO TO 8U00 
DATA 3,33,2, 1,10, 106, U 

PRINT "A TUNNEL GOES NORTH-SOUTH." 
PRINT "THERE IS AN OPENING TO THE WEST," 
GO TO 8U00 
DATA U, 3, 30, 2,1 1,2,1 

PRINT "YOU'RE ON THE BRINK OF A PIT," 
GO TO 8U00 
DATA 5,8,8,15,10,8,16 

PRINT "YOU'RE OUTSIDE THE CAVE." 
PRINT "GO SOUTH TO ENTER," 
GO TO 8U00 
DATA 6, 16,3,2,10,2,2 

PRINT "YOU'RE AT THE HOME OF THE GNOME-KING," 
PRINT "FORTUNATELY, HE'S GONE FOR THE DAY" 
GO TO 8U00 
DATA 7,-2,101,-2,0,0,0 



ON 


J 


ON 


J 


ON 


J 


JN 


J 


ON 


J 


ON 


J 


ON 


J 



1 84 July 1 979 © BYTE Publications Inc 



9071 PRINT "THE GNOME KING IS HERE!" 

9072 PRINT "YOU'D BETTER GET OUT!" 

9073 PRINT 
9077 GO TO 8400 

9080 DATA 8, 1 8 , 18, 15, 10, 1 8,9 

9081 PRINT "YOU'RE LOST IN THE WOODS." 
9087 GO TO 8U00 

9090 DATA 9,-2,33,5,1,0,-2 

9097 GO TO 8U00 

9100 DATA 10,-2,101,-2,0,0,0 

9101 PRINT "YOU'RE NOT GOING TO GET FAR, DIGGING" 

9102 PRINT "THROUGH ROCK." 

9103 PRINT 
9107 GO TO 8400 

9110 DATA 11, 1, 13, 4, 2,1,2 

9111 PBINT "YOP'RE AT THE BOTTOM OF A PIT. A LITTLE" 

9112 PRINT "STREAM FLOWS OVER THE ROCKS HEBE." 
9117 GO TO 8400 

9120 DATA 12,36,2,1,2,1,2 

9121 PRINT "YOU'RE AT A DEAD END!" 
9127 GO TO 8400 

9130 DATA 13,2,37,2,1,11,14 

9131 PRINT "YOU'RE AT A WIDE SPOT. THERE IS A" 

9132 PRINT "SOOTY PATCH WHERE SOMEBODY HAS RESTED" 

9133 PRINT "A TORCH AGAINST THE WALL. THERE ARE" 

9134 PRINT "JAGGED BOCKS ABOVE YOU." 
9137 GO TO 8400 

9140 DATA 14,13,1,19,2,31,31 

9141 PRINT "YOU'RE IN A CANYON. HIGH ON THE WALL" 

9142 PRINT "ABOVE YOO IS SCRATCHED THE MESSAGE" 

9143 PRINT " f BILBO WAS HERE'" 
9147 GO TO 8400 

9150 DATA 15,-2,101,-2,0,0,0 

9151 PRINT "YOU'RE NOT A BIRD. YOU CAN'T FLY!" 

9152 PRINT 
9157 GO TO 8400 

9160 DATA 16,5,33,2,10,1,106 

9161 PRINT "YOU'RE IN A LOW CHAMBER. A TIGHT TUMNEL" 

9162 PRINT "GOES EAST, AND YOU CAN WALK TO THE" 

9163 PRINT "SOUTH OR WEST. THEBE IS LIGHT" 

9164 PRINT "TO THE NORTH." 
9167 GO TO 8400 

9170 DATA 17,-2,101,-2,0,0,0 

9171 PRINT "IT'S A TIGHT SQUEEZE. YOU CAN'T" 

9172 PRINT "GET PAST WITH THE TREASURE." 

9173 PRINT 
9177 GO TO 8400 

9180 DATA 18,-2,101,8,0,0,0 

9181 PRINT "I DON'T THINK YOU CAN FIND THE CAVE." 
9187 GO TO 8400 

9190 DATA 19,224,2,2,14,1,42 

9191 PRINT "YOU'RE AT THE TOP OF A CLIMB." 

9192 PRINT "BELOW YOU A MESSAGE SAYS" 

9193 PRINT " 'BILBO WAS HEBE'" 
9197 GO TO 8400 

9200 DATA 20,226,1,2,2,25,2 

9201 PRINT "YOU'RE AT THE NORTH SIDE OF A CHASM," 

9202 PRINT "TOO WIDE TO JUMP. RINGING ECHOES FROM" 

9203 PRINT "BELOW ARE THE ONLY INDICATION OF DEPTH." 
9207 GO TO 8400 

9210 DATA 21,1,226,2,2,38,25 

9211 PRINT "YOU'RE IN XANADU. BELOW YOU" 

9212 PRINT "ALPH, THE SACRED RIVER RUNS" 

9213 PRINT "THROUGH CAVERNS MEASURELESS TO BAN," 

9214 PRINT "DOWN TO A SUNLESS SEA." 
9217 GO TO 8400 

9220 DATA 22,-2,33,13,50,29,30 

9227 GO TO 8400 

9230 DATA 23,2,1,2,31,2,2 

9231 PRINT "YOU'RE ON THE LEDGE ABOVE THE GUILLOTINE ROOM." 
9237 GO TO 8400 

9240 DATA 24,-2,101,19,0,0,0 

9241 PRINT "I HEAR THE GIANT THERE!!!" 

9242 PRINT "YOU'D BETTER GO BACK!" 

9243 PRINT 
9247 GO TO 8400 

9250 DATA 25,2 1,20,2,2,1,19 

9251 PRINT "YOU'RE IN THE GIANT'S CAVERN. BETTER" 

9252 PRINT "NOT BE HERE WHEN THE GIANT COMES!" 
9257 GO TO 8400 

9260 DATA 26,-2,65,-2,50,11,14 

9261 PRINT "YOU'RE IN THE QUEST RESEARCH AND" 

Listing 2 continued on page 186 



Circle 206 on inquiry card. 



<aH>matfoK 

fliicreprece//or 
display/ 



ALTR-2480 




ALT-256 



ALT-512 












!. 


1 

1 











S100 BUS 
Standard TV Monitor Controllers 

ALPHANUMERICS: Transparent Memory insures 
clean video while leaving CPU free to perform 
other tasks. 24 x 80 or 2 pages 24 x 40. 96 ASCII 
characters with descenders plus 32 graphics 
symbols. Normal/inverse video and blink 
available on a per character basis. 

GRAPHICS: 256 x 256 high resolution 
monochrome self-contained graphics display 
and a software controlled ALT-512 provides 512 
horizontal x 256 vertical or two 256 x 256 images 
allowing grey scale or high speed animation. X-Y 
addressing of memory located in I/O area allows 
CPU maximum work space. 

COMBINED: The ALT-256 and ALT-512 graphics 
boards allow easy connection to the ALTR-2480 
providing full alpha/graph capability on two 
cards. 

Matrox offers a highly diversified selection of 
modules and PC boards allowing customers to 
solve display problems rapidly and cost 
effectively These ready to use sub-systems are 
available off the shelf in self-contained module, for 
any uP or on PC boards, bus compatible with 
DEC LSI-11. PDP-11. Mostek/Prolog STD. 
Intel/NSC SBC Multibus. Motorola Exorciser. 
Custom Designs as well as the MTXA1 & MTXB1. 
Alpha chips - the single chip keyboard & display 
controllers - give Matrox the most extensive 
display capability in the industry 



(m7m) motion electronic /y/tcm/ 



The Visible Solutions Company 

S800 AN DOVER ROAD. MONTREAL, QUE. H.1T IH4 

TEL. IDM) 481-6838 

U.S. QNL Y. TRIMEX BUILDING. MOOERS. N Y. I2D58 



July 1979 © BYTE Publications Inc 185 



Listing 2 continued from page 185: 

9262 PRINT "DEVELOPMENT AREA," 

9263 PRINT 

9264 PRINT "l""'fl SORRY, BUT VISITORS ARE NOT" 

9265 PRINT "ALLOWED, YOU'LL HAVE TO LEAVE." 

9266 PRINT 

9267 GO TO 8400 

9270 DATA 27, 2, 40 , 2, 2, 21 , 20 

9271 PRINT "YOU'RE IN THE CRYSTAL PALACE, THE" 

9272 PRINT "HALLS RESONATE WITH" 

9273 PRINT "AWESOOE HUSIC." 
9280 DATA 28,-2,60,221,50,14,19 
9287 GO TO 8400 

9290 DATA 29,2,42,2, 13,1,1 

9291 PRINT "YOU'RE AT THE TOP OF A GIANT STALACTITE." 

9292 PRINT "YOU COULD SLIDE DOWN, BUT YOU COULDN'T" 

9293 PRINT "CLIMB BACK UP." 
9297 GO TO 8400 

9300 DATA 30,34,34,2,1,4,2 

9301 PRINT "YOU'RE IN A LITTLE GROTTO. THERE IS A" 

9302 PRINT "BOOK HERE CALLED JANE'S FIGHTING SHIPS," 

9303 PRINT "DATED 1763." 
9307 GO TO 8400 

9310 DATA 31, 14,14,2 3,2,1,2 

9311 PRINT "YOU'RE IN THE GUILLOTINE ROOH. A SHARP" 

9312 PRINT "ROCK BALANCES PRECARIOUSLY ON THE" 

9313 PRINT "LEDGE ABOVE YOU." 
9317 GO TO 8400 

9320 DATA 32,-2,101,516,0,0,0 

9321 PRINT "YOU'RE IN A CHUTE, SCRAMBLING DOWN THE" 

9322 PRINT "ROCKS! NO WAY TO STOP! HANG ON!" 

9323 PRINT 
9327 GO TO 8400 

9330 DATA 33,2,1,2,1,116,3 

9331 PRINT "THE TIGHT TUNNEL TURNS A CORNER." 

9332 GO TO 8400 

9340 DATA 34,1,35,2,1,30,30 

9341 PRINT "YOU'RE IN A LITTLE TWISTY HAZE" 
9347 GO TO 8400 

9350 DATA 35,2,1,2,37,34,36 

9351 PRIST "YOU'RE IN A LITTLE TWISTING MAZE" 
9357 GO TO 8400 

9360 DATA 36,35,2,1,37,34,12 

9361 PRINT "YOU'RE IN A TWISTING LITTLE MAZE" 
9367 GO TO 8400 

9370 DATA 37,2,1,35,2,13,2 

9371 PBINT "YOU'RE IN A TWISTY LITTLE MAZE" 
9377 GO TO 8400 

9380 DATA 38,2,21,2,116,1,2 

9381 PRINT "YOU'RE IN A PREHISTORIC DWELLING. ON" 

9382 PRINT "THE WALL ARE DRAWINGS OF BISON DONE IN" 

9383 PRINT "RED CLAY. THE FLOOR IS STREWN WITH" 

9384 PRINT "DONES, THE REMAINS OF ANCIENT RITUALS." 

9385 PRINT "A SMALL TUNNEL GOES THROUGH THE FLOOR." 
9387 GO TO 8400 

9390 DATA 39,2,40,2,32,21,26 

9391 PRINT "YOU'RE IN A BLACK HOLE. THE" 

9392 PRINT "FORCE OF GRAVITY IS OVERWHELMING." 
9397 GO TO* 8400 

9400 DATA 40,40,40,2,2,40,41 

9401 PRINT "YOU'RE IN THE LABYHINTHE" 
9407 GO TO 8400 

9410 DATA 41,40,40,40,2,40,39 

9411 PRINT "YOU'RE IN THE LABYRINTHE" 

9412 PRINT "IT'S VERY DARK IN HERE." 
9417 GO TO 8400 

9420 DATA 42,28,28,28,28,28,28 

9421 PRINT "YOU'RE IN THE ASHRAM. INCENSE IS HEAVY" 

9422 PRINT "IN THE AIR, AND ALL DIRECTIONS" 

9423 PRINT "SEEM THE SAME." 
9427 GO TO 8400 

9430 REM NO NODES SET UP FOR THESE VALUES. IF YOU GET HERE, 

9440 REM YOU HAVE A MISTAKE IN A DATA STATEHENT. 

9450 REM 

9460 REM 

9470 REM 

9480 REM 

9490 REM 

9500 REM 

9510 REM 

9520 REM 

9530 REM 

9999 END 



Text continued from page 1 79: 
modifications on most machines which have 
enough memory to hold it. The number of 
locations has been increased slightly, and a 
few surprises have been added to make it 
more interesting. The original Quest was 
made for seventh-graders at Peninsula 
School, who were doing a map making unit. 
For this reason, most of the connections 
between locations work as if they were in 
physical three-dimensional space, although 
there is no requirement for this in the pro- 
gram. 

The program and the description of the 
cave are well documented by the comments 
in the code, so I won't go into great detail 
here. Besides its description, each location 
has a set of six numbers which give the 
next location to move to, in case of a 
move NORTH, EAST, UP, DOWN, WEST, 
or SOUTH. Special events, such as the 
pirate and the treasure, are done in the 
program rather than in the descriptions. 
There is a provision in the connection 
codes for an immediate return to the 
location you came from, which is used, 
for instance, at the location called "YOU 
CANT GO IN THAT DIRECTION." There 
is also provision for different connections 
chosen according to a random number, and 
for different connections depending on 
whether or not you are carrying the treas- 
ure, and whether or not the pirate has 
found you. 

A Final Statement 

It is possible to get through the cave by 
reading the program and decoding the data 
which defines the connections. If you do 
that, you will deprive yourself of the pleas- 
ure of finally finding your way through. It is 
also possible to "help" a friend by telling 
him how to get through. I don't think the 
easy pleasure of knowing how to get through 
can equal the joy of discovering the way, or 
the satisfaction of having discovered it, or 
the excitement of being on the way to dis- 
covering it. I also don't think that anyone 
who merely plays Quest can have as much 
fun as I have had in writing it, and watching 
other people use it. 

Acknowledgments 

My thanks go to Larry Tesler and Phyllis 
Cole, of the Peninsula School Computer 
Project, for their encouragement and tech- 
nical help, and to Mary Artibee for her help 
with this article. A tape of the PET version 
of Quest is available for $9.95 from the 
Peninsula School Computing Project, Menlo 
Park CA 94025." 



1 86 July 1 979 © BYTE Publications Inc 



Beck Reviews 



Techniques of Program Structure and 
Design 

by Edward Yourdon 
Prentice-Hall, 1975 
364 pages hardbound 
$19.50 

As you might surmise from the title, 
this textbook promotes structured pro- 
gramming, design, and testing concepts. 
Although familiarity with current hard- 
ware, systems, or software doctrines is 
not a prerequisite for reader comprehen- 
sion, the greatest benefits will accrue to 
those individuals active in software devel- 
opment or maintenance efforts. 

The book's tone and structure are es- 
tablished in the first chapter with a dis- 
cussion of the seven most desirable qual- 
ities of a good program. The program 
should work well and according to speci- 
fication; the simplicity of design should 
reduce development, testing, and main- 
tenance costs; and the program's inherent 
flexibility should allow change through 
expansion, modification, or upgrade. 

Of perhaps more importance to the 
average programmer is the analysis of ten 
practices which commonly exacerbate the 
debugging problem. Also included are sug- 
gestions for easing the difficulties of main- 
taining or modifying existing programs 
for the maintenance programmer. 

The next chapter deals with top-down 
design, coding, and testing. Top-down 
design is the process by which the pro- 
grammer identifies the major functions of 
a programming problem, and organizes the 
solution in such a manner that it is recog- 
nizable to both the computer and the 
maintenance programmer. 

Mr Yourdon provides five suggestions for 
successfully applying this concept. The 
benefits and disadvantages of flowcharts 
figure prominently in the arguments for and 
against the concept of writing code con- 
currently with designing the top-down struc- 
ture. An offshoot of this discussion of top- 
down coding concerns how best to display 
modular code: the horizontal and vertical 
approaches have unique merits which 
should be considered prior to presenting 
the code. 

Following the presentation of the nature 
and advantages of top-down testing, the 



author deals with practical variations of the 
pure approach to top-down design, coding, 
and testing. These modifications are fre- 
quently the result of organizational problems 
and management compromises. Two of the 
most successful variations discussed are the 
IBM developed structured walkthrough 
technique and IBM's highly innovative chief 
programmer team concept. 

In Chapter Three, the reader is intro- 
duced to the concept of modular program- 
ming (precursor to the now popular struc- 
tured programming technique). After a 
discussion of the characteristics of a pro- 
gramming module, the pros and cons of 
modularity are detailed. Techniques for 
achieving modular programs are of particular 
interest, especially those sections dealing 
with decision tables, separate I/O (input/ 
output) functions, and use of symbolic 
parameters. The chapter concludes with the 
closely related subject of general purpose 
subroutines. 

After a review of the history and back- 
ground of the structured programming 
movement, both the theoretical and prac- 
tical aspects of the concept are detailed in 
Chapter Four. While analyzing structured 
programming's objectives and motivations 
(in terms of testing, productivity, clarity, 
and efficiency), Mr Yourdon highlights 



At last... 
the mechanical interface! 

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




User list 

$39500 



§p^ The all new 

I/O Pakfrom 

Rochester Data, 

Inc. interfaces the keyboard 

of any commercially available 

electric typewriter with any 

computer. The result: low cost, high 

quality hard copy. 

Write today for more information. 



Ii icorporateel 
3100 Monroe Avenue, Rochester, New York 14618 



Circle 326 on inquiry card. 



July 1979 © BYTE Publications Inc 187 



the people who know more about 
| acoustic couplers know why 
you should buy Datec. 






The heavy-duty coupler. . . Datec did it. 



There is a reason so many Datec customers are communication line technicians, 
computer engineers and data processing experts. They recommend Datec for the 
simple, solid state, nigged design that has proven to be more reliable than bigger 
name couplers. 

Acoustic couplers are the work horses of a data communications system. They 
should work eveiy time, every day, so that you can install them and then forget them. 

No wonder communication line technicians have nicknamed the Datec 32 the 
"heavy duty" acoustic coupler. 




CRYSTAL 
COMTROL 

Ciystal controlled bans- 
milter and receiver insures 
long-teim stability and fxM 
reliability, even in the ^"C 
most unfriendly opeiating % 
environment. 



BIG EARS 

Rugged, tight-fitting rubber cups 
effectively seal out vibration 
and room noise. They aren't beautiful, 
but they work. 

BtlRMED-IN 

Datec may be the only company that torture- 
tests every PC board by buming-in each one 
for 168 hours at elevated temperatures. 



\ 



-^■■■■. 



This process reduces the 
probability of field failure 
below 2% for the first 1000 
hours of operation. We find 
the faulty one before 
we ship it. 



TALKS WHEN IT RAINS 



• 




Datec couplers are 
highly sensitive, 
operating at 
received levels 
of -55dBm or 
lower. Our sen- 
sitive receiver 
can pull weak 
signals out of the "mud" 
of leaky, rain-soaked 
telephone cables. 



GUARANTEED 

Remove a few screws and 

the PC board pops out. 

It couldn't be simpler. 
■ Any problems incurred 
ft'" through normal use, and 
• it's replaced or repaired 

free with no questions asked 

during the first year. 



READILY AVAILABLE 

Datec 300 bps acoustic 
couplers are readily 
available in both originate 
and originate/answer models. 
All Datec equipment 
including the new Datec 212 
is Bell compatible. 
OEM inquiries are welcome. 



DATEC INC., PO BOX 839, CHAPEL HILL, NC 27514, (919) 967-5605 



DATEC DID IT! Quality— designed in, burned-in, and guaranteed. 

Circle 98 on inquiry card. 



significant differences between structured 
and modular approaches to program design. 
Although structured programming is becom- 
ing the standard method of achieving modu- 
lar programs, the concept involves more than 
the simple conjunction of "GOTO-less" 
programming with the process, loop, and 
binary-decision constructs. As with most 
evolving techniques, there are tradeoffs in 
terms of efficiency, convenience, hardware 
and software requirements which concern 
many of those involved with computer 
science. The structured technique is not a 
panacea for programming ills. 

Mr Yourdon has found that imposing 
structure upon poorly designed, unstruc- 
tured programs usually results in poorly 
designed, GOTO-less, structured programs 
that are almost as difficult to understand 
and debug as the originals. As a result, he 
recommends that experienced programmers 
rework their previously unstructured code 
only as a means of bringing their thought 
processes into compliance with current 
top-down design concepts. There are three 
common techniques for restructuring this 
code, each with its own strengths and weak- 
nesses: the duplication-of-coding technique 
which is recommended for programs with 
network or lattice structures; the state- 
variable technique which is helpful to the 
maintenance programmer and can be applied 
to very complex processing programs; and 
the Boolean flag technique which is ap- 
plicable to loop-oriented programs. 

The chapter concludes with a discussion 
of the applicability of structured program- 
ming to the currently available high level 
programming, systems implementation, and 
assembly languages. ALGOL, PL/I, COBOL, 
FORTRAN and assembly languages are 
covered quite extensively; PL/S, BLISS, PL/ 
360, Burroughs B5500 ESPOL, Project MAC 
EPL, and GE-645 MULTICS languages are 
discussed in less detail. I noted with interest 
the author's claim that FORTRAN and as- 
sembly languages do not provide the neces- 
sary facilities for structured programming. 

In Chapter Five, programming method, 
system software, and system hardware figure 
prominently in the discussion of the ele- 
ments of programming style which dra- 
matically affect the coding and debugging 
process. Of particular note are the questions 
concerning how to best reduce program 
complexity so as to limit the introduction 
of errors, and how to construct programs 
so that someone other than the original 
programmer can read and comprehend the 
logic flow. 

The focal point of the next chapter is 
defensive programming — the practice of 
writing programs in such a way that the 



1 88 July 1 979 © BYTE Publications Inc 



inevitable bugs are readily noticeable to both 
programmer and user. Effective arguments 
are presented against the most common ob- 
jections to this antibugging technique. Fol- 
lowing the presentation of a comprehensive 
list of aspects of a computer program which 
require checking, the author summarizes 
nine useful error-checking techniques. Al- 
though many of the antibugging techniques 
belong more properly in the realm of sys- 
tem, rather than program design, the dis- 
cussion is valid at both the programming 
and coding levels. 

Testing is reviewed in Chapter Seven. The 
magnitude of this effort can reach staggering 
proportions on projects which utilize many 
programmers, large numbers of manhours, 
and vast segments of code. Current module, 
system, and acceptance testing techniques 
expose most common types of error. These 
errors are divided into eight categories: logic, 
documentation, overload, timing, through- 
put and capacity, fallback and recovery, 
system hardware/software, and standards 
errors. 

It is Mr Yourdon's contention that a pro- 
gram is economical to test and debug only if 
the team programming concept is used in 
combination with an antibugging program- 
ming style and an unambiguous, structured 
language. Also, because programmers use 
slow, tedious methods and are psycholog- 
ically inclined to justify their output as cor- 
rect, he advocates the removal of the human 
element from the testing process. Ideally, 
the testing process would be fully auto- 
mated: the automatic test harness would 
collect the test input from the automatic 
test data generator, pass it to the program 
being tested, and use an automatic output 
checker to list the discrepancies. Upon pro- 
gram execution, the automatic testing moni- 
tor would print a report showing the por- 
tions of the program exercised by the test 
data. The program would be subjected to a 
thorough retesting if it is further modified. 
The chapter concludes with a review of 
some of the experimental techniques cur- 
rently being evaluated for their abilities to 
increase program reliability. 

Once the existence of a bug has been 
established, it is time to employ the tech- 
nique of finding and correcting the error, 
known as debugging. The procedure is more 
art than science, and in Chapter Eight the 
reader is provided with both an explanation 
for 26 common bugs and 1 1 detailed sug- 
gestions to assist in the formulation of a 
workable debugging strategy. A terminal- 
oriented debugging system greatly reduces 
the frustration of using memory dumps and 
program traces. The system is called DDT or 
Dynamic Debugging Technique. After de- 



scribing the general features of the process, 
the author expands his explanation on the 
currently available stand alone and sophis- 
ticated timesharing and realtime packages. 
The chapter concludes with the implementa- 
tion of a simple version of DDT. 

The four programming exercises in the 
appendices illustrate the principles of pro- 
gram design and structured programming, 
and allow the reader to apply the techniques 
presented in the book to real problems. The 
two management system problems are quite 
complex and can best be attacked by a team 
of three to four programmers. The master 
file update and tic-tac-toe problems are 
more simple and are suitable for individual 
programmers. 

This highly informative book is packed 
with information for both the commercial 
and personal aspects of programming. The 
book's heavy concentration on the general 
philosophy and techniques of good pro- 
gramming deserves the highest accolades. 
Techniques of Program Structure and Design 
should be a part of every dedicated com- 
puter user's library. 

Lee C Matthews 

9659 B Jefferson 

Ellsworth AFB, SD 57706- 



AT LAST! 

The High Density Color Graphics 
You've Been Waiting For! 



■!f!miT;'!vrn-.t!r(r:fnmMWlflffW1«l 




• Plugs directly into your S-100 bus 

• Eight different colors 

• Eleven software selectable modes 

• Display densities ranging from 64X32 to 256X1 92 Blocks 

• 6K bytes of on board screen refresh memory 

• Bank select 

• Board protect 

• Composite video 

• Software graphics driver routines for the 8080/Z80 

Introductory Offer: 

BCG-800K (Kit) S285.00 

BCG-800A (Assembled) $385.00 

BCG-800B (Bare board w/S68047) 5 45.00 

VISA & MASTER CHARGE • Calif. Res. Add 6% Sales Tax 
Call or Write for Details: 

> ^^ v Biotech Electronics 

/MSf^ P.O. Box 485 

(SKIfB) Ben Lomond, CA 95005 

^ W/ (408) 338-2686 



Circle 31 on inquiry card. 



July 1979 © BYTE Publications Inc 1 89 



Beck Review 



Top-down Structured 

Programming 

Techniques 

by Clement L McGowan 

and John R Kelly 

Mason/Charter Publishers 

Brown University, 

New York J 975 

288 pages hardback 

$15.95 



This book provides a good introduction to 
the top-down structured programming con- 
cept. This concept requires, as a first step, 
that a problem's functional specifications be 
determined. The problem is then refined un- 
til that programming code directly expresses 
the resulting subfunctions, or modules. The 
authors believe that programmers who use 
the top-down structured methodology are 
more productive, and consistently produce a 
reliable product which works despite con- 
tinuous testing or future modification. The 
book also details recent programming ad- 
vances in the large system, multiprocessing 
environment. 

Chapter 1 presents an overview of struc- 
tured programming with an emphasis on the 
development of a language-independent meth- 
odology whose principal goal is program 
reliability. Of special interest is the sec- 
tion on the importance of developmental 
and modification software (in terms of time, 
cost, and reliability). Following a preview of 
the remaining chapters, the authors discuss 
their reason for illustrating programming 
concepts with code fragments in the PL/I 
language. 

Chapter 2 emphasizes program reliability. 
The data processing industry spends a great 



APPLE • CENTRONICS • TEXAS INSTRUMENTS 
HORIZON • VECTOR GRAPHIC • CROMENCO 

• RADIO SHACK • HP^r \ % £SQPO LIS • SOROC 

• OSI • SWTP • *^[ ^<BM • NEC 
PET -DIABLO^ "J |\(AZELTINE 

WANG ' 




WE'VE GOT YOU COVERED! 

Cover Craft Dust Covers protect your hard- 
ware and your investment. Save mainte- 
nance, downtime and look great. Our Dust 
Covers come in hundreds of sizes each cus- 
tom designed to fit a particular model of termi- 
nal CPU, Line Printer, Floppy Disk. They're a 
proven way to help eliminate dust and dirt 
accumulation, improve system reliability and 
save many times the cost in reduced mainte- 
nance and downtime. What's more, your 
satisfaction is 100% guaranteed. 

Cover Craft Dust Covers are available from 
your local computer retailer a * Q c *o Oi; 
or contact Cover Craft. vO.rO - ^V.tO 

Can you afford to wait any longer? 




COVER CRAFT 

P.O. Box 555, Amherst, NH 03031 
Telephone (603) 673-8592 



amount of time and money to insure that 
programs are developed with as few flaws as 
possible. The current doctrine of testing pro- 
grams for reliability is gradually giving way 
to a more efficient method of checking for 
correctness. Finally, the DO-WHILE con- 
struct is introduced by emphasizing the 
importance of properly initializing condi- 
tional loops, and explicit guidelines for pro- 
gramming conditional iterations are given. 

In the next chapter, the SEQUENCE and 
IF-THEN-ELSE programming tools are dis- 
cussed. Correctness questions, which the 
programmer should pose while using these 
constructs, are used as an aid in determining 
the functional specifications of the program. 
Program specifications must be determined 
prior to commencing the actual coding 
process because the authors consider in- 
accurate specifications to be the most 
important source of software errors. The 
ITERATIVE-DO, SELECT-CASE, REPEAT- 
UNTIL, and LOOP-EXITIF-ENDLOOP con- 
structs are formed by combining the basic 
figures. 

Unfortunately, the authors elect to leave 
the related correctness questions as an 
exercise for the reader, feeling that ". . .the 
reader is now sufficiently aware of the cor- 
rectness considerations to properly examine 
his use of the nonbasic figure." Although 
the authors admit to writing for the com- 
puter professional, rather than the mathe- 
matician or newcomer to the computer field, 
l feel they did their readers a disservice. 
These correctness questions are vital (with- 
out them, the book suffers from a lack of 
comprehensiveness which limits its useful- 
ness to both the salaried professional and 
computer hobbyist). Chapter 3 concludes 
with an interesting section on how to 
impose structure on programs written in 
FORTRAN and COBOL. The examples are 
illuminating. 

The advantages of the top-down struc- 
tured approach to program design, coding, 
and integration are discussed in Chapter 4. 
Top-down segmented implementation is 
compared (somewhat one-sidedly) with the 
more standard bottom-up strategy. Among 
the advantages discussed is the following: 
the effectiveness of top-down structured 
programming in eliminating construct errors 
(missing paths, inappropriate path selection, 
and inappropriate action under a given 
condition). The top-down method concen- 
trates on the more time-consuming and error 
prone aspects of programming during the 
initial, rather than the final stages of devel- 
opment. A structured program has the 
advantage of becoming its own principal 
documentation. And the final advantage, 
especially associated with large systems pro- 



1 90 July 1 979 © BYTE Publications Inc 



Circle 79 on inquiry card. 



grams, is that integration and debugging are 
easier to implement under the top-down 
strategy. The programming technique of 
recursion is introduced in the concluding 
sections of the chapter. 

The remaining two chapters and two 
appendices are of less interest to the com- 
puter hobbyist. Chapter 5 examines IBM's 
innovative "chief programmer team" organ- 
ization and its managerial approach to the 
operation of software projects. Chapter 6 
provides extended examples of the top-down 
structured approach to program design, with 
the primary focus on parallel processes 
(whereby several computations proceed 
either simultaneously on separate processors, 
or by multiprogramming on a single pro- 
cessor) and multiprocessing resource man- 
agement. The chapter concludes with the 
specification and top-down design in pseudo- 
code, of a hypothetical multiprogrammed, 
multiprocessing operating system. The 
REPEAT-UNTIL, SELECT-CASE, and 
LOOP-EX ITIF-ENDLOOP structured mod- 
ules are implemented in PL/I in Appendix A. 
In Appendix B, six of the seven structured 
programming constructs are specified in 
360/370 assembly language macros. 



As a result of the omission mentioned 
earlier, I have qualms about recommending 
this book as a mandatory reference resource. 
If you are interested in using structured 
techniques to increase your programming 
productivity and reliability, I would recom- 
mend that you get a copy of the book 
through a nearby college or computer club 
library and spend a few hours reading the 
material. I found the authors' style lucid, 
although on occasion I had difficulty follow- 
ing some of their examples due to my 
unfamiliarity with the PL/I language. 

Overall, the book successfully presents 
the authors' contention that structured cod- 
ing, top-down design, formal and informal 
proofs of correctness, chief programmer 
team organizations, and code reading result 
in reliable, flexible software. I fully concur 
with their belief that ". . .top-down struc- 
tured programming is one way to make pro- 
gramming the enjoyable activity it should 
be." 



Lee C Matthews 

9659B Jefferson 

Ellsworth AFB SD 57706" 



A new star on the Horizon 



JUfe'< 



CSUB (Common SUBroutines) 

Developed for North Star DOS and BASIC by Micro Mike's, Incorporated 

CSUB is a multi-dimensional programming package. Among benefits CSUB offers both user and programmer are: 



TIMESHARING 

for the Horizon — 

The only true interrupt-driven, bank 

switching timesharing software available 

for the Horizon. 

Supports as many as four 5!\j" drives, 
four 8" drives, and as many as four 
CRTs with 16 to 48 K RAM per CRT. 
Interrupts at 26 ms. Spooler and file 
locking to be supported in the near 
future. 

Specify single (Release 4) or double 
density (Release 5). 

Requires additional memory in computer. 

A machine language program 

on 5Y' disk $49.95 



Complete business application software 
available. Write for additional 

information. Dealer discounts available. 



1. Non-destructive cursor positioning 

2. Automatic display of error messages or bulletins 

3. Strict control of all data passing between CRT and 
CPU, including: 

a. Complete parameter checking of all numeric data 
input 

b. Complete formatting of all numeric and 
alphanumeric data displayed or input 

c. Automatic mask and data display 

d. Automatic date input and display (automatic display 
of slashes between month, day and year) 

e. Complete numeric control on single character 
alphanumeric inputs 

f. User's ability to "back up" to last logical input. 

4. Strict control of data passingbetweenexternal storage 
devices (i.e. disk drive)s)) and CPU, including: 

a. Automatic file OPENing and CLOSEing for most file 
accessing 

b. Sequential file accessing 

c. Random file accessing with automatic calculationsof 
file vectors 

d. Keyed file accessing with virtually no limits on 
number of keyfiles 

e. Automatic sorting of keyfiles. 



Micro Mike's,Incorporated 
PROGRAM LIBRARY 

A one-time fee of $500 (soon to be 
increased) buys for the purchaser 
continuous unlimited access to the 
programs, updates and revisions in the 
PROGRAM LIBRARY. 



CSUB disk and documentation package $49.95 

4SHARE(timesharingfor Horizon, Release4) . . $49.95 
5SHARE(timesharingforHorizon.Release5) . . $49.95 
D0SCHG4 (8" disk drive interface patch to 

Release4NorthStarDOSandBASIC) $49.95 

DOSCHG5 (8" disk drive interface patch to 

Release5 North Star DOSand BASIC) $49.95 

Makinq technology uncomplicated 

. . . for People 
Micro Mike'sjncorporated 

905 South Buchanan 

Amarillo, Texas 79101 

806-372-3633 



Circle 204 on inquiry card. 



July 1 979 © BYTE Publications Inc 191 



Programming Ouickies 



BASIC Bit Twiddling 



Ralph Owens 
POB 202 
Enterprise KS 67441 



Nybble functions 



A contains the value of the byte. 
N contains the value of the nybble. 



FNU(N)=INT(A/16) 
FNL(N) = A-16*FNU(N) 



Reads upper nybble. 
Reads lower nybble. 



The following are several functions 
which allow the user to manipulate in- 
dividual bits and nybbles (groups of four 
bits) using BASIC. I like to use these 
functions with the PEEK and POKE com- 
mands. 



FNA(N) = 16*N + FNL(N) 
FNB(N)=FNU(N) + N 

Bit functions 



FNQ(N)=INT(A/2!N)-2*INT(A/2t(N + 1)) 
FNR(N) = A-FNQ(N)*2!N 
FNS(N) = A + (1-FNQ(N))*2tN 
FNT(N)r=FNR(N) + FNS(N)-A 



Sets upper nybble to value of N. 
Sets lower nybble to value of N. 

A contains the value of the byte. 
N (0 thru 7) is number of desired bit. 

Reads Nth bit. 
Resets Nth bit to zero. 
Sets Nth bit to one. 
Toggles the Nth bit. 



. 



Solve Problems By Simulation, 



wJJSIW 



Programming 

TbtiKftfaUM 



T 

Simulation 



wW: Utile*. Ed Hot 



with simulations 
of many con- 
cepts, including 

• wave motion 

• flying objects 

• artificial 
intelligence 

• electronic 
circuits 

• and robot 
motion! 

SIMULATION is a collection of 

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

plus exciting new material on the subject. 

SIMULATION is the second volume in the Programming Techniques series 

on the art and science of computer programming from BYTE BOOKS. 

Editor Blaise w. Uf fields 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.00 



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



9 wlBlTifv^ 



-HOOKS OF INTEREST TO COMPUTER PEOPLE" 

70 Main street, Peterborough, New Hampshire 03458 



Here are two examples 

of the use of these functions: 



1000 


REM FIND LOWER NYBBLE VALUE 


1010 


A=PEEK(16422) 


1020 


V= FNL(A) 


1030 


PRINT "VALUE OF LOWER NYBBLE 




IS"; V 


9999 


END 


2010 


A = PEEK{16422) 


20.20 


REM SET EIGHTH BIT OF DECIMAL 


2030 


REM LOCATION 16422 TO ONE 


2050 


A= FNS(8) 


2060 


POKE 16422, A 


9999 


END. 






1 92 July 1 979 © BYTE Publications Inc 



Circle 36 on inquiry card. 



World Power Systems: A Report 

This spring, World Power Systems Inc of Tucson AZ began "business" with a promotion campaign, ordering goods from sup- 
pliers, and soliciting orders and money from customers. It is now known that only a few initial orders were filled (apparently to 
establish credibility), and that money accompanying later orders was simply stashed away. 

Because of this, our industry has received a black eye, and many of us, BYTE included, are apparently out of substantial 
amounts of money. Acting on a tip received April 25, the Pima County Attorney's Office promptly investigated and, within a 
few days, had sufficient evidence of illegal activities to obtain warrants for the arrest of those responsible for the operation. An 
arrest was made, goods were seized and impounded, and others, who were out of Tucson at the time,, are being sought by the 
authorities. 

The question that all of us must be asking is "How can we prevent this from happening again?" 

It would be nice if there were a simple answer. The main things consumers can do are (1) don't send money unless you have 
reason for confidence in the company and (2) promptly report (eg: to postal authorities) anything suspicious. 

What neither consumers nor the media can afford to do, however, is to establish a presumption of guilt. Just because a com- 
pany is new does not mean that the media can refuse advertising or that consumers should avoid the company's products. Such 
actions would only lead to stagnation in the industry and possible claims of unfair competition and/or antitrust violations. In- 
deed, since many of the biggest companies in the industry began in founders' homes, such a policy might have retarded the 
development of the personal computer industry by several years. 

BYTE has had, and continues to have, stringent standards on the advertising it accepts. Advertisements have been rejected for 
such reasons as being tasteless, misleading, or having originated from unreliable companies. 

As to reliability, we have to depend in part on readers' input. Financial reports on advertisers are, unfortunately, of limited 
value. Some financially unstable companies are totally honest, while others, with a superficially impressive report, may turn out 
to be fraudulent. 

At BYTE, any reader's complaints about advertisers are sent to the advertiser along with our request that BYTE be notified of 
what action is being taken. Since there are always two sides to every argument, having a single disgruntled customer would be in- 
adequate reason for sanctions against the advertiser. A series of complaints without adequate response by the company, 
however, is cause for BYTE refusing to run further advertisements by that company. 

In summary, there is no absolute protection in any industry against well-planned and well-executed frauds. Prompt com- 
munication between (1) consumers, (2) reputable companies, (3) the media, and (4) the authorities can nip poorly planned frauds 
in the bud and limit the damage that is done. 

Chris Morgan 

BYTE Executive Editor 



The 



ftlflfl £uh) 

%0 l\# \# : ELECTRONICS 

An S-100 Bus Adapter/ Motherboard 

fortheTRS-80 

plus a whole lot more!!! 




a$ss 




• S-100 BUS INTERFACE 

• 6 SLOT MOTHERBOARD 



The 8100 allows a Radio Shack TRS-80 computer to be 
interfaced to the popular S-100 Bus for memory expansion 
and extended I/O capabilities. For example, you can now 
easily add more memory, floppy disc systems, PROM 
Iwards, printer interfaces, multi-purpose I/O boards, AC 
device controllers, anda wholehost of othervarii?d periph- 
erals. 

The 8100 has its own built-in 6 slot motherboard which 
includes our unique card guide system which keeps the 
boards in their places. 

The 8100 has support circuitry and ckets for eight 
16K dynamic RAM chips allowing you to expand the mem- 
ory ofyourTRS-80 by HiK without havingto 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 purch;oi;d on expansion memory kit for TRS-80 
youcouldbe left with eight 4K RAMchipsand nowhere to 
put them! Well, they can goin the RAM sockeLs instead! 
That's right, you can use either 4K or 16K chips and ad- 
dress them anywhere you like. 

Th.;810U ha t) ma serial interface who's 

features include: RS'.l!:ia and 20ma current loop interface. 
software programmable baud rat* from DC to 5GK baud, 
software programmable modem control linos, on board 
DB-25 connector and much more 

The 8100 also has an 8 bit parallel input jxirt and 
an 8 bit parallel output port. Both ure latched, have both 
positive and negative strobe inputs and outpuU And have 
plenty ofdrive capnhility. 



PRICES START AS LOW AS $185* (s-100 bus interface only) 



fiUHl 

! ELECTRONICS 



1429 Maple St. 

San Mateo, CA 

94402 

(415) 573-7359 



CALL OR WRITE FOR COMPLETE PRICING 
INFORMATION AND MORE DETAILS 



DEALER INQUIRIES INVITED 

♦Extra S-100 connectors, RAM support. 
I/O circuitiyoptional. 
USA DOMESTIC PRICE ONLY 



fiug ' MINI-8100 



! ELECTRONICS AN S" 100 BUS 

■ tLtllKUNIU ADA p TER/MOT HERBOARD 



MINI-SIZE! 
MINI-PRICE! 




but MAXI-PERFORMANCE! 



HUH Electronics' 8I00 is (he established 
leader in S-I00/TRS-S0 interfaces, running re- 
liably since November I978 and giving you 
the most features for your dollar. But some 
folks don't need all the MIOO's versatility or 
want something more compact. 



So we created the MINI-8100. The M1NI- 
8100 has (he 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 of S-100 Bus 
products to the TRS-80 owner. 

For those of you who already own an S-KX) 
mainframe or motherboard, the MINI-8100 
may be purchased without the built-in 
motherboard, (M1N1-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 
MIN1-8100S KIT 
M1N1-8100S ASM 



huh! 

I ELECTRONICS 



includes all parts and one S-100 connector 
assembled and tested, includes four S-100 connectors 
S-100 sized board, plugs into mainframe 
same as above, but assembled and tested 



- $115 

-$155 
-$ 95 

- $125 



1429 Maple St. 

San Mateo, CA 

94402 

(415) 573-7359 



ORDERING INFO: The MINI-8100 is availa- 
ble from leading computer dealers or factory 
direct. Please include $4 for shipping and 
handling. CA residents include 6% sales tax. 
We accept VISA or Mastercharge or we can 
ship COD. 

USA DOMESTIC PRICES ONLY. 



•TRS-80 is a Radio Shack product. 



dealer inquiries invited 



Circle 169 on inquiry card. 



Circle 172 on inquiry card. 



July 1 979 © BYTE Publications Inc 193 



Photo Essay: Physical 
Hardware of a New 
Computer Backplane 



by Carl Helmers 



As noted in a recent editorial, I am in the process of designing and 
building a new computer system based on the 6809 processor. It is my 
intention, as this design evolves, to provide a fairly complete set of 
plans in the form of an irregular series of articles in BYTE. The building 
and developing of the software systems of homebrew computers is, 
after all, the basis from which personal computing has developed. This 
series of articles will document the development of an up-to-date 
design that utilizes contemporary components which were 
unavailable to me when I first started building crude and imperfect 
homebrew computers in 1974. 

The regularity of this documentation will be dependent upon the 
time that is available to engineer, build and test the component parts. 
I will try to provide an update on the progress of the project with each 
future issue of BYTE. From time to time there will be gaps in the series 
since, like all people, I have only 24 hours each day in which to work. 
Having issued this caveat concerning the irregularity of the informa- 
tion, let us turn to the starting point of my documentation; a physical 
basis for a bus oriented homebrew computer. 

The following is documentation of a key part of any homebrew 
computer; its backplane. At this stage, the computer system is 
depicted in photographs 1 through 5, which I took while assembling 
the backplane on a recent evening. For the photographers among our 
readers, all these pictures were taken with a 35mm single lens reflex 
(SLR) camera, highly stopped down (f/32, f/22, depending on lens) to 
emphasize depth of field, and using lots of light (1200 W). 



Photo 1: This pile of parts represents the beginning of the project's physical hardware assembly. At left is a set of 
eight copper rods made from #12 gauge household electrical wire. After stripping the insulation, one end of the wire is 
clamped in my bench vise, and the other end is clamped in "Vise-Grip" pliers. Five uniform, careful rotations of the 
wire while holding tension suffice to make the rods as straight as those shown in the photo. This torsion 

straightening process gives amazing 
results. These rods will be the bus wires 
of the power and ground distribution. 

The matrix for assembly of the 
backplane is one Vector Electronic Co 
#3719^4 "P" pattern prototyping board. 
This board was chosen as standard for 
the new computer because it has a 0.1 
inch (.254 mm) square grid consistent 
with integrated circuit sockets, and an 
identical 0.1 inch spacing for the edge 
connector sockets. Thus, the same board 
style that will be used for the assembly of 
the computer modules can also be used 
for assembly of this motherboard. 

The final part that is going into the 
physical assembly of the backplane is a 
set of 6 edge connector sockets for the 
circuit modules. The sockets have 72 cir- 
cuit connections in two rows of 36 pins. 




1 94 July 1 979 © BYTE Publications !nc 



Circle 89 on inquiry card. 



HOW TO BUY 
A BUSINESS 
COMPUTER 




WHEN TO BUY • WHEN NOT TO BUY m\ 

HOW TO CHOOSE CONSULTANTS«DATA 

GATHERING • PACKAGED VS CUSTOM 

SOFTWARE • CONTRACTS • Fl N ANCI NG 

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

8V 2 x11 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% sa'es tax) 

NAME 

ADDRESS 

CITY/STATE/ZIP_ 

DCheck 
Card No. . 



DMasterCharge 



□ Visa 
Exp. Date 



FREE Catalog 

New 4-way relief from problems with 
minicomputer supplies and accessories. 



(& gnjrnac 



1. One-stop shopping. 

I nmac (formerly known as 
Minicomputer Accessories 
Corporation) has a catalog 
of over800 products. Every- 
thing from racks and line- 
printer paper to connectors 
and cables. Each designed 
to help keep your minicom- 
puter or word processing 
system up and running. 

2. Hassle-free ordering. 
I nmac lets you order by 

mail or phone. So keep our 

Summer 79 catalog close. It makesthose once-tough tasks 

like ordering magnetic media easy, fast and foolproof. 

3. Fast shipment of just the quantity you need. 
Inmac ships your order within 36 hours from centers in 

California and New Jersey. In a bind? Call us for many 
special services that insure you get your order to your 
installation within 24 hours. Call now and give us a chance, 

4. Field-proven quality means precision performance. 
Inmac guarantees every product in these 70 pages for 

at least 45 days. And even some for up to ten years. 




Circle 32 on inquiry card. 

SHOULD it be a Heathkit ? 

Whether you are considering the purchase of an 
additional peripheral or your first computer you 
should know more about Heath& computer products . 
Heathkit^ has a continuing commitment to selling 
well-documented computer kits and software. Are 
they for you? How can you find out? 

Read Buss: The Independent Newsletter of Heath 
Co, Computers , where information on new products 
is printed as it leaks out of Benton Harbor, not 
held back to suit a marketing plan. Buss is not 
a company-controlled publication, so it can deal 
with weaknesses of Heathkit^ products as well as 
their strengths. It features news of compatible 
hardware and software from other vendors. Every 
Buss issue has candid accounts of experiences of 
Heathkit^ owners. Results of their discoveries, 
which often include hardware modifications, save 
subscribers headaches — and money. That's proven 
by two years* experience. So Buss can guarantee 
a full refund any time you're not satisfied. 

Buss is mailed first class (by airmail outside 
North America). The 2*4— issue subscription gives 
you the choice of starting with the latest issue 
or with available back issues (about 8 are still 
in stock). Send $ 8.00 for 12 issues or $ 15.25 
for 24 (overseas, $10.00/12; $19.25/24 US funds) 
to : Buss 

325-B Pennsylvania Ave., S.E. 
Washington, DC 20003 

The Independent Newsletter 
of Heath Go. Computers 



Inmac 



Solve problems, send for 
your FREE I nmac catalog. 



130 S. Wolfe Rd. P.O. Box 9004 Sunnyvale, CA 94086 (408) 737-8700 

© 1979 International Minicomputer Accessories Corporation 



'TINY' PASCAL 
for TRS-80® 

& NORTH STAR® 

Now you too can have Pascal! The Chung/Yuen 'Tiny' Pascal has 
been specially designed for TRS-80 & North Star owners. The full 
power & elegance of 'Tiny' Pascal is at your command. Programs 
written in 'Tiny' Pascal run at least 4 times faster than the same 
program in BASIC! 'Tiny' Pascal is also a great way to learn 
Pascal Programming, & fun too. 

The minimum system requirements are: Level II, 16K for TRS-80, 
& 24K for North Star (specify single or double density). 

SOURCE TOO! 
But most important you also get source to 'Tiny' Pascal written 
in Pascal with each purchase! You can even compile the com- 
piler! (Requires 36K for North Star systems, & 32K, Level II for 
TRS-80). You can customize your own version, or just use it the 
way it is. 

'Tiny' Pascal is a subset of Standard Pascal & includes: 
RECURSIVE PROCEDURE/FUNCTION, IF-THEN-ELSE, 
REPEAT/UNTIL, 'PEEK & POKE', WHILE, CASE, & MORE! 
(Plus full graphics for TRS-80 as well) 
Also you can save & load programs. 
You get all this & more, plus a user's manual for $40.00. 

available from: 



/upo/orr 



P.O. Box 1628 

Champaign, IL 61820 

[217)344-7596 

All orders pre-paid, Illinois residents add 5% sales tax 



Circle 223 on inquiry card. 



Circle 357 on inquiry card. 



BYTE July 1979 195 




Photo 2: The physical assembly of the 
backplane begins by noting the fact that 
a single #12 guage wire will fit quite nice- 
ly between a set of four pins on a 0.1 inch 
grid. Thus, if we insert all the sockets in 
the backplane board, we can drop one 
copper bus connection across four cor- 
responding pins of all six sockets. The 12 
gauge wire size for the buses is just 
slightly larger than the 0.06 inch spacing 
between the wire wrap socket pins of a 
0.1 inch grid. This fact causes the pins to 
spread just a bit, locking the sockets in 
place prior to soldering. In this photo we 
show eight bus wires occupying 32 pins 
of the backplane socket. 

Looking ahead to the design of my 
computer and basing my conclusion on 
previous experience, I will need a total of 

four power supply buses. A standard + 5 V is the main power supply, used by most of the digital integrated circuits. 
Ground is the common point for all power supplies. Two symmetrical supplies of —12 V and +12 V will be used by 
analog circuits. 

Noting that a symmetrical arrangement of the backplane prevents power supply destruction through inadvertent 
reversal of boards, two sets of four buses are used. As we will see later (photo 4), the innermost buses will become the 
basis for the ground distribution grid. 

With four power voltages occupying a total of 32 pins, the 72 pin sockets of the backplane have 40 uncommitted 
pins available for communications between boards. This is more than adequate for a good general purpose computer 
system based on an 8 bit microprocessor, such as the 6809 I will be using with this design. 



Photo 3: Assembly begins with the outermost bus, la ying it down in its niche in the pin forest of all six sockets. It is then soldered 
to each set of four pins, as depicted in this photo. I used a120W light-duty soldering gun for this operation, since the extremely high 
heat carrying capacity of the copper 
wires made my 25 W soldering iron im- vHHH 

possible to use. cl^ffi 

After each bus wire is soldered in ?S|2j 

place, the four pins at each socket are 
clipped off just above the copper wire 
and solder bead. This process is repeated 
for each of the eight bus wires assigned 
to the power voltages of the new com- 
puter. 

Care must be taken while soldering to 
avoid forming a bridge between adjacent 
buses. The last step in soldering a bus 
wire is incomplete in this photo: the wire 
is just resting on the four holes in the tab 
from the backplane's edge connector. 
When soldering this part, be extremely 
careful about forming bridges from one 
bus wire to the next. 




196 July 1979 © BYTE Publications Inc 



Photo 4: The completed backplane 
assembly includes a set of jumpers bridg- 
ing the symmetrically arranged power 
supply voltages. Six bus wire jumpers 
connect the inner ground buses across 
the socket area. Three heavy insulated 
stranded wire jumpers create an 
aesthetically pleasing, but electrically 
useless arch form at one end of the 
board. 

The bus wires in this photo of the 
assembly process have been soldered to 
the edge connector pins corresponding 
to power distribution voltages. Not 
shown at this stage is a set of bypass 
capacitors installed between the three 
voltages and ground. On each voltage, 
six 0.1 ijlF ceramic capacitors and one 
3.3 \lT tantalum electrolytic were in- 
stalled for local bypass of the power sup- 
ply voltages. 




Photo 5: No backplane idea is complete without a discussion of the physical support of the boards in the final 

assembly. Here we show the newly completed backplane together with six boards and a set of 1.375 inch [1% inch) spacers. 

Readers wishing to duplicate this board should learn from an imperfection I introduced. If the boards in this picture 

appear to be a little crooked, rest assured that this is true, and not caused by the wide angle lens. The actual center 

to center spacings I finally used (count 
the holes in photo 4 if you wish) were 1.4, 
1.5, 1.7, 1.4, and 1.5 inches! The spacing 
between backplane sockets should be 
1.4 inches, center to center. In my final 
assembly, I will have to use extra washers 
as spacers due to this flagrant indiscre- 
tion during initial assembly. 

Physically, this completes the mother- 
board and its power supply electrical 
connections. In part II of this description 
of the physical assembly of my new com- 
puter system we will complete the wiring 
of the backplane (by using a homebrew 
adaptation of a Vector "S\it-N-Wrap" 
tool to my electric eraser), wooden 
cabinetry which forms a base for the 
computer while hiding its power supply 
modules, and the final assembly of the 
computer system's basic hardware. ■ 




July 1979 © BYTE Publications Inc 197 



Mouse 



A Language for Microcomputers 



Peter Grogono 

73 Roxton Crescent 

Montreal West 

Quebec CANADA 

H4X 1C7 



Note: The examples of the 
Mouse language which ap- 
pear in the text of this 
article have been italicized 
for the sake of clarity. 
Examples of the language 
appearing on lines by 
themselves have not been 
italicized, however. 



This article describes Mouse, a computer 
programming language which can be imple- 
mented on most microcomputers. The word 
Mouse is not an acronym, merely an appro- 
priate description for something small and 
active. 

There are many available languages for 
microcomputers already, so the introduc- 
tion of a new language warrants some ex- 
planation. The justification for Mouse is 
that it incorporates many features of high 
level languages, yet it can be implemented 
without the resources needed by most high 
level languages. More specifically, Mouse 
programs demonstrate the use and imple- 
mentation of arrays, functions, procedures, 
nested control structures, local variables, 
recursion, and several methods of passing 
parameters from one procedure to another. 
Mouse also embodies some of the principles 
of structured programming, in that it uses 
nested, single entry control structures, and 
does not allow unrestricted jumps. None- 
theless, Mouse can be implemented on a 
minimal system consisting of a micropro- 
cessor, 4 K bytes of memory, and a terminal. 

All of these features cannot be incor- 
porated into a simple language without 
making some sacrifices. Identifiers in Mouse 
consist of a single letter, so that a symbol 
table is not required. Expressions are writ- 
ten in postfix notation, which is more 
easily interpreted by a computer than the 
conventional infix notation. Parameters are 
passed to subroutines as strings, eliminating 
the need for complex parameter transmis- 
sion mechanisms. Mouse programs are easier 
to write than to read, and it is possible to 
write Mouse programs that are very obscure. 
Although readability is a highly desirable 
feature of a programming language, a lan- 
guage cannot be condemned solely on the 
grounds that obscure programs can result: 
witness the popularity of APL. The extraor- 



dinary thing about Mouse is that so much 
can be achieved with such a small amount of 
implementation effort. 

Mouse is descended from an older pro- 
gramming language called Musys. In 1970 
I was working for Electronic Music Studios 
(London) Limited, the company which now 
manufactures the SYNTHI series of electronic 
music equipment. At that time the com- 
pany, under the direction of Peter Zinovieff, 
was exploring the possibilities of using mini- 
computers to control electronic music 
instruments. The studio had two DEC PDP- 
8 computers, but very little software. My 
job was to write software which would 
relieve composers of the tedious chore of 
entering musical compositions in the form 
of strings of octal numbers. Since the older 
PDP-8 was already connected to a variety of 
digitally controlled oscillators, filters, 
envelope shapers, and other musical equip- 
ment, we decided to use the newer and 
faster PDP-8 to do the language processing. 
Space was very limited: the PDP-8 had only 
4 K 12 bit words of memory, and a very 
restricted instruction set by comparison with 
today's microprocessors. 

The system that I designed for the studio 
enables composers to write their composi- 
tions in a high level language called Musys. 
The heart of Musys is a simple yet powerful 
macroprocessor. A Musys composition con- 
sists of a hierarchy of macroinstructions, in 
which the higher level macroinstructions 
determine the overall form of the composi- 
tion, and the low level macroinstructions 
specify details such as the pitch and duration 
of the individual sounds. The Musys inter- 
preter contained about 700 instructions. 
About 600 additional instructions were 
required for supporting software, including 
disk control. The system is described in 
reference 1. The idea of using a macro- 
processor as the basis for a minicomputer 



1 98 July 1979 © BYTE Publications Inc 



language occurred to me after I had read a 
paper by the late Christopher Strachey 
(reference 2). 

The remainder of this article consists of 
two main sections: the first describes the 
language Mouse; the second describes the 
implementation of a Mouse interpreter. 

Mouse User's Guide 

A Mouse program is a string of characters. 
Blanks may be inserted anywhere in the 
program, but they are ignored by the inter- 
preter, except in a few contexts which are 
defined below. The last two characters of 
a program are always $$. The interpreter 
starts executing at the first character of the 
program and processes one character at a 
time until it encounters the character $, at 
which point it stops. This processing 
sequence is broken only by specific control 
strings: conditions, loops, macro calls, and 
formal parameters. These are described 
below. 

When the interpreter encounters the 
quote character ", it prints or displays 
characters up to, but not including, the next 
quote character. For example, the program: 

"JACQUELINE" $$ 

will print the message: 

JACQUELINE 

The quoted string may contain blanks, 
which are printed, and the exclamation 
point / that prints a carriage return/line 
feed. Thus the program: 

"FIRST LINEISECOND LINE" $$ 

will print: 

FIRST LINE 
SECOND LINE 

Mouse performs calculations using a 
stack. An operand pushes a value onto the 
stack, and an operator removes one or two 
values from the stack and may replace them 
with other values. The question mark ? 
is an operand which tells the interpreter to 
read a number from the keyboard or input 
file and push it onto the stack. The operator 
/ removes the top value from the stack and 
prints it. (Do not confuse the use of / as 
an operator with its use within quotes.) The 
following program reads one number from 
the keyboard and prints it: 



The stack is a last in, first out data structure. 
The program: 

reads three numbers and prints them in 
reverse order. For example, if the input file 
contained: 

45 46 47 

then the program would print: 

474645 

If we wanted them to be printed in the order 
in which they were read, we would have to 
write: 

This program, using the same data as before, 
would print: 

454647 

A decimal integer is another kind of oper- 
and. When the interpreter reads an integer, it 
pushes its value onto the stack. This program 
prints 365: 

365! $$ 

We can push two numbers onto the stack by 
writing them one after the other, with a 
blank in between. This program prints 7 5: 

5 7!""!$$ 

This is the only context in Mouse where a 
blank character is required; without it, 5 7 
would be read as the single number 57. How- 
ever, we often insert blanks into Mouse 
programs to improve their readability. 
Furthermore, Mouse does not print leading 
or trailing blanks when it prints a number, 
so we must include a blank string " " 
between print operators if we want numbers 
separated in the output. Note also that 
Mouse does not process floating point 
numbers: all operands have integer values. 
Mouse has 26 variables, the names of 
which are A, B, C r . .2. The name of a varia- 
ble is an operand, and when the interpreter 
encounters a variable name, it pushes the 
address of that variable onto the stack. This 
program prints the addresses of A and T: 

A!T!$$ 

The operator . (period) replaces an address 
on the stack by the value stored at that 



Peter Grogono s first 
computer experience con- 
sisted of feeding a short 
piece of paper into 
EDS AC II at Cambridge 
University. He joined a 
group conducting research 
into automatic pattern 
recognition in 1965, and 
has spent the ensuing 13 
years writing computer 
programs of various kinds 
in England, Australia, and 
Canada. The programs in- 
clude a package for high- 
way design, an operating 
system for an electronic 
music studio, and an 
accounting system for 
travel agencies. Peter is 
currently working for the 
Computer Centre of Con- 
cordia University, and his 
interests are programming 
language design and text 
processing. 



July 1 979 © BYTE Publications Inc 199 



?J> 



CP/M* 



B U SI NESS SO F TWA RE 

INTEGRATED FINANCIAL 
PROGRAMS 

All programs integrate by posting 
financial data to the general ledger 
journals. They are self-guided and 
easy to use. You don't have to be a 
CPA! 

■ GENERAL LEDGER 

■ ACCOUNTS RECEIVABLE 

■ ACCOUNTS PAYABLE 
P INVENTORY CONTROL 

■ PAYROLL 
$500 Each Program 

$8 Manual Only 

COMPLE TE LEG A L BILLING 
SYSTEM with ACCOUNTS 
RECEIVABLE 

A powerful and flexible system that 
will produce clients statements with a 
wide choice of layouts and billing 
options. 

$1,995 Complete System 
$12 Manual Only 

> MIDAS*" Mini DAtabase System 

Design your own file layouts and 
change them easily with MIDAS. 
Complete update, query, tally, sort, 
report, and reformat capabilities. 
$250 Complete System 
$8 Manual Only 

f Over 100 Systems in the field now! 
f Immediate delivery on all programs, 
f Requirements: CBASIC, dual disk, 

and 48K memory 
*CP/M is a trademark of Digital 
Research 

VISA AND MASTERCHARGE ACCEPTED 

Rothenberg Information 
Systems, Inc. 

260 Sheridan Avenue 

Palo Alto, CA 94306 

Telephone: (415) 324-8850 



address. If we want to print the value of 
A we write A.! . 

The assignment operator is = An assign- 
ment is performed in three steps: 

• An address is pushed onto the stack; 

• A value is pushed onto the stack; 

• The assignment operator is applied. 

Thus in order to give the value 17 to X we 
write: 

XI 7= 

This statement has the effect that X := 17 
would have in a Pascal program. Similarly, 
we write XV = to assign the value of Y to X 
in Mouse. The most common programming 
error in Mouse is to forget the period; no 
error will be reported, but the calculation 
will use the address rather than the value 
of a variable, and the result will probably 
be wrong. 

The arithmetic operators in Mouse are 
+, — , * and /, denoting addition, subtrac- 
tion, multiplication, and division, respec- 
tively. Because operands in Mouse have 
integer values, / means divide and truncate. 
A Mouse operator is always written after its 
operands. The resulting notation is called 
postfix notation or reversed Polish notation, 
in contrast to the conventional algebraic 
notation which is called infix notation. 
Postfix notation may be confusing at first, 
but it does have some advantages. The infix 
expression A+B is written in Mouse as 
A.B.+; the periods signify that we are adding 
values, not addresses. One of the advantages 
of postfix notation is that parentheses or 
brackets are not required. The infix expres- 
sion A+B*C, in which the multiplication is 
performed before the addition, is written 
A.B.C.*+ in Mouse. The infix expression 
(A+B)*C, in which the parentheses indicate 
that the addition is to be performed first, 
is written A. B. +C*. 

It is not hard to translate expressions 
into postfix notation if you remember 
these two rules: 

• Operands appear in the same order in 
both expressions; 

• Operators are written as soon as both 
operands have been written in full. 

As an example, consider the conversion to 
postfix form of the infix expression (A+B)/ 
(C-D). First write down the operands in 
sequence: 

A. B. C. D. 



200 July 1 979 © BYTE Publications Inc 



Circle 327 on inquiry card. 



The addition is performed after B., and the 
subtraction after D.. The division cannot be 
performed until both its operands have been 
computed, so the complete expression in 
postfix notation is: 

A.B.+ CD.-/ 

The arithmetic operators always have two 
operands in Mouse. The infix expression —X 
means 0-X, and it must be written in the 
form OX.-. 

The top value in the stack may be used as 
an anonymous variable. In fact, we have 
already used the stack in this way, in the 
program ? ! $$. Here is a more subtle use of 
this feature: 

A A5=. A6=! $$ 

These five steps have the following effect: 



A puts the address of A on the stack; 
A 5= assigns the value 5 to A (this uses 
the stack, but leaves it unchanged); 
. converts the address of A to the value 
of A, which is 5; 

A6= changes the value o f A to 6 ; 
/ prints the value, 5, from the stack. 



Care must be taken, of course. If you are 
writing programs in this fashion, you must at 
all times know what is supposed to be in the 
stack. The following example uses the 
stack to interchange the values of two vari- 
ables, X and Y. In most languages this inter- 
change can only be done with a temporary 
variable. For example, in Pascal we would 
write: 

T :=X;X :=Y;Y := T 

In Mouse we can write: 

X Y. YX. = = 

The addresses of A, B, C,. . .Z are 1, 2, 3, 
. . .26. This means that B, for instance, can 
be regarded as either a variable in its own 
right, or as the second element of the array 
A. The address of B can be written as either 
B or A J+, and its value as B. or A 1+. .A 
general element of the array A, written 
A[l] in Pascal, can be written as A I.+. in 
Mouse, for < I < 25. Any letter can be 
used in this way: thus K5+ is equivalent to 
P, and Z3— is equivalent to W. . You must 
be careful not to use the same address for 
two different purposes. If you decide to 
use A as an array with ten components, you 
cannot use the variables B, C,. . .J in the 



SUPER 
SOFTWARE! 

MICROWARE 6800 SOFTWARE IS 
INNOVATION AND PERFORMANCE 



fNEWI 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 



[NEW! 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 



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



MICROWARE 

SYSTEMS CORPORATION 



P.O. BOX 4865 

DES MOINES, IA 50304 

(515) 265-6121 



Circle 232 on inquiry card. 



July 1979 © BYTE Publications Inc 201 



Write faster in BASIC, 
FORTRAN, or COBOL 

Document & modify more easily, too 

Human-engineered to do the job better. Yes, you really can get flawless code 
faster using the Stirling/Bekdorf™ system of software development tools with 
structured programming concepts. The 78F2, 78P4, and 78C1 are human-engineered 
to reduce initial errors, improve de-bugging speed, and aid concept communication 

First, use the 78F2 Flowchartrix™to lay out your original concept blocks. Then 
use it to write a finely detailed flowchart. 

54% more logic cells than other flowchart forms, put far more of your program 
on each page. Each Flowchartrix has a full 77 logic cells, not just 50. This saves 
paper, and makes your finished flowcharts easier to understand. By seeing up to 
27 extra steps of a program on each page, you comprehend program flow more 
clearly. You save money and storagespace, too. 

Every matrix cell in the 7 x 11 matrix has a specific label to help you track 
branch points. When you write program documentation, having a separate reference 
point for each cell makes your program much easier to describe clearly. 

With Flowchartrix, you don't need a shape template to draw remarkably regular 
logic symbols. Guides for the most-used logic symbols are right in each matrix 
cell, to help you draw most standard flowchart symbols entirely free-hand. 

78P4 Print-Out Designers are next. When you finish flowcharting, lay out the 
printed reports your program will generate. Then when you write code you blaze 
through the report generation segments right along with the rest of your program. 

Unique 70 x 160 matrix accommodates even proportional-spacing word processor 
formats. The 160-column width can handle practically any printer format. The 
78P4 is big, Wh x 22 inches, because we've scaled the cell size to human writing 
comfort, not machine print, giving nearly twice the character-writing area of other 
printout design sheets. 

Special 5-column area records the program line number of the code which 
creates each printed line. It shows, at a glance, exactly which line of code creates 
each line of your report, saving hours of needless search time when you must 
change the report format (and don't you always have to, sooner or later 7 ) 

Every sheet of 78C1 gives you 2 form uses for the price of one. Use 78Cl's 
full 28 line x 80 column grid area to code regular program steps. Then for inter- 
active or instructional sections, simply keep your characters within the appropriate 
CRT indicator lines, and you'll automatically know where every character will show 
on your CRT screen. 

28 line x 80 column coding capacity saves you 14 sheets out of every 100, 
compared to 24-line forms. 86 sheets hold more program steps than 100 sheets 
of any 24-line form, yet we offer full-size 6mm x 3mm grid blocks to give you 
comfortable writing room and visual space between lines. 

Works with your CRT display, no matter what brand you own. Equipped for 
both 16 line x 64 column and 24 line x 80 column display formats. 

Available in three versions (one for BASIC languages, one for FORTRAN, another 
for COBOL), the 78C1 is so powerful we include a 7-page instruction manual with 
every order. 

Every tool in the Stirling/Bekdorf system is surface-engineered to take both 
pen & pencil without blotching. Our tough, extra-heavy, 22* paper is pure enough 
to use with critical magnetic ink character readers, and gives you crisp, sharp char- 
acters with pencil or plastic-tip pen. 

Every part of our system uses eye-comfortable soft blue grids. All grid rulings, 
tints, and division rules are reproduced in a special shade of blue, easy on your 
eyes even after hours of continuous programming. If you're a professional pro- 
grammer, you'll particularly appreciate our improvement over the green lines you've 
been writing on. 

A 3-ring binder is one more of our secrets for your success. All your notes, 
logic concepts, flowcharts, code, CRT layouts, print-out designs, and documentation 
can be kept together, in order, in one place. When everything you create stays 
together, debugging and modification is much simpler. 

Order your supply of the world's most advanced software development tools, 
ight now, before you hatch even one more bug. I 



78F2 Flowchartrix 

a 2 padsof 50 =» $7.90 + S2.85 pkng & shpg 

D 10 pads of 50 = $34.35 + $6 45 pkng & shpg 

78P4 Print-Out Design Sheets 

a 1 pad of 50 = $7 45 + $3 15 pkng & shpg 
a 5 pads of 50 = $32 10 ♦ $6 75 pkng & shpg 

3'holepunched vinyl pockets for 78P4 Design Sheets 
D set of 5 tor $2.65 +51.35 pkng& shpg 
D setol 12 lor 55 00 + 51 85 pkng& shpg 



78C1 Combination Coding/CRT Layouts 

All are the same puce, but please check which language 

toTmat you want: 

a for BASIC a fof FORTRAN D for COBOL 



a 2 pads of 50 = 
D 10 pads of 50 = 



$6.35 h 
$26 85 h 



$1.95 pkng & shpg 
$3 35 pkng & shpg 



Texas icsidenlspseaseadd 5 5 • sale s t a i to base puce. We ship 
UPS so P O 8oi address must give phone number Prices shown 
for packings, shipping are U S A only International shipping rates 
are higher writefor details 



D Sample of one sheet of each form + 
associated labels & literature $2.50 

Enclosed is my check for % 

Name 

Address 

City 



Charge to: □ Master Charge O Visa exp. date- 
Card I 

Signature — 



. Phone_ 



.State_ 



.Zip. 



Stirling/Bekdorf 



4407 Parkwood □ San Antonio, TX 78218 □ (512) 824-5643 jj 

.1 



jD 7 © 1978 Slirlmi/Selufoil Dit ol Biicknun Mktg Gp„ lite a 



same program, 
these points: 



The following illustrates 



A7=BA = A.! B.! A1+J $$ 

A 7= assigns the value 7 to A, and BA = 
copies the same value to B. This value is 
then printed three times: A.! prints the 
value of A; BJ prints the value of B; and 
AH.! prints the value of A[1]. 

Before we pass on to a discussion of the 
control structures of Mouse, we need one 
more concept: clause. A clause is a string 
which contains quoted strings and expres- 
sions, which have been defined above; and 
complete control structures, which are 
defined below. 

Control Structures 

A condition in Mouse is written E[C]; 
E is an expression, and C is a clause. The 
condition itself is a clause. E is evaluated, 
and if its value is greater than zero, C is 
executed. If E is zero or negative, C is 
skipped. The Pascal statement: 

ifX>OthenY := X 

becomes in Mouse: 

X.[YX=] 

Since Mouse distinguishes only E > O and 
E < O, more complicated expressions must 
be devised for different conditions. For 
example, X > O is equivalent to X+1 > O, 
and so the Pascal statement: 

ifX^OthenC 

becomes in Mouse: 

X.1+[C] 

Similarly, X = O is equivalent to (1+X > O) 
and (1-X>0), and so Pascal: 

if X = OthenC 

becomes in Mouse: 

1X.+[1X.-[C]] 

Now, reconsider the definition of clause. A 
complete condition E[C] is both a clause 
itself, and contains a clause, C. Suppose C 
is itself a condition, F[D]. If we replace C 
by F[D] in the clause E[C], we obtain the 
clause £[F[D]]. This demonstrates that the 
nested condition 1X.+[1X-[C]] of the last 
example is a legitimate Mouse construction. 



202 July 1979 © BYTE Publications Inc 



Circle 352 on inquiry card. 



A loop in Mouse is written: 

(q Etc 2 ) 

where E is an expression and C-] and C 2 are 
clauses. This loop is a clause; it may be 
paraphrased as follows: 

START: C-, 

if E<0 goto EXIT 



goto START 



EXIT: 



In other words, the loop is executed for as 
long as E > 0, and the exit test may appear 
anywhere within the loop. Either C-| or C 2 
may be omitted. (E\ C 2 ) is equivalent to 
Pascal: 

while E > do C 2 

and (Cj E\) is equivalent to Pascal: 

repeat C 1 until E <0 

There may be more than one exit test in 
a loop. For example, (Cj ft C 2 ft C 3 ), in 
which E and F are expressions, is allowed. 
We now consider some simple Mouse 
programs which use these control structures. 
The following program reads a number N, 
and prints its factorial, 1 *2*3*. . .*N: 

N?= F1= ( N.t FF.N.*= NN.1-= ) F.! $$ 

We can shorten the factorial program by 
using the top of the stack instead of the 
variable F. The program then becomes: 

N?=1 (N.t N.*NN.1-=) ! $$ 

In this version, / puts the value one on the 
stack; N.* multiplies the value on top of 
the stack by N; and / removes the value from 
the top of the stack and prints it. We can 
expand this program so that it continues to 
ask for data until it reads a number which is 
less than or equal to zero. Note the nested 
loop: 

( "ENTER A NUMBER" M?= M.t 

NM = 1 (N.t N.* NN.1-= ) 
"FACTORIAL ("M.I ") = " ! "I" ) 

$$ 

Here is a dialogue produced by this program: 

ENTER ANUMBER3 
FACTORIAL (3) = 6 
ENTERANUMBER7 
FACTORIAL (7) = 5040 
ENTER ANUMBERO 



ANNOUNCING 




New 
from DEC 

LA34 DECwriter IV 

$ 1,199. 00 



• 110 or 300 baud, RS232C serial • Upper/lower case, 9 x 7 dot matrix 
ASCII • 1 0, 1 2, 1 3.2, 1 6.5 characters /inch 

• Friction feed, paper width to 15" • 2, 3, 4, 6, 8, or 12 lines/inch 

• 22"Wx7"Hx15 1 /j"D, 25 lbs. 




New 
from DIABLO 

DIABL0 1640 $2,690.°° 
Receive-only $ 2,331 . 00 

High-quality daisywheel printing at 
45 cps. 

DIABLO 1650 $2,779.00 
Receive-only $2,419.°° 

Metal daisywheel printing at 40 cps. 

SOROCIQ 120 $795- 00 

• RS 232C, upper/lower case full 
ASCII 

• Numeric keypad, protected fields 

• Cursor keys plus addressable 
cursor 

• Auxiliary extension port 



Teletype 43 $999.00 

• RS 232C, 110 or 300 baud 

• Upper/lower case full ASCII 

• Pin feed, 12" x 8V2" paper 



T.I. 810 printer $1,695.0° 

• 150 characters per second 

• RS 232C serial interface 

• Adjustable forms tractor 

• Upper/lower case option $90.00 




SOROCIQ 140 $ 1,250™ 

• RS 232C and 20mA current loop 

• Extensive editing features 

• 25th line terminal status display 

• 16 function keys (32 with shift) 




To Order: Send certified check (personal or company checks require 
two weeks to clear) including handling* and 6% sales tax if delivered 
within California. 

'Handling; Less than $2,000, add 2%; over $2,000, add 1%. Everything 
shipped freight collect in factory cartons with manufacturer's warranty. 



clKWCHQIUflJi-J 



MICROMAIL • BOX 3297 • SANTA ANA, CA 92703 
(714) 731-4338 



Circle 222 on inquiry card. 



July 1979 © BYTE Publications Inc 203 



The program which follows reads numbers 
into an array and then prints them in reverse 
order. A is used as an array index, and B is 
the array. The input is terminated by a neg- 
ative number. 

A0= 

(BA.+.?=BA.+.1+t AA.1+=) 

( A.t AA.1-=BA.+.! ) 

$$ 

We can improve this program so that it will 
read no more than 25 numbers, the maxi- 
mum capacity of the array B. Note the use 
of two exit conditions in the first loop: 

A0= 

( BA.+.?= BA.+.l+t AA.1+= 
A.25-[ "ARRAY FULLP'Ot]) 
( A.t AA.1-=BA.+.! ) 

$$ 

Macroinstructions 

A complex algorithm always has a hier- 
archical structure, and a programming lan- 
guage must provide the means of defining 
and calling procedures and functions so 
that programs which have an analogous 
hierarchical structure can be written. In 
Mouse, procedures and functions are imple- 
mented by macroinstructions. A macro- 
instruction call is written like this: 

#M; 

This is a call to macroinstruction M. There 
must not be a blank between # and the 
macro name. In this example there are no 
actual parameters. When there are actual 
parameters, they follow the macro name 
and are preceded by commas. The follow- 
ing is a call to macroinstruction M with 
parameters X and Y: 

#M,X,Y; 



A macro name is a single letter, so a program 
may use up to 26 different macroinstruc- 
tions. 

Macro definitions come between the main 
program and the terminating $$. A macro 
definition starts with the character $ and the 
name of the macroinstruction, and is termi- 
nated by the character @. There must not be 
any blanks between $ and the name of the 
macroinstruction being defined. The defini- 
tion must be a clause, and definitions cannot 
be nested. The following program uses a 
macroinstruction, M, to print a message: 

#M; 

$M "A MESSAGE"© 

$$ 

Note that the main program code is termi- 
nated by $, which introduces the first macro 
definition. As usual, the entire program is 
terminated by $$. When the interpreter 
encounters #M; in the program, it substi- 
tutes the definition of the macroinstruction, 
excluding $M or @. Thus when the program 
above is interpreted, it prints: 

A MESSAGE 

Each macroinstruction has its own com- 
plete set of local variables, A, B, C,. . .Z. 
Assignments to these variables do not affect 
the values of main program variables. The 
program which follows will print the number 
3, despite the assignment to N in macro- 
instruction X: 

N3=#X;N.! 
$X N99=@ 

$$ 

A macro definition may have up to 26 
formal parameters, written %A, %B, %C, 
. . .%Z, with no blank between % and the 
letter. When a formal parameter is encoun- 
tered in a definition, the actual parameter is 




GenRad needs Trolls! 
What are Trolls? 

Trolls are a rare breed of engineer, who 
can work in software as well as 
hardware. At GenRad we design and 
build Automatic PC-Board Testers for 
electronic manufacturing. Our support 
engineers like to eat a chip data sheet 
for breakfast breadboard the chip for 
lunch and debug its software models at 
dinner. GenRad trolls are good; as a 
m atter of fact, we t h i n k they're the best ! 



They help guideourcustomersthrough 
the sometimes bewildering land of 
testing. If you think that you would 
enjoy this challenging mix of hardware, 
software and human contact, set up a 
meeting with our troll leader by 
contacting Pat Perillo, GenRad, Inc., 300 
Baker Avenue, Concord, MA 01742. Or 
call Pat (collect) at (617)369-4400, ext. 
332. 

An equal opportunity employer M/F 



GenRad 



204 July 1 979 © BYTE Publications Inc 



Circle 137 on inquiry card. 



substituted as a string. Macroinstruction P 
in the following program prints the value 
of its parameter: 

#P,3;A5=#P,A.;#P,A; 
$P%A!@ 



The call #P,3; is equivalent to 3!, and prints 
3. The call #P,A.; is equivalent to A.! and 
prints the value of A, which is 5. These are 
known as calls by value, because the macro- 
instruction can obtain only the value of the 
parameter. The final call, #P,A; t is equiva- 
lent to A! } and prints the address of A. It is 
known as a call by reference, because the 
parameter is an address. Calls by reference 
can be used to return values to the calling 
program. Macroinstruction A in the follow- 
ing program adds the values of its first two 
parameters, and returns the result as the 
third parameter: 

#A,2,3,X;#A,3,4,Y;#A,X.,Y,Z; 

$A%C%A%B + = @ 

$$ 

This program adds 2 and 3, giving X, then 
adds 3 and 4, giving Y, then adds X and Y, 
giving Z. Note that the actual parameters 
in the last call are the values X. and Y. and 
the address Z. 

You must know, when writing a macro 
call, whether the macroinstruction expects a 
value or an address. The device mentioned 
before for exchanging two values can be in- 
corporated into a macroinstruction: 



$E%A%B. %B%A. 



@ 



In this case, both actual parameters must be 
addresses. To use this macroinstruction to 
interchange the values of X and Y write: 

#E,X,Y; 



An array can be passed to a macroin- 
struction by the address of its first com- 
ponent. The following macroinstruction 
sums %B components of the array %A, and 
returns the result as %C: 

$S %C0= N0= 

( %BN.-t %C%AN.+.%C.+= NN.1+= ) 

@ 

The call #S,A,3,Z; would store the value of 
A+B+C in Z. 

A macroinstruction which leaves a value 
on the stack acts as a function. We can re- 
write macroinstruction A, which was de- 
fined above, as a function: 

$A %A%B+ @ 

The call #A,2,3; is now an operand which 
leaves the value 5 on the stack. This macro- 
instruction evaluates the factorial function: 

$FN%A=1 (N.t N.*NN.1-) @ 

The clause #F } 5; #F,6; + ! prints 840 

(=5!+6!). 

A macro definition may include macro 
calls. Moreover, a macroinstruction may call 
itself, either directly or indirectly, so that it 
is possible to define recursive macroinstruc- 
tions. The factorial function can be defined 
recursively in this way: 

$F%A [%A#F,%A1-;* ] 

196A- [ 1 ] 

@ 

The character @ acts like a RETURN state- 
ment in BASIC or FORTRAN, and we can 
use it more than once in a macro definition. 
Here is a slightly shorter version of the recur- 
sive factorial macro that exploits this fact: 

$F%A [%A#F,%A1-;*@] 1 @ 



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 




ENTERPRISES 

INCOR PORATED 



2967 W. Fairmount Avenue • Phoenix, AZ 85017 • (602) 265-7564 



Circle 325 on inquiry card. 



July 1 979 © BYTE Publications Inc 205 



This definition may be paraphrased in 
ALGOL: 

F(N) := 

if N >0 

then N * F(N-1) 

else 1 

If %A>0, the conditional clause is executed, 
and the macroinstruction is terminated by 
the @ between the brackets. If %A < 0, the 
value / is placed on the stack and the macro- 
instruction is terminated by the final @. 

If there is no actual parameter corre- 
sponding to a formal parameter, the formal 
parameter is processed as a null string. 
Actual parameters for which there are no 
formal parameters are ignored. A call to an 
undefined macroinstruction is also processed 
as a null string. These points are illustrated 
by the following program: 



third, "C", is ignored because there is no 
formal parameter 96C. The last call is to 
an undefined macroinstruction U, and has 
no effect. 

Now that all of the control structures of 
Mouse have been described, we can define 
clause more precisely. A clause may be: an 
expression, a literal string, a condition, a 
loop, a macro call, or a clause followed by 
another clause. Actual parameters and macro 
definitions must be clauses. These rules are 
not precise enough to formally define the 
syntax of Mouse, but they serve as a guide 
for the Mouse programmer. Their principal 
purpose is to ensure that all of the com- 
ponents of a control structure are on the 
same level. They forbid, for example, the 
use of ( or [ without the matching ) or ] at 
the same level in a condition, loop, macro 
definition or actual parameter. 



#T;#T I "A ,, ;#T I "A ,, I "B"; 
#T J "A" I "B ,, J II C";#U; 

$T"<" %A%B">!"@ 



This program prints: 



<> 
<A> 

<AB> 
<AB> 



Example Programs 

We conclude this section of the article 
with some sample Mouse programs. The 
first program illustrates mutual recursion. 
Two macroinstructions are said to be mutu- 
ally recursive if each one calls the other. The 
square numbers S n (1, 4, 9, 16,. . .) and the 
triangular numbers T n (1, 3, 6, 10,. . .) can 
be defined in terms of each other in the fol- 
lowing way: 



In the first call, #7";, there are no actual 
parameters. In the second call, #T/'A ,} ;, 
there is one actual parameter, "A", which 
is printed. In the third call, both param- 
eters are printed. In the fourth call, there 
are three actual parameters, of which the 



"SQUARE AND TRIANGULAR NUMBERS" 
( "ENTER A NUMBER" N? = N.I 
"S(" N.! ") = " #S,N.; ! 
" T(" N.l ") = " #T,N.; ! "!" ) 

$S %A1 - [ #T, %A; #T,%A1 -; + @ ] 1 @ 

$T %A1 - [ #S, %A1 -; 3%A*1 - + 2/ @ ] 1 @ 

$$ 

Listing 1 : This Mouse program reads an integer and prints the corresponding 
square number S n and triangular number T n . It uses two mutually recursive 
macroinstructions S and T. 



"PRIME NUMBERS!" N1 = ( NN.1 + = #P,N.; ) 

$P F1 = N1 = 

{ FF.1 += %AF. -t %AF./F.*%A-1 + [ NO= 01 ] ) 
N. [ %A! "!" ] (5) 

$$ 

Listing 2: This program prints a list of prime numbers. Macroinstruction P 
determines whether its parameter N is a prime number and, if it is, prints it. 



Si =1 

S n =T n+ T n _ l forn>1 

Ti=1 

T n = (S n _ 1 +3n-1)/2forn>1 

The program, which appears in listing 1 , uses 
mutually recursive macroinstructions S and 
T to compute S n and T n . 

The second program, which appears in 
listing 2, prints prime numbers. It loops 
indefinitely, calling macroinstruction P for 
each integer N in turn. Macroinstruction P 
prints N, if N is prime. The expression 
96AF./F.*96A-1+ is equivalent to 1 - %A 
mod F.; it is positive only if F divides %A 
exactly. The program will fail when incre- 
menting N causes overflow, but the algo- 
rithm is so inefficient that there is little 
danger of this happening. 

The third program, shown in listing 3, 
uses recursive macroinstruction V to print 
the words of a song. The British and Ameri- 
can versions of this song are different, and 
I am not sure that the words printed by the 
program are a correct statement of either 
version. The limit of nine verses is a restric- 
tion imposed by the interpreter described 
in this article, not an inherent limitation 
of Mouse. 



206 July 1979 © BYTE Publications Inc 






Circle 131 on inquiry card. 



Circle 91 on inquiry card. 



The experienced 2114 
4K static RAM 



From EMM --the industry's largest supplier 
of 4K static RAMs — a 2114 with a year and 
a half of delivery behind it. Not a new part. 
Just a new pin-out of a proven part. 1K x 4 
organization. 5V only. Standard 18-pin DIP. 
It draws only 300 mw, has all the speed you 
need for microprocessor applications. 



SEMI,INC. 



A division of Electronic Memories & Magnetics Corporation 
3883 North 28th Avenue, Phoenix, Arizona 85017 (602) 263-0202 



NO FRILLS! NO GIMMICKS! JUST GREAT 

DISCOUNTS 

MAIL ORDER ONLY 



HAZELTINE 

1400 $ 679.00 

1500 995.00 

Mod 1 1495.00 

CENTRONICS 

779-1 954.00 

779-2 1051.00 

700-2 1350.00 

761 KSR tractor 1595.00 

703 tractor 2195.00 

NORTHSTAR 
Horizon I assembled., 1629.00 

kit 1339.00 

Horizon II assembled. . 1999.00 

kit 1599.00 

Disk System 589.00 

TELETYPE 

Mod 43 995.00 

IMS 
16K Static Memory. .. 459.95 



DIGITAL SYSTEMS 

Computer $4345.00 

Double Density 

Dual Drive 2433.00 

IMSAI 

VDP 80/1000 $5895.00 

VDP40 3795.00 

VDP42 3895.00 

VDP 44 4195.00 

16K Memory assem.. . 399.00 
PCS 80/15 679.00 

15% off on allother Imsai products 

CROMEMCO 

System III $1000 off . . 4990.00 
10% otf on all other Cromemco products 

TEXAS INSTRUMENTS 

810 Printer 1595.00 

CENTRONICS 

MicroPrinter 495.00 



Most items in stock for immediate delivery. Factory-fresh, sealed cartons. 

DATA DISCOUNT CENTER p.o. box 100 

135-53 Northern Blvd., Flushing, New York 11354, 212/465-6609 

N.Y.S. residents add appropriate Sales Tax. Shipping FOB N.Y. 
I BankAmericard, Master Charge add 3%. COD orders require 25% deposit. 




i* 



<**" 



'd 



from Computer Headware 
... the Self-Indexing Query System 

for your Apple II, North Star, or CP/M machine 



Distributed by: 

• Information Unlimited / 219-924-3522 
P.O. Box 8372, Merrillville, Indiana 46410 

• Lifeboat Associates / 212-580-0082 (CP/M model only) 
2248 Broadway. Suite 34, New York City 10024 

• Structured Systems Group, Inc. / 41 5-547-1567 
5208 Claremont Avenue, Oakland, California 94618 





BYTE July 1979 207 






The program which appears in listing 4 
prints the moves required to solve the 
Towers of Hanoi problem for a given num- 
ber of disks. It uses recursion, and demon- 
strates the use of strings as actual parameters. 



( "HOW MANY VERSES?" 

S?= S.t 10S. - [ #V,S.1 +; ] ) 

$V %A1 - [ #N,%A; #B; #W; ",!" 
#N,%A; #B; ";l" #F; ",! 
#N,%A1 -; #B; #W; ".! 
#V,%A1 -; 



@ 



$B " GREEN BOTTLES" @ 

$W "STANDING ON THE WALL" @ 

$F "IF ONE OF THOSE BOTTLES SHOULD HAPPEN TO FALL" @ 



] 



N %A9- [ 


"NINE" 


@ 


%A8- [ 


"EIGHT" 


@ 


%A7- [ 


"SEVEN" 


@ 


%A6- [ 


"SIX" 


@ 


%A5- [ 


"FIVE" 


@ 


%A4- [ 


"FOUR" 


(5) 


%A3- [ 


"THREE" 


@ 


%A2- [ 


"TWO" 


@ 


%A1 - [ 


"ONE" 


(5) 


%A [ 


"NO" 


@ 



] @ 



$$ 



The last program, shown in listing 5, is 
the most elaborate. It reads an array, prints 
it, sorts it into ascending sequence, and 
prints the sorted array. The main program 
prints the title and then calls macroinstruc- 
tion P to do everything else. The address of 
A is given to P, and since no variables are 
used in the main program, all 26 compo- 
nents of array A can be used to store the 
input data. Thus, the program can sort up 
to 26 numbers. The program makes 
extensive use of macroinstruction F, which 
simulates a for statement. The effect of a 
call to F is: 

for %A := %B to %C do %D 

If %B > %C then the index variable %A will 
be decremented rather than incremented. 
Macroinstruction E is the exchange macro- 
instruction introduced earlier. Macroinstruc- 
tion B does the actual sorting in two nested 
loops, using the bubble sort algorithm. 

Implementation 



Listing 3: Macroinstruction V calls macroinstruct ions B, W } F, and N to print 
one verse of a song, and then calls itself recursively to print the next verse. 
The number of verses is limited to nine, but the interpreter is quite easily 
modified to enable the program to print more verses. 



"TOWERS OF HANOMHOW MANY DISKS?" D? = 
D. [ #H,D., "LEFT", "RIGHT", "CENTER"; ] 

$H %A [ #H,%A1 -,%B,%D,%C; 

"MOVE " %B " TO " %C "!" 
#H,%A1 -,%D,%C,%B; ] @ 

$$ 

Listing 4: The famous Towers of Hanoi problem. The program prints a list 
of the moves required to solve the problem for a specified number of rings. 

"BUBBLE SORT!" #P,A; 

$P "HOW MANY NUMBERS?" N? = N . 26 - [ "TOO MANY!" @ ] 
"ENTER " N . ! " NUMBERS!" NN . 1 - = 
#F,M,0,N.,%AM. + ? = ; 
"INPUT ARRAY!" #F,M,0,N . ,%AM . + . ! ' 
#B,%A,0,N.; 
"SORTED ARRAY!" #F,M,0,N . ,%AM . +. 



'!' 



'I' 



@ 



$B #F,I,%B1 +,%C, 
#F,J,%C,I., 

%AJ . 1 - + . %AJ . + . - 
[ #E,%AJ. +,%AJ. 1 - 



];; @ 



$F %A%B= %C%A. -1 + 

[ ( %C%A. -1 +1 %D %A%A.1 + = ) @] 
( 96A.96C-1 +1 %D %A%A.1 - = ) @ 



$E %A %B. %B %A. 
$$ 



= @ 



Listing 5: This is the most elaborate Mouse program presented in this article. 
The main program contains one macro call (#P,A;) only, and so all 26 vari- 
ables at the lowest level can be used to store an array. The program sorts 
the array using the bubble sort algorithm, and then prints it. 



The Mouse interpreter is presented in 
listing 6 in the form of a Pascal program. It 
is not intended, however, that Mouse should 
be implemented by that program. Listing 6 
is intended to be a machine independent 
guide to the implementation of Mouse in 
assembly or machine language. Accordingly, 
the explanation which follows contains hints 
as to how the Pascal statements can be trans- 
lated into machine language. Numbers in 
parentheses refer to line numbers in listing 6. 
Some explanation of the meaning of the 
Pascal statements is given here. (If you need 
more, consult either Jensen and Wirth (refer- 
ence 3) or my book (reference 4)). 

The program starts with a heading (1). 
This line merely states that the program is 
called Mouse and that it uses two files, 
INPUT and OUTPUT. Lines 12 thru 18 
declare the global variables of the program. 
Global variables can be used anywhere in a 
Pascal program, even in subroutines. The 
first five declarations (12 thru 16) define 
arrays. PROG is an array of 500 characters 
used to store the text of the Mouse program. 
The components of PROG are written 
PROG[1], PROG[2]. . .PROG[500]. DEFI- 
NITIONS is an array of 26 integers. Each 
nonzero component of DEFINITIONS 
forms an index for the start of a macro 
definition in the array PROG. The array 
CALSTACK is the stack used for calcula- 
tions. The array STACK is the main stack, 
used to store the status of the program 
during the expansion of a macro call, a 
formal parameter, or a loop. Each compo- 
nent of STACK is a variable of type 



208 July 1 979 © BYTE Publications Inc 



this article. The 
discussed below 



FRAMETYPE. This type is defined in lines 
5 thru 9. A FRAMETYPE variable has three 
components: TAG, POS, and OFF. A TAG 
has one of three values: MACRO, PARAM, 
or LOOP; these values can be coded as 0, 
1, 2, or -1, 0, +1. POS and OFF are both 
integers. The most convenient way to repre- 
sent STACK is as a block of 20 units, each 
unit having three words. Within a unit, the 
word required is addressed by its offset: 
for TAG, 1 for POS, and 2 for OFF. For 
example, the address STACK [N].OFF (the 
address of component OFF of the Nth unit) 
is STACK+3*(N-1)+2. Finally, the array 
DATA is used to store the values of both 
focal and global variables of the Mouse 
program. The sizes of the arrays are 
adequate for simple Mouse programs, 
including all programs in 
choice of array sizes is 
in greater detail. 

Lines 17 and 18 declare global scalar 
variables. CAL is a pointer to CALSTACK; 
it is an index for the next free stack word. 
LEVEL performs the same function for 
STACK, the main stack. CHPOS is a pointer 
to the array PROG; it indexes the character 
currently being processed. The current 
character itself is stored in CH. Assuming 
that a single byte is used to store a character, 
and two bytes are used to store an integer, 
global data for the interpreter occupies 
1 248 bytes of memory. 

Lines 20 thru 84 define the subroutines 
used by the interpreter. The function NUM 
(20 thru 23) maps letters into integers. The 
Pascal function ORD means simply ordinal 
value of. The ordinal value of a character is 
its ASCII (or other) code. For example, if 
the code for A is 65, then ORD('A') = 65. 
Thus, NUM^A') = 1, NUM('B') =2, and so 
on. The interpreter assumes that the letters 
have consecutive codes, and hence that 
NUM('Z') = 26. The function VAL performs 
a similar task for digits. VAL('O') = 0, VAL 
(T) = 1, and so on. In machine language, 
these functions can be implemented by a 
single instruction which subtracts the appro- 
priate constant from the character value. 
The procedure GETCHAR (30 thru 33) 
increments the character pointer CHPOS 
and sets CH to the next character in the 
array PROG. The Mouse program is accessed 
by means of this procedure only. 

PUSHCAL (35 thru 38) and POPCAL (40 
thru 43) are used to store and remove values 
from the calculation stack CALSTACK. The 
parameter of PUSHCAL is the value which is 
to be pushed onto the stack. The value 
returned by POPCAL is the value removed 
from the stack. In a machine language imple- 
mentation, these values can be passed in a 
register. PUSH (45 thru 51) and POP (53 



Listing 6: The Mouse interpreter expressed as a Pascal program. 



1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 



program MOUSE (input, output); 

type 

TAGTYPE = (MACRO,PARAM f LOOP); 
FRAMETYPE = 
record 

TAG : TAGTYPE; 
POS, OFF : integer 
end; 



PROG 

DEFINITIONS 

CALSTACK 

STACK 

DATA 



array [ 1 

array [ 1 

array [ 1 

array [ 1 

array [ 1 



. 500 ] of char; 

.26 ] of integer; 

.20 ] of integer; 

.20 ] of FRAMETYPE; 

.260 ] of integer; 



CAL, CHPOS, LEVEL, OFFSET, PARNUM, PARBAL, TEMP : integer; 
CH : char; 

function NUM (CH : char) : integer; 
begin 

NUM := ord(CH) - ord('A') + 1 
end; 

function VAL (CH : char) : integer; 
begin 

VAL := ord(CH) - ord('O') 
end; 

procedure GETCHAR; 
begin 

CHPOS : = CHPOS + 1 ; CH : = PROGICHPOS] 
end; 

procedure PUSHCAL (DATUM : integer); 
begin 

CAL := CAL + 1; CALSTACK[CAL] := DATUM 
end; 

function POPCAL : integer; 
begin 

POPCAL : = CALSTACK[CAL]; CAL : = CAL = 1 
end; 

procedure PUSH (TAGVAL : TAGTYPE); 
begin 

LEVEL : = LEVEL + 1 ; 



STACK[LEVEL].TAG 
STACK[LEVEL].POS 
STACK[LEVEL].OFF 
end; 



= TAGVAL; 
= CHPOS; 
= OFFSET 



procedure POP; 
begin 

CHPOS := STACK[LEVEL].POS; 
OFFSET : = STACK[LEVEL] . OFF; 
LEVEL : = LEVEL - 1 
end; 

procedure SKIP (LCH, RCH : char); 
var CNT : integer; 
begin 

CNT := 1; 
repeat 

GETCHAR; 
if CH = LCH 

then CNT : = CNT + 1 
else if CH = RCH 

then CNT : = CNT - 1 
until CNT = 
end; 

procedure LOAD; 

var THIS, LAST : char; CHARNUM : integer; 
begin 

for CHARNUM : = 1 to 26 do DEFINITIONS[CHARNUM] : = 0; 

CHARNUM := 0; THIS : = ' '; 

repeat 

LAST := THIS; read(THIS); 

CHARNUM := CHARNUM + 1; PROG[CHARNUM] := THIS; 

if (THIS in [ 'A' . . 'Z' ] ) and (LAST = '$') 

then DEFINITIONS[NUM(THIS)] := CHARNUM 

Listing 6 continued on page 210 



July 1 979 © BYTE Publications Inc 209 









Listing 6 continued from page 209: 



83 


until (THIS = '$') and (LAST = '$') 


84 


end; 




85 






86 


begin 




87 


LOAD; 




88 


CHPOS : = 0; LEVEL : = 0; OFFSET : = 0; CAL : = 0; 


89 


repeat 




90 


GETCHAR; 


91 


case CH of 


92 






93 




' \ T, '$' : ; 


94 






95 




'0V1V2V3V4V5V677V879' : 


96 




begin 


97 




TEMP := 0; 


98 




while CH in [ '0'. .'9' ] do 


99 




begin 


100 




TEMP := 10 * TEMP + VAL(CH); GETCHAR 


101 




end; 


102 




PUSHCAL(TEMP); CHPOS := CHPOS - 1 


103 




end; 


104 






105 




'A7B7C7D7EVF','GVH',T/J7K7LYM', 


106 




'N707P7Q7R7S7T7U7V7W7X7Y7Z' : 


107 




PUSHCAL(NUM(CH) + OFFSET); 


108 






109 




'?' : begin 


110 




read(TEMP); PUSHCAL(TEMP) 


111 




end; 


112 






113 




'I' : write(POPCAL : 1); 


114 






115 




' + ' : PUSHCAL(POPCAL + POPCAL); 


116 






117 




'-' : PUSHCAL( -POPCAL + POPCAL); 


118 






119 




'*' : PUSHCAL(POPCAL * POPCAL); 


120 






121 




7' : begin 


122 




TEMP : = POPCAL; 


123 




PUSHCAL(POPCAL div TEMP) 


124 




end; 


125 






126 




'.' : PUSHCAL(DATA[POPCAL]); 


127 






128 




'=' : begin 


129 




TEMP : = POPCAL; 


130 




DATA[POPCAL] : = TEMP 


131 




end; 


132 






133 




"" : repeat 


134 




GETCHAR; 


135 




if CH = '!' 


136 




then writeln 


137 




else if CH * "" 


138 




then write(CH) 


139 




until CH = ""; 


140 






141 




'[' : if POPCAL < then SKIP('[',T); 


142 






143 




T : PUSH(LOOP); 


144 






145 




'I' : if POPCAL < 


146 




then 


147 




begin 


148 




POP; SKIP('(7)') 


149 




end; 


150 






151 




')' : CHPOS : = STACK[LEVEL] . POS; 


152 






153 




'#' : begin 


154 




GETCHAR; 


155 




if DEFINITIONS[NUM(CH)] > 


156 




then 


157 




begin 


158 




PUSH(MACRO); 


159 




CHPOS := DEFINITIONS[NUM(CH)]; 


160 




OFFSET : = OFFSET + 26 


161 




end; 


162 




else SKIPCr,';') 


163 




end; 



Listing 6 continued on page 212 



thru 58) perform similar functions for the 
main stack, but they are more complicated 
because each stack entry has three words. 
The data placed on the stack by PUSH con- 
sists of the parameter, TAGVAL, and the 
values of the two global variables, CHPOS 
and OFFSET. The procedure POP restores 
the values of CHPOS and OFFSET but 
ignores the stacked value of TAG. 

The procedure SKIP (60 thru 71) is used 
to skip over nested pairs of characters. For 
example, SKIP('[7]') is used to skip over 
conditional clauses. SKIP uses a local vari- 
able CNT to count occurrences of left and 
right brackets so that it can correctly skip 
over sequences such as: 

On entry, SKIP assumes that the first 
character, [, in the example, has been 
read, so CNT is initially set to 1. Subse- 
quently, [ increments CNT and ] decrements 
CNT. The procedure terminates when CNT 
= 0. This procedure is used for skipping 
over [. . .], (. . .), and #. . .;. 

The procedure LOAD (73 thru 84) has 
two functions: it reads the program from the 
input file into the array PROG, one charac- 
. ter at a time; and it stores pointers to macro 
definitions in the array DEFINITIONS. It 
uses local variables THIS, LAST, and 
CHARNUM (74), and it initializes all com- 
ponents of the array DEFINITIONS to zero 
(76), so that the interpreter can later recog- 
nize a call to an undefined macro. LOAD 
recognizes a macro definition by the se- 
quence $<Jetter> and the end of the pro- 
gram by the sequence $$. 

In this version of the interpreter, both 
the Mouse program and its input data are 
read from the system input file. If you 
have auxiliary storage, such as disks or 
cassette tapes, it is probably better to 
store the Mouse program there. If you use 
disks or tapes, READ(THIS) on line 79 
will call a procedure that reads one charac- 
ter from the chosen device. It is much 
easier to develop a Mouse program if it 
is stored on an external medium where 
it can be attacked with a text editor, 
rather than keying it directly into mem- 
ory. Alternately, if you have room in mem- 
ory, you can elaborate the procedure LOAD 
into a Mouse editor, rather than using it 
simply as a loader. 

The main program begins at line 86. 
Initialization consists of loading the pro- 
gram (87) and setting various global variables 
to zero (88). The rest of the interpreter 
consists of a single repeat statement (89 thru 
197). The body of the repeat statement 
contains two statements: GETCHAR (90), 



210 July 1979 © BYTE Publications Inc 



Circle 331 on inquiry card. 



Computer Lab of New Jersey 

Computer Lab sells the best S-1 00 Bus products at the best 
possible prices. Not only are our prices great, so is our deliv- 
ery. We offer a 1 0% discount on most major lines, plus a 5% 
additional discount for a cash purchase. 





LIST 
PRICE 


OUR 
CASH 
PRICE 


ImsaiSIO 2-2 Kit 


$156.00 


$133.00 


SSM VB-2 Video Board Kit 


$149.95 


$128.00 


Vector Graphic Bitstreamer 
I/O Board 


$195.00 


$166.00 


Problem Solver TLC Intelligent 
CRT Terminal 


$1095.00 


$936.00 


Cromemco Z-80 CPU Board Kit 


$295.00 


$252.00 


S.D. Sales Z-80 Single Card 
Computer Kit 


$239.00 


$204.00 



Subject to available quantities. Prices quoted include cash discount. 
Shipping and insurance extra 

Call for our prices on: 

Cromemco, Godbout, Imsai, Problem Solver, SSM, Vector Graphic, 

Tarbell, Integral Data Systems, North Star, Mountain Hardware, 

Compucolor, Thinker Toys, Soroc, California Computer Systems, 

Seattle Computer Products, and many other fine products. 

Computer Lab of Naw Jersey 

141 Route 46 • Budd Lake, N.J. 07828 
Phone: (201)691-1984 

HOURS: Monday & Friday: 12 to 6, Tuesday-Thursday: 1 2 to9 
Saturday: 10 to 5 

Call or write for our free catalog & price list 



16K STATIC RAM 




$310 

Assembled, Tested, 
Guaranteed to 
operate at 4M Hz 
clock for one year. 



Also available with 250 nsec Memory Chips add $35 



Static TMS 4044 or equivalent - Fully Static 4Kx1 Memory Chips 
for full DMA capability, no tricky timing problems. 

Fully S-100 Bus Compatible - All lines fully buffered, Dip Switch 
Addressable in two8K block, 4K increments. Write Protectable 
in 2 blocks, Memory Disable using Phantom, Battery back up 
capability. 

Bank Select - Using output port 40H (Cromemco software 
compatible)-addressable to 512KB of Ram for time share or 
Memory Overlap, also has alternate port 80H. 

Guaranteed - Parts and labor for one year. You may return the 
undamaged board within 10 days for a full refund. 

Orders - You may phone for Visa, MC, COD ($4 handling charges 
for COD) orders. Personal checks must clear prior to shipping. 
Shipping-Stock to 72 hours normally. Will notify expected 
shipping date for delay beyond this. Illinois residents add 5% 
tax. Please include phone number with order. 



S.C. digital 



P.O. Box 906 Phone: 

Aurora, I L 60507 (312)897-7749 



RADIO SHACK COMPUTER OWNERS 



TRS80 



MONTHLY 
NEWSLETTER 



24 

HOUR ORDER LINE 

(914) 425-1535 



PRACTICAL APPLICATIONS 
BUSINESS 

GAMBLING • GAMES 
EDUCATION 
PERSONAL FINANCE 
BEGINNER'S CORNER 
NEW PRODUCTS 
SOFTWARE EXCHANGE 
MARKET PLACE 
QUESTIONS AND ANSWERS 
PROGRAM PRINTOUTS 
AND MORE 



£A 



WORD PROCESSING PROGRAM 

(Cassette or Disk) 

For Writing Letters, Text, Mailing Lists, Files, Etc. 
With Each New Subscriptions or Renewal 




@! 



SCQKIPUTHQWICSi 



MATverv/ygncAi APPuonnorgs sbpmce* 



Box 149 



New City, New York 10956 



ONE YEAR SUBSCRIPTION $24 

TWO YEAR SUBSCRIPTION $48 

SAMPLE OF LATEST ISSUE $4 

START MY SUBSCRIPTION WITH ISSUE 

(#1 - July 1978 • #7 - January 1979) 
NEW SUBSCRIPTION RENEWAL. 

CREDIT CARD 

NUMBER 



EXP. DATE . 



SIGNATURE 



NAME 



ADDRESS 



Send for FREE Software Catalogue (Including listings of hundreds 
of TRS-80 programs available on cassette and diskette). 



Circle 159 on inquiry card. 



BYTE July 1979 



211 



Listing 6 continued from page 210: 



164 






165 


'& : 


begin 


166 




POP; SKIPC #',';') 


167 




end; 


168 






169 


'%' : 


begin 


170 




GETCHAR; PARNUM := NUM(CH); PUSH(PAR/> 


171 




PARBAL : = 1 ; TEMP : = LEVEL; 


172 




repeat 


173 




TEMP := TEMP - 1; 


174 




case STACKITEMP] . TAG of 


175 




MACRO : PARBAL := PARBAL - 1; 


176 




PARAM : PARBAL : = PARBAL - 1 ; 


177 




LOOP : 


178 




end 


179 




until PARBAL = 0; 


180 




CHPOS := STACK[TEMPl. POS; 


181 




OFFSET := STACK[TEMP] . OFF; 


182 




repeat 


183 




GETCHAR; 


184 




if CH = '#' 


185 




then 


186 




begin 


187 




SKIPCr,';'); GETCHAR 


188 




end; 


189 




if CH = 7 then PARNUM := PARNUM - 1 


190 




until (PARNUM = 0) or (CH = ';'); 


191 




if CH = 7 then POP 


192 




end; 


193 






194 


' ' *•" 


: POP 


195 






196 


end 




197 


until CH = 


'$' 


198 


end. 





PET WORD PROCESSOR 




This program permits composing and printing letters, 
flyers, advertisements, manuscripts, etc., using the 
COMMODORE PET and a printer. 
Script directives include line length, left margin, cen- 
tering, and skip. Edit commands allow the user to 
insert lines, delete lines, move lines and paragraphs, 
change strings, save onto cassette, load from cassette, 
move up, move down, print and type. 
The CmC Word Processor Program addresses an RS- 
232 printer through a CmC printer adapter. 
The CmC Word Processor program is available for 
$29.50. Add $1 .00 for postage and handling per order. 

Order direct or contact your local computer store. 



CONNECTICUT microCOMPUTER 

150 POCONO ROAD 

BROOKFIELD, CONNECTICUT 06804 

(203) 775-9659 

TLX: 7104560052 




and a case statement (91 thru 196) which 
selects an action according to the character 
obtained by GETCHAR. The repeat state- 
ment, and hence the interpreter, terminates 
when CH = '$'. The operation of the inter- 
preter can therefore be described solely in 
terms of the action taken for each character 
returned by GETCHAR. The case statement 
can be implemented by comparing CH to 
each legal character in turn. A jump table 
addressed by the ordinal value of CH is more 
efficient, but it may use more memory. 

The characters (blank), ] , and $ require no 
action by the interpreter (93). If the charac- 
ter is $, the repeat statement terminates, 
otherwise control returns to GETCHAR (90) 
which gets the next character. 

If the character is a digit (95), this digit 
and succeeding digits are read, and the value 
of the corresponding number is accumulated 
in TEMP (97 thru 101). The value of TEMP 
is then pushed onto the stack (102). The 
interpreter has now read one character past 
the last digit, which it has to do in order to 
recognize the end of the number, so the 
character pointer is backspaced (102). If the 
character is a letter (105 and 106), its 
address NUM(CH)+OFFSET is pushed onto 
the stack. If OFFSET = 0, the address of A 
is 1, the address of B is 2, and so on. (The 
use of OFFSET will be explained later.) The 
remaining operand is ? (109 thru 111), 
which reads a number from the input file 
and pushes its value onto the stack. The 
Pascal statement READ(TEMP) reads a signed 
number from the input file, having skipped 
over leading blanks. 

Lines 113 thru 131 define the actions 
taken when an operator has been read. 
Operators use the calculation stack 
CALSTACK. The character ! (113) pops the 
top value off the stack and prints it. The 
Pascal statement WRITE (POPCAL : 1) 
prints the value of POPCAL without leading 
or trailing blanks. If blanks are required 
to separate numbers, they must be explicitly 
coded in the Mouse program. 

The arithmetic operators (115 thru 124) 
remove two operands from the stack, apply 
the appropriate operation, and push the 
result onto the stack. Note that the second 
operand is on top of the stack, but must be 
used after the first operand in the noncom- 
mutative subtraction and division operations. 
The Pascal operator div means "divide and 
truncate" (123). The operator . (period) 
replaces the address on the stack by the 
corresponding component of the array 
DATA (126). The assignment operator (=) 
uses the address and value on the stack to 
update a component of the array DATA 
(128 thru 131). 

All of the operations on CALSTACK are 



212 July 1 979 © BYTE Publications Inc 



Circle 78 on inquiry card. 



Circle 73 on inquiry card. 



The 



BioNic Ear 



A landmark book by John L Stewart, with technical 
information never before available. Based on years of 
research with partial support through the original Air 
Force Bionics program of the 1960's. 

Now you can understand and build devices that behave 
like the human ear-or a thing called "Hal". 

• Speech recognition for the robot 

• Aids for the deaf and deaf-blind 

• Reliable voice control 

• Speech bandwidth compression 

• Speech security 

• Binaural localization 

• Bat-like echoranging 

• Sonar target recognition 

• Control of animals with sounds 

• Language training 

• Speech enhancements 

• and much, much more... 

Hardware representations give new understanding of 
man-not only how, but also why the ear works as it does. 

A far-reaching new theory-complete-sophisticated- 
powerful-destined to influence not only computers, but 
also concepts in physiology for decades to come. 



This new and invaluable information for only $35.00 plus post- 
age and handling. ($1.50 regular or $4.00 priority or UPS Blue 
in USA and Canada. Other countries add $1 2.00 for air or $3.50 
surface, all U.S. funds.) California residents also add 6% sales 
tax. Send check, money order, or VISA or Master Charge num- 
ber {and expiration date). Phone orders accepted. Credit only 
on approval. 



COVOX PublishiNq P.O. Box 2342 
Orcutt, CA 93454 • Tel.: (805) 937-9545 



AT LAST! 



A MICROCOMPUTER SYSTEM WITH THE SPEED AND POWER TO HANDLE A 
BUSINESS WORK LOAD. 

The Computex 16-bit MICROENGINETM CPU processes Pascal (UCSD version 3.0) 
five times fasterthan any comparable unit, and at least twenty times faster than 
the8080orZ80. Still ourX-pert SystemsTM are pricecompetitive with 8-bit 
systems. 



$2695* 




PASCAL MICROENGINETM 



' LIMITED TIME cash price. 
10% DOWN, guarantees priority. 



MICROENGINETM specifications: 

• 16-bit P-codeCPU 

• 64K bytes RAM 

• Floppy disk controller 

• Full DMA 

• Floating point hardware 

• 2 serial (RS232) I/O ports 

• 2 parallel I/O ports 

• Pascal and Basic compilers 

• Text editor, 

• File manager 

• CPU and memory diagnostics 

• Symbolic Pascal debugger 



Also available: 

• Complete turn-key systems 

• CRT terminals 

• High speed printers 

• Text quality printers 

• Floppy disk drives 

• Applications software 

Customer satisfaction is guaranteed. Full 
refund with the return of any product within 
10 days. Complete technical catalog S1. 



COMPUTE 

"THE COMPUTER EXPERTS." 



5710 Drexel Avenue 
Chicago, IL 60637 
<312) 684-3183 



Expand yourTRS-80. 

Save $100. 

Meet the Vista V80 Mini Disk System. The perfect way 
to upgrade yourTRS-80* system. Inexpensively. 
(Our $395.00 price is about $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 40ms for 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. 



Circle 82 on inquiry card. 



Circle 378 on inquiry card. 



BYTE July 1979 



213 



coded using the subroutines PUSHCAL and 
POPCAL. They can be coded more efficient- 
ly without these subroutines. For example, 
the action required for division can be 
written: 

CAL:=CAL-1; 

CALSTACK[CAL] :=CALSTACK[CAL] 

divCALSTACK[CAL+1] 

The advantage of using the subroutines 
PUSHCAL and POPCAL is that they can 
check for stack underflow (CAL < in 
POPCAL) and stack overflow (CAL > 20 in 
PUSHCAL), although these checks are not 
shown in this listing. 

When the double quote character " is 
encountered, the interpreter prints successive 
characters up to, but not including, the next 
quote character (133 thru 139). The Pascal 
procedure WRITELN writes a carriage return/ 
line feed to the output file, and WRITE(CH) 
writes the single character CH. 

The left bracket [ introduces a condi- 
tional clause. The value on top of the stack 
is removed and examined. If it is positive 
and nonzero, no action is taken, and the 
interpreter proceeds to execute the bracketed 
clause. If the value on the stack is zero or 




its 
ytes 
ooks. 
argains 



IMSAI 8080 






IMSAI • Cromemco • SWTPC • 

Lear-Siegler • Problem Solvers • 

RCA • North Star • Verbatim • 

ALPHA Micro Systems and others 

Fast, off the shelf delivery. 

Give us a call TOLL FREE 

800/523-5355 

MARKETLINE SYSTEMS, Inc. 

2337 Philmont Ave., Huntingdon Valley, Pa. 19006 
215/947-6670 • 800/523-5355 

Dealer Inquiries Invited 



negative, the interpreter skips to the matching 
right bracket ] . The use of the procedure 
SKIP enables the interpreter to process 
nested conditions correctly. 

Loops are implemented by lines 143 thru 
151. The effect of the left parenthesis ( is 
simply to push a stack frame of type LOOP 
onto the main stack. This stores the current 
value of CHPOS on the stack. (It also stores 
the current value of OFFSET, but OFFSET 
is not used for loops.) When the interpreter 
encounters the up arrow symbol (t), it 
removes and examines the value on top of 
the calculation stack. If this value is positive 
and nonzero, there is nothing to do, but if it 
is zero or negative, the interpreter must exit 
from the loop. It does this in two steps 
(148). First, the main stack is popped. This 
restores the value of CHPOS, which now 
points to the left parenthesis ( at the be- 
ginning of the loop. Then the procedure 
SKIP is used to skip over the body of the 
loop and leave CHPOS pointing to the 
closing right parenthesis ). This is a slightly 
inefficient method of terminating the loop, 
because the entire body of the loop is skip- 
ped, rather than just the section from t to,). 
When the right parenthesis is encountered 
during the execution of the loop, CHPOS 
is set to the stacked value POS, which causes 
the interpreter to jump back to the opening 
parenthesis. The stack is used for loops to 
allow loops to be nested. 

The rest of the case statement, lines 
153 thru 194, handles macro expansion 
and parameter substitution. When the 
interpreter encounters the character # (153), 
it reads the character which follows. This 
character should be a letter (154). If there 
is a definition for the macroinstruction 
(DEFINITIONS[NUM(CH)] > 0), the inter- 
preter pushes a MACRO entry onto the 
main stack (158) and assigns new values to 
CHPOS (159) and OFFSET (160). CHPOS 
now points to the first character of the 
macro definition. The effect of adding 
26 to OFFSET is to allocate 26 local var- 
iables in the array DATA for the use of 
the macro. The address of the local variable 
A is NUM('A')+OFFSET (see line 107); in 
the main program this is 1, in a macro- 
instruction called from the main program it 
is 27, and so on. If there is no definition for 
the macroinstruction, the interpreter skips 
to the semicolon which terminates the 
call (162). The procedure SKIP must be used 
to find the semicolon because the actual 
parameters of the macro call may include 
macro calls. The interpreter continues to 
process the macro definition until it encoun- 
ters an @ } at which point it pops the main 
stack (1 66). Popping the stack resets OFFSET 



214 July 1 979 © BYTE Publications Inc 



Circle 205 on inquiry card. 



uircie ya on inquiry card. 



25 START-AT-HOME 
COMPUTER BUSINESSES 

In "Low Capital, Startup 
Computer Businesses" 

CONSULTING • PROGRAMMING • MICRO COMPUTER 
OPPORTUNITIES • SOFTWARE PACKAGES • FREELANCE 
WRITING • SEMINARS • TAPE/DISC CLEANING • FIELD 
SERVICE • SYSTEMS HOUSES • LEASING • SUPPLIES • 
PUBLISHING • HARDWARE DISTRIBUTORS • SALES 
AGENCIES • USED COMPUTERS • FINDER'S FEES • 
SCRAP COMPONENTS • AND MORE . 

Plus — ideas on moonlighting, going 
full-time, image building, revenue 
building, bidding, contracts, marketing, 
professionalism, and more. No career 
tool like it. Order now — if not completely 
satisfied, return within 30 days for full 
immediate refund. 
• 8 1 /fe x 1 1 ringbound • 156 pp. • $20.00 

Phone Orders 901-761-9090 



X 



itt j^*m*f* ***** it ■ 
tow €*?mi. swuttt^ 



tW. 



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 Q VISA Q Master Charge 
. . . Exp. Date 



Circle 372 on inquiry card. 



f « I I 



Tpsns-Qsls Goppopstfion 



ANNOUNCES MICROCOMPUTERS SOFTWARE 

FOR OHIO SCIENTIFIC, 

APPLE II, AND NORTH STAR. 

OHIO SCIENTIFIC (C1-P, C2-4P, C2-8P) 

•Interest on Loans $ 6.00 

•Checking Account $ 8.00 

*Luna Lauder $ 6.00 

*Star Treck 8K $ 6.00 

*Hangman 8K $ 8.00 

'Basic Tutor Series $29.00 

APPLE II 

*File Management System 32K $60.00 

*Word Processor 32K $60.00 

*Step By Step 16K $39.95 

NORTH STAR 

'Inventory $25.00 

'Medical Billing $25.00 

'Payroll $25.00 

WE HAVE THE MOST SOPHISTICATED LIBRARY OF SOFT- 
WARE FOR THESE MICROCOMPUTERS IN STOCK. SEND 
$1.00 FOR SOFTWARE CATALOG OR CALL OUR TOLL FREE 
NUMBER (800) 327-8455. 

PLEASE SPECIFY DISK OR TAPE VERSION AND 
COMPUTER MODEL. 

Trans-Data Corp. 

161 Almeria Avenue 
Coral Gables, Florida 33134 



EASYSOFTWARE 

for your APPLE 

Let your APPLE teach you 

FRENCH, GERMAN, ITALIAN, <™rfSPANISH 

Each package contains more than 1000 French, German, 
Italian or Spanish words and their English equivalents. You 
may answer in French, German, etc. or English either by 
multiple choice or by fill-in. The programs keep track of cor- 
rect and incorrect responses and sort words according to their 
difficulty. 

Then enjoy COMPUTER ART new beautiful symmetrical 
high resolution color designs. An almost infinite number! 
Endless hours of enjoyment. Don't get high and start 
watching these! 



( ) FRENCH 
( ) GERMAN 
( ) ITALIAN 
( ) SPANISH 
( )HI ART 



$25 Name _ 
$25 Address 

$25 City 

$25 State _ 
$10 Zip 



Send check or money order to: 

EASYSOFTWARE 

PO Box 84305 

Veterans Adm Br 

Los Angeles CA 90073 



MICROPOLIS SOFTWARE (mod id 
WHY 

Do you need the CCA 
DATA MANAGEMENT SYSTEM? 

BECAUSE 

With this powerful system, 

You're in control 

■YOU decide on the files you need {Name & Address 

A/R. A/P. Payroll. Inventory, Customer Lists, etc ) 

■YOU choose the names for the files and all 
of the data fields in the files. 

■YOU let the DMS assist you in maintaining 
your files using YOUR field names. Records 
can be added, updated, deleted, inspected, 
or scanned for in any file. 

■ YOU let the DMS sort your files as needed. 

•YOU select the report or mailing label format, 
selecting title, fields, totaling, sub-totaling, 
editing and more. 

Stay in control ! 

Order the CCA Data Management System today! 
Only $150.00 - Comprehensive Documentation 



Dealer 
Inquiries 
Invited 



Creative Computer Applications 

2218 Glen Canyon Road 

Altadena, CA 91001 

(213)798-4529 



■Ml 



IBiWBl 



Circle 103 on inquiry card. 



Circle 84 on inquiry card. 



BYTE July 1979 



215 



correctly, but it leaves CHPOS pointing at 
the macroinstruction name. The call to 
SKIP (166) moves CHPOS past the macro 
call so that processing can continue. 

The most difficult task for the interpreter 
is processing a formal parameter (169 thru 
192). First, the interpreter reads the param- 
eter name and sets PARNUM to the corre- 
sponding numeric value (170). For example, 
if it reads 96A, PARNUM is set to 1. A new 
entry is created in the main stack. The next 
problem is to find, in the stack, the stack 



#A,3; $A #B,%A; (a) $B %A !@ $$ 



I 


I 


\ 












POS 


TAG 


OFF 


LEVEL 




PARAM 




4 














PARAM 




3 












MACRO 


26 


2 








1 


MACRO 





1 











Figure 7 : The interpreter has read the forma i parameter %A in the cail #B,A; 
and is looking for the actual parameter 3. Level 1 of the stack, shown at the 
right, contains a pointer to the corresponding macro call #A,3; . The inter- 
preter finds this pointer by searching the stack for a MA CRO frame matching 
the PA RAM frame at stack level 4. 




CY-480 

UPC™: 

THE WORLD'S 

ONLY SINGLE CHIP 

LSI UNIVERSAL PRINTER 

CONTROLLER. NOWONLY $25.00! 



The CY-480 UPC n 
others don't! 



. providing the kind of service and special features 



And that means for off-the-shelf low prices, the CY-480 provides great flexibility and 
easy interfacing. Cybernetic Micro Systems' amazing CY-480 will control and 
interface standard 5" x 7" dot matrix printers (including those from Victor, LRC, 
Practical Automation and Amperex) with speeds up to 200 CPS! Operating from a 
single +5V power supply, the flexible CY-480 will interface easily with any 
microcomputer or minicomputer system through standard 8-bit ports. The CY-480 
accepts either serial (RS232C) or parallel ASCII input from the host system's data 
channel. 

The CY-480 replaces bulky, expensive, dedicated controllers. 

This small, single LSI package offers a 5 x 7 dot matrix character generator, full 
upper and lower case ASCII 96-character font, and a 48-character (expandable by 
daisy-chaining) internal line buffer storage. Standard features include a 10, 12 or 16 
characters/inch variable character density command, and horizontal and vertical 
independently expanded print command. The CY-480 provides graphic capability 
and includes a "flip-print" operating mode for 180° viewing, and ready lines provide 
full asynchronous communications with handshaking. 

Stock delivery . . . only $25 a single unit . . . send for YOURS todayl 

CYBERNETIC MICRO SYSTEMS 

2378-B Walsh Ave.. Santa Clara, CA 95050 
Phone (408) 249-9255. 



VISA and 

MASTER CHARGE accepted. 



216 July 1 979 © BYTE Publications Inc 



Circle 88 on inquiry card. 



frame created by the corresponding macro 
call. This would be easy if the call frame 
was at the top of the stack, but this is not 
necessarily the case. 

Consider the situation shown in figure 1, 
which shows a simple Mouse program and 
the main stack during its execution. The 
interpreter reads #A, creates the stack frame 
at level 1, and moves CHPOS to $A. It then 
reads #B, creates the stack frame at level 2, 
and moves CHPOS to $B. Now it encounters 
%A } creates a PARAM stack frame at level 3, 
and sets CHPOS to the actual parameter. 
The actual parameter is %A (in the call 
#B,%A;) and so it creates a new stack frame 
at level 4. Now the interpreter has to find 
the actual parameter corresponding to this 
°/oA. 

In order to do this it must locate the 
stack frame at level 1, which contains a 
pointer to #A . It can find the correct frame 
by using the fact that MACRO and PARAM 
frames in the stack are nested. (The situa- 
tion is slightly more complicated when an 
actual parameter contains a macro call, but 
the same strategy works.) The search is 
implemented by lines 171 thru 179 of the 
interpreter. LOOP frames on the stack are 
ignored (177). 

When the interpreter has found the cor- 
rect stack frame, it sets the values of CHPOS 
and OFFSET from it (180 and 181). The 
stacked value of OFFSET must be used 
because variables in an actual parameter 
belong to the level of the macro call, not to 
the level of its definition. CHPOS now 
points to the name of the macro in the 
macro call. The interpreter finds the correct 
parameter by counting PARNUM commas 
(182 thru 190). 

The counting process is complicated by 
two factors. One is that the actual param- 
eter may contain macro calls; this con- 
tingency is handled by SKIP (184 thru 188). 
The other complication is that there may be 
no actual parameter corresponding to the 
formal parameter. In this case, the interpret- 
er will encounter a semicolon (190), and 
must pop the stack frame that it just created 
(191). 

An actual parameter is terminated by 
either a comma or a semicolon. The action 
of the interpreter is simply to pop the main 
stack (194). 

Improving the Implementation 

The Mouse interpreter that is presented 
here has been pared to the bare essentials. 
It is complete and accurate, and was used 
to test the example programs of listings 1 
thru 5. Mouse is easier to use, however, if 
the interpreter does some error checking. 






THANKS FOR 
THE MEMORIES, 






•'#■' ^ ^ &*■>■ ;. •,, > 




Ire* 

■'ft 1 


:{. 1 


m mim » » f 






IHfitiM^HHHHflHMH 



Thanks to these inexpensive Pet and TRS-80 memories and disk drives you 
can instantly turn your personal computer into a speedy and efficient 
professional computer. 



Expand your Pet. 

1. Disk Drive. Double density 400k on-line 
disk drive and DOS operating system 
including 17 additional BASIC commands. 
Random or indexed sequential access. 
Exceptionallyfast — loads 20k program in 
3 seconds. Only $1295. 

2. Expandamem™ Completely internal 
memory that adds up to 32k. 32k unit 
allows for 8k of assembly language 
subroutines accessed via the USR 
command. 16k only $425. 24k only $525. 
32k only $615. 

3. Software. Complete library available. 
Write for details. 

Expand your TRS-80. 

1 . Disk Drive. Compact dual disk drive is 
completely compatible with TRS-80 DOS 
and uses own controller. Only $895. 



IMMEDIATE DELIVERY! ORDER TODAY! 



COMPU/THINK™ 

3260 Alpine Road, Menlo Park. CA 94025 
(415) 854-2577 



Please send me the following: 

□ Pet Disk Drive 

a Pet Expandamem™ D 16k D 24k D 32k 

G Pet Software (Inio only) G TRS-80DiskDrive 

Total Enclosed: $ 

Check or Money Order only. Calif. Res. add 

6% tax. Freight pre-paid in continental U.S. 

Name 



Addiess 

City State 

Dealer Inquires Invited. 



Zip 



Circle 72 on inquiry card. 



BYTE July 1979 



Circle 353 on inquiry card. 



It's 



LOGIC 

for graphics! 



3D GRAPHIC SOFTWARE 

for Apple II, TRS-80, 8080 and Z80, 
M6800, and BASIC. 

Plus Graphic Drivers for Dazzler, Matrox 
ALT-256 and 51 2, and Vector Graphics. 



I HARDWARE . ■ ■ 

I Matrox ALT-256 and 

I _ ALT-51 2 display 
^ I t=« boards for your 
S100bus. 

We're open 9 to 6, 
Monday thru Friday, 
central time. 
Give us a call. 



-^^ 



The engineering & graphics people 



(217) 367-0299 



LOGIC 

'Box V, Savoy, I L 61874 



HOW TO START 

- YOUR OWN 

SYSTEMS 

HOUSE 

A practical guide for the small 
EDP entrepreneur. 213-page 
manual covers all aspects of start- 
ing and successfully operating a 
Small Business Computer com- 
pany. 5th revised edition June 1979. From the contents: 

• The Systems House Industry • Hardware, Software or 
Both? • Market Selection & Evaluation • Industry Applica- 
tion Opportunities • Equipment Selection • Becoming a 
Distributor • Product Pricing • Getting Your Advertising 
Dollars Worth • The Selling Cycle • Financing ForThe 
Customer • Questions You Will Have To Answer Before 
The Customer Buys • Solving The Service Problem • 
Protecting Your Product • How To Write A Good Business 
Plan • Raising Capital • 




Send $36.00 (check, VISA or Mastercharge) to: 

Essex Publishing Co., Dept. B 
285 Bloomfield Avenue 
Caldwell, N.J. 07006 



H 



Credit card orders: Send card #, date exp. Add $2.00 for 
rush, air mail shipping. N.J. residents add 5% sales 
tax. For faster shipment on credit card orders, phone 
(201) 783-6940. 



Some of the errors which it can easily detect 
are listed here: 

• Stack underflow and overflow (both 
stacks). Underflow is always the result 
of an error in the Mouse program; 
overflow may be due to an error in 
the Mouse program, but it is more 
likely that the stack is not large 
enough for the program. Checks for 
underflow should be incorporated into 
POP and POPCAL, and checks for 
overflow should be incorporated into 
PUSH and PUSHCAL. 

• Illegal characters. The interpreter 
should check the program for illegal 
characters; this can be done during 
loading. 

• Division by zero. TEMP = at line 
122. 

• Illegal address. The value of the stack 
at line 1 26 should satisfy 1 < POPCAL 
< OFFSET+26; the same test can be 
made at line 129. A stricter address 
check would be preferable, but is not 
easy to devise, since a macroinstruc- 
tion can access the variables both at 
its own level and at lower levels by 
means of parameters. 

• Context errors. The characters # and 
% must always be followed by a letter. 

• Undefined macroinstruction or missing 
actual parameter. These would be re- 
garded as errors in a stricter implemen- 
tation of Mouse. 

A tracing option is a powerful aid to 
debugging Mouse programs. The easiest way 
to trace the execution of a Mouse program is 
to make the interpreter display the value of 
each character it processes. This can be done 
by inserting WRITE(CH) after GETCHAR 
at line 90 of the interpreter (listing 6). It is 
also useful to trace the results of assign- 
ments. This can be done by printing the 
value of TEMP at line 129. 

The size of the arrays (12 thru 16) can 
be adjusted to suit your requirements. Most 
expressions can be evaluated with a small 
stack of two or three entries, and you may 
find it surprising that CALSTACK has space 
for so many entries. The reason is that some 
recursive macroinstructions (such as S and T 
in listing 1 ) create an entry in the calculation 
stack at each level of recursion, and CAL- 
STACK must be large enough to hold these. 
The array DATA makes the poorest use of 
space; 26 words are allocated at each level of 
macrocall. This implementation allows ten 
calling levels, which is not as generous as 
it sounds if you are using recursive macro- 
instructions. You can reduce the space 
requirement to ten variables (A,B. . J) 



218 July 1 979 © BYTE Publications Inc 



Circle 132 on inquiry card. 



at each level, by changing line 160 to 
OFFSET := OFFSET + 10. Note that a 
macroinstruction with no local variables 
needs space in the array STACK but not in 
the array DATA, so recursive macros such as 
S and T in listing 1, V in listing 3, and H in 
listing 4, are limited only by the size of 
the arrays STACK and CALSTACK. 

Improving the Language 

It is easy to add features to Mouse. A 
random number generator is useful, particu- 
larly for programming games. Probably the 
simplest method is to use a unary operator 
which multiplies the number on the top of 
the calculation stack by a real random num- 
ber R such that < R < 1, truncates the 
result, and increments it. If the character : 
(colon) is used to denote the operator, then 
6: would leave a simulated die throw on the 
stack. 

The most severe restriction of this partic- 
ular version of Mouse is that it cannot 
process character data. A more powerful 
version of Mouse can be obtained by redefin- 
ing ? and / so that they read and write a 
single character. The disadvantage is that 
macroinstructions are then required to read 
and print numbers — not a large price to pay 
for the greater generality achieved. 



It is quite easy to add a case construction 
to the language. The following syntax is 
suitable: 

E<C„C 2 ...C n > 

Each Cj is a clause. When the interpreter 
reads <, it performs the following actions: 

• skip to the matching > and push a 
CASE frame onto the main stack; 

• return to <; 

• if E > 1, then scan the clause list until 
the (n-1)th comma is encountered, 
otherwise pop the stack. If the charac- 
ter > is encountered during this scan, 
then E > n, and the case clause is 
null or illegal. 

The action for comma, which is already 
defined to be POP, is correct. This construc- 
tion will select and execute one of the 
clauses C-j,C 2 . . .C n , according to the value 
of E. It is very easy to write a random sen- 
tence generating program in a version of 
Mouse to which a random number generator 
and a case construction have been added. 

The facilities for annotating Mouse pro- 
grams are very limited. Strings in quotes may 
be used in the main program outside loops. 
These serve as comments to the program 



68 MICRO JOURNAL 



® 



* 
* 




THE 

ONLY 

6800/09 

USER-ORIENTE 
MAGAZINE 



Months ahead of all others with 
6800/09 articles & new products 

Crunchers Corner — Bryant (A monthly programming 
tutorial) * Flex® to BFD — Puckett * Tiny Music — 
Thompson * Semiconductor, Part 1 — Kinzer * Soup Up 
Your TVT — Pass * Hints & 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 
for6800 — 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 

BYTE 



TOTAL 
PAGES 



KB BYTE CC DOBB'S 

7.8 6.4 2.7 2.2 19.1 ea. mo. 

Average cost for all four each month: S5.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 Q — VISA □ 

Card =: Exp. Date 

For □ 1-Year Q 2 Years □ 3 Years 
Enclosed: S 



Name 
Street- 



City_ 



-Zip 



My Computer ls:_ 



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. 



July 1979 © BYTE Publications Inc 219 



text and also as a guide to progress when the 
program is running, since they are printed by 
the interpreter. The interpreter ignores text 
between macro definitions, so macroinstruc- 
tions can be titled. However, these methods 
use up valuable space in the array PROG. A 
better solution is to use a special symbol 
such as ' (apostrophe), or a pair of symbols 
such as | and [> , and to modify the loader 
so that it does not store comments in 
memory. 

Conclusion 

Mouse is simple enough to be imple- 
mented on a small computer system in a few 
days, yet it is rich enough to give insight into 
the mechanisms used by much higher level 
languages. The Mouse interpreter can be 
used by itself or as part of a larger system. 
The General Purpose Macrogenerator is 
considerably more powerful than Mouse, 
but nonetheless I think that Strachey's 
appraisal of the GPM provides an apt 
conclusion: 

It has been our experience that the 
GPM, while a very powerful tool in 
the hands of a ruthless programmer, is 
something of a trap for the unsophisti- 



cated one. It contains in itself all the 
undesirable features of every possible 
machine code — in the sense of invit- 
ing endless tricks and time-wasting 
though fascinating exercises in inge- 
nuity — without any of the irritating 
ad hoc features of real machines. It 
can also be almost impenetrably 
opaque, and even very experienced 
programmers indeed tend to spend 
hours simulating its action when one 
of their macro definitions goes wrong. 
Furthermore, it is remarkably good at 
using up machine time — fortunately 
the programs written for it are usually 
rather short. ■ 



REFERENCES 

1. Grogono, Peter, "MUSYS: Software for an 
Electronic Music Studio," Software: Practice 
and Experience, volume 3, 1973, pages 369 
thru 383. 

2. Strachey, C, "A General Purpose Macrogener- 
ator," Computer Journal, volume 8, 1965, 
pages 225 thru 241. 

3. Jensen, K and N Wirth, PASCAL User Manual 
and Report, Springer-Verlag, 1976. 

4. Grogono, Peter, Programming in PASCAL, 
Addison-Wesley, 1978. 



^ the micro 
Computer Theatre 

^^^mmg) FEATURE 
t^x^iX ATTRACTIONS 



CrOllieitlCO system Three Features.. 

• Z-80A Micro Processor 

• 32K RAM • Dual 8" Disk 
Drive, Easily Expandable 
to 4 Drives. • RS232 
and Printer Interface. 

List $5,990. Our Price 
$4,9.95. 

CromeitlCO system two Features... 

• Z-80A Micro Processor • 32K RAM 

• Dual 5" Wangco Drives • RS232 and Printer 
Interface. List $3,990. Our Price $3,095. 

Pre-paid orders are shipped with any 
software package FREE (specify) 





EXIDY SORCERER 16 K $1,150. 

■K e • Extra 

A tree! 16K Memory 



pCippkZH 16K S1.195 
free ! 32 K Memory 




BUY A PETl6K RAM FOR ONLY S950. 
AND RECEIVE f — ee f 
A CASSETTE RECORDER ****» • 



auto modem n™r me ^appkz n 

a special introductory offer... $ 259. 
Here's an ^nppfc, there's an ^appta (or any other 
remote computer, large or small) and the 
automodem will combine the two to establish a 
total data communication system 

the applestick™ 

The NEW Applestick Joystick /Game Paddles 
Combination. Introductory price $ 34.95 

Hours: Tues-Fri 11:00 AM to 8:00 PM-Sat 10:00 AM to 
6:00 PM (Closed Sun, Mon) 

Master Charge, VISA, BofA are accepted. No COD. Allow 
two weeks for personal check to clear. Add $1.50 for 
handling and postage. For computer systems please add 
$10.00 for shipping, handling and insurance. California 
residents add 6% sales tax. 



computer 



OF 

SOUTH 
BAY 

MICRO computers •personal /small business 

15818 Hawthorne Boulevard 
Lawndale, California 90260 (213) 370-4842 j 



220 July 1 979 © BYTE Publications Inc 



Circle 54 on inquiry card. 



Circle 316 on inquiry card. 



WE SHIP FROM STOCK- EVERYTHING FACTORY FRESH, FULLY WARRANTEED 

WE ARE KNOWN FOR OUR PROMPT, COURTEOUS SERVICE 

TELETYPE MODEL 43 TTL $985 

RS232 $1 ,085 

(We stock Teletype Paper and Ribbons) 

DEC LA 34 

High quality, hard copy, dot matrix printer. Plug compatible substitute 

for the Teletype 43. RS232 included at no extra cost $1,159 

HAZELTINE 1500 assembled $945 

1510 $1,085 

Also available with French, German or Danish character sets. 

MARINCHIP SYSTEMS M9900 CPU 

The Complete, Compatible 16 bit CPU for the S-100 Bus 

Kit Assembled 

M9900 (includes software) $550 $700 

We configure systems to suit your individual requirements. 
MODEM 

Originate/Answer. The "CAT" from Novation $190 

HARD DISK CONTROLLER From Konan $1,550 

S-100 compatible; plugs into S-100 mainframe, controls 1-4 drives. 

We Also Carry: 
•PER SCI* FUJITSU HARD DISK DRIVES'TEI MAINFRAMES' 

• TARBELL CONTROLLERS • INTERTUBE • SOROC • 
• IMS AND OTHER MEMORIES • TELL US OF YOUR NEEDS • 

• WE CAN OBTAIN MANY ITEMS AT LOW COST • 

To Order: $1 2 shipping for Terminals. $4 shipping for other items. 24 hr. 

shipping upon receipt of certified check or money order. Personal checks: 

allow 10 days. Credit cards: 4% charge. NY residents add tax. 

• WE EXPORT TO ALL COUNTRIES • 

OVERSEAS CALLERS USE (212) 448-6298 ONLY 

WE CAN ADAPT MOST EQUIPMENT FOR 220v, 50Hz 

We have no reader inquiry number. Please call or write. 

john d. OWENS ASSOCIATES, inc. 

147 NORWOOD AVENUE 
STATEN ISLAND. NEW YORK 10304 

DAY. EVENING. WEEKEND. HOLIDAY CALLS WELCOME! 



(212) 448-6283 



(212) 448-6298 



CATCH THE S-100 BUS! 






Imsai "8080" 750.00 

Imsai MI0 (two parallel, one serial, 

one control & Tarbell tape 

cassette port 

SSM 5B-1 Music Synthesizer 

Board Kit 
IMC PRO- 1 Dual Extender Card 
Thinker Toys Discus II - Double 

Density Disk System 

S.D. Systems Versaf loppy Disk 
Controller Kit 

S.D. Systems 32/64K 
Memory Board Kit 





OUR 


LIST 


SPECIAL 


PRICE 


CASH 




PRICE 



625.00 



195.00 150.00 



150.00 
39.00 

1149.00 

159.00 

141.00 



125.00 
33.00 

977.00 

135.00 

120.00 



Call for Our Prices on: 

Cromemco, IMSAI, Vector Graphic, North Star, Sanyo, 

Hazeltine, IMC plus Most Other Major Lines. 

Subject to Available Quantities • Prices Quoted Include Cash Discounts. 
Shipping & Insurance Extra. 

bus S-IDD,inc. 

Address. . .7 White Place 

Clark, N.J. 07066 

Interlace. . .201-382-1318 




jcippkz computer 

SOFTWARE 
FOR BUSINESS 

includes: 

Mailing List 

* General Ledger 
Payroll 

Phone Directory 

* Customer Information 
Invoice Writer 
Inventory 

* CheckWriter 

* Complete Business System 
Master Business System 

Available Soon Word Processor 



vidEoisSsWould 



2224 N. University, Peoria, II. 61604 
Phone 309/686-9352 

'Trademark of Apple Computer Co. Inc. 



^A* • 






Main/Frames 



Main/Frames *. $200 



• 14 Basic Models Available 

• Assembled & Tested . 

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

• 15 Slot Motherboard 
(connectors optional) 

• Card cage & guides 

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

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



w 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 



Circle 376 on inquiry card. 



Circle 179 on inquiry card. 



BYTE July 1979 221 



EL 



THE 

RECREATIONAL 
PROGRAMMER 



A 



O 

00 



QUALITY SOFTWARE! 

Tl & HP Programmables 
BASIC tor most computers 

GAMES- ALGORITHMS- PUZZLES 
STOCK ANALYSIS- AND MORE! 

OVER 30 PAGES BIMONTHLY! 

ANNUAL SUBSCRIPTION ONLY: 
S12 within USA & APO/FPO's 

$24 Foreign by AIRMAIL 
Single issue for S3 tncl P&H 

VISA and MASTERCHARGE OK! 
CALL (616)343-3546 NOW! 
Box 2571 Kalamazoo Ml 49003 




6800 SS50 16K SYSTEMS 

Includes: Mainframe cabinet, mother board, power I 
supply, fan. CPU. 16K static RAM, and choice of I/O I 

card $1294.29 1 

Other packages available. 

16K STATIC RAM BOARDS — SS50 1 

| Gold Bus connectors — DIP switch controllable I 
addressing, write protect and enabeling of each 4K I 

block. Tested at 2 MHz Assembled $298.13 

Above but sockerted and with software control registers. [ 
Assembled $368. 16 | 
| TI TMS 4044' s: 

450 ns $5.00 each I 

250 ns $6.00 each I 

[ 2708*s $7.90 each I 

These are factory prima chips from same shipments we use i 
I our professional quality boards. 
Add $10 handling on orders under S200. 



cimix 




inc. 



1337 W. 37th Place • Chicago, IL 60609 1 
(312)927-5510 • TWX 910-221-4055 

The Company that delivers. 

Quality Electronic products since 1975. 

GIMIX' and GHOST 1 are registered trademarks d GIM1X INC j 



TRS-80 disc software 

WORD PROCESSOR Avoid work processor 
converted from other system. Hard to load 
object file S. cannot store text in disk. Ours is 
specifically designed for the TRS-BO. Written in 
BASIC. No special hardware and text limit. $39. 
INVENTORY While others use inefficient 
sequential file, we use 9-digit key for fast on-line 
random access. Reports give order info. 
performance summary, etc. $39. 
MAIL print report S. labels sorted by any field. 
Random access, special buffering technique, 
$35 

DATA BASE MANAGER You can maintain a data 
base S. produce reports without any 
programming. Define fields, types, screen S. 
report formats on-line. Almost use up the 
required 32K memory. $49. 

KEY RANDOM ACCESS UTIL hashing, blocking, 

buffering, auto I/O error-retry. Put your disk into 

optimal use. $19. 

ACCOUNT manage client accounts S. account 

receivable. Remark fields for general use. 

Automatic billing S. transaction recording. 32K 

req. $59. 

Full documented. Fast delivery. Our competitors 

offers $99 cassette word processor. $90 'on 

memory' inventory, inflexible mail system. 16K 

data base. 

MICRO ARCHITECT 
96 Dothan St., 

Arlington, MA 02174 



Intel 8080 Microprocessor Instruction Set 



Technical 
Fcpum 



In my work with the 8080 micropro- 
cessor, I have found the accompanying 
instruction set summary very useful. The 
instructions are grouped in five tables ac- 
cording to function, with a single line sum- 
mary being given for each instruction. In 
addition, there is an explanatory table of 
nomenclature and symbols. The order of 
the instructions is the same as given in the 
Intel 8080 Microcomputer Systems User's 
Manual. The method of tabulation makes 
it very clear which registers and flags are af- 
fected by the execution of each instruction. 

R S Clist PhD, Scientist, 

Electronics Group, Dept of Scientific and 

Industrial Research, POB 2225, Auckland 

NEW ZEALAND.- 



Symbol 


M 


eaning 


A 


8 bit accumulator 




FJ, C, D, E, H, L 


8 bit general purpose registers 




F 


Condition code flags Z, S, P, CY, AC (Zero, Sign, Parity, Carry, and 




Auxiliary Carry) 




PSW 


16 bit Processor Status Word (comprising A and F) 


rp 


One of the register pairs B representing BC 




D representing DE 


- 


H representing HL 




SP representing 16 bit stack pointer 


PC 


16 bit program counter register 




M 


Memory location whose address is in 


HL 


v, M,r2 


One of the registers A, B, C, D, E, H, 


L, or M 


r m 


bit m of the register r 7 6 


5 4 3 2 10 


data 


8 bit data quantity 




addr, data16 


1 6 bit address or data quantity (note 


: low byte is stored first) 


PP 


8 bit port number 




n 


Restart number thru 7 




cc 


One of the condition code tests NZ 


not zero Z =0 




Z 


zero Z = 1 




NC 


no carry CY=0 




C 


carry CY= 1 




PO 


parity odd P =0 




PE 


parity even P = 1 




P 


plus S =0 




M 


minus S =1 


( ) 


indirect reference 




-(SP) 


stack push operation 




(SP)+ 


stack pop operation 




<- 


is replaced by 




** 


is exchanged with 




- 


boolean NOT (bar above symbol) 




A 


boolean AND 




V 


boolean OR 




v- 


boolean Exclusive — OR 




+ 


addition 






two's complement subtraction 





Data Transfer Group 



Flags affected 
Z S P CY AC 



Registers 

affected Bytes Op code 



r2 

r 

rp 

A 

HL 

A 

HL, DE 



MOV 

MVI 

LXI 

LDA 

STA 

LHLD 

SHLD 

LDAX 

STAX 

XCHG 



Operands Meaning Action 

r2,r1 Move register r1 to register r2 r2 -<— r1 

r, data Move immediate data r *- data 

rp, data16 Load register pair immediate rp*-data16 

addr Load accumulator direct A «-- (addr) 

addr Store accumulator direct (addr) •*- A 

addr Load HL direct HL <- (addr) 

addr Store HL direct (addr)^HL 

rp* Load A indirect A «-- (rp) 

rp* Store A indirect (rp) <- A 

Exchange HL with DE HL ~ DE 



*B or D only 



Vn/VVn/ 

n/n/n/Vn/ 



n/Vn/VV 



A, F 
A, F 
A, F 
A, F 
A,F 
A,F 
A, F 
A, F 
r, F 
r, F 
rp 
rp 

HL, CY 
A, F • 



ADD 

ADI 

ADC 

ACI 

SUB 

SUI 

SBB 

SBI 

INR 

DCR 

INX 

DCX 

DAD 

DAA 



r 

data 

r 

data 

r 

data 

r 

data 

r 

r 

rp 

rp 

rp 



Arithmetic Group 

Add register 

Add immediate 

Add register with carry 

Add immediate with carry 

Subtract register 

Subtract immediate 

Subtract register with borrow 

Subtract immediate with borrow A 

Increment register 

Decrement register 

Increment register pair 

Decrement register pair 

Add register pair to HL 

Decimal adjust accumulator 



A «~ A + r 
A <- A + data 
A <~ A + r + CY 
A «~ A + data + CY 
A <-- A - r 
A <- A - data 
A <-- A - r - CY 

- A - data - CY 
r «-- r + 1 
r 4- r - 1 * 
rp«- rp + 1 
rp-^ rp — 1 * 
HL*-HL + rp 

The 8 bit number in A is adjusted 
to form two 4 bit BCD digits. 



*binary subtraction 



r 



TERMINALS 
FROM TRANSNET 



PURCHASE 
FULL OWNERSHIP AND LEASE PLANS 

PURCHASE PER MONTH 

DESCRIPTION PRICE 12 MOS. 24 MOS. 



36 MOS. 



LA36 DECwriter II 


. $1,595 
. 1,295 
. 2,295 
. 1,995 
. 1,995 
. 1,695 
. 1,895 


S 152 
124 
219 
190 
190 
162 
181 


S 83 

67 

120 

104 

104 

88 

97 


S 56 


LA34 DECwriter IV 


45 


LA1 20 DECwriter III, KSR . . . 
LS120 DECwriter III, RO . . . . 

LA180 DECprinter I, RO 

VT100 CRT DECscope 

VT132 CRT DECscope 


80 
70 
70 
59 
66 


TI745 Portable Terminal 

TI765 Bubble Memory Term. 
TI810 RO Printer 


. 1,875 
. 2,795 
. 1,895 
. 2,395 


179 
267 
181 
229 


98 
145 

99 
125 


66 
98 
66 


TI820 KSR Printer 


84 


ADM3A CRT Terminal 


875 


84 


46 


31 


QUME Letter Quality KSR. . . . 
QUME Letter Quality RO 


. 3,195 
. 2,795 


306 
268 


166 

145 


112 
98 


HAZELTINE 1410 CRT 

HAZELTINE 1500 CRT 

HAZELTINE 1520 CRT 


895 
. 1,195 
. 1,595 


86 
115 
152 


47 
62 
83 


32 
42 
56 


Dataproducts 2230 


. 7,900 


755 


410 


277 


DATAMATE Mini Floppy 1 ,750 1 67 

FULL OWNERSHIP AFTER 12 OR 24 MONTHS 
V^ 107o PURCHASE OPTION AFTER 36 MONTHS 


91 


61 



/^ACCESSORIES AND PERIPHERAL EQUIPMENT^ 

ACOUSTIC COUPLERS • MODEMS • THERMAL PAPER 
RIBBONS • INTERFACE MODULES • FLOPPY DISK UNITS 

PROMPT DELIVERY • EFFICIENT SERVICE J 



, ransNet Corpora tion 

2005 ROUTE 22, UNION, N.J. 07083 

201-688-7800 



NEW! 
779 Line Printer Timer 

Works with TRS-80® and 

Centronics® 779 Line Printers 

Turns Motor on and off 

Automatically 

No software or hardware changes needed. 
Saves motor life and power. Just solder 3 
wires and mounts inside printer. Dealers 
wanted, inquire on company stationery, 
also O.E.M. and service accounts wanted. 
$75.00 complete with one year warranty. 
Make checks payable to: 

Digital Timing Devices 

4306 N.E. 6 Ave. 

Ft. Lauderdale, FL 33334 USA 

Phone #(305) 561-3757 

Division of D. S.S.I. 
® These are registered trademarks for Radio Shack & Centronics. 



Circle 373 on inquiry card. 



Circle 102 On inquiry Card. July 1979 © BYTE Publications Inc 223 

















Logical Group 




Flags affected 
Z S P CY AC 


Registers 
affected 


Bytes 


Op code 


Operands 


Meaning 


Action 


V n/ n/ V 

V V n/ o V 

VV Vo o 
VVVo o 

V n/ n/ 

V V n/n/ V 


A, F 
A, F 
A, F 
A, F 
A, F 
A, F 

F 


1 

2 
1 
2 
1 
2 

1 


ANA 

ANI 

XRA 

XRI 

ORA 

ORI 

CMP 


r 

data 

r 

data 

r 

data 

r 


AND register 
AND immediate 
Exclusive— OR register 
Exclusive —OR immediate 
OR register 
OR immediate 

Compare register 


A^-AAr 
A*- A A data 
A^-AVr 
A+- A V data 
A^-AVr 
A^-AV data 

(Z=1ifA=r) 
f (CY = 1 if A<r) 


V V n/n/ V 


F 


2 


CPI 


data 


Compare immediate 


(Z= 1 if A = data) 
A " data (CY = 1 if A < data) 


V 


A, CY 


1 


RLC 




Rotate left 


A n + 1*- A n< A 0*- A 7' CY *- A 7 


V 


A, CY 


1 


RRC 




Rotate right 


A n^ A n + V A 7^ A 0' CY ^ A 


V 


A, CY 


1 


RAL 




Rotate left through carry 


A n+1 +-A n ,CY<-A 7 ,A <-CY 


V 


A, CY 


1 


RAR 




Rotate right through carry 


A n -A n+ 1'CY-A 0/ A 7 -CY 


1 


A 

CY 

CY 


1 

1 
1 


CMA 
CMC 
STC 




Complement accumulator 
Complement carry 
Set carry 


A+- A 

CY^CY 

CY+-1 



Branch Group 



Flags affected 


Registers 


Z S P CY AC 


affected 




PC 




PC 




PC, SP 




PC, SP 




PC, SP 




PC,SP 




PC, SP 




PC 



Bytes Op code 



Operands 



3 JMP addr 

3 Jcc addr 

3 CALL addr 

3 Ccc addr 

1 RET 

1 Rcc 

1 RST n 

1 PCHL 



Meaning 

Jump 

Conditional jump 
Call 
Conditional call 

Return 

Conditional return 

Restart 

Jump HL indirect 



Action 

PC «-- addr 

PC*- addr (if cc true) 
-(SP) +-PC, PC <■- addr 
-(SP)^-PC, PC +- addr (ifcc 
true) 
PC+-(SP)+ 
PC*- (SP)+ (if cc true) 
-(SP)«-PC, PC«-8n 
PC<- HL 



Stack, I/O, and Machine Control Group 



Flags affected 


Registers 










Z S P CY AC 


affected 


Bytes 


Op code 


Operands 


Meaning 




SP 


1 


PUSH 


rp* 


Push register pair 




SP 


1 


PUSH 


PSW 


Push processor status word 




SP, rp 


1 


POP 


rp* 


Pop register pair 


V n/n/ n/n/ 


SP, A, F 


1 


POP 


PSW 


Pop processor status word 




HL 


1 


XTHL 




Exchange stack top with HL 




SP 


1 


SPHL 




Move HLto SP 




A 


2 


IN 


PP 


Input 






2 


OUT 


PP 


Output 






1 


El 




Enable interrupts 






1 


Dl 




Disable interrupts 






1 


HLT 




Halt 



NOP No Operation 

* B, D,or H only 



Action 

-(SP) +- rp 
-(SP) +- A, F 
rp^(SP)+ 
A, F+-(SP) + 
HL<— (SP) 
SP+-HL 
A«--(pp) 
(pp) «- A 

Enable interrupts after execu- 
tion of next instruction. 
Disable interrupts after execu- 
tion of this instruction. 
Stop the processor (may be 
started again only by interrupt 
or hardware restart). 
No operation is performed. 



224 July 1 979 © BYTE Publications Inc 



Technical 
Fcnxn 



Headwind 
Progress Made 



In "Computer Assisted Flight Planning " 
(March 1979 BYTE, page 206), the author 
did, indeed, identify a problem suited for 
the computer. One aspect of the article is 
unclear and I would like to suggest a solu- 
tion to the headwind/tailwind limitation de- 
scribed by the author. 

The unclear aspect of the article relates 
to the two pass system. Such a system is not 
really necessary as the author has already 
solved the problem. The drift equation is the 
exact solution of the velocity vector triangle 
for the crab angle (angle at which the plane 
must be turned so that the resultant forces 
of the wind and airplane produce travel in 
the desired direction). In other words, the 
drift plus the true course heading yields the 
true heading to be taken. The given equation 
is instructive in that all elements are included 
for students to identify. However, for pro- 
grammable calculators with very limited 
program steps, this equation can be short- 
ened by using the identities: 

sin(— x)=— sin(x) 

and 

sin(x±180)=-sin(x). 

This yields: 

drift=sin~ 1 [wj^ xsin ( wind . t rue)] 

where wind direction is defined as the di- 
rection from which the wind is coming. 

The author, in solving the velocity vector 
triangle for the ground speed, uses the Law 
of Sines. This introduces the limitation that 
the equation cannot be used for direct tail 
wind or head wind situations, since a non- 
physical answer results from division by zero 
(sin (0) = 0). The use of the Law of Cosines 
avoids this problem and yields: 



GS = V (TAS) 2 +W 2 -2(W) (TA5) cos (WD -TC - CA) 


where: 




GS = 


ground speed, 


TAS = 


true air speed, 


W = 


wind speed, 


WD = 


wind direction (the direction from 




which the wind is coming), 


TC = 


true course heading, 


CA = 


crab angle ■ 




Bruce Ronald Fiene 




Commercial Pilot, ASMEL Instrument 




408 Big Stone Dr 




Xenia OH 45385 




64KB MICROPROCESSOR 
MEMORIES 

• S-100 - $695.00 • SBC 80/10 - $750.00 

• LSI 11 - $750.00 • 6800 - $750.00 



CI-S100 — 64K x 8 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 $695.00. 

CI-1103 — 8K words to 32K words in a 
single option slot. Plugs directly into 
LSI 11, LSI 11/2, H11 & PDP 1103. 
Addressable in 2K increments up to 
1 28K. 8K x 16 $390.00. 32K x 16 $750.00 
qty. one. 

CI-6800 — 16KB to 64KB on a single 
board. Plugs directly into Motorola's 
EXORcisor and compatible with the 
evaluation modules. Addressable in 
4K increments up to 64K. 16KB $390.00. 
64KB $750.00. 

CI-8080 — 16KB to 64KB on single 
board. Plugs directly into Intel's MDS 
800 and SBC 80/10. Addressable in 
4K increments up to 64K. 16KB $390.00. 
64KB $750.00 



CI-S100 64KX 8 



umi II 



rrK^S 



CI-1103 32K x 16 




CI-6800 64K x 8 



Sat 9 1 t iiLUBL 
CI-8080 64K x 8 



Tested and burned-in. Full year warranty. 

Chrislin Industries, Inc. 

1 l Computer Products Division 

31352 Via Colinas • Westlake Village, CA 91361 • 213-991-2254 



€ 



Circle 47 on inquiry card. 



July 1979 © BYTE Publications Inc 225 









Subroutine Parameters 



W D Maurer 

University Library Bldg 

Room 634 

George Washington University 

Washington DC 20052 



and the result is also probably not the same 
variable. This is true even though the logic 
of multiplication does stay the same. It is 
this that has led to the idea of subroutine 
parameters, the subject of this article. 



Parameters 



If you've written computer programs in 
any language, you must be aware by now 
what a subroutine is, although you might 
not have written any. The basic concept of a 
subroutine is present in all computer lan- 
guages, although every language implements 
it a bit differently from the others. In sys- 
tems based on the 8080, the 8085, or the 
Z-80, you write CALL SUB to call the sub- 
routine called SUB. On the 6800 and the 
6502, it's JSR SUB, while in BASIC it's 
GOSUB a where the first statement of the 
subroutine SUB is on line number a. But re- 
gardless of the language, the concept is the 
same: you have something in your program 
that you want to do more than once. It may 
be looking up an element in a table; it may 
be printing out a list; it may be making an 
access to a data structure; but whatever it is, 
you need it at various times in your pro- ■ 
gram. You don't want to have to write out 
the same instructions over again every time 
you need that particular job to be done, be- 
cause this is wasteful of memory space. So, 
therefore, you group together the instruc- 
tions that do this job into a subroutine, and 
then, at any point that you want the job to 
be done, you put in an instruction to call the 
subroutine. When the subroutine is finished, 
it returns to the point immediately following 
the place where it was called; and this is also 
done differently in different programming 
languages — one writes RETURN in BASIC, 
RET for the 8080 and Z-80, and RTS (re- 
turn from subroutine) for the 6800 and 
6502. 

All this is fine if the job you want to do 
repeatedly is exactly the same every time 
you want to do it. But, in practice, this is 
usually not the case. For example, if you are 
looking up an element in a table, you are 
probably looking up a different element 
each time. If you are multiplying two 16 bit 
quantities — a very common subject for a 
small system subroutine — the quantities 
you are multiplying are probably not the 
same from one multiplication to the next, 



In applied mathematics, there is a con- 
cept of parameter which will be familiar to 
those small system users who have back- 
grounds in engineering or physical science. 
Consider, for example, the graph of a func- 
tion. You are usually expressing y in terms 
of x, but if you are constructing the graph of 
a circle, it is sometimes more useful to intro- 
duce another variable 6 to represent the 
angle, and then to express both x and y in 
terms of 6. The variable 0, in this context, is 
called a parameter. In computer program- 
ming, however, whether on large systems or 
small ones, the word "parameter" has a 
more general meaning, and one which does 
not require any knowledge of applied math- 
ematics; it is simply any variable which is 
used by a subroutine, and which is supplied 
to that subroutine by the program that calls 
it. 

Parameters of subroutines are related to 
arguments (sometimes also called parameters 
or formal parameters) of functions. If you 
have a function f(t) or g(a } b) or h(x } y, z) } 
then t, a } b, x, y, and z are the arguments. 
On a computer, the value of a function is 
computed by a subroutine, and this must be 
considered as one special kind of subroutine. 
Some languages allow you to use functional 
notation for functions; thus h(x } y,z) might 
be FNH(X, Y, Z) in BASIC, for example 
(provided that the definition of h was simple 
enough). In assembly language, however, one 
generally uses the same instructions (CALL, 
JSR, or whatever), whether one is calling a 
subroutine to calculate the value of a func- 
tion, or a more general subroutine. 

Those who work with big computers have 
laid out a considerable amount of terminol- 
ogy dealing with parameters and how they 
are supplied, or passed, to a subroutine by 
the program that calls it (and sometimes vice 
versa). One of the purposes of this article is 
to lay out this terminology for the small sys- 
tem user so that he or she will not have to 
reinvent the wheel. It should be emphasized 
that, for a long time, mathematicians be- 



226 July 1979 © BYTE Publications Inc 



lieved that there ought to be a single concept 
of parameter that would work well in all sit- 
uations. Gradually we have come to realize 
that there are at least four, and probably a 
good deal more, reasonable implementations 
of parameter passing. These will be detailed 
in what follows. 

Two Examples 

To illustrate why the concept of para- 
meter differs from one situation to another, 
let us consider two simple subroutines: an 
output subroutine and a multiplication sub- 
routine. The output subroutine will be called 
OUTPUT(X), and its job will be to output 
the character X. The multiplication subrou- 
tine will be called MULT16(I, J, N), and its 
job will be to multiply the two 16 bit quan- 
tities I and J, producing the result N. The 
problem we are to solve is how to call OUT- 
PUT(Z), OUTPUT(Q), and so on, for various 
characters we wish to output, and similarly 
MULT16(A, B, C), MULT16(U, V, W), and 
so on, for various multiplications we wish to 
perform. 

Consider first the case of the output sub- 
routine. Suppose that in this subroutine 
there is a variable called X. In order to out- 
put Z, for example, we move Z to X just be- 
fore calling OUTPUT. The same sort of thing 
will work for Q, or any other character we 
wish to output. This method of passing para- 
meters is known as call by value. It may be 
defined more formally as follows. Suppose 
we have a subroutine such as OUTPUT(X), 
where X stands for any parameter, such as Z 
or Q, that might actually be supplied. Here Z 
and Q are called the actual parameters, and 
X is called the forma/ parameter. Then call 
by value consists of: 

1. Moving the value of the actual para- 
meter to the formal parameter. (If 
there is more than one formal para- 
meter—as in the case of a function 
h(x } y, z) — then they must all be 
moved.) 

2. Calling the subroutine. 

In assembly language it is very common 
for X, in a situation such as the above, to be 
a register. Then all we have to do is to load 
the register before we call the subroutine; 
the subroutine assumes that Z, or Q, or 
whatever stands for X, is in that register. (On 
the 8080, the Z-80, the 6800, and the 6502, 
the most common register used for this pur- 
pose is the A register, although ISIS, the 
operating system for the Intellec, which is an 
8080 based system, uses the C register.) 

If we now look at MULT1 6, however, we 
can see without too much trouble that call 



by value doesn't work. Let us see why not 
by laying out a specific example. Suppose 
we are calling MULT16(U, V, W), where 
MULT16 has been defined as a subroutine 
with parameters I, J, and N. That is, I, J, and 
N are the formal parameters, while U, V, and 
W are the actual parameters. To use call by 
value, we would first have to move the 
values of U, V, and W into I, J, and N. That 
is, U would be moved to I; V would be 
moved to J; and W would be moved to N. 
Now we would call the subroutine; and the 
subroutine, we are assuming, multiplies the 
1 6 bit quantities I and J and sets N equal to 
the result. 

What is wrong with this? Since we were 
calling MULT16(U, V, W), what we presum- 
ably wanted was to multiply the two 16 bit 
numbers U and V, and set W equal to the re- 
sult. It is not too hard to see that we did, 
actually, multiply U by V, because we set I 
equal to U, and J equal to V, and then we 
multiplied I by J. But what happens to W? 
We set N equal to the result of multiplying 
U by V; but we didn't set W equal to any- 
thing. (We also, earlier, set N equal to W — 
an unneeded and useless operation.) The 
general situation here is that whenever we 
have a formal parameter that is set to some 
new value by a subroutine, call by value will 
not work; the formal parameter will not be 
set to the new value (or to any new value). 

Because of this, people who work with 
big computers came up with three alterna- 
tive methods of passing parameters. The 
first of these is known as call by value and 
result (or sometimes, informally, as "copy- 
restore"). The second is known as call by 
reference (or sometimes ''call by address" or 
"call by location"). The third is known as 
call by name. We shall take up each of these 
in turn. 

Call by Value and Result 

Call by value and result is a rather 
straightforward way of fixing the bug in call 
by value that should be evident from the 
preceding discussion. In fact, what we 
wanted to do in our MULT16 subroutine 
was as follows: 

1 . Set I equal to U and J equal to V. 

2. Call the subroutine (which multiplies I 
by J, giving N). 

3. Set W equal to N. 

In other words, there are two parameter- 
passing operations — one just before the sub- 
routine starts, the second one after it ends — 
and one is the reverse of the other. In the 
first operation, we move actual parameters 
to formal parameters. In the second opera- 



July 1979 © BYTE Publications lnc 227 



tion, we move formal parameters to actual 
parameters. The parameters we move the 
first time are the ones that are used by the 
subroutine; the parameters we move the sec- 
ond time are the ones that are set by the 
subroutine. 

But how can we tell which parameters are 
used and which ones are set? It won't always 
be the case that the first two are used and 
the last one is set (if there are three alto- 
gether). They might all be used, or two of 
them might be set, or any number of possi- 
ble combinations. Again, there is more than 
one reasonable solution to this problem. 

The solution chosen by the designers of a 
number of computer languages in wide- 
spread use by the American military estab- 
lishment (NELIAC, JOVIAL, CMS-2) was to 
build the distinction between used and re- 
turned parameters into the syntax of the lan- 
guage. In other words, when you call a sub- 
routine in any one of these languages, you 
would have to specify, in some way, which 
of these you intended to be used and which 
you intended to be returned. (JOVIAL, for 
example, uses a semicolon; we would speak 
of MULT16(U, V; W), for example, where 
the semicolon separates the used parameters 
U and V from the returned parameter W.) 
This certainly solves the problem, although 
only if you are going to use call by value and 
result, at the cost of making life a trifle more 
complicated for those who don't want to 
have to worry about how parameters are 
passed. 

The other solution, chosen by IBM, is to 
regard all parameters as both used and re- 
turned at all times. This may seem a bit 
wasteful, but in fact, compared to call by 
reference (to be described below), it is more 
efficient, most of the time. It does, however, 
lead to some strange and unusual results, the 
most famous of which may be illustrated as 
follows. Suppose we have a subroutine 
D(X, Y), where X and Y are the formal para- 
meters, and suppose that this sets X to zero 
and does not change Y. Now suppose that 
we call D(L,L). Of course, we would like 
this to set L equal to zero. But see what 
happens: 

1 . Since X and Y are treated as both used 
and returned, our first step is to set X equal 
to L and Y equal to L. 

2. Now we call the subroutine, which sets 
X equal to zero and does not change Y. 

3. Finally, we return the actual para- 
meters. First we return X by setting L equal 
to X. Since X is now zero, this will set L 
equal to zero, which is exactly what we 
wanted. But now we return Y by setting L 
equal to Y. Since Y is still the original value 
of L, this will undo the previous result, and 



the final outcome will be that L is the same 
after calling D as it was beforehand! 

The behavior illustrated above can be 
avoided simply by setting LI equal to L and 
then calling D(L, LI), rather than D(L, L). 
In general, when using call by value and re- 
sult, with all parameters used and returned, 
one should never use two actual parameters 
which are the same. The problem above 
actually happened to a student of this 
author, who wrote a big FORTRAN pro- 
gram that ran on the CDC 6400, a computer 
using call by reference — to be described be- 
low — but mysteriously failed to run on the 
IBM 360, a computer using call by value and 
result. Many hours of analysis traced the bug 
to a subroutine call like D(L, L) above. 

Call by Reference 

Call by reference, historically, preceded 
call by value and result, although it was not 
known by that name at that time. The idea 
of call by reference is to give the subroutine 
the addresses of its parameters, rather than 
their values. Then, when the subroutine 
either uses or sets one of its formal para- 
meters, it does so by making a reference to 
that address. Let us see how this would work 
on a small system: 

1. On the 8080, you can load the HL reg- 
ister pair with the address of the parameter 
a with the instruction LXI H, a just before 
calling the subroutine. Then, in the subrou- 
tine, if you need to load this parameter into 
any register/*, you can use MOV r,M; if you 
need to operate on it arithmetically, you can 
use ADD M, SUB M, ANA M, and the like; if 
you need to set it to a new value which is 
now in register r, you can use MOV M,r. If 
you need the HL register pair for other pur- 
poses in your routine, you can do an XCHG 
if you don't need the DE register pair, or 
you can PUSH H while you use HL and POP 
H afterward. If there are two parameters, 
you can load one into HL with LXI H, a as 
before, and load the other one into BC or 
DE. If there are several parameters, you can 
push their addresses onto the stack before 
calling the subroutine, and pop them back 
within the subroutine. 

2. On the 6800, you can load the X regis- 
ter with the address of the parameter a with 
the instruction LDX # a (where the # speci- 
fies an immediate addressing instruction) 
just before calling the subroutine. You can 
now use indexed addressing instructions to 
manipulate the parameter by loading it 
(LDAA 0,X or LDAB 0,X), storing it (STAA 
0,X or STAB 0,X), or performing arithmetic 
operations such as ADDA 0,X or ANDB 0,X. 



228 July 1 979 © BYTE Publications Inc 






If there is more than one parameter, you can 
move the addresses of all the actual para- 
meters to fixed locations within the subrou- 
tine before calling it. The subroutine can 
then load each of these into the X register 
when needed, after which any of the in- 
dexed instructions discussed above may be 
used. 

3. On the 6502, there is a general method 
involving loading the X register, just before 
calling the subroutine, with the address of a 
table of addresses of actual parameters. That 
is, we execute LDX #a where we have 
written (in page zero): 



DFB 


U MOD 256 


DFB 


U/256 


DFB 


V MOD 256 


DFB 


V/256 


DFB 


W MOD 256 


DFB 


W/256 



for example, defining a byte for the low 
order address and then for the high order 
address of each of the parameters U, V, and 
W. One can then make reference to the 
actual parameters by indexed indirect ad- 
dressing: LDA (0,X) for U, LDA (2,X) for 
V, and LDA (4,X) for W. This is perfectly 
general, since LDA (load) can be replaced by 
STA (store), ADC (add with carry), CMP 
(compare), AND, and so on. 

4. On the Z-80, you can (as always) 
mimic the 8080, or you can use registers IX 
and IY to contain the addresses of para- 
meters. 

An additional advantage of call by refer- 
ence is that it allows you to have, as a para- 
meter, the name of an array. For example, 
you might be writing a subroutine to com- 
pare two character strings to see if they are 
the same. There would be two parameters, 
namely the two character strings. If you 
used call by value, you would have to move 
these entire strings into new locations just 
before calling the subroutine. This would be 
wasteful of both time and space, and is, in 
fact, never done; even systems that use call 
by value or call by value and result, if they 
allow array names as parameters, use call by 
reference (or call by name, to be discussed 
below) for these. Thus you would only be 
passing, from the program to the subroutine, 
the two string starting addresses; that is, for 
each string, the address of its first byte. 

One important source of confusion, when 
call by reference is used, has to do with how 
to return a parameter. A large number of 
programmers try, when they are writing a 
subroutine, to have it put its answer "some- 
where" and then furnish the main program 
with the address of where that "somewhere" 



is. This never works, because the main pro- 
gram has no way of using that information. 
It is not up to the subroutine to tell the 
main program where the information is to be 
returned; it is up to the main program to tell 
the subroutine where to return the informa- 
tion, and then the subroutine must return 
the information to that point. In particular, 
the subroutine will never be right if it re- 
turns a parameter to a fixed location. When 
writing a subroutine, if call by reference is 
used, it should be remembered that this sub- 
routine can be called more than once, with 
different actual parameters each time, and 
therefore, when it changes the value of one 
of its actual parameters, that change must be 
made by storing this new value in an indexed 
location — where the index is normally the 
HL register pair on the 8080, the X register 
on the 6800 and 6502, and (possibly) the IX 
or IY register on the Z-80. 

Call by reference is, in general, more in- 
efficient than call by value and result, partic- 
ularly if we make reference to a parameter 
inside a loop. One technique that has been 
tried on big computers, and works rather 
well for subroutines that take large amounts 
of time, is address modification. This in- 
volves storing the addresses which are passed 
as parameters directly into the instructions 
that use them. Unfortunately, this technique 
is inappropriate in most microcomputer sys- 
tems, where the instructions are in read only 
memory and thus cannot be modified as the 
program is running. It should also be men- 
tioned that on some systems which use 
both call by reference and call by value and 
result, the second of these is implemented 
as a special case of the first. That is, it is 
always the addresses, or references, that 
are passed (so that there is only one kind of 
standard subroutine protocol rather than 
two), but, whenever call by value and result 
is to be used, the subroutine — rather than 
the main program — performs the setting of 
formal parameters to actual parameter values 
and vice versa. 

Call by Name 

This brings us, finally, to call by name — 
the easiest to define, and yet the hardest to 
understand, of the better known parameter 
passing methods. For years, call by name 
was a pons asinorum among big computer 
software people; that is, the way of distin- 
guishing the bright from the dumb, or the 
"with-it" from the "not-with-it," was 
whether you understood call by name. 
Lately there has been a bit less interest in 
call by name among practical computer 
people, since, although it was used in 
ALGOL 60, one of the first big computer 



July 1979 © BYTE Publications Inc 229 



languages (in both senses — big [computer 
languages] and [big computer] languages), it 
has not been used in most languages devel- 
oped since then. But an understanding of it, 
and of some of the problems that arise with 
it, is still essential to the amateur as well as 
the professional computer scientist. 

Call by name is defined as follows. Sup- 
pose I have a subroutine with a formal para- 
meter X. Suppose I call this subroutine, with 
actual parameter Y. Then call by name im- 
plies that the subroutine is executed as if we 
had gone through it and substituted Y for 
every occurrence of X. 

There is one important proviso to the 
above, which may be illustrated as follows. 
Suppose that in the subroutine we have 
A = B-X. Suppose now that the actual para- 
meter is not Y, but rather U+V. (It is quite 
permissible to call SUB(U+V), for example, 
where SUB is the name of a subroutine.) 
Now we would like to proceed as if A = B-X 
really means A = B-(U+V); but if we substi- 
tute U+V for X, as in the above definition, 
we obtain A = B-U+V, which is not quite the 
same. Therefore we need to change the defi- 
nition so as to specify the insertion of paren- 
theses. On the other hand, it should also be 
clear that we do not want to insert parenthe- 
ses all the time. For example, the variable A 
could have been the formal parameter, 
rather than X. In this case, the actual para- 
meter could not be U+V, because then 
A = B-X would be interpreted as 
(U+V) = B-X, which makes no sense. But 
suppose the actual parameter is Y, just as be- 
fore; we still don't want to write (Y) = B-X 
(with parentheses) in BASIC or any other 
algebraic language. Therefore the rule is that 
the actual parameter is substituted for the 
formal parameter, inserting parentheses 
wherever syntactically possible (this is the 
phrase used in the definition of ALGOL 60). 

So long as the actual parameters are not 
expressions like U+V (or like A(l), which 
could be either a subscripted variable or a 
reference to a function), call by name is al- 
most identical to call by reference. There- 
fore, in studying the differences between the 
two, we have to look at the general rules for 
handling actual parameters which are expres- 
sions. These are that an actual parameter 
cannot be an expression (other than a single 
variable, either subscripted or not) when the 
corresponding formal parameter is returned ', 
as we have illustrated above with the formal 
parameter A and the actual parameter U+V; 
and, of course, a formal parameter can never 
be an expression. 

Suppose now that in our subroutine we 
have S = S+X, where X is a formal para- 
meter, and the corresponding actual para- 
meter is A(l). (This is a simplification of an 



actual example given with the definition of 
ALGOL 60.) Therefore S = S+X becomes 
S = S+A(l). But now suppose that we want 
to do this for 1 = 1 to 10. That would be, 
presumably, a way of adding the numbers 
A(1) through A(10), if S were originally set 
to zero. If we use call by reference, however, 
this won't work. In call by reference, the 
address of the actual parameter — in this 
case, the address of A(l) — would be given to 
the subroutine. When the subroutine does 
S = S+X, it would get X from the location 
which has that address. But that location is a 
constant location — the location, in fact, of 
A(l) where the variable I has whatever value 
it had before the subroutine was called. This 
means that we add X ten times, whatever X 
is, and in this case we add the same value of 
A(l) ten times, rather than adding A(1) 
through A( 10). 

How would we implement call by name? 
In the above case, when the subroutine does 
S = S+X, it has to have a way of finding out 
whether X will stand for a different variable 
each time. Therefore it loads S and then calls 
a subroutine to find the value of X, which it 
then adds and stores the result in S. This 
means that it is the address of the start of 
this subroutine that is passed, rather than 
the address of X itself as in call by reference. 
(This is known as Jensen's device, after a 
programmer at Regnecentralen, or the 
National Computer Center of Denmark, who 
used it in implementing ALGOL 60.) We 
should remark that there is another entirely 
different way of implementing call by name, 
which is to replace each call to a subroutine, 
separately, by the subroutine with the sub- 
stitutions performed as discussed above. This 
won't work for ALGOL 60, because it won't 
work, in general, for recursive subroutines, 
and it also takes up quite a bit of. space if the 
subroutines are long. 

Call by name is considerably less efficient 
than the other methods we have discussed, 
which is a big reason for its general decline. 
Nevertheless, it has its own unexpected ad- 
vantages. Let us consider a subroutine like 
D(X, Y), which we discussed earlier, but this 
time suppose that it simply uses X and does 
not use Y, and let us call D(A, F(B)) ; where 
F(B) is a reference to a function. Suppose 
further that the calculation of F(B) (for 
some reason) gets the computer into an end- 
less loop. If we use call by name, then, since 
we never use Y, we have no occasion to call 
the subroutine that calculates Y — that is, 
we never call F(B). If we use call by value, 
however, the first thing we do is to set X 
equal to A and Y equal to F(B). The result is 
that we get into the endless loop, in this 
case, if we use call by value, but not if we 
use call by name. ■ 



230 July 1 979 © BYTE Publications Inc 



Languages 
Fopum 



A "Tiny" Pascal 
Source Creator 



Thomas W Phillips MD 

RD 1551 

Chenango Lake Rd 

Norwich NY 13815 



l would like to thank you for publishing 
"A 'Tiny' Pascal Compiler" by Kin-Man 
Chung and Herbert Yuen (September, 
October and November 1978 BYTE). I 
now have the compiler working without 
problems on my 8080 system (Altair with 
North Star Disk). It is a fascinating way 
to learn about compilers and Pascal. 

I am not sure how Mr Chung and Mr 
Yuen create their Pascal source programs; 
however, listing 1 shows my method of 
creating the Pascal source. Editing is easy 
with North Star BASIC. 

Listing 7 



100 


DATA ' 


! CALCULATE SQUARE. ! 


110 


DATA ' 


VAR A,B:INTEGER; " 


120 


DATA ' 


BEGIN " 


130 


DATA ' 


READ (B#); " 


140 


DATA ' 


A:=B*B; " 


150 


DATA ' 


WRITE (13,10); " 


160 


DATA ' 


WRITE (B#/ SQUARED IS 




A#,13,10); " 


170 


DATA ' 


CALL (960800) " 


180 


DATA " 


END. " 


190 


DATA " 


" 


200 


DATA " 


XX '" 


210 


DIM A$(100) 


220 


A$=" ' 


1 


230 


OPEN #1,"A" 


240 


READ A$ 


250 


IF A$ (1 


,2)="XX" THEN 290 


260 


WRITE #1,A$,NOENDMARK 


270 


A$=" ' 


' 


280 


GOTO 240 


290 


CLOSE #1 


300 


CHAIN 


' PASCAL " 


READY 




RUN 







PASCAL & PASCAL 2 
P-CODES STARTS AT 0000 



$A 

! CALCULATE SQUARE. ! 

VAR A,B:INTEGER; 

1 BEGIN 

1 READ (B#); Listing J continued on page 232 




Circle 96 on inquiry card. 



YOUR 
ORDER 



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

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 andyou can SEE what the computer 
is reading — even if your computer will not read the 
data through normal read instructions! In this way it 
is possible to read and copy faulty tapes by adjusting 
the volume control until you SEE that the data is 
input properly. 

SIMPLE -FASCINATING- FUN 

TRcopy is not only a practical utility program.lt 
is also a fascinating graphics program that lets you 
SEE, for the first time, cassette data as your 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! 



ipy Sysl 



.eluding 



195 



Order* occompan 


ed by money order ^>— 


i. No a 

satisfia 


/ POST 
■^ PAID 

3D's. Retu 
d. 




% mailed same day. 


Ordors paid by Ot 
Within 10 days {a 


her check shipped in 14 day 
r a full refund if you are not 


N.D. Orders Add 
3% Sales Tax. 


TRS-80 is a trademark 
of the Tandy Corporation. 

ORDER FROM 


"You t 
TRco 


an not cop 
j>y cosset 



Data/Print 

DEPT.BT, BOX 903, FARGO, N.D. 58107 



Howl 



53 
<5> 






£ 



<2 



* ™ 



a. cr c 

° ■— s 

£ £ A E 

K ™ < CC 

SL S - d 

£ 2 1 

J * 4 



1 j 



p 




cc 

o. 



o g 



s- m — en e, 

o z I — I 

CC 5 » Z § 



« 2, ± DC 

rji % C£ H 

2. cc 



— b"? 7 



CO 

^ ■ 2 I S 
5* 1 B ■§ a. M 



i/t o 



TOLL FREE 



SAME DAY 
SHIPMENT 



July 1979 © BYTE Publications Inc 231 



Circle 78 on inquiry card. 



0, 



'0 



KIM ANALOG INPUT 

Analog to Digital Conversion System for the KIM Computer 

KlWSETl 



Give U*e KIM U*e ability to sense* 
measure* and control the world around 
it uitJt BAtt SYSTEMS Diodules. Just, plu^ 
tire KIttSETl into tt~*> KIM to s£et 1A 
channels of analog input. Screw 
tprminals are F-rovidecJ for each channel 
so you can hooK up Jo^tsticKs» pots? or 
whatever a^f-ro^niaLe sensors you have. 

Each of U-»e 16 analog infH)ts» in 
the ransfe of to 5.12 volts* is 
converted to a decimal nuni*r between 
F>r\d 255 <20 millivolts per count). 
Conversion t.in.e is 100 microsconds. 

The K3MMOD provides one user port 
as well as a BAM SYSTEMS port.. 

Software is provided. 




1-AIM161 

1-KIMM0D 
I -CABLE A24 
1-MANM001 
1-P0W1 



- 16 ANALOG INPUTS ■ B BITS ■ 100 MICROSEC 



24INCH INTERCONNECT CABLE 



■ POWER MODULE 



f QPIB 1 H HS-2M h 

L MOD J U MOD U 



1— a in 



GPIB0EEE-48BI 



KIMSETIa for 110 VAC $ 2B3 
KIMSET10 for 230 VAC $295 



CONNECTICUT microCOMPUTER , Inc. 

150 P0C0N0 ROAD 

BROOKFtELD, CONNECTICUT 06804 

TEL: (203) 775-9659 TWX: TLX: 7104560052 

VISA AND M/C ACCEPTED - SEND ACCOUNT NUMBER, EXPIRATION DATE AND SIGN ORDER. 

ADD $3 PER ORDER FOR SHIPPING S HANDLING - FOREIGN ORDERS ADD 10% FOR AIR POSTAGE 



Listing 1 continued 

from page 23 1 : 



4 A:=B*B; 

8 WRITE (13,10); 

12 WRITE (BfVSQUARED IS',A#,1 3,10); 

34 CALL(%0800) 

36 END. 



PC0DTR & PC0DTR2 

*** P-C0DE TO 8080 TRANSLATION 

PAS.LIB = 1A00 

P-CODE=0000 

8080 OUTPUT = 0800 

STACK START ADDRESS = 8000 

STACK END ADDRESS =A000 

2 REFERENCES 

2 ACTUAL LABELS 



0809 09 OF 12 18 1A 1D 20 26 2C 2F 35 38 3E 41 
15 0847 4D 53 59 5F 65 6B 71 77 7D 83 89 BF 52 58 
30 085B 61 64 6A 6D 73 76 79 

FORWARD REFERENCES 
P-CODE.. 37 INSTRUCTIONS 
8080.. 121 BYTES 
P-CODE:8080 = .81756757 
* END TRANSLATION * 
READY 

BYE 

*LF PAS. LIB 1A00 

*JP0B00 

?1 

1 SQUARED IS 1 
?2 

2 SQUARED IS 4 • 



FOR PET, TRS 80, COMPUCOLOR. 





iy ^^ SOUND WARE adds 

music and sound effects to your 
computer. Includes DEMO PROGRAM, SOUND 
COMPOSER (to create your own BASIC sound subroutines) 
and instructions. Unit has volume control, earphone jack, 
connectors. 1 year warranty. $29.95 for PET & TRS-80 
Level II. $39.95 For Compucolor II (includes Diskette). 

SOUNDWARE SOFTWARE FOR 8K PET! 

Compatible with all CB-2 sound devices. Features sound, super 
graphics, instruction booklet. 90 day warranty. 

1. ACTION PACK— Breakthru (8 versions) /Target/ 
Caterpillar 

2. THE CLASSICS— Checkers (8 versions)/ 
Backgammon /Piano Player 

3. WORD FUN— Speller (4 versions) /Scramble/ 
Flashcard 

$9.95 per pack. More sound programs coming: TRS-80 

and Compucolor, too! 

To Order: Send to CAP Electronics. Dept. B . 1884 Shulman Ave.. 

San Jose.CA 95124. or call (408) 371-4120. V/ISA/Master Charge 

accepted. No charge for shipping when payment is included. Please 

add 15% for C.O.D. Calif, residents add 6% tax. 

Prices subject to change without notice. 

DEALER& DISTRIBUTOR INQUIRIES WELCOME 



rnocoNsuL 

A COMPUTER SflMUMTWH OAME 

A long time ago, in a galaxy far, far away, there was a planet . . . 
This planet was very much like the Earth at the time of Julius Caesar; 
A time of some technical ability, but more a time of vaunting ambition; 
a time of desiring not only to see the other side of the hill, but to 
conquer it as well. 

There are 210 provinces on the PROCONSUL world of various sizes, 
types and resources. Each player starts with four provinces and vies 
with the other players, the weather, the possibility of revolt or plague 
in building an economy and an empire. The goal? To conquer more 
than half of the provinces on the PROCONSUL world. 

PROCONSUL is a true simulation game. Each player has control 
over farmers, artisans and basic workers and can assign them to 
various tasks, assign them to another labor category, move them to 
other provinces or draft them into the military. The player can manipu- 
late the production and distribution of the commodities produced by 
the labor units. In a battle not only are the relative sizes of the oppos- 
ing forces taken into consideration, but the morale and experience of 
each army as well. 

PROCONSUL is $1.50 per turn, with turns every three to four 
weeks. Cost to enter a PROCONSUL game is $10, which includes a 
$4 setup fee, the first four turns, and a copy of the rules. Individual 
copies of the rules are available for $1.00, which will be credited to 
anyone who then decides to play in a game. Games are starting all the 
time and there are no long delays about getting into one. 

For further information, or to join a game write to: 

NIX OLYMPICA 

PROCONSUL 

P.O. Box 33306 

Phoenix, AZ 85067 



232 July 1979 © BYTE Publications Inc 



Circle 40 on inquiry card. 



Circle 286 on inquiry card. 




Digital Introduces LSI-11/23 
and PDP-11/23 Microcomputers 

\ 

This new microcomputer called the 

LSI-11/23 from Digital Equipment Corp, 

146 Main St, Maynard MA 01754 has the 

funtionality and software compatibility 



of a midrange minicomputer, yet it con- 
sists of two 5.2 by 8.9 inch (1 3.42 by 22.61 
cm) boards and backplane. A rack moun- 
table, packaged version, the PDP-11/23, 
has also been announced. Both versions 
can run the RSX-11M and IIS operating 
systems that were previously available 




only on mid to high-range PDP-11 mini- 
computers. 

The LSI-11/23 features 256 K bytes of 
memory capacity. It uses the full instruc- 
tion set of the PDP-11/34 minicomputer, 
and software supported memory seg- 
mentation and protection features of the 
RSX-11M and 11S multitasking, multi- 
user operating systems. The LSI-11/23 
has the same small size circuit boards as 
the LSI-11/2, which permit easier place- 
ment in instruments and specialized 
systems. The LSI-11/23 has an optional 
floating point processor integrated cir- 
cuit. 

Besides accommodating RSX-11M and 
11S software, the LSI-11/23 and 
PDP-11/23 run all software developed for 
the LSI-11 family without modification. 
This includes the RT-11 operating system 
and high level languages such as BASIC, 
FORTRAN IV and FOCAL. The LSI-11/23 
is at least twice as fast as previous LSI-11 
family members. 

The system is plug compatible with 
the entry level LSI-11/2. It is also soft- 
ware compatible with the LSI-11/2 and 
PDP-11 minicomputers. 

In 100 unit quantities, the LSI-11/23 
and PDP-11/23 are priced at $1,758 and 
$4,500 respectively. The single unit price 
of the PDP-11/23 is $6,800. A new pro- 
grammable read only memory board for 
$300 and programmable read only 
memory programmer for $1,975 have 
also been introduced. 

Circle 623 on inquiry card 



Design, Build and Test Circuits With 
BredBord Kits 



These BredBord kits are prototype 
design aids developed to simplify circuit 
design and building, and testing and 
wiring withoutpatchcords or solder. The 
8 BredBord kit models are assembled on 
heavy duty, glass epoxy boards, copper 
clad on each underside for ground plane. 
They feature color coded, insulated bin- 
ding posts and rubber mounting feet; 
and a designated number of test points 
and capacities for multi-pin dual-in-line 
package integrated circuits. Each of the 
kits is made to interface with meters, 
scopes and other devices. The packages 
are produced in three types to accept 
different BredBord sizes. For further in- 
formation, contact Herman H Smith Inc, 
812 Snediker Av, Brooklyn NY 11207. 

Circle 624 on inquiry card. 




July 1979 © BYTE Publications Inc 233 



Circle 313 on inquiry card. 



TRS-80 LEVEL II AND DOS 



COMMAND PROCESSOR TOMPROC ***NEW PRODUCT*** 

Automatically load and execute any sequence of System and/or 

BASIC programs and data from power up. 

Command files created, saved, and edited in BASIC. 

Sophisticated options include interactive prompting and substitutional 

parameters. Allows non-computer personnel to easily execute programs 
RENUMBER WITH 'REMODEL' - MERGE WITH 'PROLOAD' 

REnumber any section or an entire program. 

MOve program segments. DELete program lines. 

All line references readjusted as required. 

COMBINE programs with renumber and merge. 

LOAD or SAVE any portion of program from tape. 

GENERAL SUBROUTINE FACILITIES 'GSF 

Collection of fast easy-to-use machine language routines. 

IN-MEMORY SORT with multiple variables and keys. 

SORT 1000 - Element array in 9 seconds. 

ARRAY read/write to tape, compress/uncompress/move data. 

SCREEN scrolling, save screen displays, and more 

DISK SORT PROGRAM 'DOSORF 

SORT/MERGE multi-diskette sequential files. 

MULTIPLE variables and keys. User input/output sort exits. 

Includes GSF machine language in-memory sort, etc. 32 or 48K. 

COPY SYSTEM TAPES WITH 'COPSYS' 

Dealer Inquiries Invited 

REMODEL Order TS21D at $24.95 

REMODEL + PROLOAD Order TS22D at $34.95 

GENERAL SUBROUTINE FACILITIES Order TS2 5D at $24.95 

DISK SORT PROGRAM Order TS26D at $34.95 
Must specify 16, 32, or 48K on above. System house discounts. 

COMMAND PROCESSOR (DOS ONLY) Order TS27D at $19.95 

COPSYS (Not DOS) Order TS24D at $14.95 

For TAPES that TEST best Order 10 ea at $14.95 

Ez. d apct Check - VISA - M/C- CO.o. 

£T ttAUt I COMPUTES -3 calif, residents add 6% 

70^aJmdaleJ)rai^^ 



HARD DISC 
FOR S1 00 MICROS 

The XCOMP DCF-10 Disc Controller pro- < 
vides the OEM with a high performance, 
fow.cost interface for fixed and removable 
(2315 or 5440) cartridge disc drives. The 
DCF-10 is currently supported by two 
operating systems. For information or 
manuals, contact XCOMP. 




XCOMP 

INCORPORATED 

9915-A Businesspark Ave., San Diego, CA 92131 • (714) 271-8730 



Circle 303 on inquiry card. 



Need Intelligence in your 

488 Instrumentation System ? ? ? 




Get it with your favorite S-100 computer 
and the P&T-488 Interface Board. 

The P&T-488 Interface Board gives your S-100 computer the 
ability to be a talker, listener, or controller on the IEEE-488 
instrumentation bus. Three software packages are available: 1) 
Driverf or North Star DOS/BASIC 2) Driver for CP/M which can 
be used by M BASIC or CBASIC 3) Driver for direct assembly 
level programming (forgenerating customized systems.) Priceof 
the P&T-488, assembled and tested with any 
IJCKLf^ one of the software packages, is $400. 



PICKLES & TROUT 

P.O. BOX 1206, GOLETA, CA 93017, (805) 967-9563 




I'Rotff 



BYTE 

BACK ISSUES 

FOR SALE 

The following issues are available: 

1976: July, November 

1977: March, May thru December 

1978: February thru November 

1979: January, February, May 

Cover price for all issues thru August 1977 is 

$1.50 plus $.25 postage and handling ($3.50 total foreign). 

September 77 thru 79 issues are $2.00 plus $.50 

postage and handling ($4.00 total foreign). 



BYTE Magazine 

70 Main St, Peterborough NH 0.3458 
Attn: Back Issues 



eiTE 





234 BYTE July 1979 



Circle 395 on inquiry card. 



HOBBY WORLD® 

CALL TOLL FREE: (800) 423-5387 
CA, HI, AK: (213) 886-9200 



California Computer Systems 

XVI 16K STATIC R4NK 
KIT $285 



A true static ram board designed 
for the 5-100 bus. Bank switching 
capability, addressable in 4K blocks. 
FR4 silk screened PC board with 
solder mask on both sides! The 
lowest price TRUE static ram board 
in its class. 



IEEE 5-700 Compatible. 
True static operation 
Requires only +5 volts 
450 ns 
Folly buffered 



Bareboard $27.00 



California Corrpjter Systems 

S-100/4pple Prototyping Board 

All signals labeled on-board. 
S-100 boards have all circuitry 
uncommited except for 4 mul- 
tiple voltage regulator pads. 
High density hole configura- 
tion On board ground bus. 
Double sided, plated thru FR4 
PC board Accept 14, 16, 18, 
24, 28, and 40 pin IC's. 



Cat No. 1604 $25.00 S-100 Soldertail 
Cat No. 1605 25.00 S-100 Wirewrap 
Cat No. 1609 21.00 S-100 Etch 
Cat No. 1607 21.00 Apple Soldertail 
Cat No. 1606 21.00 Apple Wirewrap 
Cat No. 1608 18.00 Apple Etch 



8" FLOPPY $8.50 

DISKS BOX OF 2 

BOX OF 10 FOR $37 1 

• IBM compatible 

No. Type Description • Single density 

FD32-1000 32 sector holes, one index hole. 
FD34-1000 Interchangeable with IBM 32, 3740, 
3540, 3770, 3790,or equivalent 



1145 
1146 



/Vtarinchip Systems 
/H9900 16 Bil-Mini for IfieS-lOO Bus 



• With PASCAL 

Brings the most powerful 

single chip CPU available to- 
day the TMS9900 - to the 

S-100 bus and supports it with 

powerful software Included 

with the CPU board are Disk 

Operating System, BASIC, 

Cat No. 1379 kit $550 
Cat No. 1379-A assembled and tested $700 
Cat No. 1394 documentation only $20 
Cat No. 1395 PASCAL compiler $150 
Cat No. 1380 Prom/Ram bd. $275 



Assembler, Linking Loader, 
Text Editor, and interactive 
debug. The powerful pascal 
compiler is only $150 more! 
Move up to a 16 bit machine 
and the power of PASCAL 
without losing the economy 
and selection of the S-100 bus. 



Microprocessors 



Order by type no. 
Type 
TMS9900 
8008 
8080A 
8085 
6800 
Z80A 
1802 
6502 



Price 

$45.00 
4.00 
7.00 
15.00 
10.00 
9.00 
17.50 
11.50 



Microprocessors 
Support 



Order by type no. 



TTLs 



Type 

Bin 

8214 
8216 
8224 



Price 
$2.40 
4.95 
2.50 
3.95 



8224-4 9.50 
8226 3.95 



8228 
8238 
8251 
8255 
6810 



4.95 
6.50 
6.50 
6.50 
6.95 



ShugalSA-400 

Minifloppy Drive 
$295 

Hard and soft sectoring, 
single density, 35 track. 
Requires power supply. 
Cat No. 1154 $295.00 

\zferbahm 

5 1/4" Diskettes 
$27box of lO 

Cat No. Type Use 

1147 Soft sector TRS-80, Apple 

1148 Hard, 10 hole North Star 
L 1149 Hard, 16 hole Micropenis 

California Computer Systems 



6821 

6828 

6850 

6852 

6860 

1822CE 

1852CE 

1861CE 

1854 



MK3881N-4 
MK3882N-4 
MK3883 
M K 3884 N -4/0 
. MK3884N-4/1 



R4MS 

Order by type no. 

Type 

21L02-250 

21L02-450 

21L02-650 

2114L-200 

2114L-300 

2114L-450 

TMS4044-450 

TMS4045-300 

4116-200 

4116-150 

1101 



6.95 1 
6.95 1 


7400 
7401 
7402 


.15 

.20 

?n 


11.95 1 


7403 


70 


8.50 I 


7404 


.70 


8.95 1 


7405 


.70 


9.95 1 
16.95 1 


7406 
7407 


.30 
,30 


9.95 


7408 


70 


9.95 
13 95 


7409 
7410 


.20 
.20 




7413 


.35 


13.95 


7414 


.60 


13.95 


7416 


.25 


45.00 


7417 


.25 


45.00 1 


7420 


.20 


45.00 aW 


7423 


.25 



7483 .60 

7485 .75 

7486 .35 

7489 1.75 

7490 .45 



7491 

7492 

7493 

7495 

7496 

74107 

74109 



.55 



74121 .35 



7425 .25 

7426 .25 
7427 
7430 
7432 
7437 



.25 
-25 
.25 
.25 



7438 .25 
7440 .20 



1.10 


7441 


.70 


.85 


7442 


.50 


8.50 


7443 


.50 


8.00 


7444 


.25 


7.50 


7445 


.75 


7.50 


7446 


./!> 


7.50 


7447 


.65 


1.00 


7448 


./5 


3.00 ■ 


7450 


.20 


1.50 Am 


7451 


.20 



7453 .20 

7454 .20 
7460 .20 
7470 .30 



)r APPLE. TRS-80. F.XlDY 
Everything you need! 
Installs in minutes, no 
special tools, no solder- 
ing! 250 nsec 
Cat No. 1156 



Order by type no. 



35 



Type 

1702A 

2708 

2716 

2758 



Prtce 
4.95 
9.50 
60.00 
22.00 



7472 
7473 

7474 .. 

7475 .45 

7476 .35 
7481 1.20 



74122 
74123 
74126 
74132 
74145 
74151 

74153 .- 

74154 1.00 

74155 -70 
74157 .60 
74160 .85 
74161 
74163 
74165 
74166 1.25 
74170 1.60 

74173 1.10 

74174 .85 

74175 .70 
74176 
74177 

74180 - 

74181 1.75 

74191 .95 

74192 -75 

74193 .75 
74221 .85 
74251 80 

74365 65 

74366 .65 

74367 -65 

74368 .65 



.40 
.60 



.65 



.60 
.60 



-75 
.75 
.95 



.80 
.75 
.65 



Special Purpose ICs 



Order by type no. 



Noltage Regulators 



Type 

AY3-1014 

AY3-1013A 

KR2376-ST 

2513 

FD1771BO-1 

FD1791B 

BR1941L 

TMS6011 

95H90 

11C90 

7205 

6571AP 

7207A/7208 

MC14410 

7107 

8038 

MC14411 



Description 

UART 
UART 
ASCII Keyboard encoder 
Character gen, up case 
Floppy Disk controller 
Floppy Disk Controller 
Baud rate generator 
High speed UART 
350MHz prescaler 
650MHz prescaler 
Stopwatch 
Character gen 
Frequency counter 
Touch Tone Encoder 
LED DPM chip 
Voltage Cont Osc 
Baud rate generator 



Price 
0.00 
5.00 
950 
9.50 
37.00 
47.00 
9.50 
5.50 
12.00 
17.00 
17.50 
11.00 
24.00 
8.00 
11.00 
4.00 
10.00 



Type 


Equal to 


7805 K 


LM340K-5 


7812K 


LM340K-12 


7815K 


LM340K-15 


7818K 


LM340K-18 


7824 K 


LM340K-24 


7805T 


LM340T-5 


7812T 


LM340T-12 


7815T 


LM140T-15 


7818T 


IMUdl IH 


7824T 


LM340T-24 


7905 K 


LM120K-5 


791 2K 


LM320K-12 


791 5K 


LM320K-15 


7924 K 


LMJ20K-24 



Voltage 

+ 5 
+ 12 



+ 5 
+ 12 
+ 15 
+ 18 
+ 24 



12 
15 

-24 



Case 

TO-3 

TO-3 

TO-:* 

TO-3 

TO-3 

TO-220 

TO-220 

TO-220 

TO-220 

TO-220 

TO-3 

TO-3 

TO-3 

TO-3 



Price 

$1.40 

1.40 

1.40 

1.40 

1.40 

95 

.95 

.95 

.95 

.95 

1.75 

1.75 

1.75 

1.75 



Problem Solver Systems 

Streaker 



• Designed, constructed and 
tested lo survive the most 
difficult and demanding 
computer environments. 

• Each offers unchallenged re- 
liability, versatility, and 
price advantage! 

• Only the finest-grade, lire 
retardant glass-epoxy PC 
material is used in board 
construction. 

• All boards are solder-flowed 
to assure uniform solder 
quality, virtually eliminating 
weak solder joints. 

• 40 hour burn-in 

• Exclusive "Blitz-Test" 
Places boards at maximum 
specified conditions for one 
hour. 

• Stringent production stan- 
dards allow only the sur- 
vival of the fittest. 



Motherboard 



• Imsai compatible 

« Factory assembled and tested 

Available in 12 or 22 slot 
versions. Standard S-100 bus 
compatible. Features connec- 
tors with gold plated bifur- 
cated -contacts. Each signal is 
surrounded by ground plane. 
Chassis compatible with 
IMSAI. No isolation hardware 
required for mounting 
Cat No. 1451 12 slot $99 
Cat No. 1452 22 slot $159 




CM5000 
Computer 
/Mainframe 

Includes cabinet, 18 amp 
power supply, S-100 STREA- 
KER-12 (12 slot motherboard), 
and dual disk provision, with 
disk power supply. Minidisk 
drives fit directly into front 
panel with no modifications. 
The CM5000 is fan cooled, 
has AC line filter to eliminate 
EMI, and is fully assembled 
and factory tested. Power and 
reset switches are located on 
front panel. 
Cat No. 1450 $549.00 



Matchless Systems 

Minidisk Drive 
for TRS-80 

Accesses twice as fast as the 
Radio Shack drive, plus offers 
40 tracks as opposed to 35! 
Includes case, power supply, 
and cables. Completely assem- 
bled and tested, ready to plug 
in and go! Simple modification 
to use as second drive! 
Cat No. 1375 MINIDISK 

DRIVE $395 
Cat No. 1396 4 DRIVE 

EXPANSION CABLE $15 
Cat No. 1147 Verbatim Diskettes j 

for above-box of 10 for $27j 



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



Pay by check, COD, Visa, or Mastercharge. 
Order by phone or mail. Please include phone 
no. USA add $1.50 for shipping/handling, or 
$2.50 for air. Foreign add $2.00 for surface, 
$500 'for air. COD's add 85c All items guaran- 
teed satisfaction for 120 days! 



19355 BUSINESS CTR DR 6B7 NORTHRIDGE, CA 91324 



Circle 170 on inquiry card. 



BYTE July 1979 235 



11 BflSICs 



from 



D BASIC, From the Ground Up by David E. Simon. 

This book Is a good introduction to computing and the BASIC language for anyone, regardless of their background. David 
Simon assumes you have no previous programming experience and no familiarity with computing concepts. From the ground 
up, he builds on the fundamental concepts and teaches each part of the BASIC language In turn. Examples illuminate each 
step and six fully solved problems are included. This Is the "beginner's book" In BASIC we at BITS have been looking for. 

222 pages $8.95. 

□ THE BASIC WORKBOOK — CREATIVE TECHNIQUES FOR BEGINNING PROGRAMMERS by Kenneth Schoman, Jr. 

This book contains lecture notes, exercises and problems for people learning BASIC. In a hands-on workbook style, Ken- 
neth Schoman covers statements, loops, functions, variables, Input/output and strings. Simulation and plotting are intro- 
duced. The examples and problems are runnable in virtually any version of BASIC. If you're learning BASIC, complement your 
studies with this book! 117 pp. $5.95 

□ BASIC WITH STYLE: PROGRAMMING PROVERBS by Paul Nagln and Henry Ledgard. 

"Programmers can and should write programs that work the first time." This statement may sound Idealistic to those 
accustomed to long hours of debugging. Vet, it's the theme of this book — a unique collection of "proverbs'' or rules and 
guidelines for writing more accurate error-free programs. Newly rewritten, this bock now emphasizes structured program- 
ming and all examples are in BASIC. 134 pp. $5.95 

□ BASIC BASIC, 2nd EDITION by James S. Coan. 

If you're not already familiar with BASIC, James Coan's Basle BASIC is one of the best ways to learn about this popular 
computer language. BASIC (which stands for Beginner's All- Purpose Symbolic Instruction Code) is easy to learn and easy to 
apply to many problems. Basic BASIC gives you step-by-step instructions for using a terminal, writing programs, using loops 
and lists, solving mathematical problems, understanding matrices and more. The book contains a wealth of Illustrations and 
example programs, and is suitable for beginners on many different levels. It makes a fine reference for the experienced pro- 
grammer, too. 256 pp. $8.95. 

D ADVANCED BASIC by James S. Coan. 

Advanced BASIC is the companion volume to James Coan's Basic BASIC. In this book you'll learn about some of the more 
advanced techniques for programming in BASIC, including string manipulation, the use of files, plotting on a terminal, 
simulation and games, advanced mathematical applications and more. Many useful algorithms are covered, including some 
clever sorting techniques designed to reduce program execution time. As with Basic BASIC there are many illustrative exam- 
pleprograms included. BASIC doesn't have to be basic with Advanced BASIC! - 184 pp. $8.95 

□ BASIC AND THE PERSONAL COMPUTER by Dwyer/Crltchfleld. 

A fascinating book covering many areas of Interest to the personal computer user. After giving an in-depth course in 
BASIC, which can be covered in 8 hours, the book discusses microcomputer hardware, graphics, word processing, sorting, 
simulation and data structures. This Is an easy to read text that is useful for the beginner and informative for the advanced 
user. 438 pp $12.95 

□ THE LITTLE BOOK OF BASIC STYLE by John Nevison. 

Structure, style, correctness, maintainability. Attributes of good programming are getting much attention, and well they 
should. When one considers what we invest in programs, their manageability and efficiency become very Important. Here 
these concepts are explained, along with 19 rules and many examples In BASIC to help improve your programming style. 

151 pp. $5.95 

□ SOME COMMON BASIC PROGRAMS by Lon Poole and Mary Borchers, published by Osborne and Associates. 

At last, a single source for all those hard to find mathematics programs! Some Common BASIC Programs combines a 
diversity of practical algorithms in one book: matrix multiplication regression analysis, principal on a loan, integration by 
Simpson's rule, roots of equations, operations on two vectors, chi-square test, check writer, geometric mean and variation, 
coordinate conversion and a function plotting algorithm. These are just some of the many programs included. For only $8.50 
you can buy the kind of programs previously available only as part of software math package systems for large scale com- 
puters. All the programs are written In a restricted BASIC suitable for most microcomputer BASIC packages, and have been 
tested and debugged by the authors. 192 pp. $8.50. 

□ BASIC WITH BUSINESS APPLICATIONS by Richard W. Lott. 

This book focuses on the BASIC language and its application to specific business problems. The book is divided into two 
sections. Part one introduces the BASIC language and the concept of logical flowcharting. Part two presents problems and 
possible solutions. Topics include: Interest rate calculation, break-even analysis, loan rates, and depreciation. Exercises at 
the end of each chapter give a greater understanding of BASIC by actual programming. This book Is a great aid to the begin- 
ner wanting to learn BASIC without having a technical or scientific background. 284 pp. $1 1 .50. 

□ BASIC COMPUTER GAMES: MICROCOMPUTER EDITION edited by David H. Ahl. 

Here are 102 classic computer games, every one in standard microcomputer BASIC; every one complete with large, legible 
listing, sample run and descriptive notes. All the classics are here: Super Star Trek(one of the most challenging versions 
anywhere), Football (two versions), Blackjack, Lunar Lander (three versions), Tic Tac Toe, Nlm, Life and Horserace. 

188 pp. $7.50 

□ GAME PLAYING WITH BASIC, by Donald D. Spencer. 

You'll enjoy the challenge of competing with your own computer. Games described include: 3-D Tic Tac Toe, Nlm, Roulette, 
Slot Machines, Magic Squares, Keno, Morra, Baccarat, Knight's Magic Tour, and many others. The style is non-technical, and 
each section gives complete rules for the game, how it works, illustrative flowcharts, and example outputs for each program. 
The last chapter contai ns 26 games for reader solution, including Hexapawn and Poker Dice. 166 pp. $7.95. 





FOR YOUR CONVENIENCE, PLEASE 
USE ORDER FORM ON PAGE 137 



RlT5^ DIAL YOUR CHARGE CARD ORDERS TOLL-FREE 800-258-5477 

Hvl I V iflC (in NH call 924-3355) Mon-Fri 9-5 

\J3ooks to Grose the impossible POB 428, 25 Route lOl UJest, Peterborough, N.H. 03458 



236 BYTE July 1979 



^-/Udwvnced 

\ ^^^^^_ ^\/\ 1 f fVf T^rtf^r\ AT FAIR PRICES NOW LOWEF 

S ^^^LAJlYVPlj 1 fc,R , 1. Proven Quality 



THE FIRST TO OFFER PRIME PRODUCTS TO THE HOBBYIST 
AT FAIR PRICES NOW LOWERS PRICES EVEN FURTHER! 



Factory tested products only, no revests 



-^^^^k fT^T , ^^ ,, \T^T T^^^^T^t^ m0 -.^ or fallouts. Guaranteed money back. We stand behind our products. 

\ /HHClLMJi-/ la ^ «* v ?t^- 1979 catalog now available. 

% 9 xSrt>\P tiL* -W^P Send $1 .00 for your copy ot the most complete catalog of computer products. A must 
V ■ ^ W * ir for the serious computer user. 



STATICX /ram boards 



S-100 32K(uses 2114) 

ASSEMBLED Kit 

450ns. 599.00 450ns. 

250ns. 699.95 250ns. 

Bare Board 49.95 

Bare Board w/all parts less mem. 99.95 



539.95 
599.95 



450ns. 
250ns. 



279.00 
299.00 



S-10016K (uses 2114) KIT (exp. to_32K) 

ASSEMBLED 

450ns. 325.00 

250ns. 375.00 

Bare Board 49.95 

LOGOS I 8K 

ASSEMBLED 

450 ns. 169.95 

250ns. 189.95 



HI 



125.95 
149.95 



KIT 450ns. 
250ns. 

BarePCBoardw/Data $21.95 
Now over 1 year successful field experience 
"Special Offer" Buy (4) 8K 450ns. Kits S1 17.00 




FLOPPY DISK DRIVES 



1. VISTA V-80 MINIDISK 
FOR TRS-80 

• 23% More Storage 
Capacity -40 Tracks 

• Faster Drive - 
Up to 8 Times Faster 

. 2 Drive Cable Add $29.95 
4 Drive Cable Add $39.95 

2. VISTA V-200 MINI-FLOPPY SYSTEM 

• 204K Byte Capacity • w/CPM, Basic "E" 

• OneSingleSided, ^-—^ 
Double Density Drive /v-2(X>\ 

• One Double Density \699.00 J 
Controller w/Case & P.S.V^_^ 

Add to your EX I DY, 
HORIZON, etc. 

3. VISTA V-1000 FLOPPY DISK SYSTEM 

• (2) Shugart 800-R 8" Floppy Disks 

• Controller Card, Cable, ^^"^ 
Case& PS /V-IOOOA 

• CPM & Basic "E", h 699.00/ 
Instructions & Manual ^- _^S 

4. MPI B51 -5 '/4"._40 tracks 279.00 

5. Shugart SA400-5V4", 35 tracks. . . . 295. 00 

6. Siemens/GSI FDD1 00-8 8" 375.00 

7. Shugart 800/801 R 8" 495.00 

8. PERSCI Model277 Dual 1195.00 



EXPANDORAM MEMORY KITS 

• Bank Selectable • Uses 41 15 or 41 16 

200 ns. 

• Write Protect • Power 8VDC, ±1 6VDC 

• Phantom • Lowest Cost/Bit 
Expa ndo32Kit{4115) Ex pando64 Kit (41 1 6) 



8K $179.00 

16K $229.00 

24K $299.00 

32K $349.00 



16K $248.95 

32K $369.00 

48K $469.00 

64K $565.00 



IMS STATIC RAM BOARDS #& 

• Memory Mapping • Low Power %* 

• Phantom • Assembled & tested 
Recommended by Alphamicrosystems 

250 ns. 450 ns . 

8K Static $209.00 $189.00 

16K Static $449.00 $399.00 

32K Static $799.00 $699.00 



ANADEX PRINTER 

Model DP-8000compact,impact.parallel or 
serial. Sprocket feed, 80 cols, 
84 lines/min., bi-directional. 
New only $895.00 



VERBATIM™ DISKETTES M* 

* 5V«" Minidiskettes • o^ C o 
Softsector, 1 Sector, 16 Sector T -\0; V -C* 
$4.25 Each, 10/39.95 nO^-O^ai 

• 8" Standard Floppy Disks • Jfeff.*' ' 
Soft Sector, Hard Sector v x 
$4.50 Each, 10/41.95 

*Add 4.95 for 10 Pack in Deluxe Disk Holder 



MOTOROLA EXORC1SER COMPATIBLE 

' 9600 MPU Module w/6802 CPU $495.00 

9601 16 Slot Mother Board 1-75. 00 

9602 Card Cage (1 9" Raima Rack Mount) . . . 75.00 

9603 8 Slot Mother Board 1 00.00 

9604 Swttchmode System PowerSupply... . 250.00 

96 1 Utility Prototyping Board 36.00 

96 1 6 Ouad BK Eprom Module •*' 

9620 1 6 Channel Parallet I/O Module .... 295.00 
9622 Serial/Parallel I/O Combo **• 

9626 8K Static RAM Module 295.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 

961 03 32/32 I/O Module 275.00 

96702 32 Point Reed Relay Module 350.00 

6800 BARE BOARDS 

9620-0 S45.00 9603-0 27.00 

9626-0 45.00 9600 55.00 

9650-0 45.00 96103 ....55.00 

9601-0 50.00 96702 55.00 

Also AMI EVK System in Stock 



APPLE/EXIDY/EXPANDO 
TRS 80 16K-UPGRADE KIT 



■*■ 16K with Jumpers & Instructions 

for either Level I or Level II $89.95 

• 1 6K for Apple II Upgrade. S89.95 

Special: TRS80 Schematic $ 4.95 

Expansion Interface Schematic $ 4.95 



for the serious computer user. 

MICROPROCESSORS STATIC RAM HEADQUARTERS 



TRS SO TO S-1 OO 

PET TO S-100 ADAPTER 

Allows Pet/TRS 80 to be interfaced to 
popular S-100 Bus. 

Pet to S-1 00 Kit $189. 95 

Assembled $269.95 

TRS80toS-1 00 HUH 8100 Kit.... $275.00 
Assembled $355.00 



KEYBOARD ASCII ENCODED 

One time purchase of 
NEW Surplus key- 
boards. From the Singer 
Corporation. The 
-1 keyboard features 1 28 
i^ - ri a , ' | f | , U | t ' ^ i T', ' J ^ fJASCII characters in a 63 
' ^lil ' i 'ii l ljgkey format, MOS 

encoder circuitry "N" key 
rollover, lighted shift lock, control, escape and 
repeat functions. Ltd Qty 63 KEY $59.95 




UV "EpronV' Eraser 

Model UVs-1 1 E $64.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 SI 00 Compatible • Uses CPM 
Assembled for Shugart. . . . SALE $239.00 

Assembled Other Drives $269.95 

Kit S179.95 

Bare Board $36.95 (Doc. Add $1 0.00) 

Vista Double Density SV«" Controller 

Assem $299.00 

SD Vers Roddv Kit $1 59.95 

SO Versa Floppy Assembled Si 89.95 

Tarbet Cassette I/O Kit $ 1 1 5.00 

Sale • 1771-01 Floppy Chip $27.95 

BYTE USER 8K EPROM BOARD 

• Power on Jump • Reset Jump 

Assembled & Tested $94.95 

Byteuser Kit $64.95 

Bare PC Board , $2 1 .95 

Special Offer: Buy 4 kits only $59.95 each 

MR-8 8K w/ 1 K Ram $99.50 

MR-1 6 1 6K w/1 K Ram $99.50 

EPM-1 4K 1702 $59.95 

EPM-2 2708 or 271 6 Eprom $69.95 

Z-80/Z-80A/8080 CPU BOARD 

• On board 2708 • 2708 included (450ns.) 

• Power on jump • completely socketed 

Assembled and tested $1 85.00 

Kit $129.95 

Bare PC Board $ 34.95 

• For 4MHz Speed Add $15.00 

8080A Kit $ 99 95 

8080A Assembled $149.95 

S-100 MOTHERBOARD SPECIAL 

8 slot expandable w/9 conn. 

reg $69. 95 NOW $52. 95 



TARBELL FLOPPY CONTROLLER 

Card assembled and tested for use with Shugart 
Drives $ SALE PRICE only $229.00 




ACOUSTIC MODEM 

NOVATION CAT 

0-300 Baud 

Bell 103 

Answer, Originate $198.00 

ACOUSTIC COUPLER SPECIAL 

AJ MODEL A30 
SPECIAL PURCHASE 
OF SURPLUS UNITS 
AVAILABILITY LIMITED $29.95 



DATA BOOKS • COMPUTER BOOKS 

1 978 IC Master 49.95 Inlel MCS 80 Manual 7.95 

NSCTTLDatfl 3.95 Inlet MCS 40 Manual 4.95 

NSC Linear 4 95 AMD 8080A Manual 5.95 

NSC Linear Aco Noiea 11.3.95 AMD Schottky Oatabook .4.95 

NSC CMOS 3.95 AMI MOS/LSI Dala 3,95 

NSC Memory 3.95 Gl MOS/LSI Dala ...4.95 

Inlet Dalabook 4.95 Harria Analog Databook , . . 4.95 

Intel MCS 85 Manual 7.50 Tl Linear Control Dala 3.95 

SALE • OIBORMI BOOKS • BALI 

Rag. Sal* 

Intro to Micros Vol. ■ TSM 7 .7 5 

Intro to Micros Vol. I 9"SQ 7.75 

8080A Programming £sq 7.75 

6800 Programming fTSQ 7.75 

ZSO Programming £5Q 7.75 

Vol. II Some Real Microprocesaors w/Binder 3WOQ 27.50 

Vol. Ill Some Real Support Devices w/Binder 50*0. 18.50 

Intro to Micros Vol. Ill "Z&&L. 1 8.50 

BALI • D1UTHIUM COMPUTIB BOOKS • SALB 

Understanding Computers "»«*- 7,95 

8080Microcomputer Experiments T334- 1 1.95 

Beginning BASIC "M*- 8.95 

Beginners Glossaty & Guide t>9*. 5 95 

Peanul Butter 4 Jally Guide lo Computers .T3*. 6 95 

8080 Machine Language Programming .-7-94. 6.95 

Home Computers Vol. I Hardware Tr94> 6.95 

Home Computers Vol. II Software T3-«fc 1 1 .95 








■ 16.05 


Z-80A 


18.95 


F-8 (3S50I 


16.95 


2650 


1895 


CD 1802 


19 95 


6060A 


9 95 


B080A-dMHi . 


1995 


SALE BOBS 


18.S3 

16 95 


2901 


2901 A 


2495 


TMS 99O0JL . 


49.95 


CP1600 


39 95 


6502 


11 SO 


6502A 


...... ..1995 


IM6100 


29.95 






6802P 


24.95 


8035 


1750 



B7S5 "995 



SUPPORT DEVICES 

AM95 1 i Amr> Processor SI 95 00 

AM 9511-1 300 ns... 245.00 

AM9517 DMA Compiler 71 95 

AM95 19 Universal Iniernjpi 24 95 
388UZ80PIO1 10 45 



2 50 
2 95 
9 75 



6.25 
6 95 
19 50 
6.50 
19 50 
19 50 
74 95 
19 95 



3ae2 ( Z-80CTCi 



8214 Priority Int 
8216 Bus Drive' 
8224 Dock Gen 
8224-4 [4MHH 
8226 Bus Driver 
8T26 Bus Driver 
8226 Sys Conlrol 
8238 Sys Com 
8251 Prog 1*0 
B253 im Timer 
8255 Prog \.'0 
G257 Prog DMA 
8259 Prog Inl 

6275 CRr Controtei 

b27;i Pr:-,j K.OylHM'd 

6810-1 128 <5 RAM 

6820 PIA 6.50 

6821 PIA 6.50 
6B28 Pr.only Int 11.00 
6834.1 512 iB Eprom 12 95 
6850 AClA 7 20 

f a52 5i-':ai Aoaoi*< 9 %$ 

6845 -HD4 6505 CRT Onlr 39 95 

6860 Modem 9.95 

6662 Modulator 11.95 

6871 A 1 OMHiOSC 25 95 

6875 825 

6660 Bur, Driver 2 39 

MC684Q8 1995 

1821 SCD IK RAM 2500 

1822 SCO 256 i 4 RAM ] 6 95 
1B24 CD 32)t 8 RAM 9 95 
1852 CD 8 bit I/O '0 95 

1854 Uart 10.95 

18S6CDI.O P95 

1857 CO I/O 8 95 

6520 PIA 7 50 

6522 Mult 9 25 

6530-002 15 5U 

6530 003 'iS50 

6530-004 1550 

6530-005 15 50 
3851 Fa Prou S'l'M' 
.1B53 t-B Mem--v <-C 



DYNAMIC RAMS 

416/4116 l6K(16Pin) 12 45 

Seiot8416's ...8995 

41158K(16Pin) 6.95 

4O50 4Kx1 (18 P.nl 4.25 

4060 4Kx 1 (22 Pin) .... .4 95 

4096 4K«1 (16Pin) 3.95 

2104 4Kx I (16 Pin) 4.75 

4027 4Kx I (16Pinl. 4 95 

1103 





1-24 


25-99 


100 




21 L02 450ns 


1 30 


1 25 


1.15 




21L02 250ns 


1.59 


1 55 


1,45 




2102 


l 25 


1 15 


1 10 




211 1 


3 75 


3.65 


355 




2112-1 


2.95 


2.85 


2.65 




2101-1 


2.90 


2 70 


2.55 




2114L-250ns. 


1 2 95 


10.95 


9 95 




21 14L-300ns 


695 


7 95 


645 




2114L-»»0n». 


750 


675 


4.7 S 




4044/4041 300ns. 


995 


875 


7.95 




•1014/4041 450ft*. 


7 50 


6 75 


4.78 




EMM4200A 


9 75 


8 75 


7 95 




EMM4402 


7 95 


7 25 


6.25 




EMM4804 


1250 


11 50 


995 




5101CE 


7 95 


7 95 


7 25 




upd410i4200> 


1095 


1025 


9 25 




AMD9 140-41 


1095 


1025 


9 25 




AMDS 130 31 


12 95 


11 95 


10 25 




FSC 460 46416K CCD Only S 


16 95 E.k. 






1101 


i 95 


" 1 75 


l 25 




P2125 13425*45 «W 


) 7 95 


7 35 


7 25 




6506 IK , l CMOS 


7 95 


7 95 


7 25 




6510 IK , l CMOS 


7 95 


7 95 


7 25 




74SIB9 64 t:il Ram 


395 


3 25 


2 50 




8155 l.-Ow/Ram 21 


95 








2147 Low Power 4K Sialic 14 


95 ea 










CHARGE COUPLED DEVICES 




!6KCCD-F.'SMimer 


tterea Fa 


rcndd 460 CCD 




16K Memory (now you 






ncCD 




technology al a reason 




1 7 page App/ica- 








' Quanhi 


lim.ledl 




$18.95 each (reg. 43.00) 







CRYSTALS 

Microprocessor Timebases TV Car 

Frequency Price Frequency 

I iJMH.- S5 85 6 QMHi 

l B4.!3 4 95 6 144 

JOMH; f>H5 6 5536 

2 95 10 0MH; 

MHr S65 13QMH/ 

H/ S85 14 31B18 

iMH/ 1 50 IBOMHf 

'1 95 13 432MMJ 

iMH; !i95 20 OMMj- 



4 95 



5262. 
5270.. 
5280 
5290 



.. 1.95 
..4 95 
.4,95 
12.45 



4008 L 
6605 
6604 . 
6002 



.4.95 
,7 95 
4.95 
1.50 



995 
7 50 
395 
3 50 
5995 
4000 
2995 
ll 95 
995 



PROMS 

270B 

2708-6 

1702A 

I702A-6 

2716-5V 

27I6-5V 12V 

2758 5V 

5203AO 

5204AO 

6834-1 12 95 

IM5610 295 

SALE 8223 33x6 2.9S 

82S115 512x8frS) 16.95 

825123 32x8 2.50 

825126256x4 3.50 

62S129 256x4(TS) 3.50 

8251 30 51 2 x 4 (OC) 6.50 

NSC DM757832x8 2.95 

CHARACTER GEN 

2513001 I5V1 Upper ... 9.50 

2513-005 I5V> Lower 1095 

2513-AOM3I5VI Lower 

MCM6571 . 

MCM6571A 

MCM6574 . .. 

MCM6575 



1075 
1075 
14 50 



3 95 

4 35 
695 
6 95 
550 
7.95 
8.95 
995' 

24 95 



UARTS/USRTS 

TB1602BI5V I2VI 

AV5 101315V. !2VI 

AV5l0l4A/l5l^;-3 I'M 

AY51015A/1863C.VI 

TMS 6011 (SV. 12VI 

1M6402 

IM6403 

2350 USRT 

1 67 1 B Astros 

SALETR1472B 0.0 

BAUD RATE GEN 



KEYBOARD ENCODERS 

AV5-2376 ' 3 75 

AY5-:)60O 13 75 

HD0165 9.95 

74C922 9.95 

74C923 995 

A/D CONVERTERS 

8700 8 t* I Binary 13 50 

8701 tOb.tBin.-iiy 22 Of 
»703BhuTS 13 50 
9400 Volt lo Fr^l Conv 7 25 
a750 3-W?Oit|ii BCD !J95 
1408L6fil.il J 95 
I-108LB II tut 5 95 
DACOl A/D 5.95 



.'; i 



MM* 



OISPLAYS/OPTO/LED'S 

• 7 SEGMENT * CALC * CLOCKS * 

DL 704 ICC), DL 707 ICA) 300" Red . 99 

FND 357 (CC) .357" Red 99 

FND 500/503 ICCl .500" Red 99 

FND 507/510 ICA! 500" Red 99 

FND 800/803 ICCl 800" Red .... . 1.75 

FND 807/810 (CA) 800" Red 175 

XAN3062 500" Green 115 

HP5082-7731 (CA) 300" Red .89 

9 D>gil Bubble Mini Cafe. Display 99 

9 Digil Panaplex Display .400" 99 

9 0»gil Fluorescenl 300" 99 

MA1003 12V Aulo Clock Module 13.83 

BezeilorMA1003w/Red Filler 4 95 

MA10O2ALED 1 2 hr. ClockModule 10 95 

• HEX DISPLAYS * ENCODED DISPLAYS * 

1-iP 5082-7340 Red Hexideomal 1 5 95 

HP 5082-7300 Red Nymer«c 1 495 

TIL 306 Numeric w/Logic 8.95 

TIL308Numberw/Logic 8.95 

TIL 309 Numberw/LOCjic 8.95 

TIL3 1 1 Hexadecimal 1295 

MAN 2 A 320" Red Alpha-Numeric. . 5 95 

MAN I0A 270" Red Alpha-Numeric 895 

• LSD's * OPTOISOLATERS * 

LEDS Red. Yellow. Green 185 5/100 

MCT2PnotoXSTRHFE250. 30V 99 

4N25 Photo XSTR HFE 250, 30V 1.29 

4N33 Photo Darlinglon 1.75 

FPT HOBPholoXSTRFlalLense ...SALE4/1 00 

ATTENTION KIM USERS 

KIMSAI-expansbn lo S-1 00 ... 1 25 00 Ktl/165 00 

KIMSlto KIM Connector 5.75/pair 

KIM 1 6502 Single Board Computer 1 79 00 

KIM 1 Power Supply 59.95 

KIM MemoiY Pius • (consists of 8K Ram, 
8K2716Eprom.Programmer.l/Oeto). ..245.00 
KIM SOFTWARE 

• Please package (casseltel »2 games. .1895 

• Help Editor package (cassette). 16.95 

■ Help Mailing Lisl pkg. (cassette) 16 95 

• Help Into Relnval pkg. (cassette) 16 95 

• Microchess (cassette) 16.95 

• Microaid Assembly/Oisassem/Editor.... 27.95 

• Microaid Source Listing (cassette). 27.95 

• Tiny Basic lor KtM (paper lape) 1095 

COMPUTER SPECIALS 



Hi Plot Pldler 
HiPlot Digitizer 
Exidy W/32K 
Appieit W/16K 
Compucolor II w 1 
TEI PT208 II avail 
Cromemco Sys 111 
Commodore Pet 
Soroc 10/120 
ADM3A Assem 
Teletype 43 
Cenlronics P-1 
CentronicsS-1 



¥"• 



795 00 
1395 00 
1195 00 
1 695 00 
499500 
5990 00 
795 00 
99500 
895 00 
1349 00 
495 00 
59500 



735 00 
119500 
1045 00 
1595 00 
399500 
53950C 
76500 
89500 
829 00 
1150 00 
395 00 
52500 



MONTHLY IC SPECIALS 

LF13508 JFET AnloQ Mulii 8 bit 
ICM7208 Seven Decade Counler 
ICM7207 Oscittator Controller ^. 
ICM7045 Precision Slo/WalCh T.msr 
ICL7107 3'>O.g.lA/DlLE0l . 
ICL821I Voltage Reference . 
LM390 Baltery OP Audio Amp 
LM 1830 Fluid Detector 
LM 1850 Ground Fault IC 
LM1800 Phase Lock Loon FM Sier« 
LM 1820 AM Radio . 
D53625 Dual Mos Sense Amp . 



1 8 Pm W W 50 



TEXTOOL ZERO 
INSERTION FORCE 
SOCKETS 

16 Pin S 5 50 24 Pm $7.50 

40PinS10 25 

CONNECTORS 

DB25P(RS232) 3.25 

DB2SS Female 3 75 

Hood 125 

Sei w/Hood. Sale , 
22/44 WAA/. S/T. KIM 
43/86 W/YV. S/T. MOT 
50/ 1 00 S- 1 00 Connector v 

50 ■! oo s- 1 oo Oonnectof « 



56 50 
.. 2.95 
. 6 50 



CTS DIPS WITCHES 

CTS206-4 5175 CTS206-6 SI 95 

CTS206-5 SI 75 CTS206-9 Si 95 

CTS208-6 S1.75 CTS206-10 SI 95 
CTS2C6-7 SI 75 

LIVERMORE BASIC 



OUR PRICE only 



NAKED PC BOARDS ALE 

2-80 CPU (Ithaca). 534.95 

8080ACPU ...3495 

8K Stale RAM |Logos> 21.95 
16KStalicRAM<2114>. . 29.95 

32KSlalicRAM(2114) 4995 

Floppy I/O ITarbell) 39 95 

Cassette I/O ITarbell) . 2995 

8K Eprom (2708). 21.95 

1702 Eprom Board 30 OC 

2708/2716 Eprom (Ithaca). 3495 
2708/27 1 6Eprom (WMCt . 3000 

Realtime Clock 34 95 

ACPProloBdOMConn) 27 95 

Vector 8600 P.oto 1 9.95 

Vector 8803 11 slot MB 29 95 

ACP Exlender w/Conn 1595 

Video Interface (SSM) 27 95 

Parallel Interlace (SSMI .... 27 95 
13SioiMolher8oard(YVMCI 32.95 
9SotMolhe f Board(WMC) 2995 
BSioiMoiheHexpandablel 34 95 



3 95 
2 45 
1 75 
5 25 



. 8 95 

. 17 95 

. .. 6 95 

22 95 

14 95 

1.95 

3/100 

3/1 00 

3M 00 

3M OO 



WAVEFORM 
GENERATORS 

8038 Funclicn Gen 

MC.102.1 VCO 

LM566 VCO 

XR2206 Function Guner; 

FLOPPY DISK I/O 

1771-01 8 4 Minifloppy 2795 

uPd372Nec Floppy ,49.95 

1781 Dual Floppy 3995 

1791 Dual Floppy . 44.95 

TV INTERFACES 

p.xte-Verler 8 50 

TV-1 Video Iniertace 8.95 

Microverier 3500 

MfiRModulalor 35 00 

ATTENTION 
PET USERS 

BETSI-pei expansion to 51 00 

105.00 K.t/ 160 00 

PET Connectc* Kit. Includes (4) 
Connectors for memory expansion. 
IEEE 468 I/O. cassetle I/O and 

parallel user port — 7 95/sel 

Video Suiter 
(converts to Sid Video). . . .>. 29.95 
Pelun a (Musk: Board) 29 95 

Combo(Video4 Petunia). 4995 
Beeper (signals tape load) .... 24 95 



ATTN TRS 80 USERS 

20/40 Pm Memory Exo. Conn 

57 95 
1 6K Memory Add-on w/lnst 69 95 
Vista V80 Mimlloppy - .395 00 
40Track DOS Patchon Disk 1095 

4 Drive Cable for V60. 39.95 

Centroncs779w/lractor 117900 
Centronics 701 Bidifecl... 157900 

ANADEX DP8000 995 00 

Mrcm-P |;«ame as Ouick Printer) 

39500 

Cade to plug m Expansion I/O 39 00 
Power Strip |6 outtels) .... 17 95 
Surge Suppressor/Filter 2395 

MicrosoftForlranonDisk 32500 
Electric Pencil on Casselie 
Electric Pencil on Disk 
CP/MforTRSonD,sk. 
Library 1 00 icassetiesl 
Micro Chess. Icasseite) 



99.00 
50.00 
15000 
4995 
1995 



*vaa*0S-i wtrtare 






liy-vr. Hi- 



Shipmenis FCM 1 



3/100 
2 50 
i-iubLH 4/1995 10147 ECLRanT".T 9.96 

I48B/1489 2/199 ^£561 5.00 

22PinS/TSor.kel10/l 00 LF356HBIFet ..3/1,99 

B223Prom 295MCM14505 8.95 

633! 1 Prom 195 74509 3/1 99 

MK5014Calc 2/1 99 74107N":.': '.'.'. 6/1.99 

74141N 3/199 75452N 8/l . 9e 

LM291? 2 25 741N-14 .10/1.99 

BT 2 6/8r2B 2 19 555CN 5/1.99 unrJrr 5100.00 Add 5% handling imJ 

95H &0 995 568CN" 3/1.99 poj^oe. Ordcn over S 100.00 jdd 2.5% 

handling & (H»Iage. Ma!iert-ha,9e Sank 
ATTTIITIftll arr.rr card COD accepted w/25% defout. 

ADDLE IICFDQ CMo '™ Re " den " add 6% '"" Fofel9n 

APPLE II UacHa Order! add B% handling. All Parti prime 

Applu I!w/I6K SI045UU UciotV teited juritanued. Same day 

l6KUp«jradeKil 89 95 aMproant. Add .35 C««a for Data. 

FJopoy Disk tlw/lnlerlacu 595 00 Relail pncuiij may v.iiy 110111 Mail Older 

Floppy Disk II 495 00 Piioig All nncmti sutuec! lo change. 

Firmware Card 180 00 wilhoul notice 



9.95 



P. 0. BOX 17329 Irvine. Cslifornia 92713 Phone (714) 558-8813 



Retail Store Open Mon. - Sat 
Located at 1310 "B" E. Edinger, 



TWX. 910*595-1565 Santa Ana, CA 92705 



Circle 4 on inauiry card. 



BYTE July 1979 



What's New? 



SOFTWARE 



Key-to-Disk Software Available for 
Microcomputers 




A new key-to-disk software (P1- 
KTDS), designed to run on 8080 and 
Z-80 microcomputers, has been an- 
nounced by Phone 1 , POB 1522, Rock- 
ford IL 61110. The software supports 
four video terminals, four floppy disk 
drives, line printer, and 3780 communi- 
cations. The P1-KTDS package allows 
up to four video users to define and sel- 
ect as many as four screen formats per 
user. Each format may contain as many 
as 40 user specified fields. Constant 
data fields may also be specified. 

In addition to data entry, data 
verification is also included as a feature 
of the system. Verification is done on 
each field specified as a verify field 
whenever the verify option is enabled. 
Each of the four users has a separate 
disk drive that stores the formats and 
data records for the particular video 
assigned to the drive. 

The P1-KTDS software is currently 
shipping on Phone 1's P1-5 Data Con- 
centrator product which utilizes the 
8080 microcomputer, 8214 and 8259 
interrrupt controllers, 8251 terminal and 
printer controllers. Mylar decals, which 
attach to the front edge of the video 
keytops, guide the user in efficiently 
entering data. 

P1-KTDS source module on CP/M 
or FDOS III compatible disk, limited 
use license, users manual, and four sets 
of keyboard decals are priced at $2,500. 
The users manual is available separately 
for $35. 

Circle 629 on inquiry card. 



Business Software Packages 

A line of 21 fully integrated and 
auto-chaining business software packages 
is available from Univair International, 
10327 Lambert International Airport, 
St Louis MO 63145. Some of the major 
programs include General Ledger, Ac- 
counts Payable, Accounts Receivable, 
Payroll, Inventory, Dental Management 
System, Medical Management System, 
Real Estate Multi-List, Insurance Agency, 
Credit Union, Data Base Management, 
and Word Processing. All programs are 
run under CP/M or IMDOS with com- 
mercial BASIC and 31 K bytes of pro- 
grammable memory. A system of auto- 
matic chaining, posting, file backups, 
and updates is incorporated. 

The cost of each program on an eight 
inch soft-sectored floppy disk is $395. 
Complete source code and operators 
manual are provided. Programs are 
also available on five inch Northstar or 
five inch Micropolis disks. 

Circle 630 on inquiry card. 



Software for the Apple II Computer 

Softape, 10756 Vanowen St, North 
Hollywood CA 91605 has an extensive 
selection of software available for the 
Apple II computer. One such program, 
Appletalker accepts voice or audio 
information through the cassette input 
port, digitizes the information, and 
stores it in numbered tables in the 
computer's memory. The stored infor- 
mation can then be played back using 
the Apple's on board speaker. 

Apple-Lis'ner allows the user to 
communicate with the Apple II com- 
puter via spoken words. By using a cass- 
ette recorder and microphone, Apple 
Lis'ner will listen for the words or 
phrases it has learned and respond under 
program control. 

For more information on these and 
other Apple II programs, write to 
Softape at the above address. 

Circle 631 on inquiry card. 



Software for the Micropolis Floppy 
Disk System 

The Basically Speaking Co has 
announced the availability of software 
for the Micropolis five inch floppy disk 
systems. Statpak includes the ability 
to create a data file and to do multiple 
statistical analyses on a data base. 
Available statistical functions include 
Chi Square, analysis of variance and 
linear regression. 

Gradebook allows school teachers to 
use their computer as a gradebook. 
Multiple classes are allowed, as well as 
missing assignments, excused absences, 
and addition and deletion of student 
records. A grade figuring program called 
Reportcard is included. 



The Personal Accounts Ledger (PAL) 
program keeps not only a checkbook 
ledger, but a savings ledger, a small 
business ledger, and an investment 
ledger, and allows these ledgers and 
their accounts to be fully integrated. 
Selected account printing is also sup- 
ported. 

The price is $45 for a Micropolis 
MDOS (Model I or II) or Micropolis 
CP/M disk and documentation. The 
documentation includes full instructions 
for use, suggestions for modification, 
and complete listings. For further in- 
formation contact Basically Speaking, 
719 Anna Lee Ln, Bloomington IN 
47101. 

Circle 632 on inquiry card. 



8080 Simulator for the 6502 

Now available in a KIM-1 version, the 
8080 Simulator for the 6502 processor 
executes the entire 8080 instruction set. 
All internal 8080 registers are main- 
tained, ready for convenient examin- 
ation or modification of their contents. 
In its minimum configuration on the 
KIM-1, the 8080 Simulator supports 
register single step, program counter 
single step and run modes. It also offers 
an input and an output port, breakpoint 
operation, and rejection of illegal op- 
codes. 

The 8080 Simulator runs in less than 
1 K of memory, leaving up to 224 bytes 
of 8080 programming space on an 
unexpanded KIM-1. The Simulator may 
be relocated in read only memory and 
can be adapted to other 6502 based 
systems. 

Well suited to all but time sensitive 
applications, the 8080 Simulator may 
be used to assist in the design and 
testing of 8080 software, used as a 
training aid or used for running most 
8080 application software. The pack- 
age consists of a KIM-1 format cassette 
tape, a user manual and a complete, 
commented assembly level source and 
object listing. The price is $18 plus 
$1.50 for postage and handling. For 
further information, contact Dann 
McCreary, 4758 Mansfield St #2B, 
San Diego CA 92116. 

Circle 633 on inquiry card. 



Word Processing System for Z-80 
Based Computers with North Star Disk 

The Wordsmith is a word processor 
for Z-80 based computers with North 
Star floppy disk systems, an RS-232 ter- 
minal and a Diablo 1620 or equivalent 
printer. It provides complete cursor con- 
trol, block movements, string searches 
and alterations, insertion and deletion 
of text, and other editing functions 
through the use of control commands. 

Print formatting commands are en- 
tered along with the text and allow 
the format to be changed while the 
printing is taking place. The format 
commands include right justification, 
setting of margins, automatic paging 
and headers, four types of paragraphs, 
insertion of variable data into the text, 
and operator instructions. Form letters 
are easily produced, each one person- 
alized for the recipient, through the use 
of simple text commands. Disk file 
creation, deletion and updating are han- 
dled automatically. 

The Wordsmith is priced at $299. For 
further information contact Southwest 
Micro-Systems, POB 20088, Riverside 
CA 92516. 

Circle 634 on inquiry card. 



238 July 1979 © BYTE Publications Inc 



TTH AC A AI JDIO 



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&T2mHz $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 ASCII character 
set Easy-to-read 16 line x 64 character 
format can be displayed on an inexpensive 
video monitor or modified TV set. Includes 
TTY software. Add our powerful K2 FDOS to 
create a versatile operator's console. 

A&T $145.00 
Blank PC $ 25.00 

• 8K Static RAM Board Highspeed 

static memory at a reasonable cost per bit. 

Includes memory protect/un protect 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 i s adding a new wrinkle— now all 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 
thoseoverseas. 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 
14 /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 
64K to take advantage of the low price per bit. 
Furthermore, the board is available both as a 
kit and assembled and tested. 
Delivery is stock to two weeks. Pricing is: 

• 32K kit $319 

• 32K A&T $359 

• 64K kit $645 

• 64K A&T $695 

8" Disk Drives 

Shugart compatible Memorex 550's are in 

stock. 

Single and double density compatible, 330K 

bytes capacity with our controller or use your 

own. 

Either way $456 

Protoboard Universal wire-wrap board 
for developing custom circuitry. Room for 
three regulators. Accepts any size DIP 
socket. 

Blank PC $ 25.00 



Pascal/Z Ready 

The first Pascal Compiler for the Z80, and the 
fastest Z80 Pascal ever is now ready. Over 
one year in development, Ithaca Audio was 
obviously pleased with the results. "We really 
have outperformed them" states Jeff 
Moskow, Director of Software Engineering, 
beaming over the recently released 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 makeshis 
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 12K and is supplied on an 
8" K2 disk for $75.00. 

SAVE Even More - 

When you buy your software as a package 

K2 and Pascal/Z $225 

SAVE $25 

K2, Pascal/Z and Basic/Z $275 

SAVE $50 



HOW TO ORDER 

Send check or money order, include $2.00 shipping per order. 
N.Y.S. Residents include tax. 

For technical assistance call or write to: 



ITHACA 
AUDIO 



P.O. Box 91 

Ithaca, New York 14850 

Phone: 607/257-0190 



BYTE July 1979 



239 



Whafs New? 



MISCELLANEOUS 



Home Computer From Bally 



The Bally Computer System contains 
the built-in "Bally Brain," a micro- 
processor that has a 12 K byte memory. 
Each optional Bally Videocade cassette 
adds up to 8 K additional bytes. Also 
built into the system are a five function, 
ten memory register calculator, 256 
color display variations, stop-action 
pause control, and automatic shut- 
off. The unit is available in two player 
and four player models and has a 16,000 
dot picture image. With three arcade 
games and a 24 key calculator built in, 
the two player model has a retail price of 
$299.95 and the four player model is 
$329.95. Both an optional Bally BASIC 
programming cassette and an audio 
cassette interface are priced at $49.95. 
For further information contact Bally 
Consumer Products Div, 10750 W Grand 
Av, Franklin Park IL 60131. 

Circle 639 on inquiry card. 




Microcomputer Offers Pascal in 
Programmable Read Only Memory 

This new microcomputer designed 
for use with Pascal is being marketed by 
Control Systems Inc, Drawer EE, 
Williamsburg VA 23185. The UDS 470 
offers Pascal in programmable read 
only memory as an alternative to as- 
sembly language and BASIC for low and 
medium volume applications where 
power and fast development are im- 
portant. They make available a version 
of UCSD Pascal specifically designed for 
read only memory and programmable 
read only memory operation for use 
in dedicated applications when the 
development cycle would be slow with 




assembly language. The Pascal in pro- 
grammable read only memory feature 
makes high level programming as easy 
as assembly language programming. A 
Pascal program is compiled (instead of 
assembled) and compiler output (P-code) 
is burned into programmable read only 
memory and erasable read only memory. 
The UDS 470 is a rack mountable 
system designed for industrial environ- 
ments (high temperature, vibration, etc). 
It currently uses the 6800 micropro- 
cessor, but can be upgraded to the 6809 
or 68000 when they become available. 
The UCSD system was designed to be 
machine independent. UCSD's 2 .0 
version is currently being supplied, but 
the 3.0 version will be used when 
UCSD releases it. The standard UDS 
470 package includes a processor with 1 
K bytes of programmable memory and 
2 K bytes of erasable read only memory; 
serial I/O (input/output) port with 
automatic reset and VCC monitor; 48 
K bytes programmable memory; 16 K 
bytes erasable read only memory; 5 inch 
double density floppy disks with inter- 
face; 5 V power supply; and a case. The 
approximate price of the standard UDS 
470 is $4000. 

Circle 640 on inquiry card. 



Where Do New Products Come From? 



The information printed in the 
new products pages of BYTE is 
obtained from "new product" or 
"press re/ease" copy sent by the 
promoters of new products. If in 
our judgment the information 
might be of interest to the per- 
sonal computing experimenters 
and homebr ewers 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. We therefore can- 
not be responsible for product 
quality or company performance. 



North Star Word Processor With Extras 

IDSWORD is a comprehensive word 
processing package available in North 
Star BASIC Version 6, under North 
Star disk operating system release 4.0. 
Prompts are given as complete English 
sentences, and responses are accepted 
as words, rather than numbers. Imbed- 
ded commands are not required since 
IDSWORD formats the text interactively. 
Some of the features are insertion, 
deletion, and block moves of text; 
global searches; complete text editing 
on video terminal or printer; control 
of margin size and justification; merging 
of up to ten files; sorting and printing 
of mailing labels. 

Block editing capability on the 
video terminal is available by a linked 
list of all lines of text in memory, 
coupled with full cursor control over 
the entire text display. The amount 
of text in memory is automatically 
adjusted to the available memory. 
About 25 pages of text may be stored 
on a single density disk. Longer docu- 
ments may be developed and printed 
in segments. 

IDSWORD will run with one or two 
disk units. It is presently configured 
to run with the Soroc, Lear Siegler 
ADM-3a, Hazeltine, and Intertube ter- 
minals, and the IBM Selectric, Qume, 
Diablo, and Spinwriter printers. IDS- 
WORD is a modular system starting 
at $125 for the basic configuration. 
The complete word processor is priced 
at $245 for the video screen edit capabil- 
ity, or $220 for the editing on the 
printer capability. The form letter, 
labels, name and address file mainte- 
nance, and sort modules are $50. For 
further information, contact CW Appli- 
cations, 1776 E Jefferson St, Rockville 
MD 20852. 

Circle 641 on inquiry card. 



240 July 1979 © BYTE Publications Inc 



CaI iFoRNiA D.g.taI 

Pcjst Office Box 3097 B • Torrance, California 90503 



Sankyo Magnetic 
Card Reader 



I These Sankyo I / O units are capable of storing and retrieving over 

T400 characters of data in under two secords. 

IThe flexability of this device lends itself to numerous applications. 

I As an input reader to a computerized security system, the com- 
puter has the ability of identifying the card holder and admitting 

I only those individuals who are authorized to enter the premises 

I during specified time frames. The device is also suitable for 

I maintaining customer information files, or any other application 

I where small amounts of information must be quickly entered into 

1 a data processing system. 

I Accepts 2" by 4" HP style mag-cards. (Similar to bank cards. ) 
Motorized feeder pulls the magnetic card across the four channel 

| read/write head. NEW surplus, original cost $200. Full documentation 



CONNECTORS 



your choice 



HZ! hood 1 DB25P 

f* ^-n male plug&h 

I 1 DB25S fem. 

f » | "«»» 3? 5 






3_ 

3» 



\>m 



w 



Qty, fe. male hd. 
10 3.45 2,45 1.15 
25 3.15 2.25 1.05 
100 2.85 1.90 .95 
500 2.25 1.60 .95 
IK 1.97 1.37 .73 



Edge 
Connectors 




GOLD 

100 PIN 

IMSAI/ALTAIR 



lm»i solder .125i. 250 

Imsal w/w .12 5 center! 
Altair soldertiil.UOroii 
SPECIALS 
22/44 Kim eyelet.lSG" 
25/50 solder tab .159" 
36/7 2 wide post w/w .156 



13.95 3/$ 9.00 
S4.9S 3/$13.00 
15.95 3/M5.00 

11.95 3/15.00 
sl.09 3/ $2.00 
♦1.95 3/*5.00 



100 Mother Board 




$ 29.95 

8803-18 
18 slot 
IMSAI 



HEXADECIMAL KEYBOARD 

Maxi-Swltch hexadecimal keyboards are designed for djM^I QR 
microcomputer systems that requ I re 4-bit output _wJ **T w 

In standard hex code. 
Each assembly consists of 1 6 hermeti- 
cally sealed reed switches and TTL "onej 
shot" debounee circuitry. 
Rollablo low friction ocotal resin 
plungers are credited lor the smooth 
operation and lonrj life of this premium 
keyboard. 
Requires single + 5 volt supply. 




K-Oi 




t UNIVAC 



ooty S24 88 



IM0DEL43 



Even If we have to give them 
away, were going to snip more 
43's In 1979 than the aggregate 
of all oar competitors. 

Model 43AAA TTL> 
EACH ___!_ _lg_ 25 

$925. 875. 850. 825. 

RS-232!nterface"K B Add*75.O0 shfpjinj TEeC| 





CrDdllllt Mini - Soft sector 



TEN $41 

for 7* 



m 



Scotch 

BRAND 

Diskettes 

8inchSoft(l6M^ 
8 inch 32 sector 
Mini Soft sec. 
Mini 10 sector 
Mini 16 sector 



Certified Digital 

CASSETTES 

Won't drop a BIT! 
*5 a 50 




CALIFORNIA 
INDUSTRIAL 

is an 

Authorized 

Dealer of 

Scotch Brand 

Dataproducts 



MEMORY 



KEYBOARD 

The tamoua Scarry (Jnivte 1 71 Holl 

ii now evailabse from California In 

Tha ideal compular input d»vic« 

mathemalicians. TJia numark Keys are placed on In* lower 

Ihree rows lo reasmbM a tan key adding machine This 

formal allow* one handed numeric data entiy. 

Original cotl was J38S. Used bul guaranteed In axcclienl 

condition Comploto with documentsllon. 



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



TEN KEY 

Data Entry Pad 

$79.50 



Plugs directly into you Apple II. 
Allows you to enter numerics, 
punctuation and upper case alpha 
characters, all from the data 
entry pad. Sold assembled in 
walnut finished enclosure. 



SPECiflL 



APPLE It 

IBK MEMORY 

COLOR (GRAPHICS* S00ND 



$1024 

PLUS SHIPPING 



Mfg.Sug. 
Retail.... 



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.F. MODULATOR 

<*>AQC Broadcast both 
at %J, audio and vidio 
on your existing color 
television. Recommend- 
ed for the Apple II. 



TRS-80SI 
APPLE II L 

16k memory (8) 4116's 




• As you may be aware, publishers 
require advertisers to submit their 
ad copy 60 to 90 days prior to "press" 
date. That much lead time in a volatile market place, 
such as memory circuits, makes it extremely difficult 
to project future cost and availability. 
To obtain the best pricing on memory we have made 
volume commitments to our suppliers, which in turn 
affords us the opportunity to sell these circuits at the 
most competitive prices. Please contact us if you 
if you have a demand for volume state of the art 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 lftc4 450 


6.95 


6.50 


6.25 


6.00 5.75 


2114 1Kx4 300 


8.95 


8.50 


8.00 


* * 


4044 4ftcl 450 


5. 95 


5.50 


5.00 


* * 


4044 4ftcl 250 


9.95 


9.50 


9.00 


* * 


4045 1Kx4 450 


8.95 


8.50 


8.00 


* * 


4045 lftc4 250 


9.95 


9.50 


9.00 


* * 


5257 lowpow. 


7.95 


7.50 


7.05 


6.75 6.45 


SPECIAL CIRCUITS 






Z80A 4 MHz. 


24.95 


AY5-1013AUART 4.95 


8080A CPU 


9.95 


Floppy Disc Controllers 


8085 


22.50 




WD 1771 


single D. 39. 95 


8086 Intel 16 bits 


* 




WD 1781 


Double D 65. 00 


T MS 9900 16 bits 


49.95 




WD 1791 D/D3740 * 



E PROMS 1-15 16-63 64+ 
1702A 2K 4.95 4.50 • 4.00 
2708 8K 9.95 9.50 9.00 
2716 5vl6K 49.95 45.00 42.50 
2532 32K * * * 



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 all the recorded information is transmitted back to the master computer. 
With a little imagination and one of these portable entry systems, you should be able 
to exchange programs and computer information with associates across the country. 
All units were removed from service in working condition. Original cost $2,500. 
Each system comes complete with: 

■Portable Cassette Drive Unit "Five Gould "D" NiCads OB25 Cable 

■Removable Entry Keyboard -Acoustical Coupler -Shoulder starp 

with LED Display -Battery Cbarger ■Full Documentation 



5-98 $ i88 .81.73.66 | 
SPOT Miniature Toggles 

7101 C&K 0N-N0NE-0N 
7107 jbt ON-OFF(mnt.ON) 
7103 CK ON -(moment. 0N> 

Rocker IBT DPDT r 

Rotary 3P-4-Pos. 

Rotary 3P-6-Pos. 

Push B (HO.) $.39ea 4/S1 



DIP Switch 



25 100 IB 
JPF733 .97 .83 

specify 4 

Spos.l 




SPST 



DISCOUNT ' t 




Tim w 



Wire Wrap Center 



It's not of fen that California Digital ven- 
tures into the distribution of consumer pro- 
ducts, but we have resently come accross 
a product that appears so unique that we just had to add it 
Dur product line. This is the System X-10 manufactured 
by the BSR turntable company. This space age system will re- 
motely control any light or appliance in your home or office. Command sig- 
nals are transmitted from the command console over your existing wiring. 
From your bed or easy chair you can control up to 16 different electrical de- 
vices inside and outside your home. Use the System X-10 to control your 
stereo, television or any light fixture on the premises. 

The basic sampler package comes complete with command console, battery 
operated ultrasonic controller, one each of the appliance module, lamp 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 
•a. 25 50 


8 




17<16 15 




14 


37<36 35 


18 17 16 


16 


38 37 36 


19 18 17 


24 


99 93 85 


36 35 34 


40 


169 155 139 


63 60 58 



23.95 r« 

BW630 \ ? ^ 



sort. 
5 .98 



KYNARSrap 

500 1,000 11,000 
59. $15. $105. 



VISA 



f masifti charge] 



(213)679-9001 



Circle 39 on inquiry card. 



What's New? 



PUBLICATIONS 





MINIATURE 
JOYSTICKS 

- FOflCC OPERATED 

• INFINITE RESOLUTION 

• HIGH REUASILITY 



esT*" 



lEMEST SYStBSS, WC 



Miniature Joystick Catalog 

Measurement Systems Inc announces 
publication of their new 16 page catalog, 
Miniature Joysticks. These joysticks are 
used for cursor positioning of many 
displays including interactive terminals, 
computer aided drafting, and radar sys- 
tems. They are also used for mechanism 
positioning such as microcircuit pro- 
duction equipment and vehicle control. 
These joysticks are offered for control of 
one, two, or three axes. They are offered 
in commercial, industrial and military 
grades. For further information contact 
Measurement Systems Inc, 121 Water 
St, NorwalkCT 06854. 

Circle 642 on inquiry card. 



EPROM Bulletin Shows Erase Times 

An in-depth technical bulletin show- 
ing erase times and energy characteristics 
for various popular erasable read only 
memories is available at no charge 
from Adco Electronics, 2182 DuPont, 
Suite 222, Irvine CA 92715. It contains 
two charts which make it easier for the 
user to be sure of proper erasure of 
ultraviolet (UV) erasable programmable 
read only memories. The brochure, 
Ultraviolet Erasing of EPROMS (# 
A78286), has been prepared by the 
engineering staff of Spectronics Corp 
to take the guess work out of making 
sure that various programmable read 
only memories are empty of data. By 
quickly determining the specific energy 
level needed and required exposure 
time, the user can select the correct UV 
source. 

Circle 643 on inquiry card. 




B WIST EC 1 
J 
mi/ in: [ 



■ ■ 



Wintek Corp Offers New Catalog 

This catalog contains a 6800 based 
single board computer plus 15 support 
and interface modules on industry stan- 
dard 4 1 /2 by 6Vi inch cards for process 
control and data acquisition. Addition- 
ally, 6800 development systems, resident 
and cross assemblers, and compilers are 
listed. For further information contact 
Wintek Corp, 902 N 9th St, Lafayette 
IN 47904. 

Circle 644 on inquiry card. 



The Complete Motorola Microcomputer 
Data Library 

The Complete Motorola Microcom- 
puter Data Library presents technical 
data for microcomputer design and 
implementation. It is divided into three 
basic segments, each further subdivided 
into subordinate product categories. The 
three segments are: 

• microcomputer components- 
microprocessor and microcom- 
puter unit components, together 
with interface and peripheral 
components to implement micro- 
computer systems, 

• memory products— basic memory 
components and add-in and add- 
on memory subsystems for com- 
puter applications, 

• microcomputer development sys- 
tems and subsystems— support 
products (hardware and software) 
to design microcomputer systems; 
board-level subsystems for system 
implementation. 




The organization within each of these 
basic segments is by device families and 
application groupings rather than in al- 
phanumeric sequence. Therefore, a com- 
prehensive table of contents provides 
the reader with a sequential listing of 
the chapter by chapter content of each 
segment. 

The book is priced at $6. For further 
information write to Motorola Semi- 
conductor Products Inc, POB 29024, 
Phoenix AZ 85036. 

Circle 645 on inquiry card, 




Buyers Guide Offered Free of Charge 

This buyers guide of microcomputer 
software, accessories, and supplies is 
available from Wallace Electronics Inc, 
4921 N Sheridan Rd, Peoria IL 61614. 
Software and accessories for the Apple 
II and TRS-80, as well as a wide range of 
computer supplies, are listed on these 
sheets. The guide is updated weekly. The 
buyers guide is free of charge, although 
.50 should be included to cover postage 
and handling. 

Circle 646 on inquiry card. 



KS£^ 




Personal Information Management 
System 

Personal Information Management 
System describes a data base manage- 
ment program designed for personal use 
on such small computer systems as the 
Radio Shack TRS-80 Level II, or other 
systems using a Microsoft compatible 
BASIC language. Along with complete 
source listings of the program and com- 
prehensive operating instructions, this 88 
page book discusses the microcomputer 
and its potential for personal use. Addi- 
tionally, 15 comprehensive applications 
of the program are illustrated in detail. 
The publication is designed for the 
computer novice although the program 
may be beneficially used by anyone. 
The book is priced at $9.95. For further 
information contact Scelbi Publications, 
POB 133 PP STN, Milford CT 06460. 

Circle 647 on inquiry card. 



242 July 1979 © BYTE Publications Inc 




tnSLtt Venus 2001 Video Board 

I^LM^*^ — ^ Assembled and Tested $259.95 • Complete Unit with 4K 
^^^%^^Fl ° f Memor y and v ' deo Driver on Eprom assembled 

W IlmM and tested $339.95 

rv **icit $ 199 95 m 




OPTIONAL: • Sockets $10.00 • 2K Memory $30.00 • 4K 
Memory $60.00 • Video Driver Eprom $20.00 • Text 
Editor Eprom (Includes Video Driver $75.00) 

S-l 00 Plug-In m Parallel Keyboard Port 

On board 4K Screen Memory (Optional). On board 
Eprom (Optional) for Video Driver or Text Editor 
Software. 

Up and Down Scrolling through 
Video Memory 

Reverse Video, Blinking Characters. 

Display: 128 ASCII Characters 64 X 32 or 32 X 
16 Screen format (Jumper Selectable). 7 by 11 Dot 
Matrix Characters. 




American or European TV Compati- 
ble (CRT Controls Programable) 

Dealer Inquires Invited 



15 MHZ DUAL TRACE 

Portable 
Scope 




«#:ife# 




BIG PRICE 
BREAKTHRU^ 

MODEL MS-215 

• Battery or A.C. Operated • External and Internal Trigger 

• Time Base— .1 m Sec./Div. Into 21 Calibrated Ranges • 
3% Accuracy. Input Impedence 1 M Ohms • Complete 
with Input Cables, Battery and Charger. 
OPTIONAL: • Leather Case $45.00 • 10:1 Probe $27.00 
(2 for $49.00) 

MS- J 5 Single Trace Scope $299. 



32-K Static RAM $499. 



• S-100 Plug-In • Kit includes P.C. board, all parts 
and assembly manual • Uses 2114L, 450 nS. 

I.C. sockets -$20.00 
P.C. BOARD BY S-100 CO. 



16-K Static RAM § 



• S-100 Plug-In Kit includes P.C. board, all parts and 
assembly manual. Uses2114L450nS. 

Sockets -$10.00 
Add $40.00 for 300 nS (4MHz) RAMS 
P.C. BOARD BY WAMECO 



z-8o 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 $77. 




Assembled and Tested $93.00 
• Single +5V Supply • Full ASCII Set (Upper and Lower 
Case) • Parallel Output • Positive and Negetave Strobe • 
2 Key Rollover • 3 User Definable Keys • P.C. Board 
Size: 17-3/16" X 5" • Control Characters Molded on Key 
Caps • Optional Provision For Serial Output 
OPTIONAL: Metal Enclosure $27.50 • Edge Con. $2.00 • 
Sockets $4.00 • Upper Case Lock Switch $2.50 • Shift 
Register (For Serial Output) $2.00 

Dealer Inquiries Invited 

Apple II I/O Board Kit 

Plugs into Slot of Mother Board 
•1 8 Bit Parallel Output Port (Expands to 3 Ports) • 1 Input 
Port • 15mA Output Current Sink or Source • Can be 
used for peripheral equipment such as printers, floppy 
discs, cassettes, paper tapes, etc. • 1 free software listing 
for SWTP PR40 or IBM selectric. 
PRICE: 1 Input and 1 Output Port $49.00 
1 Input and 3 Output Ports $64.00 
Dealer Inquiries Invited 



SHIPPING $3.50 / California residents add 6% sales tax 

ELECTRONICS WAREHOUSE Inc. 

15820 Hawthorne Boulevard 

Lawndale, CA 90260 

(213) 370-5551 




Circle 130 on inquiry card: 



What's New? 



PUBLICATIONS 



Visible Computer Supply Offers Free 
General Catalog 




Visible Computer Supply Corp, sup- 
plier of data processing supplies and 
accessories, is offering their 1 1 6 page 
1979 illustrated catalog featuring more 
than 2800 products. Their product line 
covers binders and accessories for 
printout storage, systems and program- 
ming aids, a complete line of magnetic 
media and related handling and storage 
systems, minicomputer accessories, video 
terminal stands, keypunch furniture and 
accessories, word processing supplies, 
microform retention and retrieval sys- 
tems, and pressure sensitive labels. For 
further information contact Visible 
Computer Supply Corp, 3626 Stern Dr, 
St Charles IL 60174. 

Circle 648 on inquiry card. 



Apple Software Directory 

Over 700 software programs for the 
Apple computer have been compiled in- 
to the Apple Software Directory. All pro- 
grams are listed alphabetically so that 
the same type of program produced by 
several sources can be compared. 
Listings include description, memory re- 
quirements, price, format and the 
source. All sources are listed with ad- 
dresses. 

The directory, is printed in two 
volumes. Volume 1 covers business and 
utility programs. Volume 2 covers games 
and entertainment programs. Each is 
priced at $4.95. For more information, 
write WIDL Video, 5325 N Lincoln, 
Chicago IL 60625. 

Circle 649 on inquiry card. 



Publication Lists 32 BASIC Programs 
for the PET 

32 BASIC Programs for the PET Com- 
puter by Tom Rugg and Phil Feldman is 
precisely that.. .32 fully documented pro- 
grams that are ready to run on an 8 K 
byte Commodore PET 2001 computer. 
The reader does have the option of mak- 
ing changes to these programs. This 267 
page book covers application, educa- 
tional, game, graphic display, mathe- 
matical and miscellaneous programs. 
The book is priced at $15.95. For further 
information, contact Dilithium Press, 
POB 92, Forest Grove OR 97116. 

Circle 650 on inquiry card. 






mm 



Software Magazine Devoted to Radio Shack TRS-80 

Owners of Level II Radio Shack computers will appreciate SoftSide, a magazine 
devoted to providing games and light application software in Level II BASIC. Owners of 
other personal computers using Microsoft BASIC will also 
find programs that can be readily converted for their 
systems. 

The particular emphasis of the magazine is simulation 
games. Readers of recent issues have been able to play 
football, race a clipper ship around Cape Horn, rule a fif- 
teenth century Italian city-state or chase wild animals on a 
photographic safari. Light application programs are also 
published, and have included an income tax program and a 
personal finance program complete with graphic pictures 
of checks on the screen. Hints for TRS-80 programmers 
regularly appear in various places throughout the 
magazine. 

Softside is published monthly and is available by sub- 
scription for an annual rate of $15. A special cassette edi- 
tion which includes the magazine and all the monthly pro- 
grams in machine readable form is available for $38 for a 
six month subscription. For further information contact 

SoftSide, Publications, POB 68, Milford NH 03055. Circle 651 on inquiry card. 




New Book Features Self-Contained 
Programming Problems 




Circle 652 on inquiry card. 



Etudes for Programmers by Charles 
Wetherell is a collection of large scale 
problems for learning by doing. Each 
problem includes a real world back- 
ground discussion of appropriate pro- 
gramming techniques, detailed re- 
quirements for correct solution, exten- 
sions, and annotated bibliography. Two 
of the problems are completely solved 
by the author. The solutions concentrate 
on good prdgramming techniques, mea- 
suring the quality of the program and the 
output, and possible extensions of the 
problem. They are models of what solu- 
tions to any programming job should be, 
and they contain many practical hints 
about writing good programs. 

Additionally, this 200 page book of- 
fers references to sources for program- 
ming information and further reading 
about problem subjects. It includes a 
complete set of four projects for a pro- 
gramming language course: macro-inter- 
preter, compiler, relocating loader and 
computer simulator. 

Etudes for Programmers is priced at 
$12.95. For further information, contact 
Prentice-Hall Inc, Englewood Cliffs NJ 
07632. 



244 July 1979 © BYTE Publications Inc 



The 



I 



TO ORDER CALL TOLL FREE 800-223-7318 



MM 



MM 



USED 



PET 

.«» $795 iUl 

„ • 14K ROM Operating system 

• 8K RAM Memory 

• 9"' Video Monitor 

• Built tn Keyboard 

• Digitally controlled tape 
I Today s best value in personal computers, along with the latest 

^ in peripherals, are always in stock at the COMPUTER FACTORY 

NEW! PET S ?S ESS 



The PET is now a truly sophisticated 
Business System with the Floppy 

[ Disk and Printer which makes an 
ideal cost efficient business 

| system for most professional and 
specialized fields: medicine 
law. research, engineering. 

' education, etc. 



PET 2001 - 

16K$995 

32K$1295/ 



» *.6or 32K Bytes. 
| Dynamic RAM • 14K ROM 

Operating System' 
I • Upper Lower Case and 

Graphics 
[• Full Sized Business Keyboard 

Full Screen Editing 
I • Operating system will support 

multiple Languages jBASlC 

resident) 

• Machine Language Monitor 
> 8K ROM Expansion Sockets 

• 9" CRT 




PET 3 
PRINTERS 
2023 $849 

2022 $995 

(Includes 

Tractors) 



Bottom and Rear Tractor Feed 

8V' Paper Width 

6504 Microprocessor Controlled | 
j • 4K ROM • ' ? K RAM 
| • Upper/Lower Case and Graphics 
• 7 x 6 Dot Matrix 




DUAL DRIVE FLOPPY 
DISK 2040 $1295 

• 360 K Bytes Storage 

• High Speed Data Transfer 

• Plugs into IEEE Port 

• 6504 Microprocessor 

• 8K ROM Operating System 

• 8K ROM Encoding and 
Decoding 

• 4KRAM 

• Uses Single or Dual sided 
Diskettes 

ISINGLE DRIVE 
| FLOPPY UNIT 
2041 $895 

i Intelligent mini floppy 
' 171 5K net user storage 



295^^-^-^g] 

AMD MU^ qur 
* tRVT VivENTORY 




$1495 Complete! 
16K Model add $200 
32K Model add $500 

Compucolorll 

COMPUCOLOR II Disk-Based Model 3 
Advanced hardware and software techn 



• 13" Color Display 

• Advanced Color Graphics 

• 51 K Disk Built-in 

• 16K ROM Operating System 

• BK RAM User Memory 

• 4K RAM Refresh 

• 8080A Microcomputer 
" ?S-232 I/O 

sry unit comes with an extended DISK- 
BASIC that has full file management capa- 
bility resident in the COMPUCOLOR II in 
16K of ROM. Color is fantastic, but COM- 
PUCOLOR II has the power to handle com- 
plex tasks and small business applications. 
An impressive software library supplements 
your own creativity. 



BUSINESS 
COMPUTER 

IMSAI 

The low cost solution 

for all small business 

problems A wide variety 

of software is 

available for all your needs 

PCS series include dual floppies. 32K RAM. 

I O, DOS, BASIC 

• PCS-42 (400KB) $3295 

• PCS-44 (780KB) $3995 

VDP-42 series adds video terminal, key- 
board and VIO to above 

• VDP-42 $4995 • VDP-44 $5595 

• VDP.80 $7995 



NEWltron, 

Eventide 
AUDIO 
SPECTRUM 
ANALYZER 

• Mounts inside the PET 

• Third-Octave 
audio spective analysis 

• Complete with software 
and documentation 

1 Replaces equipment costing 
thousands of dollars 




MARK SENSE CARD 
READER $750 

-T*, "■ • Automatic turn-on and card feed J 
lji]g$ijr • Ideal for marking test scores 
H* • Accepts any length card 

• Per ect for schools & business 



15*wiS&' 




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 • I 
FULL SCREEN EDITING • MOVE LINES OR | 
BLOCKS • SAVE TEXT ON TAPE • AUTO PRINT 
FEATURE.. ..$45 



Apple's This fantastic program disk allows the statistician, 

Moving mathematician, trader in stocks, money or 

Average commodities, the ability to maintain 30 database 
Plot series of up to 300 values and plot 3 different moving 

Program averages of a series at the same time, in 3 different 

colors. Files can be updated, deleted, changed, 

extended, etc. 

A sure value disk at only $401 

Word Processing For Apple on disk... $50 



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 

Rrograms including Star | 
fars theme, sound 
effects, etc. S39. 




. SORCERER 

SPECIAL 

12" Video Monitor 
for SORCERER 
($299 value) 

ONLY 

$125 with 8K unit 
95 with 16Kunit 
65 with 32K unit 



RADIO SHACK • PET • SORCERER • 
APPLE • COMPUCOLOR • ETC. 



PRINTERS • PRINTERS • PRINTERS 



The COMPUTER FACTORY'S extensive CENTRONICS. $1095 

inventory and wide selection of computer AXIOM (Parallel) 445 

printers assures you of finding the printer AXIOM (Serial) 520 

best suited for your needs and TRENDCOM 375 

specifications The following printers work INTEGRAL DATA 795 

well with all known personal computers QUME or DIABLO 3400 



ANDERSON JAC0BS0N 




Ml 1/0 Terminal 



JACOBSON 



Ideal for word processing and small bi 

5' 

Parallel 



ne«H. 

• ASCII Coda uQW 

• IScpj Printout r* 

• High Quality Selective Printing 

• Use Keyboard for PET 

• Reliable heavy duty Mechanism 

• Completely Refurbished by A.J, 

• Service in IS Major Cities 



foCKIJ 



INST 

Para 

$1095 

Serial 

$1195 




Min Credit Card 
Order $75 



v&r 



N.Y. residents add 8% sales tax • Same day 6 ol 
shipment on prepaid and credit card orders ^&*' 
• Add $5 shipping for computers, S3 for 
boards. $25 each cassette tape 



Open 
Mon.-Fri. 
10-6 
10-4 



FREE 



TO ORDER CALL TOLL FREE 800-223-7318 



NEW 
CENTRONICS 730 

50 CPS - MICROPROCESSOR 

CONTROLLED! 

Tractor & Friction Feed • Uses 
Single Sheets, Roll, Fanfold* Upper 
& Lower Case • Light Weight 

Parailel $995 

Serial $i045^^fifr ^ 






TL/% /"^rMMIDI ITCD CAf^TfXBSf 485 Lexington Avenue 750 Third Avenue New York, N.Y. 10017 
I lie Ov/IVI"U I Cn rMv I \Jr\ I (212) 687-5001 (212) PET-2001 Foreign order desk - Telex 640055 



BYTE July 1979 



What's New? 



PERIPHERALS 



Answer and Originate Acoustic Coupler Real T ' me Calendar and Clock for Apple II Computer 




The AC-312 answer/originate acoustic 
coupler operates at 300 bps. The device 
is 103 Western Electric compatible and is 
switch selectable between originate and 
answer modes. When in the answer 
mode, this unit will generate the answer 
tone necessary to communicate with 300 
bps originate only couplers and modems. 
The AC-312 includes a single plugable 
printed circuit board for ease of field 
upgrading to 1200 bps operation and 
field service. Standard light emitting 
diode diagnostic indicators are also 
featured. The AC-312 answer/originate 
modem is priced at $295. For further in- 
formation, contact Digicom Data Pro- 
ducts Inc, 1440 Koll Circle, Suite 108, 
San Jose CA 95112. 

Circle 653 on inquiry card. 




Mountain Hardware has announced 
the Real Time Calendar and Clock for 
Apple II computers. The Apple Clock 
keeps time and data in 1 ms increments 
continuously for over one year. Calen- 
dar, clock, and event timer functions are 
easily accessed from BASIC using rou- 
tines contained in on board read only 
memory. Some of the features of the Ap- 
ple Clock include crystal control, on 
board rechargeable battery to keep the 
clock running during computer down 
times; software for calendar and clock 
routines as well as an event timer con- 
tained in on board read only memory; 
and an interrupt feature which can be 



programmed to make efficient use of 
computer time. Sample applications in- 
clude programming a morning printout 
of appointments; date of transactions; 
creating games in which elapsed time is 
important; and time events. The Apple 
Clock can be added to Mountain Hard- 
ware's Introl Remote Control System for 
real time control and monitoring of 
remote devices over regular AC wiring. 

The price of the Apple Clock is $199 
assembled and tested. For further infor- 
mation, contact Mountain Hardware 
Inc, 300 Harvey W Blvd, Santa Cruz CA 
95060. 

Circle 654 on inquiry card. 




Interface TRS-80 to 
Summagraphics' Bit Pad 

Summagraphics Corp has announced 
the availability of an interface for the 
company's digitizer, the Bit Pad, which 
allows connection to the Radio Shack 
TRS-80 microcomputer. This new inter- 
face permits the entry and transfer of X,Y 
coordinate values for graphics and data 
entry applications from the Bit Pad to 
the TRS-80 computer. 



The interface is priced at $175, and a 
cassette containing software is provided. 
Data is transferred from the Bit Pad in 
groups of five bytes. The interface is con- 
tained in a small separate box that con- 
nects to the Bit Pad and the TRS-80. The 
interface allows use of all other TRS-80 
accessories. For further information, 
contact Summagraphics Corp, 35 Brent- 
wood Ave, Fairfield CT 06430. 

Circle 655 on inquiry card. 



^ : "V 




Compact Low Cost Alphanumeric 
Printers 

The DigiTec 6410 and 6420 small 
desktop printers print 20 columns of 
alphanumeric characters. Sixty-four dif- 
ferent characters are produced in a 5 by 
7 dot matrix. The printer can easily 
replace teletypewriter terminals in ap- 
plications that don't need 80 column 
capability. An internal microprocessor 
makes these new printers reliable and 
easy to interface. The Model 6410 pro- 
vides a serial interface to RS-232C and 20 
mA current loop systems at 110 bps. The 
Model 6420 works with 8 bit parallel bus 
systems at up to 1000 characters per se- 
cond. They both use the ASCII input for- 
mat. The single unit price is $395. For fur- 
ther information and special OEM infor- 
mation, contact United Systems Corp, 
918 Woodley Rd, Dayton OH 45403. 

Circle 656 on inquiry card. 



246 July 1 979 © BYTE Publications Inc 



Electrotabs N e w 

POB 6721, Stanford, Ca 94305 CATALOGUE 




TLX 



— 415-321-5601 
« 800-22 7-8266 
345567 



FLOPPY SYSTEMS 



Crystals 

Integrated circuits 

Keyboards 

Lasers 

LSI-11 

Media 

RAMs 

S-100 Components 

Z-80 Components 



.43 




8" Siemens FDD120-8 Drive 

| AM Siemen's options included 
in this drive which can be con- 
figured hard or soft and single 
or double density. (Others give 
only stripped unit) §399.00 



"Power One" Model CP206 
Floppy Power Unit For two 
drives going full-out, and poss- 
ably more on less severe service. 
2.BA@24V, 2.5A@5V, 0.5A<9*=5V. 
Beautiful quality. $99.00 



DISKETTES (Standard) 



<^ 




8" 
5fc" 



Boxed 
Boxed 



S39.0O 

$34.95 




Tarbell ("It Works") Interface 

(Includes cable set for 2 drives) 
$265.00 BUT ONLY $219.00 

with purchase of two drives. 

Cable Kits 10' with 50 cond. 
cable and connectors and also 
Molex connectors and power 
cable: For one, drive: $27.50 
For two drives: $33.95, and 
for three drives: $38.95 



CABINETS for FDD120 and 
801 R Drives, or CP206 power 
supply. Matte finish in mar 
resistant black epoxy paint. 
^Stacking type design. $29.99 




ELECTRO LABS is proud to announce appointment as 
DISTRIBUTOR by Cll-Honeywell Bull. 

PRICE BREAKTHROUGH on SUPERDISK 10 MBY! $3495.00 
General purpose controller (requires 2 parallel 1/0 ports) 1 500.00 

S-100 Controller (DMA) 995.00 

"RL-01/RK-05" surrogate 1900.00 

(transparent to RT, RS r RX) 

S FT W A R E : (CP/M Compatible) 

SUPERD0S1 

(Z-80) $695.00 

MIC ROD OS 1 

(TRS-80)... $199.00 
Power supply (switching) 

$395.00 

Enclosure (desktop) 

$ 99 00 

Removeable Media Cartridge Drive 







\ -m. 



^Kiliife 






Used Sylvania 12" Video Moni- 
tors. Composite video 15mhz, 
115vac, 50/60hz New Tube. As 
shown $109 OEM style without 
case; $99, Anti-glare tube option 
add $12, Specify p4 or p39 

ESAT 200B 



BI-LINGUAL 80x24 
COMMUNICATING 
TERMINAL 
Scrolling, full cursor, bell, 
8x8 metrix, 110-19,200 
baud. Dual Font Appli- 
cations. Arabic & Hebrew, 
Multilingual Data Entry, 



5 1 /i" 
MINI-FLOPPY 
DRIVE 
$299.00 



- single or double dens- 
ity - quick access time 

- high reliability & 
durability 



Mini-floppy CABLE KIT: 
for TRS-80 or your 
Tarbell controller. 
$24.95 



Daisy Wheel Printers 
Qume Sprint: 3\45 




Print wheels $8.95 Ribbons $5.95 



OEM Style mechanism $1399.00 




Forms Drawing, Music Instruction, Specialized Graphics (e.g. Games, Chemical Plants, 
Switchyards) $349.00 We carry keyboards, cases, power supplies, etc., enough to make 
an entire system. 



Circle 115 on inquiry card. 



BYTE July 1979 247 



What's New? 



MEMORY 



Associative Computer Memory 
Available from Semionics 
Associates 

Content addressable or associative 
computer memory is available from 
Semionics Associates, 41 Tunnel Rd, 
Berkeley CA 94705. Called REM (recogni- 
tion memory), it differs from conven- 
tional memory by eliminating serial sear- 
ching. An item may be accessed simply 
by being named. REM can be written in- 
to and read from like ordinary memory, 
but has parallel processing functions, in- 
cluding six types of recognize and 
multiwrite. The recognition operations 
replace serial searching, while multiwrite 
allows the processor to write into multi- 



ple locations with a single instruction. In- 
dividual bit masking may be applied to 
all of the operations, including ordinary 
(location accessed) read and write. A 
data processing system with these func- 
tions is known as a CAPP (content ad- 
dressable parallel processor). Ideal for 
pattern recognition and information 
retrieval applications, it is also capable 
of performing parallel arithmetic opera- 
tions. 

Semionics 7 first product is an add-in 
recognition memory for microcomputers 
having the S-100 bus. Called REM S-100, 
the board converts the microcomputer 
to a CAPP by adding new instructions to 
the instruction set of the processor. The 
board is organized to make these addi- 



tional instructions possible without any 
alteration to the processor. 

Recognition memory is organized in 8 
bit words and 256 word REM records. It 
is a static memory with an access time of 
200 ns for a single memory location, and 
recognize or multiwrite time, for all REM 
records of 4 /is. This time does not in- 
crease with size of memory. In a system 
with multiple REM boards, all of these 
are accessed in parallel during a recog- 
nize or multiwrite operation. 

The REM S-100 add-in recognition 
memory board has a capacity of 4 K 
bytes and is priced at $345. 



Circle 657 on inquiry card. 



NEW OLD 

"BUYERS-SELLERS-TRADERS-READERS" 

COMPUTER PRODUCTS R£A MARKET 

• Want to BUY, SELL or TRADE COMPUTER 
ITEMS? Hardware, Software, Anyware?? 

• Want to READ WHERE to GET ITEMS?? 

• Don't want to WAIT 3, 4 or 5 MONTHS for your 
AD to APPEAR?? 

• Want WORLD WIDE* CONTACT POTENTIAL 
with INTERESTED PATRONS?? 

• Want REASONABLE RATES?? 

+ We PUBLISH and SEND the ADs VIA 1st 

CLASS MAIL WITHIN 3wks of RECEIPT. 
+ We PROVIDE WORLD. WIDE* CONTACT. 

• ADs "RUN ONE TIME FOR ONLY $6.75 or 
BLOCKS of 3 TIMES EA FOR $18.00. 

"(Ad lentftro of 180 character* "DieiBCtaa' indude punc- 
tuation and spaces. For longer ADs. over 160 characters, add 10* 

• RECEIVE AD PUBLICATIONS ONLY-RATE: 

$7.50/3 issues. $14.40/18 issues (sent 1st dass to US 6 CA) 
(outside US 6 CA rate: add $1.50 to 9 issue RATI and $3.00 to 
18 issue RATE is sent VTA AIR MAIL - send U.S. fundsj 



'(Per AD response) 

SEND CHECK OR MONEY ORDER TO: 

"KING FLEA" 

P.O. Box 2256 
Pocatello, ID. 83201 



MORE INNOVATIONS! 

FROM 

P.S. SOFTWARE HOUSE 

FORMERLY PETSHACK 

PET INTERFACES 

MF.wr 

PET I o CENTRONICS INTERFACE S9800 

PET to PARALLEL INTERFACE *.lh 5V 8A power supply 574 95 

PET lo 2nd CASSETTE INTERFACE SJ995 

PET SCHEMATICS 

FOB ONLY 12 4 9 5 YOU GET 

24 X io scftemahc ol ir>e CPU ooard plus ove***»<J schematics of me V«J«> 

Monitor and Tapo Recorder plus complete Paris layout • an accurately and 



PET ROM ROUTINES 

FQR ONLY fcl 9 9 5 YOU GET 

:::'y ii-Jinqj ol all f ROMS P<ui identified subroutine entry 
points VrrJeoMomKy Koypoardroulme Tap* Recoil and Playback foulme Heal 
Trme Clock. etc To eni«ce you *eat ealso induftng exu own Machine language 
Monitot program foryour PETusmgihe WyOoard and video display 
Youcan f iaveil>e Monitor programon cassette lor only 59 9 5 eilra 



SOFTWARE 



650? DISASSEMBLER 






i i ? 9") 


MAILING LIS! fci. lienoni iiivr. 






»9 9b 


MACHINE LANGUAGE MONlTOH W 


.,1-M,., 1i..„.Cn.I,. 




• S9 9S 


BUDGET NEW Kntl IMI 1 lit B«l«.i 






HJ 9b 


STARIRU All l.inrt.l,«».H'wli1lH(i 


In. tru.PM SM)-,, 


•i liMi.n.1 > 


il 9b 



Send torourtKM SOFTWARE BROCHURE OsaHw incu.nai walcome 

P.S. SOFTWARE HOUSE 

P.O. Box 966 Mishawaka. IN 46544 

€Q Tel: (219) 255-3406 2£ 




6800 DEVELOPMENT PAC I 

•CONTROL MODULE-single board 
computer 

• 16K RAM MODULE-16K 8-bit bytes 
•RS232 INTERFACE-switchable rates 

• CASSETTE INTERFACE-300/2400 
baud 

•FANTOM-II monitor/debug ROM 
•EDITOR/ASSEMBLER-on cassette 
•CARD RACK, BACK PLANE, POWER 

SUPPLY 
•$895 



WINTHK 



Corp. 



Phone: 317-742-6802 

902 N. 9th St., Lafayette, IN 47904 



Circle 201 on inquiry card. 



Circle 295 on inquiry card. 



Circle 389 on inquiry card. 




NEW 32K EPROMjRAM MEMORY CARD 



SS-50 
BUS 

5V 

on| y wkm 

0S0 PIR-32K $27.00 

2716 EPR0MS & TMS 4016 2K * 8 Static RAM. 
4 Independent BK memory blocks. Size 9" * 5J4". 

0S0 2114-16K $27.00 

16K Static RAM memory card using the 2114 or TMS 4045 

IK * 4 Static RAMS. Size 9" * 5fc". 

2 Independent BK memory blocks. 5V only. 

NEW 0S0 U P 8255 IC & Ml $1 4.00 

Universal parallel interface card for Both the SWTP 30 pin IfO 
BUS (M) & the 0S0 27 pin BUS (0. Utilizes INTEL'S 8255 
PROGRAMMABLE I/O chip. Wire wrap area for full UTILIZATION 
of the 8255. Card size 5fc" * 5" (M). 5fc" * W 10. 
ALL cards are bare board with edge connectors & Data. 

% DIGITAL SERVICE & DESIGN 
P.O. BOX 741 M/C& 

NEWARK, 0MI0 43055 VISA 

Ohio residents add 4.5% sales tax. 



«ft 



&** 



Gen? 






$s5 

95 



paV 






,WB« 



**£&*££.&&*« 



S*gfWSj 



&*■£} oea* et 



588? 

lot 



H*"" 






C3\\ 



C3' 



t& 



b*- 




64K RAM BOARD 

The Zg-SYSTEMS 64K RAM board is designed to op- 
erate in any Z80 based microcomputer having S-100 
bus. It uses 16K dynamic RAM chips, & features: 

— Board select 

— Bank select 

— Transparent on-board refresh 

— 2 or 4MHz operation (w/ no wait state) 

— Memory disable 
Compatible with Cromemco system 

Fully assembled, burned in, & tested 

Available from stock to 60 days 
As low as $500.00 in quantities of 100 

Price of one $649.00 

PCboardonly $59.00 

With 16K RAM $359.00 

Plus shipping charges 

Z s SYSTEMS 

PO Box 1847, San Diego, CA 92112 
(714) 447-3997 



Circle 101 on inquiry card. 



Circle 284 on inquiry card. 



Circle 401 on inquiry card. 



SOLID STATE SALES 




tdnrwtMtcta a ffiieaM/iMmgA in 'gam/tute*, 9'ecA^ic4c^ 



A PICTURE MAY BE TAKEN BY OUR CAMERA, 

STORED IN A COMPUTER IN REAL TIME AND THEN 

DISPLAYED ON A CRT AT AN AFFORDABLE PRICE 



VIDEO COMPUTER 




THIS REMARKABLE VP-1 COMPUTER/ 
INTERFACE KIT HAS THE FOLLOWING: 

FEATURES 

• IT PRODUCES COMPOSITE VIDEO 
OUTPUT IN A 128 x 128 MATRIX 
FROM A DIRECT MONITOR CONNEC- 
TION USING 8K OF MEMORY 

• THE SYSTEM USES A STANDARD 
S 100 BUSS 

• WILL NOT TIE UP COMPUTER 
SOFTWARE WHEN NOT ADDRESSED 

• IT DISPLAYS CONTINUOUSLY 
WHEN NOT ADDRESSED 

• IT MAY PRODUCE PSEUDO COLOR 
AND/OR GRAPHICS (UP TO 16 GREY 
LEVELS, 4 BIT BINARY) 



GRAY LEVELS 

THE CAMERA WILL TAKE BETWEEN 
15 AND 100 FRAMES/SECOND. 
THE CAMERA CONNECTS TO THE 
PROCESSOR WITH SEVEN LINES. THIS 
INCLUDES VIDEO ANDTIMING SIGNALS 
APPLICATIONS 

• CONTINUOUS SURVEILLANCE 

• INSPECTION OF MOVING PARTS 
WITH PROPER STROBING 

• VISUAL GRAPHIC INPUT TO A 
COMPUTER 

• CHARACTER OR PATTERN 
RECOGNITION 

• PICTURES MAY BE TAKEN DIRECTLY 
FROM A TV WITHOUT ELECTRICAL 
CONNECTIONS 

• THE INTERFACE KIT MAY BE USED 
SEPARATELY AS A 128 x 128 

16 LEVEL GRAPHIC DISPLAY 



PROCESSING 
SYSTEM 

OUR VP1 VIDEO SYSTEM CONSISTS 
OF THE FOLLOWING KITS: 

• CCD 202C SOLID STATE VIDEO CAMERA 
KIT ASSEMBLED & TESTED . . . . $499 00 

J VP-1 COMPUTER/VIDEO INTERFACE 
SYSTEM (3 BOARDS) ASSEMBLED & 

tested $ggg°° 

• ASSEMBLED 8K MEMORY BOARD 
(OPTIONAL) $235 00 



THIS VIDEO COMPUTER KIT 
CAN WORK WITH THE GE, 
REDICON, OR ANY OTHER 
128 x 128 SENSOR CAMERA 



REGULATED 
POWER SUPPLIES 

POWER SYSTEMS # PS1111 

115-230V 50/60 cv. in 5v OC at 35 A out. 

6"x 16%"x 15Vi" 26 lbs. shipping weight S55.00 

POWER SYSTEMS H PS1 106 
1 1 5-230V 50/60 cy. in 1 2v DC at 15 A out. 
5"x 16%"x 5" 19 lbs. shipping weight. $49.00 

(OV PROTECT) 



C/MOS (DIODE CLAMPED) 



4001 


70 


4019 


■1002 


20 


4020 


4»07 - 


IB 


4021 


4009 - 


37 


4022 


4010 - 


17 


4023 


4011 - 


70 


4024 


4012 - 


7C1 


4025 


4014 - 


75 


4027 


4015 


75 


4028 


4016 - 


.3 7 


4029 


4017 


1 05 


4030 


4018 - 


.90 


4035 



37 4049 

90 405CJ 

90 4051 

90 40 « 

,g 4055 

7 5 4066 



37 "° 71 

8° 4076 - 

-95 4518 

33 vsm 

.97 74C0Q 

.65 74C02 

65 74C10 



40 74C73 .65 

40 74C74 45 

100 74CS6- .40 

1 10 74C93 .75 

125 74C151 1.40 

J° 74C160 1.05 

20 74C161 1-05 

' 74C174 1.05 

g 7 74C175 1.05 

.95 74C901 ,48 

"1 74C902 .48 

22 74C914 1.70 



ISUCHAHAC.GtN UP 6 1'j 52S0.7H 

75?3STATIC SHif IHEfi 135 S3W1K 

?;08 8<£l>ftOUt«»,«) 12.3S 87S23 

TMS-1050NL 2flS 82SI2S 

rMS3409«C808ITSOYN S3 i ] s 87SU9 



PRINTED CIRCUIT BOARD 



7 WATT LD-65 LASER DIODE IR $095 



2N 3820 P FET s 45 

2N b457 N FET S 4b 

2N2646 UJT s 45 

ER 000 TRIGGER DIGUES 4 SI 00 

2N G023 PMOG UJT S tab 

MINIATURE MULTI-TURN TRIM POTS 
100, IK, 2K, 5K, 10K. 20K, 50K, 

200K, IMcg, 2Mc.-g, $.75 ench 3/S2.00 

CHARGED COUPLE DEVICES 

CCD201C 100x100 Image Sensor S95.00 

CCD 202C 100x100 Imaaa Sonsor S145.00 

VERIPAX PC BOARD S16.95 

Our new PrototypinS is a hi density 4>i" x 6V 
single sided 1/16" epoxy board. It will hold 40, 
24, 16 (34 units), 14+8 pin IC's. There are 
Three busses. f-5V, ground and a floating buss. 
There is a pad for a TO-220 regulator. There is a 
22 Pin edge connocior with .156" spacing. 

FP '100 PHOTO TRANS .5 .50 

RED, YELLOW, GREEN 

LARGE LED's. 2" 6/S1.00 

TIL-118 0PTO-ISOLATOR $ .75 

MCT-6 OPTO ISOLATOR S .80 

1 WATT ZENERS: 3.3, 4.7, 5.1, 5.6, 9.1, 

10, 12, 15. 18, or 22V 6/S1.00 

,. MCM 6571A 7x9 character gen . . $ 10.75 , 

UNIVERSAL 4Kx8 MEMORY BOARD KIT 

S69.95 

3221 02-1 fully buffered, 16 address lines, on 

board decoding for any 4 of 64 pages, standard 

44 pin buss, may be used with F-8 & KIM 



TRANSISTOR SPECIALS 

2N6233-NPN SWITCHING POWER S 1.95 
MRF-8004 a CB RF Transistor NPN S 75 

2N3772 NPN Si TO 3 S 1.00 

2N1546 PNP GE TO-3 S .75 

?N4'J0B PNP S>. 1 O 3 Si 00 

2N5086 PNP S. TO 92 4 $ 1 00 

2N3137 NPN Si RF $ ,55 

2N3919 NPN Si T# 3 Rf Si 50 

2N1420NPNSJTO5 3/S 1.00 

2N3 7G7 NPN S, TO GG S 70 

2N2222 NPN S. TO 18 5 S 1 00 

2N3055 NPN Si TO 3 S .50 

2N3904 NPN S. TO 9? 6/S 1.00 

2N3906 PNP Si TO 92 6/S 1 .00 

7N5296 NPN Si TO 220 S 50 

2NG103 PNP S> TO 220 . S 5b 

2N3538 PNP Si TO 5 5 S 1 00 

MPSA 1 3 NPN Si 4/S 1 .00 

TTL IC SERIES '"' « El *' 



Full Wave Bridges |i 



1.20 



.75 



i.Ofi 



IP SOCKETS 
B pin .17 24 pin . 

14 PIN .20 2b PIN 
16 PIN .22 40 PIN . 
18 PIN .25 



5ANKEN AUDIO POWER AMPS 

Si 1010 G If) WATTS S 7.80 

Si 1020 G 20 WATTS . . $15.70 

S< 1050 G 50 WATTS $28.50 



TANTULUM CAPACITORS 



,22UF 35V 5/S1.00 
.47UF 35V5/S1.00 
,68UF 35V5/S1.00 
1UF 35V 5/S1.00 
2.2UF 20V 5/S1.00 
3.3UF 20V 4/S 1.00 
4.7UF 15V 5/S1.00 



6.8UF 35V4/S1.00 

10UF 10V S .25 

22UF 25V S .40 

15UF 35V 3/S1.00 

30UF 6V 5/S1.00 

33UF 20V $ .40 

47UF 20V S.35 

68UF 15V S .50 



5.000 MHi 
6 000 M Hi 
8.000 MHi 



RfBBON CABLE 

LAT (COLOR CODED) 
#30 WIRE 



CTS 206-8 eight position dip switch $1.60 

CTS 206*4 four position dip switch $1.45 

LIGHT ACTIVATED SCR's to 18. 200 V 1A. .$.70 



SILICON SOLAR CELLS 
TA" dmmeter ,4V at 500 ma $4.00 

" diameter ,4V at 1 AMP S 10.00 



FND 359 C.C. .4" S .60 LED READOUTS 
FCS8024 4 digit DL-704 C.A. .3" $ .75 

C.C. 8" display ' S5 95 DL 747 C.A .6" $1.50 
FND 503 CC .5" S ,85 HP3400 .8"CC $1.95 
FND 510 C.A. .5" S .85 HP3405 ,8"CA S1.95 
DL 704 .3" C C. S 35 



Terms: FOB Cambridge, Mass. 
Send Check or Money Order. 
Include Postage, Minimum 
Order $5.00, COD'S $20.00 



Silicon Power Rectifiers 



PRV 1A 3 A 12A 5QA 125 A 34OA 

100 06 .14 .35 .90 3 m 5"p 

200 7 20 .40 1 .30 4 25 5.50 

400 09 25 65 1.50 50 9.50 

600 11 30 .80 2.00 3 CO 12.50 

800 15 3 5 1.00 2.50 10 50 16.50 

1000 20 45 1,25 3.00 12.50 20.00 
SAD 1024 a REDICON 1 024 stagu analog "Bucket 

B'igade" shift register. S14.95 

IN 4148 UN914) 15/S1.00 - 

.1 uf 25V ceramic caps 16/$1 .00. S5.0Q/100 

RS232 DB 25P male $2 95 

CONNECTORS DB 25S female. ..$3.50 

HOODS 51.50 

REGULATORS 

323K - 5V 3A . . $ 5.75 340K - 1 2, 1 5 

309K $1.10 or 24 V. . . .$ 1.10 

723 $.50 340T-5,6,8, 12 

320T- 15, 18or 24VS 1.10 

5, 12, or 15 V 78 MG $ 1.35 

. . ■$ 1.10 79 K 



DATA CASSETTES 1/2 HR $.95 

14 pin headers 3/S1.00 

MM5387AA 35 95 

M7001 $7.50 

MM53G0 S3. 75 

NO. 30 WIRE WRAP WIRE SINGLE 
STRAND 100' $1.40 

A l CO MINIATURE U)G G L E SW I T C H E S 
MTA 106 SPOT S .95 

MTA 206 DPDT S 1 .70 

MTA 206 PDPDT CENTER OFF £ -1 S 5 

MSD 206 PDPDT CENTER OFF 

LEVER SWITCH S 1.85 



SOLID STATE SALES 

P.O. BOX 74 B 

SOMERVILLE, MASS. 02143 TEL. (617) 547-7053 



WE SHIP OVER 95% 

OF OUR ORDERS THE 

DAY WE RECEIVE THEM 




PRV 


1 A 


10A 


25A 


1.5A 


6A 35A 


100 


40 


.70 


l 30 


.40 


50 1 20 


200 


70 


1 .10 


1 75 


60 


70 1.60 


400 


1,10 


1 GO 


2 60 


1.00 


1.20 2.20 


600 


1 .70 


2.30 


3.50 


1.50 300 



Circle 340 on inquiry card. 



BYTE July 1979 249 



What's New? 



SOFTWARE 



Disk Operating and File Management System for 6800 Microcomputers 




&mm; 



/ 



.'■"-• ' • ' '"' 



: :"ff~W^' l { H ' : W^" 



This disk operating and file manage- 
ment system, called INDEX (Interrupt 
Driven Executive), executes faster than 
most systems because the console and 
other I/O (input/output) devices are 
serviced by interrupt requests instead 
of by polling. INDEX supports unlimited 
disk commands. A user can expand 
INDEX by adding utility commands 
and driver routines. These reside on 
disk and are loaded into memory only 
when needed. With INDEX, files can be 



assigned an activity value as a parameter 
of the file name, and the user may 
thereby list or display only the file 
directory entries at or above the activity 
level specified in the DIR (directory 
listing) command. 

INDEX handles both ASCII and 
binary files, and disk files are automat- 
ically created, allocated and de-allocated. 
Files are referenced by names, and file 
name parameters are addended for name 
extension, drive number, directory level 
and a file protection flag. 

The INDEX operating system soft- 
ware also features a routine for copying 
files onto a disk. The console interface 
segment of INDEX software supports 
any standard serial ASCII terminal. It 
features program interrupt for runaway 
programs; operator start, stop and 
skip display control; interrupt-serviced, 
typed-ahead character queue buffer; 
and a secondary line editing queue 
buffer. 

INDEX versions are available for the 
PerCom LFD-400, Southwest Technical 
Products' MF-68, Smoke Signal Broad- 
casting Company's BFD-68 disk systems, 
and Motorola's EXORciser development 
system. 



INDEX is supplied on two 5 inch 
disks together with a users manual for 
$99.95. For further information contact 
PerCom Data Co, 318 Barnes, Garland 

TX 75042. Circle 658 on inquiry card. 



New Self-Merchandising Software 
From ComputerLand 

ComputerLand is now making per- 
sonal computing software available 
through all participating ComputerLand 
stores. SoftSpot is a custom designed, 
self-merchandising fixture offering off- 
the-shelf programs for personal finance, 
time budgeting, education, games, stock 
analysis, stock portfolio evaluation, and 
more. SoftSpot programs start at $7.95. 

Customer education about personal 
computers and their applications are of- 
fered through MainBrain. Books, self- 
study cassettes and video tapes, and "in 
person" lecture programs are available 
from well known publishers. MainBrain 
has self-service instructions to assist 
customers in making their own choice of 
multimedia educational products. 

For further information contact Com- 
puterLand, 14400 Catalina St, San Lean- 
dro CA 94577. Circle 525 on inquiry card. 




PET SPECIALS ust s 

PET 16N 16K full size graphics keyboard $ 995 $ 

PET 168 16K full size business keyboard $ 995 $ 

PET 32N 32K full size graphics keyboard $1295 $ 

PET 328 32K full size business keyboard $1295 $ 

PET 16S 16K small keyboard, integral cassette $ 995 $ 
PET 32S 32K small keyboard, integral cassette $1295 $ 
PET 8K 8K small keyboard, integral cassette $ 795 $ 

PET 2040 Dual Disk Drive - 343,000 bytes $1295 $ 

PET 2040A Single Disk Drive - 171,000 bytes $ 895 $ 

PET 2022 Tractor Feed Printer $ 995 $ 

PET 2023 Pressure Feed Printer $ 849 $ 

PET C2N External Cassette Deck $ 95 $ 

ASK ABOUT EDUCATIONAL DISCOUNTS ON PET 



IEEE - RS232 Printer Adaptor for PET 
BETSI PET to S-100 Interface & Motherboard 
PET Connectors - Memory (8K) 

- Parallel or IEEE 

- Cassette Port 

Personal Information Management System— 

Scelbi 
Protect-A-Pet dust cover 
EXS 100 Floppy Disk Controller for PET 
PET 6550 RAM 

Write for PET Software List 
MICR0CHESS for PET (Peter Jennings) 
PET 4 Voice Music Board (MTUK-1002-2) 
Music Software (K-1002-3C) for PET 
CmC Word Processor program for PET 
Bridge Challenger program for PET 

Play and reply bridge hands against the PET 
Graphics Utility Package for PET 
Stimulating Simulations 

10 PET programs on tape 
Kite Fight - Michael Riley 

2 player action game 



$ 59.50 
$119.00 
$ 2.95 
$ 2.25 
$ 1.60 

$ 8.90 
$ 9.95 
$299.00 
$ 16.20 




17.90 
49.00 
19.00 
25.00 
13.50 

13.50 
13.50 




Minimum Order $10.00 



KIM-1 $159 (Add S30 for Power Supply) SYM-1 $229 


BAS-1 Microsoft ROM Basic for SYM 


$139 


Memory Plus 


(FOR $199 


SEA-16 New 16K Static RAM 


Ob $325 


Seawell Motherboard-4K RAM space 


*») $ 99 


KTM-2 Synertek Keyboard and Video 




Interface with Graphics Capability 


$290 


North Star 16K 4MHz RAM Kit 


$245 


RAM 16 4MHz 16K Static S-100 RAM 


$309 


2114 L 450 ns 4K Static RAM 


$ 6.95 


2716 EPROM (5 volt) 


$45.00 


BOOKS 




Programming the 6502 (Zaks) 


$ 9.90 


6502 Applications Book (Zaks) 


$11.90 


6500 Programming Manual (MOS) 


$ 6.50 


6500 Hardware Manual (MOS) 


$ 6.50 


First Book of KIM 


$ 8.90 


Programming a Microcomputer:6502 (Foster) $ 8.90 


Basic for Home Computers 


$ 5.90 


Programming in PASCAL (Grogono) 


$ 9.90 


Hands-On Basic with a PET (Peckham) 


$10.50 


3M "Scotch" B" disks 


10/S31.00 


3M "Scotch" 5" diskettes SALE 


10/S35.00 


Verbatim 5" diskettes 


10/S28.50 


(Write for quantity prices) 





Cassettes (all tapes guaranteed) 

Premium quality, high output lownoise in 5 screw 
housing with labels: 

C-10 10/5.95 50/25.00 100/48.00 
C-30 10/7.00 50/30.00 100/57.00 



$ 7.95 



WRITE FOR 6502 AND S-100 PRODUCT LIST 

A B Computers 



115 E. Stump Road 
Montgomery ville, PA 18936 
(215)699-8386 



250 July 1 979 © BYTE Publications Inc 



Circle 1 on inquiry card. 




RCA Cosmac Super Elf Computer 5106.95 



Compare features before you decide to buy any 
other computer. There is no other computer on 
the market today that has all the desirable bene- 
fits of the Super Elf for so little money. The Super 
Elf is a small single board computer that does 
many big things. It is an excellent computer for 
training and for learning programming with its 
machine language and yet it is easily expanded 
with additional memory Tiny Basic. ASCII 
Keyboards, video character generation etc. 
The Super Elf includes a ROM monitor'for pro- 
gram loading, editing and execution with SINGLE 
STEP for program debugging which is not in- 
cluded in others at the same price. With SINGLE 
STEPyou can see the microprocessor chip opera- 
ting with the unique Quest address and data dus 
displays before, during and after executing in- 
structions. Also, CPU mode and instructioncycle 
are decoded and displayed on eight LED indicator 
lamps. 

An RCA 1861 video graphics chip allows you to 
connect to your own TV with an inexpensive video 
modulator to do graphics and games. There is a 
speaker system included for writing your own 
music or using many music programs already 
written. The speaker amplifier may also be used 
to drive relays for control purposes. 
A 24 key HEX keyboard includes 16 HEX keys 
plus load, reset, run, wait, input, memory pro- 

Super Expansion Board with 

This is truly an astounding value! This board has 
been designed to allow you to decide how you 
want it op.tioned. The Super Expansion Board 
comes with 4K of low power RAM fully address- 
able anywhere in 64K with built-in memory pro- 
tect and a cassette interface. Provisions have 
been made for all other options on the same 
board and it fits neatly into the hardwood cabinet 
alongside the Super Elf. The board includes slots 
for up to 6K of EPROM (2708, 2758, 2716 or Tl 
2716) and is fully socketed. EPROM can be used 
fortbe monitor and Tiny Basic or other purposes. 
A IK Super ROM Monitor S19.95 is available as 
an on board option in 2708 EPROM wjiich has 
been preprogrammed with a program loader/ 
editor and error checking multi file cassette 
read/write software, (refocatible cassette file) 
another exclusive from Quest. It includes register 
save and readout, block move capability and 
video graphics driver with blinking cursor. Break 
points can be used with the register save feature 
to isolate program bugs quickly, then follow with 
single step. The Super Monitor is written with 
subroutines allowing users to take advantage of 
monitor functions simply by calling them up. 



tect, monitor select and single step, Large, on 
board displays provide output and optional high 
and low address. There is a 44 pin standard 
connector for PC cards and a 50 pin connector for 
the Quest Super Expansion Board Power supply 
and sockets for all IC's are included in the price 
plus a detailed 127 pg. instruction manual which 
now includes over 40 pgs. of software info, in- 
cluding a series of lessons to help get you started 
and a music program and graphics target game. 

Remember, other computers only offer Super Elf 
features at additional cost or not at all. Compare 
before you buy. Super Elf Kit S106 95, High 
address option S8.95, Low address option 
S9.95. Custom Cabinet with drilled and labelled 
plexiglass front panel S24.95. NiCad Battery 
Memory Saver Kit S6.95. All kits and options 
also come completely assembled and tested 

Questdata. a 12 page monthly software publica- 
tion for 1802 computer users isavailable by sub- 
scription for S12.00 per year. 



Attention Elf Owners 

New products in hardware and software 
coming soon. 



Tiny Basic cassette S10.00. on ROM S38.00, 
original Elf kit board 514.95. 

Cassette Interface $89.95 

Improvements and revisions are easily done with 
the monitor. If you have the Super Expansion 
Board and Super Monitor the monitor is up and 
running at the push of a button. 
Other on board options include Parallel Input 
and Output Ports with full handshake. They 
allow easy connection of an ASCII keyboard to the 
input port. RS 232 and 20 ma Current Loop for 
teletype or other device are on board and if you 
need more memory there are two S-100 slots for 
static RAM or video boards. A Godbout 8K RAM 
board is available for S1 35.00. Also a 1K Super 
Monitor version 2 with video driver for full capa- 
bility display with Tiny Basic and a video interface 
board. Parallel UO Ports S9.85, RS 232 S4.50, 
TTY 20 ma l/F SI. 95, S-100 S4.50. A 50 pin 
connector set with rib'bon cable is available at 
S12.50 for easy connection between the Super 
Elf and the Super Expansion Board. 
The Power Supply Kit for the Super Expansion 
Board is a 5 amp supply with multiple positive 
and negative voltages S29.95. Add S4.00 for 
shipping. Prepunched frame S5.00. Case 
$10.00. Add S1.50 for shipping. 



Auto Clock Kit $15.95 

DC clock with 4-. 50" displays. Uses National 
MA-1012 module with alarm option. Includes 
light dimmer, crystal timebase PC boards. Fully 
regulated, comp. instrucs. Add S3. 95 for beau- 
tiful dark gray case. Best value anywhere. 



RCA Cosmac VIP Kit $229.00 

Video computer with games and graphics. 
Fully assem. and test. S249.00 



Not a Cheap Clock Kit $14.95 

Includes everything except case. 2-PC boards. 
6-.50" LED Displays. 5314 clock chip, trans- 
former, all components and full instructions. 
Orange displays also avail. Same kit w/.80" 
displays. Red only. S21.95 Case S11.75 



60 Hz Crystal Time Base Kit $4.40 

Converts digital clocks from AC line frequency 
to crystaltime base. Outstanding accuracy. Kit 
includes: PC board. IC, crystal, resistors, ca- 
pacitors and trimmer. 



Digital Temperature Meter Kit 

Indoor and outdoor. Switches back and forth. 
Beautiful. 50" LED readouts. Nothing like it 
available. Needs no additional parts for com- 
plete, full operation. Will measure -100 to 
+ 200 F, tenths of a degree, air or liquid. 
Very accurate. S39.95 

Beautiful woodgrain case w/bezel S1 1 .75 



NiCad Battery Fixer/Charger Kit 

Opens shorted cells that won't hold a charge 
and then charges them up. all in one kit w full 
parts and instructions. S7.25 



PROM Eraser Will erase 25 PROMs in 
15 minutes. Ultraviolet, assembled S34.5.0 



Rockwell AIM 65 Computer 

6502 based single board with full ASCII keyboard 
and 20 column thermal printer. 20 char, al- 
phanumericdisplay, ROM monitor, fully expand- 
able. S375.00. 4K version S450.00. 4K Assem- 
bler S85.00. 8K Basic Interpreter SlOO.00. 
Power supply assembled incase S60.00. 



7J00TTL 

7400N 

7402N 

7J04N 

7409N 

7JIUN 

7420M 
7422H 
7430N 
7442N 
7445N 
7447N 
744BN 
745DN 
7474N 
7475N 
7485N 
7489N 
7490N 
7492N 
7493N 
7495N 
74100N 
74107N 
74121N 
74123N 
74125N 
74145N 
7415CN 
7-M51N 
74154N 
74157N 
74 161 N 
74I62N 
74163N 
74174N 
74175N 
74190N 
74192N 
74193N 
7422 IN 
74298N 
M365N 
•1366N 



Box 4430X Santa Clara, CA 95054 
^For will call only: (408) 988-1640 

^2322 Walsh Ave. ^ 



LM379M 

LM380N 

LM3BI 

LM382 

LM703H 

LM709H 

LM723H-N 

LM733N 

LM741CH 

LM741N 

LM747HN 

LM748M 

LM1303N 

LM1304 

LMI305 

LM1307 

LM1310 

LM14S8 

IM1B0O 

IM1812 

LM1889 

LM2 1 1 1 

IM2902 

LM3900N 

LM39Q5 

LM39I3N 

MC1458V 

NE550N 

NE55SV 

NE556A 

ME565A 

NE566V 

NE567V 

HE570B 

NE571B 

78L0S 

78L08 

79L05 

78M05 

75108 

7549ICN 

75492CN 

75494CN 



f ELECTRONICS 



7.1367N 


.95 


A lo CONVERTER 

603SB 4 


74LSD0TTL 




B7Q0U 12 


74LS00N 


25 


8701CM 15 


74LS02N 


25 


B75QCJ i: 


74LS0.SN 


25 


L0I3O 9 


74LS05N 


25 


9400CJV.F 7 


74LS0BN 


25 


ICL7103 £ 


741S10N 


25 


1CL7107 14 


74LS13N 


40 


8702 t7 


74LS14N 


90 




74LS20N 


.25 


CMOS 


74LS22N 


25 


CD34001 Fair 


74LS28N 


41 


CD4000 


74LS30N 


25 


CD4001 


74LS33N 


39 


CD4002 


74LS38N 


30 


CO.1006 1 


74LS74N 


1 15 


CD4007 


74LS75N 


47 


CO4008 


74LS90N 


51 


CO4009 


74LS93N 


51 


C04010 


74LS95N 


1 89 


C04011 


741SI07N 


35 


CO4012 


74LSU2N 


35 


CD4013 


J4LS413N 


35 


CD4014 


74LS132N 


72 


CO4015 


74LS138N 


.35 


CO4016 


7JLSiriN 


67 


C0401? 


74LS155H 


67 


C04018 


7JLS157N 


67 


CD4019 


74LSI62N 


91 


CD1020 1 


74151 BIN 


91 


CD4021 1 


741817414 


,95 


CD4022 


74LSl!inN 


IOC 


CD4023 


7JLS22IN 


1 95 


CD4024 


74LS258N 


67 


C04025 


74LS367N 


135 


C 04026 1 



LINEAR 

CA3045 
CA3046 
CA3081 
CA3082 
CA30B9 . 
LM301ANAH 
LM305H 
LM307N 
LM308N 
LM309H 
LM309H 
I LM311H,N 
LM317TiK 
LM3I8 
LM320K-5 
LM323K-S 
LM320K-12 
LM320K-15 
LM320T-5 
LM3201-B 
LM3201-IZ 
LM320MS 
LM324N 
LM339N 
LM340K-5 
LM340K-B 
LM340K-12 
LM340K-15 
LM340K-24 
LM340T-5 
LM340T-8 
LM340T-12 
LM340M5 
LM340T-18 
LM340T-24 
LM343H 
LM35D 
LM370 
LM377 



CD4027 
CD4028 
CD4029 
CD4030 
CD4035 
CD4040 
C04042 
CD4043 
CD4044 
CD4046 
CD4Q49 
CD4050 
C04051 
C04060 
C04066 
CO4068 
CD4069 
CO4070 
CO4071 
C04072 
C04073 
CO4075 
CD4076 
CD4078 
CD4081 
CD4082 
CD4116 
C04490 
CD45D7 
CD4508 
C04510 
C04511 
CD4515 
C04516 
CD451B 
CD4520 
C04527 
CD452B 
C04553 
CD4566 
C04583 



C04585 


1.10 






CD40192 


3,00 






74C00 
7.4C04 
74C10 
74C14 
74C20 
74C30 


28 
33 

.28 
2 10 

.28 
28 


COFMB02D 

CDP1861 

6820 

6850 

6502 


25 00 
12 95 
9.95 
12.95 
12 50 


MC48 


1.95 


IC SOCKETS 






Solder Tin Low Prollle 


74C90 




PIN 1UP PtN 


1UP 


74C93 


1.40 






74C154 
74C1E0 
74Ci75 
74C192 


3 00 
1 44 
1 35 
1.65 


16 .16 28 
18 27 36 
20 29 40 


42 
58 
57 


74C22I 


200 


3 Itvel wire *raj> odIO 


74C905 
74C9M 


3 00 
.75 


2 l«vrt w on mm 


M 


74C914 
74C922 


1 95 
5.50 


WIRE WRAP LEVEL 3 


74C923 


5.50 


14 25 24 

16 fc 33 28 
18 "57 40 


.86 
100 
1 23 


74C925 

74C926 
74C927 


6.95 
6.95 
6.S5 


INTERFACE 




UART/FIFO 




8095 


35 


AY5-I013 


5 50 


8096 


.95 


AY5-1014 




8097 


95 


3341 


6.95 


8098 


.95 






8709 


1.25 


PROM 




8T10 


4,50 


1702A 


3 95 


8T13 


3.00 


N82S23 


2 95 


8T20 


5 50 


N8.2S 1 23 


3 50 


8T23 


3 10 


N82S126 


3 75 


8T24 


3.50 


M82S129 


3 75 


8725 


3.20 


N82SI3I 


3 75 


8T26 


1.69 


N825136 


8 75 


BT28 


2.75 


N82SI37 


8.75 


8T07 


1.69 


2708 


10 50 


8T98 


1.69 


OMB577 


2.90 










MOS MEMORY RAM 


2716T1 


29 50 




3 95 


2716 mid 


4800 


2102-1 


.95 






2102AL-4 


1.60 


CRYSTALS 




2IL02- 1 


1 18 


1 MHz 


4.50 


21F02 


1 25 


2MHZ 


4 50 


2104A-4 


4 95 






21076 


4 95 


5 MHz 


4.25 




3 75 






2112-2 


3 95 


I8MHZ 


3 90 


2114L-3 




20 MHz 


3 90 


4116 


10 95 


32 MHz 


390 


25138 


630 


32768 MHz 


4.00 






1 8432 MHz 


4 50 


MM5280 


300 


3 5795 MHz 


'.20 


MM 320 


9 95 


2 0100 MHz 


1.95 


MMS330 




2 097152MHz 


4.50 


P04HD-3 


4 00 


2 4576 MHz 


4 50 






3 2768 MHz 


4.50 




13 95 


5.0688 MHz 


4.50 




9 95 


5.185 MHz 


4.50 


82S25 


2 90 


5 7143 MHz; 


4.50 




1 50 


6 5536 MHz 




HD0I65-5 


6 95 


14.31818 MHz 


4.25 




450 


18 432 MHz 


4.50 


G1AV38500-1 


9 95 






MCM657IA 


995 






9368 
4I0D 
416 


3 50 


CONNECTORS 






44 pin edge 


2 75 




100 pin edge 


4 50 


CLOCKS 




100 pin Edge WW 4.75 


MM5309 


3 00 






MM5311 


3 60 


KEYBOARD ENCODERS 


MM5312 


4.80 


AYS-2376 


$12 SO 


MM5313 


3 60 


AV5-3600 . 


13.50 


MM 314 


3 90 


74(322 


550 


MM5315 


4.00 


74C923 


5.50 


MM5316 


5 00 


H00165-5 


6.95 


MM531B 


360 






MM5369 


2.10 


IC Test Clips 




MM5841 


14.45 




10 


MM5B65 


7.95 


Red 55 


47 


CT7001 


5.80 


Black .55 


47 


CT7002 


10.95 






CT7010 


895 


Keyer 8043 


14.50 






comp wspec 


/SOC* 


MM5375AAN 


3.90 






MM5375AB'N 

7205 

7207 

7208 

7209 

OS0026CN 

OS0056CN 

MM53104 


4.90 
16.50 
7.50 
15.95 
495 
3 75 
3 75 
2.50 


TRANSISTORS 

2N1893 

2N2222A 

2N2369 

2N2904A 

2N2907A 

2N3053 


40 
.18 

30 
20 
25 
.40 



CLOCK MOOULES Complete a armclocks 
ready to hook up will) transformer and 
switches. Very compact Willi .50" and 
84" dig*. 

MA1002A C or E .50- B.95 

102P3 Transformer 2.25 

MA1010A, C or E .84" 11.95 

102P2 Transformer 2.25 

Special transformer and sli 
switches when purchased 

2.95 



15.95 



MA1003 car module .3 
greeo lluor display 

RESISTORS \, watt 5% 
lOoertype 03 irjOQperfyjw 012 
25 per type 025 350piece pack 
fOOpertype 015 5»er type 6 75 
KEYBOARDS 

56 key ASCII keyboard kit $87.50 
Fully assembled 77.50 

53 key ASCII keyboard kii 60.00 

Fully assembled 70 00 Enclosure 14.95 

LEOS 

RedTOIB 15 

Green. Yellow T018 20 

Jumbo Red .20 

Green. Orange. Yeltow Jumbo .25 
CUplite LED Mounting Clips 8* 1.25 
(specify red. amber, green, yellow, dear) 
CONTINENTAL SPECIALTIES In Stock 
Comoletelineot breadboardlesi equip 
MAX-100 8 digit Frcq. Or. $128.95 
OK WIRE WRAP TOOLS in slock 
Portable Multimeter SJ8.00 

DIGITAL THERMOMETER S4B.50 

Batt oper General purposed medical 
32 -230 F. Oisposable probe cover 
r .2 accuracy. Comp Assy. In 
compact case Switches l'om F to C . 
COMPUTER BOARD KITS 
8K RAM Board Kit S1 35.00 

4K EPROM Kit 114 95 

UO Board Kit 44.50 

Extender Board w connector 12.50 

16H EPROM board kit wo PROMS 74 50 
North Slar Floppy Disk Kit $665.00 
Additional Owe Kit 415.00 

SPECIAL PROOUCTS 
M M58 65 Stopwatch Timer 9.00 
PC board 7.50 

Switches Mom Pushbutton 27 

3 Dos. slide 25 

Encoder HD0165-5 6.95 

3 Digil Universal 
Counier Board Kit 
Operates 5-18 VoJ OC to 5 MHz 
typ. 125 LEO display 
Voles actuated switch 
Paralronlcs 10DA Logic 
AnalyJer Kit ; 

Model 10 Trigger 

Expander Kit 
Model 150 Bus 

Grabber Kit 
Sinclair 3v% Digit 

Multimeter iba.ab 

Clock Calendar Kit $23.95 

TRANSFORMERS 
6V300ma 3.25 

12 Volt 300 ma transformer 1.25 
126VCT600ma 3.75 

12V 250 ma wall plug 
12V CT 2S0 ma wall Plug 
24V CT 400 ma 
10V1.2 amp wail P<u0 
T2V6amp 
DISPLAY LEDS 

MAN1 CA .270 2.90 

MAN3 CC .125 39 

r.'Arj?? 7J CACA .300 100 
OL704 CC .300 1.25 

['-: 70.' DL707R CA .300 1 00 
28 CA'CC .500 1.90 
DL747 750 CA7CC 6 1.95 
CC 600 1.95 
CC .357 70 
CC.'CA 500 1.35 
CC/CA .500 .90 
CC/CA .800 2.20 



10.50 
50 



S229.O0 
$369.00 



350 
3 95 
4.85 
12 95 



MICROPROCESSOR 



Z8DA 
8212 
8214 
8216 
8224 
8228 



2N3643 
2N3904 
2N3906 
2N305S 
2N4400 
2N4401 
2 N 4402 



DL750 
FND359 
FND5M 507 



3 digit Bubble 

4 digit bubble 
DGB Fluorescent 
DS10 ^..ortscent 

5 digit U pm display 
NSK69 9 dign display 
7520 Clairex photocells 
TIL311 Hex 
COMPUTER GRADE CAPS 

1600 mfd 200V 
2000 mfd 45V 



80 



1 10 8253 

1.02 8255 

1.02 8257 

1 51 8259 

.79 1802CP pias 

3 50 1B02OP pias 

2.25 1861P 

4.50 COP1802CO 



1950 
19 50 
13 95 



D Connectors RS232 
25 Pin Submimalures 
OB25P 2.95 

OB25S 3.95 

Cover 1 50 

RS232CompleteSet6.50 
0E9P 1 50 

0E9S 1 95 

OA15P 2.10 

0A15S 310 



10000 
12000 

35000 

ssooo 

82000 



Multi-volt Computer Power Supply 

8v 5 amp. rl8v .5 amp. 5v 1.5 amp. -5v 
.5 amp, 12v .5 amp, -12 option. r5v, t 12v 
are regulated. Kit S29.95. Kit with punched frame 
S34.95. Woodgrain case $10.00. 



Video Modulator Kit $8.95 

Convert your TV set into a high quality monitor 
without affecting normal usage. Complete kit 
with full instructions. 



2.5 MHz Frequency Counter Kit 

Complete kit less case S37.50 

30 MHz Frequency Counter Kit 

Complete kit less case S47.75 

Prescaler kit to 350 MHz S19.95 



79 IC UpdateMaster Manual $3500 

Complete IC data selector, 2500 pg. master ref- 
erence guide. Over 50,000 cross references. Free 
update service through 1979. Domestic postage 
S3.50. Foreign S5.00. 1978 IC Master closeout 
$19.50. 



Stopwatch Kit $26.95 

Full six digit battery operated. 2-5 volts. 
3.2768 MHz crystal accuracy. Times to 59 
miri., 59 sec. 99 1/10.0 sec. Times std.. split 
and Taylor. 7205 chip, all components minus 
case. Full instructions. 



Hickok 3 1 /2 Digit LCD Multimeter 

Batt/AC oper. 0.1mv-1000v. 5 ranges. 0.5% 
accur. Resistance 6 low power ranges 0.1 
ohm-20M ohm. DC curr. .01 to 100ma. Hand 
held, W LED displays, auto zero, polarity, over- 
range. 374.95. 



S-100 Computer Boards 

8K Static RAM Kit Godbout S135.00 

16K Static RAM Kit 265.00 

24K Static RAM Kit 423.00 

32K Dynamic RAM Kit 310.00 

64K Dynamic RAM Kit 470.00 

8K/16K Eprom Kit (less PROMS} S89.00 

Video Interface Kit S139.00 
Motherboard S39. Extender Board S8.99 



TERMS: $5.00 min. order U.S. Funds. Calif residents add 6% tax. 
BankAmericard and Master Charge accepted. 
Shipping charges will be added on charge cards. 



FREE: Send for your copy of our NEW 1979 
QUEST CATALOG. Include 28c stamp. 



Circle 311 on inquiry card. 



BYTE July 1979 



251 



r^W 



7400 TTL 



SN7400N 
SN740IN 
SN7402N 
SN7403N 
SN7404N 
SN740SN 
SN7406N 
SN7407N 
SN7406N 
SN7409N 
SN7410N 
SN7411N 
SN7412N 
SN7413N 
SN7414N 
SN7416N 
SN7417N 
SN7420N 
SN7421N 
SN7422N 
SN7423N 
SN7425N 
SN7426N 
SN7427N 
SN7429N 
SN7430N 
SN7432N 
SN7437N 
SN7438N 
SN7439N 
SN7440N 
SN7441N 
SN7442N 
SN7443N 
SN7444N 
SN7445N 
SN7446N 
SN7447N 
SN7448N 
SN7450N 
SN7451N 
SN74S3N 
SN7454N 
SN7459A 
SN7460N 



.25 
25 
.25 
.20 



CD4000 
CD4001 
CD4002 
C04006 
CD4007 
CD4009 
CD4010 
CD4011 
CD4012 
CD4013 
CD4014 
C04015 
CD4016 
CD4017 
CO4018 
CD4019 
CD4020 
C04021 
CD4022 
C04023 
CD4024 
CD4025 
CD4026 
CO'4027 



.23 
.23 
23 
1.19 
.25 



1.39 
LIS. 



74CO0 
74C02 
74C04 
74C0B 
74C10 
74C14 
74C20 
74C30 
74C42 
74C4B 
74C73 
74C74 



78MG 

LM106H 

LM300H 

LM301CN/H 

IM302H 

LM304H 

LM305M 

LM307CN/H 

LM306CN/H 

LM309H 

LM309K 

LM310CN 

LM3MN/H 

LM312H 

LM317K 

LM318CN/H 

LM319N 

LM320K-5 

LM320K-5.2 

LM320K-12 

IM320K-15 

LM320K-18 

LM320K-24 

LM320T-5 

LM320T-5.2 

LM320T-8 

LM320T-12 

LM320T-15 

LM320M8 

IM320T-24 

LM323K-5 

LM324N 

LM339N 

LM340K-5 

LM340K-6 

LM340K-8 

LM340K-12 

LM340K-15 



1.15 
.90 
1.95 
6.50 
1.50 



74LS00 
74LS01 
74LS02 
74LS03 
74L504 
74LS05 
74LS08 
74LS09 
74LS10 
74LS11 
74LS13 
74LS14 
74LS15 
74LS20 
74LS21 
74LS22 
74LS28 
74LS27 
74LS28 
74LS30 
74LS32 
74LS37 
74LS40 
L74LS42 



.75 

.59 
1.25 



SN7470N 
SN7472N 
SN7473N 
SN7474N 
SN7475N 
SN7476N 
SN7479N 
SN7480N 
SN7482N 
SN7483N 
SN74BSN 
SN7486N 
SN7489N 
SN7490N 
SN7491N 
SN7492N 
SN7493N 
SN7494N 
SN7495N 
SN7496N 
SN7497N 
SN74100N 
SN74107N 
SN74109N 
SN74116N 
SN74121N 
SN74122N 
SN74123N 
SN74125N 
SN74126N 
SN74132N 
SN74136N 
SN74141N 
SN74142N 
SN74143N 
SN74144N 
SN74145N 
SN74147N 
SN7414BN 
SN74150N 
SN74151N 
SN74152N 
SN74153N 
SN74154N 
SN74155N 
SN74156N 
SN74157N 



2.95 
2.95 
2.95 



C/MOS 



CO4028 
CD4029 
CD4030 
CD4035 
CD4040 
CD4041 
CD4042 
CD4043 
CD4044 
CD4046 
CD4047 
CD4048 
CO4049 
CD4050 
CD4051 
CD4053 
CD4056 
C 4059 
CD406O 
CD4066 
C0406B 
CD4069 



1.79 
2.50 



2.95 
9.95 
1.49 
.79 



74C00 



74C65 
74C90 
74C93 
74C95 
74C107 
74C151 
74TJ154 
74C157 
74C160 
74C161 



1.95 
1.25 
2.90 
3.00 
2.15 
2.49 
2 49 



LINEAR 



LM340K-18 

LM340K-24 1.35 

LM340T-5 

LM340T-6 

LM340T-8 

LM340T-12 

LM340T-15 

LM340T-18 1.25 

LM340T-24 1.25 

LM358N 



125 
1.25 
1.25 



LM370N 

LM373N 

LM377N 

LM380N 

LM380CN 

LM381N 

LM382N 

NES01N 

NE510A 

NE529A 

NE531H/V 

NE536T 

NE540L 

NE544N 

NE550N 

NE555V 

NE556N 

NE5608 

NE5618 

NE562B 

NE565N/H 

NES66CN 

NE567V/H 

NE570N 

LM703CN/H 

LM709N/H 



1.00 
1.95 
325 
4.00 
1.25 



1.79 
8.00 
6.00 
4.95 
3.95 
6.00 
6.00 
4.95 



.99 
5.00 
5.00 
5.00 



74LS00TTL 

74LS47 .89 

74LS51 .29 

74LS54 .29 

74LS55 .29 

74LS73 .45 

74LS74 .45 

74LS75 .59 

74LS76 .45 

74LS78 .49 

74LS83 .89 

74LS85 1.25 

74LS86 .45 

74LS90 .59 

74LS92 .75 

74LS93 .75 

74LS95 .99 

74LS96 1.15 

74LS107 .45 

74LS109 .45 

74LS112 .45 

74LS123 1.25 

74LS125 .89 

74LS132 .99 

74LS136 .49 



SN74160N 
SN74161N 
SN74162N 
SN74163N 
SN74164N 
SN74165N 
SN74166N 
SN74167N 
SN74170N 
SN74172N 
SN74173N 
SN74174N 
SN74175N 
SN74176N 
SN74177N 
SN74179N 
SN74180N 
SN74181N 
SN741B2N 
SN74184N 
SN741B5N 
SN74136N 
SN74188N 
SN74190N 
SN74191N 
SN74192N 
SN74193N 
SN74194N 
SN74195N 
SN74196N 
SN74197N 
SN74196N 
SN74199N 
SN74S200 
. SN74251N 
SN74279N 
SN74283N 
SN742B4N 
SN74285N 
SN74365N 
SN74366N 
SN74367H 
SN74368N 
SN74390N 
SN74393N 



CO4070 

CD4071 

CO4072 

CD4076 

CD40B1 

CD4082 

CD4093 

CD4096 

MC14409 

MC14410 

MC14411 

MC14419 

MC14433 

MC14506 

MC14507 

MC14562 

MC145B3 

CD450B 

CD4510 

CD4511 

CD4515 

CD4518 

CD4520 

CD4566 



.99 
2.49 
1495 
14.95 
14.95 
4.95 
19.95 
.75 
.99 
14.50 
3.50 
3.95 



74C163 
74C164 
74C173 
74C192 
74C193 
74C195 
74C922 
74C923 
74C925 
74C926 
B0C95 
B0C97 



2.49 
2.49 
2.60 
2.49 
2.49 
2.49 
5.95 
6.25 
8.95 
B.95 
1.50 
1.50 



LM710N .79 

LM711N .39 

LM723N/H .55 

LM733N 1.00 

LM739N 1.19 

LM741CN/H .35 

LM74M4N .39 

LM747N/H .79 

LM748N/H .39 

LM1310N 2.95 

LM1458CN/H .59 

MC1488H 1.33 

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 

LM3905N 89 
LM3909N 
MC5558V 



LM75450N 

75451CN 

75452CN 

75453CN 

75454CN 

75491CN 

75492CN 

75493N 

75494CN 

RC4136 

RC4151 

RC4194 

RC4195 



4,95 
.49 



74LS138 
74LS139 
74LS151 
74LS155 
74LS157 
74LS160 
74LS161 
74LS162 
74LS163 
74LS164 
74LS175 
74LS181 
74LS190 
74LS191 
74LS192 
74LS193 
74LS194 
74LS195 
74LS253 
74LS257 
74LS258 
74LS260 
74LS279 
74LS367 
74LS388 
7415670 



1.15 
1.15 

1.15 
1.15 



EXCITING NEW KITS Th «*- Kit 

Thermometer Kit 




JE600 HEXADECIMAL 
ENCODER KIT 

FEATURES: 

• Full Bibit defied output for mlcio- 
processor use 

• 3 Us«t Define keyswilh one being bl- 
statoe operation 

• Oebounce circuit provided tor all 19 
toys 

• LED readout to verify entries 

• Easy interlacing with standard 16 pin 
1C connector 

• Only +5VDC required tor operations 
FULL 8 BIT LATCHED OUTPUT— 19 KEYBOARD 

The JE600 Encoder Keyboard provides (wo separate hexadecimal 
digits produced trom sequential key entries to allow direct prog- 
ramming tor 8 bit microprocessor or B bit memory circuits. Three 
(S)additlonal keys areprovided (or user operalionswfthonehaving 
a bistable output available. The outputssre latched and monitored 
with LEO readouts. Also included Isa key entry strobe. 



JE600 . 



$59.95 




■Dual seniors— twitching control for In- 
door/outdoor or dual monitoring 
■Continuoui LED .8" ht. dliplay 
•Range: -40°F to 199°F / -40^ to lOO^C 
■Accuracy: ±1°nomJna1 
'Set for Fahrenheit Or Calclus reading 
■Sim. walnut case -AC wall adapter Inch 
-Size: 3-1/4"Hx6-5/8"Wx 1-3/S"0 



JE300 $39.95 



DISCRETE LEDS 



.200* dia. 
XC556R red 
XC556G green 
XC556Y yellow 
XC556C clear 

.200' dla. 



XC22R 
XC226 
XC22Y 



red 



ye low 
.170" dla. 



5/S1 
4/S1 
4/S1 

4/S1 

5/$1 
4/S1 
4/S1 



MV10B red 

.085" dla. 
MV50 red 

INFRA-RED LED 
1/4"x1/4"x1/16" flat 
S/S1 



6/$t 



XC209R 
XC209G 
XC209Y 



XC526R 
XC5266 
XC526Y 
XC526C 



XC111R 
XC1116 
XC111Y 
XC111C 



12V dla. 
red 
green 
yellow 

185" dla. 

red 
green 
yellow 
Clear 

.190" dia. 

red 

green 

yellow 

clear 



5/S1 
4/S1 

4/$1 



5/S1 

4/S1 
4/J1 
4/S1 



5/$1 
4/J1 
4/S1 
4/51 



DISPLAY LEDS 



TIMEXT1001 

UQUIO CRYSTAL DISPLAY 

CLASS II 

FIELD EFFECT 




4 DIGIT - .5" CHARACTERS 
THREE ENUNCIATORS 
2.0O" X 1.20" PACKAGE 
INCLUDES CONNECTOR 

TIOOI-Tranunmivt SIM 

TIOOIA-Riflectiva 8.25 



TYPE 

MANt 
MAN 2 



MAN7G 
MAN7Y 
MAN 72 
MAN 74 
MAN 82 
MAN 84 
MAN 3620 
MAN 3630 
MAN 3640 
MAN 4610 
MAN4640 
MAN4710 
MAN 4730 
MAN4740 
MAN 4810 
MAN4840 
MAN 6610 
MAN 6630 
MAN 6640 
MAN 6650 
MAN 6660 
MAN 6680 
MAN 6710 



POLARITY 
Common Anode-red 
5 x 7 Dot Matrix-red 
Common Catnode-red 
Common Cathode-red 
Common Anode-green 
Common Anode-yellow 
Common Anode-red 
Common Catttode-red 
Common Anode-yellow 
Common Cathode-yellow 
Common Anode-orange 
Common Anode-orange ± 1 
Common Calhode-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-O.D. 
Common Anode-orange » 1 
Common Catttode-orange-O.D. 
Common Cathode-orange = 1 
Common Anode-orange 
Common Cathode-orange 
Common Anode-red-D D 



PRICE 
195 
4.95 



TYPE 

MAN 6730 

MAN 6740 

MAN 6750 

MAN 6760 

MAN 6780 

DL701 

DL704 

DL707 

DL72B 

DL741 

DL746 

DL747 

DL749 

DL750 

DL338 

FND70 

FND356 

FND359 

FNDS03 

FN0507 

5082-7730 

HDSP-3400 

HDSP-3403 

5OS2-7300 

5082-7302 

5082-7304 

5082-7340 



POUWITY 

Common Anode-red * 1 
Common Cathode-red 
Common Cathode-red ± 1 
Common Anode-red 
Common Cathode-red 
Common Anode-red ± 1 
Common Cathode-red 
Common Anode-red 
Common Cathode-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 Cathode(FN0500) 
Common Anode (FN0510) 
Common Anode-red 
Common Anode-red 
Common Cathode red 
4x 7 sol IrJt-RHDP 
4 x 7 Sgl. Digil-LHDP 
Overrange character (si) 
4 x 7 Sgl. Diflit-Hexndedmal 



2.10 
2.10 
19.95 
19.95 
15.00 
22.50 



RCA LINEAR 



CA3013T 
CA2023T 
CA3035T 
CA3039T 
CA3046N 
CA30S9N 
CA3060N 
CA3OB0T 
CA3081H 



1.35 



15 CA3082N 

56 CA3063N 

48 CA3086N 
CA30B9N 

.30 CA3130T 

.25 CA3140T 

.25 CA3160T 

.65 CA340IN 

00 CA3600N 



3.50 



CALCULATOR 
CHIPS/DRIVERS 



MM5725 


$2.95 


MM5738 


2.95 


DM8864 


2.00 


DM8665 


1.00 


DM8867 


.75 


0MB889 


.75 


9374 7 sea- 




C A. L£0 driver 


150 



CLOCK CHIPS 

MMS309 

MM5311 

MM5312 

MM5314 

MM5316 

MMS318 

MM5369 

MM5387/1098A 

MMS641 



$4.95 
4.95 
4.95 
4.95 
6.95 
9.95 



MOTOROLA 

MC1408L7 

MC1406L6 

MCI 4391 

MC3022P 

MC3061P 

MC4016(74416) 

MC4024P 

MC404OP 

UC4044P 



J4.95 
5 75 
2.95 
2.95 
350 
7.50 
3.95 
6.95 
450 



SpinIP 
14 pin IP 
16 pin IP 
IBpinLP 
20 pin LP 

14 plnST 
16 pin ST 
18 phST 
24 pin ST 

8 pbiSG 
14 pin SG 

18 pin SG 

IBpinSQ 

8 pin WW 
10pinWW 
14 pin WW 
16 phi WW 
18 pin WW 



1-24 
.$17 
.20 
.22 
.29 
.34 



.25 
.27 



.27 



«* 



IC SOLOERTAIL — LOW PROFILE (TIN) SOCKETS 

25-49 50-100 1-24 

22 fin LP $ .37 

24 (A) LP .38 

28 pin LP 45 

.27 36 pin LP .60 

30 SOLOERTAIL STA NDARD (TIN) «■*• & M 

26pm ST % .99 

36 phi ST 1.39 

40plnST 1.59 

SOLOERTAIL STANDARD (GOLD) 

24 pin SG S .70 
28plnSG 1-10 
36plnSG 1-65 
40 pin SG 1.75 



.24 
.25 



.42 



WIRE WRAP SOCKETS 
(GOLD) LEVEL #3 



22 pin WW $ .95 
24 pin WW 1,05 
26 pm WW 1.40 
36 Pin WW 1.59 
40 pin WW 1.75 



.90 
126 
145 



.65 
.95 
1.25 
1,45 
1.55 



.58 
.61 
.81 
1.15 
1.30 

.57 
.90 
1.26 
1.45 



1.10 
1.30 



1/4 WATT RESISTOR ASSORTMENTS - 5% 



ASST. 
ASST. 
ASST. 
ASST. 
ASST. 
ASST. 
ASST. 

ASST. 



10 OHM I? OHM 15 OHM 18 OHM 

27 OHM 33 OHM 39 OHM 47 OHM 

68 OHM 62 OHM 100 OHM 120 OHM 

180 OHM 220 OHM 270 OHM 330 OHM 

470 OHM 560 OHM 680 OHM 820 OHM 

I.2X 1.5K 1.8K 2.2K 



3.3K 

B.2K 



3.9K 



4.7K 



5.6K 



22 OHM 
56 OHM 
150 OHM 
390 OHM 

IK 
2.7 K 
S.8K 
18K 
47K 



60 pcs $1.75 
so pes 1.75 



» Sea. 56K 68K 82K IOOK 120k 

150K 1B0K 220K 270K 330K 

5 Sea. 390K 470K 560K 680K 8?0k 

1M 1.2M 1.5M 1.8M 2.2M 

f 5e» 2.7M 3.3M 3.9M 4.7M 5.6M 

8R Includes Resistor Assortments 1 -7 (350 PCS 



SO PCS 
SO PCS 
SO PCS 
SO PCS 



1.75 
1.75 
1.75 
1.75 



so pcs 1.75 
$9.95 ea. 



S10.00 MINIMUM ORDER- U.S. Funds Only Spec Sheets - 25* 

California Residents — Add 6% Sales Tax W9 Catalog Available— Send 41* stamp 



PHONE 

ORDERS 

WELCOME 

(415) 592-8097 




ELECTRONICS 



MAIL ORDER ELECTRONICS - WORLDWIDE 
1021 HOWARD AVENUE. SAN CARLOS. CA 94070 
ADVERTISED PRICES GOOD THRU JULY 



TELEPHONE/KEYBOARD CHIPS ^> 

AY-5-9100 Push Button Telephone Obiter $14.95 

AY-5-9200 . Repertory Dialler 14.95 

AY-5-9500 CMOS Clock Gensrator 4.95 

AY-5-2376 Keyboard Encoder (88 lays) 14.95 

HO0165 Keyboard Encoder (16 toys) 7.95 

74C922 Keyboard Encoder 16 toys) 5.95 



ICM7045 
ICM7205 
ICM7207 
ICM7208 
ICM7209 



ICM CHIPS 

CMOS Precision Timer 
CMOS LED Stopwatch/Timer 
OsdRator Controller 
Seven Decade Counter 
Dock Generator 



24.95 
19.95 

7.50 
19.95 

6.95 



NMOS READ OHLY MEMORIES 

MCM6571 128 X 9 X 7 ASCII Shifted wrth Greek - 13.50 

MCM6574 128 X 9 X 7 Math Symbol & Pictures ' 13.50 

MCM6575 120 X 9 X 7 Alphanumeric Control 13.50 

Character Generator 



MISCELLANEOUS 

TL074CN Quad Low Noise bi-fet Op Amp 2.49 

TL494CN Switching Regulator 4.49 

TL496CP Snole Switching Regulator 1.75 

11C90 Drvfie 10/11 PrescaTer 19.95 

95H90 Hi-Speed DMde 10/11 Pntscai* 11.95 

4N33 Photo-DarUngton Opto-lsotitor 3.95 

MK50240 Top Octave Freq. Generator " 17.50 

DS0026CH 5Mra 2-phase MOS dock driver 3.75 

TIL308 .27* red num. display w/)nteg. tooic chip 10.50 

MM5320 TV Camera Sync. Generator 14.95 

MM5330 4Vi Oigit DPM Logic Stock (Special) 3.95 

1011 0/1 1 1 3h Digit A/D Convener Set 25.00/set 



UTRONIX ISO-UT 1 

Plioto Transistor Opto-lsolator 
(Same as MCT 2 or 4N25) 



2/990 



SN 76477 

SOUND GENERATOR 
Generates Complex Sounds 
Low Power • Programmable 

3.95 each 



TV GAME CHIP AND CRYSTAL 

AY -3 -8500-1 and 2.01 MHZ Crystal (Chip & Crystal - n _ . 

Includes score display, 6 games and select angles, etc. 7 . 95 /S6l 



$8.40 
4.40 
4.40 
1.55 
1.50 
.39 



XR205 
XR210 
XR215 
XR320 
XR-L555 
XR555 
XR556 
XR567CP .99 
XR567CT 1.25 
XR1310P 1.30 
XR1468CN 3.85 
XR1488 1.39 
XR1489 1.39 



EXAR 

JE2206KA 14.95 
JE2206KB 19.95 
XR180O 3.20 
4.40 
3.65 
5.20 
1.75 
5.25 
4.35 
3.45 



XR2242CP 1.1 
XR2264 4.25 



XR2207 
XR22G8 
XR2209 
XR2211 
XR2212 
XR2240 



XR2556 
XR2567 
XR3403 
XR4136 
XR4151 
XR4194 
XR4202 
XR4212 
XR4S58 
XR4739 
XR4741 



.20 
2.99 
1.25 
1.25 
2.65 
4.96 
3.60 
2.05 

.75 
1.15 
1.47 



TYPE 

1N746 

1N751 

1N752 

1N753 

1N754 

1N757 

1N759 

1N959 

1N965 

1N5232 

1N5234 

1N5235 

1N5236 

1N5242 

1N5245 

1N456 

1N458 

IN4B5A 

1N4001 



DIODES 

VOLTS W 

3.3 400m 
5.1 400in 



400m 

40ftn 

400m 

400m 

400m 

400m 

400in 

500m 

500m 

500m 

500m 

500m 

500m 

40m 

7m 

10m 



50PIV1 AMP 



PfllK 
4/1.00 
4/1.00 
4/1.00 
4/1.00 
4/1.00 
4/1.00 
4/1.00 
4/1.00 
4/1.00 



28 
6/1.00 
6/1.00 
5/1.00 
12/1.00 



1H4002 
1N4003 
1N4004 
1N4005 
1N4006 
1N4007 
1N36O0 
1N414B 
1N4154 
1N4305 
1N4734 
1N4735 
1N4736 
1N4738 
1N4742 
1N4744 
1N1163 
1N1184 
1N11B5 
1M1186 
1N118B 



VOLTS W 

100 PTV1 AMP 
2O0PIV1 AMP 
400 PIV 1 AMP 
600PIV1AMP 
600 PIV 1 AMP 
1000 PIV 1 AMP 
200m 



75 



10m 



12 1w 

15 1w 

50PIV35AMP 
100PIV35AMP 
150PJV35AMP 
200 PIV 35 AMP 
400PIV35AMP 



PRICE 
12/1.00 

12/1.00 
12/1.00 
10/1.00 
10/1.00 
10/1.00 
8/1.00 
15/1.00 
12/1.00 
15/1.00 



SCR AND FW BRIDGE RECTIFIERS 

C360 ISA @ 400V SCR{2M1849) 

C38M 35A @ 600V SCR 

2N2328 1.6A <v 300V SCfl 

MOA 960-1 12A @ SOV FW BRIDGE REC. 

MDA 960-3 12A ® 200V FW BRIDGE REC. 



C10661 

MPSA05 

MPSA06 

TIS97 

TIS98 

40409 

40410 

40673 

2N918 

2N2219A 

2K2221A 

2N2222A 

PN2222Pta 

2N2369 

2M2369A 

MPS2369 

2N2484 

2N2906 

2N2907 

PN2907 Pla 

2N2925 

MJE2955 

2N3053 



. tRANslsTdRS 

•30 2N3055 



1.95 



5/1.00 


MJE3055 


1.00 


6/1.00 


2N3392 


5/1.00 


6/1.00 


2N3398 


5/1.00 


1.75 


PN3567 


3/1.00 


1.75 


PN3566 


4/1.00 


1.75 


PN3569 


4/1.00 


4/1.00 


MPS3636A 


5/1,00 


2/1.00 


MPS3702 


5/1.00 


4/1.00 


2N3704 


5/1.00 


5/1.00 


MPS3704 


5/100 


7/1.00 


2N3705 


5/1.00 


5/1.00 


MPS3705 


5/1.00 


4/1.00 


2N3706 


5/1.00 


5/1.00 


MPS3706 


5/1.00 


4/1.00 


2K3707 


5/1.00 


4/1 .00 


2N3711 


5/1.00 


5/1 .00 


2N3724A 


.65 


7/1.00 


2N3725A 


1.00 


5/1.00 


2N3772 


2.25 


1.25 


2N3823 


1.00 


2/1.00 


2N3903 


5/1.00 



CAPACITOR 



2N3904 

2N3905 
2N3906 
2N4013 
2N4123 
PN4249 
PN4250 
2N4400 
2N4401 
2N4402 
2N4403 
2N4409 
2N50A6 
2N5087 



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/1.00 
4/1.00 
5/1.00 
4/1.00 
4/1.00 
4/1.00 
4/1.00 
5/1.00 
5/1.00 
5/1.00 
5/1.00 
5/1.00 
3/1.00 
3/1,00 



10pr 
22 pi 
47pf 
100 pi 
220 pi 
470 01 

001m( 
.0022 
.0047mt 
.Olmf 

.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/25V 
22/50V 
47/25V 
47/50V 
100/25V 
100/50V 
220/25V 
220/50V 
470/25V 
100Q/16V 
2200/16V 



50 VOLT CERAMIC 
DISC CAPACITORS 
U9 UL22 uhl 
.05 .04 .03 
05 .04 ,03 
04 .03 
04 .03 
04 ,03 
.04 035 



CORNER 



.05 



.OOImF H .04 035 

.0O47iJ .05 .04 .035 

.01/J .05 .04 .035 

,022^F .06 .05 .04 

.047JJ .06 .05 .04 

,\yf .12 .09 .075 
100 VOLT MYLAA RLM CAPAaTOFfS 

.12 .10 .07 .022mf .13 .11 .08 

.12 .10 .07 .047ml .21 .17 .13 

.12 .10 .07 .1ml .27 .23 .17 

.12 .10 .07 .22m! .33 .27 .22 
420% IPPEO TANTALUMS (SOLID) CAPACITORS 

' 1.5/35V .30 .26 .21 

2.2/25V .31 .27 .22 

3.3/25V .31 .27 .22 

4.7/25V -32 .28 .23 

6.8/25V .38 .31 .25 

10/25V .40 .35 .29 

15/25V .63 .50 .40 
MINIATURE ALUMINUM ElfCTROLYTIC CAPACITORS 
Udil LMd filial Im4 

.15 .13 .10 .47/25V .15 .13 .10 

.47/50V .16 .14 .11 

1Z .09 10 16V .15 .13 .10 

.13 .10 1.0/25V .16 .14 .11 

.13 .10 1.0/50V .16 .14 .11 

.14 ,12 4.7/16V ,15 .13 .10 

.15 .12 4.7/25V .15 .13 .10 

.20 .18 4.7/50V .18 .14 .11 

10/16V .14 .12 .09 

10/25V .15 .13 .10 

10/50V .16 .14 .12 

47/50V .24 .21 ,ig 

100/16V .19 .15 ,14 

100/25V .24 .20 .18 

.27 100/50V ,35 .30 .28 

.45 220/16V 23 .17 m 

.55 470/25V ,31 .28 ,2fi> 



,28 .23 
.28 .23 



.28 .23 



,16 .14 



.17 

.24 ZO .IB 

.19 .17 .15 

.25 .21 .19 

.24 .20 .18 

.35 .30 .28 

.32 .28 .25 



252 BYTE July 1979 



Circle 200 on inquiry card. 



DB25P (as pictured) PLUG (Meets RS232) $2.95 

DB25S SOCKET (Meets RS232) $3.50 

DB51226-1 Cable Cover for DB25P or DB25S $1.75 

PRINTED CIRCUIT EDGE-CARD 

156 Spaong -Tin-Double Read-Out — Bl(uiacl«) Contacts — Fits .054 to 070 P.C. 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) plNS (Wire Wrap) B68M $6.95 



Transistor Checker 




— Completely Assembled - 
— Battery Operated — 

The ASI Transistor Checker is cap- 
able of che king 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 low, medium and high- 
power PNP and NPN transistors. 
Size: 3%" x 6%" x 2" 
"C" cell battery not included. 

Trans-Check $29.95 ea. 



Custom Cables & Jumpers 




Patt 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 $15.95 ea. 

4 Ft. 1-DP25P/1-25S S16.95 ea. 



4 ft. 2-DP25S 

Dip Jumpers 



1 ft. 

1 ft. 

1 ft. 

1 ft. 

1 ft. 

1 ft. 



1-14 Pin 
1-16 Pin 
1-24 Pin 
2-14 Pin 
2-16 Pin 
2-24 Pin 



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 JAMECQ 1979 Catalog tor Pricing 



CONNECTORS 

25 Pin-D Subminiature 



4-Digit Clock Kit 




* Bright .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: 3V4 x 1% x IV* 



JE730 $14.95 



Jumbo 
6-0igit Clock Kit 




* Four ,630"ht. and two .300"ht. common anode displays 

* Uses MM5314 clock chip 

* Switches for hours, minutes and hold functions 

* Hours easily viewable to 30 feet 

* Simulated walnut case 

* I15VAC operation 

* 12 or 24 hour operation 

* Includes all components, case and wall transformer 

* Size: 6*i x 3M» x 1% 



JE747 $29.95 




JE701 



• Bright .300 ht. comm, cath- 
ode display 

•Uses MM5314 clock chip 

• Switches for hours, minutes 
and hold modes 

•Hrs. easily viewable to 20 ft. 
•Simulated walnut case 

• 115 VAC operation 

• 12 or 24 hr. operation 
•Incl. all components, case & 

wall transformer 
•Size: 6%" x 3-1/8" x 1 J 4" 



6-Digit Clock Kit $19.95 



REMOTE CQNTHOL 
TRANSMITTER & RECEIVER 




Digital Stopwatch Kit 

* Use Intersil 7205 Chip 

* Plated thru double-sided P.C. Board 

* LED display (red) 

* Times to 59 mln. 59.59 sec. with auto reset 

* Quartz crystal controlled 

* Three stopwatches In one: single event, spilt 
(cummufatlve)& taylor (sequential timing) 

* Uses 3 penltte batteries 

* Size: 4.5" x 2.15" x .90" 



JE900 $39.95 



MICROPROCESSOR COMPONENTS 



8212 
8214 
8216 
8224 
8226 
8228 
8238 
8251 
8253 
8255 
8257 



-8MQA/8080A SUPPORT DEVICES- 
CPU 

8-Bit Input/Output 

Priority Interrupt Contro! 

8! Directiona Bus Driver 

Clock Generator/Driver 

Bus Driver 

System Controller/Bus Driver 

System Controller 

Prog. Comm. 1/0 (USART) 

Prog. Intervat Timer 

Profl. Peripli. 1/0 (PPI) 

Prog. DMA Control 

Prog Interrupt Control 
— 8800/6800 SUPPORT DEVICES — 

MPU 



$ 9.95 
3.25 



5.95 
7.95 
14.95 
9.95 
19.95 
19.95 



-MICROPROCESSOR MANUALS - 



M-Z80 User Manual 

M-CDP1602 User Manual 
M 2650 User Manual 



|The Incredible 
Pennywhistle 103* 



-ROM'S - 



2513(2140) Character Generator(upper case) $9.95 

2513(3021) Character Generator(lower case) 9.95 

2516 Character Generator 10.95 

MM5230N 2048-Bit Read Only Memory 1.95 



MC6800 MPU S14.95 

MC6802CP MPU with Clock and Ram 24.95 

MC6810API 128X8 Static Ram 5.95 

MC6821 Periph. inter Adapt {MC6820} 7.49 

MC6828 Priority Interrupt Controller 12.95 

MC5630L8 1024X8 Bit ROM (MC6BA30 8) 14.95 

MC6850 Asynchronous Comm. Adapter 7.95 

MC6852 Synchronous Serial Data Adapt. 9.95 

MC6860 0-600 bps Digital MODEM 12.95 

MC6862 2400 bps Modulator 14.95 

MC6880A Quad 3-State Bus. Trans. (MC8T26) 2.25 

MICROPROCESSOR CHIPS-MISCELLANEOUS 

Z80(780C) CPU $19.95 

Z80A(780-1) CPU 24.95 

CDP1802 CPU 19.95 

2650 MPU 19.95 

8035 8-Bit MPU w/clock. RAM. 1/0 lines 19.95 

P8085 CPU 19.95 

TMS9900JL 16-Bit MPU w/hardwara. multiply 

i divide 49.95 
SHIFT REGISTERS 



MM500H 

MM503H 

MM504H 

MM506H 

MM510H 

MM5016H 

2504T 

2518 

2522 

2524 

2525 

2527 

2528 

2529 

2532 

2533 

3341 

74LS670 



A-y-5-1013 30K BAUD 



Dual 25 Bit Dynamic 
Dual 50 Bit Dynamic 
Dual 16 Oil Static 
Dual 10Q Bit Sialic 
Dual 64 Bit Accumulator 
500/512 Bit Dynamic 
1024 Dynamic 
Hex 32 Bit Static 
Ouai 132 Bit Static 
512 Static 
1024 Dynamic 
Dual 256 Bit Static 
Dual250 Static 
Ouai 240 Bit Static 
Quad 80 Bit Static 
1024 Sialic 
Flfo 

4X4 Register File (TriState) 
■UARTS 



1101 

1103 

2101(8101) 

2102 

21L02 

2111(8111) 

2112 

2114 

2114L 

2114-3 

2114L-3 

5101 

5280/2107 

7489 

74S200 

93421 

UPD414 

(MK4027) 
UPD416 

(MK4116) 
TMS4044- 

45NL 
TMS4045 
2117 

MM5262 



256X1 

1024X1 

256X4 

1024X1 

1024X1 

256X4 

256X4 

1024X4 

1024X4 

1024X4 

1024X4 

256X4 

4096X1 

16X4 

256X1 

256X1 

4K 



- RAM'S 

Static 

Dynamic 

Static 

Static 

Static 

Static 

Sialic MOS 

Static450ns 

Static 450tjs low power 

Sialic 300ns 

Sialic 300ns low power 

Static 

Dynamic 

Static 

Static Tristate 

Static 

Dynamic 16 pin 

Oynamic 16 pin 

Static 

Static 

Dynamic 350ns 
(house marked) 
Dynamic 



4.95 
9.95 
10.95 
10.95 
11.95 
7.95 
4.95 



9.95 
14.95 



- PROM'S - 



2.95 
2,95 



2.95 
6.95 
2.49 



1702A 

2716INTEL 

TMS2516 

(2716) 

TMS2532 

2708 

2716T 



2048 



FAMOS 
18K 1 EPROM 

16K- EPROM 

'Requires single +5V power supply 
4KX8 EPROM 

8K EPROM 

16K" EPROM 

■Requires 3 voltages. — 5V. +5V. +12V 
5203 2048 FAMOS 



6301-1(7611) 1024 
6330-1(7602) 256 
82S23 32X8 

82S115 4096 

82S123 32X8 

74166 512 

74188 256 

74S287 1024 



Tr state Bipolar 

Open C Bipolar 

Open Collector 

Bipolar 

Triistale 

TTL Open Collector 

TTL Open Collector 

Static 



$5.95 
59.95 
49.95 

89.95 
10.95 
29.95 



19.95 
3.95 
9.95 
3.95 
2.95 



CONTINENTAL SPECIALTIES 



Proto Board 203 




$75.00 



LiWiH 

(Inches) 

6.0x4.5x1.4 

6.0 x 4.5 x 1.4 

6.0x4.5x1.4 




Board 203 A 



All lhr leiturn at iru PS 203 stui 

Ff.wJii r, H. j-iiijfd 5V0C lupply 
(»M ipwiliiilioni u PB 203). flag 
l. i-.j Ktntut * 15V DC ind -15 
VDC 0.5A tupplin, each wtih 



$124.95 



Model 

Number 



LiWiH 
finches) 



PB-1B2 

PB-1D3 9.0x6.0x1.4 

PB-104 9.8 x 8.0 K 1.4 



Price 

7.0x4.5x1.4 $26.95 

144.65 
$54.95 



"HE SINCLAIR PDM35 

DC Volts (4 ranged 

Range 1mV to 1000V. 

Accuracy ol reading 1.0%* i count. 

Note: 10MJ1 input innpeoance. 

AC Veils (40 llz-S kHz) 

Range IV la 500 V 

Accuracy ol reading 1.0%* 2 counts- 

DC Current (6 ranges) 

Range 1 nAto 200 m\ 

Accuracy ol reading 1.0%±1 count. 

Note Man resolution 0.1 n.A 

Retlttancs (5 ranges) 

Range: lit to 20 Mil 

Accuracy ot reading: 1.5%*. 1 count. 

Also provides 5 junction-test ranges. 

Dimension!: 6 in x 3 in x 1 rt in. 

Weight: 6tt ot 

Power Supply: 9 v battery or 

Sinclair AC adapter (Bane y not incl.) 

Sockets: Standard 4mm for 

resilient plugs. 

PDM35: Digital Multimeter . . . $59.95 

(completely assembled) 

PDM-AC: 117V AC Adapter . . . 6.95 

POM-DP: 

Deluxe padded carrying case. . . 6.95 




Options: AC adapter for 
117 V 60 ll; power 
De-luxe padded 
catrying wallet. 



JE200 




JE20Q $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 
*lnc ludes components, 

hardware & instructions 
*Size: 3V6"x5"x2"H 



100 MHz 
8-Digit 
Counter 



■ 20H7-100MHz Range ■ Four power souces. i.e. 

► .5" LEO Display batteres. 110 or220V with 
i Ciystal-controlled timebase charger 12V wilh auto 

■ Fully Automatic ligliter adapter and external 

► Portable — completely 7.2-10V power suppty 

,sS-Sx7,r MAX - 100 $134.95 

X5 63- 



ACCESSORIES FOR MAX 100: 
MoblliChargir Eliminator 

use power Irom car battery Model 100 — CU 13.95 
Cinrgir/Ellmlnitor 

use 110 VAC Modal 100 - Ml J9.95 



REGULATED POWER SUPPLY ^ 



JE205 



Lii_ 



ADAPTER BOARD 

-Adapts to JE200 - 

±5V,±9Vand±12V 
•DC/DC converter w/ 

+ 5V input 
•Toriodai hi-speed 

switching XMFR 
•Short circ. protection 
•PC Brd. construction 
•Piggy-back to JE200 

board 
•Size: 3%"x2"x 9/1 6"h 

JE205 $12.95 



$139.95 



Kit Only 




The Penflywhlstto 103 Is capable of recording data to and from audio tape without 

critical speed requirements for tin recorder and it is able to communicate directly wittt 

another modem and leiminal (or telephone "hamming" and communications In 

addilion.ltsireeotcriticaladiuslmentsandlstHiillwim non-precision, readily avaJtebie 

paits. 

Did Transmission Method ...J. Frequency-Shift Keying, lull-duplex (hail-dupiex 

selectable). 

Maximum Oali Rate , 300 Baud. 

Data Format Asynchronous Serial (return to mart level required 

between each character) 
Receive Channel Frequencies . . .2025 Hz for space; 2225 Rz for mark 
Transmit Channel Frequencies ..Switch selectable low (normal) = 1070 space. 

1270 mart; High = 025 space, 2225 mash. 

Receive Sensitivity -46 dbm accoustically coupled 

Transmit Level -15 dbm nominal. Adjustable from -6 dbm 

to -20 dbm. 
Receive FrequencyTolaranee ...Frequency reference automatically adjusts to 

allowlor operation between 1600 H2and2400Hz. 
Digital Dala Inlerlaca EtA RS-232C or 20 mA current loop (receiver is 

optolsot ted 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 mduded. 
Reoulres a VOM, Audio Oscillator, Frequency Counler 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-$2.95 ea 

CAS-6 

$14.95 

(Case and 6 Cassettes) 



SUP 'R' MOD II 

UHF Channel 33 TV interface Unit Kit 

Wide Band B /Wo r Color System 

• Converts TV to Video Display for 
home computers, CCTV camera, 
Apple II, works with Gromeco Dar- 
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 

* Output amplitude from 0-volts to 
over 6 volts (peak' to peak) 

* Uses a 12V supply or a *6Vsplfl 
supply 

* Incl. chip, P.C. board, compo- 
nents and instructions. 

JE2206B $19.95 




IDEAL FOR TRS 80 

"Plug /Jack interface to any 
computer system requiring 
remote control of cassette 
functions" 

The CC100 controls cassette 
motor functions, monitors 
tape location with its internal 
speaker and requires no 
power. Eliminates the plugging 
and unplugging of cables dur- 
ing computer loading opera- 
tion from cassette. 



CASSETTE CONTROLLER 




#CC-100 

$29.50 



63-Key Unencoded Keyboard 



$10.00 Minimum Order — U.S. Funds Only 
California Residents — Add 6% Sales Tax 




Spec Sheets ~2Si 

1979 Catalog Avallable^Send 41< stamp 



PHONE 

ORDERS 

WELCOME 

(415) 592-8097 



MAIL ORDER ELECTRONICS - WORLDWIDE 
1021 HOWARD AVENUE, SAN CARLOS. GA 94070 
ADVERTISED PRICES GOOD THRU JULY 




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. A very solid molded plastic 13 
x 4" base suits most application. IN STOCK §29 S5/each 



Hexadecimal 

Unencoded 

Keypad 

19-key pad includes 1-10 keys, 
ABCDEF and 2 optional keys and a 
shift key. $10.95/each 



ij ft 



Circle 200 on inquiry card. 



BYTE July 1979 



253 



save more than 20% ! 

NORTH STAR XITAN 

INTERTUBE 

the smartest computers at the smartest price 
DOUBLE DENSITY 

HORIZON-1-16Kk.it, list $1599 ...$1279 

Assembled & tested, list $1899 ...$1519 

HORIZON-2-32K kit, list $2249 . . . $1799 

Assembled & tested, list $2549 . . . $2039 

PASCAL for NORTH STAR on Disk $49 

Powerful NORTH STAR BASIC FREE 

XITAN computers--NOW--With 
QUAD DENSITY DISKS! 

FamousXITAN Software & BASIC FREE 

HORIZON & XITAN are S-100, Z-80--THE BEST 

INTERTUBE II Terminal, list $995 $780 

NEW: Our VIDEO BOARD CODE on Disk! 

Now you can run our computers on a TV! 

SAVE HUNDREDS $$$$ 

TV Code on DISK... $10 LISTING. . .FREE 

Business Software, Terminals, Printers, 

Computers in stock & special-ordered 

Other brands at good discounts. Ask! 

Which Computers are best? BROCHURE. . .FREE 

AMERICAN SQUARE 
COMPUTERS 

KIVETT DR, JAMESTOWN NC 27282 
(919)883-1105 



MAXIMUM VALUE 
FOR YOUR DOLLAR 

NORTH STAR COMPUTER PRODUCTS 

HORIZON1 16K KIT $1275.00 

16K RAM BOARD KIT $ 250.00 

32K RAM BOARD KIT $ 475.00 

VERBATIM DISCS FOR NORTH STAR 

BOX OF 10 $29. POST PAID 

COMPLETE SYSTEMS AVAILABLE 

CUSTOM SOFTWARE FOR NORTHSTAR SYSTEMS 

CASIO CALCULATORS 
AT DISCOUNT PRICES 

MANY OTHER SUPER VALUES 
WRITE OR CALL: 

A.E.I. 

3851 HACKETT AVE. 

LONG BEACH, CALIF. 90808 

(21 3) 421 -481 5 (213) 429-0535 



HAZELTINE 
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 



MaM TORA SYSTEM INC. 
Order 2 9-02 23rd Avenue 
Only. 



Astoria NY 11105 
(212) 932-3533 



Circle 5 on inquiry card. 



Circle 21 on inquiry card. 



TRS-80 16K MEMORY EXPANSION KIT 

INCLUDES 8 TESTED & GUARANTEED M5K 4116 3 16K RAMS. 
PROGRAMMING PLUGS & EASY-TO-FOLLOW INSTRUCTIONS. 

$72 0-0 PER KIT 

6800 64K BYTE RAM SET AND CONTROLLER 

CHIP SET *MM S4KBYTES 'OF MEMORY FOR YOUR 
6800. THE CHIPSETS INCLUDE: 
32 M5K 4116-3 16K RAMS. 
1 MC3480L MEMORY CONTROLLER. 
1 MC3242AP MEMORY ADDRESS 

MULTIPLEXER/COUNTER. 
DATA 4 APPLICATION SHEETS. 
PARTS TESTED ft GUARANTEED. 



$29505 

PER COMPLETE SET. 



16K DYNAMIC RAMS 

M5K 4116-3 200NSEC 
ACCESS TIME/375NSEC 
GVGLETIME.TESTED ft 
BURNED- IN. . 
$850 EACH/MIN.QTY 8 



4K TATIC RAMS 

EQUIV.TO TMS40L44-30 
300NSEC ACCESS TIME/ 
CYGLE TIME FOR 4MHZ 
Z-80 OPERATION. 
J7&Q EACH/MIN.QTY. 8 
TESTED & GUARANTEED 



QUANTITY DISCOUNTS AVAILABLE 
ALL ORDERS POSTPAID. U.S.FUNDS. CHECK OR MONEY 
ORDER. VISA.BA.MASTERCHARGE-SEND ACCOUNT NO., 
EXPIRATION DATE , INTERBANK NO., & SIGNED ORDER. 
PHONE ORDERS: 714/633-4460 

MEASUREMENT SYSTEMS & CONTROLS.inc. 

MEMORY DEVICES DIVISION. DEPT. B3 

867 NORTH MAIN ST., ORANGE, CA 92668 



Circle 216 on inquiry card. 



CASSETTE AND FLOPPY 
DISC LABELS. 



□ ( 



»«lf-idh«iive 

STANDARD CASSETTE 

romovabla libel 



Avery offers a complete line of labels for 
cassettes and floppy discs— all with re- 
movable adhesive. Including these stan- 
dard sizes: 

Cassette Label (W x 3%") #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 



(Q 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 3 

Authorized Sales Center 

1117 Conway 

Mission, Texas 78572 

(512) 585-2765 



\ 



% 



J 



Circle 314 on inquiry card. 



Scotch 



Diskettes 



Order Direct: "\ 

2 for $11.75 
5 for $26.45 

10 for $49.75 (Hard Box) 

Price Includes Shipping 

(Hawaii, Alaska & Canada add $1.00 shipping) 
VISA, Master Charge. Check, Money Order 

740-0 - 8" Soft Sector 
740-32 -8" Hard (32) Sector 
744-0 - 5" Soft Sector 
744-10 -5" Hard (10) Sector 
744-16- 5" Hard (16) Sector 



cpu 

I 99F 



Mass. residents add 5 % sales tax. 

COMPUTER 

PACKAGES 
UNLIMITED 

99 Reservoir St. Holden, MA 01520 

(617)829-2570 Div. of SCB Inc. 



SURPLUS ELECTRONICS 



ASCII 




ASCII 



IBMSELECTRIC 

BASED I/O TERMINAL 

WITH ASCII CONVERSION 

INSTALLED $645.00 

• Tape Drives • Cable 

• Cassette Drives • Wire 

• Power Supplies 12V15A, 12V25A, 
5V35A Others, • Displays 

• Cabinets • XFMRS • Heat 
Sinks • Printers • Components 
Many other items 

Write for free catalog 
WORLDWIDE ELECT. INC. 
130 NORTHEASTERN BLVD. 
NASHUA, N.H. 03060 
Phone orders accepted using VISA 
or MC. Toll Free 1-800-258-1036 
In N.H. 603-889-7661 



Circle 391 on inquiry card. 



"CRT INTERFACES" 
black ■ white/colon 

Monitors * Combination Rcvr/monitor sets 
* Modulator kits * B-W Cameras * Color 
Cameras * Audio Subcarrier kits * Parts 




WRITE or PHONEfor DETAlUS & PRICING. 



DIAL: 402-987-3771 1 



Dealers welcomed. Weil established program. 

13-B ATV Research S? ?^' 
Broadway ■* » 'VNJ NE. 68731 



Circle 20 on inquiry card. 



Circle 19 on inquiry card. 



• ••••••••••••••••••••••••••^•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••5 •* A 

••*'•£ <, w ^~" * ■= ' L'l ' 1" 1 'J " ' ' ' ' n ^ "' V " VI" V,1'J = ' ' ' ' ' — 1 '11 1 'I' V££» 



16K EPROWI CARD-S 100 BUSS "V 8K LOW POWER RAM KIT-S 100 BUSS 

250 NS SALE! 




OUR 

BEST 

SELLING 

KIT! 



USES 2708's! 

Thousands of personal and business systems around 
the world use this board with complete satisfaction. 
Puts 1 6K of software on line at ALL TIMES! Kit features 
a top quality soldermasked and silk-screened PC board 
and first run parts and sockets. All parts (except 2708's) 
are included. Any number of EPROM locations may be 
disabled to avoid any memory conflicts. Fully buffered 
and has WAIT STATE capabilities. 



OUR 450NS 2708'S 
ARE $8.95 EA. WITH 
PURCHASE OF KIT 



ASSEMBLED 

AND FULLY TESTED 

ADD $25 





$129 



KIT 



(450 NS RAMS!) 

Thousands of computer systems rely on this rugged, work 
horse, RAM board. Designed for error-free, NO HASSLE, 
systems use. 
KIT FEATURES: 

1. Doubled sided PC Board with solder 
mask and silk screen layout. Gold 
plated contact fingers. 

2. All sockets included. 

3. Fully buffered on all address and data 
lines. 

4. Phantom is jumper selectable to pin 
67. 

5. FOUR 7805 regulators are provided 
v on card. 



Blank PC Board w/Documentation 

$29.95 

Low Profile Socket Set.. .13.50 

Support IC's (TTL & Regulators) 

$9.75 

Bypass CAP's (Disc & Tantalums) 

$4.50 

ASSEMBLED AND FULLY 
BURNED IN ADD $30 



!••••• 



•••• 



••••• 



16K STATIC RAM KIT-S 100 BUSS 



*295 



KIT 



FULLY 

STATIC, AT 

DYNAMIC PRICES 



WHY THE 2114 RAM CHIP? 

We feel the21 14 will bethenext industry standard 
RAM chip (like the 2102 was). This means price, 
availability, and quality will all be good! Next, the 
2114 is FULLY STATIC! We feel this is the ONLY 
way to go on the S-100 Buss! We've all heard the 
HORROR stories about some Dynamic Ram 
Boards having trouble with DMA and FLOPPY 
DISC DRIVES. Who needs these kinds of 
problems? And finally, even among other 4K 
Static RAM's the 21 14 stands out! Not all AK static 
Rams are created equal! Some of the other 4K's 
have clocked chip enable lines and various timing 
windows just as critical as Dynamic RAM's. Some 
of our competitor's 16K boards use these "tricky" 
devices, But not us! The 2114 is the ONLY logical 
choice for a trouble-free, straightforward design. 




v 



•••• 
••••• 
••••• 

••••• 

••••• 

..♦• 
••••• 

••••• 

••••• 

••••• 
••••• 
••••• 
••••• 
*•••• 
••••• 
■••••• 

—••• 

••••• 

••••• 

••••• 

•••••• 

>••••• 

•••••• 

•••••• 

•••••• 

•••••• 

••••• 

•••••• 

••••• 

•••••• 



KIT FEATURES: 

1. Addressable as four separate 4K Blocks. 

2. ON BOARD BANK SELECT circuitry 
(Cromemco Standard!). Allows up to 51 2K on 
line! 

3. Uses 21 14 (450NS) 4K Static Rams. 

4. ON BOARD SELECTABLE WAIT STATES. 

5 Double sided PC Board, with solder mask and 
silk screened layout. Gold plated contact fingers. 

6. All address and data lines fully buffered. 

7. Kit includes ALL parts and sockets. 

8. PHANTOM is jumpered to PIN 67. 

9. LOW POWER: under 2 amps TYPICAL from the 
♦8 Volt Buss. 

10. Blank PC Board can be populated as any 
multiple of 4K. 



BLANK PC BOARD W/DATA— $33 
LOW PROFILE SOCKET SET— $12 ASSEMBLED & TESTED— ADD $30 
SUPPORT IC'S & CAPS— $19.95 2114 RAM'S-8 FOR $69,95 



TM990 BUSS PROTOTYPE & WIREWRAP BOARD 

For use with the Texas Instrument Series of 16 Bit Micro- 
computer Module. Fully buss compatible. An inexpensive 
and quick way to expand the capacity of your Tl 
computer. Made of G-10 Epoxy PC material. Gold plated 
contact finger, all plated through holes. High density, up 
to over 100 DIP's. Fully documented. 



$70 



each (OEM Discounts Available) 



16K DYNAMIC RAM CHIP 

16K X 1 Bits 16 Pin Package. Same as Mostek 4116-4. 250 NS access. 410 
NS cycle time. Our best price yet for this state of the art RAM. 32K and 64K 
RAM boards using this chip are readily available. These are new. fully 
guaranteed devices by a major mfg. VERY LIMITED STOCK' 

8 FOR $89.95 



NOT ASSOCIATED 

WITH 
DIGITAL RESEARCH 

OF CALIFORNIA, 

THE SUPPLIERS OF 

CPM SOFTWARE. 



450 ns! 2708 EPROMS 

Now full speed! Prime new units from a major U.S. 
Mfg. 450 N.S. Access time. 1 K x 8. Equiv, to 4-1702 
A's in one package. 

$15.75 ca. $9 95 4 FOR $50 

PRICE CUT 



JUL 



••••• 



••••• 



NATIONAL SEMICONDUCTOR NEW! 

CAR CLOCK MODULE - #MA6008 

Originally used by HYGAIN to indicate time and 

(^AAA channel on an expensive C.B. Mini size, self 

«&ft*tk%7%/ contained module. Not a Kit. Four digits plus 

\J each flashing indicator for seconds. Includes MM5369 

and 3.58 MHZ crystal for super accurate time base. 

With hookup data. 

MFGR's CLOSEOUT 

LIMITED QTY. 



INCLUDES CRYSTAL TIMEBASE! 
WORKS ON 12 VDC! 



Z-80 PROGRAMMING MANUAL 

By MOSTEK, or ZILOG. The most detailed explanation 
ever on the working of the Z-80 CPU CHIPS. At least 
one full page on each of the 158 Z-80 instructions. A 
MUST reference manual for any user of the Z-80. 300 
pages. Just off the press. $12.95 



EXPERIMENTER'S HEATING PLATE 

Large Manufacturers Surplus. SVixlOVz in. Made 
of 3/8 in. tempered glass with heating element 
laminated on back. Works off 120 VAC. 
Protected by thermostat and two thermal fuses. 
Rated 120 Watts. Use for any heating 
applications. Perfect for heating ferric chloride 
to increase PC Board etching efficiency. Units 
are brand new, non-submersible. 

WHILE THEY LAST— $2.99 each 



MALLORY COMPUTER 
GRADE CAPACITOR 

30,000 MFD 15 WVDC 

Small: 3x2 Inches 

$1.99 ea. 3 For $4.99 

New! REAL TIME 

Computer Clock Chip 

N.S. MM531 3. Features 

BOTH 7 segment and 

BCD outputs. 28 Pin 

DIP. $4.95 with Data 



GENERAL INSTRUMENT 

FULL WAVE BRIDGE 
4 AMP 600 PIV 

3/4 IN. SQUARE - WITH LUGi. 
750 ea 3 FOR $2 



THE COLOSSUS'' 
FAIRCHILD SUPER JUMBO LED READOUT 

A full .80 inch character. The biggest readout we have 
ever sold! Super efficient. Compare at up to $2.95 each 
from others! YOUR CHOICE 

FND 843 Common Anode * - .- 



FND 850 Common Cathode 



ea (6 for $6.95) 



••••• 



Digital Research Corporation 

w (OF TEXAS) 



P.O. BOX 401247Y GARLAND, TEXAS 75040 • (214)271-2461 



TERMS: Add 300 postage, we pay balance. Orders under $15 add 75C handling. No 
C.O.D. We accept Visa. MasterCharge. and American Express cards Tex Res add 
5% Tax Foreign orders (except Canada add 20% P &. H, 90 Day Money Back 
Guarantee on all items. 




Circle 100 on inquiry card. 



BYTE July 1979 



255 



IlicllVLVTRANSKMM) 



A completely refurbished 
IBM Selectric Terminal with 
built-in ASCII Interface. 



Features: 



$1395 



300 Baud 

14.9 characters per second 

printout 

Reliable heavy duty Selectric 

mechanism 

RS-232C Interface 

Documentation included 

60 day warranty -parts and 

labor 

High quality Selectric printing 

Off-line use as typewriter 

Optional tractor feed available 

15 inch carriage width 




HOW TO ORDER 1 

DATA-TRANS 1000 

1. We accept Visa, Master W 
Charge. Make cashiers checks or 
personal check payable to: 

DATA-TRANS 

2. All orders are shipped 
F.O.B. San Jose, CA 

3. Deliveries are immediate 



Circle 126 on inquiry card. 

For orders and information 

DATA-TRANS 

2154 OToole St. 

UnitE 

San Jose, CA 95131 

Phone: (408) 263-9246 




ASCII KEYBOARD 

By Cherry Products 



• • Mounted to DECWRITER Panel 
ASSEMBLED 89.95 





TIDMAtt 

• Tape Interface Direct 
Memory Access • Re- 
cord and play programs 
without bootstrap load- 
er (no prom) has FSK 
encoder/decoder for 
direct connections to 
low cost recorder at 
1200 baud rate, and 
direct connections for 
inputs and outputs to 
a digital recorder at 
any baud rate • S-1 00 
bus compatible • Board 
only $35.00 Part No. 
112, with parts $110 
Part No. 1 1 2A 



ASCII to Correspondence code converter 

This bidirectional board is a direct replacement for the board 
inside the Trendata 1000 terminal. The on board connector 
provides RS-232 serial in and out. Sold only as an assembled and 
tested unit for $330.00. Part No. TA 1 000C 




T.V. INTERFACE 

• Converts video to 
AM modulated RF, 
Channels 2 or 3. So 
powerful almost no 
tuning is required. On 
board regulated power 
supply makes this ex- 
tremely stable. Rated 
very highly in Doctor 
Dobbs' Journal. Recom- 
mended by Apple • 
Power required is 12 
volts AC C.T., or +5 
volts DC • Board only 
$7.60 part No. 107, 
with parts $1 3.50 Part 
No. 107A 




(Illegal where 
prohibited by law.) 



TA ^rrlflir ■ Mention P art number, description, and price. In USA, shipping paid (or orders accompanied by check, money order, or Master Charge, BankAmericard, or VISA 
■V wl vlwl ■ number, expiration date and signature. Shipping charges added to C.O.D. orders. California residents add B.5°/o for tax. Outside USA add 1D°/ofor air mail 
1 postage and handling, no C.O.D.'s. Checks and money orders must be payable in US dollars. Parts kits include sockets for all ICs, components, and circuit 
" board. Documentation is included with.all products. Prices are in US dollars. No open accounts. To eliminate tariff in Canada boxes are marked "Computer 
Parts." Dealer inquiries invited. 24 Hour Order Line: (40SJ 226-4064 , -»- Circuits designed by John Bell 



For free catalog including parts lists and schematics, send a self-addressed stamped envelope. 



ELECTRONIC SYSTEMS Dept - B ' p - °- Box 21638 - San Jose > CA USA 95151 



256 BYTE July 1979 



Circle 125 on inquiry card. 



TRS-80 ES 
SERIAL I/O 

• Can input into basic 

• Can use LLIST and 
LPRINT to output, or 
output continuously • 
RS-232 compatible • 
Can be used with or 
without the expansion 
bus • On board switch 
selectable baud rates 
of 110,150.300,600, 
1200. 2400. parity or 
no parity odd or even. 
5 to 6 data bits, and 1 
or 2 stop bits. O.T.R. 
line • Requires +5, 
-1 2 VDC« Board only 
$19.95 Part No. 8010. 
with parts $59.95 Part 
No. 801 OA. assembled 
$79.95 Part No. 8010 
C. No connectors pro- 
vided, see below. 




EIA/RS-232 con- 
nectar Part No. 
DB25P $601 with 
9'. 8 conductor 
c«Wa $10.95 Part 
No. D825P9. 



tSBSiS^/fUSA 



3" ribbon cabiB 
with attached con- 
nector* tofitTRS- 
80 and our serial 
ooardS19.95Pert 
No. 3CAB40. 



RS-232/ TTLtt 
INTERFACE 

• Converts TTL to RS- 
232. and converts RS- 
232 to TTL«Twosep- 
arate circuits • Re* 
quires -12 and +12 
volts • All connections 
go to a 10 pin gold 
plated edge connector 

• Board only $4.50 
Part No. 232. with 
parts $7.00 Part No. 
232A 10 Pin edge 
connector $3.00 Part 
No. 10P 



m 



MODEMS 

• Type 103« Full or 
half duplex • Works up 
to 300 baud • Origi- 
nate or Answer • No 
coils, only low cost 
components • TTL in- 
put and output-serial 

• Connect 8 ft speak- 
er and crystal mic. 
directly to board • 
Uses XR FSK demod- 
ulator • Requires +5 
volts • Board only 
$7.60 Part No. 109, 
with parts $27.50 Part 
No. 1 09A 




DISKETTES 

BOX OF 10 



\ferba1im 



5" 
8" 



$29.95 
$39.95 



RS-232/ TTYtt 

INTERFACE 

• Converts RS-232 to 
20mA current loop, 
and 20mA current loop 
to RS-232 • Two sep- 
arate circuits • Re- 
quires +12 and -12 
volts • Board only 
$4.50 Part No. 600. 
with parts $7.00 Part 
No. 600A 



S-100BUS * 
ACTIVE TERMINATOR 

Board only $14.95 Part No. 900, with parts 
$24.95 Part No. 900A 





APPLE lltt 
SERIAL I/O 
INTERFACE 



Baud rate is continuously adjustable from 
to 30.000 • Plugs into any peripheral 
connector • Low current drain. RS-232 input 
and output • On board switch selectable 5 to 
6 data bits, 1 or 2 stop bits, and parity or no 
parity either odd or even • Jumper selectable 
address • SOFTWARE • Input and Output 
routine from monitor or BASIC to teletype or 
other serial printer • Program for using an 
Apple II for a video or an intelligent terminal. 
Also can output in correspondence code to 
interface with some selectrics. • Also 
watches DTR • Board only $15.00 Part No. 
2, with parts $42.00 Part No. 2A. assembled 
$62.00 Part No. 2C 



8K EPROM piiceon 

Saves programs on PROM permanently (until 
erased via UV light) up to BK bytes. Programs 
may be directly run from the program saver 
such as fixed routines or assemblers. • S- 
100 bus compatible • Room for BK bytes of 
EPROM non-volatile memory (2708's). • On- 
board PROM programming • Address 
relocation of each 4K of memory to any 4K 
boundary within 64K • Power on jump and 
reset jump option for "turnkey" systems and 
computers without a front panel • Program 
saver software available • Solder mask both 
sides • Full silkscreen for easy assembly. 
Program saver software in 1 2708 EPROM 
$25. Bare board $35 including custom coil, 
board with parts but no EPROMS $1 39, with 
4 EPROMS $179. with 8 EPROMS $219. 




WAMECO PRODUCTS 

WITH 

ELECTRONIC SYSTEMS PARTS 

FDC-1 FLOPPY CONTROLLER BOARD will 
drive shugart, pertek. remex 5" & 8" drives 
up to 8 drives, on board PROM with power 
boot up, will operate with CPM (not 
included). PCBD $42.95 

FPB-1 Front Panel. (Finally) IMSAI size hex 
displays. Byte or instruction single step. 
PCBD..... $42.95 

MEM-1A 8Kx8 fully buffered, S-100, uses 
21 02 type RAMS. 
PCBD $24.95, $1 68 Kit 

QMB-12 MOTHER BOARD. 1 3 slot, termi- 
nated. S-1 00 board only $34.95 

$89.95 Kit 

CPU-1 80B0A Processor board S-1 00 with 

8 level vector interrupt PCBD . , $25.95 

$89.95 Kit 

RTC-1 Realtime clock board. Two independ- 
ent interrupts. Software programmable. 
PCBD $25.95, $60.95 Kit 

EPM-1 1 702A 4K EPROM 

card PCBD vavaua $25.95 

$49.95 with parts less EPROMS 

EPIVI-2 2708/2716 16K/32K m e 

EPROM card PCBD , $24.95 

$49.95 with parts less EPROMS 

OMB-9 MOTHER BOARD. Short Version of 

QMB-12. 9 Slots PCBD $30.95 

$67.95 Kit 

MEM-2 16Kx8 Fully Buffered 2114 Board 
PCBD . $25.95, $269.95 Kit 



T.V. 
TYPEWRITER 

• Stand alone TVT 

• 32 char/line, 16 
lines, modifications for 
64 char/line included 

• Parallel ASCII (TTU 
input • Video output 

• 1 K on board memory 

• Output for computer 
controlled curser • 
Auto scroll • Non- 
destructive curser • 
Curser inputs: up, down, 
left, right, home, EOU 
EOS • Scroll up. down 

• Requires +5 volts 
at 1.5 amps, and -12 
volts at 30 mA • All 
7400, TTL chips • 
Char. gen. 2513 • 
Upper case only • 
Board only $39.00 
Part No. 1 06. with 
parts $145.00 Part 
No. 106A 




UART& 

BAUD RATE 

GENERATOR-::- 

• Converts serial to 
parallel and parallel to 
serial • Low cost on 
board baud rate gener- 
ator • Baud rates; 
110. 150, 300. 600. 
1200. and 2400 • 
Low power drain +5 
volts and -12 volts 
required • TTL com- 
patible • All characters 
contain a start bit. 5 
to 8 data bits, 1 or 2 
stop bits, and either 
odd or even parity. • All 
connections go to a 44 
pin gold plated edge 
connector • Board only 
$12.00 Part No. 101, 
with parts $35.00 Part 
No. 101 A, 44 pin edge 
connector $4.00 Part 
No. 44P 




TAPE * 
INTERFACE 

• Play and record Kan- 
sas City Standard tapes 

• Converts a low cost 
tape recorder to a 
digital recorder • Works 
up to 1200 baud •Dig- 
ital in and out are TTL- 
serial • Output of 
board connects to mic. 
in of recorder • Ear- 
phone of recorder con- 
nects to input on board 

• No coils • Requires 
+5 volts, low power 
drain • Board only 
$7.60 Part No. 111. 
with parts $27.50 Part 
No. 111 A 




HEX ENCODED 
KEYBOARD 

E.S. 
This HEX keyboard 
has 1 9 keys, 1 6 encod- 
ed with 3 user defin- 
able. The encoded TTL 
outputs, 8-4-2-1 and 
STROBE are debounced 
and available in true 
and complement form. 
Four onboard LEOs 
indicate the HEX code 
generated for each 
key depression. The 
board requires a single 
+5 volt supply. Board 
only $15.00 Part No. 
HEX-3. with parts 
$49.95 Part No. HEX- 
3A. 44 pin edge con- 
nector $4.00 Part No. 
44P. 




DC power supply-:; 

• Board supplies a regulated +5 
volts at 3 amps., +1 2, -12. and -5 
volts at 1 amp. • Power required is 
8 volts AC at 3 amps., and 24 volts 
AC C.T. at 1.5 amps. • Board only 
$12.50 Part No. 6085, with parts 
excluding transformers $42.50 
Part No. 6085A 




T* rirHar . Mention part number, description, and price. In USA. shipping paid for orders accompanied by check, money order, or Master Charge Ban kAmencard. or VISA 
TO Orfler I number, expiration date and signature. Shipping charges added to C.O.D. orders. California residents add 6.5% for tax. Outs.de USA add 1 0% for air ma 
, oostaqe and handling, no C.O.D/s. Checks and money orders must be payable in US dollars. Parts kits include sockets for all ICs. components, and circuit 

!\ Mm board Documentation is included with-all products. Prices are in US dollars. No open accounts. To eliminate tariff in Canada boxes are marked Computer 
MB Parts," Dealer inquiries invited. 24 Hour Order Line: (408) 226-4064 * Circuits designed by John Bell 



For free catalog including parts lists and schematics, send a self-addressed stamped envelope. 



"ELECTRONIC SYSTEMS DePt- B. P.O. Box 21638, San Jose, CAUSA 95151 



Circle 125 on inquiry card. 



BYTE July 1979 



257 



T-BUG™ accessories 

Machine language programs linking with your copy 
of the Radio Shack TRS-80' m monitor 
EMU/2: Software emulation of MCS/SY 6502. Includes 
disassembling single-stepper, four speed animated before/- 
after programming models and quick interpreter for 
"direct" execution of 6502 object code strings in TRS 80 
RAM. Write, debug and execute programs in another 
machine language. Software communication with 6502 
based micro-computers is made possible. 

BL-1 16K Level II $24.95 

Super TLEGS: Onboard relocater moves T-BUG to your 
choice of RAM. Now examine anything. 

LLO Level II $ 995 

TSTER: Single steps for T-BUG, cleararjle before/after 
display shows all instruction set aspects ot machine status 
as you SPACE through memory in program flow sequence. 

TLEGS relocates LL-1 1 6K Level II 11.95 

IN LOCO pick; On-site editing keys for T BUG Backspace, 
Relative Space, Insert, Oelete and Clear. Minimal complete 
set for hand assembly use. TLEGS relocates. 

LL-2 4K Level II $ 9.95 

Includes cassette, instructions, examples. 
Add .75 each shipping, CA include 6% 

® Allen Gelder 
P.O. Box 1 1 721 
San Francisco, CA 94101 
T-BUG. TRS-80 tm Radio Shack/Tandy Corp. 



Circle 136 on inquiry card. 



TRS-80 GAMES 

T'^^GAMES CRONIES &^ T 
jy-^r OTHERS TAKE NOTE X^-^i 

Ball turret gunner: incoming fighters mix with 
twilight sky-three dimensional turret control and 
targeting sequence option. 

Descent: faithful to physics-a real time lander with 
control console graphics. Takes 1 20 minutes to land. 
Five landing operations. 

Haystack 500: rural race through haystacks and 
mud-drivers rated for times and trace difficulty. 
Simulation you can't believe! 

These programs run in 4-1 BK Level II. On screen in- 
structions and background in separate load. Any game 
above on Scotch brand tape— $ 10.00 (includes the sur- 
prise on the back). We specialize in action-write for a 
brochure of TRS-80 games, software, beepers, joy- 
sticks and other mechanical goodies. 

Four Seasons Company 
2318 Harvard Avenue 
Ft. Myers FL 33907 



Circle 135.on inquiry card. 



COMPUTER TECHNICIAN 

ENGINEERING STUDENT 

LOS ANGELES AREA 

Part time position. Must have at 
least one year of engineering educa- 
tion. Must be familiar with electrical 
measuring devices & computers. 
Good experience would be hobby 
computers or University computers. 
Should have a working knowledge of 
hardware components & ability to in- 
terface such components. Should 
also have ability to submit well writ- 
ten technical reports. 

PCI 

1 81 5 VICTORY BLVD. 

GLENDALE, CA. 91 201 

[21 3] 956-3770 



FOR TRS-80™ OWNERS 

T-PAL 

Programming Amateur's Letter 

THE "DO-IT-YOURSELF" 
SOFTWARE NEWSLETTER 

Published Monthly, We'll Teach You 
All The Latest Wrinkles - How To Get 
The Most Out of Your Computer 

Graphics • Games • Personal 

Home • Business • Finance 

And Much More! 

$24/year ... or write for FREE Details 

THE MAIL MART 

Box B 1 1 102 San Francisco, CA 941 01 



Circle 199 on inquiry card. 



Z BYTE's N 



mnmnnnnnnnQ< 



ew 
Toll-free 
Subscriber 
\ V^A.T.S. Line 

(800) 258-5485 

x >- \ \ 

To further improve service to 

our customers wc 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 PM Eastern 

Time. This applies.to calls from 

within the continental US only. 

We thank you arid ho£ o' 

forward to serving you. © . 



CROMEMCO 

AT 15% 
DISCOUNT 

• EVERYTHING ON THE 
CROMEMCO CATALOG 

• ALL NEW EQUIPMENT 
FULLY GUARANTEED 

• MANY SOFTWARE 
PACKAGES AVAILABLE 

DIGITAL DATA 
SYSTEMS, INC. 

1396 N W 65 TERR 

PLANTATION, FLA 33313 

(305) 792-3290 




MICROSETTE CO. \ 
777 Palomar Ave. ■ Sunnyvale. CA 94086 



Duplication Services 

Microsette also offers professional 
duplication services for Commo- 
dore PET and Radio Shack TRS-80 
Level I and Level II cassettes. Our 
service provides mastering, quality 
control, all material including two- 
piece box, affixing of your labels or 
supplying our blank labels and ship- 
ping. Prices start at $2.00 each in 
100 quantity. 

MICROSETrE CO. 

777 Palomar Ave. ■ Sunnyvale, CA 94086 



Circle 229 on inquiry card. 



Professional 

Real Estate Programs 

available now on cassette 
for Apple & TRS-80 II 

• Property Managment System 

(Two 8K Programs) 

1.) Expense Analysis 

2.) Income Info & Tracking 

Introductory Offer s 50 

Price After July 15, s 75 

• Home Purchase Analysis 

• Income Property Cashflow/Leverage 

• Construction Cost/Profit 

• Tax Free Exchange Model 

Separately s 20 All $ 65 



Call {213) 372-9419 for immediate COD. 
Hjj'm"' Attractive Dealer Pricing 



2045 Manhattan Avenue. Hermosa Beach, California 90254 



Circle 323 on inquiry card. 



TRIPLE E TIME MACHINE 

An IEEE 488 to S100 Bus 

Interface and Control Board. 
Included are counter-timer 
functions. Board, is addressable 
anywhere in memory or I/O. 

KIT $225 BARE $35 

GEMINI SBC 3.0 

A 2650 Microprocessor based 
single board computer for the 
S100 Bus. Tape interface, 
parallel input port, power control 
port, 3 to 7K ROM and 1 to 3K 
RAM on board. Documentation 
with BARE board. 
A KIT (IK/IK) $275 BARE $35 
B KIT $22 5 f 

MONITOR IK machine language 
monitor in 2708. Supported are: 
memory inspect and change; 
register inspect; breakpoints; tape 
load and dump; memory mapped 
video and keyboard input port, ^o 

C G ENGINEERING 

P.O. BOX 1145 
Ml LP IT AS, CA 95035 



Circle 310 on inquiry card. 



Circle 105 on inquiry card. 



Circle 74 on inquiry card. 



PEFQOM SAMPLER 




> r 



For your SS-50 bus computer — the 
CIS-30+ 

• Interface to data terminal and two cas- 
sette recorders with a unit only 1/10 
the size of SWTP's AC-30. 

• Select 30, 60, or 120 bytes per second 
cassette interfacing, 300, 600 or 1200 
bauddataterminal interfacing. 

• Optional mod kits make CIS-30+ work 
with any microcomputer. (For MITS 
680b, ask for Tech Memo TM-CIS- 
30 + — 09.) 

• KC-Standard/Bi-Phase-M (double fre- 
quency) cassette data encoding. De- 
pendable self-clocking operation. 

• Ordinary functions may be accom- 
plished with 6800 Mikbug™ monitor. 

• Prices: Kit, $79.95; Assembled, 
$99.95. 

Prices include a comprehensive instruction 
manual. Also available: Test Cassette, Re- 
mote Control Kit (for program control of 
recorders), IC Socket Kit, MITS 680b mod 
documentation, Universal Adaptor Kit 
(converts CIS-30+ for use with any com- 
puter). MIKBUG® Motorola, Inc. 



In the Product Development 
Queue . . . 

Coming PDQ. Watch for announce- 
ments. 

6809 Processor Card — With this SS-50 
bus PC board, you'll be able to upgrade 
with the microprocessor that Motorola 
designers describe as the "best 8-bit 
machine so far made by humans." 

The Electric Crayon™ — This color 
graphics system includes its own fxP and 
interfaces to virtually any microcomputer 
with a parallel I/O port. 

Printer Interlace — For your TRS-80™. 
Interface any serial RS232 printer to your 
TRS-80™ with this system. 



™ELECTRIC WINDOW, ELECTRIC CRAYON, Pilon- 
30 and Pilon-10 are trademarks of Percom Data 
Company, Inc. 

TRS-80 is a trademark of Tandy Corporation and Radio 
Shack which has no relationship to Percom Oata Company. 

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




For your data storage — Pilon-30™ and 
Pilon-10™ data cassettes 

• Orders-of-magnitude improvement in 
data integrity over ordinary audio cas- 
settes. 

• Pilon-coated pressure pad eliminates 
lint-producing felt pad of standard 
audio cassettes. 

• Smooth pilon coating minimizes erra- 
tic tape motion. 

• Foam pad spring is energy absorbing. 
Superior to leaf spring mounted pad 
which tends to oscillate and cause flut- 
ter. 

• Five-screw case design virtually pre- 
cludes deformation during assembly. 

• Price: $2.49. 




ForyourS-100 computer— the CI 812 

• Both cassette and data terminal inter- 
facing on one S-100 bus PC board. 

• Interfaces two recorders. Record and 
playback circuits are independent. 

• Select 30, 60, 120, or 240 bytes per 
second cassette interfacing, 110 to 
9600 baud data terminal interfacing. 

• KC-Standard/Bi-Phase-M (double fre- 
quency) encoded cassette data. De- 
pendable self-clocking operation. 

• Optional firmware (2708 EPROM) 
Operating System available. 

• Prices: kit, $99.95; assembled, 
$129.95. 

Prices include a comprehensive instruction 
manual. In addition to the EPROM Operating 
System, a Test Cassette, Remote Control Kit 
(for program control of recorders), and an IC 
Socket Kit are also available. 



CASSETTE SOFTWARE 

For80807Z-8u>Cs. . . 

BASIC ETC — Developed by the co- 
authors of the original Tiny BASIC, BASIC 
ETC is easy to use yet includes com- 
mands and functions required for power- 
ful business and scientific programs as 
well as for hobby applications. 9.5K bytes 
of RAM. 1 200-baud cassette and 42-page 
user's manual $35.00 

Cassette Operating System — EPROM 
(2708) COS for the Percom CI-812 dual 
peripheral interfacing PC card . . $39.95 

If you're programming on a 6800 /xC, 
you'll want these development and de- 
bugging programs written by Ed Smith of 
the Software Works: 
Disassembler/Source Generator — Dis- 
assembles SWTP Resident Assembler, 
TSC Mnemonic Assembler/Text Editor or 
Smoke Signal Mnemonic Assembler/Text 
Editor and produces compacted source 
code suitable for re-editing. Prints or dis- 
plays full assembly-type output listing. 
4K bytes of RAM. 
(Order M68SG) $25.00 

Disassembler/Trace — Use to examine 
(or examine and execute) any area of 
RAM or ROM. "Software-single-step" 
through any program, change the con- 
tents of CPU or memory location at any 
time, trace subroutines to any depth. 
2.3K bytes of RAM. 
(Order M68DT) $20.00 

Support Relocator Program — Supplied 
on EPROM, this program relocates a 
program in any contiguous area of RAM 
or ROM to anywhere in RAM. Use to 
assemble and test programs in RAM, ad- 
just programs for EPROM operating ad- 
dresses and then block move to your 
EPROM burner address. 952 bytes of 
RAM. Loads at hex 1000. 
(Order M68EP) $20.00 

Relocating Assembler & Linking Loader 

(M68AS) $50.00 

Relocating Disassembler & Segmented 
Source Text Generator (M68RS) $35.00 

Americana Plus — 1 4 tunes for the New- 
tech Model 68 Music Board in machine 
language ready to load and run. Cassette 
compatible with Percom CIS-30+ and 
SWTP AC-30. Order MC-1SW . . $15.95 

HARDWARE 

Newtech Model 68 Music Board — Pro- 
duces melodies, rhythms, sound effects, 
morse code, etc. from your programs. 
Includes manual with BASIC for writing 
music scores and assembly language 
routine to play them. Installs in SWTP I/O 
slot. Assembled & tested $59.95 

The Percom ELECTRIC WINDOW™ — 

Memory-resident and programmable, 
this video display character generator 
board for your SS-50 bus displays up to 
24 80-character lines. Features dual 
character generators, dual-intensity 
high-lighting. One programmable regis- 
ter controls scrolling. Compatible with 
standard video monitors $249.95 

SS-50 Prototype Cards: 

Large card (up to 70 40-pin ICs) $24.95 
I/O size card $14.95 




PERCOM™ 'peripherals for personal computing' 



PERCOM DATA COMPANY, INC. 

DEPT.B 

211 N. K1RBY • GARLAND, TX. 75042 



To order products or request additional lit- 
erature, call Percom's toll-free number: 
1-800-527-1592. For detail technical in- 
formation call (214) 272-3421. 



Circle 301 on inquiry card. 



BYTE July 1979 



259 



The EXPANDORAM is available 
in versions from 16K up to 64K, so 
for a minimum investment you 
can have a. memory system that 
will grow with your needs. This is 
a dynamic memory with the in- 
visable on-board refresh, and IT 
WORKS! 

• Bank Selectable 

• Phantom 

- Power 8VDC, ± 16VDC, 5 Watts 

• Lowest Cost Per Bit 

• Uses Popular 4116 RAMS 

• PC Board is doubled solder 
masked and has silk-screen 
parts layout. ^^ 



sit our new retail io 



SD EXPANDORAM 

7<Se ttttuHOte S-tOO Tfttotontf 










. 



• Extensive documentation clear- 
ly written 

• Complete Kit includes all 
Sockets for 64K 

• Memory access time: 375ns, 
Cycle time: 500ns. 

• No wait states required. 

• 16K boundries and Protection 
via Dip Switches 

• Designed to work with Z-80, 
8080, 8085 CPU's. 

EXP AN DO 64 KIT (4116) 

16K $245.00 

32K $310.00 

48K $375.00 

64K $440.00 



)ISC DRIVES 




Sugart SA400 5 1 /4" 
with attractive metal case 

S29500 

Sugart 801 
with attractive metal case 

$495.00 

Siemens FDD 200-8 8" 
double-sided 
| double density 

$599.00 



DISC CONTROLLER 
SD "VERSAFLOPPY" Kit 

The Versatile Floppy Disk ^nlu Si CQ0( 
Controller Un, y ' ° 3 



fTn\y a*? sit 



FEATURES: IBM 3740 Soft Sectored Compati- 
ble. S-100 BUS Compatible for Z-80 or 8080. Con- 
trols up to 4 Drives (single or double sided). 
Directly controls the following drives: 
f. Shugart SA400/450 Mini Floppy 

2. Shugart SA800/850 Standard Floppy. 

3. PERSCI 70 and 277. 

4. MFE 700/750. 

5. CDC 9404/9406. 

6. GSI/Siemans FDD120-8. 

34 Pin Connector for Mini Floppy. 50 Pin Con- 
nector for Standard Floppy. Operates with 
modified CP/M operating system and C-Basic 
Compiler. The new "Versafloppy" from S.D. 
Computer Products provides complete control 
for many of the available Floppy Disk Drives. 
Both Mini and Full Size. FD1771B-1 Single Den- 
sity Controller Chip. Listings for Control Soft- 
ware are included in price. ^j 



SAVE MOO 00 

DM2700S DISK & 

CABINET with 
POWER SUPPLY 

DM2700S includes Siemans 
FD120-8" Disk Drive with the 
following features: 

• Single or Double Density 

• Hard or Soft Sector 

• Door Interlock Cabinet includes: 

• Write Protect • 110V to 125V 60 Hz power supply 

• Hard Sector Detection • Data Gable 

• 500 KB/S Transfer • Fan 

• 800 KB unformated • Accepts per SCI f Shugart, Siemans 

• Bit density 6536 BP1 8" Drives 

• Sugart 800 Series Compatable DM2700 Cabinet, less Drive 

9t s 650 00 12495° $ 225°° 




<%« 



'S' 



REG. $750 SALE PRICED 



CONTINENTAL SPECIALTIES CORPORATION 




Logic Probes and Digital Pulsers 



s ^f T*> t^ 



LOGIC PROBES 

CSC logic probes are the ultimate tool for breadboard design and testing. 
These handheld units provide an instant overview of circuit conditions. 
Simple to use: just clip power leads to circuit's power supply, set logic 
family switch to TTL/DTL or CMOS/HTL Touch probe to test node. Trace 
logic levels and pulses through digital circuits. Even stretch and latch for 
easy pulse detection. Instant recognition of high, low or Invalid levels, open 
circuits and nodes. Simple, dual-level detector LEOs tell it quickly, correct- 
ly. HI (Logic "i"); LO (Logic "0">. Also Incorporates blinking pulse detector, 
e.g., HI and LO LEDs blink on or ott. tracking "1" or "0" states at square 
wave frequencies up to 1.5 MHz. Pulse LED blinks on for Vj second during 
pulse transilion. Choice of three models to meet Individual requirements: 
budget, project and speed of logic circuits. 
MODEL LP-1 

Hand-held logic probeprovides instant reading of logic levels for TTL, DTL, 
HTLor CMOS, input Impedance: 100 000 ohms Minimum Detectable Pulse: 
50 ns. Maximum Input Signal (Frequency): 10 MHz. Pulse Detector (LED): 
High speed train or single event. Pulse Memory: Pulse or level transilion 
detected and stored. _ 

LCSCModel LP-1 Logic Probe-Net Each j£fc*S5 $42.70 




MODEL LP-2 

Economy version of Model LP t Safer than a voltmeter. More accurate than 
a scope. Input impedance: 300.000 ohms. Minimum Detectable Pulse: 300 
ns. Maximum Input Signal (Frequency): 1.5 MHz. Pulse Detector (LED): High 
speed train or single event. Pulse Memory: None. ^^ ^ 

CSC Model LP-2 Logic Probe-Net Each J>4^| $23.70 

MODEL LP 3 

High speed logic probe. Captures pulses as short as 10 ns. Input Inv 
pedance: 500,000 ohms. Minimum Detectable Pulse: 10 ns. Maximum Input 
Signal (Frequency): 50 MHz. Pulse Detector (LED): High speed train or 
single event. Pulse Memory: Pulse or level transition detected and stored. 
CSC Model LP-3Loglc Probe— Net Each $TW^S $66.45 



DIGITAL PULSER 

The ultimate in speed and ease of operation. Simply connect clip leads to 
positive and negative power, then touch DP-1's probe to a circuit node; 
automatic polarity sensor detects circuit's high or low condition. Depress 
the pushbutton and trigger an opposite polarity pulse into the circuit. Fast 
troubleshooting Includes injecting signals at key points in TTL, DTL, CMOS 
or other popular circuits. Test with single pulse or too pulses per second 
via built-in dual control push-button; button selects single shot or con- 
tinuous modes LED Indicator monitors operating modes by flashing once 
for single pulse or continuously lor a pulse train. Completely automatic, 
pencil-size lab/field pulse generator for any family of digital circuits. Out- 
put: Tri-state. Polarity: Pulse-sensing auto-polarity. Sync and Source: 100 
mA Pulse Train: 100 pps. LED Indicator: Flashes for single pulse; stays lit 
for pulse train. 
CSC Model DP-1 Digital Pulaer— Net Each $?4>$B $71.20 




S100 PLUG BOARDS 

jit 



8801-1 
Plain no etched circuitry except contacts. Pro- 
duces maximum flexibility. 
1-4 5-9 

14.95 13.46 



4607 
DEC LSI-11. PDP8, PDP11. 
Heath H-11. P Pattern Epoxy 
Glass, Plug Board 8.43"x5.t 87" 
Dual 36pin OEC/HEATH 
Connectors. 
1*4 5-9 10-24 

19.95 17.96 15.96 

VECTOR-PAK ASSEMBLED 
MICROCOMPUTER CASES 

Adjustable packaging system for S-100 bus 
microcomputers, compatible with Altair 
8800 and IMSAI 8080 size cards. 

• Smart looking, deluxe cases unmarred by 
unsightly screws or fasteners- 

• Finished in dark blue textured vinyl. 

• Instantly accessible interiors with slip out 
covers. VP-1 

• Removable recessed rear and front $163.00 

P anels Shipping Weight 25 lbs 

• Fully adjustable interior moun ting 
systems for any card or card spacing wi thin 
size limitations No cutting or dril ling 
necessary. 

• Perforated bottom cover for cooler opera- 
tion 

DESCRIPTION 
Assembled case with perforated bottom 
cover. Installed mounting struts for card 
guides and receptacles or mother board. 
Cards top loaded, spanning front to back. 
Card guide (12 pair) and chassis plate sup- 
plied uninstalled. 




acts. Pro- 


88021 
Pad per 2 holes. Two ho E pads allow tack solder- 


10-24 

Mm 


ing of socket, plus second hole for component 
leads. 

1-4 5-9 10-24 




f^ 21,95 19.76 17.56 




"ANY DIP" has full power and ground planes back 
to back. Board accommodates 3, 4, 6, 9" Dips. 
1-4 5-9 10-24 

21.95 19.76 17.56 




VP-2 
$159.00 

Same as VP1 except 



PRIORITY 






4608 
Is form and size compatible with IN- 
TEL SBL80 Series and NATIONAL 
BLC 80 Series microcomputer 
boards. Power and Ground buses on 
both sides. 



1-4 

45.00 



5-9 



10-24 
36.00 



Individual tinned square pads surround most holes. 
Ideal for mounting components by "tack solder n{ 



Top of board pod free for mounting I/O connectors P° w e f Duses 



40.50 

4608-1 

Same as 4608. except plain less 



5-9 
17.95 



10-24 
15.96 



104 

34.00 



10-24 
27.20 



ELECTRONICS 

16723B Roscoe Blvd. Sepulveda CA 91343 




Terms: Visa, MC, BAC, Check, Money Order, C.O.D. U.S. Funds Only. CA residents add 6% sales tax 
Minimum order $10.00. Prepaid U.S. orders less than $75.00 include 5% shipping and handling, 
minimum $2.50. Excess refunded. Just in case . . . please include your phone no. 
Prices subject to change without notice. 
We will do our best to maintain prices thru June 1979. OEM and Institutional 

phone orders welcome (213) 894-8171, (800) 423-5633 inquiries invited 






our new retail location 



Circle 312 on inquiry card. 



HICKOK LX303 
$7495* 



^ 



...5%, 3V* digit 19 

Range DVM. 1 /z" LCD displays 

runs 200 hrs on 1 battery. 10 Meg 

Ohm Input. 1 yr. guarantee, made in 

U.S.A., test leads included. 

Available Accessories 

RC-3 1 15V AC Adapter $7.50 

CC*3 Deluxe Padded Vinyl 

Carrying Case $7.50 

VP-10 X10 DCV Probe Adapter/ 

Protector 10Kv $14.95 

VP-40 40Kv DC Probe $35.00 

CS-1 10 Amp Current Shunt $14.95 

*FREE 

Just for Asking. 
FREE BATTERY with your meter. 




hickok 1$ Sale 

DUAL-TRACE 30 MHz Oscilloscope 
Model 532 
Deluxe 10:1 Probe Set 
SALE PRICED AT 

$ 1145 00 ^nN° 



HICKOK LX303 $74.95 



Dual-Trace 30 MHz Oscilloscope 

• Built in delay line for leading edge viewing of fast risetime pulses. • ] 
Compact portable size. • 11.7 ns risetime. • Full time X4 expansion 
(horizontal position control automatically allows moving trace 4screen 
widths at all sweep times). • TEST MOST DIGITAL LOGIC CIRCUITS IN- 
CLUDING MICROPROCESSORS. • STABLE TRIGGERING UP TO 50 | 
MH2. • High and low pass trigger filters. • 11 step precision vertical at- 
tenuators. • 24 calibrated sweep times. • Analyze CB AM and SSB I 
waveforms. • Regulated power supplies for accuracy over 105-130 
VAC. 
SPECIFICATIONS 

VERTICAL RANGES: 10 mV/DIV to 20 V/DIV in 11 calibrated steps. I 
Variable control permits fine adjustment between steps. Accuracy: 
±4%. Frequency Response: DC to 30 MHz (-3 dB) DC coupled, 2 Hz to 
30 MHz (-3 dB) AC coupled. Risetime: 11.7 ns. Overs