Proceedings_of_the_Second_West_Coast_Computer_Faire_1978 Proceedings Of The Second West Coast Computer Faire 1978
Proceedings_of_the_Second_West_Coast_Computer_Faire_1978 Proceedings_of_the_Second_West_Coast_Computer_Faire_1978
User Manual: Proceedings_of_the_Second_West_Coast_Computer_Faire_1978
Open the PDF directly: View PDF
.
Page Count: 516
| Download | |
| Open PDF In Browser | View PDF |
CONFERENCE PROCEEDING'S
Jim C. Warren, Jr., Editor
March
3 - 4 - 5,
1978
San Jose,Califomia
CONFERENCE PROCEEDINGS
of the largest convention ever held
Exclusively Devoted to Home & Hobby Computing
over 300 pages of conference papers, including:
(Topic headings with approximate count of 7 1 xl0 " pages)
Friday & Saturday Banquet Speeches (16)
Tutorials for the Computer Novice (16)
People & Computers (13)
Human Aspects of System Design (9)
Computers for Physically Disabled (7)
Legal Aspects of Personal Computing (6)
Hereti c al Proposals (11)
Computer Art Systems (2)
Music & Computers (43)
Electronic Mail (8)
Computer Networking for Everyone (14)
Personal Computers for Education (38)
Residential Energy & Computers (2)
Systems for Very Small Businesses (5)
Entrepreneurs (6)
Speech Recognition &
Speech Synthesis by Computer (14)
Tutorials on Software Sy stems Design (11)
Implementation of
Software Systems and Modules ( 10)
High-Level Languages for Horne Computers (15)
Multi-Tasking on Horne Computers (10)
Homebrew Hardware (8)
Bus & Interface Standards (17)
Microprogrammable Microprocessors
for Hobbyists (18)
Amateur Radio & Computers (11)
Commercial Hardware (8)
plus ---Names & addresses of the 170+ exhibitors at the Computer Faire
Order now from:
Computer Faire
Box 1579
Palo Alto CA 94302
(415) 851 -7664
Proceedings :
Shipping & Handling :
$12.00
.68
($11.95, plus a nickel , if you prefer)
(Write for shipping charges ouside U.S.A.)
Pa ment mu st accom an
the order.
Payment must accompany the order.
Inside California:
An 8%" x 11" So[tbound Book
mputer Faire
BOX 1579, PALO ALTO CA 94302
000
(415) 8 51-7664
CONFERENCE PROCEEDINGS
Jim C. Warren, Jr., Editor
THE SECOND WEST COAST COMPUTER FAlRE
held in
The San Jose Convention Center
in
San Jose, California
March 3-5, 1978
COMPUTER F AIRE
Box 1579
Palo Alto CA 94302
(415)851-7075
~
Computer Faire, Inc.
1978
all rights reserved
printed in the U.S.A.
ISBN
0-9304l8-0l-X
Library of Congress Catalog card # 78-53026
,,
'--
These Proceedings were made available, on-site, at the Second West Coast Computer Faire
because of the heroic efforts of Marc Kindree, Nancy Hamilton, Dave Brown, Gary Markesen,
and the other humble super-humansworking at Nowels Publications, Menlo Park, Califoniia;
because of the super-human efforts of Mort Levine, Gil Anderson, Shirley Boggs, Chris Yanke,
Mfte Dawson, John Scroggs, and the other humble heroes working at Suburban Newspaper
Publications, Cupertino, Califorria: because of the humbling efforts of Toby Forshee of
Redwood Trade Bindery, Redwood City, California: and, of course, Bill Baumann. Finally I
the Procudlngs could have seen the light of night without the aid of Deft Malloy, and,
in fact, often did.
PRE F ACE
As a widespread movement, "personal computing" began around January of 1975. It
began as a hobby activity, involving only the dedicated computer hacker and elektroniker
who had the time, talent, and patience to deal with the relatively sophisticated electronics that was available only in kit form, with -- at most -- minimal documentation,
and virtually no software.
Within less than three years, we saw the entry into the markatplace of several fully
assembled, ready-to-use microcomputers, priced as consumer products for the interested
technocrat. In noticeably less time than that, we saw the availability of a variety of
usable -- though certainly limited-capability -- systems software.
That is, by 1977, personal computing had moved beyond the dedicated computer hobbyis
and was beginning to be accessible to the intelligent, logically-oriented novice.
Now -- March, 1978 -- we are seeing the first signs of true "computer power for the
people", as I believe these Conference Proaeedings of the Seaond West Coast Computer Fairillustrate.
In the First West Coast Computer Faire, that took place in April, 1977, we had
slightly over a day of Conference activities regarding very-low-cost computers in education. This Second Faire has over two days of Conference sessions devoted to the topic.
Last year, we had two talks concerning the topic that is perhaps the ultimately
"personal" application of computers -- computers for the physically disabled. This year,
we have a full day of sessions addressing this topic, including demonstrations of several
operational devices. Additionally, the commercial exhibits include several such demonstrations of prototype aids for the physically handicapped.
tn the 1977 Faire, a Conference section addressed the potential of networking personal computers. This 1978 Faire -- less than a year later -- includes details of the
protocols, and demonstrations of a functioning personal computing network facility.
Last year, there were few talks concerning the entrepreneur wishing to explore this
new marketplace, and only one talk addressing microcomputing applications in business.
This year, half-day sessions address each of these topics, presenting both ideas and the
results of experience in these areas.
Though there have been something in the order of 30 other conventions addressing
the topic of home and hobby computing, to date, the Computer Faire remains unique in the
fact that it publishes the abstracts and full-text papers of most of the Faire speakers.
We set this as a major commitment when we created the first Faire; we are continuing that
commitment for the second Faire. These Proaeedings are the result.
The papers herein were -- at most -- minimally refereed. As was true of the papers
in the first Proaeedings, they exhibit a wide range in quality. However, they also
exhibit a timeliness that we feel is essential in a technical area moving as rapidly as
personal computing is -- a timeliness that looks askance at the year-and-more turn-around
time for obtaining publication in the many heavily-refereed, academically acceptable
publications. Additionally, these Proaeedings illustrate the viewpoint that one need not
be "academically acceptable" to do interesting and challenging experimentation. They
also illustrate the view that "novice n is a relative term, and that "state of the art n
has many dimensions.
Jim C. Warren, Jr.
Woodside, california
78 February 18
3
JIM WARREN, Faire Chairperson
345 Swett Road
Woodside, California 94062
&
Editor, Dr. Dobb's Journal of Computer
Calisthenics & Orthodontia
People's Computer Company
Box E
Menlo Park, California 94025
ROBERT REILING, Faire Operations Coordinator
&
Editor, Homebrew Computer Club Newsletter
Homebrew Computer Club
Box 626
Mountain View, California 94042
RICK BAKALINSKY, designer
Box 933
Menlo Park CA 94025
&
willing co-pilot for flights of fancy
1055 Pine 3, Sweet I
Menlo Park CA 94025
TABLE OF CONTENTS
Preface, Jim C. Warren, Jr.................................................................... 3
Computer Faire Organizers ..........................................................•........ 4
Table of Contents ......................................................................... 5
BANQUET PRESENTATIONS
Don't Settle for Anything Less (biographical sketch), Alan Kay ...................................... 9
Significant Personal Computing ~vents for 1978, Adam Osborne ..................................... 10
Dinky Computers Are Changing Our Lives, Portia Isaacson ......................................... 13
AN INTRODUCfION FOR THE ABSOLUTE NOVICE
Beginner's Guide To Computer Jargon, John T. Shen ............................................. 17
Everything You Never Wanted To Ask About Computers Because You Didn't Think You'd Understand It Anyway, Or,
A Talk For People Who Got Talked Into Coming Here By Someone Else, Jo Murray ........................ 19
Introduction to Personal Computing, A Beginners Approach, Robert Moody ............................. 24
COMPUTERS FOR THE PHYSICALLY DISABLED
Electronics for the Handicapped (brief abstract), Robert Suding...................................... 31
Microcomputer Communication for the Handicapped, Tim Scully .................................... 32
Speech Recognition as an Aid To The Handicapped (brief abstract), Horace Enea and John Reykjalin ............. 43
COMPUTERS FOR THE VISUALLY HANDICAPPED
Microprocessors in Aids For The Blind, Robert S. Jaquiss, Jr....................................... .44
Blind Mobility Studies With A Microcomputer, Carter C. Collins, William R. O'Connor and Albert B. Alden ........ .47
The Design of A Voice Output Adapter For Computer, William F. Jolitz .........................•....•. 58
Development of Prototype Equipment To Enable The Blind To Be Telephone Operators, Susan Halle Phillips ....... 65
Microcomputer-Based Sensory Aids For The Handicapped, J.S.Brugler ................................. 70
EXOTIC COMPUTER GAMES
Ambitious Games For Small Computers, Larry Tesler............................................. 73
Epic Computer Games: Some Speculations, Dennis R. Allison and Lee Hoevel ............................ 76
Create Your Own (Computer) Game, An Experience in Synectic Synergistic Serendipity (abstract), Ted M. Kahn ..... 78
Psychological Tests With Video Games, Sam Hersh and AI Ahumada ................................... 79
5
COMPUTERS IN THE ARTS
Computer Art and Art Related Applications in Computer Graphics: A Historical Perspective and Projected Possibilities,
Beverly j. jones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -. . . . -. . . . . . . • . . . . . . . . . . . . . ... -. . . . . . . . . 81
Microprocessor Controlled Synthesizer, Caesar Castro and Allen Heaberlin ......................•........ 85
Designing Your Own Real-Time Tools, A Microprocessor-Based Stereo Audio Spectrum Analyzer for Recording Studios,
Electronic Music, And Speech Recognition, Byron D. Wagner ........... -. ..... ~ ..... ~ ......•.....•.. 96
LEGAL ASPECTS OF HOME COMPUTERS
Personal Computing and the Patent System, David B. Harrison ............•.•..••.....•..••••..•. ~ .• 105
Copyright and Software: Some Philosophical and Practical Considerations, Kenneth S. Widelitl .....•••.••..•.• 115
WRITING ABOUT COMPUTERS
Becoming A Successful Writer About Computers, Ted Lewis ..........................•..•......... 117
Writing A User's Guide, Douglas j. Mecham .........................................•.....•.. 119
Editing and Publishing A Club Newsletter, Richard J. Nelson .............................•......... 125
COMPUTER ESOTERICA
Deus Ex Machina, or, The True Computerist, Tom Pittman ........•............................•.. 132
Peoples' Capitalism: The Economics of the Robot Revolution, James S. Albus ......................•.... 135
Thoughts on the Prospects for Automated Intelligence, Dennis Reinhardt .............................. 140
Brain Modeling and Robot Control Systems, James S. Albus ......................•........•..•..•. 144
- -COMMUNICATfONS-NETWORKS-&-PER-SONAL COMPtrfERSA Peek Behind the PCNET Design, Mike Wilber................................................ 153
Communication Protocols for a Personal Computer Network, Ron Crane ...........•........••....•.... 156
PCNET Protocol Tutorial, Robert Elton Maas ......................................•.......... 159
PUBLIC-ACCESS COMPUTER CENTERS
Micro's In The Museum: A Realizable Fantasy, Disneyland On Your Doorstep?, Jim Dunion .............•.... 169
The Marin Computer Center: A New Age Learning Environment, David and Annie Fox ..........•.......... 173
PERSONAL COMPUTERS FOR LEARNING ENVIRONMENTS
Personal Computers and Learning Environments: How They Will Interact, Ludwig Braun ..•..••........•..•. 177
Personal Computers and Science Museums(brief abstract), Arthur Luehrman .....................•.•••.. 178
Computers for Elementary School Children (brief abstract), Bob Albrecht ..............•...........•... 179
Bringing Computer Awareness To The Classroom, Liza Loop ...............•..•.••.•......•...••... 180
Implications of Personal Computing For College Learning Activities, Karl L. Zinn ..................•...... 182
Getting It Right: New Roles For Computers In Education, Thomas A. Dwyer............•..•....•..•..•. 193
The Role of the Microcomputer in a Public School District, Peter S. Grimes ............................. 195
COMPUTERS IN EDUCATION
-Microcomputers in a High School: Expanding Our Audience, William J. Wagner .....•..............•..... 198
Introducing the Computer to the Schoolroom, Don Black ..........•.........................•.... 203
Education or Recreation: Drawing the Line, William P. Fornaciari, Jr.................•........•..•.... 206
Learning With Microcomputers, Richard Harms................... ' ............................• 211
Back to BASIC (Basics), David M. Stone ..........................................•......... 213
A Comprehensive Computer Science Program for the Secondary School Utilizing Personal Computing Systems, Melvin L.
Zeddies ..............................................................••........•. 216
Microprocessor Computer System Uses in Education(Or, You Can Do It If You Try), Robert S. Jaquiss, Sr........• 223
The Computer in the Schoolroom, Don Black ................................................. 232
6
BUSINESS COMPUTING ON SMALL MACHINES
So You Want To Program For Small Business, Michael R. Levy ..................................... 239
Budgeting for Maintenance: The Hidden Iceberg, Wm. J. Schenker ................................... 245
Microcomputer Applications in Business: Possibilities and Limitations, Gene Murrow....................... 254
MICROLEDGER: Computerized Accounting for the Beginner, Thomas P. Bun ........................... 261
FOR COMPUTER BUSINESSPEOPLE & CRAFTSPEOPLE
Money For Your Business-Where to Find It, How to Get It, Don Dible............. "................... 267
Selling Your Hardware Ideas: How To Start and Run A Manufacturing Oriented Computer Company, Thomas S. Rose 271
Bringing Your Computer Business On-Line, Stephen Murtha, Elliott MacLennan and Robert Jones .............. 276
MICROCOMPUTER APPLICATIONS
Toward a Computerized Shorthand System, W.D. Maurer ......................................... 278
Microcomputer Applications in Court Reporting, Douglas W. DuBrul ................................. 285
Real Time Handwritten Signature Recognition, Kuno Zimmermann .................................. 291
Input Hardware Design for Consumer Attitude Research With a Microcomputer, H.P. Munro .................. 295
Improving Name Recognition and Coordination in Video Conferencing, David Stodolsky .................... 301
The Bedside Microcomputer in the Intensive Care Nursery, Robert C.A. Goff ............................ 303
An Automated Conference Mediator, David Stodolsky ........................................... 307
SPEECH INPUT & OUTPUT
Synthetic Speech from English Text (brief abstract), D.Lloyd Rice ................................... 317
Machine Recognition of Speech, M.H.Hitchcock ............................................... 318
COMPUTERS IN AMATEUR RADIO
SSTV Generation by Microprocessors, Clayton W. Abrams ........................................ 321
A Real Time Tracking System for Amateur Radio Satellite Communication Antennas, John L. DuBois ........... 325
HARDWARE & SOFTWARE STANDARDS
Microprocessor Standards: The Software Issues, Tom Pittman ...................................... 343
Proposed IEEE Standard for the S-100 Bus, George Morrow and Howard Fullmer ......................... 345
BREWING HOME HARDWARE
Two Cheap Video Secrets, Don Lancaster ................................................... 362
A Recipe for Homebrew ECL, Chuck Hastings ................................................ 370
N-Channel PACE 16-bit Microprocessor System, Ed Schoell. ...................................... 383
DESIGNING WITH MICROPROCESSORS
Microprocessor Interfacing Techniques, Rodnay Zaks and Austin Lesea ................................ 387
Testing for Overheating in Personal Computers, Peter S. Merrill ..................................... 390
COMMERCIAL HARDWARE
Interfacing a 16 Bit Processor to the S-100 Bus, John Walker ....................................... 394
Single Chip Microcomputers for the Hobbyist, John Beaston ....................................... 402
The Disystem: A Multiprocessor Development System with Integrated Disc-Oriented Interconnections, Claude Burdet. 406
A Point-Of-Sales Network, Samuel A. Holland ............................................... 423
HIGH LEVEL LANGUAGES & TRANSLATORS
A Short Note on High Level Languages and Microprocessors, Sassan Hazeghi and Lichen Wang ............ 429
Compiler Construction for Small Computers, R. Broucke ..................................... 441
Table Driven Software: An Example, Val Skalabrin ......................................... 445
Design Considerations in the Implementation of a Higher-Level Language, William F. Wilkinson ............ 451
An Arithmetic Evaluator for the SAM-76 Language, Karl Nicholas .............................. 460
BLOCK STRUCTURED HIGH LEVEL LANGUAGES FOR MICROCOMPUTERS
ALGOL-M: An Implementation of a High-Level Block Structured Language for a Microprocessor-Based Computer
System, Mark S. Moranville .................•.......••.•.....••..........••..•...•.. 469
SPL/M - A Cassette-Based Compiler, Thomas W. Crosley .......•....•....••.•.••....•..•...•.• 477
An Experimental PASCAL-like Language for Microprocessors, H. Marc Lewis ...••...•..•..••••••..•• 489
An Introduction to Programming in PASCAL, Chip Weems ........•.......••••..•.•••••••••••• 494
7
FREE SOFTWARE in DR. DOBB'S JOURNAL
({
({
COMPLETE SYSTEMS &
APPLICATIONS SOFTWARE
j.,
User documentation, internal specifications,
annotated source code. In the two years of
publication, DDJ has carried a large variety of
interpreters, editors, debuggers, monitors,
graphics games software, floating point
routines and software design articles.
~
({
({
({
)}
)}
*~
)}
)}
)}
INDEPENDENT CONSUMER EVALUATIONS
{{
{{
{{
{{
{{
{{
({
PRODUCT REVIEWS
)}
& CONSUMER COMMENTS
)}
)}
}}
)}
}}
Dr. Dobb's Journal publishes independent
evaluations-good or bad- of products being
marketed to hobbyists. It is a subscribersupported journal. Dr. Dobb's carries no paid
advertising; it is responsible only to its
readers. It regularly publishes joyful praise
and raging complaints about vendor's
prod ucts and services.
NUMBER 8
po box 6528 denver, colorado 80206 (303) n7-7133
)}
"THE sof'ware source for microcomputers. Highly recommended."
Philadelphia Area Computer Soc.
The Data Bus.
It 1S not very often that there is a journal/newsletter that the Digital Group
is able to recollll11E'nd without some hesitation (and we get them all). However,
Dr. Dobb' s Journal of Computer Calisthenlcs & Orthodontia is one pleasant
exception. Jim Warren, the edi tor, has put together a good concept and is
managing to follow through very well indeed. There is no advertising in the
~
It is supported solely on subscriptl0ns. That also meCans that
manufacturers have zero leverage over the content of the magazine. The Journal' §
pt~marY'-- p>irpo§-e-i5--to--pl=e-sign-~ficant soft_reintt)the publit:' da!IIo-ip--Ml4 -to
provide a communications medi um for interested hobbyists. The apprua,:h is
pz-ofessional and they are growing quickly.
"It looks as if it's going to be THE
forum of public domain hobbyist
software development.
(In case it might appear otherwise to some people, there is no official link
whatsoever between the Digital Group and Dr. Dobb's Journal - we've taken our
lumps as appropriate just like everyone else when Jim felt they wer-- justi:i"d.)
"The best source for Tiny BASIC and
other good things. Should be on your
shel f."
The Computer Hobbyist,
North Texas (Dallas) Newsletter
We think Dr. Dobb' s Journal is here to stay and
for everyone in the hobbyist world of comFu~er5.
~
pub 1 ication that is a must
Tlon't miss it!
~
'* '* '* '*"
Rating- Region Association of
Toronto
CdmputetEiifhusiasts (TRACE),
Newsletter
& LOTS MORE!
Please start my one-year subscription hen issues) to Dr. Dobb's Journal
of Computer Calisthenics & Orthodontia and bill me for just $12.
NAME
ADDRESS _____________________________
*Hot News &
CITY/STATE __________J..ZIP ___________
Raging Rumor
*Systems Projects
Unconditional Guarantee: If you ever wish to discontinue your
subscription for any reason, we will refund the complete amount for
the remainder of your subscription.
OVisa
o Masterchaige
Card Number _ _ _ _ _ _ _ __
Expiration Date ________
Signature ___________
Outside the U.S., add $4 for surface postage. Airmail rates on request.
,
Mail this coupon or a facsimile to: Dr. Dobb'sJournal, Dept 56,EI Camino Real, Box E, Menlo Park CA 94025
-~----~--------------------------------------
DON7 SETTLE FOR ANYTHING LESS
Alan Kay
Xerox palo Alto Research Center
3333 Coyote Hill Road
Palo Alto CA 94304
Biography
As a child. Alan Kay found himself equally attracted to the arts and sciences. In
fact. he has never been able to discover any important distinction between the two.
A short stint as an illustrator and professional musician was followed by the pursuit
of mathematics and biology, occasionally interrupted by involvement in theatrical
productions.
Eventually he discovered that the world of computers provided a satisfying
environment for his blend of interests.
A PhD (with distinction) from the
University of Utah led to a research position at Stanford University and then to the
Xerox Palo Alto Research Center where he is a Principal Scientist and Head of the
Learning Research Group.
In 1967-69, while at the University of Utah with Ed Cheadle of Memcor Inc., he
designed the FLEX Machine. the first higher-level personal computer. At Xerox he
started the Learning Research Group, a ten-year project to produce Dynabook, the
personal computer of the 1980's. He is the initial designer of Smal/talk, the
programming system of the Dynabook.
Whenever he can he designs musical instruments, cooks, and plays tennis.
Selected Writings
f~EX_Mgf!l!!!~
FLEX, A f~exible EXtensible Language, Tech. Rep. 4-7. C.S. Dept. U. Utah, 1968
The Reactive Engine, PhD Thesis, C.S. Dept U. Utah, 1969
Early !2x!J.g!!.QQk and §.!!1gUfgl!
A Persona! Computer for Children of All Ages, ACM Nat'( Con., Boston, Aug 1972
A Dynamic Medium for Creative Thought, NCfE Nat'l Con., Minneapolis, Nov 1972
Vintage_!2x!!g!!..QQ!c llnd §.!!1glUgl!
Personal Computing, Con. 20 yrs of Com. Sci.. U. Pisa, Italy, June 1975
Personal Dynamic Media, wi A. Goldberg, Xerox PARe (1975)
, wi A. Goldberg, exerpts: IEEE Computer, Mar 1977
Teaching Smalltalk, wi A. Goldberg, Xerox PARC, June 1977
Microelectronics and Personal Computers, Scientifk Americ.m, Sept. 1977
WEST COAST COMPUTER FAIRE
9
BOX 1579, PALO ALTO CA 94302
"SIGNIFICANT PERSONAL CO!1PUTING EVENTS' FOR 1978"
Adam Osborne, President
OSBORNE & ASSOCIATES, INC., 630 Bancroft Way, Berkeley, CA
94710
Summary
one to believe that the 8041 and 8741
are simply:variations of the 8048,
aimed at some obscure corner of the
market. Nothing could be further
from the truth. The 8041 and 8741
are significant devices because they
have clearly filled a need. Let us
explore this need. The concept of the
one-9hip microcomputer was easy enough
to grasp. Based on the high sales of
the two-chip F8 configurations, the
economics of having a very low-cost,
high-volume, low part-count microcomputer were self-evident. But this onechip microcomputer provides a small,
isolated logic system that may well
exist on its own. A more subtle and
troublesome problem is the sub-logic
function, characterized by the device
controller. It is easy enough to identify device controllers such as floppy
disk controllers, etc. Any microcomputer system will contain one or more
of these peripheral devices, each of
which needs its own interface logic.
UnfortunatelY, this interface logic
must usually be custom designed, resulting in support functions costing
far more than the Central Processing
Unit. This is a problem which is more
-signi-fieant than-might--a-"t---:fi-rs-t----appear,since microprocessors are being used
in such a wide and varied set of circumstances. Thus, we are not simply
talking about peripheral devices such
as f10ppy disk printers and video displays - we are talking about an endless
and probably unknown set of interfaces.
The 8041 and 8741 address themselves
to this sub-logic, interface market.
Irrespective of what the CPU and the
peripheral may be, an 8041 will generate the necessary interface "intelligence, providing this interface intelligence can work within the speed, memory
and I/O constraints of the 8041. To
complete the effectiveness of the 8041,
the 8741 allows you to generate interfaces (initially in low volume) by using
an erasable programmable read-only
memory to hold programs as they are
developed.
This paper examines the principal microprocessor achievements of
1977, and forecasts significant events
for 1978. The emphasis is on semiconductor parts that have been developed
rather than on home computing system
hardware or software. The three most
significant parts to be developed and
shipped in 1978 are identified.
The recipient of the White Elephant Award for achievement and personal computing will be announced at
the dinner. This award is described
in the paper. In order to be consistent with the strange logic of the
semiconductor industry, the White
Elephant Award is an award for outstanding achievement rather than an
award for lack of achievement, as the
name might suggest.
Significant Developments from 1977
I would like to summarize what
I believe to be the most significant
microcomputer industry achievements
of 1977, while looking at implications for 1978.
At the level of sem1conductor
components, 1977 was a remarkable
year in terms of product announcements and a pretty good year in
terms of products actually being
shipped. Let us look at the significant semiconductor developments
of 1977.
In 1977 the one-chip, 8-bit
microcomputer became a reality.
Mostek started to ship the 3870 a one-chip F8 - in volume. Intel
followed closely behind with the
8048 family of one-chip microcomputers. The 8048 family is remarkable for the presence of the 8748
series, which provides erasable
programmable read-only memory on
the microcomputer chip. This is
a very significant industry first.
The 8041 and 8741
tions of the 8048 that
specially identified.
reading of data sheets
We select the 8741 as the most
significant part to be introduced and
shipped in 1977.
are varianeed to be
A casual
might lead
WEST COAST COMPUTER FAIRE
10
BOX 1579, PALO ALTO CA 94302
The next area of significant
development has been the lG-bit ,
microprocessor. Fairchild introduced
the 9440 and started to ship this
microprocessor, while Data General
introduced and started to ship the
Mic~oNova.
Both the MicroNova and
the 9440 are one-chip implementations of Data General No.va Central
Processing Units. The MicroNova is
an implementation of the Nova 3, while
the" 9440 is an implementation of the
Nova 1200.
Specialized processors have
also begun to appear. Advanced Micro
Devices has introduced the Am95ll,
wh~.ch is an arithmetic processor.
This very significant device finally
makes it practical to use microprocessors in intensive computation
applications. The Am95ll brings
trigonometric functions, logorithms,
exponentials and multiprecision
arithmetic to microcomputer systems.
We select the Am95ll as the second
most significant part to be introduced
during 1977.
The next area where we have seen
very significant developments is in
support circuits for microprocessors.
A wealth of parallel I/O devices,
serial I/O devices, DMA controllers,
priority interrupt controllers and
peripheral interface circuits were
introduced. We believe the most
signi~icant interface circuit to be
introduced and shipped is the Z80 SIO
device. The Z80 DMA device should
also be mentioned, but zilog is not
yet shippi~g it.
stantial deliveries of TMS9900's and
Fairchild 9440's. Given these developments, what impact, if any, can we
expect on personal comptlting?
The answer, surprisingly, is very
little. Even now, three years after the
first horne computers appeared, there is
a crippling shortage of software, even
to support 8080-based microcomputers.
If a manufacturer were to switch in 1978
to a new l6-bit microprocessor, it is
likely to be three or four years before
this new microcomputer system has any
reasonable amount of software support.
Thus, the "software prop" is likely to
keep existing microcomputers in.comrnercial.production for many, many years to
come. This "software prop" will be reenforced by the fact that, for many applications, the existing 8080-based microcomputer systems are more than adequate
in terms of computing power; any switch
to more powerful microcomputers would
have little tangible economic advantage.
Even for those applications where more
computing power is needed, there is
always the alternative of moving to new
8080A Central Processing Units that are
faster - and therefore more powerful rather than moving to entirely new microprocessors and instruction sets.
It is easy to fall into the trap
of looking upon new microprocessor
products as "new waves" which replace
everything that came before them. I
believe this is a very inaccurate
visualization of reality. It is more
accurate to think of new microprocessor
products opening up new markets - for
which older microprocessor products
were inadequate. Once some particular
level of microprocessor product has been
In 1977, Mostek became the first
adopted, it will be used for a long time
company to start shipping l6K-bit dyto come because the .cost of re-engineernamic RAMs in volume. Here again is
ing to take advantage of new, more recent
a development whose significance can
easily be overlooked. Why get excited developments is simply not realistic.
That is to say, new personal computers
about just another memory device?
were manufactured when 8080A Central
Very large, low-cost memory devices,
as they appear in the future, are like- Processing Units and support .circuits
made them economical in the first place.
ly to revolutionize more industries
Since 8080A Central Processing Units
than any other single development.
and support circuits were adopted in
I single out the music industry - the
personal computers, they will be the
recording and reproduction of sound mainstay of personal computing for many
as the one likely to experience devayears to corne. The fact that an 8086
stating changes in the future.
will be available in 1978 does not mean
Although 1977 was a year for
that three years from now all 8080Aannouncements and product releases,
based systems will be obsolete. Far
1978 is likely to see even more drafrom it. The 8086 is going to have to
matic new microprocessor-related promake its own new markets, and will have
.ducts. Specifically, 1978 will be the little impact on established markets
year of the l6-bit microprocessor for past microprocessors. Therefore, if
with the announcement and delivery of
you are looking' at the personal computin,
Intel 8086's, Zilog Z8000's, and sub~
industry and deciding when to jump in,
WEST COAST COMPUTER FAIRE
11
BOX 1579, PALO ALTO CA 94302
or input from the personal computing
community.
your answer is: as soon as you find
products you can use. Do not wait
until next year for better products
which may appear, because next year
you will be waiting for the following year, and you may finish up waiting forever.
In recognition of~the individuals
who made the selected chip possible,
the award will list these individuals
in addition to the person receiving
the award.
The fact that new developments
will not cause old developments to
become obsolete is made more certain
by the huge customer base for personal computing products which
already exist. The personal computing market buoyancy is attested to
by the present show, and by the
success of so many other shows
around the country. This success
has resulted from a cOmbination
of eager customers and willing
visionaries who had the foresight
to see what was coming and the
vigor to help it on its way. My
principal purpose tonight is to
recognize the individual who I
believe has done more in the past
year to further personal computing
than anyone else. The name of
this individual will be announced
at the dinner and not in this
paper. To this individual, I
plan to present a singularly apt
award.
In order to be apt, this
award must recognize the perversities of the semiconductor industry.
Instead of rampant inflation, this is an industry of rampant deflation.
Instead of protecting every new product from
Competi fTo-n, -this--IndusEiy runs
out to find a second source, who
is given all necessary secrets to
compete effectively. Since everything is back-to-front in this
industry, it is only appropriate
that an award for achievement be
given a name more, aptly associated
with lack of achievement. Therefore, the annual award which I plan
to present will be known as the
White Elephant Award. But, instead
of representing the biggest waste
of effort, my White Elephant award
will recognize the best-spent effort.
The award consists of an 8741 chip,
which is my choice for Chip-of-theYear, mounted on a suitable plaque
with a microscopic White Elephant
cemented onto the surface of the
chip. I plan to award this trophy
annually, using the Chip-of-theYear for each year's trophy.
I
furthermore plan to choose the chip
and the recipient of the award
entirely on my own, without letting
my judgment be clouded by committees
~WEST
COAST COMPUTER FAIRE
12
BOX 1579. PALO ALTO CA 94302~
DINKY
I
COMPUTERS ARE CHANGING OUR LIVES
Portia Isaacson, Tne Micro Store
634 S. Central Expressway, Richardson, TX 75080
(2l4) 231-1096
Co~puters can now (or will soon be)
found in cars, sewing machines, tombstones,
typewriters, and pinball machines. The age of
the abundant computer is here. As it completely unfolds we will think we have entered
a land of science fiction. Dinky computers
will permeate virtually all aspects of our
lives. Computers will be used in old ways by
people and businesses who couldn't afford them
before and in many exciting new innovative
ways that we couldn't even have thought of before.
Computers have been around for some time.
Why all the fuss now about change? The answer
is simple. We now realize that computers can
be useful to individual people. A few years
ago the price of a computer dropped past a
threshold that caused a lot of people to understand that the computer was a personally useful tool. A few people understood before, but
now that idea is so popular that it has some
of the aspects of a religion. The idea of the
personal computer certainly has a large and
active following.
The changes brought about by dinky computers will be many and not all will be good.
Change will be rampant in the computer industry. But few institutions or individuals
will escape without change. Businesses both
large and small, the U.S. economy, labor,
women, the handicapped, the data processing
professional, government, the U.S. Postal
Service, and our educational system are among
those that will be changed by dinky computers.
Business, Labor, and the Economy
Small businesses can make use of dinky
computers in a variety of ways--most of them
scaled down versions of the same applications
in big businesses. Applications common to
most small business include: general ledger,
accounts payable, accounts receivable, payroll, and inventory control. Some businesses
will find a use for word-processing in the
generation of letters and reports. Mailing
list maintenance and label generation are
popular computer uses. A small business
I
Of the many words Ted Nelson has given us,
is one of the best.
~his
WEST COAST COMPUTER FAIRE
13
might find a computer useful in scheduling
people or equipment. Some businesses will
have applications speCialized to their own
business such as a personnel agency's maintenance and search of an applicant data base
or a savings and loan company's calculation of
amortization schedules. Innovative applications might include sales forecasting, electronic mail for ordering, building security,
energy conservation, games as sales techniques,
and graphics in advertising displays.
A typical configuration for a small
business computer system including 32K bytes
of memory, dual floppy disks and a continuous
forms printer costs less than $5 per day when
amortized over three years. Small businesses
commonly find that a computer costing less
than $5 per day can replace one or more
employees and can give the management more
timely and accurate information than they
were getting before. In general, the effect
of the computer on the small business is to
improve productivity while reducing costs
primarily by reducing the number of employees
in relatively unskilled positions. By reducing overhead an increasing number of small
businesses will find themselves viable. This
experience is not unique to small businesses
but is the same as that of large corporations
which preceded them in the use of business
computers. Future applications could include
conferencing and working at home.
The effects of the managers' use of the
dinky computer will be many. The productivity
of clerical employees will be increased. The
effect of an easily accessible private computer will be to improve budgeting and project
control techniques. Electronic mail will decrease the need for unskilled labor and decrease the use of the post office.
The same $5 per day business computer
system found so helpful in small businesses
will also be useful to the manager in the
large corporation. Now a manager at nearly
any level can afford his or her own private
computing resource. One of the first applications will be word processing for the
preparation of letters, memos, and reports.
Other immediate applications include:
budgeting, project control, maintenance of
specialized data bases, sales forecasting,
BOX 1579, PALO ALTO CA 94302
scheduling, reminders, mailing or routing list
maintenance, and electronic mail.
The overall effect of the use of low-cost
computing in business will b.e an increase in
.national productivity and an improved economic
position for the U.S. in the world marketplace.
The U.S., as the undisputed leader in low-cost
computing technology, will be able to use this
technology as a principal weapon in any future
economic war.
The labor force will experience both
positive and negative effects of low-cost computing. On the positive side, there will be
reduced need for people to do boring work.
However, there will be a reduction in the demand for relatively unskilled labor such as
clerical, mail service, and bookkeeping.
Since·most of these jobs are now filled by
women, women will be hardest hit by the reduced demand for unskilled labor. Countering
the increasing demand for programmers will be
the fact that entry-level programmers will be
in plentiful supply since low-cost computing
will make computer education, even selfeducation, widely available.
Now computer-inventiveness is in the
public domain. Before only large corporations
and well-endowed universities could invent
products containing computers. Now the man or
woman on the street has economic access to
computers and can use them in inventions.
I'm sure they will. The same inventive talent
that brought us the automobile and the electric light will bring us "intelligent" computer-based products that are now beyond our
imagination. The businesses springing up
around these inventions will employ people and
further improve the U.S. economic position.
The Computer Industry
As the demand for dinky computers goes
up, the demand for gargantuan computers will
come down. It will often be found that new
applications, or portions of new applications,
are more economical on small computers. The
traditional corporate demand for bigger and
bigger computers will slacken as fewer new
applications are developed for it. Additionally time-sharing use of the big corporate
computer will be replaced by small computers
in instances that are not locked in by data
bases or applications software.
The corporate data processing center
will lose control of the data processing
function as more and more departments own
their own computers. The DP center will do
less new development since new projects will
be done at the department level if possible.
The DP center may find a new role when departments realize that they want to access the
central data base and communicate with the
computers of other departments. DP's new
role will be in planning the distributed
WEST COAST COMPUTER FAIRE
14
data base and communications networks. This
role will not be easy since departments will
realize that information is power. The
struggle over how to distribute the data base
will be a power struggle between departments
with DP caught in the middle.
Now that computers can be owned by individuals or dedicated to the use of an individual in a corporation, there is little need
for time-sharing. In fact, time-sharing was
invented as an attempt to give the illusion
that each user had his or her own computer.
Now that each user can have his or her own
computer, time-sharing is no longer needed and
the overhead required by sharing makes it uncompetitive. Present time-sharing customers
will, of course, stay with time-sharing if
they are locked in by software or data bases.
Additionally, there are a few applications
that may need resources too great for today's
dinky comput er •
The big computer will not go down without a fight. We can expect to see significant price cuts in order to keep the
gargantuan machine alive. But ultimately
the giants will be kept only to run programs
too hard to change. Most new architectures
will be based on unshared computers, shared
large disks, and shared fast peripherals
connected. into networks. The heyday of distributed computing will have arrived.
The new computer industry will see many
opportunities. Computer manufacturing and
distribution will be feasible small businesses.
The new small companies with low overhead will
keep the price of computing law; and, in fact,
may provide the solution to the problem of the
present near-monopoly in the industry. There
will· be a new ec-onomics associated with mass
produced software. A complex software package
may sell for just a few dollars because it wil
be sold thousands of times. Individuals may
be able to 'capitalize on their efforts in
software creation'through royalty payments in
much the same way as authors of books do now.
The data processing professional will be
faced with many changes. The data processing
department will need maintenance programmers,
communications and network experts, and data
base designers. Programming will be done in
user departments where application knowledge
will be at a premium. So programmers who
don't fit into the new DP department will find
themselves in user departments specializing
in a particular application area. This
specialization will certainly limit their
mobility.
Although lower-cost computers will mean
more computers and a great demand for programmers, the gr'eater demand will be offset
by a greatly increased supply of entry-level
programmers and the fact that programming
will be easier. Schools at all levels will
be able to offer computer training since the
BOX 1579, PALO ALTO CA 94302
hardware is now affordable. Many people will
even teach themselves how to program. The
new dinky computers are interactive and much
easier to program than big batch computers.
All this could lead to a decrease in the
salary-level of entry-level programmers. Ultimately this must affect other levels.
As the public becomes more and more
knowledgeable about computers, the job of the
data processing professional will seem much
less glamorous and mysterious and much more
just an ordinary job. This will have more
than just an ego deflating effect on the profession. A computer-literate public will demand that the programming job be done properly
with the good of the public an objective. We
can expect to see a public demand for legislation to control computer usage and programmer qualifications. As the public becomes
more aware that they are becoming increasingly
dependent on unproven computer technology, our
profession may find itself in the fish bowl
of public controversy.
Government
Government at all levels will experience
most of the problems and opportunities of
businesses. In addition, government will face
some unique changes. The increasing use of
electronic mail will bring about further declines in the use and efficiency of the u.s.
Postal Service. Government may be able to reduce the demand for energy by encouraging the
use of computers to control and conserve energy usage in homes and industry. Crime can be
decreased through the use of computerized
security systems. The cost of political
campaigns may be decreased by applying "lowcost computing to the data processing tasks
involved in a campaign. Government must help
solve the problem of protection for the
author's rights in mass-produced software.
Increasing displacement of unskilled labor by
computers will be a difficult governmental
problem. New legislation may be required
to control computer technology. Finally, our
government will be faced with the new ghetto
of the computer "have-nots."
The Individual
All the changes previously mentioned
affect us to some extent individually. There
are other effects, however, that deserve
mention.
The computer brings us a new form of
entertainment. It is entertainment through
the simulated experience. Often called computer games, this form of entertainment can
offer very challenging and highly involving
activities. The most popular game of this
class is Star Trek. It lets one pretend to
be captain of a star ship charged with
WEST COAST COMPUTER FAIRE
15
defending the universe against klingons.
The strategies and events are intricate and
demanding requiring quick and correct decisions. Computer games are often intellectually stimulating as well as just plain
fun. Although the computer games encourage
socialization to an even less extent than
television (there are no commercials), at
least they involve the player in the activity
unlike passive television-watching.
Besides games, the computer offers other
opportunities for entertainment and creativity via computer-generated art and music. For
several years a few artists and musicians
have experimented with the computer as a tool
for creativity and expressi~n. Now the computer as an artist's tool is available to
many.
The low-cost computer coupled with video
disk technology could do much to increase the
availability and flexibility of personalized
education. These new technologies make highquality computer-assisted instruction techniques affordable by educational institutions,
libraries, corporations, and individuals.
The place of education may become much more
flexible. The role of the educational institution may change to primarily that of
preparing courseware and certification of
knowledge or skill levels.
Computers can be used in"many ways to
improve the lives of the handicapped. A
person without arms or legs could control a
wheelchair by voice commands. .A blind person
might use a typewriter,computer terminal,
or calculator that speaks each letter or
number. A deaf person might use a telephone
that visually displayes messages. A speechimpaired person might use a speech synthesis
device that spoke what was entered at a keyboard. The pqssibilities are exciting and
many.
In the gizmo age we will be surrounded
by "intelligent" devices ranging from the
self-dialing phone to the self-flushing toilet.
Most of these devices will be helpful and
friendly, but not all. The computer-generated
junk phone call is with us. A computer-based
device can place calls, play a recorded
message, record a response, and even accept
touch-tone input of a credit card number for
a purchase. The unlisted number doesn't help
since the device could place calls to all the
numbers having a certain prefix--a very inexpensive way of placing calls to a part of
town corresponding to a certain economic
level. The devilish device could remember
that you didn't answer and call until you do.
It could even remember that you hung up and
pester you until" you listen. Unfortunately,
junk telephone calls are a fraction of the
cost of junk mail. A bill has already been
introduced in the Congress to control this
nuisance made possible by dinky computers.
BOX 1579, PALO ALTO CA 94302
What will be next?
Lo~-cost computing will add fuel to the
already threatening invasion of individual
privacy. Abundant dinky computers mean data
bases too numerous to control. An individual won't have a chance of knowing whose
keeping what records about him or her. Cheap
computers will mean increased feasibility of
surveillance of individuals by government or
business. The IRS might be able to check, in
detail, every tax return. Isn't that exciting!
Conclusion
We've surely only glimpsed the brave, new
world being created by dinky computers. The
next few years will be more exciting and
probably less believable than most science
fiction. I want to be there as it happens.
Perhaps I can help • . • • •
WEST COAST COMPUTER FAIRE
16
BOX 1579. PALO ALTO CA 94302
BEGINNER'S GUIDE TO COMPUTER JARGON
John T. Shen·
Computer Scientist &Consultant
Naval Ocean Systems Center
271 Catalina Blvd
San Diego, CA 92152
Human nature being what it is, we're always tryi.ng
to develop tools to make problem-solving easier.
We also try to develop tools to do monotonous and
mechanical jobs so we·ll.have more free time to do
the things we enjoy. So, u1tlike humans, the tools
we develop make fewer mistakes, work without getting
tired and dontt go on strike.
One of the best tools wel-ve created is that
creature called "computer. I. But what is a computer?
What's the difference between a computer and a
microcomputer? What do we mean by multiprocessing?
And what do we mean by large scale integration
(LSI)?
A computer is an electronic tool that can
accept informati·on supp1 ied by a human or another
machine. A computer also accepts instructions
regarding what to do with the information
supplied. The computer then performs the
operations on the given infonnation. After the
instructions are performed, the computer
supplies the results to the person who requested
them, or to another machine which may need the
results to carry out other operations.
A basic computer is usually composed of
an i.nput and output (I/O) unit, memory (or
"storage") unit.
The input unit accepts the information to
be operated on from people or other machines,
and the output unit makes the results available
in terms a human can understand.
The memory unit stores information until
needed by one of the other units, such as the
arithmetic and logic unit, the control unit
or the I/O unit.
The arithmetic and logic unit (ALU) does
the arithmetic and logic operations necessary
to sort or search for particular items or
perform mathemati'cal procedures.
The control unit manages all the other
units. For example, the control unit decides
when the I/O unit will accept information and
when the information should be sent from the
I/O unit or the memory unit to the ALU for
processtng. The control unit also decides
what operati'ons to carry and in what sequence.
When an operation is completed, the control
WEST COAST COMPUTER FAIRE
17
unit decides whether the results should
be sent to the I/O unit or the memory
unit.
The technology for bu il ding today' s
computers is very different from the
technology that built computers 10 to
20 years ago. Until the late 1950's,
computers were built from electronic
tubes, mechanical relays, resistors
and capacitors. We call these computers
the IIfirst generation"~'
From the late 1950's to the early
1960's, computers were built from
discrete transistors, resistors and
capacitors. We call these computers
the "second generation"~
In the early 1960's, a new technology arose, called integrated circuits
(IC), where many components are fabricated on a chemical substrate called a
"chip"~ which is about 1 centimeter
square. In the early 1960's only 100
transistors could be packed on a chip.
Computers implemented with 100-transistor chips are called the "third-generation".
Later, new fabrication techniques
were developed, so that today we can
pack 1000 or more transistors on a
single chip. We call these computers
"fourth generation".
From the first to the fourth
generation, the physical size of a
computer with the same computing power
shrank drastically. The cost also
decreased impressively', and the computing speed increased several magnitudes.
A computer designed for use in
many fields of business and science is
called a "general-purpose computer
A computer designed for a specific
purpose, such as monitoring a patientts
heart condition, is called a IIspecialpurpose computer".
A small computer is called a "mi nicomputer". A very small computer is
ll
•
BOX 1579, PALO ALTO CA 94302
a "microcomputer". The central processing unit
(CPU) of a microcomputer is called a "microprocessor" .
If a computer has more than one CPU, and if
the CPU's are operating in parallel, the computer
is called a IImultiprocessing computer" or a "multiprocessor" .
But just having a computer will not solve
your problems. You need a way to instruct the
computer to solve a problem. One way is to write
a "program" (a set of instructions or steps that
tell the computer exactly how to solve a problem.
Since English is our native language the
languages used for writing programs are usually
English-based, examples of English-based languages
are FORTRAN, COBOL and ALGOL. Some of the programming languages are mathematically-oriented,
such as APL. Both types are "human understandable". They are called "high-order languages".
But all computers are built on the simple
language of "yes" and "no" or (1 's and o's), which
is the "machine language". To use high-order
languages, we must build translators to act as
interpreters between man and machine.
The programs programmers write to solve
their particular problems are called "application
programs". The large program developed by the
computer manufacturer for managing the computer
resources such as I/O devices, memory spaces and
CPU time is called the "operating system".
Programs that facilitate the easy use of I/O
devices and peripheral memory are called
"uti 1i ty programs".
The application programs, language translators, operating system and the utility programs are called "software".
Wheti- a language- transl ator complete-ty trans-~
lates a program before the execution of that
program, the translator is called a "compiler".
If a translator translates one statement of a
program at a time and executes that statement
immediately, the translator is called an
"interpreter" .
When a portion of a control unit is
electrically programmed into a device call
"read-only memory' (ROM), or when some of the
software is electrically programmed into one or
several ROMs, the programming is called "microprogramming" .
~ WEST COAST COMPUTER FAIRE
18
BOX 1579, PALO ALTO CA
9430~
EVERITHING YOU NEVER WANTED fO ABE
ABOtrl COMPUTERS BECAUSE YOU DIDN'T
THIRlt YOU'D UNDERSTAND IT ANYWAY.
OR
A TALK FOR PEOPLE WHO GOT TALKED INTO
COMING HERE BY SOMEONE ELSE
to ignore them.
Actually. when computers were first
invented, just about everybody did ignore them. Hard as it is to believe,
there was a man back in the early nineteenth century who invented all the
prlnciples ot computers. His name was
Copyright Jo Murray, 1918
Charles Babbage, and he got a lot of
help in lnterpreting h1s 1deas from the
By
Countess of Lovelace. You may know her
Jo Murray
better as the only daughter of the
2325 Leimert Blvd.
poet Lord Byron. Other people call her
Oakland. Ca. 94602
the tirst computer programmer.
Her parents separated just atter she
This talk w1l1 trace the h1stor" of was born, and she never saw her father,
computers, beg1nn1ng w1th Charles Bab- but he d1d wr1te her letters and he
bage, Who m1ght have g1ven us computers apparently referred to her 1n some of
more than 100 years ago If he had only hls poems, although he didn't seem enknown more about electrlclty. Babtlrely pleased wlth her intellectual
bage was alded by the Countess of Love--talents. A lot of people th1nk he may
lace. the daughter of that soulful and have had her in mind in the passage ln
anti-machinery poet Lord Byron. Then Don Juan which reads:
there was George Boole. another nlne- ------teenth century flgure who gave us the
"'Tis pity learned v1rgins ever wed
symbollc 10glc that lets computers deWith persons ot no sort of education
cide what to do next. The history
For Gentlemen although wellborn and
contloues 1nto the current centur,y wlth
bred
a few references trom such technioal
Grow t1red of sclent1fic conversation.
publlcatlons as Alloe Thro~ The LookI don't choose to say much upon this
log Glass, a br1~scrlp on-o? ---head,
vacuum tubes, translstors and the s11I am a plain man and in a Single
lcon ohips that run the computers at
statlon
the Falre, and no formulas whatsoever.
But. Oh ye Lords of ladie~ intellectual.
It you're one of those people who
Inform us truly, have they not henhave been thloking that all~computers
pecked you all?"
do ls prlnt out b1lls in tunn, looklng numbers and letters and then conOther people thought a little more
fuse your orders wlth your next door
ot her lntellectual talents. When she
nelghbor's, then this is the place tor tirst met Babbage, she was with a group
you.
that was described as looking at his
You know, you Just kept thlnklog
mach1ne as If they ware a bunch of
that If you 19nored them long enough.
savages looking at a gun tor the first
they'd go away. Then the humans who
time. But Lady Lovelace apparently
could do thinks like talk on the tele- grasped the principles of Babbage's
phone and read names and addresses in machine the first time she saw it.
longhand instead of making you put them She even predicted that some day the
in block letters in little squares
englnes would be used to write music.
would come back.
Babbage got the idea because he was
But so far they haven't. And If
fed up with the mathematical mistakes
you're like me. one day you decided
of the times. In his day, sailors and
lt is convenient to have computers
astronomers and anyone else interested
that know whether there are seats on
in math carried huge books of tables.
planes and telephones you oan use to
But they were calculated by hand and
call across the countr" and little
they were set in type by hand, and the
calculators you can hold in your hand. number ot mistakes was incred1ble.
That's not even considering all the
One book of calculat10ns for sailors
wonderful machiner,y here today.
was so bad that the captain of one
Not all of the electronic marvels
ship, who got it as a gift and didn't
we have today are computers, strictly
realize it was more vaulable for its
speaking. But it is getting very hard beautiful bind~ than its accuracy,
WEST COAST COMPUTER FAIRE
19
BOX 1579, PALO ALTO CA 94302
was never heard from again.
ered a moving ma~et would induce an
So Babbage sat down and invented
electrical current in a coil of wire.
his difference engine, as he called
For another thing, toolmaking was
it. It worked by calculating tables,
a relatively new art. Clocks were
using the difference between two numabout the most complicated mach~nes
bers. The idea was that if one pound
that eXisted, and they were all individof meat cost five shillings, two pounds ually made by hand. Since hecould not
would cost ten shillings and three
use electricity, his machines needed
pounds would cost fifteen shil11ngs.
an enormous number of gears. He
So instead of multiplying three times
had to have a workman make most of
five to find out how much three
the tools he needed to make the prepounds of meat would cost, you could
cise gears, and then his chief workman
look at a table that was constructed
got mad and quit and ran off with the
by adding five each time.
tools. But that was another problem.
The machine was also capable of
Babbage d1d gain a sort of prominence
making tables involving squares of
for his time. There were Just aoough
numbers, using the principle of the
people who appreciated his genius that
second derivative, or "difference."
when he died in 1871, the Royal College
This principle was not new: this
of Surgeons of England preserved his
was the way most mathematical tables
brain, which is still there today.
were constructed at the time. What
But the surgeons who examined it to
was new was the idea of having a
see if brain looked different from
machine do it, and the idea that a
anybody else's COUldn't find anything
machine could be constructed so it
espeCially remarkable about it.
After Babbage and the examination
would never make mistakes.
Babbage used punch cards, which
of his brain, computers faded from
had been developed in France to conthe scene for awhile. There we~e Just
trol looms so they would weave pata number of minor steps that all had
terns in cloth, to feed his machine
to be taken before the first modern
information. He even devised an incomputers could be built during World
genious system, based on logarithms,
War II.
so the machine would stop and ring a
For one thing, Babbage wanted hIs
bell if the attendant gave it the
engine to be smarter thanmost computers
wrong card. The engine printed out
are today. He wanted it to be able
the answers itself to eliminate the
to do sophisticated things like add
possibility of mistakes in typeset204 and 311. Both of his engines-ting. He then went on to design a
which were never completed--were to
more sophisticated machine, which he
do this using the decimal system in
the same sort of way that the odometer
called the analytical engine, that
on -acar-yorklr~When one-row-6f-ng~-----------would- d-o--almost ev-ery-th-1ng computers
ures reached 10, it was to automaticaldo today.
Babbage's principles were so close
ly cause the wheel of figures in the
to today's that Howard Aiken, who
next row to turn.
Today's computers don't even try
helped build one of the early modern
computers, once said, "If Babbage had
to count as high as 10. They're like
lived 75 years later, I would have
the Red Queen in Alice Through the
been out of a Job."
Lookini Glass. YoUlremember when-ihe
Babbage, who held himself in very
asked l~"What' s one and one and
high esteem, apparently agreed. He
one and one and one and one and one
wrote that if anyone later developed a
and one and one and one?"
similar machine, "I have no fear of
"I don't know," Alice replied. "I
leaving my reputation in his charge,
lost count." And then the Red Queen
for he alone will be able to fully
yelled, "She can't do addition."
appreciate the nature of my efforts
Well, the difference between us
and the value of their results."
and computers is somewhat like the
When Aiken came across these lines,
difference between Alice an the Red
he said he felt like it was a voice
Queen. Just about anybody here can
personally addressing him from the
add 204 and 311 in their heads if
they put their minds to it. But if I
grave.
But Babbage had two things going
stood here and said "one" over and
against h1m, and his engines were
over again, first tor 311 times and
then for 204 times, I doubt that anynever completed.
For one thing, electricity had
body could tell me exactly how many
Just been d18covered~ It was only
times I sa1d "one."
in 1831 ( that Michael Faraday discovWell, th1s is what computers do.
WEST COAST COMPUTER FAIRE
20
BOX 1579, PALO ALTO CA 94302
TOey say one, one, one, one, one, one,
one, etc. and they keep track of it.
Or they subtract·onti' two or three hun.
dred or thousand times. And if you
think about it, multiplication is
simply a matter of adding numbers and
division is simply a matter of subtracting the divisor over and over.
Actually, it's a little more complicated than thiS, but this is basically how they work. The don I t know any
numbers but ones and zeros and they
count them over and over again.
This is known as the binary system,
and when you take the binary system
and electricity, you can do some incredible things with computers.
The reason we use 10 as a base is
probably because we have 10 fingers.
Babbage used base 10, too. But the
modern computers don't have 10 flngers
or even 10 rows of digits like the
early machines. They just have electrical switches. They're either on
or off. They either have current flowing through them or they don't.
If they're on, the computer counts
them as one. If they're off, the computer counts them as zero. This gives
you a numbering system that's very
easy for computers, even though it's
d1 tticul t fo r humans.
Probably people who work with computers a lot can look at binary figures and read them as easily as we can
read the decimal system. But I can't.
So I'm going to refer to this little
card to explain the blnary system.
The digit in the righthand column
represents the number of ones. The
other columns are not powers of 10,
but powers of 2.
Decimal
Binary
,
10
11
100
101
11O
111
1000
is the
same
as
1
2 (2'+0)
3 (21+1)
4 (22+0+0)
5 (2~+~t' )
6 (2 +2+0)
7 (22+2'+0)
8 (2 3+0+0+0)
You can add them just like you
add in the decimal system, except
that as soon as the total is 2,
you have to carry a digit to the
next column.
WEST COAST COMPUTER FAIRE
21
Binary
1
.!.Q
Decimal
Equivalent
1
2
11
~
1
11
1
"00
t
You can also use the on-off switches,
or the zeros and ones, to represent
letters. You can say A=O, B=1, C=01,
and so on. By the time you get up to
five digits, you have 32 different
combinations and that's enough for
the entire alphabet. From there,
you can write anything.
So now you've got all this material
in the computer represented b.1 ones
and zeros. But you still have to do
something with it. That's where George
Boole comes in.
Boole was an Englishman who lived
during Babbage's lifetime. Boole
lived from 1815 to 1864, and Babbage
did most of his workfrom 1812 to 1842,
but I haven't come across any evidence
that the two knew each other.
Boole developed something called
Boolean algebra, which is really more
symbolic logic than algebra. He
also was one ot the first people who
argued that logic should be. a branch
of mathematics, not philosophy, and he
cert&1nly had someogood reasons tor
it. Today youfind a fair number ot
philosophy majors working with computers, and it's not as odd as it first
sounds. The computers work on the
same principles ot logiC that philosophy departments teach.
Boolean algebra is the type ot logiC
where you have those little puzzles
that look as it they came out ot
algebra books, such as "It A is true,
B is not."
Nobody tound much practical use for
this until this century when a man
named Claude Shannon was working on
his master's thesis, and discovered
you can change these logical statements
into sets of ones and zeros and let
~.he computer
use the rules ot Boolean
1gebra to make its own decisions about
.l.8.t to do next. This is the sort ot
logiC that Should tell the computer it
doesn't have to send you a bill if
you don't owe the store ap money. The
computers that haven't been programmed
very well are the ones that send you
a bill, anyway.
BOX 1579,PALOALTOCA94302
They say one way to tell if you'd make
a good computer programmer is to take a
puzzle like this one from Litton Industries. If you can figure this out and
think it's fun, you'd probably make a ~
good programmer. If you're ready to
throw up your hands in despair, you'd
better stay away from programming.
" I f Sara sho uldn' t, then Wanda
would. It is impossible that the statements: 'Sara should' and 'Camille
couldn't' can both be true at the same
time. If Wanda could, then Sara should
and Camille could. Therefore Camille
could. Is this conclusion valid?"
Now that you know whether you should
be a programmer or not, we'll go on.
Another name you hear a lot i. that
of John Von Neumann. He's the one who
figured out that you could put the
entire program into binary form. Just
why he decided to do this I'm not sure
because if there was anybody who didn't
need computers, it was Von Neumann.
One story about him is that one of his
fellow researchers had stayed up until
4:30 a.m. doing five problems with a·
desk calculator. Then he decided to
play a trick on Von Neumann. Von Neumann came in the next morn1ng, and his
friend asked for help in solving the
problema. In five minutes, Von Neumann
had worked out four of the problems in
his head. The other person, who still
didn't say he already knew the answers,
then announced the fifth answer. Von
Neumann apparently was quite perturbed
that someone could figure out a better
solution to tlle . problem tl1~ he .col.ll.d
liritil ,. .·hey-told him what was going on.
The early computers worked on
vacuum tubes, and that soon got to be a
problem. Vacuum tubes get very hot and
they burn out. They're like a light
bulb. It doesn't matter how good they
are; sooner or later they're going to
burn out. The ENIAC, which was the
first totally electronic computer, had
17,000 vacuum tubes. And it wasn't long
before computers were getting so big
that if you made them any bigger, it
would take 24 hours a day just to replace the vacuum tubes that had burned
out.
Fortunately, about this time--in
1947 to be exact--the transistor was
invented. Transistors do the same thing
as vacuum tubes, but they're much tinier
and they never burn out. It is possible
to destroy a transistor by dropping it
or by running too much current through
it, but you really have to work at it.
This solved a lot of problems, but
lt basically got computers down from
~ WEST COAST COMPUTER FAIRE
22
the size of a small house to about
the size of a smal 11v1ng room. You
oould, ii.bJ the late 1950s, use transistors to make radios small eno~
to piok them up and carry them around
with you, but computers still needed
too many transistors to be very
portable.
B,y this time, you had to do your
work under a microscope, but scientists
kept on work1ng. In the l&e 196Os,
somethlng called an integrated circuit was produced. Dr. Robert N.
Noyce, the president of Intel Corp. in
Santa Clara, is generally credlted
with belng one of the co-discoverers
of It. What the lntegrated circult
means ls that you oan put the entlre
electronlc ciroult on a single plece
of materlal, usually silicDn.
These are so minute tba t 1 t' s hard to
belleve. Thls is a s11icon ch1p.
What's even more amazing is the faot
that lt's Just the 11ttle gray spot
in the middle that does all the computatlons. The rest is here beoause you
can't connect wlres to somethlng as
small as the chip. But these gold
lines eventually oonnect with Jttle
halrlike silver wlres that lead lnto
the sillcon. I don't know how many
translstors are on thls partlcular
chip, but some have 100,000. It may
soon be posslble to put a million
transistors on someth1ng thls size.
To glve you an example of the differences ln slze the lntegrated oircult has meant, It's possible to put
tb.e_.en.tire UNIVAC computer ,.wh1ch.. W&s . . . _.the first commerclal computer, on one
of these.
If your ·famlly was one of the flrst
in the nelghborhood to have a television, you may remember the UNIVAC
which was a guest of sorts of "People
Are Funny." It used to spew all 1 ts
cards out in front of the camera and
Art Linkletter would plck them up and
read off the names of two people who
would get to go on a bllnd date
together.
The UNIVAC ls now in the Smi thsonlan
Instltutlon, and it's the 11ttle ch1ps
l1ke these that are taking over the
world. Probably every pieoe of mach1nex,
at the Falre here depends on these
sillcon ch1ps for lts operations.
The sllicon chlp starts wth a very
unexotlc raw materlal: sand. A
shovelful of sand can supply the baslc
raw material for an entire computer.
Sllicon companies take sand and pure
sillcon "seeds," whlch are sold by
only three companies in the world. They
BOX 1579, PALO ALTO CA 94302~
use these and 1tgrow" cylinders of
material which look like shiny, gray
mirrors.
Once you get the silicon, the hard
part comes. You have to put the transistors on it. The way you do it is
sort of a cross between batik and
photography.
In batik printing, you first draw
the design on a pieoe of oloth. Then
you deoide which parts you want to turn
out a particular color and cover everything else with wax. You dip it in
a vat of dye, let it dry and scrape the
wax off. The next time you cover
ever,ything but another oolor with wax,
dye it again, scrape the wax off again,
and keep on going until the picture is
finished.
To make a silicon ohip you do al~~
most the same thing except that layers of silicon oxide take the place
of the wax and tiny lines of metal
form the picture. The lines are so
small and so thin that they are put
on the chip through a photographio
process in much the same way that
shining a light through a negative
produces a picture on a sheet of
photographic paper. In this case, the
negative is called a photomask.
To make a photomask, you need a
master diagram of the ohip. These
drawings start out several feet square
and are reduced to the size of a
chip, again through a photographic
process. The masks, which are made
out of glass, are made from these
drawings.
Each ohip needs eight to ten different photomasks, but there are 90
to 100 steps in vo 1 ved by the t iae
the chip is cleaned and new layers
of oxide are formed on it and scraped
off between photography sessions.
And people are already working on ways
to eliminate the photomasks and write
the diagrams directly on the chip.
So far, though, the machines that do
this cost over a million dollars.
All along the way, it's a very delicate process. People who make chips
don't even let you take pencils inside
the laboratory because they produce
dust when they write on paper. The
water used to wash the chips between
the different processes has to be so
pure that companies sometimes have
their own water purification plants.
One firm--Monolithic Memories in
Sunnyvale--says its water is 100 times
purer than distilled water. And when
the plant finishes with it, it's still
100 times purer than the regular city
water.
When you start talking about chips
this size, you find that computers
are almost becoming self-perpetuating.
It would be imposs~ble to make them
this small if you didn't already have
computers to help do it. Oomputers
are used to test the models of the
circuits, they draw the layouts for
the photomasks and tay control the
manufaoturing eqUipment.
But theyoan't do it all by themselves
yet. When the whole thing~is finished,
that's when they oall in the humans.
The humans look through a mioroscope
to oheok all of the oirouitry on the
tiny chips. The people at MOnolithio
Memories tell me that after a few
weeks of training, people learn to
check one in about a minute. The
reason they need people is that there
are so many different struotures and
so many differenoes in the size and
the color of the lines that are
still acoeptable that there's no way
to program a computer to remember
them all.
There's still not a computer that
can remember as muoh as even the
average human brain.
23
BOX 1579, PALO ALTO CA 94302
WEST COAST COMPUTER FAIRE
INTRODUCTION TO PERSONAL COMPUTING
A BEGINNERS APPRQACH
Robert Moody
2233 El Camino Real, Palo Alto, Calif. 94306
Phone: Home (40B) 225-3341, Work (415) 327-8080
Introduction
I
use for communication between you and your computer.
Computers are now within everyone's reach!
Whether you are a housewife, small businessman, Bit: The smallest unit of measure in a computer
student, professional, musician, or in real es- word; several bits make up a byte, or computer
tate -- computers are being made and sold at
word.
prices you can afford, and they will set you
~:
The cause of a malfunction, usually in a
free in ways you never dreamed of! A personal
program.
They're called "bugs" because they can
computer will open possibilities; it will albe hard to find.
most certainly change your lifestyle.
Most people, when they visualize a compute~Byte: The space which a letter or digit (one
they think of monstrous machines that tower over character) takes up in a computer. Space in a
us, seeing all and doing all. It's really not computer is measured in bytes. A megabyte is a
that way. Everybody has been communicating with million bytes.
a computer in one way or another most of their
adult lives and not really known it. For exComputer: A machine for handling repetitive inample, all your tax ~eturns are processed by a formation. Basically it can calculate, compare,
computer, most amjor- 1epartment stores handle
alter, send and receive information very rapidl~
their buying, stocking, and billing by computer. Core: See memory.
All your credit card buying is handled by com- ---- V
t '
t
""
b
CRT:
our compu er s "TV screen", showing you
pu er, every check you wr~te ~s processed y
hat' IN there
The CRT is your computer's way
computer. Dentist, doctor, hospital, gas, elec- wf t ~k"
t
•
It is also something refertric, phone bills are handled by computer. Why II! 0 d ~ ~ng ~" yO~.
"t or terminal.
Take a city the size of San Jose for inst- re
0 as a ~sp ay un~ ,
ance. Just think of the tremendous amount of
Data: The information that gets WORKED OVER,
-manpower it wCluTd take to tty-a"fld post all the wtTem-your pro-gram runs. Data is all the inchecks that were written in one day, or the
formation you have your computer use, everything
amount of phone calls to be logged in one day.
that is sent into your computer to store and
Handling that amount of information - having
retrieve.
that
kind
of
computing
power
is
at
your
finger
0" k
A Mass st orage d"
"th er fl oppy or
t"
t d
~s :
ev~ce, e~
~ps
0 aye
~ d" k
The most important think that I want to
ar
~s.
convey to you is: computers are not just for
Display: Same as CRT.
geniuses!!! You don't have to be a special
Floppy Disk: A mass storage device, which uses
gifted person to own or operate one.
a flexible platter to store a large amount of
This presentation, I hope, will enlighten
information.
you a little as to what are these things,
personal computers, how you can talk and ask
Fortran: Another type of computer language.
questions about them, what makes them up, and
Hard COPy: Computer output ON PAPER, for perwhat you can do with one.
manent storage.
II
Buzz Words
" dus t"
have
As you know, a 11 t ypes 0 f ~n
r~es
"
1
th
t
th
W
a
ey use.
e as a group
th e~r own anguage
and a new up-coming industry, are no exception.
As you scan down the second page of the handout
I have given you, there
is a short. list of these
.
buzz words, and a s1mple explanat10n of each.
~:
~eginners ~ll-purpose ~ymbol
tional £ode:
Instruca mode of language that you will
WEST COAST COMPUTER FAIRE
24
Hard Disk: Much like a floppy, a hard disk
stores "
a tremendous amount of information, but__
"
~ts platter ~s much larger and not so portable~
Input: The information that goes IN to your
computer system. The computer's "food".
I n t er f
t or th a t"t rans 1a t es "b eace:A
connec
t ween t wo par t s 0 f a sys t em. Vou genera 11 y nee d
ene interface for each peripheral, to hook it to
your computer.
BOX 1579, PALO ALTO CA 94302
Mass storage: Any way of keeping a lot of information OUTSIDE your computer, but available
to it. This is your computer's "memroy". Most
common kinds of mass storage are tape and disk.
rest for later.
Now that the CPU has changed, calculated,
or compared this data, it needs to store it
someplace. This is where mass storage comes in.
Here again there is a wide variety and different
Micro, Microcomputer, or Microprocessor: Same
types to choose from i but basically it is comas computer. The hmicro" came in when we
pared to an inactive file. This file holds much
learned to make them physically tiny - they are more data than the RAM in your computer does.
about the size of pencil erasers.
You as a computer operator put in and take out
these files at will, making one active and anOutput: What your computer system produces.
other inactive.
Peripherals: The devices attached to your comTo be able to accomplish the task of moving
puter, such as the display, keyboard, printer,
all this data around, you have to be able to
etc.
talk to your computer and have it talk baqk to
~:
~andom ~ccess ~emory.
This storage device you. A peripheral device called a Terminal is
is used by your computer to change the data you necessary. This is usually made up of a keyhave put into it, then it is transferred to a
board, much like a typewriter keyboard, and a
mass storage device.
display unit. The Terminal is attached to your
computer through an interface device. There
Storaqe: The part of your system that remembers
are two basic types: serial and parallel.
information, as opposed to the parts that
The serial I/O, or input-output, interface
"think".
takes the data you are typing in and sends it
one bit at a time to the RAM. Parallel, on the
Software: A list of instructions to the computer, telling it what to do and when to do it. other hand, sends all the bits that make up the
computer word or byte, and puts them all in at
Terminal: A unit for conversing (input or outone time. This might seem very confusing to
put) with your computer. It has a keyboard,
you, but all that is necessary to know is what
plus Display or Print-out.
kind of interface is incorporated on the periTVT: "Television typewriter". A keyboard and
pheral you are attaching to your computer, and
match it up with the proper I/O device.
electronics specially designed to turn your TV
Now that I have thoroughly confused you,
into a TERMINAL.
we will push onward.
III What Makes Up a Computer?
In your handout you will find a block dia- IV Programming
gram of a computing system. As you notice,
there are not many modules or components that
are needed to do the job. The technology today
has made this possible with microelectronics.
With this tremendous reduction in physical size
of transistors and diode& it enables us to compact a large amount in a ~3ry small ~rea. Also,
the power requirement is small as well.
Now that all this hardware has been
assembled, we have all 'the physical things that
are needed, but there is something that is
lacking: software. What this thing does is
allow the computer to try and make some sense
out of what you are trying to tell it, and vice
versa, have you understand what it is trying to
tell you. Fundamentally there are two types:
systems
and applications.
The first and most important module is the
Systems software is what the computer uses
CPU, or Central Processing Unit. This is the
as its language. It takes the information in,
brain of-the per;onal computer. The CPU does
all the actual work of calculation, comparison, in this special language, and acts on it. What
alteration, receiving and sending data •. Every- you do as an-operator is use this language to
thing else that we attach is a fu~ction from the develope an application.
There is a lot more to programming than
CPU.
just a couple of sentences I have used to deThere is a wide variety of CPU's on the
scribe it. I could ramble on about all the
marketplace today. Depending on who you talk
different types of systems software, but I have
to, one is better than the other. Don't let
to spend more time on the biggest question that
this discourage you now; all that you need to
I'm asked, and that is "I would like to have
know at this point is that they work. You can
one
of these things called personal computers,
get into particulars later.
but what the hell do I do with it?"
The CPU cannot operate by itself; along
with it you need some memory. RAM or Random
Access Memory does the job. This portion of the V What Can I Do With It?
computer allows the CPU to activate a section of The most asked question that I receive is:
the data at one time. For instance, the RAM
"what can I do with this thing, now that I have
could be compared to an active filing system.
it?" The uses for personal computers are endThe data is stored in some kind of order and the less; the list below only shows a few uses CPU only pulls the data it needs and keeps the
let your imagination -go and you will see!
WEST COAST COMPUTER FAIRE
25
BOX 1579. PALO ALTO CA 94302
Recordkeeping
Inventory management
Routine correspondence
and form letters
filling out forms
Calculation of all
kinds
Receiving and placing
phone calls
MATCHING any information with any other
information
Polls and surveys
Indexing
Cataloging
Solving problems
Printing out results
Maintaining LISTS,
especially:
MAILING LISTS
SHOPPING LISTS
ITEMIZATIONS
STOCKLISTS
PACKING LISTS
Sales analysis
Travel and route
planning
Scheduling
Ticketing
Distribution
Editing
per second, all accurate and up-to-date. It can
store all your records on products, sales, customers and ad results. It will compare or change
any part of these you'd like, without touching
the rest. In other words, it gives you SALES
ANALYSIS and MARKET PROfILES which only "multimillioners" have had until now!
Your computer keeps inventories.
It does accounting and billing of all type a
It does ~ entry (live).
It can hold and index your "~ private
library" of whatever information interests you.
for example, it can help in health care by
keeping track of each patient's medical history
and alerting you to patterns you might have missed. Or give you a quick way to look up the
newest therapies by ~ they remedy -- you type
in the condition and your computer gives you
back a list of indicated drugs or treatments.
If you are a pharmacist: you may presently
be keeping "card files" of each customer's
contra-indications and other medication history.
With a computer, you'd no longer have to look
each of these up for each prescription! You'd
just type in the customer's name and Rx, and UP
would come the pertinent information on him! It
would be shown on a little TV screen -- just
like at the airlines. You could also tell your
computer to remember a list of "potentiating"
drug combinations and warn you if it detects one
in a customer's combination. YOU OON'T HAVE TO
THINK IT OUT OR LOOK IT UP EACH TIME, ANY MORE.
Your computer can run fLEXIBLE fORM LETTERS
Lists - Computers are lovely at working with
for you! You tell it to change this word or
~. The nice thing is that you can change
that, add or delete a paragraph, date a letter
anything in the list -- even one letter "B" for. next Monday, and address it to, say, all the
e~ample -- without affecting the rest.
It's
people in your "Best Prospects" file. OUT will
likes_ sto_red-away blJ~c::J<
MORE ROUTINES USED BY MENU
(II
~
:"
>
o
r
>
~
o
n
>
CD
~
eN
o
N
The following chain of· routines are used by MENU to find and display the next item,
check for the last item in a list, offer ESCAPE? and recycle to the beginning of the list if
nothing is chosen. The details of these operations vary depending on what items are being
offered: groups, subgroups, words or characters.
save current address
212C
EB
NEXT
XCHG
while restoring flags
2120
2A860C
LH LD FLAGS
2130
EB
XCHG
2131
7B
MOV A,E
are we displaying groups or subs?
2132
FEFD
CPI FDH
if so, check for end
2134
024121
JNC CHECK
2137
2A840C
LH LD CI
skip current word or letter
213A
23
FIN
INX H
MOV A,M
213B
7E
and keep skipping until the
213C
E680
ANI 80H
start of the next, then check
213E
CA3A21
JZ FIN
WORD, The next subroutine, is used by MENU. If groups or subgroups are being offered, it
is entered only after the complete offering has been printed and it jumps to COMP to check
the switch. But if individual words or characters are being offered, WORD keeps printing
words or characters across the menu space, with two spaces between each, until the end of
the subgroup or until the end of the line.
2164
7B
WORD
MOV A, E
check flag
FEFD
CPI FDH
2165
2167
D21C21
JNC COMP
and split if groups or subs
216A
3AOEOC
LOA POS
check position in menu
2160
FE3C
CPI3CH
if we are near the end of the line,
216F
D21C21
JNC COMP
stop printing & split or if we are
2172
7E
MOV A, M
at the end 01: the subgroup, split
-BB
CMP E
2173
2174
D21C21
JNC COMP
2177
3E20
MVI A, , ,
otherwise,
2179
CD240C
CA LL WH 1
print two spaces
CD240C
CALL WH1
217C
217F
C38A20
JMP DISPY
and add more to menu
SUBROUTINE: ESCAPE
The subroutine ESCAPE offers a return to the SPELLING mode and is used often.
2182
C5
ESCAPE
PUSH B
set up for message
214F22
LXI H, ESC-1
2183
2186
CDFF20
CALL MESSAGE
2189
C1
POP B
return if no escape
218A
CO
RNZ
clean up stack
218B
E1
POP H
and reenter SPELLING?
C3OC20
JMP REENTRY
218C
:E
ITI
(/)
-I
n
0
»0
(/)
-I
n
0
3:
"'tJ
C
-I
ITI
::0
"»0
::0
ITI
~
0
m
0
><
SUBROUTINES USED BY SPELLING MODE
SUBROUTINE: CONTROL
The SPELLING mode uses this chain of subroutines. The first alphabet:offered is different
from the other 26, and the routine doesn't backspace before printing' the first letter, so
there is one routine for the first letter and another for all the others. ESCAPE? is offered
after each letter is printed and before a new alphabet is offered. A look-up table is used to
pick the right alphabet to offer after the first letter has been printed.
LXI H, ASTART
address of initial ~phabet
SPELL
218F
211523
print first letter
CALL FIRST
CDB721
2192
2195
CD5720
CALL SENTER
to restore POS
2198
CD8221
TALE
CALL ESCAPE
offer escape
219B
21C722
LXI H,STAB
start of look-up table
219E
MOVA, B
78
fetch last letter printed
219F
BE
LOOK
CMPM
and look for it in t~ble
21AO
CAA921
JZ FOUND
21A3
23
INXH
each table entry
21A4
23
INX H
is three bytes
21A5
23
INXH
keep looking, you'll find it
C39F21
JMP LOOK
21A6
21A9
23
FOUND
INXH
when you find it,
21AA
5E
MOV E,M
get address from t".ble
21AB
23
INXH
MOVD,M
21AC
56
EB
21AD
XCHG
and put it in HL
CDC821
21AE
CALL SECOND
offer new alphabe~
print the chosen letter
CALL OOP
2181
CDBA21
2184
JMPTALE
and loop back to do it again
C39821
21B7
FIRST
CALLSMENU
offer alphabet
CD7E20
fetch chosen item's address
21BA
OOP
LHLD CI
2A840C
21BD
7E
MOVA, M
CALL WH1
and print it
21BE
CD240C
save it for 100k-up;later
MOV B,A
21C1
47
MVIA,"
21C2
3E20
CALLWH1
and print a space
21C4
CD240C
RET
21C7
C9
offer alphabet
21C8
CD7E20
SECOND CALLSMENU
get ready to backspace
21CB
2AOEOC
SECONDS LHLD POS
and
21CE
DCXH
2B
do it
SHLD POS
21CF
220EOC
RET
2102
C9
CONTROL offers and executes the control commands.
21EB
217322
CONTROL LXI H, BACKSPACE?-1
21EE
CDFF20
CALL MESSAGE offer backspace
21F1
C2FA21
JNZTWO
21F4
CDCB21
CALL SECONDS backspace
21F7
C30820
JMP ENTERL
back to offer SPELLING?
21FA
217022
TWO
LXI H, ERASE LAST WORD?-1
21FD
CDFF20
CALL MESSAGE
2200
C21222
JNZTHREE
2203
2AOEOC
LHLD POS
2206
20
OCR L
back up
2207
20
MORE
OCR L
back up
2208
3EAO
MVIA,"
220A
BE
CMPM
have we reached a space?
220B
C24022
JNZ RUB
220E
23
INXH
leave the space
220F
C30820
JMP ENTERL
and go offer SPELLING?
2212
218022
THREE
LXI H, SPACE-1
2215
CDFF20
CALL MESSAGE
2218
C22322
JNZ FOUR
221B
3E20
MVIA,"
2210
CD240C
END
CALL WH1
2220
C34C20
JMP ELOP
back to offer SPELLING?
2223
219422
FOUR
LXI H, NEXT LlNE?-1
CDFF20
2226
CALL MESSAGE
C23122
JNZ FIVE
2229
3EOD
MVI A, ODH
222C
222E
C31D22
JMP END
2231
FIVE
219E22
LXI H, ERASE SCREEN?-1
2234
CDFF20
CALL MESSAGE
2237
CA0020
JZ START
start all over
223A
CD8221
CALL ESCAPE
2230
C3EB21
JMP CONTROL
2240
RUB
36AO
MVI M,AOH
put blank on screen
2242
C30722
JMP MORE
2245
00
NOP
2246
00
NOP
2247
00
NOP
2248
00
NOP
2249
2181F8
PATCH
LXI H, F881 H
initialize text address
224C
220EOC
SHLD POS
224F
C9
RET
In the listing below I haven't typed the hex equivalents for the ASCII (this listing was
hand-assembled) .
ESCAPE?
2250
SPELLING?
2257
PUNCTUATION?
2260
CONTROL?
226C
2274
BACKSPACE?
ERASE LAST WOR D?
227E
228E
SPACE?
NEXT LINE?
2295
ERASE SCREEN?
229F
22AC
.'?;: 10123456789#$"%& ()*+FB
22C6
DB FBH
end flaR
U1
........
CD
"'tJ
SUBROUTINE: PUNCT
r
The subroutine PUNCT handles offering the control codes (by calling another subroutine)
and it offers the punctuation symbols. It uses one of the spelling subfoutines to handle
punctuation.
LXI H, CONTROLM-1
PUNCT
216B22
2103
CALL MESSAGE offer CONTROL?
CDFF20
2106
JZ CONTROL
CAEB21
2109
starting address of punctuation
LXI H, PSTART
21 AC22
21DC
i
offer them
CALL SECOND
CDCB21
21DF
I
print the chosen 06e
CALLOOP
CDBA21
21E2
go back to offer SPELLING?
JMP ELOP
C34C20
21E5
I took out somethlng here
NOP NOP NOP
21EB
00000o
»0
0
»0
r
-I
0
n
»
CD
,I:lI.
w
0
N
~
ITI
(J)
-I
n
0
»
(J)
-I
n
0
~
"'tJ
C
-I
ITI
:::0
'Tl
»
:::0
ITI
or::.
I-'
ALPHABET LOOK-UP TABLE
Here is the look-up table for the variou$.alphabets, in non-standard form.
A 2330H
C13023
22C7
B 234BH
C24B23
22CA
C 2363H
22CD
C36323
o 2377H
2200
C47723
E 2391H
C59123
2203
F 23ACH
C6AC23
2206
G 23C2H
2209
C7C223
H 23DAH
CSDA23
22DC
123F1H
C9F123
22DF
J 240CH
22E2
CAOC24
K 2413H
CB1324
22E5
L 242BH
CC2B24
22E8
M 2446H
CD4624
22EB
N 2460H
CE6024
22EE
o 247BH
CF7B24
22F1
P 2496H
009624
22F4
o 24ADH
D1AD24
22F7
R 24B1H
D2B124
22FA
S 24CCH
D3CC24
22FD
T 24E6H
D4E624
2300
U 2500H
050025
2303
V 251AH
D61A25
2306
W 2528H
072825
2309
X 253FH
D83F25
230C
Y 2557H
095725
230F
Z 2570H
DA7025
2312
THE ALPHABETS
OJ
0
X
U1
.....
CD
"'tJ
»
r
0
»
r
-I
0
n
»
CD
.a::..
w
0
N
And here
"2315
232F
2330
234A
234B
2362
2363
2376
2377
2390
2391
23AB
23AC
23C1
23C2
2309
23DA
23FO
23F1
are the alphabets, once again without the hex.
ASTART TAOSWIHCBFPMRELNDUGYJVOKZX
end of alphabet flag
DB FBH
FB
NTSR LDCIG VMYPBKUFWOJXHZEOA
DB FBH
FB
EAOUYR ISLJTVMBDWCGHNPF K
DB FBH
FB
OEHATKI LURCYSON DZMW
DB FBH
FB
EIUARSOLMDGYNVJOWHEFTPKBZ
DB FBH
FB
RSNDALMCETVFPXIGYOWUHOKBJZ
DB FBH
FB
ORIFEAULTSYWBMGCHNJPD
DB FBH
FB
EHROAIGSLUTNYMF DBWZJKPC
DB FBH
FB
EIAOTURYLNWDSMBHOFPCGK
DB FBH
FB
NSTOCM LAREDVGPF BKXUZOIJLWY
240B
240C
2412
2413
242A
242B
2445
2446
245F
2460
247A
247B
2495
2496
24AC
24AD
24BO
24B1
24CB
24CC
24E5
24E6
24FF
2500
2519
251A
2527
2528
253E
253F
2556
2557
256F
2570
257E
257F
FB
FB
FB
FB
FB
FB
FB
FB
FB
FB
FB
FB
FB
FB
FB
FB
FB
FB
C1 C1424C45C1424F
5554
DB FBH
AEOUIJ
DB FBH
EISANLYOGFWTURDPMKBJCHV
DB FBH
EIALYODTSUFRMVWKPCBGNHJZXO
DB FBH
EAOI PMUYSB LF NTHCDRWGJKVCZ
DB FBH
DTEGSCIAOYN LFVUKMJROPHWXBZ
DB FBH
NFRUMPLTOWSDCVIBEYAKHJGXZO
DB FBH
ROAE L TSPI HMUYWFG KBN DCJ
DB FBH
UIO
DB FBH
EIOATSYDMNURCLVKGPWBFHXOJZ
DB FBH
TEIOSHUCAPYKMWNLGOFBDRVJZ
DB FBH
HEIOARSTUYLWCFMNBPDZGKVJO
DB FBH
TSNR LCGPAEMDI FBOYZXUVKOJH
DB FBH
EIAOYUSRVZKGM
DB FBH
EAHIONRSLTDYKUPFBCMZWG
DB FBH
EPTICAHUYOOLNWFSVGBKIVIRD
DB FBH
EOSAITPMBLNWCRGDZHUFVXIK
DB FBH
EAZOYIUKTVWHJB
DB FBH
end of alphabet
AAbleAbout
beginning of vocabulary storage
TEXT AND EDITOR
3FOO
3F03
3F05
3F08
3FOA
3FOD
3FOF
3F12
3F14
3F17
3F19
CD200C
FE7F
CA263F
FE5F
CA383F
FE1C
DA213F
FE20
D2193F
C6DF
77
TEXT
CTL
PRINT
CALL WHO
CPI7FH
JZ RUB
CPI5FH
JZ EDITOR
CPI1CH
JC CONTROL
CPI20H
JNC PRINT
ADIDFH
MOVM,A
keyboard input
is it rubout?
is it sh ift O?
is it a control character?
is it a control code?
if not, print it
store it in memory
."
~
~
ITI
tn
-f
n
0
»tn
-f
n
0
~
""0
C
-f
ITI
:::0
»"
:::0
ITI
4:>I\J
m
0
X
-.....
U1
.
""0
»r
U)
0
»
r
-f
0
n
»
U)
.1:10
W
0
N
~
3F1A
3F1D
3F1E
3F21
3F23
3F26
3F29
3F2A
3F2D
3F30
3F32
3F35
3F38
3F3B
3F3D
3F40
3F43
3F44
3F47
3F48
3F4A
3F4D
3F4E
3F51
3F52
3F53
3F55
3F58
3F5B
3F5D
3F60
3F63
3F64
3F67
3F69
3F6C
3F6F
3F70
3F71
3F73
3F76
3F77
3F78
3F79
3F7A
3F7D
3F80
3F81
3F84
3F87
3F89
3F8C
3F8E
3F91
CDE53F
23
C3003F
F6CO
C3193F
CDE53F
2B
C3003F
2A800C
3EOC
CD240C
C3003F
22800c
3EOD
CD240C
2A800C
EB
CDD103
EB
3E20
CD240C
7E
CDE63F
7E
23
FEFB
DA4D3F
CD200C
FE20
C2673F
2ASOOC
23
C3383F
FE7F
C2873F
2ASOOC
E5
01
3EFF
010000
2B
23
OB
BE
C2773F
2A800C
23
CDOOO1
C3383F
FEOD
CA 383F
FEOA
C2A03F
2ASOOC
CALL LPRINT
INXH
JMPTEXT
CONTROL ORI COH
JMP PRINT
CALL LPRINT
RUB
DCXH
JMPTEXT
RETEXT LHLD OCSOH
MVI A,OCH
CALLWH1
JMPTEXT
EDITOR SHLD OC80H
MVI A,ODH
CALLWH1
LHLD OCSOH
XCHG
CALL DEOUT
XCHG
MVIA,"
CALLWH1
MOVA,M
LOOP
CALL LPRINT
MOVA.M
INXH
CPIFBH
JC LOOP
KEY
CALL WHO
CPI "
JNZM1
LHLD OCSOH
INXH
JMP EDITOR
CPI7FH
M1
JNZM2
LHLD OCSOH
PUSH H
POP 0
MVI A, FFH
LXIB,O
DCXH
M3
INXH
DCXB
CMPM
JNZM3
LHLDOC80H
INXH
CALL MOVE
JMP EDITOR
CPIODH
M2
JZ EDITOR
CPIOAH
JNZM4
LHLDOCSOH
put it on TV
next memory location
do it all over again,
make eighth bit high
for 'capital' letters
rubout on TV
back up in memory
go do it over
fetch starting address
erase TV
save start of curre~t line
start a new line
j
fetch start of currdnt line
print address in he~
restore address
print space
fetch character from memory
put it on TV
was it the end of a :line?
if not, keep printitig
wait until a key is pressed
is it a space?
if not, keep checking
fetch starting address
space skips one ch~racter
and reprints line
is it rubout?
fetch starting address
copy HL
:
into DE
end of vocabulary ~Iag
start counting at z~ro
count one byte
check for end flag :
keep counting if not the end
fetch starting addre,ss
we are moving one space
display edited line
is it carriage return?
then display next liine
:
is it I ine feed?
fetch starting
3F94
3F95
3F96
3F97
3F99
3F9C
3F9D
3FAO
3FA2
3FA5
3FA7
3FAA
3FAC
3FAF
3FB1
3FB4
3FB6
3F89
3FBB
3FBE
3FCO
3FC3
3FC4
3FC6
3FC9
3FCA
3FCB
3FCC
3FCD
3FDO
3FD1
3FD2
3FD3
3FD4
3FD5
3FD6
3FD7
3FD8
3FDB
3FDC
3FDF
3FEO
3FE1
3FE2
3FE3
3FE6
3FE8
3FEB
3FED
3FFO
3FF2
2B
2B
7E
FEFB
DA953F
23
C3383F
FE5F
CA2D3F
FE1C
DABE3F
FE20
D2C03F
FE1E
D2B93F
C6BO
C3C03F
CGDF
C3C03F
F6CO
2ASOOC
F5
3EFF
01'0000
2B
23
OB
BE
C2CA3F
54
M5
M4
M7
M6
INSERT
M8
M9
50
13
7E
12
1B
2B
OC
C2D03F
04
C2D03F
F1
12
23
23
C3383F
FE60
D2240C
FE41
DA240C
CG20
C3240C
LPRINT
DCXH
DCXH
MOVA,M
CPIFBH
JCM5
INXH
JMP EDITOR
CPI5FH
JZ RETEXT
CPI1CH
JC M6
CPI20H
JNC INSERT
CPI 1 EH
JNCM7
ADI BOH
JMP INSERT
ADIDFH
JMPINSERT
ORICOH
LHLD OC80H
PUSH PSW
MVIA,FFH
LXI B,O
DCXH
INXH
DCXB
CMPM
JNZM8
MOV 0, H
MOV E, L
INXD
MOVA,M
STAXD
DCXD
DCXH
INRC
JNZM9
INR B
JNZM9
POPPSW
STAXD
INXH
INXH
JMP EDITOR
CPI60H
JNCWH1
CPI41H
JCWH1
ADI20
JMPWH1
back up
keep backing up
look for control flag
and keep backing up until found
skip the flag
and display previous line
is it shift O?
if so, go to TEXT
is it a control character?
if so, it is uppercase
could it be a control code?
if not, insert it as is
be sure it is not Mar L
if its not, thef! control code ok
make into L or M
and insert it
make into control code
make into capital letter
fetch starting address
save character on stack
end of vocabulary flag
start counting at zero
move forward
count one space
get back character
and insert it
is it upper case?
print as is
is it lower case?
if not, print as is
make it lower case
and print it
add~s
,
~
SPEECH RECOGNITION AS AN AID TO THE HANDICAPPED
by
Horace Enea and John Reykjalin
Heuristics, Inc.
900 North San Antonio Road
Los Altos, CA 94022
ABSTRACT
Speech recognition permits control of devices as well as entry
of data to computers. Using the control aspect of speech
allows an otherwise immobile person to control a wheelchair or
turn lights on and off across the room even though restricted
to a bed or iron lung.
A pilot project in speech control is described which uses a
model car linked to the computer by radio. Computer programs
are included.
WEST COAST COMPUTER FAIRE
43
BOX 1579. PALO ALTO CA 94302
MICROPROCESSORS IN AIDS FOR THE BLIND
Robert S. Jaquiss, Jr.
P.O. Box 500
Beaverton, Oregon 97077
(503) 644-0161 ext. 5617
Introduction
The Optacon
There are increasing opportunities for
the blind to function effectively in society
because of the increased use of computers for
data manipulation and information retrieval.
This is possible because blind persons can
receive the same information as their sighted
co-workers.
The rapidly increasing number of small
business computers enable blind persons to
work as programmers and clerks. Also, as
research assistants, the blind can use data
bases such as NTIS (National Technical Information Service), IEEE and Lockheed to
research articles on topics of interest.
The major difficulty for a blind person
is determining the computer's response. This
difficulty can be overcome by the use of
equipment such as braille terminals, Optacon,
closed-circuit television magnifiers, and
speech output devices.
This paper describes some of the devices
that enable the blind to read computer outputs and explores the future role of microprocessors in this field.
The Optacon allows the blind person to read
ordinary print directly from the screen of a
bright crt or from a hard copy (see figures A-2
and A-3). In operation, the Optacon picks up
the image to be read with a camera and focuses
it onto an array of photodiodes. The user feels
the ends of vibrating wires, one for each photodiode, to feel the shape of the characters.
Uppercase type is the easiest to read, followed
by lowercase type. The plainer the type, the
more easily it can be read. While the Optacon
is not as fast to use as braille, it is more
versatile.
Braille Printing Terminals
Various devices have been designed to
produce braille- computer--output. -Although
a number of equipment prototypes have been
built and demonstrated, the only commercially
available braille computer terminals are sold
by Triformation Systems, Inc. of Stewart,
Florida. Triformation makes two basic types
of devices: one produces braille on a paper
tape and the other on fanfold paper. (See
figure A-l.)
An impact printer, such as a teletype or
lineprinter, can be modified to produce
braille. A pad (thin rubber or elastic)
placed over the platen, or in front of the
hammers on a line printer, allows impressions
of the period to simulate braille. The
braille produced in this manner is rather
poor, because the dots are not spaced
correctly and because the printing mechanisms are not strong enough to emboss heavy
paper.
A modification of this type is available
for the IBM 1403 printer. While rather expensive, this printer does produce good
quality braille.
WEST COAST COMPUTER FAIRE
Closed-Circuit Television Magnifiers
For use by partially-sighted individuals,
the closed-circuit television magnifier is basically a camera attached to a high resolution
black and white television monitor. The camera
is equipped with a special 20X magnification
lens. These machines also incorporate a reverse
image capability. This provides white letters
on a black background which, in some cases, is
eas i er to read.
Unless the closed-circuit television magnifier is equipped with a viewing table, reading
of hard copy may be a problem, and the copy is
not portabl e. A -plotter can be used to make a
portable copy with large letters. However, this
is a slow job, and the paper must be manually
placed on the machine.
Speech Output Devices
Speech output is available in various forms.
Votrax types require a string of phonemes for
speech generation, while the Compu-Talker type
requires more complicated software. In certain
applications, such as obtaining listings of
long programs, this type of output is not acceptable because it would require the user to memorize entire programs in order to make
corrections.
TSI (Telesensory Systems, Inc.) makes a
type of speech board which has a canned vocabulary on it. The canned words will be generated
when the board is sent a number corresponding
to the desired word.
New Research
44
BOX 1579, PALO ALTO CA 94302
There is some work being done with tactile
displays, the blind person's version of a crt.
To my knowledge, there are no commerciallyavailable devices of this type. Some prototypes have been built that use air to drive
pins up to form a braille line. Others use
the input port on an Optacon so a computer can
generate uniform characters on the Optacon display. This last method solves one of the major
problems of the Optacon, which is the necessity
of holding the camera to the screen with one
hand, typing with the other, and reading from
a braille coding sheet.
Microprocessors in Aids for the Blind
Microprocessors will be invaluable in aids
for the blind because they can perform data
formatting and searching at a reasonable cost.
Braille books are very large. For example,
the 1959 edition of the World Book Encyclopedia requires 43 feet of shelf space. The
Art of Computer Programming, Volume 1, bY-Knuth if almost two feet long. (See figure
A-4.) Because of the large size and high cost
of braille books, attempts are being made to
store books onto data cassettes which can then
be read by a computer and displayed on some
sort of refresh device. With this approach, it
will be possible for the blind to have books
available, at a reasonable price, which can be
rapidly read and/or scanned through using an
editor.
Microprocessors can also be used to interface display devices to instruments. This will
be much easier in the future, because of the
GPIB interface bus that is being used more and
more in instrument design.
SUnTllary
Equipment now on the market enables blind
persons to determine a computer's response and
thereby receive the same information as their
sighted co-workers.
The cost and size of braille books can be
greatly reduced by storing them on data
cassettes. Microprocessors will play an important role in the devices that enable the
blind to read the data stored on the cassettes.
WEST COAST COMPUTER FAIRE
45
BOX 1579. PALO ALTO CA 94302
Figure A-1
The author is reading the output
of a braille printing terminal with
his right hand.
Figure A-2
An Optacon is being used to read
from the screen of a Tektronix
display terminal.
Figure A-3
An Optacon is being used to read
a hardcopy printout.
Figure A-4
The braille edition of The Art of
Computer Programming, Vol. 1
by Knuth.
WEST COAST COMPUTER FAIRE
46
BOX 1579, PALO ALTO CA 94302
These tests demonstrate the feasibility of
the concept that optical information alone
presented on the skin can contain sufficient
information to permit the blind to avoid
obstacles and steer a clear path for successful
indoor mobility.
BLIND MOBILITY S'ruOIES WITH A MICROCOMPUTER
Carter C. Collins, William R. O'Connor
and Albert B. Alden
Smith-Kettlewell Institute of Visual Sciences
and Department of Visual Sciences
University of the Pacific, 2232 Webster Street
San Fran¢isco, California
ABSTRACT
In the evaluation of a new sensory aid for
blind mobility comprising a wearable tactile
vision substitution system we have made a
number of behavioral measures. The initial
batch of data was collected and reduced by
hand which pointed up the necessity for automating the procedure in order to process the
volume of data anticipated in a large scale
evaluation program. For this we have designed
and built an 8080 microcomputer based blind
mobility evaluation system, utilizing an ultrasonic triangulation ranging method, which today
contintinuously tracks and plots the real time
course followed by a blind person in our 20 x
30 foot mobility laboratory space. The detailed path of the blind walker is recorded in
graphical form on a monitor screen overlayed
by the plan of arrangement of obstacles in
one of many arbitrarily chosen obstacle courses.
BASIC language software is being developed
to compute, store and display some of the more
important mobility parameters, including collision avoidance, average walking speed, location
and duration of stops, total travel time,
travel efficiency and safety. As an example
of the kind of output this system will be required to produce we relate the findings of
our initial study.
We have examined the effects of some 40 consecutive practice trials on the safety and
efficiency of indoor mobility performance of
each of two blind subjects in a laboratory
travel environment. After two hours mobility
experience with only the tactile imaging device,
blind subjects walked freely at about one foot
per second on a 65 foot mobility course through
a room cluttered with furniture, detecting
and avoiding over 95% of the obstacles (100%
in half the trials). Subjects decreased stop
and search time from 61 to 14 seconds with
a 120 second mean total travel time. Travel
efficiency (percent time spent walking) increased from 63% to 86% during these trials.
WEST COAST COMPUTER FAIRE
Introduction
Vision is probably our most important
mobility sense, permitting us to walk rapidly,
accurately and confidently wherever we wish to
go. Since this source of mobility information
is not available to the blind, there has long
been the need for an effective sensory aid
permitting safe and efficient travel by the
blind pedestrian. The latest electronic
guidance devices (1,2) have not yet been
generally accepted by the blind community (3),
and today the long cane remains their best
available mobility aid (4).
It has been the specific aim of this present
preliminary investigation to determine the
feasibility of utilizing wide field optical
information impressed onto the skin as a mobility aid for the blind. In this study we have
set up a synthetic mobility environment and
have made a number of objective measurements
of the mobility performance of blind subjects
using a newly developed wide field of view
sensory aid as their only guidance device.
This preliminary study alone required over
150 man hours of data manipulation. In order
to expedite processing of the voluminous data
expected in a full scale evaluation program
it has become necessary to devise an automated
data collection and reduction system. This
system was designed to follow a person picking
his way through our laboratory mobility testing
area. We required sufficient range to cover
the 20 foot square mobility course in our
20 x 30 foot laboratory. Range resolution of
less than 2 inches was required to detect collisions with obstacles, and this can clearly delineate individual footsteps. The sampling
rate must be fast enough to preserve the continuity of the information, even with rapid
motion, without in any way encumbering the
motion of the pedestrian being tracked. In
addition, the system had to store the X-Y
coordinates of each sample of the pedestrian's
track for statistical analysis of a trip
through the room, and provide sufficient extra
machine capability for storing the outlines
and positions of furniture and other obstacles
in the mobility course.
47
BOX 1579. PALO ALTO CA 94302
audio modulation signal for about 15 ms. to a
low power 28MHz R.F. transmitter. The outputs
of the two flip-flops start two counters
counting the output of a 10kHz clock signal
generated by the microprocessor. The 4kHz
modulation of the broadcast signal is detected
by a tuned filter in the R.F. receiver carried
by the subject. This detected signal is used
to turn on the ultrasonic ( 40kHz) transmitter
worn by the subject. The ultrasonic receivers
each receive the transmitted 40kHz ultrasound
delayed by a time proportional to the distance
from the subject to the receiver. The first
received 40kHz signal from each receiver
exceeding a set threshold is used to reset the
flip-flop associated with that receiver. This
resetting stops the counter whose count is
proportional to the measured distance. (For a
10kHz clock, one count represents a resolution
of 1.32 inches.) The microprocessor reads the
counters, resets them and initiates a new
cycle with a start pulse.
X-Y Coordinate Computation. The ultrasonic
triangulation data must be converted to
X-Y coordinates for plotting and convenient
data reduction. The triangulation data Rl and
For training purposes, we wanted to provide
the possibility of performance feedback to the
pedestrian, in something approaching real time,
by the operator of the system; i.e., a meaningful way to permit the pedestrian to compare
one passage taken through the room with
another, based on information collected by the
system, and made available shortly after completing a passage.
The system which we have designed comprises:
• An ultrasonic locator system consisting
of an RF-ultrasonic transponder to mark
the position of the blind pedestrian by
triangulation.
A triangulation (R ,R ) coordinate to
l 2
Cartesian (X,Y) coordinate conversion
program with an output graphics display
map of the pedestrian's path.
A mobility performance evaluation program
resulting in archival mass storage of
path (X,Y and time) coordinate and performance evaluation data.
Ultrasonic Locator System. The blind pedestrian locator and tracker consists of a
"wireless tether" similar to the apparatus
used by Strelow, Brabyn and Clark (11) to
follow the progress of blind pedestrians in
their mobility laboratory at Canterbury
University in New Zealand. However, our system
eliminates the three long strings which they
attached to the subject's head in order to
compute his location in the laboratory. Such
strings would become entangled in the overhangs,
columns and other tall obstacles encountered
irt our mobility laboratory. We have replaced
the strings with two invisible RF-ultrasonic
links, leaving the pedestrian completely free,
with no strings attached. This ultrasonic
triangulation technique is diagrammed in
Figure 1.
-""The c-omponetits--of this- s-Ys-ten'i -- l;fte-:--1) a transponder (transceiver) worn by the
blind pedestrian made up of an RF receiver
which pulses an ultrasonic transmitter (small
40kHz loudspeaker). This RF receiver picks up
the signal from
2) an RF transmitter triggered by
3) control electronics which are controlled
by
4) the microcomputer and
5) two microphones which pick up the ultrasound pulses generated by the ultrasonic transmitter.
These microphones feed their amplified
signals back through the control electronics
to the microcomputer which generates the
X-Y coordinates of the pedestrian from the
ultrasonic time delays as described later.
The components of this triangulation-tracking
system are shown in Figure 2A, and the system
is being worn (by O'Connor) in Figure 2B.
The operation of the ultrasonic system is
as follows. The microcomputer (Figure 1)
sends a start pulse to the control electronics.
This sets two flip-flops, and applies a 4kHz
WEST COAST COMPUTER FAIRE
R2 are converted to X-Y Cartesian coordinates
in the following manner.
To help speed the calculations some algebraic manipulation was done to allow one of the
two equations to be solved without the use of
square roots.
Referring to Figure 1:
x
=L
(a)
(b)
(c)
- X'
where L is the length of the
testing area, in this case
20 feet.
x2 + y2
=R
2
----- - 1
y2 = R 2 _ x2
1
where D = the
separation between
the microphones.
(D_y)2 + x2 = R22
expanding (c):
D2 _ 2DY + y2 + x 2
R 2
2
substituting (a) :
D2 _ 2DY + R 2 _ x2 + x2
1
-2DY
(1)
Y
R
2
= R2 2
2 _ D2 _ R 2
1
R 2 + D2 _ R 2
I
2
2D
from (a)
,
(2)
48
X ="'R
2
1
2
- Y
BOX 1579. PALO ALTO CA 94302
Even more simplification and speed-up of t~e
software was possible due to the fact that the
combination of resolution (an inch or two) and
range (from 10 feet out to the 36 foot diagonal
of the 20 by 30 foot room) allowed the use of a
single computer werd of precision in the input,
provided that the data was normalized for this.
In operation the system runs at the aforementioned tenth second repetition rate and its
resolution is fixed by the clock applied to
the counters. This determines the minimal
change in delay, between the strobe and the
returned pulse detectable in either channel.
In one of the clock periods chosen (C 100 msj
sound will travel 1.32", which in turn is the
unit of measure used with the 256 x 256
graphics output for a useful length in either
direction of 28.16 feet vs. the mobility
course dimension of 20 feet on a side.
The X-Y coordinate computing application
program is written in 8080 machine code and
runs on an IMSAI (Figure 3) equipped with the
following hardware:
Extensys 64K dynamic RAM card with
appropriate disables.
IBEX 16K PROM board with the (half used)
Processor Tech. ALS-8 firmware used in
development.
Chromemco BYTESAVER with the application
and I/O programs in EPROM.
IMSAI PIC-8 with the counter-mux. hardware built in.
Processor Tech. CUTS board for "CUTER"
based mass storage on cassette.
Processor Tech. 3P&S board for I/O.
Matrox ALT 256**2 graphics board for
plotting the output.
Matrox ALT 2480 board running the system
output.
Everything is tied together as illustrated in
Figure 3.
The X-Y coordinate computing program is
written in 8080 machine code and is independent of any higher level language or operating
system. During operation the program behaves
as follows. An initialization routine sets up
the stack pointer, a jump table, and the
address of both the list and a buffer where
sampled data is kept temporarily. It then
programs the priority interrupt/programmable
counter board to interrupt the system at tenth
of a second intervals, and halts.
The interrupt service routine controls the
program; when called it inputs data from the
previous cycle, issues a reset to the hardware
and outputs the R.F. strobe.
The time during which the hardware is acquiring new data, is used in this manner to
process the data that is now loaded into RAM.
In processing, the data is first checked for
errors and then normalized. The "Y" coordinate
is then found using eq. 1, that result is
stored and used in the finding of the "X"
coordinate with eq. 2. The pair of coordinates
is then output on the map display, and stored
WEST COAST COMPUTER FAIRE
49
on a list which resides in RAM, filling upwards
from 0l~~ H. Finally the lists' pointer is
incremented, and things halt until the next
interrupt.
Control of the ultrasonic system is implemented through one output and one input port
on the Chromenco 3P+S (I/O) board. The output
port uses three bits to operate a custom built
circuit mounted on the Priority Interrupt/
Counter board (PIC-B) containing two ei~~t-bit
counters, a multiplexer to switch between them,
and buffers. Bit zero starts the counters at
strobe time (they are stopped from counting by
the detected ultrasonic pulse). Bit one selects
one of the two counters, and bit two resets
them after they have been read. Input is via a
single eight bit wide input port.
System I/O is through a Wyle Computer Products CRT and keyboard terminal chosen for
economy. Input from it required a custom software package and, an input port and a status
bit on the 3P+S board.
Output to the CRT comes from a MATROX 24x80
memory mapped video board (which occupies 4K
of space because it uses twelve address bits to
access characters by row and column) chosen for
compatibility with printer formats. It also
needed a custom softward package.
Pending the arrival of our disk, development
tools were Processor Tech's. ALS-8 firmware
module (8K) for assembler, editor, and debugger
as well as their tape based CUTER system and
board for mass storage.
The applications package has its own special
output (Figs. 2 and 3) on another CRT graphics
monitor; this is driven by a MATROX 256*256
graphics board, which looks to the system like
four I/O ports. They include; "X" address,
"Y" address (both 0-255), intensity (on-off,
but expandable with decoding and multiple
boards for colors and grey scale) and screen
erase. A sample output of a pedestrian's track
on the graphics monitor is illustrated in Fig.
4B.
There appear to be provisions for synching
the rasters of the two MATROX boards and summing their video to get graphics and alphanumerics in one combination display.
Taking its input from the X,Y coordinate
computing program's output, the mobility
performance evaluation program in BASIC language should prove very flexible. Any changes
or additional relationships to be calculated
can be simply added at any time. The mobility
performance parameters which we have found most
important to be evaluated at this time include:
X,Y coordinates of blind pedestrians'
position
instantaneous velocity and acceleration
of the subject
average walking velocity over entire
course
location and duration of stops
length of individual paths between stops
total distance traveled by subject
BOX 1579, PALO ALTO CA 94302
structed of corrugated cardboard for subject
safety (Fig. 6).
Sixteen different courses were layed out on
graph paper with obstacles located on numbered
squares corresponding to those of the room.
This facilitated quick relocation of obstacles
and permitted a rapid and essentially random
temporal sequence of different layouts to be
presented to each subject. Illumination was
30 to 50 footcandles at floor level.
The mean total path length of a single mobility course was 65 feet (20 meters). Of the
30 total obstacles, it was expected that only
10 or 20 might be closely encountered by the
blind subjects as they made slight variations
in their travel paths. The mean number of
closely approached obstacles requiring avoidance was 12 per course. The mean free travel
path length between obstacles was 5 feet. There
were 6 turns per route on average.
The mobility course and evaluation design
philosophy has borrowed heavily from the precepts of Armstrong (8), Kay (1), and, in particular, Shingledecker (9), in Emerson Foulkes
laboratory.
Subjects. Two blind male subjects, age 28
and 37, were utilized in these experiments.
Neither subject possessed any degree of functional vision and each had been blind for over
25 years. Both subjects were excellent cane
travelers with years of practice. They each
had over 200 hours experience with other, fixed
tactile imaging devices.
Procedure. Subjects were initially given
about 15 minutes of pretrial mobility experience with the sensory aid. They were given a
verbal description of the nature of the courses
and were requested to walk at a normal pace
avoiding collisions and that the course was
designed to keep the "shoreline" left. The
experiment consisted of the subjects walking
-c-ompletelythrough--respettively39 -aifd 48 con- secutive trial courses, each one selected from
the 16 different courses, such that each course
was different from the last. Succ~ssive trials
were made about every five minutes. Experimental
sessions lasted from about 15 minutes to one h~
The entire series of tests were recorded on
videotape and the experimental data were obtained by a number of replays of the tape. Two
observers with stopwatches and a counter measured the distance and duration of each short
path leg walked by the subject; number and
duration of stops; number, location and type of
collision, and number and size of head movements.
The detailed path of the subject was recorded in graphical form overlaying the plan of
arrangement of obstacles for each course as in
Figure 4A. A separate plot resulted for each of
the 87 total runs. Data were correlated with
these graphical records.
Results. The travel safety of the blind
subjects was scored in terms of collision
avoidance, that is, the percent of the encountered obstacles with which they avoided collid-
number and direction of turns taken by
subject
number of collisions with obstacles
number of obstacles approached by subj ect
collision avoidance, i.e., percent of
encountered obstacles with which
subject avoids colliding
total travel time
travel efficiency
the productive walking index or percent
of total time spent actually walking
other factors, as are deemed important,
can be programmed for computation in
simple BASIC language.
Examples of such reduced data are taken from
our original batch of manually processed information.
Sensory Aid. The wearable sensory aid utilized in these experiments (Figs. 5 and 6) has
been developed over the past ten years (5,6,7).
It utilizes a miniature , monolithic, wide angle
television camera mounted on the frame of a
pair of glasses which serves as the artificial
eye of the sensory aid. Images from this
camera (Fig. :-) are electronically impressed
point-for-point onto the skin of the abdomen
by means of a 10-inch square array of 1024
coaxial stimulus electrodes mounted on a flexible. elastic supporting garment worn directly
against the skin of the abdomen (7). The complete system weighs five pounds including two
pounds of rechargeable nickel cadmium batteries
for eight hours of operation.
A small and versatile optical system was designed by one of us (CCC) for blind mobility
use with the sensory aid. The optics provide
an adjustable field of view up to 1800 , an
infinite depth of field which permits operation
with no focusing adjustments required by the
subject, and a large aperture (f:0.5 for operation with available room light.
_... Preliminarytrials indic-a-t-e -th-at a 9O-degree
field of view appears to be about the best
compromise between sufficient resolution with
the 32-line system to detect obstacles and the
very wide peripheral field of view necessary
for mobilit . The optical axis of the lens was
directed 45 6 downward to include a field of
view from just above the horizon down to the
space directly in front of the subject's feet
in order to permit him to detect low obstacles
within a footstep of his path. This field of
view and lens direction were used throughout
these tests.
Mobility Course. The experiments performed
in this study were carried out in a modular,
quickly alterable and objectively definable
synthetic indoor mobility environment contained
in a 20 by 30 foot room. This mobility course
was layed out in a Cartesian coordinate grid
system with aoo foot square vinyl floor tiles
(Fig.4A). The obstacles consisted of real
walls, a door frame, pieces of real furniture,
high and low tables, chairs. a podium, wastebaskets, boxes and wall curtains, as well as
simulated columns and overhanging beams conWEST COAST COMPUTER FAIRE
50
BOX 1579. PALO ALTO CA 94302
ing. The collision avoidance score showed a
mean value of 91.77% for both subjects combine~
with an initial value of 84.5% and final value
of 95.04%; an increase of 12.5%. For subject
B.G. the mean was 89.87%. The linear regression fit of the data for this subject indicates
an initial score of 86.75%, increasing to a
final score of 92.99% for a 7.19% increase over
39 trials. The mean collision avoidance score
for subject L.S. was 93.31% with an initial
score of 89.91% and a final score of 96.72%,
an increase of 7.56% over 48 trials. This performance is shown in Figure 7 with the linear
regression fit of the data.
As suggested by Shingledecker (9), the
change in travel time with practice was analyzed in terms of three components of travel
efficiency: walking speed, number of stops,
and duration of stops along the travel path.
The mean total time to negotiate the mobility
course was 120.3 seconds for both subjects.
Subject B.G. took more time at the outset,
183.4 seconds vs. 108.9 seconds for subject
L.S. But with two hours training both subjects
took the same final time, about 98 seconds
mean to complete the course. During this
experiment subject B.G. decreased his total
travel time 46% with a mean time of 141.1
seconds (Fig. 8). The faster walker, subject
L.S., decreased his total time by 10% with a
mean of 103.3 seconds total travel time to
complete the mobility course.
Walking speed indoors was fairly stable at
~.8 feet per second mean for both subjects.
(We have observed indoor walking speed to be
roughly half that of outdoor speed for both
blind and sighted persons.) The mean walking
speed for subject B.G. was . 73fps, showing a
5.6% increase (Fig. 9). The mean walking
speed for subject L.S. was .84fps over 48
trials. We could not measure a change in his
~alking speed.
The mean number of pauses or stops along
the travel route to search for a new cleartravel path was 2.95 for both subjects combined.
They initially made a mean of 5.11 stops decreasing by 80.3% to a mean of 0.92 stops by
the end of the experiment. Subject B.G.,with
a mean number of stops of 3.36, showed a 72.8%
decrease from an initial value of 5.5 stops
to a final value of 1.2. The mean number of
stops for subject L.S. was 2.62, with an
initial value of 4.8 and a final value of 0.7,
for a decrease of 85.4% during the course of
the experiment. The mean number of stops for
both subjects combined decreased from 5.11
initially to 0.92 stops at the end of the
experiment, an 80.3% decrease.
The mean total stop and search time for
both subjects combined was 37.5 seconds,
varying from an initial value of 61.3 s~conds
to a final value of 13.7 seconds; a 78% decrease over the duration of the experiment.
WEST COAST COMPUTER FAIRE
Subject B.G. with a mean total stopped time of
55.2 seconds decreased 88.3%; from 98.8 seconds
initially to 11.6 seconds final value (Fig. 10).
Subject L.S. exhibited a mean total stopped
time of 23.2 seconds, decreasing 49.8% from
30.9 seconds initially to a final value 15.5
seconds.
The mean duration of each individual stop
and search period was 12.93 seconds for both
subjects combined; initially 12.0 seconds, it
actually increased to 14.89 seconds final value
(but subjects averaged only one stop at the end
of the experiment).
The PWI, or Productive Walking Index, introduced by Armstrong (8), is a measure of the
continuity of progress of the subject towards
his goal. It is the percent total time spent
actually walking. The mean PWI score for
subject B.G. was 68.2% with an initial value
of 48.7% and a final value of 87.7% for an
increase of 80%, an impressive practice effect
as shown in Figure 11. The mean PWI score for
subject L.S. was 80.60% with an initial value
of 74.12% and a final value of 87.12% for an
increase of 17.48%. The mean PWI for both
subjects was 75.04%. Initially 62.7%, with a
final value of 87.3%; mean PWI for both subjects increased 39%.
Discussion. The experimental results indicate that the optical information provided by
the new tactile television sensory aid has permitted blind subjects to safely avoid most
obstacles and to steer a clear path for successful and increasingly efficient indoor
mobility.
Apparently the device immediately provided
them anticipatory information about the travel
route as evidenced by their initial 85% collision aVOlaance score. We are encouraged to
believe that with considerably more practice
subjects could learn to avoid essentially all
obstacles, as suggested by their 95% collision
avoidance score after only two hours of practice, and 100% in 10 out of the last 12 trials
for subject L.S. (Fig. 7).
The blind subjects quickly learned to increase their travel efficiency with the sensory
aid as shown by the 39% increase in their Produc
tive Walking Index and 31% decrease in travel
time during the same two hours practice. The
most significant component contributing to the
decreased time to complete the mobility course
was the 80% decrease in the number of stops
made by the subjects, resulting in a 78% decrease in stop and search time. By the end of
the experiment subjects were averaging about
one 15 second stop for the entire 65 foot
mobility course. The relatively long scanning
time taken by subjects at each stop may well be
due to their attempts to recognize details of
obstacles and escape routes with the low resolution (3 0 ) due to the 90 0 wide angle of the
0
display (90 0 /32 lines:3 ) .
51
BOX 1579. PALO ALTO CA 94302
References
To meet this problem we now have designed
and built a 16 to 1 zoom lens with a field of
0
0
view from 10 to 160 • This will permit the
blind pedestrian to utilize a wide field of
view for orientation and navigation, but when
he encounters an unrecognized obstacle he will
be able to focus his attention by zooming down
onto the details of the object in order to
better recognize it. Thus, we believe subjects
will be able to reduce their stop and search
time.
Because of the inordinate amount of time
required to collect and process this type of
information, a great body of valuable mobility
performance and rate of learning data would go
uncollected if an automated collection and
reduction system were not available. We have
designed a small, economical, dedicated microcomputer system to fill this need.
1. Kay, L:Conf on Eval of Sensory Aids,NAS,1972
2. Nye, P:Prelim Eval of C-4 Laser Cane, NAS,
1973
3. Grays tone , P & McLenan: AFB Res Bul lI, 173,
1968
4. Hoover, R:in Blindness, P Zahl, Princeton
Press, 1950
5. Collins:Proc Nat Sym on Info Display ~, 290,
1967
6. Collins: IEEE Trans Man-Machine Syst ~, 65,
1970
7. Collins &Madey: Proc San Diego Biomed Sym
13, 1974
8. Armstrong, J: Human Factors in Health Care,
Pickett and Triggs (Eds) Lexington Books,
Lexington, MA, 1975
9. Shingledecker, C: PhD Thesis, U Louisville
KY, 1976
10.Gibson, J: The Senses Considered as
Perceptual Systems, Haughton Mifflin,
New York, NY, 1966
11.Strelow, ER, J.A.Brabyn and G.R.S. Clark:
Behavioral Research Method~ and Instrumentation, 1977
Acknowledgements
We especial~acknowledge the professional
collaboration of Mr. Bruce Smith who wrote the
applications program which will form the basis
of another article to be published elsewhere.
We wish to acknowledge the expert professional assistance of Mr. Jim Brodale in the
preparation of the line drawings and of Ms.
Helen Sullivan in making the photographs. We
also express our appreciation to Miss Gail
Matthews for her arduous efforts in producing
thiscarnera readymartuscript -on short notlce~
WEST COAST COMPUTER FAIRE
This investigation was supported by
the Department of Health, Education and
Welfare, Public Health Service Grant
Number 1 ROl EY00686 from the National
Institutes of Health, National Eye
Institute; Grant Number 501 RR-05566
from the Division of Research Resources;
and Grant Number SKF1004 from the
- -Sm! th":';:kettTewef"f-Eye Research- Foundation.
52
BOX 1579, PALO ALTO CA 94302
MOBILITY COURSE AREA
ULTRASONIC TRACKING SYSTEM
~1·~-----------20'------------~
RF Receiver
).
Trig.
.I
X
R,
o
Worn by Blind
Pedestrian
C\I
R2
~
y
.7
j~I.:' :' :'-X :' :' :' ~"-I-------~
Control
Electronics
Microcomputer
Y
Coordinates
of Pedestrian
Ultrasonic
Receiver No.1
Fig. 1. Schematic layout of the microcomputer
controlled ultrasonic locator system for
generating the X-Y coordinates of a blind
pedestrian from ultrasonic triangulation data.
Fig. 2A. Components of the ultrasonic
locator system for blind mobility tracking.
The RF receiver is the small box in the center
foreground with its trailing antenna. This
receiver is generally worn on the belt of the
blind pedestrian. The ultrasonic transmitter
is shown in the right foreground as a small
omnidirectional ultrasonic loudspeaker mounted
on a lightweight headband worn by the pedestrian being tracked. The RF transmitter is
in the left foreground and the IMSAI 8080
microcomputer in the lower background. The
control terminal on the right and the output
display graphics monitor is on the left8 The
blind pedestrian's path is traced out in detail
on this monitor. The sequential coordinates of
this path are stored in memory and subsequently
dumped onto a cassette recorder (not shown)
when the 64K memory is full.
WEST COAST COMPUTER FAIRE
53
Fig. 2B. The microcomputer controlled ultrasonic locator system showing the components in
use. The subject is wearing the lightweight
ultrasonic transmitter (loudspeaker) on his
head and he carries the RF receiver. The two
microphones (on stands at the far edges of the
picture) pick up the ultrasonic pulses from the
subject and deliver them to the ."icrocomputer
which continuously computes the x-Y coordinate~
of the subject and plots them on the graphics
monitor screen (left background).
BOX 1579. PALO ALTO CA 94302
BYTE-
AlS-81--_---'-"""---4 SAVER
64K
RAM
CPU
-.,
___ --J
GRAPHICS
MASS STORAGE
RIGHT
Fig. 3. The hardware complement of the microcomputer controlled ultrasonic locator system
(described fully in the text in the X-Y
coordinate computation section).
WEST COAST COMPUTER FAIRE
54
BOX 1579. PALO ALTO CA 94302
8
VIDIO TAPE
MONITOR
~
15
DCHAIR
/... ............
COLUMN,'
~
ABLE
............
0/
\
lUi
LJ
8
10
TABLE
q
"..:..:..---------- "
\\I!'
5
"
,-----.1
[TABLE [ I
\ \'
\
I
: "
__
I_-~-
START
X
BLACKBOARD
5"
10"
15"
20"
TYPICAL OBSTACLE COURSE 120"x 30" ROOM)
25"
Fig. 4A. (TOp) Plan of one of the 16 mobility
courses with a typical path walked by a blind
subject. Note he avoided all obstacles
(except the small basket on the floor) and
found a clear path through the maze of
obstacles with only the tactile mobility aid.
Fig. 4B. (Bottom) CRT tracing of a similar
path of subject plotted by ultrasonic tracking
device and objective microcomputer evaluation
system.
",.=- ~
M'"'ATURE TV
CAM"~-~
~/ ~?~r(
,"l
\'-(
THIN flEXIBLE CAMERA CABLE
t
,
.
{
.-/
',-
"
Fig. 5. Artist's conception of the l024-point
fully portable electrotactile mobility aid.
The miniature TV camera mounted on a pair of
glasses permits the object at which the wearer
points his head to be imaged on the skin of
his abdomen. The image is converted to a
pattern of electronic pulses applied to the
skin by an array of small electrodes in a
flexible undergarment.
WEST COAST COMPUTER FAIRE
Fig. 6. One of the 16 furniture arrangements
of the indoor mobility course used for blind
mobility tests. Course required subject to
avoid overhang (in background), and thread
between chairs and tables. In the background
is a cul-de-sac of tables he was required to
negotiate.
55
BOX 1579. PALO ALTO CA 94302
..,
_ 100
+
+
+
+++++ +
+
+
+
-
++++ +
~+++++
c
Q)
(,)
+
'-
Q)
+
~
......
+
... +
.".
+
Q.
...
++
+ +
+
c
~
+
+
-
Q)
(,)
+
+
+
+
80
+
+
"0
0
«>
LS
+
c
0
C/J
C/J
60
0
()
10
0
20
40
30
50
Trial Number
Fig. 7. Collision avoidance mobility data is
one measure of blind pedestrian safety with a
sensory aid. Here, performance improves over
48 trials.
~ 400
CI)
a)
350
~
g 300
()
Q)
250
Q)
+
~200~+
++
+
BG
o
+
+
+
() 150 +
.8
~
i=
100
+
+
+
+
+
++
+
+++++
++
+ + +
++++
+
50
co
~
00
10
20
30
Trial Number
40
50
Fig. 8. Total time to complete each course is
a measure of efficiency of blind mobility.
WEST COAST COMPUTER FAIRE
56
BOX 1579. PALO ALTO CA 94302
:e
1.4
ITI
(J)
-I
n
o
»(J)
-I
8~
"U
C
-I
fI1
u
~ 1.2
..........
+
~ 1.0
-0
.8 ~++
Q)
+
a. .6
+
+
CJ)
Ol
c
~
+
+ +
Q)
+
+
+
++
++
+~
++
+
+
+
+
+
+
+
+
BG
+
.4
......
«i
~ 80
~ .2
:::0
0
"1l
~
+
()
0
10
20
30
Trial Number
40
50
Fig. 9.
+
Io-
m
+
E
Walking speed of one subject.
+
+
1
:: 60
:::0
fI1
100
+
~ 40
..c
I
"r"
_A
()
10-
a:s
~ 20t
U1
...-J
100
0'
0
~
a.. 80
BG
+
...
...
--------.....
...
...
...
...
+
10
...
++
30
20
Trial Number
++
+
...
---------
40
as
~
><
E
i= 60
Fig. 10. Cumulative time subject stopped to
search for new path during each trial •
Ol
C
..::t:.
......
~ 40
"U
C
Q)
U1
(D
»
r
o
»
r
u
Q)
a..
BG
20
0
0
10
20
30
40
50
-I
Trial Number
(D
Fig. 11. Productive Walking Index (PWI) is
the percent of the total time spent actually
walking.
o
n
»
.a::..
w
o
N
5C
THE DESIGN OF A VOICE OUTPUT
A~APTER
FOR COMPUTER
William F. Jolitz, 2124 Parker Street, Apt. 309, Berkeley, CA 94704
ABSTRACT
The design of a Voice Output Adapter for visually handicapped
comp".lter programmers is discussed. This device, based on a
DEC LSI-ll microcomputer and a VOTRAX vS-6 synthesizer will
generate speech from ordinary typed text. Phonetic translation
is accomplished by a set of rules, instead of a dictionary.
Altho-.lgh this device lises a VOTRAX synthesizer, and experimentation has been limited to English, the device will act independently of lang~age or synthesizer type. All software will
reside in the main memory; no peripheral memory will be used.
This results in a compact device.
Introduction
(except, of course, electricity), communicate
very rapidly, and require no training. Extending this thought further, Braille methods leave
hardcopy, while voice methods are suited for
interactive use. The differences are similar tc
those fo~nd when choosing either a CRT or a
printer type terminal, and this simile is accurate enough to predict where voice or Braille
(or both) can fit into an application.
In data entry applications, hardcopy is a
hindrance, so CRT terminals are used. Conversely, CRT terminals are a hindrance when composing programs, since often you need hardcopy
to refer to later. Hardcopy has nice properties
that are easy to handle, easy to transport, and
hardcopy is useful in discussing program/data
text among a group. Many computer systems mix
both types of devices to take advantage of both.
Attempts have been made to use speech synthesis to aid visually handicapped people, but
most have not encountered great success. Often,
these attempts were too costly, too complex, too
limited or otherwise impractical. An attempttll
is currently being made to break this "practicality" barrier by designing an inexpensive device which co~ples a Hewlett-Packard HP 9825A
desk-top calculator (see A-I) to a VOTRAX VS-6
voice synthesizer. This voice display will
allow completely unhindered use of the calculator by unsighted operators, and will require no
extra training to use. Since the unit is based
on a microprocessor, it will be compact and
relatively inexpensive -- two features which
lend themselves to mass manufacturing. The designed system is not language-orhard:ware--depen- Another---advantage of-the voice method -is
dent. It is possible to have a multilingual de- that it can be used by sighted users to double
sign and/or interface to other computers or
check data entry. Feedback of this kind has
calculators.
been found to be very efficient at detecting
entry errors in a flight research experiment.t2]
Why Voice? There are different methods
In addition, an easy-to-use speech synthesis
that can be used to present computer output to
system (as this basically is) allows for misthe blind. A method that has been widely emcellaneous special purpose applications (paging
ployed is using a Braille terminal to translate
systems, etc.) Voice is a good medium for geta line of text into Braille embossings, which is ting a short message across from a computer to a
a direct method of approaching the problem, but
person.
one with some limitations. Some of the limitaA Sample Session With The Voice Display
tions of this Braille method are that it reSystem. In order to understand this voice
quires copious quantities of consumable paper,
system, let us look at how it will work in use.
prints at a slow rate and requires Braille
In the following example (see A-2), the operator
training.
will type a one-line program into the calculator
An alternative method is to use voice outwhich will display "hello" on the calculator's
put from a speech synthesis unit. This method
display panel when run. The "dsp" mnemonic is
has not been frequently used, primarily due to
a calculator function to display text on the
the high cost of the hardware. However, with
display panel. As can be seen in the example,
the recent revolutions in the microelectronics
the operator presses a key on the calculator,
area (which made personal computing a reality),
then the key's name is spoken by the synthethis is no longer a problem.
sizer. This is called echo-feedback~ and it's
Voice methods seem to complement Braille
purpose is to allow the user to monitor text
methods, in that they require no consumables
WEST COAST COMPUTER FAIRE
58
BOX 1579. PALO ALTO CA 94302
input on a character by character basis. When
the operator presses the store key, the calculator accepts the typed line of text as a program step. Upon observing the calculator accepting the program step, the voice system reads it
out word by word. The operator can execute the
program by press ing the run button, where the
entered program then w-rites "hello" on the display (which the voice system reads out) and
stops. To review the program entry, the operator can choose to "fetch" it, whereby the program step is read out as it is displayed.
Basically, the calculator's display is expressed with speech instead of print. It is as
if you had a person reading the display for
someone who was entering a program but could
not see the display.
solely on processing speed, physical size, and
high level language support. Processing speed
is really a function of what kind of operations
are most frequently performed. For the speech
synthesis software, it was empirically discovered that 16 bit pointer arithmetic operations
would be the most common (70% of the time the
software is searching or indirecting through
matrices, many larger than 256 bytes long).
The LSI-II was chosen because it can handle
pointer arithmetic more rapidly than other
available choices (z-80,8085,6800). A high
level language (C) was also available that generated effiCient-code.
VOTRAX Synthesizer. Speech synthesizers
are constantly improving, as need for clearer
speech is required. The pace of such change is
Prototype Philosophy. The intent of this
so great that last year's products usually are
project is to show that an inexpensive device to surprisingly outmoded by current products. The
aid blind computer programmers can be made. No
synthesizer unit used in this project is an
attempt is being made to engineer a product; all example of this; although it has moderately good
that we intend to do is demonstrate the ideas
performance (intelligibility), in a few months
for such a product with a working model. All
it will probably be superseded. However, .. this
equipment is stock, with the lion's share borunit was chosen because it was available, -and it
rowed from various parts of NASA Ames Research
generates reasonably clear speech. It has a 64
Center, Digital Equipment Corporation and the
phoneme sound-capacity with four possible levels
Sensory Aids Foundation. All software is genof inflection (one should remember that a
erated in the high level language, C, (3) for
phoneme is somewhat of an abstract concept of
being a basic sound from which words are made
ease of programming (in systems programming
up. Also, phonemes vary between languages and
applications, C is the APL of computer languages). Any additional reduction in program
dialects. When a manufacturer advertises a device with a capacity of 64 phonemes, this means
size, through using assembly language, would
the device has 64 available sounds which mimic
mean a larger cost in programming time and
frustration (anyway the C compiler used genersome basic sounds in a dialect of a language;
usually not complete In coverage.)ates size optimized code).
Intercept Interface. At the start of this
project, some limitations were placed on the
interface hardware. One was that no modificaPracticality is a main concern in the
design of this system. Hardware was chosen with tions of any kind would be made of the calculator. In other words, access to the signals comavailability in mind. Although no attempt was
ing from the calculator's keyboard could not be
made to compact hardware, it was felt that
made via "pick offs" on the circuit boards of
overly large hardware would obscure the basic
concept of practicality. Hardware was chosen
the calculator, but instead must be made in a
more civilized manner by attaching to some conwhenever possible to reduce size. As a result,
all of the hardware associated with this project nector already available on the outside of the
calculator. It was found that keyboard and dis(less printer) is about the size of a breadbox.
play data could be obtained by subtle decoding
If one were to custom design the hardware (less
of the calculator's I/O bus. The device which
printer) with no major changes, except for removing redundant and unnecessary circuitry, one will accomplish such decoding is known as the
'WOuld probably have a well-stuffed 8" x 10"
Intercept Interface, which is presently being
board. Given future (fourth quarter 1978) tech- created by NASA Engineer, Donald Billings. By
nology, such a board could probably be built in using a Hewlett-Packard built card assembly to
buffer calculator data bus lines, no direct
a fourth of the size and at half the cost.
electrical connection will be made to the calcuThe hardware that is used for this project
lator from the microcomputer, so both units will
consists of:
1. DEC LSI-ll microcomputer (see A-3)
be isolated.
2. VOTRAX VS-6 Voice Synthesizer
Triformations Braille Printer. Rounding
3. Intercept Interface
out the systems hardware completely, a Braille
4. Triformations, Inc. BD-3 Braille
printer from Triformations, Inc. allows limited
strip printer
hardcopy use • Although the main emphasis in
LSI-II. Microcomputer selection was based this project is to demonstrate voice methods,
Hardware
WEST COAST COMPUTER FAIRE
59
BOX 1579. PALO ALTO CA 94302
some hardcopy capability is desirable (good
engineering practice). The BD-3 printer used
here, embosses Braille on a strip of paper
(Braille ticker tape!) Something should be mentioned about Braille: Contrary to popular belief, not all visually handicapped people reac
Braille. Many use low vision aids, which allow
them to read with what limited vision they have
left, by hand scanning a portable TV camera over
text which is viewed on a TV screen.
Software
The voice system has a large amount of
software, most of it is concerned with translating text strings into phonetic strings. There
are five major procedures:
1. Primative - I/O Monitor (PRIM)
2. Pronunciation by Rule (RULE)
3. Statement Symbol Translator (SYMBOL)
4. Display Parser (PARSE)
5. Braille Code Converter (CODE)
The interaction among these procedures is illustrated, (see A-4). Before discussing this figure, the individual procedures should be described.
PRIM. The Primative I/O Monitor functions
as a buffer to the I/O devices for the main procedures. All device-dependent code is present
here, so that communication between device and
system software is via queues. Housekeeping
functions, like device error detection/recovery,
are also PRIMi s responsibilities. By organizing
the monitor this way, only one procedure must be
modified to allow for different hardware.
computer speed and memory storage; it is conceivable that with faster computers and larger
memory, performance could be increased.
In RULE no special processing is done that
is particular to English language. Only generalized rUles are used, allowing this system to
be used with other languages. To change languages, all that is required is: 1) a new set of
rules to express phonetic transcription of the
language, 2) new symbol translation table, and
3) new voice synthesizer (only needed if new
language has a different set of phonemes; in the
case of Spanish, a trilled r is needed, and in
German vowels like
are also required). It
would be possible to have a multilingual unit
where rule sets could be selected (probably by
means of a memory bank switch), provided the
voice synthesizer has a large enough selection
of phonemes.
u
SYMBOL. A particular problem with most
computer languages is that they contain unpronounceable expressions, like * I + > = - etc.
which must be pronounced by use of p- symbol dictionary. This is the function of SYMBOL, to
pronounce programming language symbols. SYMBOL
will be large, due in part to the large number
of program symbols (approx. 200) the calculator
has (this includes program mnemonics, like prt
for print, gto for go to, cll for call, etc.)
In addition to pronouncing symbols, keyboard
echo feedback is accomplished by this module (to
avoid unnecessary duplication of code).
PARSE. In order to separate program
symbols from English text that is input to the
system, a simple LR parser is used to make the
distinction. PARSE does not blindly separate
RULE. To allow for a flexible vocabulary,
symbols and English, but instead attempts to
pronunciation by rule was chosen as the method
-- det-ermine ifthe--given text shouldbe-- eons-idered
totanv-eft textintci ph6rYetic t-ext, wtiichismore palatable to the voice synthesizer. Proce- as English text, program symbols, or raw program
dure RULE will accomplish this by checking input data, or a mixture of both. For example, we can
have the program symbol "prt" (meaning print),
text for rules that might apply and performing
or the English text "prt" (unpronounceable), or
simple transformations on the text when the
given rule applies (done in real time). Some of program data "prt" (pea are tee). Only syntax
can decide (not always successfully though)
these transformations are quite simple, like
which one of these ways the symbols should be
removing the silent "e" from the ends of words,
treated.
while others search for sinister medial vowels
(like the "e" in "houseboat"). A very readable
CODE. A problem in using Braille printout
article by Allen C4J describes this process
for computer use is that standard Braille does
well, including both SUccesses and failures of
rule sets (a translation example from this paper not have all the special symbols required by
is reprinted, see A-5). Failures usually result most programming languages. The disparity bein comprehensible but unusually pronounced words tween standard Braille and ASCII character sets
(not unlike the way a young child will pronounce is quite large. The differences are critical,
as a line of program code that might appear
a new word). A study of a rule system, similar
to the one that will be used here, shows that it (in say BASIC) as: P=Xt3 + 20 * X * Y + 3/Z
would have-the Braille form of P=X3 + 20XY + 3Z;
produces intelligible speech on 97% of running
which is totally different in meaning. There
text (5~. Considering that it is almost imposare a few methods to deal with this difficulty;
sible to maintain a dictionary of such scope
the Braille character set can be expanded, or
(also considering accessing such data in real
the unrepresented characters can be expressed as
time), this is very reasonable performance.
This capability is a.chieved by approximately 800 combinations of existing characters. Expanding
the Braille character set has the obvious probrules. The number of rules is limited by
WEST COAST COMPUTER FAIRE
60
BOX 1579, PALO ALTO CA 94302
lems associated with changing a widely ~sed
standard (can you imagine all the trouble that
might occur if ASCII was extended from 7 to 9
bits/character?) Playing with such standards
shouldn't be done lightly, as it might have disastrous consequences for general purpose use
(for example, making Braille much more difficult
to learn or use).
To avoid these problems, one can ~se the
standard code and use combinations of characters
to represent special characters, like using
"greater than" to represent ">". This has the
advantage of incorporating all character sets
that can be described (i. e. in APL, ~becomes
"quad quote", but there is difficulty with an
arbitrary symbol like ~!) A disadvantage is
that it now takes 8 - 10 characters to represent one symbol, which wouldn't be bad if it
wasn't for the fact that Braille takes up
four to six times· as much space to print
as standard text. The compromise that has
been chosen is to use compressed mnemonics, like
"cln" for ".11
With the above adjustment in character
sets, the Braille software allows listing of the
calculator's program on the Braille printer. An
ideal situation would be to list Braille and
typed versions simultaneously on the same
paper in adjacent columns. This would allow
easy discussion of the program between sighted
and unsighted programmers, as each could locate
errors or discuss critical sections without
shuffling around. Unfortunately, this takes
special hardware which is not available.
by using a set of rules. Echo feedback of the
calculator keyboard is also done by the ~icro
computer. In addition to the voice system; a
Braille strip printer will be used to frovide
hardcopy on demand. The complete system will
be compact and portable.
How It All Fits Together. The software
procedures described interact with each other
along the lines in the Program Interaction
Graph (see A-4). PRIM acts as a transparent
buffer to the other four procedures b:r performing I/O functions to/from a device, from/to a
queue. PARSE reads the current display line
from a queue, and then separates the line
according to item type to either SYMBOL or RULE.
SYMBOL and RULE translate their text into
phonemes, which are left in the voice synthesizer's queue. SYMBOL also examines individual
keypresses from the keyboard and echoes their
name with the synthesizer. Finally, CODE translates any printing requests into expanded
Braille format and outputs reformatted text to
the Braille printer.
Conclusion
A system has been described here which will
allow the visually handicapped to use an
HP 9825A desk-top calculator, by means of voice
communication from a VOTRAX voice synthesizer.
An LSI-II microcomputer will translate program
and written text into phonetic text for the
synthesizer. This translation is accomplished
WEST COAST COMPUTER FAIRE
61
BOX 1579. PALO ALTO CA 94302
ACKNOWLEDGMENTS
This work was supported by the
National Aeronautics and Space Administration,
Contract A4576B.
Special recognition should be given to
S~san Phillips of the Sensory Aids Foundation
for her help in promoting this project.
REFERENCES
[1) National Aeronautics and Space Administration, Contract A4576B.
[2J Elson, Benjamin M., "Inexpensive Avionics Concepts Being Sought,"
Aviation & Space Week, August 1, 1977.
[3' Ritchie, D. M., C Reference Manual, Bell Laboratories,
Murray Hill, N. J. 07979
[4J Allen, Jonathan, "Speech Synthesis from Unrestricted Text,"
from a collection of papers in Speech Synthesis, edited by Rabiner.
[5J McIlroy, M. Douglas, "Synthetic English Speech by Rale",
Bell Telephone Laboratories, Murray Hill, N. J. 07979.
A-l
Text Accompanying Photo
"The HP 9825A Calculator is seen here in use.
The dark window near the top is a 32 character
LED-ASCII display. The VOTRAX VS-6 Voice
Synthesizer is the large box sitting on top of
the calculator. Voice pitch, speech rate and
volume are adjustable from the potentiometers
on the front of the case."
WEST COAST COMPUTER FAIRE
62
BOX 1579, PALO ALTO CA 94302
A-2
&~MPLE
SESSION EXAMPLE
Calculator Display
Operator (Keypresses)
d
d
s
ds
dsp
dsp "
p
"
dsp "h
h
dsp
dsp
dsp
dsp
dsp
0: dsp
e
I
I
o
"
store
run
"he
"hel
"hell
"hello
"hello"
"hello"
Voice Output
dee
es
pea
quote
hay-ch
ee
e~_
el
oh
quote
store step zero display
quote hello quote
hello
fetch
fetch 0
0: dsp "hello"
run hello
fetch
o
zero
execute
execute step zero display
quote hello quote
Note: This HP9825 calculator uses STORE as an end-of-line button for program
statements and uses EXECUTE for indicating end-of-command.
fetch
A-3
Text Accompanying Photo
"Here is a Digital Equipment Corp. LSI-II
microcomputer. The five large chips on the
facing board contain the microprocessor and
its control store. In the background can be
seen supporting power supplies and console
teletype."
WEST COAST COMPUTER FAIRE
63
BOX 1579, PALO ALTO CA 94302
A-4
I
--I
i
·,,·:J=PcAX 'vs-6
L
!
~!8I=E
SP~?:CH
SYN~::;;~S::':Z:::?
- - - - - - -....
BY
SYI::THESIS
H:.~LE
~"'
SYMBOL
KEYBOARJ
STATEMENT SYM~OL
TRANS:..A'I'OR
DISP!,AY
PARSE
IN~ERCEP~
IN':2ERFACE
LR PARSER
CODE
PR!N'I'ER
BRAILLE
TRIFORMATIONS
MODE~ BD-3
BRAI~LE PRINTER
COL~
CONVERTER
A-5
Reprinted from Allen
:4;.
# CHROME #
# CHROME #
# KREIMU '#:
# KROM #
# MYTHOLOGY #
41= MYTH + OlOGY #
41= MI1"TSIJIJDIUlJ #
:I/: M"IAT +"Al Y"JE #
=weak vowel
sound
(like "uh")
# DISPASSIONATELY :I/:
41= DIS=PASSION+ATE+lY #
:I/: ee9IJpaS •••
"
II #
# DAIS=P"AASYN+YT+lE#
=plosive
=,+=pause
lETTER-TO-SOUND CONVERSION
WEST COAST COMPUTER FAIRE
64
BOX 1579, PALO ALTO CA 94302
DEVELOPMENT OF PROTOTYPE EQUIPMENT TO ENABLE
THE BLIND TO BE TELEPHONE OPERATORS
Susan Halle Phillips
Vocational Coordinator
Sensory Aids Foundation
399 Sherman Avenue, Suite 4
Palo Alto, California 94306
(415) 329-0430
This report describes the development of prototype equipment to interface a blind telephone operator to a
TSPS console. Sensory Aids Foundation
contracted with Telesensory Systems Inc.
to build an interface utilizing voice
output to determine if a blind telephone
operator could perform the job of TSPS
operator within the performance requirements set by Pacific Telephone Company
for ·sighted operators.
The system has been successfully
tested and two persons have been placed
as operators within the Pacific Telephone
System. This project will now enable
blind people to be competitive for job
placement within the Bell Telephone
System.
console handles all calls requiring operator
assistance, with the exception of "information" number requests. Sensory Aids Foundation contracted with Telesensory Systems Inc.,
Palo Alto, to build two prototypes of TSPS
console overlays which monitored nixie tubes
and 72 lighted indicator lamps and buttons
with voice output systems, utilizing the
Votrax Voice Synthesizer. The voice output
prototypes would give to the blind operator
audible information that a sighted operator
sees. This information is necessary for
the operator to recognize the state of the
console and to service customer requests.
System Design
The various elements of the TSPS Interface System are illustrated in Figure A-l.
At the top of the figure is the TSPS console
itself. It consists of the nixie tube display and the operator control panel with
lighted pushbuttons and indicators. The
overlay is placed directly over the operator
control panel. Each button on the overlay
is made .from clear acrylic and is provided
with a photo-transister to sense if the button
is illuminated. Because the buttons are
transparent, the status of the console may
be determined by a sighted operator. This
is important both in training and when the
supervisor needs to assist in handling a call.
The Optical SenSing System is placed
into the recess formed by the housing of the
nixie tube display, as illustrated in Figure
A-2. This system is composed of 12 identical
modules each sensing a single nixie tube and
thus avoids the difficulties of mechanical
scanning. The system is both removable and
portable; an adjustment is provided to align
the Optical Sensing System to a particular
console.
The Interface/Control Electronics
Module accepts commands from the Operator
Control Box, processes data from the Optical
Sensing System and console overlay, and
generates suitable output to a Votrax Voice
Synthesizer. The output from the Votrax is
presented to the operator via a second earphone. With this control box, the operator
Sensory Aids Foundation, a non-profit
corporation, and the California Department of Rehabilitation established a
program to develop new employment opportunities for job ready persons who are
blind. This jointly funded gr~nt provides
for the expansion of entry level occupations through the application of sensory
aids and the development of new adaptive
devices. During the first two years of
the Innovation and Expansion Project, 63
blind and partially-sighted individuals
were placed in a variety of employment
settings.
One of the primary engineering projects initiated by Sensory Aids Foundation was the development of prototype
interface equipment for blind TSPS
(Traffic Service Position System) operators. The goal of this project was to
open the TSPS operator position with
Pacific Telephone Company to blind people
and to enable them to perform the job
competitively within the standards set
by the Telephone Company for sighted
employees.
The TSPS is the specific console
used by Pacific Telephone Company longdistance telephone operators to perform
their .jobs. r,enerally, the TSPS computer
WEST COAST COMPUTER FAIRE
65
BOX 1579. PALO ALTO CA 94302
can manually interrogate various sections of the console or read the nlXle
tube display, as illustrated in Figure
A-3. The entire system is carried on a
moveable cart with self-contained power
supply, as illustrated in Figure A-4.
The output of a 12 volt DC battery is
converted to 115 AC by an inverter and
provides enough power for at least 8
hours of continuous operation. A battery
charger is also provided so that the
entire system may be recharged when not
in use or at the end of the shift.
System Operation
As a call comes in to the TSPS console, appropriate lamps light up which
signal the kind of call, class, and
charge. For a blind person to service
the incoming call, these visual cues
must be transformed into spoken words.
A step by step outline of the process is as follows:
a) An incoming telephone call stimulates a specific pattern of lamps to
light on the TSPS panel;
b) The computer recognizes which
lamps are lit via photosensors on the
overlay;
c) The computer determines which
words should be spoken;
d) The computer signals the Votrax
and speech begins.
Spoken words from the Votrax give
--- - --the--blind operator the cues whtc_h __tb_e__ _
sighted operator obtains visually. These
cues are necessary to make the appropriate response to the customer.
Figure A-5 illustrates the TSPS
console position for two operators. The
right side has the interface prototype
equipment for the blind operator.
Additional Equipment Modification
A second important part of the project was to modify the job station equipment, other than the TSPS console, so
that it could be efficiently used by the
blind operator.
Operators must continually refer to
handwritten notes in order to remember
~ames when making person-to-person or
. collect calls, rate-and-route infonnatton for overseas calls, and other information used in filling out manual billing
tickets. A suitable device was needed
for blind telephone operators. Equipment on site could not be noisy. A quiet,
sturdy, small brailler was purchased
. WEST COAST COMPUTER FAIRE
for this purpose from the Royal National
Institute for the Blind, London, England.
Information stored on plastic cards used by
all TSPS operators, including area codes,
operator codes, numbers of business offices,
repair services, and emergency numbers were
brailled in a format designed by the Sensory
Aids Foundation Staff. A template (Manock
Comprehensive Designs, Palo Alto) was designed
to enable the blind operator to complete the
Mark Sense computer ticket. The blind operator was then able to transfer information
from the braille notes to the billing ticket
by lifting the template over the ticket and
using a Mark Sense pencil to mark appropriate
digits.
SUl1ll1ary
As a result of cooperative efforts
between the Sensory Aids Foundation, Telesensory Systems Inc. and Pacific Telephone
Company, adaptive equipment and job station
modification to enable the blind to function
as TSPS console operators have been successfully developed. Using prototype console
overlays, two totally blind individuals have
been competitively placed as TSPS operators
in the Mountain View, California Pacific
Telephone System. With the success of this
pilot project, it is anticipated that the
TSPS interface equipment will permit the
blind to be hired as telephone operators
throughout the Bell System.
Acknowledgements
__ I wi~bto~xpress_appreciation toA.J.
Sword, M. Li-nvln, j~- Azeveoo and D. Farr
for providing technical assistance and photographs, and to C. Anderson for secretarial
assistance.
~_~
Appendix
Figure A-l
Figure A-2
Figure A-3
Figure A-4
Figure A-5
66
Prototype TSPS Interface
Equipment - Schematic
Nixie Tube Display Reader
TSPS Console with Overlay, Nixie
Tube Reader and Control Box
TSPS Interface Equipment
TSPS Console Position
BOX 1579, PALO ALTO CA 94302 .
TSPS CONSOLE
I
I
OPERATOR CONTROL
PANEL
I
NIXIE TUBE
DISPLAY
COMPLETE OVERLAY
WITH
PHOTOSENSORS
OPTICAL SENSING
SYSTEM
\
INTERFACE
CONTROL ELECTRONICS
AND POWER
>
I
OPERATOR
CONTROL BOX
I
VOICE
SYNTHESIZER
I
EARPHONE
r
I
Fi gure: A-l
Prototype TSPS Interface
Equipment - Schematic
....--..........................
WEST COAST COMPUTE~ ~RE
67
BOX 1579, PALO ALTO CA 94302
~
~
FIGURE A-2
Nixie Tube Display Reader
FIGURE A-3
TSPS console with overlay, nixie tube reader & control box
"" WEST COAST COMPUTER FAIRE
68
BOX 1579, PALO ALTO CA 94302
FIGURE A-4
TSPS Interface equipment
FIGURE A-5
TSPS Console position
WEST COAST COMPUTER FAIRE
69
BOX 1579. PALO ALTO CA 94302
MICROCOMPUTER-BASED SENSORY AIDS
FOR THE HANDICAPPED
J.S. Bruqler, Ph.D.
Vice President Enqineerinq
Telesensor'y S'ystems, Inc.
3408 Hillview Avenue
Palo Alto, CA
INTRODUCTION
Telesensory Systems, Inc. was formed in
order to provide high technology aids for the
handicapped, especially the blind. Nearly all
of our recent projects have utilized microcomputer technology. The resultant programmable
aids provide performance and flexibility impossible to achieve in the past. This paper gives
details of five of these devices - the SPEECH+
talking calculator for the blind, the TSPS telephone console interface for a blind operator,
The Games Center for the blind, the Crib-O-Gram,
and the LSI Speech Synthesizer. Some of these
devices will also be demonstrated.
SPEECH+
The SPEECH+ is a hand held, battery operat-ed£-a-l cu-lat-Gr---develope-dexpress ly .for the
blind. Our research concluded that speech is
the most effective calculator display modality.
SPEECH+ therefore contains a built-in limited
vocabulary speech synthesizer which provides the
blind user with spoken speech verification of
every keystroke and readout of the display upon
command. The speech unit also indicates overflow and low battery conditions. In addition to
English, units speaking German, French, and
Arabic have been programmed.
Inside the unit, speech and control data
are stored on a single 16K bit mask-programmed
ROM. A custom LSI microcontroller chip accepts
input commands and looks up the "recipe" for
speaking the desired word. It then constructs
the proper speech waveform from the stored
speech data. To reduce storage costs, a number
of unique encoding schemes are used. The keyboard scanning, calculating and spe~ch code.
generation are done by a TMS-1000 slngle-c~lp
microprocessor. The use of three large ChlPS the custom microcontroller, the TMS-1000, and
the 16K ROM - plus a minimum of support circuitry enable a convenient portable unit to be
made available at reasonable cost.
WEST COAST COMPUTER FAIRE
70
Since the speech data is stored in
ROM, vocabularies are easily changed. In
addition to foreign vocabularies, other
speech vocabularies can be generated. To
try other application besides the calculator,
a "general purpose" and an ASCII vocabulary
have been programmed. Potential applications
being explored include talking elevators,
talking meters, and talking computer terminals.
TSPS
The telephone operato~'s job, being
auditory, has in the past been very wellsuited for the blind. The introduction of
computer-based "TSPS" telephone exchange
systems having many visual cues for the
operator has made the job impossible for a
blind person. TSI undertook a demonstration project to devel-op-i-nt-erface-equ-ipment
which would enable a blind TSPS operator to
compete successfully with a sighted TSPS
operator.
The TSPS (Traffic Service Position
System) console used by the operator is a
special purpose computer terminal containing
over 80 pushbuttons and a 12-digit numeric
display. The hardware we developed is
based on a 6800 microcomputer. In operation,
special optoelectronic circuits read the
lighted pushbutton and numeric display
status information into the computer. The
computer interprets the input data and
tells the blind operator, via synthesized
voice, the information necessary to handle
an incoming call. Once a call is serviced,
the computer continues to monitor the
console to verify that the call was completed
properly. Since a bewildering variety of
type of incoming calls are possible, the
details of the system operation are quite
complex, and have undergone considerable
evolution. An important feature is the
ability of the operator to interrogate
several important console parameters.
BOX 1579. PALO ALTO CA 94302
Two demonstration systems were
built, and are being used every day by
two blind operators at Pacific Telephone.
Quantitative performance measures ~re
quite encouraging, and we are seek1ng
funding to production engineer the system
to enable widespread usage.
THE GAME CENTER
The availability of low-cost speech
technology, keyboards, and microcomputer
know-how prompted us to breadboard a set
of electronic games for the blind. The
breadboard unit met great success, so we
will soon be producing a limited number
of games units for use at agencies and
centers for the blind.
The unit's electronics consist of an
8800 processor board, a speech board, and
an analog board. Of the eight games,
seven are played on the keyboard. Three
games are modifications of we~l known
pastimes (Blackjack, Craps, T1c-Tac-Toe),
while four were specially invented (IiSkeetShoot", IINumber Run ll , IITug-O-War ll , and
the "Chain Game ll ). The eighth game,
ca 11 ed "Paddl eba 1111 is a s imul ated video
game involving hitting of a moving "ba~lll
heard via stereo earphones. The ball 1S
indicated spatially by a tone going u~
and down in pitch and back and forth 1n
stereo separation. Scoring in "hits" is
done with the microcomputer until one of
two players wins.
CRIB-a-GRAM
Crib-a-Gram is the only project we
have undertaken outside the field of aids
for the blind. The Crib-a-Gram is a
screening device for potential hearing
loss in newborn babies. It is designed
to automatically test infants while in
the crib and to flag those with a possible
hearing problem. Babies that fail the
test are then thoroughly rescreened at
six months of age.
The system is controlled by an 8080
microcomputer. A sensitive motion transducer is placed under the mattress, and a
small loudspeaker mounted nearby. The
computer monitors the state of the baby's
activity, and when conditions are ~ppro
priate, turns on a 92db 2-4 kHz wh1te
noise stimulus. The computer then determines through various algorithms whether
the baby reacted to the sound. In order
to insure statistical validity, a number
of tests are given over a 24-hour period,
WEST COAST COMPUTER FAIRE
some of which are silent control tests. The
computer keeps score and, at the completion of
the test sequence, gives a pass or fail indica.
tion.
The Crib-O-Gram System is presentiy undergoing evaluation at the Stanford Hospital. The
hardware is designed, and various software
improvements are continually being added.
Workers in the field agree that early detection
of hearing loss is vital. The Crib-O-Gram, by
using microcomputer technology, will make
available an automatic, low cost hearing screening
technique so that remedial steps can be initiated
at an early age.
LSI SPEECH SYNTHESIS
The human vocal tract can be electrically
simulated by means of series and parallel
resonators driven by periodic and noise excitations. Their parameters (center frequency,
band width, and gain) are varied as a function
of time to create the various speech sounds.
This technique is called "Formant Synthesis".
In contrast to the techniques described in
section I, an unlimited vocabulary of utterances can be generated. Nearly all experimental and commercial formant synthesizers have
utilized analog circuitrv. This circuitry is
prone to tolerance and drift problems and is
relatively costly and inflexible.
To circumvent the inherent problems of an
analog synthesizer, we have simulated and
breadboarded an all-digital formant synthesizer
suitable for ultimate fabrication in LSI form.
This unit is programmable, so can implement a
variety of high performance synthesizer structures. If production volumes can be high
enough, this synthesizer promises to be sufficiently inexpensive to find wide application in
aids for the blind.
CONCLUSION
Through the use of silicon technology,
Telesensory Systems, Inc. has developed a
number of devices for the handicapped. Applications range from serious, such as vocational
aid and hearing screening, to recreational
games. Such devices can help erase the somewhat artificial distinction between the handicapped and the normal ". Our ideas for further
applications always exceed the available
resources and time.
II
ACKNOWLEDGEMENTS
The SPEECH+ voice technology is licensed
from Professor Forrest Mozer of UC Berkeley.
71
BOX 1579, PALO ALTO CA 94302
The TSPS project was sponsored by the
Sensory Aids Foundation, Palo Alto, California. The cooperation and help of Pacific
Telephone was vital.
/
The Crib-O-Gram was conceived by Dr. F.
Blair Simmons and is licensed from Stanford
Uni ver's i ty .
The LSI Speech Synthesis work was
partially funded by The Seeing Eye, Morristown, NJ.
\
WEST COAST COMPUTER FAIRE
72
BOX 1579, PALO ALTO CA 94302
AMBITIOUS GAMES FOR SMALL COMPUTERS
Larry Tesler, Xerox Palo Alto Research Center
3333 Coyote Hill Rd. Palo Alto. C.a 94304
Abstract
Some of the more challenging games that can be played
on a computer require more memory than is available on
loday's personal systems. The paper presents various
simple encoding techniques-: that were used by the author
and a friend to implement an interesting subset of a
complex game on an 8 kilobyte microcomputer.
Hungry for greater challenge, I wish my $800
Commodore PET were an $800.000 mega pUler, so I could
play Will Crowther's original Adl'el1lure. MIT's Dungeons,
and other complex games based on the Dungeons and
Dragons theme. With those versions, I could create
labyrinths for others to explore, with a hundred rooms,
multiple treasures, assorted demons, magical objects. and
elements yet to be conceived. The adventurer could give
commands in stylistic English· phrases ("take jewels".
"throw rock") instead of by answering multiple-choice
questions.
Beyond PONG
Given the choice of a PONG machine and a pool table, I
will always choose the latter. Hand-eye coordination is
somehow more challenging when the whole body is
involved. Moreover, the feel of the cue and the sounds
of balls colliding and dropping into pockets appeal to my
senses more than little plastic levers and electronic beeps.
So I study ROGER'S little BASIC program, marvelling at
how he fit even thirty flowery descriptions of rooms and
predicaments into the tiny computer, along with their
interconnection toplogy, not to mention a selection of
tasty algorithms for deception. subterfuge. and final
reward.
On the other hand, when I am home and seeking a bit of
solitary escape, I no longer turn to Solitaire, crossword
puzzles, "TV, or even (unfortunately) reading. I switch on
the computer and play a game like Roger Chaffee's
version of Adventure.
The choice: buy more memory? a floppy disk? or ... learn
sardine canning...
YOU'RE IN THE ASHRAM. THE SMELL OF
INCENSE IS HEAVY HERE, AND ALL
DIRECTIONS SEEM THE SAME.
A clear case of Aladdin economics. Stuff the genie into
a bottle.
WHICH WAY? S
YOU'RE IN THE LAND OF XANADU. BELOW
YOU ALF THE SACRED RIVER RUNS
THROUGH MEASURELESS CAVERNS DOWN
TO A SUNLESS SEA.
more bits per byte
More bits per byte!
No. that won't work.
WHICH WAY? 0
YOU CAN'T GO IN THAT DIRECTION.
SQUEF.ZINGOUTSPACE
WHICH WAY? W
The ALTAIR BASIC manual has bunches of techniques
for reducing program space.
These work in other
BASICs, too, including the PET's. Eliminate REMarks
(ugh), eliminate blank spaces (retch). use the same
variable for several purposes (horrors).
IN A DARK TUNNEL, YOU STUMBLE OVER A
HARD OBJECT. IT FEELS LIKE A METALLIC
CHEST, AND THERE SEEMS TO BE A LATCH.
THE LATCH IS RUSTY, BUT THERE IS NO
LOCK IN EVIDENCE.
Such travesties against good programming technique can
only be justified in life-and-death situations. But what
could be a greater emergency? The goblins must be
overcome!
DO YOU WANT TO OPEN THE CHEST?
An hour or two later, after a hundred or more moves, I
have explored all the twenty-five rooms of the labyrinth,
found the treasure, lost it, found it again, and escaped
safely to the surface with my skin intact.
WEST COAST COMPUTER FAIRE
Rog~r has already squee/ed the program quite a lot. I can
obtain another couple of hundred bytes by making the
program completely illegible. (Please look the other way.
this is not for children to see.)
73
BOX 1579.PALOALTOCA94302 ~
~r
Encoding the Graph
Hmmm. The topology of the labyrinth is specified in
DATA statements. Roger has already saved a lot of space
by encoding some predicaments ("you can't go in that
direction", "the giant is here, you'll have to get ou~") as if
they were rooms. They are marked specially to indicate
that after the description is printed the adventurer should
be forced into a real room, either the one from whence
he came or some other chosen partly at random or partly
based on possession of the treasure.
Each r00111 (and predicament) lists its own number and
six connection numbers, one for each of North, East, Up.
Down, West, and SOllth. The connection number is
either 0 to mean no exit in that direction, or the
identification of another room. A typical example:
9020 DATA 2,4,0,23,29,0,0
There are more than sixty distinct characters available on
the machine (actually, 128), so why not assign a character
to each room? Then the connectivity specification is
simply:
9020 DATA BD#X]##
The D signifies a connection to room D, the # means no
exit. In general, A-Z represent 26 of the rooms, and then
on beyond Zebra for the rest.
This seems to cut 15 characters of DATA to 7. But
actually, it is better than that, because these DATA
statements have to be READ. When a number is read
into an integer array, it is converted to binary and stored
as a sixteen bit quantity in two bytes. So the array
storage for six numbers takes 12 bytes of storage for each
room, in addition to the 15 in the DATA statement (for
a total of 27). But when a string is read into an array in
this BASIC, it takes only 3 additional bytes of storage
(for a total of 10), because the characters of the string
are not copied: two of the three bytes are an address into
the DATA statement itself and the third byte is the string
Jellgth.---------- --- . . . ... . .
.. . - - It takes about the same size program to deal with either
representation, so we have made a net gain of 17 bytes
per room, or 510 bytes for 30 rooms. Enough for some
dwarves, elves, and magic rings no doubt.
YIOU9$'!
The connectivity specification is not the bulk of the data
base describing the labyrinth. Most of it consists of
those flowery text descriptions:
9020 DATA 2,4,0,23.29,Q,0,"YOU'RE IN A
NARROW EAST WEST TUNNEL, WITH AN OPENING
ON THE NORTH SIDE TO A WIDE PASSAGE.
WATCH OUT FOR GOBLINS!"
A=a, H=Detter, l=can, U=OlreCtlOn, t=-eo, t-=tor.
G=go, H=here, 1=1, J=gialll, K=cavern, L=little,
M=message, N=not, O=of, P=pit, R=rock, S=-s, T=the,
V=roOI1l, W=wide, X=Bilbo, Y=you, a=above, b=but,
c=c1imb, d=-d, e=-es, g=get, h=tight, i =in,
j=guillotine, 1 =Iedge, n=on, o=opening, r=are, s=is,
t=LO, v=chamber, w=was, x=gnome, y=you're, &=and,
\=through, t=ther~ ~=bac,
We can also make some of the PET graphic characters
stand for words: ...L for 'north'; a high-up linc for 'top'
and a low-down line for 'down'; something that looks
thick and vertical for 'wall'; and so forth. Over 120
words can be represented this way in PET BASIC.
Although some BASICs only provide 60 to 100 distinct
characters, one can always encode about 250 words with
an 8-bit code processed in machine language. Anyway.
sixty words does seem to be a sufficient vocabulary of
repeated words. The above room description boils down
to this:
9020DATA" BD#X ]##yiA6NARROWr-l6TUNNEL. 4W
ITH2ANonT...L4SIDEtAW7PASSAGE.5WATCH30UTF7
GOBLINS I
Don't tell me -- that's the kind of stuff your teletype
always comes out with! Good; you already know how to
read it. After DATA" are the seven characters that we
discussed earlier for the connectivity description; might
as well combine them with the string used for the text to
save a little more space. Next comes the text: y=you're.
; =in. A=a, and then 6NARROW -- which indicates a six
character word not in the vocabulary -- then r=east. and
so forth.
Various conventions too detailed for this paper are used
in both the vocabulary and the descriptions to control the
insertion of spaces between words and the formatting of
lines of print. The printing subroutine runs a lot slower
than it used to, but it is still faster than a person can
read.
Compressing the room descriptions saves a lot of space;
but the printing subroutine gets longer and the
vocabulary has-to be stored, The net gain is -about 400bytes.
Compressing other messages printed by the
program should save another hundred bytes.
The 8ottom Line
A combination of the above techniques frees over 1000
bytes of storage. A new room whose description shares a
lot of the existing vocabulary can be added at a cost of
only 40 or 50 bytes, so we could add another 20 or more
rooms.
I would rather add new twists that are available in bigger
implementations, such as objects that are found in rooms
and that can be taken along with the adventurer. No
more than two objects could be carried at a time. Some
objects would be valueless, others would be valuable to
take out of the labyrinth at the end of the game. Still
other objects would be useful during exploration, each to
surmount a specific obstacle that can be encountered. To
determine the properties of the objects, the adventurer
would have to experiment and take risks.
Though flowery, the vocabulary is rather repetitive. The
word 'gnome' is used in two different r00111S, 'there' is
mentioned in 7 places, 'to' in 9, 'in' in 13, and the word
'the' occurs no less than 33 times. Altogether, there are
181 different words, punctuation marks, and wordEducational Applications
endings (no, I didn't count them, the computer did). The
sixty "words" lIsed more than once accollnt for 60% of
the text.
l.et's assign the following one-character
Although Adventure is cast as a one-player game, it
abbreviations to the most common English words and
should be possible to have several people collaborate.
endings employed in modern dungeons:
74
BOX 1579. PALO ALTO CA 94302
WEST COAST COMPUTER FAIRE
One way to collaborate is to sit at the terminal together
planning moves and developing a model of the labyrinth.
Another way is to explore at different times, all agreeing
to end up in a particular room after the next session.
Those who make it back there may then compare notes
and try to b\!nefit from the experiences of others.
With more memory, a multi-discipline educational game
with a similar structure could be concocted by running
several simulations in parallel.
For example, the
adventurer is an international trader. His or her business
partner (a simulated being) is off on a voyage but never
remembers to write home. The partner must be found
within a year or the business will be taken over by a
sinister cartel, or the IRS. or something like that.
WEST COAST COMPUTER FAIRE
75
The adventurer travels through foreign lands seeking
clues. He must buy and sell commodities in order to
finance the trip. The supply and df'mand of commodities
is affected by location, time of year, and random factors
such as weather and luck.
As time runs out, the
opposi tion erects barriers to progress, and so forth.
Such a game would be an earth-bound blend of
Adventure and the game Star Trader (see the book What
to do After YOl! Hit Return). It would teach some things
about geography and economics, as well as problemsolving, strategy, and planning.
But all this must wait for cheaper data storage. In the
meantime, if you'll excuse me. a minotaur is waiting for
me in the family room.
BOX 1579. PALO ALTO CA 94302
FF ICC 0"" Hi T1 11 GAM ES: SCI" E S F ECUr. It T TON S
Iernis R. Allison, Consultant, Menlo Park, CA 94025
leE HOEvel, Stanford UniversitJ, Stanford, Ca r4305
PDP-lei Adventure is somewhat s~allpr.
Neither is really ~icro~om9utpr or
~erso~al co~putp.r fare at this poir.t.
INTROIUC'TION
Few tterres are fT;ore ccrrrr.or in literaturE than that of the efic adVEnture.
In these tales the here, throuLh the
exercise of bis wit and brawn, OVfrcomES all to achieve tis objective te
it treasurE, ro~ance, power, or wh3tever. EVen the pl:lf r,ovel, tOw an almost extinct beast, owes ~ucb of It~
structure and character to the traditioral EJ.ic.
ThF siref1-1ike charrr of Pdventllre is
not li~ited to cO~futer folk. The other evening I was dininr. in a local
ChinEse
rest-1urant ond chanced to
overhear a table of ~ollefe wo~en discussing Just how one get arollr.d the
~reen snake, ere of the Adverture hazzards. And trlen there is the storl of
on2 of my collegues who introduced his
pscholcgy graduate student npi~hbor to
the garr.e onE' evenint;; the reighbor was
50
engaged that hE went out, bo~ght a
terminal, and spent the next two wee~s
playing Adventure.
The traditional e~ir and its modern
imitators trevide rich paradig~s fnr
CO"futer ga"Es. Such ~a~es are far
morE interesting ard cC~gellinE than
the usual "~UeSS the nurrter" or "za,t:
th~
spaceshif" !are. Scme protO-EpiC
~amEs already exist, but thE most f~l11 ellatcrated ~~mes present irrple~en
tatior difficulties of considerable
substanCE.
In this pafer, a~d in an
earliEr
papEr
putlisted
ir
thE
~arch/A~ril
issue
cf
r~~pJ~'~
~Q~f~!~!~ Wf ex~lore so~e of the
possibilities and froble~s of tbis class
of faLtasy ~a~es.
is 'dvett~re fun to play. ~EcausF
it is dn adventure! The essenCf cf
the ~a~e is explor~tion of an unknown
and ~l~ver fartasy world with hazzards
and treac;uT'e.
Poth ~dvertl1re
ar.C!
Dur.geon use a cave as a uriverse; a
cavE' in which treac;ure and advertllrf'
can be found. Both ga~es owe ~~ch to
tungeons and Dragons.
~hy
GAME
GA~ES
A~
FECRIATICN
The futurists dnd pundits of the fErc--c-rrput-tnt;------wo-r-t-d---a-l-l--hn-v-e- -a-flnoun~Ed th3t the pri~ary usp
of co~puters in the not teo distant future
will be recreational.
On tbe other
haLd, I find tearly all co~puter and
videe ga"es borin€. I can't 6et myself interested for long periods of
---5 on a 1
ti~e.
The first ga"e which ~ot my attention
EnOugh tc be bEco~e e~tranced was
AdverturE. It was ~ritten
by
W.
Crouther (no~ at Xercx PARC) ar-d modifiEd ty Ion toods at Stanford AI.
It
is ~rittEn in FORTRA~ and has ~ifrated
to ~any ~achinEs.
A "uch extended
game
based upon the same general
ideas, but with significant imfrovements, has been written by Tim Anderson, ~arc PlanK, Bruce Daniels, and
rave Letling at MIT; it is called
Dun~eons and is written in
a dialect
of IISP out of CONNIVER and PLPNNER
called MtI (~uddle).
Poth ¥rograms
are rather _largf: tungeons requires
about 120,000 words (~16 bits) on a
lon~
WEST COAST COMPUTER FAIRE
DFSIG~
makes a ga~e fur? interestirf?
compelling? The answers are ~nst certainly burried in the psyche a~d the
---------f--e--l-k - tr-a-d-i t:1 cno£the playe.r.... Rowe.ve_f _
there are certain EI€~epts which might
be Gon~idered charactfristic.
First.
passive games are net really int€re~ting.
The plaler ~ust be actively i~valved. Se~ond, therE must be so~p.
fantasy fulfillment; the bame mu~t
fulfill some basic fsycholo~ical need,
however obliquely. Third. there must
be some kind of contest and resolution
of the associated conflict. Fourtt,
therp rrust be sorre reasonable ~ix of
discovery and irvention.
Ga~es atd
puzzles with one solution are of interest only once.
Ches5, with its
complexity, is a garre of continual
discovery and invention. ihis leads
to a fifth 8riterion, complexity. The
ga~e
~u5t
be adequately :o~~le1 thct
it cannot be ~nown. yet not so complex
as to a~¥ear to be random. There must
be some highEr rulES at work, but ~ot
all motivatioLs ar.d rr,anifestattons of
the rules s~ould te clear.
Lastly,
there must be variety; bcredom feeds
on repitition. That is not to say that
~hat
76
BOX 1579. PALO ALTO CA 94302
one should ExclhdE ritual (ir. the
sense of folk conventions). ThF.sE are
the f~nd~mental fabric of knowledge tJ
which thE ~aue wakEr and the ~ame
~laJer
Persona are the ~ost ~ifficult problem.
Good fames neej interestir~ irteresting chara~ters to poplllate their
world, both good and evil. ~nt only
t his, per s a r a rn 1] s t t p a b 1 P t (' C 0 r"'~' i1 r i cate with the plaYEr in reasonable natural languLP, ar.d the response ~J5t
be te~~fred by thE character of the
persona. While many characters are
rather shallow, others ffiust have so~p
psycboJor.ical depth.
co~wunicates.
A ~amE which follows the e~ic trdditions draws uren a lort ~roven structure. ~bilE no real com~uter ga~E
~ill
be textbooK verfect, one can EXpect that SO~E elements cf the traditional for~ will te presprvpd. The
central fifure, the hEro the ~ldyer is
idertified
with,
is of natienal,
international. or ~alactic importance.
The setting of the ~a~e matches the
importance of the hero. The hero must
perform sowe diffic~lt deeds ir his
quest. Gods, dae~ons t or other sllJ:ernatvral bein~s ~ay take an active
part. The [a~E starts in media res
with thE flayer discovering-what-Is
happEnir~ as the ~amf vrogrEsses.
A ~ost important pFrsona i~ the alter
ebo ef the plaYEr himself. It ~er
for;TIs his commands and orserves tbe
6ame universe as his pyes, f'ars. aui
nose. The alter eta iray also ~avp the
role of conscience, arguir6 with thp
player when he tries to de som€thir~
out of character.
CONFLICTS AND RESOIUTI0N
Swordplai at a termiral is r.ot really
practial.
Yet ever the ncn-viole!t
ga~es need to have 50~e way of resolving contests.
One way is to replace
the actual contest by an idealized
one. when the bla:k kright encounters
the white knight, he need rot actually
joust; a quick game of tic-tac-toe
mihht be equally as fulfilling. OthEr
possibilities COmE to rr.ind: a simple
trivia quiz, an factual quiz, 3 riddle, or a simple r,umber ga~~.
Everycne ~an ~ake a cataloe of fa~tasy
univErses which are fctertial environ~ents fer such ~arres.
Ore can Extra~t
the u n i v e r c; e . a fda I, E ere usc h a r act e r 5
anrl the Oriental Express from thE
classic spy thriller, the 5tarship~
and strange beings of thE star pXFlorer, the world and bonor code of the
kni~hts of th2 round table, and on and
on.
SCRIF'lING A GAME
TOWAPDS AN ELECTRIC NOVEL
Scrlftin€ rather than frogramming is
iffipcrtant. ThE Greatior. of an epic is
an ercrrrcuslJ cO~flex task. And thEre
is nc informatior. abeut to indicate
that frc~ra~~ers
are
particularly
skilled at doir~ it. The creation of
a De_ ga~e shculd te stpported with
special purpOsE tC015 so tha: it is
available to p.on-fr0F.ra~~ers.
Perhaps the most exciting possibility
is what one might call the Electric
~9!f!.
It is like toaay's ~~~~~I~~
1 i t era t u r e , ex c e p t i t i 5 a ~a r tic i ,lJ "i tory expprience. You, the player, are
the hern.
You do~'t eXferience the
hero's decisions vicariously; you maKe
them.
We have not really yet solved
the problems of sex and violence in
such literature, but it does make interesting speculation.
The ~dmE auther rrust rrakE a number of
choicES. He ~ust decide upon the game
univErse, establish a11 its natural
Idws,
and create all the persona
(~layers, hurran or otber.ise) who
populate the universe.
He ~ust also
creatE thesE inanimate otjects of speCial si~nificance to the garre and distribute them throu~hout the universe.
It is rather like ~laJ:r.E god.
With the advert of in2~pensive voice
re~o€nltion
and synthesis ur-its, ~ocd
color graphics, and very very lar~e
mass storage· devices, the possibilities are even better.
The rEal
prcllem here is the ronnature of the game. All
not apfEar in any given
~a~e; the ending is dependent upcn how
the flayer responds. It is a bit like
a TV script for which all middles and
endinEs are worked out.
deter~inistic
perscna ~ight
WEST COAST COMPUTER FAIRE
77
BOX 1579. PALO ALTO CA 94302
Special" Laboratory" Session on Computer Games:
CREATE YOUR OWN (COMPUTER) GAME
An Expcricnce in SYl1cctic Syncrgistic Serendipity
Ted M. Kahn
Department of Psychology, University of California, Berkeley
and
XEROX Palo Alto Research Center
This session will be held back-to-back with the session on
Extraordinary Computer Games. Its purpose is to allow
small groups of participants to generate and elaborate new
ideas for various types of computer games in an
without worrying about
"experience it" environment,
problems and details of specific computer implementations.
The session will be semi-structured through the use of
META-GA\1E*, a game which I have devised for generating
new game ideas through cross-fertilization between
different fields. In addition, various types of typical game
pieces and boards will provide stimulus material for game
structures. The entire creation process will proceed as an
exercise in group problem-solving, one which will allow
people to meet and cooperate with each other in an
enjoyable atmosphere while working on a common task.
- synectic - Many interesting ideas come as a result of
making connections between fields which may seem to be
unrelated (e.g., "Think of a game which involves principles
of physics and fantasy.");
- synergistic - "A game is more than just the sum of its
component parts";
-serendipitous - One often discovers unexpectec
results or treasures while originally looking for something
entirely different. This is probably the most exciting and
unpredictable part of creative activity.
This session will be of special interest to teachers and
parents who are interested in helping children of all ages to
develop their own ideas, and to game programmers and
The session will emphasize three important aspects in the non-programmers alike.
creation of original games, computer-based or otherwise.
The-process~s:.
•
META-GAME
c
Copyright 1977 by Ted M. Kahn and
Moshe D. Caspi
WEST COAST COMPUTER FAIRE
78
BOX 1579, PALO ALTO CA 94302 ...
PSYCHOLOGICAL TESTS WITH VIDEO GAMES
Sam Hersh and Al Ahumada, Aero/Astro Dept., Stanford U., Stanford, CA 94305
Abstract
Because of the similarity between video
game logic and psychological testing logic, a
microcomputer designed to facilitate game programming can also be used to present stimuli,
acquire responses, and perform the preliminary
data reduction required for the testing of perceptual and cognitive abilities. The capabilities of a game system--the RCA 1802 COSMAC Video
Interface Processor--wi11 be discussed and demonstrated with three tests. The game-playing
microcomputer is an effective tester when the
display format requires flexible graphics and
little alphanumeric information. Low cost,
portability, and ease of programming are its
principal advantages. Demonstration tests include an auditory discrimination test, a Sternberg memory test, and a water jar problem-solving test.
The Testing System
CHIP-8 and machine language subroutine calls are
provided for.
We have had to write three machine language procedures to have psychological testing
capability: MOVE, which permits the computation
of one display while actually displaying another; DUMP, which outputs a waveform in RAM to
the D/ A converter at a sampling rate of 10 KHz;
and REACT, which measures reaction time with
2 msec precision during visual display.
Psychological tests record a sample of
behavior in response to a standard test item.
These items might take the form of questions,
perceptual displays, or objects to be manipulated. The behavior is usually reduced to a
number indicating a response category and/or
the time elapsed between item presentation and
response. At the end of the test, summary
scores are computed. Video games like PONG have
the same logical structure. The test item is a
moving dot on the playing field, the response is
the turn of the paddle knob, and the score is
one against you if you fail to deflect the dot.
A minimal system for presenting psychological test items must have graphics and auditory display capability, two or more response
keys, the ability to measure keypress latencies
to the nearest hundredth.of a second, and it
Demonstrations
must be programmable. From among the many
microprocessors shown at the first Computer
Psychoacoustic discrimination. Two audiFaire, we chose the RCA COSMAC VIP because it
tory waveforms are stored in RAM and are presatisfied these requirements, was cheap at $275, sented in random order. The subject's task is
and was locally available off the shelf. We
to indicate which is the target sound (or the
were also attracted to the COSMAC because an in- louder or higher in pitch, etc.). Performance
terpretive language was was provided for game
is scored by the number of correct responses.
programming, RAM was expandable to 4 K bytes on
Memory scanning. A set of from one to
board, the I/O port provided a convenient audio
six digits is displayed for a few seconds. The
channel, and its low power consumption and small subject decides whether or not a subsequent
size made it appropriately portable.
probe digit is a member of the set and responds
CHIP-8, the interpreter, turned out to be
as rapidly as possible. In this Situation, the
surprisingly good for programming tests, because reaction time is a linear function of the number
it was optimized for games. It takes up a litof items in the remembered set. The slope of
tle over 512 bytes of RAM and provides a timer
this function is a measure of the access time of
and a random number generator as well as display short-term memory.
control and keypad response collection. The two
~ jar problem.
The capacity and curbyte instructions look like machine code, but
rent contents of one full jar and two empty jars
are easy to learn and use. For example, 8XY4
are displayed. The ~ubject's task is to pour
sets variable X to the sum of varibles X and Y.
half the contents of the first jar into the secThe instruction DXYN displays the N byte pattern ond. The total number of pours measures probat coordinates specified by variables X and Y.
lem solving ability.
WEST COAST COMPUTER FAIRE
79
BOX 1579. PALO ALTOCA 94302
Acknowledgment
The water jar program was written by Dr.
Richard Marken, Augsburg College, Minneapolis,
MN 55404.
WEST COAST COMPUTER FAIRE
80
BOX 1579. PALO ALTO CA 94302 .
COMPUTER ART AND ART RELATED APPLICATIONS IN COMPUTER GRAPHICS:
A HISTORICAL PERSPECTIVE AND PROJECTED POSSIBILITIES
Beverly J. Jones, Ph. D.
Assistant Professor, School of Architecture and Allied Arts
University of Oregon
This slide lecture presents a historical review of computer
art and art related applications in computer graphics from
1945 to the present. Most ·of the images shown were generated
by large~ computer systems and involved extensive programming.
Those aspects which seem most promising for development by
individuals or community centers with small computers are indicated. The research, educational, recreational and economic
possibilities inherent in using computer systems for artrelated tasks are briefly discussed relative to the images
shown. Because the conference presentation depends so heavily
on slides, the paper presented here represents only a summary
of ideas. It also includes a resource list of bibliographic
material.
Introduction
Electronic technology, particularly the information processing devtces known as computers
have the potential of affecting many areas
of our lives. One of these areas is the arts.
Because the computer can generate and manipulate visual images, I believe it offers
promise for use by artists, art educators,
art historians, aestheticians, and museologists.
The pursuit of this line of thought led to a
collection of slides depicting the images and
objects which have been generated with the aj.d
of computers from 1945 to the present. A review, analysis, and projections based on this
collection comprise the main body of this presentation.
Computer Graphics: A Historical Review
In the 1940's analogue computers were used
to generate the earliest computer graphics
which were displayed on cathode ray oscilloscopes. Ben F. Lapofsky and Herbert w.
Franke were among the pioneers in creating
these images.(4) An early version of a
plotting device was the Henry Drawing Computer, a modified analogue computer designed
by D.P. Henry. It produced drawings by
combinations of pen movements and table movements. (15)
Later digital computers were used to generate
computer graphics using line printers, plotters and cathode ray tubes as the most common
output devices. Systems combining analogue
and digital components were also used to
produce graphics. Most of these images were
produced by engineers and technicians for
practical purposes. For example, William
Fettner's program created the image of a nan
with 7 movable components using data representing the 50th percentile pilot of the U.
S. Airforce.(4) However, some digital
images were produced for purely aesthetic
purposes, such as "Stained Glass Windows",
a graphic designed by the Army nallistics
Research Lab.(15)
Computer science is a unique discipline in
that it has the potential for application in
many fields in which the computer scientist
is not necessarily knowlegable. Conversely
the individual knowlegable in a particular
subject matter area is not necessarily aware
of potential computer applications. I
believe these two statements are especially
true in relation to the arts as a subject
matter area. Part of the reason for this
may be the anti-technological stance which
has bee~ fashionable in the arts in recent
years. As individuals in the arts become aware
that human values and considered choices
based on these values can direct computers,
that computers may be used to individualize
~mages, objects and events; and that computers need not be used in the mode of me chan-
WEST COAST COMPUTER FAIRE
ical technology, perhaps a greater willingness to utilize the potential of computers for
art applications may develop. (20, 21)
Some of the most effective of the graphics,
81
BOX 1579. PALO ALTO CA 94302
with purely aesthetic intent, were created
by the Computer Technique Group of Japan.
In any report of computer graphics the work
of this group is certain to be included.
Their transformations of photographs of
President Kennedy and their interpolations
such as "Running Cola Becomes Africa" may
be considered classic examples of computer
art from this period. All of the individuals comprising this group were engineers
and programmers. It contained no professional artists. At that time very few people
with extensive art training were working to
create computer generated images. One of
these was Charles Csuri and another was
Robert Mallary. Well known examples of
their work include Csuri's film "Hummingbirds",
his drawing "Sine Curve Man", as well as
Mallery's machine tooled sculptures created
with the program TRAN2.(4, 9, 11, 15)
Sykora, Giorgioni, Bonacic, Leavitt, Bangert
and others are now using the computer as a designing or executing device in their work.(~, 2,
9, 16) However, some recent technical developments have not been widely incorporated in the
work of artists and remain evident mainly in the
province of graphics created by technicians
for experimental and practical purposes. Examples of these are three dimensional shaded
color graphics and computer generated holograms. (3, 13)
Art Applications and Projections
The attitudes and working approaches of contemporary artists using the computer to assist
them in designing and/or executing their work
vary considerably. An examination of recent
issues of Leonardo or of Ruth Leavitt's recent
book, Artist and Computer, will reveal the
variety of conceptual modes and technical
methodologies which computer artists are using
in their work.
Some of the techniques used to create
computer art introduced a characteristic
look to this medium. For example, geometric
graphics generated using equations to deTheir projected applications are even more
scribe the form have been used extensively.
revealing. For example, Tony Longson proSome of these closely emulate the Op Art which poses to use the computer to help him create
was popular during the 1960's. Many of
forms to better understand visual perception
these graphics make good use of the comand the creative process. Edward Ihnatowicz
puter's ability to do exact and repetitious
wishes to create responsive Kinetic sculptures
tasks more easily than humans. Another
in an exploration of the field of artificial
techni~ue resulting in a different type of
intelligence. He proposes to use these to
form, was the use of stochastic ism or randomunderstand "Cognition through studying the behavization in a portion of the program. Similarly,ior of these artificial systems which would be
some environmental variable such as movement
capable of simulating natural behavior. Charles
or sound was recorded electronically and
Csuri suggests that arti~s could manipulate
included in the image determining data
visual displays of statistical data to express
within a program. These two techniques
artistic view of reality ~elating to social
illustrate the computer capability to generate problems. In a more conventional vein Patsy
many forms using one program which includes
Scala talks of creating visual poetry with
variables_which_mayhe altered at random--- -computer-generated- video- images and-Herbert
or with a preconceived pattern in mind. (2,
W. Frank expresses interest in creating graphic
4, 14, 15)
music. Still other artists continue in an
even more conventional mode. They retain the
Another type of form was introduced with
traditional mode of creating art works while
the technology which permitted digitizing of
using the computer to assist them in design.(9)
the scanned image of a photograph or object
in terms of a value scale. This technique
Some aestheticians are using the computer to
alone and combined with interpolation led to
generate images for use in testing the
aesthetic response. Some are using computers
the production of a variety of images charto analyze statistical data gathered from
acteristic of computer art.(4, 8) The
subject's responses to conventional art works.
use of interpolation between drawn images was
also common. Usually these drawn images were
Computer simulations of the style of nonintroduced to the computer using a light
computer art such as that of Mondrian, Klee,
and Hartung suggest experiments to determine
pen as the input device.(4, 15)
what factors are most relevant in determining
certain types of responses to works of art.(4,
In 1968 the first major international
exhibition of computer art was held in
5)
London. It was called Cybernetic Serendipity.
Museologists and art historians began to tap the
Following this exhibit, more artists began
potential of the computer for information reto take an interest in the computer as a
trieval and analysis to aidthem-inst.udying
creative medium. (15) Currently computer art
classifying and caring for museum collections.
has taken on an international flavor with
work going on simultaneously in many countries The programs created by the Museum Information
Network have been used by museums for these
of the world. Artists such as Barbadillo,
WEST COAST COMPUTER FAIRE
82
BOX 1579, PALO ALTO CA 94302
purposes.(7,19)
A few art educators are interested in using
artifacts would not be bound by the same
computers for instructional and research
(icmsiderations . With the dropping cost of
purposes. Guy Hubbard has attempted to
Ismall computers and their growing versause computers in programmed instruction.
/ tili ty it appears that many homes will have
Thomas Linehan has used computers to help
/ several single purpose microprocessors for
students understand their o~n preference
games or for the control of appliances. This
I
styles. I have suggested research appliapproach to computer application is in the
/ style of mass production and allows the concations for three computer capabilities:
graphics, statistics and information re- /
sumer little control over ~he product extrieval. (6, 10)
/
cept by veto of non-purchase. A small
/
computer which allowed the customer to pro/
While a few individuals within the inte~~
gram many essential aspects of the design
national art community are beginning to/sense
of his environment would be more in keeping
with the idea that human choice is important
the potential the computer has for tra~s
forming the conventional views about art, I
in directing the use of computers.
do not believe anyone has p~ojected shme of
the possible effects this could have/on
As Duane Palyka notes, " .•. the versatility
society. For example, what new cho:ilces
of this medium is its ability to handle
are available to people for use in education,
quite varying devices for input or output.
recreation or economic use because of
All that is required is that each device have
art-related computer applications. Whose
a wire or two containing electrical current
responsibility is it to cultivate ,a.n awarewhich varies within a certain prescribed
ness 0 f these choices and share it with
range. The rest is within the imagination
others? Exploring one illustration may
of the individual designing the device."(9)
illuminate the nature of these cQ'oices.
To date drawings, paintings, prints, weavings,
and sculptures, have been created using
specialized output devices. Responsive
Moles in his essay "Art, Cybernetics and
the Supermarket" noted the potential of
kinetic sculptures and responsive environments
introducing a variable into th~ computer
have also been created existing as output
program which results in the ~gnetic tape
devices. That the public at large could
which runs machine tools for ,ndustry.
manipulate canned programs and create their
own programs to operate such devices does not
By these means every item to/come from the
assembly line could vary sl~ghtly, thus
seem to me to be an unreasonable possibility.
giving the customer more c~oice. The
In this way computers could allow them to
variability would probablibe cosmetic in
regain control of the artifacts and environnature, not essentially altering the
ments which surround them daily. This seems
product purpose or functional form. Thus
to me an exciting prospect which has implithe choice would be re~rded as an excations for education, recreation, and our
ample of marginal diff~rentiation.(14)
economic system.
I
/
However systems suc~/as that used by
Mallary for producipg sculptures, Lourie
for producing weavings, or the Synthavision
System discussed by Elin could be used by
individuals wish~ng to design and create
artifacts such as furniture, fabrics,
and prints whiqh would be unique and suitable
to their speci~l requirements. If canned
programs withimany optional branches were
used to assis,t individuals in utilizing this
type of system very little computing knowledge
would be necessary. Because machine tools
operating from magnetic tape output could
produce the artifacts, little knowledge of
craft pro~esses would be necessary.(7, 9,
18)
As computers are presently used in automation t¥ey serve mechanical technology
which d~mands exact repetition for mass
productaon and is best served by heavy
centralization of industry. Small systems
for individually designed and produced
WEST COAST COMPUTER FAIRE
83
BOX 1579, PALO ALTO CA 94302
REFERENCES
1.
2.
Bangert, Collette S. & Bangert,
Charles J., "Experiences in
Making Drawings by Computer and by
Hand" Leonardo, vol. 7, p. 289296. 1974.
Bonacic, Vladimeer, "Kinetic Art:
Application of Abstract Algebra
to Objects with Computer-Controlled
Flashing Lights and Sound Combinations" Leonardo, vol. 7, p. 193200. 1974.
Reichardt, Jasia (ed.), Cybernetics, Art,
and Ideas, New York Graphics Society,
New York. 1971.
15.
Reichardt, Jasia (ed.), Cybernetic
Serendipity, New York-Washington.
1969.
Sykora, Zdenek and Blasek, Jaroslav,
"Computer-Aided Multi Element Geometrical
Abstract Paintings," Leonardo, vol. 13,
p. 409-413. 1970.
17.
Thompson, Michael, "Computer Art: A
Visual Model for the Modular Pictures of
Manuel Barbadillo" Leonardo, vol. 5,
p. 219-226. 1972.
18.
'Tuchman, Maurice, Art and Technology,
Viking Press. 1971.
19.
Jones, Beverly, Computer Applications
in Art Education Research unpublished dissertation. 1976.
Vance, David, "Organization Profile:
Museum Computer Network, Inc.," Information, p. 157-159, May/June 1975.
20.
Kranz, Stewart, Science and Technology
in the Arts Van Nostrand Reinhold
Co., New York. 1974.
Weizenbaum, Joseph, "On the Impact of the
Computer on Society, Science, p. 609-614,
May 12, 1972.
21.
Wei zenbaum , Joseph, Computer Pewer and
Human Reason, W. H. Freeman & Company,
San Franc:l.sco. 1976. -- ------
Csuri, Charles, "Computer Graphics and
Art" Proceedings of the IEEE,
vol. 62, no. 4, p. 503-515. 1974.
4.
Franke, H.W., Computer Graphics,
Computer Art. Phaidon, New York.
1971.
5.
Gips, James and Stiny, George, "An
IIl\fl:-l~UC'1.Lj();'J
Aesthetics"
p. 213-220.
7.
14.
16.
3.
6.
Pictures with an Tnk Flotter," Computer
Graphics and Image Frocessing, vol. -4,
p. 200-208. 1975.
,I'
.A][;r~r·jt,.l:?d.c
Leonardo, vol. 8,
1975.
8~-
KIfowlt on ,--K • & Ha-rf.16ri , - L ~~
9.
Leavitt, Ruth (ed.) Artist and Computer, Creative Computing Press,
Morristown, New Jersey. 1976.
10.
Linehan, T., "A Computer Graphics
System for Visual Preference Detection and Analysis" p. 90-121,
unpublished document.
11.
Mallary, R., "Computer Sculpture"
Art Forum, p. 29. 1974.
12.
Molnar, Vera, "Toward Aesthetic
Guidelines for Painting with the
Aid of a Computer," Leonardo,
vol. 8, p. 185-189. 1975.
13.
Phillips, J.W., Ransom, P.L.,
Singleton, R.M., "On the Construction of Holograms and Halftone
"Computer-produced Grey Scales"
Computer Graphics and Image Processing, vol. 1, p. 1-20. 1972.
WEST COAST COMPUTER FAIRE
84
BOX 1579, PALO ALTO CA 94302
~.nCROPROCESSOR
CONTROLLED SYNTHESIZER
Allen Heaberl in
5737 Avenida Sanchez
San Diego, CA 92124
Ceasar Castro
295 Surrey Pl ace
Bonita, CA 92002
Abstract
It does not necessary follow that high
quality music synthesizes requires complex har~
ware. This paper discusses the hardware and
software design of a synthesizer which utilizes
a standard microprocessor and a relatively
simple synthesizer card. Basically the synthesizer hard\'lare is used for the high speed data
processing and the software is used for the
slower data manipulations. The hardware allows
the microprocessor to control the frequency and
amplitude of up to 32.tonal channels. Amplitude control provides the means of producing
attack and decay envelopes and frequency control provides the means of producing frequency
modulation of the output waveform. The synthesizer card has storage space for 16 unique
tonal waveforr~. These waveforms can be used
to emulate different sounds. Their selection
is controlled by the processor. The underlining design philosophy of the synthesizer
was to tax the software as much as possible and
also to give the software as much control as
possible. This simplifies the hardware and
gives the greatest degree of flexibility.
Background
There are several different approaches
which could be used to design a synthesizer.
Each has its advantages and disadvantages.
As to which is the best depends on the predefined design goals. Before discussing the
synthesizer design several different synthesizer methods will be discussed. These alternatives include both classical analog designs
and several, new digital techniques.
analog circuits. For instance, making an analog oscillator programmable adds significant
complexity. If the circuit is not programmable flexibility and adaptability is lost. It
would be difficult to incorporate new waveforms. Furthermore precise control of frequency and waveforms is difficult. As the precision increases the design becomes demanding.
Oscillator and filter design becomes critical
and components must be carefully chosen. In
addition analog circuits have dynamic range
limitations which are difficult to improve.
Digital design can, at least in theory, improve the dynamic range by increasing the
word length. To summarize analog circuits
tend to be simple but have serious deficiencies when sophisticated performance is required.
Common Divider.[l] This approach is commonly used in electronic organs and uses a
common master oscillator, usually around 2 MHz,
and generates tonal frequencies by digital
dividers. Usually these frequencies are then
passed through different analog filters generating various waveforms. There are several
companies which produce the divider chips, a
significant advantage of this method. Since
only frequencies which are divisible into
the master oscillator frequency can be produced, resolution is restricted. Thus
slightly different frequencies can not be
produced. This approach is easy to implement since divider chips are available but
the approach is somewhat restrictive.
Digital Harmonic Synthesis.[2] In this
design each harmonic is separately generated with the amplitude and frequency specified by a piecewise linear function. The
implementation has good potential in duplicating waveforms and should be able to generate almost any desired waveform. This
approach requires a amplitude controllable
sinewave generator for each tonal harmonic.
This is a significant hardware requirement
as there easily may be 10 to 15 required
harmonics. In addition since the amplitude
and frequency for each harmonic must be provided a significant amount of control must
Analog. This design, usually consisting
of oscillators, filters, an other special waveform circuits, has traditionally been used in
synthesizer and electronic organ design.
These circuits tend to be simple. Usually
each circuit performs only one function and no
wide data paths are needed as in some digital
circuits. A big disadvantage in this approach
is that analog circuits, such as oscillators
or filters, can not be time shared. Thus to
implement a multitone synthesizer many similar
circuits must be fabricated. In addition
it is difficult to implement programmable
WEST COAST COMPUTER FAIRE
85
BOX 1579, PALO ALTO CA 94302
also be provided, probably beyond the capability of common 8 bit microprocessors
(6800, 8080, Z-80). Thus this approach
offers high performance but unfortunately
high hardware and control requirements.
FM Generation.[3] In the FM generator
approach a sinewave (or possible other function) is used to modulate the phase of an
oscillator. The phase is then converted to
a sinewave, usually by table look-up. If
the ratio between the modulating frequency
and the carrier frequency is an integer a
harmonic spectra is generated. By changing
the ratio between the frequencies and the
"modulation index" different spectrums can
be generated. This approach is fundamentally simple as few calculations are requi red and harmoni c ri ch waveforms can eas ily
be generated. One objection to this method
is a somewhat subjective one. Since the
spectrum is not controlled directly but
rather through a Bessel function it is difficult to relate the arguments to the generated spectrums. Thus it may be difficult
to implement a specific tonal waveform if
the parameters, modulation index, etc.,
haven1t been obtained. In addition if the
waveform produced is not bandlimited to
the sampling rate aliasing will occur. This
will introduce distortion as spurious frequencies will be generated. The only practical
way to correct this problem may be to reduce
the spectrum generated by insuring the spectrum does meet the Nyquist criteria. Another,
even less attractive option, is to increase
the sampling rate. Thus the approach does
have potential but does have some pitfalls.
DirecfUoigltiii
waveforms are summed at the output and this sum
is converted to an analog voltage in a digitalto-analog converter.
This approach is entirely digital with
~uch of the tonal generation process easily
controlled. The frequency is specified by the
word in the frequency control RAM; the waveform produced is the waveform in the RAM and
the amplitude envelope specified by another
RAM. Thus all of the above can be controlled
from a microprocessor merely by the processor
writing into the RAM's.
This approach is computationally simple.
An addition is required to generate the phase,
a memory access to find the waveform value and
a multiplication to implement envelope functions. In addition a summation must be performed over all tones. The approach is flexible in that all important parameters can
easily be processor controlled. A logical
microprocessor function is envelope generation since envelopes tend to change slowly.
The full resources of the microprocessor
would then be available for this function.
FREQUENCY
CONTROL
WORD
:
r
I
I
_.
,
-+ -
ADDER
I
I
ALLUMULATOR
I
I
~nthes-ls-(Phase-Accumu
- -
-
I
I
L
- - ---
~
i
I
I
I
I
--
...
I
REGl s-r-ER - -i
i
lation}.
This approach has been discussed in
other pgQers[4] and has been used by the authors.L J This approach is similar to John
Snell's[6] approach except the memory stores
the tonal waveforms rather than just a sinewave. In this design (see figure 1) a tonal
frequency phase is generated recursively by
using an accumulator. A digital word, corresponding to the phase shift between cycles is
continuously added in the accumulator obtaining successive tonal phases. The phase is then
converted into a waveform using a memory as a
lookup table. The phase is the input address
of the memory and the memory word is the waveform value. At the memory output the waveform can be scaled. This is done by multiplying the output by a scaling value. By controlling this value, deca~' and envelopes can be
implemented and also tremlo effects. The circuitry can produce many channels by making the
accumulator a multiword accumulator memory
and adder. Of course control becomes more
complicateq since the circuitry is shared
among different channels. In this case aii the
WEST COAST COMPUTER FAIRE
- ---
I
I
-
-.- -_.
,
....J
r----wAVEFO&~~
MEMORY
SCALE
i
i
MULTIPLIER
VALUE
OUT
Figure 1.
86
Direct digita.l synthesis.
BOX 1579. PALO ALTO CA 94302 . ~
Synthesizer Design Goals
The design goal was to allow sophisticated performance yet be of simple design.
This was attempted by making the hardware
simple and putting much of the complexity in
. the software. This affords maximum flexibility since software can be updated and
changed easily. It also results in simpler
hardware. The goals of sophisticated performance and simple design are somewhat exclusive and some compromises had to be made.
The compromi se \'Jas in the number of channels.
In the approach taken the complexity is somewhat proportional to the number of channels.
T~~s to simplify the design a small number
of channels was implemented since this will
allow lower speed circuitry and some data
multiplexing can be used. Furthermore
in taking this approach a modular design can
be implemented. To gain increased performance more of the identical synthesizer
modules can be used to increase the number of
channe 1s. Once the des i.gn is completed it
is easy to duplicate the circuitry.
An important use of the synthesizer was
in constructing an electronic organ which
sounds like a pipe organ. Basicallyelectronic organs, especially affordable ones,
donlt sound like pipe organs. Aside from
the accoustical environment where the organ
is usually located there are several reasons
for this. First of all there is usually no
chorus effect. This is the simultaneous
sounding of several tones of the same or
octavely related pitches, each ton~7jounding
at a slightly different frequency.L
Most
organs use a small number of oscillators,
often 12, corresponding to the 12 notes in
an octave, while pipe organs have the equivalent of thousands. Furthermore: separate
manuals often use the same oscillators further aggravating the problem. Another significant problem is that electronic organs
are limited in timbre or waveform generation.
Usually the waveforms are constructed by
passing a signal, such as a sawtooth, through
a filter representing the desired sound. Also
the filter usually covers 5 octaves. Coupling
these two restrictions limits the waveforms
that can be generated. Third, the transient
effects of pipe organs are rarely incorporated
The pipe organ has definite decay and attack
characteristics. If these effects are included
they are usually only rudimentarily implemented
Since the proposed synthesizer was to
eliminate as many of the above deficiencies as
possible the design must implement the effect
of many oscillators giving a "chorus" effect;
it must have very flexible waveform generation;
and it must provide for attack and decay envelopes.
Initially several constraints were imposed upon the design. Fundamental to the deWEST COAST COMPUTER FAIRE
sign were performance constraints. First, the
synthesizer must be capable of generating at
least 25 different tonal frequencies. This
figure was considered a lower bound since it is
desirable to produce many more. Since there
are ten fingers and two feet the maximum number of notes that one can play is 12. Having
a minimum of 25 possible tonal frequencies
insure that at least two tonal frequencies
can be generated for each note. Secondly
there should be a minimum of 4 waveforms or
tonal sounds generated at one time. Third,
there must be control of the envelope or amplitude variations such as tremlo. This control
must also be programmable. Fourth, the frequency must be specified to a high degree of
accuracy. This will allow close frequencies
to be used for the same note giving a chorus
effect. This frequency control must also be
programmable. Finally the word length must be
at least 12 bits giving a SNR (Signal-to-Noise
Ratio) of 72 dB. In addition the number of
samples specifying the waveform should be at
least 1000. This allows waveforms to be
accurately specified.
In addition there were important hardware
goals. First, no non-standard technology
should be used. Emitter coupled logic was not
to be used~ nor were special purpose chips
which are difficult to find. Basically the
design should use standard off the shelf ICls
such as TTL and standard MOS. Second, the
design, especially the controller, should be
Simple. Since the design was to be done in our
spare time difficult trouble shooting problems
were to be avoided. In addition a simple
design insures Simple maintenance. Next, the
design should use a reasonable amount of
power - about 10 watts maximum. Finally, a
medium number of ICls, less than 100, should
be used to fabricate the synthesizer.
A critical part of the design is the
software. The software was to be designed
with certain guidelines. First, to try to
keep the synthesizer hardware to a minimum,
software was to be used to its fullest extent.
This would not only allow for simpler hardware design but potential performance increase.
In the future microprocessors will have better
instruction sets and will be faster. Since a
large part of the processing will be done by
the processor there is potential increased
performance. In addition the microprocessor
should completely control the synthesizer.
This would allow for maximum flexibility in
modifying and changing the synthesized
sounds produced by the system. In essence
all the high speed data processing will be
done by the synthesizer card and all the data
storage, general bookkeeping and control will
be done by the microprocessor.
Finally, since the purpose of the synthesizer is to generate musical sounds, some
input device to indicate which sound or notes
87
BOX 1579. PALO ALTO CA 94302
to produce is necessary. The obvious selection is a piano or organ keyboard. This
appears to be the ideal input as the synthesizer is considered an instrument and should
be played like one. In addition the interface must be under interrupt control. Sof+·
ware polling is not practical since little
software time would be devoted to other
synthesizer software functions.
The synthesizer design method chosen
was the direct digital method described
earlier. This offers much in potential performance and also is computational efficient.
It further lends itself for integration with
a standard 8 bit processor.
Synthesizer Hardware DesiQn
The tone generate part of the synthesizer consists of five fundamental parts:
frequency generator, waveform, weighting,
accumulation and output, and control (see
figure 2). The frequency generator determires
the phase at each sample point. This phase,
of course depends directly upon the frequency control word (FCW) provided by the processor. The frequency generator recursively
genera tes the newes t phase by addi ng the FCt'J
to the prevoius phase. The phase is then
passed to the waveform sectio~. Here the
phase is "mapped" into the waveform: from the
phase, 0n k the waveform, Fk(0 n k ), is determined.' (n is the sampling number and k is
the waveform nuQber.) Then the waveform is
passed to the weighting section, where a processor controlled value, Wk, is used to scale
the waveform obtaining WkFk(0n k). Finally
these values are summed in the'summer section
ob t~i ni ng thes UrTJIl~9 QutpJJt of each of the 32
tone generators. The output of course is a
digital number which is converted into an
analog voltage.
As has been described earlier an important
goal of the deSign is complete processor control over tone generation. In the design the
processor does have complete control over the
synthesizer. The processor can write into all
controlling RAM locations. First the proceSSor controls the frequency of each tonal
frequency oscillator by writing the frequency
control word (FCW) into the frequency generator RAM. Second, the processor is able to
select the waveform, fk' by programming the
waveform number in the waveform select ROM.
Finally, the processor can select the scaling
values, Wk, for tone generation. Since all of
the above are processor controlled they can
change with time. However if a standard 8
bit processor, such as the 8080, is used updating all tone generators may be limited to
approximately once every 2 milliseconds. Another important processor input is the waveform; (Fk(0 n,k). By controlling the above
parameters and waveforms the processor can
WEST COAST COMPUTER FAIRE
88
completely specify the tonal waveform.
The interface between the synthesizer and
processor is a memory map interface such as is
used in the 6800 and the PDP-ll. Approximately 128 bytes are required to specify the
~CW, waveform number, and weight. Obviously
lf separate I/O addresses are devoted for each,
control I/O space will be several reduced. In
addition the waveform memories are not treated
as memory space. Each waveform will require
a lK by 12 bit memory. This could require 2K
bytes addreSSing space. With multiple waveforms the waveform memory space can easily
become very large. Instead all waveforms are
entered through a comnron port. As the data
is entered an internal counter is ir.cremented
providing the address for the waveform RAM.
Another port (memory address) is used to zero
the counter and specify which waveform memory
is to be loaded. Thus all waveform data is
transferred to the same location. The interface circuitry allows the processor to
wri te into the vari ous RAW s (FC~I, waveform number, weight, and waveform) controlling the synthesizer.
The controller is a simple circuit consisting of a ROM and a register. As the ROM
is sequenced the control waveforms are generated. All the timing for the synthesizer
is derived from this circuitry.
--.. _... ---..---.-,
~----1
IFREQUENCY
GENERATOR
h
!
L_WRIT~~EF6~1
!
I
ji
I
I
I
_-,--....J1
FeW
I
WAVEFORM
_i
J
---wr---r-..,.....J
IWTE-::f
WAVEFORM SELECT WRITE
_J~
j
WEIGHT I
!
:--------1
r
jOUTPUT
\
-~:- .........I~N
! ..
\
:ACCUMULA-
I oUlr
L....-_ _ _ _ _ .J
Y
'
WEIGHT
WRITE
PROCESSOR
BUS
Figure 2.
__
_ PROCESSOR
INTERFACE
r-~
TO ABOVE
CONTROLS
Synthesizer block diagram.
BOX 1579. PALO ALTO CA 94302 ~
r
cycle the referesh counter i~ updated. This
refresh operation occurs every 32 microseconds
for the 16K memory.
The frequency generator (see fi gure 3)
The memory uses 16 pin 4K or 16K dynamic
genera tes the phase for each of the tonal.
memory chips. These chips require the address
generators. The generator is composed of a
to be mul t.ipl exed in conjunction wi th two sepfrequency control word (FC~~) RAM~ a phase RAt.1
and an accumulator. All calculations are per-' arate clockS: row address and column address
~trobe.
These clocks are used in multiplexformed using two 8 bit words. Before tone
1ng the address to the memory chips. Since a
generation the processor loads the FCW RAM
memory fetch.is required by the synthesizer
with the two bytes specifying the FCW for
once ~very m1crosecond and the memory has a
each tone generator. This value is added to
0.5 mlcrosecond cycle time a spare cycle is
the previous tone generator's phase in two
available every microsecond. The spare cycle
8 bit additions obtaining the new sample
ca~ be used for either refresh or a processor
period phase. The RAWs used have a cycle
wr1te cycle. The refresh is given precedence.
time of about 250 nsec. Since there must be
If the processor attempts to write data and
two memory reads and two memory writes it
t~e synthesizer is not ready a memory wait
takes about 1 microsecond to generate the
w1l~ be asserted until the synthesizer is
phase. Implementing 32 tonal generators reava1lable and the cycle is completed. It is
quires about 32 microseconds resulting in an
anti ci pa ted the memory maybe loaded under Df-.1A
output sampling frequency of about 30 kHz.
control. This will allow the waveform to be
The most significant 10 bits of the phase is
loaded as the note is initiated.
sent to the waveform section.
Frequency Generator
PROCESSOR
DATA
BUS
~
FCW
i
i
!
i
RAM
· .c;
F~W
WRITE
ADDRESS
,
- -
PHASE
l
REFRESH
COUNTER
---r---_
I WAVEFO&'1 !
RAM
i
*
ACCUMULATOR
I
~
J'
__
.
t
! RAM
i
_
'----_.,.. ..... -.
~n
SELECT
i
WAVEFORM
LOAD
., .. ~ •. "._...... __ .~. _ _ .,' . _"_ ._••. ",_ • • J
INTERNAL
COUNTER
PHASE
PHASE
WRITE
!
f
I
, _ .._.. -- ...-___•.. _..J
1
•
,
MULTIPLEXER
-'--T---
,
t
PHASE
I
Figure 3.
Frequency generator.
WAV~.WAVEFORM
MEM01Y
WRITE
Waveform
The waveform section (see figure 4) consists of either a 4K or a 16K word by 12 bit
memory. There are three different types of
operations using this memory. The primary
cycle is the waveform generatlon cycle. Here
the phase from the frequency genera tor is used
as the memory address and the waveform value
is read out. The next type of memory cycle
is a processor write cycle. In this case the
address comes from the internal word counter
and the written data comes from the processor
data bus. In this cycle the processor loads
the waveform memory. The third type of cycle
is the refr~sh cycle. Here a memory read is
performed w1th the address coming from the refresh counter. At the conclusion of this
WEST COAST COMPUTER F AIRE
SA..MPLE VALUE
Figure
4.
Waveform section.
Weighting
.The memor.>; output is sent to the weighting
sect10n (see f1gure 2). First the data is co~
verted from parallel to a 12 bit serial word.
~en multip1ied.in the multiplier (25LS14) and
f1nally summed 1n a serial adder (25LS15).
The serial multiplier and adder have moderate
speed and low power. Use of the multiplier
results in a 1.0 microsecond multiply time
and minimal chip count.
89
BOX 1579, PALO ALTO CA 94302
~~
Processor Interface
Swi tch Interface
As far as the processor is concerned the
synthesizer is a write only memory. This
simplifies the design since no read bus
drivers or multiplexers are required. The
cycle is started by the processor setting a
write request flip-flop asserting the memory
wait line. Hhen the synthesizer has an available time slot the write operation is performed. At the conclusion the request flipflop is cleared and the cycle is completed.
There are two types of write cycles. The
first is into the parameter RAM's (2101 IS).
These RM1's specifv either frequency, waveform
number or weighting and have an approximate
250 nsec cycle time. The other RAM cycle is
for the dynamic waveform memory. This requires
a cycle time of approximately 0.5 microseconds.
The switch interface (see figure 6)
allows the keyboard to communicate with the
processor. Rather than putting switch debounce circuitry at each switch a common digital debounce circuit was constructed. This
results in much of the complexity of the interface. The counter continuously counts
generating addresses corresponding to different switches. At each address a RAM is used
to remember the status of a switch - essentially how long it has been on or off. To
understand the operation first assu~e the
switch is off. At this time the RAM will have
zero stored for that switch. As the switch is
turned on the status count will increase each
time the counter reads the switch. Finally a
switch "on" threshold is reached and that
switch is considered on. The operation is
similar when the switch becomes off. Hysteresis has been added, by having the threshold
when the switch is off greater than when the
switch is on, to eliminate contact bounce. If
Controller:.
The controller consists of a read only
memory (RO~1) and a buffer register. This is
a very s impl e controller \Ali th the success i ve
RUM address determined from the ROM itself.
As the ROM is cycled it generates the various
controller signals. Since there is no inputs
to the controller, other than the 20 MHz
clock, the operation is straightforward. A
simplified timing diagraA is shown in figure 5.
As can be seen each cycle consists of two
major timing parts. In generating the phase,
first the lower byte is calculated in the
first half of the cycle. During the second
half the upper byte of the phase is determined.
The waveform memory uses this phase during the
first half cycle to determine the waveform
value~-- The- last half of the -cycle is---a\iafla6Te
for memory refresh or for wri ting new waveforms.
The weighting section loads the multiplier \'/hen
the waveform data becomes available - in the
middle of the cycle.
COll1TE!t
!
'-'-----r--.-J
I
-
TO ~OTE SWITCHES
I
l~ _
~.A"
[
ON/OFF
-. --r"--
L
J.--.
FRIJ" NOTE
STATUS
1
ADDER
STATUS
:
'----._.-___ J
1
, . - - . _.. L - - _ - - - .
COMPA~TQR I
ON/OFF
SYNTHESIZER CYCLE;j
PHASE
(LOWER BYTE)
PHASE
MEMORY
READ
PHASE
(UPPER BYTE)
PHASE
PHASE
MEMORY MEMORY
WITE I READ
I
I
I
WAVEFORM
READ CYCLE
I
I
j
i
PHASE
MEMORY
WRITE
READ
PHASE
GENERATION
OR PROCESSOR
PROCESSOR
GENERATION
1
1NT
RE~
BUS
Synthesizer timing.
Figure 6.
WEST COAST COMPUTER FAIRE
Fl.I.PFL(,P
INTERFACE
WAVEFORM
WRITE
Figure 5.
;
~T~~rFR
I
REFRESH
READ
90
Switch interface.
BOX 1579, PALO ALTO CA 94302 _ ~
The attack envelope number indicates which
envelope the sofb/are should use for the given
note.
a switch change is detected~ that is~ the
switch becomes on or of~ an interrupt request
flip-flop is set. This also stops the counter.
The processor responds to the interrupt by
first reading the counter to determine which
key (switch) is changing. Then the processor
uses the address to read the RAM and determine
the switch status. This information is used
by the software to control the synthesizer
and will be discussed further in the softvJare
section.
This may seem excessively complicated but
it is much simpler than having a hundred or
so debounce circuits. In addition the same
switch interface can be used to interface the
waveform selection switches - stop selectors
on an organ.
TABLE 1
Note Table
Each Entry (128 Notes) Incl udes the
Following Elements:
Timbre number
Attack rate
Attack envelope number
Decay rate
Decay envelope number
Steady state rate
Steady state envelope number
Frequency modulation rate
Frequency modulation envelope number
Software
Introduction.
The software to control
the synthesizer and achieve the synthesis of
a note can be broken down into four parts. The
first parts deals with initializing the system
such as setting up tables, pointers and
counters. The remaining three parts deal with
the start of a note, the synthesis of the note
and termination of the note. The software
does a great deal of data processing. The
following paragraphs discusses the software in
more detail in the hopes that the reader will
get a better feel for the extent of the software.
Initialization. The software has been
written to accommodate 128 different notes
(forty more than a piano keyboard and six more
than two organ keyboards). Information on
each note must be stored, so that when the
note is played the software can fetch the information from a note table. Table 1 shows
the information that is stored for each note.
The first entry, the timbre number, tells the
software which output waveform the software
should use to generate the given note. At
present there are four output waveforms stored
in the synthesizer card. The attack rate is
used to determine how long the attack period
will last. An eight bit register, the attack
time, is summed with the attack rate every
clock period. The clock period occurs every
2 milliseconds. When the software detects a
carry from the above addition, the software
will change the state of the note from the
attack state to the steady state. For
example, if the attack rate is set at 4,
the attack period will last 64 clock periods
or 128 milliseconds. Each note has its own
rate so the attack period can be different
for every note.
The third entry in the note array is the
attack envelope number. At present there are
four attack envelope tables stored in software.
WEST COAST COMPUTER FAIRE
The note table also contains the information for the decay and steady state period.
This information is used in the same manner
as the attack information. However~ there is
one difference with the steady state rate.
The software never tests the carry.
This
means that once the note is in the steady
state it will remain in that state, except
for one condition; wilen the software has detected that a key is no longer being played,
the software will change the state of that
note to the decay state and thus the note will
be te rmi na ted a t the end of the decay peri od.
The final two entries in the note table
are the frequency modulation information.
This information would be used to modulate
the output waveform. However~ at present the
software has not been written to implement
frequency modulation.
Besides the note table there is a status
active table. The synthesizer can generate
up to 32 notes simultaneously. The status
active table contains information on or,ly
those notes that are being generated. The
number of entries in the status active table
depends on the number of notes that are s imultaneously being played. If no notes are being
prayed, then of course there \'10U 1d be no entri es
in the status active table. The information
stored in the table for each active note is
shown on table 2. There are fourteen parameters
listed for each note. The note number indicates
which note from the note table is being generated. The timbre indicates which output waveform should be used to generate the note. The
attack rate, attack envelope, decay rate, decay envelope, stready state rate, steady state
envelope, frequency modulation rate and frequency modulation envelope is the same information that is stored in the note table. This
information is transferred to the status active
table when a note becomes active. The Fre91
BOX 1579. PALO ALTO CA 94302
quency Control Word (FCW) is directly related
to the note number. The FCW is the actual information feed to the synthesizer to indicate
tonal frequency produced. Following the FCW
in the table is the FCW synthesizer address.
This address is the location the FCW is stored
in the synthesizer. The next entry, amplitude
synthesizer address, is the location the envelope amplitude data is stored in the synthesizer. Fi na lly, the timbre number address,
this address is the location the timbre number
is stored in the synthesizer. The initilization software sets up the pointers to the
status active table and clears the status
active counter to indicate that all 32 note
generators are available.
TABLE 2
Status Active Table
This table contains status information
on all active notes. Up to 32 entries
are possible with each entry composed
of the following:
Note number
Tirmre
Attack rate
Attack envelope
Decay rate
Decay envelope
Steady state rate
Steady state envelope
Frequency modulation rate
Frequency modulation envelope
Fr~qJ!~n(;y_~o·ntr_Q{)lm"'d . (FeW)
FCl;J synthesi zer address
Amplitude synthesizer address
Timbre number synthesi zer address
The initialization software also has the
duty of setting up the timbre waveform in the
synthesizer. The synthesizer card can hold
four timbre waveforms. Each waveform consists
of 1K 12 bit words which breaks down to 1.5K
bytes. The ~/aveforms are stored on cassette.
The software transfers the data from the cassette to the synthesizer card. There is no
restriction on the waveforms. They may be a
simple sine wave or a complex waveform. This
freedom provides the means of emulating instrument sounds, since the instrument's waveform can be stored in the synthesizer.
As mentioned, a note can be in one of
three states: attack, steady state or decay.
A state table is used to indicate which state
a note is in. There is a maximum of 32 entries in the state table. Table 3 shows the
information contained for each entry.
. WEST COAST COMPUTER FAIRE
TABLE 3
State Tab1 e
This is the operating array for
each active note. Each entry has
the following ele~ents.
State
Time
Rate
Envelope base address
Amplitude synthesizer address
Note number
The first entry is the state. This entry indicates which state the note is in.
The second entry is the time. This entry indicates how long the note has been in the
given state. Time is also a pointer to the
location in the envelope table the note is
presently using. The location contains the
amplitude datum for the output waveform.
Every clock period the rate is summed with
time to give a new time and a new address for
amplitude datum. If a carry is detected the
software will change the state of the note to
the next s ta teo However, there is one ·prob lem,
you do Qot want to leave the steady state and
start the decay until the note has been released. To prevent this from occurring the
software does not test the carry from the
steady state time and rate summation. Thus
the note will not qo into the decay state
until the software detects that the note has
been released and chages the state of the note.
The next entry in the table is the envelope
bas.e address-.... This.-_jsthe.address._o£__.the fir-st.
entry of the envelope table for the given state.
By adding time \'Jith the base address, the location of amplitude datum is determined. This
datum is loaded into the synthesizer amplitude
address.
The final storage table is the note frequency table. This table contains the frequency
control word for each note. Each FCW consists
of two bytes and since there are 128 notes, the
table occupies 256 bytes. The initilization
software loads the proper FCW for each note.
Besides the above tables, the initialization software sets up two stacks. One stack
contains the addresses of the available generators. The software loads the 32 addresses of
the status active table. The second stack contains the addresses of the generators that are
active. Since there are no active generators
to start off, the software clears this stack and
and clears the counter which indicates how many
notes are active.
The final requirement of the initialization
software is to set up pointers to the starting
addresses of the above tables and to set UD
the numerous counters that are used.
.
92
BOX 1579. PALO ALTO CA 94302 .
Note Detection. As mentioned earlier the amplitude of each note can be individual consoftware excluding initilization can be broken trolled. The flexibility of the design is do
down into three sections: note detection,
to the fact that much of the processing and conclock detection and note deletion. The note
trol is in software.
detection software is used when a note is
first detected. When a note is first played,
References
the keyboard har~ware detects the note and
causes an intehrrupt. dThe in~erruPft vectorsThthe 1. R. B. Cotton, "Tempered Scale Generation
processor to t e note etectlon so tware.
e
From a Single Frequency Source," Journal
first thing the software does is obtain the note
of
the Audio Engineering Society, Vo't. 20,
number from the keyboard hardware. Using the
pp.
376-382, June 1972.
note number the software determines the Frequency Control Word and loads it into the status 2 J. A. Moorer, "Signal Processing Aspects of
. Computer Nusic: A Survey," Proceeding of
active array. Next the note parameters are
moved from the note table to the status active
the IEEE, vol. 65, no. 4, pp. 1108-1137,
array. The synthesizer addresses are moved to
Aug 1977.
the status active table. The state table is
set up with the attack parameters. The Fre3. J. MChowning, "The Synthesis of Complex
quency Control Word and timbre number are
Audi 0 Spectra by t~eans of Frequency Moduloaded into the synthesizer. The output amplilation," Journal of the Audio Engineering
tude is set to zero. The generator available
Society,
Vol. 21, no. 7, September 1973.
pointer is incremented to point at the next
available generator. If no generators are
4. J. Tierney, C. M. Rader and B. Gold, "A
available, the generator full flag is set.
Digital Frequency Synthesizer," IEEE Trans.
The note detect software does not start
Audio E1ectroaccoust., vol. AU-19, pp. 48the synthesis of a note but merely sets up the
56, March 1971.
.
data so that it may begin. It is during the
clock interrupt software that a output from
5. A. Heaberlin, U.S. Patent No. 4,003,003,
the synthesizer is generated.
"Multichannel Digital Synthesizer and
r10du 1a tor, January 11, 1977.
Clock Detect. Every 2 milliseconds the
software is interrupted and vectored to the
6. J. Snell, "Design of a Digital Oscillator
clock detect software. The software will then
Which Will Generate up to 256 Low Distorcycle through the active notes. For each note
tion Sine Waves in Real Time," Computer
the time datum and rate are summed to give the
Music Journal, vol. 1, no. 2, pp. 4-25J977
address of the amplitude data. If a carry is
detected the software will chanae the state of 7. Richard H. Dorf, "Electronic ~1usical Instruments," Radiofi1e, New York, 1968.
the note. The a8plitude data is transferred
to the synthesizer card. If the software detects the end of the decay state then the soft- 8. A. Popoulis, "The Fourier Integral and Its
Applications," McGraw-Hill, New York 1962.
ware will delete the note from the status acti~
table and the state table. It will decrement
the generate available count to indicate that a
APPENDIX
generator has been freed.
II
l
MATHEMATICAL ANALYSIS OF TONE GENERATION
Note Delete. Hhen the keyboard hardware
detec·ts the end of a note, an interrupt is
sent to the processor. This interrupt cause
the processor to vector to the note delete
software. The software will obtain the note
number from the hardware. It will go to the
state array and change the state of the note
to decay state. The clock detect software detects the end of the decay state and does the
necessary bookkeeping as mentioned above.
To give those who are mathematically inclined a better feel of the mechanics of the
synthesizer, the following is a brief mathematical treatment of the synthesizer tone
generation. The section consists of two
parts. The first describes a mathematical
representation of the tone generation process. The other section describes the errors
introduced into the tone generation and shows
Conclusions
how they can be determined.
Assume we are interested in generating a
The synthesizer described in this paper is periodic waveform, fp{t), which has period,
Tp. In addition let us generate a function
intended tu provide high quality musical synf s (0) corresponding to a single cycle of the
thesis. Up to 32 simultaneous notes can be
synthesized. The attack, decay and steady state waveform but with period, 1:
WEST COAST COMPUTER FAIRE
93
BOX 1579. PALO ALTO CA 94302
f
s
Error_ Ana lys is
(tiT) = f (t) for Ost
en
~
8s::
-u
C
~
111
::0
"::0~
111
.....
o
IV
~
)(
o
o
CJI
.....
U)
ANALOG
-u
>
ro
»
r~
o
n
»
- - - , - 5-100 BUSS
U)
•o
w
N
FIGURE 2
10 0 UT 14, 144
20 OUT 15, 16
30 B=O
31 Z=8192
32 POKE Z,B
33 Z=Z+l
34 IF Z "8705 GO TO 32
40 C=51
50 P=8192
60 1=25
70 GO SUB 500
80 C=85
90 P=8194
100 1=26
110 GO SUB 500
120 C=119
130 P=8196
140 1=27
150 GO SUB 500
160 C=153
170 P=8198
180 1=20
190 GO SUB 500
200 C=187
210 P=8200
220 1=29
230 GO SUB 500
240 C=221
250 P=8202
260 1=30
270 GO SUB 500
280 C=255
290 P=8204
300 1=31
310 GO SUB 500
320 C=51
330 P=8206
340 1=33
350 GO SUB 500
360 GO TO 40
500 D=INP(I)
510 L=(8704-P)
520 IF L'O THEN RETURN
530 IF (D~2)-"=L THEN POKE P,C: TO GO 550
540 POKE P,B
550 LET P=P+16
560 GO TO 510
FIGURE 3
WEST COAST COMPUTER FAIRE
103
BOX 1579. PALO ALTO CA 94302
~
ASSN 0700
0700 31 A5 07
0703 3E 88
0705 03 DE
0707 3E 10
0709 0.3 OF
070B 01 00 02
070E 21 00 10
0711 36 00
0713 DB
0714 23
0715 78
0716 FE 00
0718 C2 11 07
071B 79
071 C FE 00
071E C2 11 07
0721 06 33
0723 DB 19
0725 21 00 10
0728 CD 74 07
072B 06 55
0720 DB lA
072F 21 02 10
0732 CD 74 07
0735 06 77
0737 DB IB
0739 21 04 10
073C CD 74 07
073F 06 A3
0741 DB lC
0743 21 06 10
0746 CD 74 07
0749 06 BB
074B DB 10
0740 21 08 10
0750 CD 74 07
0753 06 DO
0755- DB IE
0751 21 OA 10
07SA CD 74 07
0750 06 FF
075F .DB 1 F
076121 OC 10
0764 CD 74 07
0767 06 OA
___0 169 _pa::u
076B 21 DE 10
076E CD 74 07
0771 C3 21 07
0774 DE 7F
0776 11 10 00
0779 00
077A 00
077B 00
077C 00
0770 B9
077E 00
077F 00
0780 00
0761 00
0762 DA 8F 07
0785 70
0786 19
0787 00
0788 00
0769 00
078A 00
078B F8
078C C3 79 07
076F 36 00
0791 C3 66 07
EXEC 0700
FILE IFREAQI
FREAQ 0100
061E
U
0010
0020
0030
0040
0050
0060
0070
0060
0090
0100
0110
0120
0130
0140
0150
0160
0170
0160
0190
0200
0210
0220
0230
0240
0250
0260
0270
0260
0290
0300
0310
0320
0330
0340
0350
0360
0370
0380
0390
0400
0410
0420
0430
0440
0450
_..0.460.
0470
0480
0490
0500
0510
0520
0521
0522
0523
0524
0525
0526
0527
0528
0530
·0540
0550
0572
0573
0574
0575
0560
0590
0600
0610
BEGIN LXI SP .. TO?S+20 (SET STACK POINTER)
MVI A.. 66H (SET DAZZLER
OUT 14
FORMAT &
MVI A.. 16
PICTURE
OUT 15
LOCATION)
LXI B, 512 (SET ERASE LOOP COUNTER)
LXI H" 1000H (.sET ERASE LOCATION)
ERASE MVI M" 0 0
(DRAW BLACK @! LOCAT ION)
DC=< B
(DECREMENT E. L. CNTR.)
I NX H
(ADVANCE TO NEXT LOCAT ION)
MOV A.. B (LOAD COUNTR. TO ACCUMULATOR)
CPI 00 (CHECK IF CNTR. IS DEPLETED)
JNZ ERASE (I F NOT, REPEAT LOOP)
MOV AI C (REPEAT CHECK
CPI 00
ON OTHER BYTE
JNZ ERASE
OF LOOP COUNTER)
BARA MVI B" 51 (LOAD COLOR OF FIRST BAR)
IN 25
(LOAD AID DATA FROM PORT 25)
APLAC LXI H" I OOOH (SET START ADDR. OF BAR)
CALL PAINT
(GO TO DISPLAY SUBROUTINE)
BARB HVI B,65
IN 26
(REPEAT FOR NEXT
BPLAC LXI H,,1002H
BAR)
CALL PAINT
BARC MVI B" 119
IN 27
CPLAC LXI H.. I004H
CALL PAINT
BARD MVI B.. 163
IN 26
OPLAC LXI H.. I006H
CALL PAINT
BARE MVI B.. 187D
IN 29
EPLAC LXI H.. IOOSH
CALL PAINT
BARF MVI B.. 221
IN 30
FPLAC LXI H.. I00AH
CALL PAINT
BARG MVI B.. 255
IN 31
GPLAC LXI H.. I00CH
CALL PAINT
BARH MVI B.. ODAH
_IN _33 _____ _
HPLAC LXI H,,100EH
CALL PAINT
JMP BARA
(REDRAW SCREEN)
PAINT MVI C.. 7FH (LOAD LOOP&POSTN. CNTR. )
LXI 0 .. 16
(LOAD MEMORY JUMP I NCRMT. )
SI DOR Nap
Nap
Nap
Nap
crofp
C
(COMPARE INPUT VALUE&SCREEN POSTN.)
Nap
NOP
NOP
NOP
J
~A
L
(I F ~~IT 1~,G~EtTR' G. T. B)
MOV M.. B (I F N J, DBAw<...COL~"
INCRM DAD 0
(ADVANCE POSTN.)
CK
f\ A R
OCR C
.
OCR C
(DECREMENT lOOP&POSTN. CNTR.)
OCR C
OCR C
RM
(RETURN FROM SUBRTN. IF DONE)
JMP 5100 R (CONT I NUE BAR)
BLACK MVI M.. OOH (DRAW BLACK)
TOPS JMP INCRM
(CONTINUE lOOP)
FIGURE 4
WEST COAST COMPUTER FAIRE
104
BOX 1579. PALO ALTO CA 94302
PERSONAL COMPUTING AND THE PATENT SYSTEM
copyright 1978 DBH
David B. Harrison, Esq.
Owen, Wickersham & Erickson
433 California St., San Francisco, CA 94104
(415) 781-6361
Abstract
A cursory view of the patent
system with focus upon its application to personal computing. The
difference between inventions
and patents, and requirements for
patentability including a general
discussion and update on the patentability of software; the relationship of patents to copyrights
and trade secrets; and, obtaining
licensing and enforcing patents -why bother?
which grant inventions to inventors or works of authorship to authors
-- they own their original works from
themoment·of creation.
What our intellectual oroperty laws do is to recogni~e
that unless a reasonable legal
shield is provided, authors and
inventors simply will not be
motivated to disclose their works
and discoveries -- they will
keep them secret, and the rest of
us will not learn about them and
have a basis upon which to make
improvements. Leonardo Da Vinci's
secret discoveries or speculations
in the Fifteenth Century about the
parachute and the helicopter 2 were
uncovered and appreciated only in
recent years, and provide a good
example of the point I am trying
to make. Fifteenth Century laws
did not promote the useful arts
and offered no incentive to men
and women like Leonardo to make
their discoveries public.
Now, I have a little more
background to give you before I
get into my subject entitled
"Personal Computing and the Patent
System," a subject I happily
approach from my perspective not
only as a practicing patent attorney but also as an owner and
user of a personal computer.
I am only going to mention
copyright peripherally because
another attorney interested in
personal computing, Ken Widelitz
from Los Angeles, is giving an
excellent presentation on that
subject, and each of us has promised not to steal the other's
thunder, so to speak. So, for
information on copyright I refer
you directly to Ken's presentation.
It is my thesis that the
encouragement which our Patent
System has given countless thousands of inventors has made personal computing possible. A little
bit more history, and then we will
define patents, explain how they
Introduction
When you stop to think about
it, we live in a truly exciting
time. And this fact is proven,
at least, by our common interests
in the present and future of
personal computing which bring
us together at this Second West
Coast Computer Faire -- note
please that the word "faire" is
spelled F-A-I-R-E. In Marin
County where I live, in late summer each year there is a Renaissance Pleasure Faire, spelled
F-A-I-R-E, which celebrates the
Renaissance, that glorious period
of growth in the arts and sciences
of four hundred years ago. Today,
we celebrate a new Renaissance,
a golden age of computer power and
promise, an advanced technology
which we have inherited from all
of the innovations of the past,
and yet which is but a crude and
primitive glimpse and promise of
what we can expect for the future.
Over the last three hundred
years it has come to be recognized
by enlightened people and their
governments that human progress
is promoted, particularly in the
useful arts, by having laws which
protect creative works of authorship and invention. What I'm
talking about are the copyright
and patent laws which protect
authors and inventors. l Now,
by laws which protect authors
and inventors, I mean laws which
shield them from infringements
by others. I do not mean laws
WEST COAST COMPUTER FAIRE
105
BOX 1579, PALO ALTO CA 9430~
are obtained and used and touch upon
the dilemma confronting us as to
patent protection of software.
The Telephone Grandparent
!~re than one hundred years
ago in 1876, Alexander Graham Bell
invented the telephone and secured
a patent on it. 3 Since that time,
the telephone has grown to be an
absolute necessity of modern
life and it is not surprising to
learn that today the telephone
company, AT&T. has more u.s. Patents currently in force than any
other single entity, approximately
ten thousand patents,4 covering
everything from plastic materials
used in construction of home
instruments to fiber optics,
to patents describing highly
automated, complex switching equipment that makes direct distance
dialing a reality. And, it is th1s
latter technology that is in my
opinion one of the two grandparents
of personal computing. You see,
forty years ago, the telephone
company had an acute need for a
new theoretical approach to the
design of automatic long distance
dialing equipment.
It was a brilliant Bell Telephone engineer, C.E.
Shannon, who, in 1937, and fortunately for all of us interested in
computers, recognized the potential
of the work of the Nineteenth
Century English philosopher George
. J3.09:Lg, and. d~y~10ped _.:fro:mXKKtle's.
works what ''Ie now call boolean
algebra -- an analytical tool for
electrical c1rcuits. 5
(You know:
boolean algebra is the algebra of
the binary number system, the base
two, on-off number system, a
system understood and utilized by
our personal computers.)
Curiously, or perhaps not so,
the telephone company sired the
other grandparent of personal
computing. While some of the Bell
Telephone laboratory scientists
were hard at work applying boolean
algebra to long distance switching
problems, three other billiant
scientists at Bell Labs, Bardeen,
Brittain and Schockley, were inventing the transistor in 1946. 6 In a
book published in the early 1950's
entitled ~layer Piano, author Kurt
Vonnegut, Jr. futurized about a
centralized national computer he
called EPICAC of epic capability,
installed in Carlesbad Caverns,
New Mexico. 7 You see, to Vonnegut's
. WE'ST COAST COMPUTER FAIRE
prescient mind, it \vas a vacuum tube
computer. Had ~e then known about
the future of the transistor,
Vonnegut's story might have been an
even closer projection of what we
have today. As written, Player
Piano was an incredible insight
into the future, including social
dangers which might flow from the
misuse of computer power.
Because of the transistor,
your personal computer in your home
or office is potentially more powerful than Vonnegut's Carlsbad computer or any vacuum tube computers
that could ever have been built.
The transistor and all of its
progeny are the subject of literally
thousands of u.s. letters patent,
granted to thousands of inventors
who have so rapidly advanced our
semiconductor technology, from
point contact transistors, to
junction transistors, to epitaxial
transistors, to field effect devices,
to low scale integration, TTL, medium
scale, and now to what we probably
inaccurately refer to as large
scale integration, inaccurate in
:that we are now pushing packing
densities upwards with such patented
technologies as V-grooveS and high
resolution masking equipment.
It
probably will not be too long
before we will see, for example,
a single chip 64K bit random access
memory device. Think about it -- the
possibilities that lie ahead. And,
i t has. been .thedisclosurp.8-i-n patents··
that have provided inventors with
the stepping stones of essential
technical information which have marked
the path that has led us to where we
are today -- that brings us here
together at this Computer Faire.
Now, hopefully, I have constructed enough of a background or
operating environment to make the
subject of patents, if not interesting, which is my belief and goal, at
least palatable. And with that, let's
consider some definitions.
Inventions and Patents Distinguished
Let's begin by comparing and
contrasting the terms invention and
patent. For every patent there must
be an invention, but it does not
follow that there will be a patent
granted for every invention.
In
a broad sense each of us in an inventor creating an invention whenever, through exercise of our mentality and skills, we devise something new. The dictionary defines
106
BOX 1579. PALO ALTO CA 94302
invention as "a device, contrivance,
or process originated after study
and experiment." Another definition worthy of note accompanies
the word "invent": "to produce
something useful for the first time
through the use of the imagination
or of ingenious thinking and experiment, such as a new machine." Even
in the popular definition of invention we find the element of novelty,
that is, an invention must be something new or novel.
Before a patent may be granted
under our u.s. patent laws, another
essential ingredient must be present: "unobviousness, " a word of
art which, while easily explanable,
is somewhat difficult to apply in
practice. It is said that a patent
will not be granted unless the invention is one which is not obvions
to a person having ordinary skill in
the particular technology to which the
invention pertains. Let's apply this
test by an example.
Suppose the invention is a new
design for a microcomputer utilizing
a bidirectional data bus for communication between central processing
and memory. Let's further assume
that the design is truly novel, that
is, that no one has ever made a
microcomputer that looks just like
this one. Let's also assume that
the person of ordinary skill is a
graduate electrical engineer of
average skill and five years experience in the design of electronic
digital computer systems. Please note
that my assumption as to the level
of skill is purely arbitrary and not
to be relied upon outside this illustration.
Now, let's put this hypothetical engineer of ordinary skill in a
laboratory. On the walls of the lab,
let's tack up the closest prior art
references we can·find which describe
similar computer systems. Now comes
the test: if our mythical engineer
is able to synthesize our new invention from a combination of these references with his ordinary engineering
skill, then the invention is not
patentable. It is said to be "obvious"
or too obvious to merit a ~atent. On
the other hand, if the engineer cannot
synthesize the invention from the
references, then a patent should be
obtainable. So we see that the subject matter of a patent is a patentable invention.
WEST COAST COMPUTER FAIRE
107
Patents 'are issued to inventors.
Since patents are intangible per~onal
property, they may be transferred,
licensed to and/or owned by a party
other than the inventor. This is
often the case where engineers are
hired by companies to make development!
and innovations, and some turn out
to be patentable -- in this situation the employer usually owns the
invention, particularly if there is
a written employment agreement which
says so. Where inventions are made
outside the scope of employment, usually the inventor owns the invention,
although an employer may be able to
claim a limited "shop right" in the
invention if its time and/or resources
were used by the inventor in making
his or her invention. This is a
tricky area, and it is not safe to
suppose that there are clear cut
rules or results. There are a lot
of lawsuits filed in this area,
particularly in the case of so-called
"spin-offs" where a group of employees
leave together and set up their own
competing company.
The duration of a patent is 17
years from the date of issuance,
non-renewable. The average time
today for the examination of patents is approximately 19 months
from the date of filing to final
disposition,9 either issuance of
a patent, abandonment of the application, or appeal. Currently there
are approximately 1265 patent examiners at the Patent Office in
Washington,lO and each has at least
a technical background, with some
of them also being trained in the
law. These Patent Office examiners
administer the patent laws on a day
to day basis. An applicant unsatisfied with an examiner's negative
action has appellate remedies, first
to the Board of Appeals in the Patent
Office, and then if still unsatisfied,
to the Court of Customs and Patent
Appeals, a five judge federal court
sitting in Washington, D.C.
There is only one patent office
in the United States because it
is an exclusive activity of the
federal government.
States do not issue patents,
although this has not always been
true, and Massachusetts was the
first to grant a patent in colonial
days. In 1641 one Samuel Winslow
was granted a ten year exclusive
right by Massachusetts covering
BOX 1579, PALO ALTO CA 94302
his particular process for making
salt. u.s. Patent No.1 was issued
to a Philadelphian on April 10,
1790 for his apparatus and process
for making potash and pearl ash.
u.s. Patent No. 4,000,000 was issued on December 28, 1976 to a man
from Las Vegas for a process of
recycling asphalt-aggregate compositions. Well over 1000 u.s. patents are issued every Tuesday, fiftytwo weeks of the year. In 1976, 80,735
u.s. patents were issued, and in the
same year 109,227 new applications
were filed, which suggests that almost
three fourths of the total applications
filed resulted in issued patents.
A patent application today
requires a minimum $65.00 filing fee,
and if issued as a patent, a minimum
issue fee of $112.00. These fees
are paid to the Patent Office in
accordance with federal law. They
are above and beyond attorney's
fees and charges for such things
as making the required drawings.
Contents of a Patent
Before I summarize what has
to go into a patent, let me tell
you the theory behind patent disclosures. It is like a bargain or
deal, a contract between the inventor and the people represented by
the federal government. The inventor gives up a full and complete disclosure of his invention -- it is no
longer a secret -- with sufficient
.. __ . -de·t-a:ils to-efiable--··ape·rsrcffi· skiTled-1:-n
the particular technology not
only to make the invention but also
to make it work and use it for its
intended purpose. In exchange for
this disclosure, the government gives the inventor a patent
for 17 years.
We will talk about the rights
that a patent grant conveys in a
moment, but let's first briefly
mention the four requisites of a
patent application: a specification, an oath or declaration of
the inventor, drawings when necessary, and the prescribed filing fee,
which we have already mentioned.
The specification, which is
the required written disclosure of
the invention, has several parts which
I will list: title, abstract of
the disclosure, background of the
invention, a summary of the invention, brief description of the drawings, detailed description of a preferred physical embodiment of the inWEST COAST COMPUTER FAIRE
vention, and last, but certainly
not least, the patent claims,
which define in typically stilted
yet very precise language the
boundaries of the invention, just
like legal descriptions in land deeds
describe the boundaries of the real
property conveyed thereby.
When an application ripens into
a patent, there is the grant itself, and the document looks impressive, .with blue ribbons and
a red seal.
Enough of theory, let's consider an exemplary patent, one I
feel is appropriate for this
audience. It is u.s. Patent No.
3,821,715 which issued on June 28,
1974 and is owned by the Intel
Corporation. This patent describes
and claims a general purpose digital
computer formed out of large
scale integrated circuit chips:
one chip being a central processing unit (CPU), the second a
random access memory (RAM), and the
third a read-only memory (ROM).
Here now is the front page of the
specification which includes the
title: MEMORY SYSTEM FOR A MULTICHIP DIGITAL COMPUTER, names and
cities of residence of the three
co-inventors, Intel as the owner or
assignee, the prior art references
cited by the Examiner, an abstract
summarizing the invention, and one
of the figures of the drawing, a
figure which is supposed to be
most representative o-f-the overall
invention.
United Stales (lal~nt
lIun. Jr.
l1
11"1
I~I .U~IClfn" !.,\'!.u ".HIll .\ m·LTl.Ollr
bH;ITAI. OI\II·l'nl£.
•
].1\1.l.'
J7~1
l.74<1.n'
...~""':
.....nlilulf.
SInk·, M.".... SUnn'·'....,;
~"n:"'"
<.1....~.
Jr.• S;,nl3
FC'·I~"""""-Paul J. lie"""
~ r..wmiloc pi ...
ralil)· ..r ,,,,,ma,y chips is ""in~ oddrcsszd b)· lhe CPU.
The compul,-r is rahricll1,"'k < d,~~
COII1pUIc:"r. It dllr.'ou.lh.."S the: ccnt:-.!.I pr'''-=IL~~g WIll ...
5 ",,"1j!IC RAM an..! a >1",1.: KOM
I-It;. 2: isa~r~ iduslrJlmJ!: i.1 ... ;-~lc InllrOln.......IMln cyc~
'u
'...·Ihe COR1pUl<
~ in \\hl.:h tht- Rk'murlM!S ('cmmuIUCw~c \l;uh the
reo.:r... pn...'"c........,nlg: unit.
Since dicir ~ion. d;~taI computer 3pp1ic::ttk'll'lS 10 FlG .•1 t..;. a ~...:k d...l"ram illustr.:::ng I~ inh:rconncc
have: evolved from cak.'"UI..Itions Ihrc:li.:gh dna r:-..'I.:'L"SS!;..1I1S het\\"~n the ~.:n[r.d proces~:..~g unit aN a piuraJ..
101 aIkl ;nl('1 If'k: .r.r.:a 'If ('\)r,trui. In r.:.'-:cnl jl.:a:". \Lith
I;::. ,'II- !T1L'mur~ .,. hi~ ux:lwJing Rt-\f:., .::11.1 R \~ts.
the """Iopm~ su.:h "-, II>< RO!\.I. illustral~l in FIG. 3.
increased. Mini compulers today arc used .1 lbe h<-:trt 15 FIG. 5 is a <1<"" Nock diagram .'i a smgl< RAM suco
0( many syst< seen. the presentl, dis·
on lines 56a. S6b. 56c and S6d and mformal,,)" may be
dosed computer C!an PR>\·ide the ~ arithmell":- con· 30 read ink' or froni the computer on lhe i~PUIH)utPl.i!
troI ud comPUling functions as a mlOi-compule applications include conlrol funplays. k<~nuards. p",tcrs. -10 30 and 35 "here appmpriale. i= 'he pr"",nlly pr..
readers. plotters and term'nals. Other applil:a'k'DS for
f..red embodimenl ,he proce..",r 10 and ,he m"moraes
the presently disclosc:" system incl";" computing s~·.·
30 and 35 are packaged in dual io·iol1< 16 P'" packa~
terns and countbs other appJic:lttons within the: tkolds
as is commonly USIed in Ihe se:!:.lcoOOuctcr induSlt!
oItranspor1alion, automotive uses, medical electronics
and, as will be seen. lhe pins on each pa'K"l!'! h.·.•
and testing systems.
45 been ulilized such that lhe cen">! proc"".ng un'I "
era..
2. Prior Art
·S;7-1r..s Cof4M<"rER N'"..AItW'Y
-tf.~~.4i("&
I
I
~::~':":~~: :~~':n~:~:O::~ ~~ e;;:,~:
SUMMARY OF THE INVENTION
A aeneral purpose digital computer which compricss
.~,"r,y:;wv
...·'.""4 . .~..: ... -S
. ~~!tt,!:~~~~
:~toe~ :;~:;'~~c;:'
inc
provided on the memones with t-::temod CIr-:Ullry
SO
w'~~~~:~d :n';;'~~~. ~~~!~~3~!~:~~~~=
four bi-directional data bus line!t. One chip inclw..i:t"s
a central prO<:OS-0:. Iht'i ..ynchmr,l1..auon pu.~ 1""- iIIU!r
man dal.:, bu\ line ... In Iht." prc!'oCntly prefCCTt..'tI ~mtxlf.lilralcd OL'i slsmal6H in R(i. 2 and I\Ct.rnmUnK.:al.....,J from
ment:.eachoftlk.~chif"'are mounrt!'don stallt.ltrd Ih~n 6:5 l!le proce...sur 10 tn the 'l.arloU'S R-\~ and RO"'"k UIIdual in-line p.ICka~t:s and ir:.pt.t and ootput ml',:rmalKMl
Ii....oo in lhe:: ~omputer ('X1Ic~d M. "The ccnlraJ processor
to the c:umputcr i... read in thlOu~ and read uut from
also generates a R()~1 cuntrul sl,zr4lwhu.:h 1\ ~l)mmuPlterminals 011 lhe m,,,n,,,y ed in tbe computer Yla lead 33
WEST COAST COMPUTER FAIRE
109
BOX 1579. PALO ALTO CA 94302
Finally, I have included claim
I of the patent below so that you
see how precisely claims are
written. The claims are the heart
of any patent and they are drafted
to be broad enough to cover the
invention adequately, but not so
broad as to be invalid for attempting
to cover the prior art. Here is
claim 1:
35
40
45
Wcchim:
1. A rC1ll'ral purpose di/!ital comf)lMr l'Omprisinr:
a central prnn:ssor disposed on a first scmiconnuctor
chip;
a plurality of b:dircclillllal data hu'\ lines;
al k::J~t a s('par:4tc firsl ... nd second semiconductor
memory chip C;ldl ddiliing a mE'lI1ory and each induding a chip d~'codillg circuit for recugnizing a
Jillcrent predetermined code on sdid bidin.'etional
data bus lilies and for aCliv:llinr- a portion of said
memory upon receipt (,f s:lid prcJckrmined code.
said data hus lines interconnecling said pmcl'ssor
and said first :md set"lYid memory chips for communicating said difi;~n~Jjt prcdclt'rminl'd codes
from s:tid pro(:essor to ill least olle of Smer(i.e., Copyri~ht.
1978, by Kenneth S. Hidelitz.) rrhere are rules
relating to where the notice IilUSt appear, depending upon the type of w:lrk to be copyrighted. Tile
Co~yright law also requires that materials \-/hich
are copyrighted be deposited with the Library of
Congress. There are exceptions if the Librat"y of
Congress does not desire specific ~~terial. Reaistration with the Registrar of Copyrights is a
prerequisite to the bringing of a law suit for
t~e infringement of copyright.
Another consideration is the Doctrine of Fair
Use. Fair use embodies that notion that a reasonable portion of a copyrighted work may be reproduced \,/i thout the permi ss i on of an author for
a le9iti~~te purpose. The doctrine is most often
applied to teachers who have xeroxed materials
for distribution to students for educational ~·ur
jJoses.
WEST COAST COMPUTER FAIRE
116
BOX 1579. PALO ALTO CA 94302
BECOMING A SUCCESSFUL WRITER ABOUT COMPUTERS
Ted Lewis
Evel'Y author of a successful book knOl-IS the essential jngredj ents of a
"best seller"~ whether it be a "great American novel ll or a book about computers.
First~
the author must have something to say.
This concept is often overYet~
looked by an anxious novice eager to get his/her words in print.
there is value in your
words~
the book or article will be useless.
In
unless
cc~puting
there are many ideas and concepts that need to be clearly and concisely stated.
Unfortunately, books on computing tend to be re-hashes of the same old concepts
and ideas inherited from the first 25 years of computing.
The mjc:ropro(:c:ssor
revolution has changed many of the ideas and motivations in computing.
this change that may prompt you to write.
It is
If so, be sure to take a fresh and
innovative approach.
The second essential ingredient to good wd.ting is stylc!.
books are as valuable as clearly coded programs.
Cl(!~tl'ly
l'!yitt(:!1
Everyone has a unique style,
but as authors we owe it to our readers to suppress nonsensical idiosyncrasies
and "in" human.
Perhaps one of the most difficult tasks· for an author 01-
computer books
is to avoid use of mnemonics s clever IIbuzzwords", and trite
phrases.
Style also contributes to a book by forcing a structure on the writing.
Chapters are the modules of a book; sections are subprocedures, and paragraphs
are equivalent to control structures.
Thus~
a good book has a clean structure.
Style also means the book is organized into a. sequence of increasingly
complex topics.
Initially, a ground-level
introduction is used to familiarize
the reader with important. concepts used later.
minor.
Don't include material that is
Do include material that wii1 help the reader understand later concepts.
WEST COAST COMPUTER FAIRE
117
BOX 1579. PALO ALTO CA 94302
A final suggested ingredient in good \o{riting
not always a "good selling" book.
"life" of roughly 3 years.
in the first place.
i~
tjn-dng.
The reason is timing.
A "good" hnok is
Computer books have a
Furthermore, it may take 2 )'ears to produce the book
This means the'author must look :into t.he fut.ure to sec what
will be viable and may be of interest to t.he future computing community before
starting a new book.
An author must be a prophet of things to come.
Predicting the future of personal computing is almost impossible.
writing is a risky business.
Therefore,
For example, two years ago a wise wr-itc:r should
have expected a decline in hit building, and a rise in turnkey business systems
and disk files. - Today, there are several t:rends leading too "successful" topics
for authors of 1980 books,
The foregoing suggests three fundament a ~ conc.epts of
\~ri ti ng
a goctd book.
There a.re many other aspects of writing not. covered here. For example, the
author-publisher relationship, how to locate a publisher, how to promote an idea,
etc.
All of these factors contribute to the success (or failure) of a writer.
Nonetbeless,
the place to start a writing career is with 1) something of
valuetosay;w---.2} a polished -style-, and 3) a -topj-c 2 yea-rs--abcadof
WEST COAST COMPUTER FAIRE
118
j
tself. -
BOX 1579, PALO ALTO CA 94302
WRITING A USER'S GUIDE
Douglas J. Mecham
Hughes Aircraft Company, P. O. Box 3310, Fullerton, California 92634
Abstract
Programmers write neat programs that they
share with others; thus. there is a need to write
useful user guides. From the user's standpoint he
needs an easy and simple guideline to be successful. While this documentation task may seem
difficult-the programmer writing the user's documentation for his program can also be a success
easily and simply. The easy and simple approach
is to learn a few easy thought processes. This
presentation deals with eight major considerations
in writing the user's guide.
Your use of microcomputers has revolurionized the world. No longer is a highly trained
specialist required to use a computer. By virtue
of your attendance at the Computer Faire you are
sharing with others your experiences. These facts
require you to communicate your ideas. How well
do you do that? If you have to describe in writing
how to use your neat program, how well do you
communicate? The best idea in the world is not
worth much unless it is communicated and used;
in other words, your knowledge is worthless if it
is not communicated; furthennore, your intelligence of that knowledge is not credited unless your
ideas are used effectively.
The reason we should be concerned about
the details of documentation is because we need to
communicate information in writing about our
ideas. This is important now because this is the
decade of the user. More people, non -computer
oriented people, have direct access to computer
systems. These users do not tolerate the way the
system wants to operate but want to dictate to the
system how they wish it to operate. Good user
documentation is the key to effective use of a
computer system. This paper will provide some
useful ideas to generate good user documentation.
To provide perspective of where user
documentation fits consider the three parts of a
computer system:
Hardware
Software
Peopleware.
It is within the category of Peopleware that documentation falls. The objective of the user
documentation is to break down the barrier between
the real user and the computer system hardware
and software.
WEST COAST COMPUTER FAIRE
Written information is a personal thing
specifically designed for particular situations;
however, there are several aspects of it that can be
identified. This paper discusses these aspects; in
summary they are:
WHO- -understand the user's thought process
SIMPLICITY --keep it simple
FORGNENESS- -make recovery easy
EXAMPLES--use plenty of meaningful
examples
DETAILS--sink the details
RETRIEVAL--provide easy access
PERSPECTIVE--keep the user point of
view at all times
APPEARANCE - -it must look nice to read
well.
Remember the primary objective of the user information is to make the user successful, easily and
simply within his time/dollar constraints. End
users are very impatient about time and money.
Who
Consider who the user/reader is. The.
usual frame of reference for a writer is his own
thoughts but for a user document the frame of
reference must be the user • You need to determine
the user's psychological profile and understand his
thought processes. This is not so difficult since
you are well aware of how you think as a user of
other peoples' software. The type of information
presentation a user expects when reading a user
document can be determined by choice of form,
format, and vocabulary.
First, look at what information the user
needs to perform his task. The capabilities of the
software should easily define the parameters involved. Not all the information may be required
for all users so the user document must present
different amounts of information to meet eadi
individual's requ irement to complete his task
successfully. Certainly there is a minirrmm amount
of information necessary; this of course is the
simple path. Then there is an average amount of
information required; this would be the normal path
a user would follow. There are always those
complex tasks that require the user to need the
maximum amount of information. Aside from these
different paths, the most necessary set of user
information needed is when an error or problem
occurs.
119
BOX 1579. PALO ALTO CA 94302
Second, once the different sets of informa.tion have been determmed they must be ordered in
some manner. This implies a sequence of events.
Again, this detennination is a function of what the
user needs; that is, the sequence of events as the
user perceives them.. An easy way to determine
the sequence of events is to ask yourself "What is
the first element of information the user needs, "
"what is the second elem.ent of information the user
needs, " and so on. Do not fall into the trap of
providing too much information on the account of
"what if;" consider only the critical information
necessary. The user does not want to wade through
superfluous information. The user document is not
a design specification document and as such the
flow of information in the document is by user task,
not by technical item commonality or logic.
One of the user viewpoints often left out is
describing what the user cannot do. Remember the
user's perception of what he expects the software
to do may not coincide with what the software can
do. The user rrx>st likely will attempt to do what
he thinks he can do with the software, or what he
thinks he should be able to do with the software.
Assume very little and leave little to the imagination of the user.
However you plan your approach to meet
the above criteria you need to plan what information
is needed, the information flow, and the information
grouping. There is nothing that says that all
information groups tnlst be mutually exclusive; do
not be afraid to replicate elem.ents of information
within several groups. The sequence is important
to the user. The information should be in such a
sequence to accorrnnoclate the novice or student
(simple), the experienced user (average), and the
computer systems nut (complex).
Notice that the real information needs are
based on what the user wants, not on· what you think
he needs. It must be kept in mind that the user
requires only that information necessary to get him
to the next step to complete his task. An incredible
erroneous concept in data processing is that user
documents should define all their technical tenns
in the front of the document. Then ..• they expect
the reader to remember and understand them. for
the duration. If you need to define a particular
word then define it when you first use it in a meaningful context. Do not be afraid to redefine it later;
rrx>st technical readers have a short memory so
why make it difficult for them.
For any good user document the first
paragraph should indicate:
Who should use the document,
Why he would want to use the document, and
How to use the document (conventions and
organization).
This way the user may readily find the information
he requires without going through useless material.
The user document is usually a reference type
document, not a novel.
WEST COAST COMPUTER FAIRE
Vocabulary is a sore point with data
processing persons, or for that matter persons in
any other technical field. The reason for this is
because "it is obvious what a term means." Unfortunately, the reader cannot always rely on
context to figure out the meaning of a word. Consider the home computer user or any other nondata processing professional coming in direct
contact with the computer. The words chosen must
not let him think he is getting "computerese" all
over him. While some relish the acronym, jargon
is always hard to keep straight. Why not use words
that are easily recognizable by the user. Using a
meta-language (a specially-defined translation
language) is a NO-NO--speU it out!
Take, for example, the error message
ILLEGAL or FAILURE and consider the psychological ramifications on a law-abiding successful
business man. The psychological impact of a user
touching the computer is great! At first the user is
afraid he will break something or "it" (the computer) will "do something" that will render him less
capable to carryon in his life. Or "it" will destroy everything he has worked hard to achieve.
The user may think the computer will violate his
sense of goodness. One purpose of the user's
document is to put the user at ease and dispel any
such fears. Thus, the user's anthroporrx>rphic
sensibilities are alleviated.
Simplicity
The basic rule is KEEP IT SIMPLE!
Whether the user is a sophomore or holds a PhD
his desire, or his ability, to read is small. All
the user wants to do is get his task completed,
simply and easily. Simplicity may be used at all
levels of user documentation. Technical information tends t-obe cornplex,whether it is-or not.
All too often numerous concepts and parameters
are juggled before the user's eyes. A psychologist
once told me that a person can generally only
handle eight major items at once.
A user may understand sophisticated
vocabulary and complex concepts. But, each time
a user's thought process must make a translation
or complex transition the probability for loosing
information or concepts is significantly high.
What the user does not need is confusion. A simple example of this are references to octal or hexidecimal values instead of decimal values. As you
will see, simplicity also takes into consideration
who the user is.
One technique to keep a user document
simple is to take a "storybook" approach. That is,
structure the information in a simple, straightforward, step-by-step manner. When organizing
the information choose a critical path for the user
to get his task completed whether it is simple,
average, or complex level. In order to meet the
"storybook" criterion sentences need to be simple.
120
BOX 1519. PALO ALTO CA 94302 •
The "fog" factor of long sentences and large words
requires education beyond most users and considerable translation. Remember that television is
geared for the ten year old and it is a very
successful communications media format.
If you should leave out information by
assuming that the user should know it, chances are
you will introduce confusion. Why make the user
think more than he has to; certainly user documentation is not an examination. Why make it difficult
for even the most sophisticated user.
Vocabulary plays a role in simplicity. To
keep it simple use cormnon words known to most
readers ••• like the English language. Computerese
and FORTRAN do not have commonly known vocabularies. If you do use common words chances are
you will relate to your reader and he will understand your concept. For instance, to explain data
base concepts use school information for an
example rather than nuclear power; most people can
relate to information about schools. While there
may be some particular vocabulary words required,
minimize their number. Why should a user learn a
whole new vocabulary just to do his simple task?
Another method of simplicity is to make the
wording tight (no extra verbage) but not terse.
Leave out computer-oriented words. The five cent
and ten cent words put together well are worth
more than a fifty cent word that does not fit. When
you choose the use of a particular word, be
consistent and don't use-another word that means
the same thing or almost the same thing. This is
especially true when defining new terminology;
leave the word variety to the novelists. Consistency makes simplicity.
why a problem occurred but a good user's document can often cut this effort in half. The
v':lcabulary of the error messages must match the
vocabulary of the user document discussion.
Abbreviations and computerese are unwarranted.
Be kind to the user for he has problems.
The user cannot and does not want to distinguish
IJetween errors (specifications violated), need for
document clarification, or design change requirements. The user only wants to get his task done
simply and easily. Unfortunately most vendors ask
the user to make this judgement when he has a
problem.
/'
Examples
The first item the user looks for in a user
document is an example. More specifically, an
example that rnost nearly matches his task. Even
when using the manual as a reference an example
will often be needed. Thus plenty of examples in the
user's document are rnost helpful.
Since the user is going to reference the
examples so often. several important characteristics
should be noted. First, the sequence of events
within an example must be very clear and you must
distinguish between what the user does and what the
computer / software does. To make the example
understood provide an explanation of the sequence
of events or results right along side. Since an
explanation does not leave the reader guessing;
be explicit, you know what you mean, so tell the
reader.
Examples should be simple, easy to follow,
and consistent throughout the user document.
Often times, considerable continuity may be
achieved by creating several examples around the
Forgiveness
same topic matter. There is nothing wrong with
Naturally, if there is a way a mistake can be duplicating examples or portions of examples. It
is even desirable to build on a specific example
made the user will find it. This is easily done
duplicating a previous example to illustrate a
because the user performs his task the way his
sequence of events. This way the user can relate
memory tells him to, not the way the computer
the different examples. Examples are made simple
memory wants him to.
if the subjects are easily related to. For
When there is a conflict the computer sysinstance, if file records were discussed, the use
tern should adapt to the user but this is usually not
of bank: book accounting may be helpful since the
the case. Therefore, it is the user's manual that
reader can identify with it.
nmst make the computer system potable to the
There is no place for clever, funny, comuser's way of thinking, in the user's terms. Hopeplex, or wierd examples. These types only cause
fully the computer system will forgive the user and
confusion. Good examples represent the manner
give him another chance. The user manual is forin which most users would use the system.
giving by discussing alternatives should a problem
surface, and by not leaving the user to guess what he Additionally, the examples described must have
been tested and work.
should do. Computer software usually relies on
Finally, be careful of the symbology used in
the user manual to bail the user out of his problem
exarn.ples so the reader can distinguish between
and put him on the right road to performing his
form, format, and literal requirements. For
task. For example, just think of all the error
instance, italics are often used for a "type" of
numbers you have seen as a result of a problem.
input such as name whereas upper case may inThe user manual nmst define each error number
dicate literal information as in the case of ZIP=.
by a clear indication of what happened, what the
Specifying a carriage return is difficult so a symbol
current situation is, and what to do about it.
such as @ might be used since there is no symBoth the computer system and user's
bolic equivalent. Be careful of specifying literals/
document must allow for quick and easy recovery.
strings in quote marks, not all systems expect the
Normally, you will waste more than 50% of your
user to enter the quote marks with a string value.
time guessing and testing your hypothesis as to
WEST COAST COMPUTER FAIRE
121
BOX 1579, PALO ALTO CA 94302
For example, consider the message ENTER "YES"
or "NO"? Should the user enter the quote ma.rks
too? If not, then leave them out.
The more eXaInples you put in your user
document the better.
Details
The rule for detail description is to "sink"
it. In other words, do not get deeply involved in
beginning paragraphs of a user's document, save
In-depth discussion for last. Usually the user
needs only the straightforward simple information
to perform his task. Included in "details" are
complex and odd situations which are needed in a
small percentage of tasks. If too much detail is
required to perform the task, perhaps software
redesign should be considered.
In a user's document confront the user first
with the easiest and most useful alternatives. Su,~h
an approach will minimize room for user problems
to develop. Once the user is a success with the
simple approach he is ready for more detailed
material. Be careful to mention how to use an
item as well as just a description of the item.
Bulky ma.terial such as tables or long lists should
not clutter up the text. Since such information is
rarely read from start to finish and used normally
for reference, move it to an appendix. Besides,
the appendix is easier to update than the middle of
a document.
How much detail should be put into a user
document? Rules of thumb are: enough to assist
the user in accomplishing "most" of his tasks and
enough to solve "most" of the user problems. The
detail material is where the user limitations, pitfalls, and idiosyncracies are discussed. The
--- __ details_areneeded QnlY-Jlfte.Llh~JJE~I___~~_ Q~9~__ _
a success easily and simply at least once.
Retrieval
If informa.tion is useful. the user must have
easy access to it. The user document is primarily
used for reference. Thus, when a user has an
informa.tion need he thinks of an access point and
looks for that point in the user's document. Again,
what the user thinks may be different from your
point of view so consider several access points to
an element of informa.tion.
The user most likely will choose a word or
words related to the task he is doing. The user
will not likely select a word related to design or
organization of the software. The implication is
not only to index the user document information
by user task but to organize the document information by user task.
An alphabetical index is mandator" in a
user document of any size. Often a multiple level
index is helpful so a user can reference a particular
word as it is related in different contexts. Permutting words assists to cross reference material
where the index item is more than one word.
LikeWise, there maybe instances where pointers
WEST COAST COMPUTER FAIRE
("see Also") to other information may he useful to
a user tracking down information. Vocabulary
plays an i.mportant role in retrieval since not all
users and authors think of the san1C term to describe a function or other item of information;
thesaurus words are very helpful.
When considering the structure of a user
document, simple sentences, paragraphs, and
item lists are easy to access as opposed to long
paragraphical informa.tion. Furthermore, the layout can be extremely helpful for physically retrieving information. Some of the latter techniques
include shading of key words or syntax form.'>,
ma.rking paragraphs with bullets/dots, drawing
rectangles around important information, or using
separate fonts such as italics or script as well as
bold face type, underlining, simple indentations,
and titles.
Tabulation techniques can take the form of
colored tabs with printing on them; such tab pages
can have surrnnary user information on them for
easy access/reference. Simple inexpensive tabulation may be achieved by putting black marks at the
edge of a page. Then when the edge of the document is titled the appropriate section is found using
an index page in the front of the manual.
The need for easy and quick retrieval of
information in a user's document is mandatory
since all technical material is referenced after
being read. Not being able to easily and quickly
find information accounts for a significant amount
of a user's wasted time and frustration. The
attitude "it's all there ..• somewhere" is not helpful.
If a user has difficulty finding information he will
seek other software or computer systems.
Perspective
OftenpoIritsc>fcoiifUsi6ridevelopwhen -a
user loses track of who is doing what, when, and
where. For instance, when describing interactive
dialog it is important to indicate when the user is
to enter dialog and when the computer outputs
dialog, i. e. who's turn is it.
The relationship
between several software functions can be lost
through all the detail in each. thus a summary of
the functions showing or describing their relationship is helpful to a user.
One technique to keep the perspective is to
ease the user from a more global concept and scope
in on the particular item to be discussed. Other
techniques include diagrams, outlines, pictures,
and hierachical structured paragraphs. Of
course, complete, but simple examples provide
good perspective with user related topics. Such
complete examples tie together many subtask concepts so the user can see the big picture.
The user's primary concern is to perform
his task WITHOUT getting involved.
Appearance
A useful restaurant adage is "if it looks
good it tastes good." This also applies to a user's
122
BOX 1579, PALO ALTO CA 94302
document and I'll never have to eat my words. This
approach is done by all the big computer companies •.
They publish great looking documents but all too often
once you get into it the user's document is little
better than useless. For example, one manufacturer
published a very pretty 300 page user's reference
manual without an alphabetical index but the system.
sold well (boy! did the users ever complain).
Appearance is effected by the page layout
such as the spacing around and between paragraphs,
the type font such as script for "smooth" appearance
or bold for mandatory and easily recognizable items,
and page titles. Bold face font may be used to
emphasize key words. Rotmd cornered heavy plastic
tabs are impressive though expensive. Even more
expensive is the art work done to illustrate and
diagram user infortnltion but it can appear most
effective. One of the 1l'lOst effective ways to create
a useful appearance is to use color; although it is
expensive. Colors have psychological effects on
users. For instance, the error description section
of a user manual might have a red tab. On the
other hand a tab for the index may be yellow while
the sections describing the user commands to
execute useful functions might be green. Along this
line, the printed page stock could be colored. The
appearance of colors dictates how the document
is to be used.
If the format appearance is done well a technical document, such as a computer user's guide,
can increase comprehension. This is based on the
fact that most teclmically oriented people tend to
respond to ordered, sequenced, and logically
arranged material.
in your mind you too can be a success with gocxl
user documentation easily and simply.
If we are really to meet a user's needs with
our computer systems shouldn't we write the user's
documentation before we do the design and development of our software/systeTr'.s ?
I If the User:
I Ir
I"'"finds a user problem
I""
Then he will seek one of the
following levels
Why use
General form of the solution
Description of results
Typical example
Simple description
Details
-~
~
WEST COAST COMPUTER FAIRE
Problem and alternatives
Special uses
References
Tell why the user would want to use
this item of the system/software.
Paragraph 2. General form or format of this item.
Paragraph 3. What are the results of using the item.
Paragraph 4. Typical simple example with
explanation.
Paragraph 5. Simple description of the most
straightforward use of this item.
Paragraph 6. More detailed description of how to
use this item.
Paragraph 7. Discussion of problems, limitations,
and other pitfalls the user should
guard against. Discussion of what
to do if these problems should occur.
Paragraph 8. Description of special and more
complex uses of this item.
You may well realize by now that these
documentation ideas for users also apply to many
technical docl.DlleIlts, including program documentation. By keeping these eight elementary concepts
has a special task
Different Needs Dictate Different Uses.
The following is a guideline for structuring
written user information describing a subroutine,
progra.rn. subsystem, or computer system.
Wrap-up
I-needS a reference
I""normally uses this document
r-has a complex task
Technical Tnformation Structure
Paragraph 1.
is looking for solutions
Mecham, Douglas J.
You and Written Information
Technical presentation, HP3000 Users Group
Meeting, May 1974, Chicago, illinois.
Melby, lvfichael P.
Written Communications: A System Approach
Human Factors SOceity Bulletin, Page 1-3,
December 1977, Volume 20, Number 12.
Pacific Printers PILar
Monthly magazine, Richard Zimmerman, Editor,
M. L. Droubley, Publishers, 583 Monterey Pass
Road, Monterey Park, California 91754.
How to Use GraphiCS and Tables, Booklet
From Interpreting Graphs and Tables by
Peter H. Selby, Copyright 1976 by John Wiley
and Sons, Inc.
Himstreet, William C.
Getting Your Words Worth
Talk, Association for Systems Management
Los Angeles Chapter Meeting, 1972.
123
BOX 1579. PALO ALTO CA 94302
Birkwood, nene
The Technical Writers Survival Kit
Hewlett-Packard, Technica:t Paper given at
HP3000 Users Group Meeting, Seattle, Washington, September 1977. (Excellent reference. )
Q'Hayre, John
Gobbledygook Has Gotta Go
BUreau of Land :Management, U. S. Department
of the Interior, U.S. Government Publication,
1966, 0-206-141. (A must to read.)
Acknowledgement
I wish to aclalowledge three people who
have assisted my preparation of this topic. First is
my secretary, Lynda Schenet, who is a wizard
with the typewriter plus spelling. Then there is
Mr. Richard Nelson who inspires me to get·this
kind of job done. The third person, Mr. Robert
Barsalou, is from several years past who laid the
foundation for these topics.
ournal of the HP3000 Users Grou
(HP3000 Users Group Newsletter
Hewlett - Packard, Santa Clara, California.
65 Notes
Richard J. Nelson, Editor
2541 W. Canxlen Place, Santa Ana, California.
WEST COAST COMPUTER FAIRE
124
BOX 1579, PALO ALTO CA 94302
EDITING AND PUBLISHING A CLUB NEWSLETTER
Richard J. Nelson
Editor-Publisher PPC Journal
2541 W. Camden Place
Santa Ana, California 92704
Introduction
The fact that you read the title above and
have gotten this far indicates that you would
like to do some writing, have some ideas to express, or are presently involved in writing, editing, or publishing. The material that follows
is an amateurs viewpoint, and the only justification I have for writing this paper is a successful newsletter(l). A newsletter is a frequent, .less formal method of publishing timely
information for a fairly narrow readership.
Newsletters are periodicals that offer fast response compared to a magazine that is typeset
and requires three months or longer leadtime
from idea to print to reader. The Editor is responsible for the content of the newsletter and
the Publisher sees that the Editor's material is
reproduced and delivered. For amateur newsletters the Editor and Publisher are often the same
person. This paper will provide an overview of
the task of editing and publishing a club newsletter. Specific tried and successful techniques will be included and some references provided. This paper is not intented to cover the
fields of graphic arts, technical writing, or
printing, which would require several books. You
should, however, be able to understand the problems and have a base from which to start a newsletter if you are so inclined.
spending your time stimulating, organlzlng, preparing, and printing. Computers are technical
and you should have some technical or other experience, such as software or applications, to
draw upon for deciding the content of the newsletter.
In deciding if you should edit a newsletter
you should be notivated by a desire to serve a
cause, such as a club, or to make a contribution
to the field by providing needed information not
readily available to the intended reader. If
fame and fortune is your goal, don't take on a
club newsletter except as a training experience
for something more profitable later on. Be prepared to work mostly alone and independently.
The mean time to burnout for your helpers will
be measured in weeks and seldom lasts longer than
two issues. If you haven't been too discouraged
so far, let's get into some specifics.
What Do I Publish?
A club newsletter will usually have some
specific goals, such as announcing meetings and
reporting on activities. Unless you are taking
over an existing publication that is well established, you will generally have a great deal of
freedom on what type of material you publish.
Success, as defined in this paper, is having
Should I Edit a Newsletter?
more good material for each issue than space permits, and having a continuous growth and demand
The motivation to become famous by circufor what you produce. A club newsletter serving
lating reams of world shaking information is
a hobby readership must support itself in most
within us all. In the real world, however, Edi- cases. You must provide material that people
tors seldom become famous, or even well liked.
will read. In the United States we have strucA few do, but don't be misled into taking on an
tured our communications media in such a manner
editing task if you don't like hard work and
that we try to make it easy for the reader. Newslittle recognition. You should plan on at least letters can't waste space with wide margins,
a year of editing if you are going to do it at
large type, and profuse illustrations. Newsall. It takes that long to get into a producletters usually have a small readership and littion mode and build a readership. Editors are
tle advertising. If the material in the newsnot necessarily writers; they often write the
letter is not needed (technical) or interesting
material they produce, but they do not create
(well written and illustrated), it will not be
the material, except for the first few issues in read. Deciding on what to publish is what makes
order to get started. There are exceptions; and an Editor successful.
there are many successful newsletters (successful here means profitable) which reflect the opThe first task is to identify the purpose of
inion of an Editor knowledgable in a specific
the newsletter. If the club is dedicated to
field. In the computer hobby field you will be
computerized chess, the newsletter style and
WE:ST COAST r:OMPUTE:R FAIRE
125
BOX 1579. PALO ALTO CA 94302
content will be different than if the club is
dedicated to small business systems. The chess
enthusiast is interested in a very specific, very
technical subject involving great detail. The
business system user will be interested in the
system and what other ~ are doing with it.
Most club newsletters are of the latter type
and one of the keys to success is to recogni~e
the people aspect of a highly technical activity.
For a computer club newsletter it is inappropriate to get too involved with non-technical topics outside of club social activities. Topics
h ld
involving religion social reform et
be included only if the computer Play~'~ ~o~~,
and the people involved are recognized in their
fie~d.or are part of the club membership. The
declslon of what to publish should involve a simple formula or mix. Various categories can be
made; they will usually include:
not from a specifically acknowledged source has
probably been prepared by the Editor, or staff
writer (not too common with club newsletters).
Few authors will wish to remain anonymous.
E~ents, products, n:ws, etc., requires that
the Edltor be well read ,n th: many pub~ications
related.to ~he newsletter tOP1C. Scann~g 30 to
40.publlcat,on~ a month for useful mate~lal for
thlS categ?ry ~s not uncommon for an Edltor.
These ~ubl,catlons m~y.be f~eebees, or traded
for belng on your malllng llSt. If your newsle~ter is.successful and contribut~s i~eas, other
Edltors wlll want to exchange publlcatlons.
What Format Shall I U ?
se.
The format of a newsletter, as the term is
used here, is the layout of the material on the
page. Margins, number of columns, typesetting,
A. club activities
headings, and use of character size, upper and
B. human interest/applications articles
lower case, etc. A newsletter could be printed
C. feature technical articles
on a microdot, or it may be a simple page-wide
D. reporting of events, products, news, etc. column typewritten piece. Neither of these two
extremes are recommended. Avoid speCial type
styles, and DO NOT USE ALL UPPER CASE for text.
Club activities will include meeting annIt is unfortunate that most computer printers
ouncements, programs, officer changes, or any
item concerning the club that the reader should are not designed for human beinqs to read, but
this is changing as computer and peripheral manu·
know about. This information, like all infor~tion in the newsletter, should be easily found facturers realize that computers process text and
by using a format common to all issues. Format the output should be readable by humans. If possible, type the text and use computer printed
and organization will be discussed later.
material for program listings and tables. The
Human interest and applications articles
tradeoff is, of course, readability versus acshould involve club members if at all possible. curacy.
Computers are interesting, but people using com.
.
pllters~re mreinteresttng .A __ n_e\tl~le'tter is
. The c~o, ce ?f a format wlll depend on what
usually of the general interest type-,-as- ine-ntion- -e~lnpment-,-s--a-v-al-la-ble- tQYOu,-how muc-h---i-nforma..
ed above with the business system example. A tlon you want to squ~eze onto a page and, to'SOmE
construction or assembly article is much more
extent, the readershlp you hope will read the
interesting if Mary Ann describes her own exnewsletter. Gather at least a dozen different
periences along with the useful technical den~wsletters.and study them. Try to get as many
tails the article provides. This encourages the dlfferent klnds as you can. Look over the forreader to get involved, because he or she relates mats and observe the following:
to Mary Ann. How other people are using their
machines, or the justifications they made for
a. how wide are the margins?
buying their machines, are topics that readers
b. how many columns?
will want to know about. These types of articles c. is typesetting used?
will require special effort on the part of the
d. \that type sty1 es are used?
Editor to encourage, nurture, and coax into
e. is colored paper used?
print.
f. what kind of illustrations are used?
g. how many, what percentage of space, for phoFeature technical articles will form the
tos?
real backbone of the newsletter. You will have h. are the pages bound (folded) or single
to know who is doing what in the club to draw
sheets?
upon the members technical expertise. As Editor i. is it three-hole punched?
you may have to write the article after getting j. what is the content, and readership of the
the information from the actual source. The pernewsletter?
son providing information gets the by-line, not
As you study various newsletters and answer
you. The Editor rarely signs his name to arti- the above questions you will be able to get a
c1es even if he creates and writes the material. 'feel' for the type of format that you will want
The reader can assume that all material that is to use. Here are my recolllnendations:
WEST COAST COMPUTER FAIRE
126
BOX 1579. PALO ALTO CA 94302
Use a two-column format as a compromise in
paste-up convenience and readability. Do not
right-justify; most studies show that right-justification slows down the reader and, unless you
are trying to make an 'image ' of being a socalled, high quality piece, the extra production
effort detracts from subject content. Reduce
standard typewritten (10 or 12 characters per
inch) produced text to achieve at least 1,200 to
1,500 words per page. Start page numbering from
Page 1 which is also the front cover. Leave a
wider left margin on odd-pages and right margin
on even-pages for binding or hole punching. Make
top and bottom margins equal. Place page number, newsletter name or logo, volume and issue or
date, on each and every page. This should be
standard practice for everything printed today
because of readily available photocopying. Most
people want to know the source of useful information and each page copied should have that information.
per inch, column width, reductions, etc. A typical layout is shown in Appendix A. The figure
shows the paste-up page and its dimensions alone
with the print columns and margins. The formal·
format should include the specifications for the
newsletter and the paste-up. ~eductions may be
chosen as those used on the Xerox 7000. Reductions #2 or 3 are good. #3 is especially practical because the back of unusued, 132-column
computer printout sheets (1 1"x14" ) make good
paste-up sheets. The #5 reduction (61.5% of ori
ginal) is the limit that any reader will tolerate and should be well justified before using.
Most will find the print too small for casual
reading.
Preparing the Text. After all of the above
preparations have been made, the actual newsletter can be started. The many aspects of writing cannot be covered here except to provide a
not-so-obvious truism; you learn to write by
writing. The mechanics of getting from idea to
typed text varies considerably from the Editor
Masthead. At the top of Page 1 of each
newsletter you will see the name and other infor- who only has pen and paper to the Editor who
mation relavent to the newsletter. The masthead writes, edits, and types his copy. Unless you
are an excellent speller, have someone else read
may be a simple name or it may be an elaborate
your
copy before starting the cut and paste
design. The following information may be part
stage.
of the masthead:
~.
The ideal typewriter is the IBM
Correcting
Selectric.
The advantages of being
2.
able to use different type elements (balls)
gives you a little more freedom in being able to
3.
express complex technical ideas in written form.
4.
The newsletter material is single-spaced and
5.
typed the column width as defined by the format
6.
specifications. This means that a single column
typed on 8!2"xll" sheet wi 11 fi t wi th space in
Time. The readers time may not be an obthe margins for notes. Column length can be
vious consideration in choosing a format. A
thought of as continuous from beginning to end.
technical publication is usually read twice;
If you make a major error and wish to retype a
initially, and later as a reference to obtain a
specific part of the information. The layout and single line or more, just make a notation in the
margin to cut out during the paste-up stage.
format, and especially the titles and illustrat~ons, should be chosen carefully for descriptlve accuracy and visual association. The effecMasthead. Your masthead will be the same
tiveness of the newsletter as a reference is di- for each issue except for Page 1 text and date,
rectly in the hands of the Editor. Time is also volume, number, etc. I suggest that you prepare
saved by utilizing the reader's familiarity with a master page with all the material that won't
the newsletter. A newsletter that is consistent change from issue to issue, and print 100 copies
from issue to issue is easier to produce and
This page will serve as a special paste-up sheet
read if a formal format is established.
for Page 1. This method insures a consistent
print quality for your image-masthead. The idea
Formal Format. Write down a sketch of the approach is to prepare a paste-up sized master
layout that will define your format. Keep it
and print 100 copies of it for Page 1. The larhandy so you may use it when you assemble the
ger sized plates and press required to do this
newsletter. The mechanics of the newsletter
makes the cost beyond the normal club resources.
should be clearly defined and executed as a matter of habit so you can be concentrating on the
Photographs. Photographs cannot be used as
details of the content. As Editor/Publisher you originals for making plates for a printer to
print. Printing involves putting ink on paper.
may often have to be proofreader, illustrator,
artist, etc. Once you prepare your formal lay- There is only white paper and black ink. There
out you won't have to think about margins, lines is no gray or shades of black~ A photograph has
1.
publication name
short description or explanation of the subject, scope, or purpose of the newsletter
LOGO
issue identification by date, volume, issue
cost
copyright symbol
WEST COAST COMPUTER FAIRE
127
BOX 1579. PALO ALTO CA 94302
many shades of gray and must be screened to provide a photograph (positive) that is made up of
black dots that are either touching (black) or
further apart (appears as gray) to give the apoearance of shades of white to black. The size
and spacing of the dots control the detail of
the printed image. If the dots are small and
close together, a higher resolution (number of
lines distinguishable per inch) is possible. For
low cost printing, especially paper plates, photographs should be screened 65 or 85 lines. If
you take the photographs, or print them yourself,
you should make them a litt~ on the light side.
Mount them on a piece of cardboard and take them
to a graphics arts studio that will screen the
photos with a 65 or 85 line screen. Ask for a
screened positive. The originals will be returned to you so you can return them to the author. Photographs are easy to include in the
newsletter, and once you have found a quality
source for the screening, you should have some
photos in every issue.
It is not practical to type directly on the
paste-up sheet even if you ha~e a.wide carriage
typewriter. The common practlce 1S to cut and
paste the material to the paste-up sheet. Rubbe
cement is often used but I do not recommend that
you use it. The best method is to use a hand
waxer, or Scotch #810 tape.
Paste-Up Techniques. The equipment used to
perform the newsletter paste-up is described in
the following section. You have typed your artl'
cles in the column widths as determined by your
format, and are ready to start your paste-up.
Commercial paste-up sheets are available from
printers or Graphic Arts suppliers. They will
have light blue lines that serve as guides to
attach the prepared typed text. You may n?t be
able to find ones to suit your needs and wlll
have to improvise. If a 77% reduction is used,
llx14 11 computer sheets work fine. Cuff off the
holes at the end and prepare a stack for a years
use. Add your column guidelines by using a light
blue pencil and a cardboard template that has
If your screened photograph is a Kodak PMT cutouts and a block of wood for a handle. The
and you save your paste-ups for reprints at a
side margins will not be equal, so mark the top
later time, I suggest you wash them if your gra- of the template ODD PAGE with the wide margin at
phics arts studio does not. If they are not
the left; turn the template 1800 and mark the
Nashed, they may turn yellow in a few months.
top EVEN PAGE with the wide margin to the right.
Simply place the prints in the full bathroom
You may mark all pages the same way and rotate
sink and slowly run cold water to rinse them
them as you use them, or you may mark each page
for 10-15 minutes. Pullout, place on the
o
or E in sequence. The latter method takes
)athroom mirror and use a clean window squeegee longer, but helps prevent errors if a non:reduced
to remove excess water from both sides, and
page is used. Use one system and be conslstent.
then hang to dry.
The idea is to establish a system for the first
issue and have the mechanics follow the system
The Paste-Up. If the newsletter page is to so you can concentrate on composing the page.
The paste-up- sheet will be reduced by Xerox,
--be -reduced, --the camera (or_ Xerox). copy mus t be larger. For example, this paper was prepared on or camera by the printer. When a column of tya ~aste-up sheet with page size 10.2411 ~ 13.~511 ped text is cut by papercutter I reco~end 1eavWhl~h, when reduced ~o 83% of p~ste-up 1S ~ xll ·ing about 1/16 11 "/hite space on each s1de of the
Don t.get.confused w1th ~he rat10s! pro~ess1ona1s column. This allows the printer to be able to
work 1n p1cas, etc. Hav1ng an eng1neer1ng back- remove any shadow if he is using an electroground.1 simply use a ruler maked off in tenths static plate maker. If you reduce your paste-up
of an 1nch and use a calculator. Two factors
on a Xerox machine, I suggest you place a soft,
should be.noted on your.forma1 format sheets~ one thick, \'Jhite ink blotter, larger than your pasteto determ1ne paste-up S1ze from newsletter Slze up sheet, on top of it. Press on the Xerox rub(greater.than one), and one.to determine newsber cover to keep the paste-up sheet as close to
letter S1ze from.paste-up S1ze (less ~han ?ne).
the glass as possible _ the ink blotter pa~er
fhe table below 111ustrates the relat1onshlps.
(or dozen sheets of newspaper) helps distr1bute
fhe two factors are r~ciproc~ls of each other.
the pressure to keep the whole sheet ~lat. This
rhe Xerox 7000 reduct10n #3 1S used:
will reduce the shadows that may be p1cked up by
the non-parallel light source in the machine.
II
A useful technique for cutting the typed
text with a pa perc utter i s to P1ace a 1arge wh i te
Paste-Up Reduction Multiplier
Mult1pl1er sheet of paper on the table under the blade. This
Sheet
% of
for Newsfor paste-up reflects overhead light, and your hand placed
____-.:...P~a:::..st~e:....-.:=..U.&::.p___!l:.=e:...:::t.;:;te::.;r__.:::S...:.i;:.;ze::..__ __=_s.;..;iz~e~_ _ above the text being cut provides alight conllllx14"
77%
0.77
1.30
trast that shows a shadow of the bottom edge of
the papercutter. A precise cut can be made usin~
fable 1. Paste-Up vs Newsletter Page Sizes
thi s techni que. ,IJ, s i ngl eli ne of type can be
-....---,.---.,:-:---:::---:-~---:-;;--;-';"'"'";"".......-:-:"--"'"'ii:":"'i'Z:::.:;-::.:::-::-
WEST COAST COMPUTER FAIRE
128
BOX 1579. PALO ALTO CA 94302
removed without difficulty. An Xacto knife is
has a can~ra capable of handling most paste-up
useful, but the papercutter method' is faster and si zes and he wi 11 make the p1 ate from the pasteeasier.
up. I want a permanent file master and pay $2.0C
per page for a reduced PMT positive print for
each page. The printer makes his plates from
Attaching the cut text or photos to the
paste-up sheet may also be done using a small
the PMT. This has the additional advantage of
sliver of Scotch Magic Tape #810. Using a tape beirg able to add full size titles waxed to the
dispenser, a pair of scissors, and tweezers, cut PMT to give larger headings, etc. It does add
the tape as foll ows: pull tape out 2", cut 1/16" an extra day to the producti on process.
off the end to remove the jagged edge made by
the previous cut of the dispenser. Hold the
There are many methods of producing the man)
'floating' end of the tape with the tweezers.
copies required to mail or distribute to your
Cut a 1/8" length with the scissors. Hold with readers. Offset printing is best, Xeroxing or
tweezers and tape the photo, etc., to the paste- other photocopying methods, such as the 3M or
up sheet. This small amount of tape won't be a Savin copier, may be used to obtain two-sided
problem for the plate maker (larger pieces will copies. Offset printing is lower in cost and
reflect too much light), and using the tweezers provides better quality than photocopying. Ask
to slip under the pasted material it is easy
the photocopy shop if they have a price and serto move if required.
vices list. Examine it - most likely it is
printed! I once experimented with an issue reUsing a hand waxer is the best way to assem- produced on a Xerox 9200; the newsletter was 32
b1e a newsletter. The paste-up sheet may be
pages and I had 2,000 copies run. The pricing
waxed, but it is best to wax the material being was a little higher than printing; delivery time
about the same for collated sets. Quality, howlaid down on the paste-up sheet. A stack of
newspapers, cut in half to reduce table space,
ever, was inconsistent and I never went back.
makes a good work area to roll the waxer over
My friendly printer gives me his odd sheets (the
extras a printer prints to insure having ethe text, etc. (upside-down). The newspaper
is discarded once there is wax on it to avoid
nough printed properly on both sides) which make
the disaster of getting wax on the text side of useful material for correspondence, paste-ups,
the paper.
etc.
I
I
I
Equipment. Preparing a newsletter requires
some basic equipment which is essential if you
expect to survive even one year. The first piece
of equipment you should have is a large, good
quality papercutter. Spend the $20 to $35 to
get one that has at least a 12" blade. Next is
that marvelous gadget - the waxer (2).
A waxer
is a small roller with a heated reservoir of hot
wax which rolls a 2" wide layer of a special
sticky wax over anything. The paper sticks because the wax has a sticky characteristic that
holds paper to paper when a small roller is used
to press the sheets together. Tweezers (Clauss
#AA), Xacto knife, and large 18" ruler with 1/10"
scale are important tools for an Editor doing
his own paste-ups.
Printing.
Acceptable, low cost printing can be found
in most larger cities. Southern California, especially the Los Angeles-Orange County area,
seems to offer the lowest cost printing in the
U.S. One hundred copies of a~orlginal costs
$2.12, tax included. T~o~h~dre~ copies, $3.18.
This offset printing process uses an electrostatic process.'to make a paper plate. Check with
local printers to see what is available. Visit
their shops and see what equipment they have. If
you reduce your paste-ups free on a friendly employers Xerox 7000, you will have a continuous
problem of varying quality. Usually the printer
WEST COAST COMPUTER FAIRE
I
Collating.
Most printers will collate your newsletter
for an extra charge. If the newsletter is a
club effort, you can do the collating at the
same time you prepare the newsletter for mailing. A bookshelf makes a good collating device,
or a homemade collator can be made. Cut slots
for 9~"xll~" sheet metal shelves, 1" apart, for
a small 'bookshelf ' 9" wide. The height of the
collator can be about 18" for a 16-she1f capacity. The horizontal sheet metal shelves can
be slid into their slots 2" for the bottom, 3"
for the next, etc., going up. Five to seven. •
sheets can be collated with about IPO sHeets per
shelf capacity. A wet sponge moistens the index
finger to pull the sheets out, and a quick collation of 300 s~ts of a 14-page newsletter can
be done jn·an' hour.
Printing the first page of the newsletter a
different color gives it character and allows
many issues to be stacked for storage and easy
separation later.
Mailing.
129
One of the biggest problems is the mailing
list and production of labels. I suggest the
following scheme to maintain the mailing list
and produce the proper labels for each mailing.
BOX 1579, PALO ALTO CA 94302
AsSign each member/subscriber a sequential numType his name, number, and address in three
or four lines centered on an Avery label sheet,
#5351, intended for Xerox copies. Write the
member's expiration date in pencil on the lower
right part of the label. The 5351 label sheet
has 33 lllx2-3/411 labels stuck to a waxed sheet.
Res~rve ~he upper-right label for a large number
to ldentlfy the sheet. When mailing time arrives
scan each sheet to find expired members. Peel
off their label and place on the back of the
sheet. Take your box of master labels to a Xerox
machine and have them duplicated onto another
set of 5351 labels. Peel and stick the duplicate set to envelopes or self-mailer newsletters
at a rate of 450-500 per hour. When a member
renews, place his label back on the front.
Changes are easily made. Do not make copies in
advance; things change too fast. A mailing list
of 3,000 has proven no problem ~n maintaining in
this manner.
j ber.
fic~, but give it.a good try. Go to a Main Post
Offlce after call1ng to ma~e arrangements to talk
to some~ne who handles buslness accounts. The
u~ual wlndow teller ~annot help you much. Permlts are reasonable ln cost and allow you to
print a cancelled logo on the envelope. Most
~ewsletters.are ~rked FIRS~ CLASS, dated materlal, and malled wlth a permlt.
Finances.
The club usually finances the newsletter.
Costs for a year's operation are very predictable if a fixed issue size, including attachments (such as a member list, index, etc.) ,is
determined. Allow 20 or 30 issues for Editors
exchange and overprint enough for those special
packages of back issues an Editor will want to
swap with other Editors. You should not have to
worry about finances or getting checks to pay
the printer. If you do your planning properly
before your first issue is printed, you will
save considerable time and frustration. Printing
Another scheme that has worked with older, costs, label, envelope, and assembly costs will
slower photocopiers, is to photocopy Page 1 which be small compared to mailing costs. Allow for
is also a self-mailer and contains the address
supplies such as tape, rub-on labels, liquid
paper, black pens, and blue pencils. Typing can
information. The mailing list is typed on a
length of adding machine tape with convenient
be profeSSionally done without financial diffispacing. Two slits are made in the original
culty if your mailing list is several hundred.
placed on the photocopier window. After each
Do not take on a newsletter that can't support
copy the tape is pulled through the two slits to itself. Advertisements will help, but for a
show the next address. The sequential numbering small operation it won't contribute much and are
of the names allows a quick check that the list essentially donations by local businesses.
was complete. Both methods have been used with
Conclusion.
success - never does a member not get an issue
mailed to him. The Post Office may lose it, but
Editing and publishing a club newsletter
you have one addressed to him each issue.
. . -canbeareward-i ngand .educa ti onaLexperi ence .
Avoid sticking stamps if possible. It is a Most people have no concept how time consuming
chore because the managers of our postal system it can be. The Editor will spend six to ten
have no concept of providing stamps in convenient hours per page per issue if he does not do the
form. Rolls are reasonable for various forms of typing, and his print density is 1,200 plus wordsi
mechanization, and go fast manually. Sheet
per page with illustrations and photographs. The'
stamps can be stacked five to ten in a stack,
pressure of working to a deadline can be too
stapled at one edge, and cut into strips on the stressing for some people. It seems that you repapercutter, leaving the whole sheet still atta- lax a few days after crashing out the last issue,
ched (for counting and control) with the cut
then you realize that you are getting late for
the next one. Your reward for taking on the
stopping ~II from the end. Tear off one stack
strip at a time and apply using a sponge. The
task must be self-fulfillment of getting good
problem is that usually the required amount of
technical information to your readers and the
pride of doing each issue a bit better than the
postage is not a single stamp in roll form.
previous one.
Foreign postage requires extra time, so allow
your extra charges to cover this expense. Send
First Class to insure delivery -- remember, a
There are no special requirements or trainnewsletter is timely. Foreign is sent Air Mail~ ing that will make you into a good Editor. A
Other Article - and requires a non-sealed clasp certain feel and interest in information gathering and dissemination is required. Editing,
envelope.
writing, and programming are similar; you really
Obtain a mailing permit if you qualify. A don't know if your efforts will be successful
mailing machine is OK if your club doesn't have and rewarding until you try.
to buy and maintain it. Mailing permit information, and mailing costs for various classes of
mail, is very difficult to get from the Post Of- See bottom of Appendix page for footnotes.
WEST COAST COMPUTER FAIRE
130
BOX 1579. PALO ALTO CA 94302
APPENDIX A- FORMAL FORMAT 77%
Paste-up sheet layout
I
~I
1111
(8.5)
I-,-t
111 (.77)
MASTHEAD AREA
I
lor'
1.2"
(1. 3)
(.92)
-L
Column is 53 characters
across @ 12 char./in.
This is 8.8 words per
column. (6 char/word)
Column length is 12 in.
Six lines/in is 72 lines.
Words per column is
~
72 x 8.8 = 634. Words
per page is 1,268.
HEADING
to.
~
9" (.69)
.5"
( .39)
.5"-...
(.39)
Note: Typeset text has
variable spacing and an
average must be used if
a comparison is made.
~l· ".~
_
14"
(11)
r
~~_----'_)f=~~~----,f
_-<1.0..--->
111 (.77)
_W
__
Odd page and front page, even page rotate 1800 .
Note: Numbers in parenthesis ( ) are newsletter page dimensions.
This layout uses the reduction shown in table 1 of the text. It is a good
place to start if you are doing your first newsletter. It is effecient in
that 1200 words per page is still in a type size that is readable by most
people. Make notes to formalize your layout to insuure a consistant newsletter.
is nearly 2,000. PPC members contribute'
$15 per year for the programs, programming
techniques, applications, and hardware modifications information published in the PPC
Journal.
Footnotes.
(1) The newsletter is the PPC Journal, formerly
called 65 NOTES, a monthly publication of
PPC, formeMY called the HP-65 USERS CLUB.
PPC is a dedidated Personal Programmers
(2) Write Paste-Up Supply, 1113 Walnut Street,
Club for Hewlett-Packard Personal ProgramSan Gabriel, California 91776, (213) 283mable ~a1cu1ators. PPC Journal readership
4610, for information on waxers and supplies
WEST COAST COMPUTER FAIRE
131
BOX 1579, PALO ALTO CA 94302
DEUS EX MAOilNA
or
The True Computerist
by
Tom Pittman
P.O.l3ox 23189
San Jose, Cae 95153
~everal years ago, when the idea of a personal computer was still instant I as a Christian thought I could feel something of the
only a gleam in my eye, I made an observation about my work as a satisfaction that God must have felt when He created the world:
computer programmer. I suppose the same thoughts have occurred II And God saw every thing that he had made, and, behol~ it was very
in the minds of painters, sculptors, composers and other artists aoocL" [2J If man is, as Christians believe, created "in the image of
down through the ages. I perceived that I was giving existence to God" [3], then perhaps I had learned something about God. In this I
something Which had not existed before ~ I was creating e~ nthtto, have a definite advantage over the painter and the composer: I can
out of nothing. To be sure, most of the programs I wrote were""iTlefe create something that will interact with me, as man interacts with
copies or adaptations of other programs, and nothing new in God. So far it is a strictly intellectual interaction, and for the most
themselves. And, the taxman to the contrary, there was no tangible part very predictable - my creation does what I programmed it to
sUbstance to the work of my hands. But every once in a while I could do, which is (usually) what I had intended. I consider my insight to be
stand back and look on my work and say, "See what I made!"
only a pale reflection of the devine, but •••
I do not wish to quibble at this point with those who claim that
nothing is truly a creation. As I said, most of the programs I write
Yet in my relationship to the computer and to the programs I
are merely copies or adaptations of some other programs. I am not write for it there is another dimension, wherein lies a very grave
talking about those. Nor do I particularly wish to quarrel with danger. The danger is that I will lose my sense of perspective, and
oehaviorists or social biologists who reduce every activity of Man to forget the relationship between God, myself, and the computer.
the effects of his environment or his genes. What I am getting at
Theodore Nelson in his popular book, Compoter tfb, refers to a
here is the particular feeling that only comes with knowing you have "computer priesthood." [4] By this he means that the computer
created something new. It is not quite the same as the feeling an technology has built up around itself a kind of mystery religion or
expert technician gets in his craft, the sense of doing a job well. I gnosticism, with the computer professionals acting as the priests of
have felt that often, and I continue to take a certain pride (if you will that religion. Gnostic religions in history have had a body of secret
pardon my immodesty) in the high technical quality of my work.
knowledge (the word "gnostic" is derived from the Greek word for
There is a difference between the technician and the artist. The "knowledge") which only the insiders have access to. Just from a
technician is building to an existing pattern or plan; the artist is technical point of view this was, and continues to be, a very real
making a new plan. The technician has a standard by which to problem. The use of computers in our time requires such a heavy
measure l1is work; -the artTst- is hisowrr --standard. - -at th-e-- t echnotogicat- background--t-hat--oot-s1de-f~ -a-re-Ioeked--out.
technician's work you can say "He did (or he did not) meet the
To be introduced into this computer gnosticism has, until only
requirements of the specifications"; of the artist's work you can only recently, required skill with a soldering iron (not just "Which end is
say "Ahhh!" or "Yecch!"
hot?" but the proper way to apply solder to microelectronic circuits,
I wish the boundary between the technician and the artist were special soldering tools, etc.), understanding of how to read resistor
that clear-cut. It is seldom so. What the artist creates is, whether codes and the cryptic markings on integr ated circuits, proper work
he likes it or not, subject to technical criteria. If he is painting a habits for protecting delicate MOS components from static
portrait or a landscape, you can apply the purely technical electricity, and the ability to decipher inadequate instructions and
judgements to it of whether or not it adequately conveys an image of third-generation xerox drawings. With a small but increasing
the subject. You can even determine if the paints have been mixed number of exceptions, the novitiate computerist is required to know
correctly, or if they are likely to deteriorate and change color with (but is not given instruction in) binary, octal, and hexadecimal number
age. Is the perspective and lighting believable? Into this technical systems, machine language programming, real-time I/O control,
fabric, however, is woven the art, the quality that makes DUrer great ASCII code translation, and memory management. Unless he is
and Cranach so-so.
willing to remain in the outer circle playing games that someone else
I am a programmer, not a painter. It is much harder to see the wrote, the new gnostic is compelled to learn a foreign language
"art" in a computer program. Donald Knuth sees it and the title of something like Latin (BASIC) and be able to construct in that language
his monumental work on pngramming is "The Art of Computer esoteric hymns called Loops, Subroutines, Conditionals,
Programming" [1 J. I only hope nobody asks me lOpoint to some Assignments, Input/Output and Data statements. I can assure you
program and say "this is art, not technique." Perhaps I am a coward that the language requirement is not going to disappear for many
and lack the fortitude to defend such an assertion. Perhaps there is years. We may get new languages, but that will only mean that the
no defense and I dislike making indefensible assertions. No matter. insider must know more, not less.
My point is that the assertion can be made, and that it has meaning
Until the advent of personal computers in 1975, Computerism was
successfully restricted to the elect who went through the necessary
(at least for most of us).
training and were employed in the computer departments of those
I raised the issue in connection with a certain feeling I got as I corporations, educational and government institutions rich enough to
reviewed my work, when I saw it as a creation. You see, in that be able to afford them. It was a closed society. With the advent of
WEST COAST COMPUTER FAIRE
132
BOX 1579, PALO ALTO CA 94302
the truly per sonal computer the rani< s have been opened up to ad:nit
something over 100,000 new converts, but the careful observer will
notice that it is still a closed society. The outsider is not really given
much reason or help to join. Almost all of the magazine articles are
directed to intermediates, not begimers. There are a very few
books aimed at the novice (but not the totally uninitiated!), but they
tend to get lost in the vast majority of books for the more
sophisticated. by contrast, the number of Christian books aimed at
the novice and uninitiated far exceeds those that require a significant
background in theology. Computerism is still a closed society, though
much larger than it was five years ago.
So far I have been talking only about the phenomena of gnostic
computer ism, the appearances of the society. There is a deeper
level that is much more serious. It is where we, the practitioners of
this arcane art, begin to believe as we act ••Vhen we actually come to
depend on the Computer to solve all our problems and to resolve even
the mysteries of life, we have taken the final step toward making the
Computer our god.
At this level, opening up the secrets of
computerism to all comers makes no difference at all; whether the
Computer is a gnostic god or an evangelistic god is of little
consequence, because we are talking about individual attitudes
towards the machine. That is you and me, not "us" or Iithem."
I nstitutions are formed from the aggregate of individual attitudes
and beliefs.
Before I get into what the Computerist believes, let me say
something about the nature of belief. All of us prefer honesty over
deceit (at least in the other person), kindness over malice (when all
other things are equal), and so on. In the words of Mammy Yokum,
"Good is better than evil, because itls nicer. II [5j But when it gets
down to cases, with two of you out on the raft in the middle of the
Pacific and food for two days, the choice of who eats the food and
who dies of starvation depends on what you really believe. Or closer
to home, itls rush hour and you are late to work; there is a long line
of cars behind yours and you corne to an intersection where a little
old lady wants to cross the street you are on. This is where belief
affects our lives. Your faith - your religion, if you will - is what
makes the decision when it could go either way, but for different
reasons. Notice here that I am not using the term "religion" to mean
the religious institutions of society. Many of these function only as
social institutions with little or no effect on the lives of the
adherents. I nstead I use the definition that equates religion with
whatever is foremost in a personls thoughts and actions. In this
sense everyone has a religion: some of us are Christians. Others
are Egoists, "Moneyists", Scientists, Marxists, Sexists or
Computerists. The focus of our attention is our god.
So what is it that the pious Computerist believes? Which way will
his decisions go, when it gets down to the crunch? Let me list a few
"articles of faith" that affect the every day life of the practicing
Computerist:
1. The computer is more interesting than most people. I love to
spend time with my computer. It is fun to write programs for it, to
play games on it, and to build new parts for it. It is fascinating to try
to figure out what part of the program it is in by the way the lights
flicker or the radio buzzes. It beats dull conversation any day.
2. It is most important to be sure the computer is properly taken
care of. When it finishes its present task, I must drop everything
and go start up its next task, or turn off the disk drives to save wear
and tear on the moving parts. If there is a power failure, ftrst go
shut down the peripherals (save the disk, turn off the paper tape
punch, etc.), then come back and get a candle to light up the house.
3. The computer will be a big benefit in all kinds of ways. It is
not connected up yet, but "soon" it will control the sprinklers, serve
as a fire/burglar alarm, maintain the Christmas card mailing list,
control the stereo tape deck, monitor the central heating, maintain
the inventory in the pantry, provide menu planning, remind us of
important dates, write form letters to people we donlt like, educate
our children, and so on. The key concept is that all these things are
in the very near future. The computer has not yet fulfilled these
promises, but it will very shortly now.
4. The computer needs just a little more (memory) (speed) (disk
WEST COAST COMPUTER FAIRE
space) (peripherals) (fidelity in its cassette drive) (better BASIC)
(newer CPU) (noise suppression on the bus) (debugging on this
program) (powerful editor) (bigger power supply) before it can do this
or that.
5. The computer can make :noney for us on the side, and
eventually it will pay for itself.
6. Spending all this time on my personal cO!nputer will give me job
.. kills that wili improve my wage-earning ability and make me eligible
f.)f a promotion.
7. The computer can be used in the company business to improve
profitability.
8. Thereisnoneedtobuythis software package or that circuit
board; I can design one better.
9. Letls arrange our next vacation to coincide with the Computer
f aire. Wow! What a way to spend a vacation! Then we can swing by
these manufacturers and/or these stores and see the latest widgits.
10. To stay on top of the field it is necessary to subscribe to all
five of the "Good" computer magazines. The other six are merely
repetitious or uninspired or are beholden to their advertisers; they
are not worth the subscription price. But when a good one comes sit
down immediately and do not get up until I've gone through the whole
magazine.
11. Never miss a club meeting. This is where itls at. fhe juicy
little news bits, the how-t~fixits for the problem that has been
bugging me for the last two weeks, hearing about the interesting
things that I can do with my computer - that is the real thing!
Besides, they might h~1Ve some free software.
12. Visit the local computer store at least once a week. They
are always getting new hardware in, and sometimes you can pick up
some good rumors or a new book. You never know when you might
bump into an Interesting J'erson at the store.
None of these claims, by themselves, are particularly wrong or
indicative of misdirection. But taken as a whole, they reflect an
attitude that the computer is, in Paul Tillichls words, lithe ultimate
concern. II [6] The computer becomes the object of onels devotion,
the provider of onels needs. The computer has become the Absolute,
the god in one's life. It is the work of our hands and the image of our
minds; are we going to let it become the Lord of our lives?
I would like to take exception to some of the "articles of faith"
listed above. I have been there and I know the attitudes behind them.
Sut I also know what is wrong with some of them.
1. Clearly the computer is a fascinating device. Its complexities
are overwhelming. I said this at the beginning, and I do not deny it
now. But being the product of our own imagination, the computer
probably cannot exceed our own intelligence. It may be faster and
more accurate. It may do some things (like play chess) better
because of this greater speed and accuracy, but it can never give us
t rue inter r action on a human leveL I realize I am going out on a limb
in saying this; roboticists will gladly point to claims that humans
would never leave the surface of the earth. Those claims were
obviously wrong; I may be wrong also. But I can point to the
difference between a technician and an artist with which I began this
essay: We may be able to build robot technicians, but not robot
artists. In any case it is unlikely to happen in your or my lifetime.
The computer is a toot. and we should recognize it as such.
2. The computerTs a delicate machine and as such it requires
care and maintenance. It is relatively expensive (today) and abusing
it is not economically reasonable. But it is still a machine; it is not as
important as any human being.
3. The computer is capable of many kinds of benefits. But
honestly now, how many of those things do you think you will actually
get your computer to do? How many people do you know or have you
heard of whose computer actually does those things, or even just
some of them? Have you considered the transducers and mechanical
linkages required to give the computer a meal1ingful selection over
your music collection? Do you have any notion of the software effort
needed to implement a computerized calendar or heating control (I
mean beyond what is more easily done without a computer)? Have
you ever stopped to think how much manual effort is required to
133
BOX 1579. PALO ALTO CA 94302
maintain a computerized pantry inventory? Have you considered the
massive data entry requirement to build a data base for a decent
menu plamer? If educators and computer professionals working
with large government grants cannot make much headway in
Computer Assisted Instruction, are you going to master it in your
spare time? Don't get me wrong. Many of these things are practical
goals for computer implementation, but most of us, working on it as a
hobby, will not get very many of these exciting applications working
in any meaningful way.
4. In the microcosm, the need for a little more of this or that for
the computer seems very reasonable. A few years ago the Sunday
s~plement of some newspaper reported a survey on the money
wishes in America. The result was that the average American
would be happy if he or she had $13.21 more. Parkinson's Law holds
that expenditures will always meet or exceed income. The same law
applies to computer memory, speed, peripherals, and so on.
5. Several of the magazines are touting the economic rewards
potential in the personal computer. They are wrong. Suppose you
did get a little extra money on the side computing bowling handicaps.
What is to stop the local bowling alley from seeing the profit potential
and buying their own computer? Maybe you will sell a neat game to a
national distributor, but how many others are pushing games to the
same distributors? Anyway, have you invented any neat games?
Obviously some computers pay for thems~lves (mine does), but far
more only promise to do so.
6. Right now there is a shortage of people with microprocessor
experience. Five years ago there was a shortage of COOOL
programmers, but there is a glut now. People with drive and
dedication, who make themselves valuable to their company, have no
trouble finding work. People who stay up late nights on their own
projects and are too tired to give the boss an honest day's work, who
spend hours on the telephone ordering parts on the company bill for
their personal computers, will find trouble finding and holding any
kind of job.
7. Yes, computers have improved the profitability of some
companies. More often they have only promised to do so. You do not
replace a bookkeeper with a computer; you give her a raise and call
her a computer operator. It is still some time before we will see
much business software available and usable.
8. This one is subtle. Of course you can design one better. The
computer is above all things an optimist's machine. But you won't.
,(ou don't have the time to get around to it, or it seems to have some
problems when you do get it built: it never seems to work exactly the
way you planned.
~
WEST COAST COMPUTER FAIRE
9-12. dy now the computer has moved out of the den and into the
rest of your life. It will consume all of your spare time, and even
your vacation, if you let it. It 'Will empty your wallet and tie up your
thoughts. It will drive away your family. Your friends will start to
think of you as a bore. And what for?
A few years ago I was doing some technical writing for a meljor
electronics firm, and I had described some control circuit in terms
such as, lithe device provides such-and-such functions ••• " One of
the people assigned to review my work reprimanded me: "Only God
'provides', circuits just••• " I can no longer recall the exact details of
the exchange, but I have not forgotten the message. God provides.
Electronic circuits in general, and computers in particular, are not
God; they provide nothing. They may be works of art, a beauty to
behold, but in the final analysis, they are tools and they perform
certain functions at our command. If we forget that computers are
only tools, perhaps we will also forget that people are not tools.
when we know Who is God, we also know who we are, and what
computers are. In the words of the Second Commandment,
Thou shalt nat make lI1to thee any graven image, or any
likeness« any thing that is in heaven above, or that is In the
earth beneath, or that is in the water WIder the earth: Thou
shalt nat bow clown thyself to them, nor serve them: for I the
LORD thy God am a jealous God. [7]
;(eferences
[1 ] Donald E. Knuth, The .!!! of compoter Programmtng. Reading,
lviass: Addison-wesTey 1975.
[2J Genesis I 31.
[3J Genesis I 27.
[4J Theodore H. Nelson, Compoter lib, p.2. Chicago: 1974-
l5J
AI Capp, lit Abner SUnday comics approx. 1974-
[6J PaulTillic"fi:Dvnamrcs of f'a1th,New York: Harper 1957. Most of
this book IS nonsense,-1itt Tillich does
understanding of what constitutes idolatry.
[7J Exodus XX 4,5.
134
have
a
good
BOX 1579, PALO ALTO CA 94302
PEOPLES' CAPITALISM
THE ECONOMICS OF THE ROBOT REVOLUTION
James S. Albus
@: New World Books
4515 Saul Road
Kensington, Maryland 20795
Abstract
Where are computers taking society?
Will industrial and business robots
lead to:
Orwellian dictatorship?
mankind. The first industrial revolution was based on the substitution of
mechanical energy for muscle power.
The next industrial revolution will be
based on the substitution of electronic
computers for the human brain in the
control of machines and industrial
processes.
Jeffersonian democracy?'
From the beginning of human existence, mankind has lived under the
A new aristocracy based on robot
ancient biblical curse: "By the sweat
labor?
of thy face shalt thou eat bread, till
thou return unto the ground." Before
Who will own these machines, and who the invention of the steam engine,
will control the economic wealth and
virtually all economic wealth was
political power they will create?
created by the physical labor of human
beings, assisted only by their domestic
The great challenge of the coming
animals.
industrial revolution will be to develop
an economic system wherein prosperity can
The first industrial revolution
be achieved without waste, affluence can only partially lifted the ancient
be made compatible with the limits to
curse. Yet, even this partial repriere
growth, and personal freedom can be pre- had profound consequences. In all ,the
served and enhanced in a world where
thousands of centuries prior to the
most economic wealth is created by auto- first industrial revolution, the human
matic machines.
race existed near the threshold of
survival, and every major civilization
Peoples' Capitalism is a plan for
was based on some form of slavery or
meeting this challenge. It is a formula serfdom. Yet a mere two centuries
for a new economic order which might
after the introduction of steam power
best be described as Jeffersonian democ- into the manufacturing process, slaveIY
racy for the post-industrial era.
has become little more than a distant
memory for the citizens of every major
The details of this plan will be
country. Today, a large percentage of
described and a program for political
the population of the world lives in
action will be presented whereby Peoples' a manner which far surpasses the wildCapitalism could be introduced into any
est utopian fantasies of former
country in the world by the year 2007.
generations.
Epilogue to Scarcity
There is good reason to believe
that the next industrial revolution
These are revolutionary times.
will change the history of the world
Changes as profound as those resulting
every bit as profoundly as the first.
from the invention of agriculture or the The application of computers to the
domestication of wild animals are rushing control of industrial processes will
us toward a new world. The human race
bring into being a new generation of
is now poised on the brink of a new inmachines; machines which can not only
create wealth unassisted by human
dustrial revolution which will at least
beings, but which can even reproduce
equal, if not far exceed, the first inthemselves at continuously decreasing
dustrial revolution in its impact on
WEST COAST COMPUTER FAIRE
135
BOX 1579, PALO ALTO CA 94302
costs. The potential long-run effects
of this event are twofold: First, it
will allow man to free himself from the
dehumanizing demands of mechanization.
The self-regulating capacity of computercontrolled industries will render it unnecessary for people to structure their
lives around daily employment in factories
and offices. The first industrial revoltion drew people away from the land and
concentrated them in urban industrial
communities. The robot revolution will
free human beings from the pressures and
congestion of urbanization and allow
them to choose their own lifestyles from
a much wider variety of possibilities.
I claim that, if we properly
utilized our scientific knowledge and
our industrial capacity, we could not
only overcome the present economic
crisis, but we could go on to eliminate poverty altogether and guarantee
personal financial security to every
individual. Furthermore, this could
be done in a manner compatible with a
clean environment and an ecologically
balanced world.
The great challenge of the coming
industrial revolution will be the
development of an economic system
wherein prosperity can be achieved
without waste, affluence can be made
Second, the introduction of the
compatible with the limits to growth,
computer into manufacturing has the
and personal freedom can be preserved
potential for removing material scarcity
and enhanced in a world where most
from the agenda of critical human probwealth is created bv automatic
lems. The technical feasibility of facmachines. This paper is an attempt
tories and industries which can operate
to formulate a plan by which this
unattended and reproduce their own essen- could be accomplished. The proposals
tial components implies that manufactured contained in the following paragraphs
goods may eventually become as inexpenmight best be described as a formula
sive and unlimited by process complexity
for Peoples' Capitalism, or as a
as the products of biochemical mechanisms blue print for Jeffersonian Democracy
in living organisms. Increased efficiency in a modern technological society.
and flexibility of substitution between
Even the most casual observer of
materials and processes could render
what goes on in the average factory,
currently projected shortages of fuel
office, or construction project
and materials largely irrelevent to the
cannot help but notice that most of
21st century.
what is produced comes from machines
and not human labor. Scholarly
Unfortunately, the present economic
system is not structured to deal with the studies confirm this common sense
observation, showing that the overimplications of a robot revolution.
whelming percentage of productivity
__ r!le!:~ pres~ntly eXi!:jtsno Illeans . by. which
averagepeopIe---caii---benefit from-the liIi;"- _..... i ricreases--oVertne---pas t two-hundred
precedented potentials of the next
years have resulted from technologk21
generation of industrial technology.
progress, not from harder work or
longer hours. Whether we like to
Quite to the contrary, under the present
admit it or not, most of what we
economic system, the widespread deployment of automatic factories would threaten have is produced by machines, not
jobs and undermine the financial securpeople.
ity of virtually every American family.
Does it not then seem odd that
more than two-thirds of our total
This book is an attempt to address
output is distributed as compensation
some of the fundamental problems of
to labor? Might not such a large
income distribution and capital ownership in a society where most of the goods discrepancy between how wealth is
and services either arei or could be,
created and how it is distributed
produced by machines rather than people.
distort the entire structure of the
It questions the adequacy of conventional free market economy? Consider, for
economics for the present, as well as
example, that distributing the benefor the future. It argues that the prifits of two centuries of productivit)
mary cause of the recent economic crisis
increases primarily through wages
is not a lack of resources or insufficient and salaries has increased labor
wealth-producing capacity but an unrealis- costs so high that employers cannot
tic view of how wealth is created and an
afford to hire workers even when
there are jobs which need doing.
outmoded system of incentives which does
Thus, we have massive unemployment
not make use of what is available to
produce what is needed.
even while:
WEST COAST COMPUTER FAIRE
136
BOX 1579. PALO ALTO CA 94302
*Cities need rebuilding,
*New sources of energy need to be
developed,
*Pollution control needs to be
expanded,
*Better health care delivery needs
to be provided,
*The environment needs to be protected and services of every
kind need to be improved.
Yet no one can afford to hire people
to do these jobs.
in computers and manufacturing technology suggest that mankind may be
on the threshold of a new industrial
revolution. Within two decades it
may be practical for computercontrolled factories and robots to
produce virtually unlimited quantitie
of manufactured goods, and to even
reproduce themselves at continuously
decreasing costs.
DATA: 1960-12 AVERAGES
On the other hand the lack of any
alternative to wages and salaries as a
source of income creates such strong pressures for job security that:
*Waste is encouraged,
*Featherbedding and res~rictive
work rules are commonplace,
• CANADA
*Pollution is condoned,
us •
*Obsolescence is planned,
SOURCE:
NATIONAl COMMISSION ON
PRODUCTIVITY [BLS DATAl
*Mass advertising of trivia is
considered necessary,
5
*Unwise growth goes unchecked.
And much of what people get paid
for doing everyday in offices and factories
throughout this land could be eliminated
without affecting the production of goods
or services whatsoever.
Furthermore, even if make-work and
waste could succeed in producing "full
employment", there would still be millions
of Americans outside the wage and salary
income distribution channels. The employable labor force makes up only about
40 percent of the population. Thus, even
though practically every business in the
country could easily expand production,
and would gladly do so if markets were
available. the lack of purchasing power
of people without jobs makes such expansion
impossible. The result is that our
enormous productive potential is never
fully applied to our clear and urgent
human needs.
10
15
20
25
30
ANNUAL CAPITAL INVESTMENT
(% OF OUTPUT OF ALL INDUSTRY)
1960 - 1970
Figure IV -4. What causes a nation's productivity to grow? This chart shows
that countries with a high rate of investment have high productivity growth,
and vice versa. This implies that productivity growth is not serendipitous or
beyond human control. Instead, it is the direct result of economic policies
which promote investments in n;:!w technology and in more effic:ent plants
and equipment.
CAPITAL INVESTMENT PER MAN-HOUR
& OUTPUT PER MAN-HOUR (PRODUCTIVITY)
PRIVATE ECONOMY, 1950-1974
200
SOURCE, BUREAU OF LABOR STATISTICS & NATIONAL COMMISSION ON PRODUCTIYITY
Rising Expectations vs. Declining Resources
Figure IV-5. Productivity (i.e .. output per man·hour) is closely correlated
with the amount of sophisticated tools and capital equipment per worker.
The data shown here. together with that in Figure I V-4 strongly imply that
U. S. productivity could be increased by increasing the caoital investment
rate.
The two following charts show that
long-term gains in productivity are closely
correlated with investment. There is
little reason to doubt that this correlaInvestments in such technology altion will continue into the future.
In
most certainly will produce major
fact, recent technological developments
productivity gains for many decades
to come.
WEST COAST COMPUTER FAIRE
137
BOX 1579, PALO ALTO CA 94302
Unfortunately, the present mechanisms for increasing investment in high
technology industries (such as tax credits
for big business) serve to increase the
already enormous concentration of wealth
and power in the hands of a few (A U.S.
Department of Commerce Survey of Current
Business report on stockownership in the
United States dated November 1974 states
that one percent of the families in the
U.S. owns over 50 percent of all stock
and that 5 percent of the families own
73.7 percent by value of all stock.), while
leaving the majority of the population
just as dependent on wages and salaries
as ever. Clearly robot factories will be
a direct threat to the economic security
of almost every American unless some alternate means of investment financing
and income distribution can be found.
Peoples' Capitalism is a proposal
which addresses all of these issues simultaneously. It offers a simple, straightforward solution to each. Peoples'
Capitalism could be instituted in the
United States without any changes in our
constitutional form of government. In
fact, far from altering any of the fundamental principles upon which this country
was founded, this plan would revitalize
the free enterprise system, and realize
the ideals of Jeffersonian Democracy in
post-industrial America.
Specifically three new institutions
are proposed:
1. A National Mutual Fund (NMF)
is suggested to finance capitalinvestinenf
for increasing productivity in socially
beneficial industries. The NMF would be
a semiprivate profit-making investment
corporation which would be authorized by
Congress to borrow money from the Federal
Reserve System. It would use this money
to purchase stock from private industry
for the modernization of plants and machinery and the introduction of advanced
computer-based automation. Profits from
these investments would be paid by the
NMF to the general public in the form of
dividends. By this means, the average
citizen would receive income from the
industrial sector of the economy quite
independently of employment in factories
and offices. Every adult citizen would
become a capitalist in the sense of deriving a substantial percentage of his or
her income from dividends paid on invested
capital.
WEST COAST COMPUTER FAIRE
138
2. A Demand Regulation Policy
(DRP) would be instituted in parallel
with the NMF in order to provide
sufficient savings to offset NMF
investment spending. This would
prevent short-term demand-pull inflation. The DRP would withhold
income from consumers by mandatory
payroll deductions and convert it
into high-interest five-year savings
bonds. Deductions would be graduated
according to income (low-income
persons would have little withheld,
high-income more) and would be adjusted monthly according to a formula
based on the best available indicato~
for inflation. The DRP would allow
high rates of investment and the
accompanying high employment and high
production while preventing excess
demand from forcing prices upward.
3. A Federal Department of
Science and Technology is also suggested to focus modern technology
more directly on problems relevant
to human needs.
Peoples' Capitalism is simple
in concept yet its implications are
truly breathtaking.
*It offers a solution to
recession and inflation
simultaneously.
Increased availability of
investment capital would get
the economy moving again.
Inflation woul-d· -be-control-led-in the short run by DRP
savings, and over the long
run by increased productivity
resulting from higher rates
of investment.
*It resolves the fundamental
conflict between economic
growth and environmental
preservation.
NMF dividends to individuals
would reduce the pressures for
jobs and growth at any cost.
Increased efficiency in production would reduce waste
and provide the resources for
improved pollution control
and environmental conservation.
*It promises a degree of indiv~
ual freedom based on personal
BOX 1579, PALO ALTO CA 94302
financial independence which is
unprecedented even among utopian
proposals.
Every adult citizen would possess
a personal source of independent
income. People would be economically free to live where they
wished and to work at what they
enjoyed.
*It offers a cure to poverty and
old age security without taxing
the rich to give to the poor.
NMF public dividends would be
generated by wealth producing
capital investments. The NMF
would be a profit-making, incomeproducing investment corporation,
not a tax-consuming welfare
program.
*It achieves economic equity without destroying incentives to
individual excellence.
The NMF would distribute the
profits generated by high technology industry to everyone.
Persons with ambition could
afford to develop their talents,
and society would be able, with
clear conscience, to reward its
high achievers.
*It opens up an entirely new
road to economic development
for emerging nations which
completely by-passes the
social dislocations of classical industrialization.
In developing nations, Peoples
Capitalism could finance
automated industries and
robot factories which would
pay dividends to farmers and
villagers directly. Economic
development would be achieved
without converting the rural
population into industrial
workers or concentrating themin congested urban areas.
PEOPLES' CAPITALISM: The Economics
of the Robot Revolution is published
by NEW WORLD BOOKS
Kensington, MD 20795
$3.95 paperback
It is distributed by:
ADVANCED TECHNOLOGY RESEARCH ASOOCIA'IES
P.O. Box 456
Minneapolis, Minnesota
55440
and
MARKETLINE SYSTEMS
2337 Philmont Avenue
Huntington Valley, Pennsylvania 19006
WEST COAST COMPUTER FAIRE
139
BOX 1579. PALO ALTO CA 94302
THOUGHI'S ON THE PROOPSCTS FOR At1I'a-t4TED
INTELLIG~N:E
by Dennis Reinhardt
DAIR Computer Systems
870 Garland Dr.
Palo Alto, CA 94303
(415) 326-1534
" ••• I have always discovered arter the fact that, if anything, we didn't plan big enough.
I did not forsee the size of General Motors ••• "
- Alfred P. Sloan, Jr.
to handle the functions of a single
brain's ten billion cells would more
than cover the face of the earth."(3)
While such a computer would be massi va ,
it is not true that the surface of the
earth would be covered. A 3330
type disc contains approximately 300'MB
of data and occupies about 2+ sq.
meters, after allowance for access
space, at a cost in the area of $50,000.
Thus, a 1.2*10**12 B system would need
4000 (I) disc drives and might occupy
8,000+ sq. meters (80,000 sq. ft.) and
cost over $200 million. More exotic
technologies permit cost and space requirements to be reduced substantially.
Some of the technical problems involved
in producing a small computer with the
hardware capacity of the human brain
are explored. Starting with assUIIlptions
differing by two orders of magnitude
concerning the capacity of the brain
and by 2~ for the long term growth
rate in semiconductor chip denSity,
it is hypothesized that the technology
for manufacture of a chip or small system
having the hardware capacity of the
human brain can be projected for the
period 26-48 years from now.
THE BRAIN
Wi thout pursuing the issue of
todays hardware cost any further, when
might this kind of configuration reach
a personal computer size, contained
on an integrated circuit or small packaged
system? The human brain has been evolving
for millions of ;Years while the computer
has existed for only a few decades.
Considering the enormous capacity gap
- - between the--two-,-as me-as-uredby
the ratio of their byte storage capacity.
what are the prospects for evolution
of the ccmputer over the next few decadesl
The measure which is most useful
in comparing the capacity of the human
brain with the capacity of the computer
is information content, measured in
bits or bytes. As more architectural
information elDBrges from brain research,
other more useful. Easures III1ght be
suggested. Carl Sagan (1977), quoting
-dat-a-from-the---work -of Br1tten-and-Davi
r
o
>
r
1
1
.....
o
~
..
CD
W
o
N
\\
I
I
I
/
/
I
WHCMrs
~
111
•
11$'
i'. : !It 13i
~ffi~~l~\
r·;t
en
FIGURE 5
H'"""
Ofwuem !ijl.iU"lf~';tln\.'-JI
-f
n
o
.T~:l~t
If;
>
en
-I
n
o
i:
---':~.~~
"'U
lIII'UTll'Ul
!f:i~f~~t;'~,
" I. .
',.i.i.ta~"'lii'-t.l!l,
~
~.
I :·1.1,.1.:1
-I
I'll
::0
."
___ /
/I :-.;!!:.f~it!x1::-::~:.!: L
+-..'.i·~~~~f"·r!~~~
~tt.,~~
C
-------
- - - - - - - - ' !'\
J
.'i~
.'<
I
:
~T
(.,
.
I
'\
r-
4
o
n
»
2
CD
.1:10
W
'0
N
0 ___
-f
1
FIGURE 8
o 1
+--
I"
1:1~ ii1l. FFF
DETECTED
CONCEPT
I-'
U1
N
"-".,
~~~-------j
'.
tv
cheap an-1
he likely
~J freply shar~ 13rc~
filp~
~nd
larqA
,unb~rs
of sujst3rtill pro~r3ms.
If
they
h3ve
c)nfidenc~
in
networ~
communic~tion,
thqy will ~~ t~mrted t?
~s~ it c~sually to ~pro3f: t~~ .ord of
~
100j pr01r3lli, ~~ intere5ting new ide~ or
~ reliable merchant.
1'h~
:t~twor·=
re1i~ble.
Then
J.
I
~
r 1 0 11 3
a .5 0 ~ r:: t~
3r ~
,~ i
_,0
mech to eXDose
s C' 1 S S ~ j •
the n!oti'13tion
iS~g~tS.
lh?
to ~~ that th~
t
!r. a x
!)
1 !'lH Z e
0
f
t
~l
peN':: 'l'l f' 5 i 11
, 13 r ~ i s net
('T
~ in ph? ~
':' h ;:>
~
de'3 ~n ;)5 to sho~
various of
itr::
?rinpi?l' t~e~~ is sho~n
t~le
:,et':i:l~
"CN~T
t 11 e
,'l
~ru~ojies
C C '~s s
i ':- i
1
i ty
~n
0 ~
~ttemo~
US f>
f u!
::::houll
!')~
oeop!e ~ouJd
to ~hp ~roJdest
possi~le
sa1m~nt
o~
the
comput~r
hohbyist community. On tha ot~Er hanf,
~p~ole
~aving
en~ancei
power in their
~o~munic~tion
t~~hni~ups
1.
Thp networ~ shculd own no har~w~re,
such as
le~sed
lines
cr
servic~
comouters.
:(1en,
the .. etwork ca!1 CO'n2
to
h~ri~3re
or so!tw~re ~3n t~~~
~ood into operation ~ithout 3ny n~c~s5ity
1~v3nta;~
of their adv~nced !1cilitiB~ rais~ or a~!llinistp.r sutstanti~l funds,
~n~n they use t~e use
?C~f!
techni1ue3 ~ni it ca!1 be7in oper~tion with too fe~
participants
to
justify
a
larqe
for th~ir :om~unic~tion.
~xp~nditure.
41so, wi·h th~ npt~or~
~jministration
hiq~ly j~centr31izei, it
vill llkely ~e resDcnsive to the naects
1~vp
~aulkins
cr"aniznj thp oC~~~ of its r~rticj~~nt~.
ro~mitte~ shortly ~ft~r the
~irst
~~~t
Coast Comvut~r ?aj~p l~~t year; its qoal 7. ~2rm~nen~ 5grvic~ nC~9s will not oe
~eeied
but will be accom~od2ted if
~~5 to t~ild ~ o~r~on11 ~om9utAr n~twork
(~~e~ce
its nlrue). ;ft~r ~ few wonth~ Drps~nt. Al1 tne ~hov~ arqu~ents for
j~~p~tr~lllatio~
?!so ~p~lv to this
of lively :k~t-':lt~, it produced n desi~r"
un~ever, permanent service
",:lieh ~;"i~ 3ut'-:>equently i1!plp!T'E'ntE'\~ fn" ground rule.
~ojes,
such as the C!~·s I·v~ ~escribpd
tpst ~urp05es.
T~a
deqt~~
~~s
~h~~
~lse~here,
c~n
eliminate very stronq
1i~3ssemjled ~:li r~constru~te~ in such ~
W~V ~s to Drofit frcm the experience
of incentives !or 3peci31ized h~rdware that
to
3l1tomatical'y
t~~
first
iteration.
The
sec0nd i1!:ill c;naole :l:>des
~~n~ration d~si~n is
no~
quite ~t~bl~ handle incoming tr3fftc.
~n~ is heginnin~ to ;ener~te some second
'1.
There should ')e 1"0 t;eoqra?hic~l
J~~p.ration
test
r~sult~.
~t
thi~
For ex~~ple, the ?CHiT
1u~~ture,
th~n,
it ~ould perhaps t~ restrictions.
shJu1d be suita~'e for ~omrnunication
instructiv~ to con~i~er various
a~pects
,f the dasi~n and see just why they ,cross n'tion~l ~oYrdaries.
turned out t~~ ~ay they rli1.
s. Thp. ::>~~H'l' '3rlOI!~C a~c(lm'Uod3t~ rpmot~
~irtual
!~e
jesign of t~e ?CNET
of Jrouni rules.
procep.dp~
lu~ber
WEST COAST COMPUTER FAIRE
~rom
t~rffiin~ls.
~~i$
~ill
allo~
Deople to test ~ Drc~r~~ ~ithout havln~
a ~one to the trout 1 p o! t~~ortinry it ~n1
~dapting
it to a ne~
home.
This
fertt',re,
whi);~
not
yet explicitly
i.nchld~G, ha'~ :-;ha~"c somf!lo :;>~rt~
of thp
iesir;n.
153
BOX 1579. PALO ALTO CA 94302
s~aci~ication uses a numb~r
~t~tr~ction to jescribe the
~r~n~ruission
of ~ail and files t~~weQ~
network ~oia5. Two networ~ no~es will
tyoic~JlV
ba conn~cted
~ phone line.
ThPV use mod~~s to spnd ~iqital bits in
.he form of thq 'u~~o tones suitable for
~eleohon~ circuits.
These ~its serve in
thAtr turn to serially trans~it hinary
~3t~ in i-bit bytps.
(~odes u5in~ S-btt
serializers or th~t for other re~sons
c~~~ot ~irect!y transmit 9-bit byte~ use
~
raciix-41 3chem~ to re9resent binary
1~t~
with ~ r!strt~ted 5~t
of
41
~h3r~cters.)
These bytes ~re org~nizad
into tr1nsmission
~]ocks
containing
prror correction information suffi~ient
to provide transmission (~~ very low
~rror
r3te5) for sever~l streams of
hytes.
O~e
stre~~
is
devoted
to
tnf~r~ation
used
to
control
the
~o~munic~tion
~t
this level and the
~f
the PC~~T
levels of
The
form~t
of , link transmissior
is independent of the
choice
between binary and radix-41 in the senSE
that the radiK-41 transformation
is
~p~lie1 to a comp]~t2 block balorA it is
put onto the line. This does not seem
to qre~tly re1uce the effectiveness ~f
th~ error detection information, and
it
l~ad~
to a simp1er implementation than
~oul~ be required otherwise.
~loc~
tv
previous
ones;
the
other
Noise on t~~ phone line can cause the
r~ceivin1 UA~T to
lose svnchroniz~tion
with
~~e
inco~ing
byte
frames,
completely turning the received data
into garb~g~ until synchronization is
aryain establish~d. We assume that th~
error
ietection
information
in
~
transmis~ion ~lock will have no
trouble
detectinq
any such garbage.
!n an
attempt to lilltt t.he damage to single
transmission bloc~s, they are separated
by characters chosen for
their utility
in helping the rpceiving ijART come ~ack
into synchronization with
th~
byt~
streams
mess~1es
between the server
levels ~f thp. n~ces.
~inalJy, thes~
.essag~s tran5mit ~ail and files betw~~n
two nod~s, with for~~rding ~utom~tic~lly
tr~nsmit
fr~mes.
We had originally assu~~d that th~J
,oundaries
of the link transmission
~locks and the stream
nlocks would be
entirely
independent;
we
soon
discovered,
however,
that
such,
in~~pend~nce
cou]~
require ~ gener3l
coroutine
ca~abilitv
in
the
implementatio~.
In order to maXlmlze
l-hp.---~fceessTblTit'l-t,_f--t1ie---P-CHe,._ "--to --'tlHf
hobbyist community, we made it possible
to negotiate the independence of. the
boundaries at those two levp)s.
In
addition, the d~fault choic~ of that
option is to align the boundaries so
that coroutines are never required.
?rovided wnen appropriate.
Th~se
lev~l~
of sp~cification are
rigorously sep~rated, so that any of
the~
may be =hanged with little or no
:iist'lrbance to the oth~rs.
An exarnpl~
If this modularity has alre~1y been seen
i~ the w~y the choice
between radix-41
------:t1'\-1 --str-alght---------blha ty- h-tfs- noeffe-cl
.hat~ver on transmission
at higher or
lower levels of abstraction. Similarly,
the interface hetween the modem and the
>hon p
line mayor may not inclu~~
)rovision to automatically answer (or
~ven
originate) phone calls with no
~ffect on the other levels.
9y the sa~e
tol{:en, the mo:jp.m {and UART} can be hal~
~u~lex or
full duplex, and ~he only
Level effected is tha~ handling link
tran~mission blocks.
This separation between l~veJs will
,llow the ?CNeT to gracefully
taKe
~dvant~ge
of ne~ developments.
For
exampl~1
the telephone links can be
repllced by radio links or even by links
having the delays that are inevitable in
the
usual
satellite
communication.
Ch~r3cter-at-3-time
interactions
can
~lso
be added, so that one node can
serve as a virtual terminal to programs
in another node.
WEST COAST COMPUTER FAIRE
The t@nsion ,etwe~n symbolic data and
more highly co~ed data can scarcely
esc~pe
notice in a system like PCNET,
witb its largely syrbollc message header
and more highly coded stream ~nd link
transmission blOCK headers.
The lower
levels handle ~]ocks much smaller than
~essages,
so hp.ader
compactn~ss
is
correspondingly more important at the
lower levels. Programs implementing the
~essage server levp,), on the other hand,
are more lik~ly to hav~ their functtons
expanded and so are more in need of data
whose meanings are easily discerned by
the oeople maintaining them.
154
BOX 1579. PALO ALTO CA 94302
Sizarrp thou1h
nessag~s
it
m~y
seem,
~CN~T
prch~bly ~ill norm~lJy be sent
from
source iirectly to their
or to 3 mail jrop n~ar the
1estin3tion.
That
is,
they
will
~rob~b]y
onJy rarely be sent throu~h d
luDber of interfteci~t~ nod~s on t.~elr
~~v
to their ~estination. (The rea~on
is a simple econo~ic onA: the late night
}hon~
rates
ar~
low
enouryh
3n~
independent ~nou~h of distance
that
relaying doesn·~ seem ~orth the hother.)
~owever,
the ?~N~T specification
is
~rganize1 in su=h a way th~t either mo~e
c~n be used, that
any mi~ture of the
~odes
can ~e in use at ~ny ~om~nt, and
that
the
choice
can
be
made
independently by the sender e~ch time it
attempts to send a ~essage, in case the
first few attempts fail. The crux of
the matter is that the connection from
the original source of a message to its
~ltimate d~stin3tio" can
be a simpl~x
(i.e., one-~av) connection, aven though
the connections at Jower ]~vels me~t he
at least h~lf dupla~.
In the other
hand, there is nothing to orevent the
original
sen~~r
and
the
ultimate
19~tin~tion fro~ h~ving
3
full dunlex
connection; in fact they can profit from
having such a cQn~ectton if thpy hav~
one.
th~ir
~estin~tion
The PCNET is largely im~une to node~
c3?riciously
enterinry
and
leavinry
network participation in another W3Y
too: successful tr~nsmission of messages
ca~
be verified from
the
ultimate
destination 11' the way hack to th~
oriqin~l source.
(This is at the option
of the ori9i~al sender.) Thus, a serie3
~f intermediate nodes can participate in
th~
transmission of a message without
their
nee~ing
to
accept
any
responsibility for ultimately successful
transmission betw~en the end point5.
Since
tntermediat~
nodes have only
nominal responsibility for the traffic
they handle, the PCNET snould qain both
a
stre3mlin~d
administr~tion
and
considerable resistance to any possible
spontaneous dis~ppearance of nodes.
The
~ost
imDnrt~
!~
~~~e~~ibj
t h r 0 IJ q h 0 U t
t rl e
":
t
l'
i_;
ca~~i~erati~r
i CJ!1
i S
to
t~,~
~o
its
ity
~~
bro~~
possible a seGme~t of the ~o~~vist
co"munity. .\ conSelUcl:1Ce of thi~ it:
that the d~si;n h~s sDPcial featurp5
th~t ar~ i~clui~d jus! so th~ ~~~ign c~~
oe impleffien~e~ ~iruplv ani cheaply.
It
i3 also structured in such ~ w~y that
~i~ple
irnpleH~'t~tions
~{11 tend to ~~
r~liable.
On t~e other D3n1, wh~n mor~
highly sDeci~lized or costly hrlrdware l1
~vailablp or t~p soft~are
c~n
be mor~
sophisticated
than
~he
rnlalmu~
requirements, the
PC~':.:7
Jesi~'
is
structured. in such a fJ?:''{ as to put tr./3
;! .:i v .3 nee d
f 3 C iIi tie s
t o g 00 d use a ~ .~
deliver incre~sec perform~nce to th~
user. The jest1" ~!~o 1~3v~s room for
the 3ddition o~ new f~atures, n~t ~J~ o~
w~ich
~~re
!oreseen
by
the
P~~~7
n~~imize
JS
::()~mittee.
Some of the o~inions eKpr~ss~d in
pap!r are my own.
qo~ever,
t~e
Vnst
m~jority
of
the
ooinion3,
conclusions
arj
~~serv3tions
incorporated h~rp ~~re devp.loped who11v
or jointly by the members o! the PCNZ~
Committee.
~cpin~ to ~i~d ] re~sona~l~
~ijjle
ground between th~ folly
of
!v~luatinQ
t~e
wor~
of others and the
arrogance ~f le~vi~g their c~ntributic~~
unac~nowlejged,
I feel com~elled to say
th~t
I
fou~d
~ost
rn~mora~le
~~o
contributions
of ~3ve Saulkins, ~on
Cr"lne, Peter Deut~ch, ?w'::trc r~ufm~n ~710
Robert \1335.
thi~
(1].
~~vid
C~u.kins,
"~esi1n
Consid~rations for a
~othyist
Comouter
~'et wo rk",
Pr{)ceed i nqs I) f t ~e First f;.'es t
:oast ~omput@r ?aire, ?a1o lIto, 1977.
[2].
~ike
Co~~unity
~nd
Wilber,
Infor~aticn
Probl~ms",
~A
?roc~e~i"as
West Coast romputer
~etwork
Exchanq~s:
~aire,
o~
rssu~s
of the
Firs~
o~lo
tlt~,
'.977.
WEST COAST COMPUTER FAIRE
155
BOX 1579. PALO ALTO CA 94302
Communication Protocols for a Personal Computer Network
Ron Crane
2lO1 Calif. St. #326
Mountain View, Ca. 94040
This paper summarizes the design requirements and
architecture of a layered set of communication
protocols for personal computers. Also included is
the current state of development of this evolving
set of protocols. A detai led description of the
protocol will appear in the future.
computers must transmit and receive bits in the
same order and at the same speed, and the software
in each of the machines must agree upon the
meaning of various bit sequences so that
in/ormation is transferred instead of a meaningless
A common language or
sequence of bits.
communication standard is essential for widespread
machine communication.
The Environment of Computers
I)ersonal Computer Network (I)C Net) I)rotocols
The introduction of low-cost minicomputers in the
1960's reduced the minimum size of an application
for which automation was justified. The single
chip microcomputer is making an equally
significant step in the 1970's. Private individuals
are purchasing small machines or terminals for
their own use, in addition to businesses for
applications such as accounting, order handling,
and text editing. Small, medium, and large size
computers are becoming widespread.
More and more machines are being dedicated to
uses which involve transactions of some kind
(editing text, mail, or programs ultimately sent to
other individuals, doing accounting for transactions
between buyers and sellers, etc.). The machines are
used to create, modify, or process information
which is then printed on paper or recorded on
magnetic media which is then carried to its
destination where it is often entered into another
machine. This represents a growing environment
in which machines are communicating with other
machines, but with the transport time from one
-machine-toanotb.erl;;_QJJlPI_ising a significant part
of the total elapsed time for processing. The need
exists for low-cost, quick, and direct machine-tomachine communication between an increasingly
widespread base of machines.
The PC Net protocols come from the PC Net
committee which is a group of computer
professionals who banded together as the result of
the personal computing network session at the First
West Coast Computer Faire in 1977.
The PC Net protocols are layered into 5 functional
levels. Two of the levels specify hardware while
the remaining three specify software.
Every
machine must implement the basic or core
protocol.
Extra capabilities may also be
implemented
on
various
machines.
The
compatibility of two machines with respect to extra
capabilities is ascertained on a per call basis via the
core prorocol, as is the decision to use one or more
of the capabilities during the call. Thus, any two
machines can always communicate with each other
on a very simple level, even though some will find
that they have few common interests after a brief
interchange.
The figure on the following page illustrates the
---hierarch ica1 structure ofthe---- p-r-t)posed -standards.
Five levels comprise the standard (protocol).
Level 1
Level 1 specifies how the node (personal computer)
interfaces to the telephone network.
Both
supervisory signals (dialing) and the modem
signalling frequencies are specified.
Bell 103
compatible modem frequencies were selected
because of wide availability and relatively low cost.
When faster units become desirable, this level of
the protocols can be changed without affecting the
other levels. In the figure, RS232C and RS366 are
mentioned as often-used interfaces to modems and
auto-dialers. These are not part of the standard,
however, since neither interface can be seen by
another node through the telephone network.
The requirement of providing communication
between any of a large number of machines implies
some form of large and widespread communication
network. To be a viable replacement or adjunct to
physical transportation schemes presently used, the
network
must
be available and
relatively
inexpensive. The only system currently available
that is both widespread and has a very low
minimum monthly charge is the dial telephone
network.
For machines to communicate using the telephone
network, they must be able to communicate both
with the telephone system and through the
telephone system to the distant machine. Once two
machines have been connected via the telephone
system, they must communicate with each other.
This communication must take place on several
levels. Modems communicate using a standard set
of frequencies, the serial interfaces in each of the
WEST COAST COMPUTER FAIRE
Level 2
The data transmission format specified by this
level is asynchronous start-stop codes at 300 bits
per second, again readily available in existing
equipment. The interface to and control of the
156
BOX 1579. PALO ALTO CA 94302
Computer
5
--;1
r---
5
~
4
3
Modem
& Auto
Dialer
~
5
Computer
Dial Telephone
klterface
klterface
Network
1
1
~
L
Modem
& Auto
Dialer
5
3
4
5
5
&.. .-1_--,I ,--I________-->,
RS232C·
RS366
Bell 103 Modem Standard &
Automatic Dialer
level 1
RS232C·
RS366
i
Hardware
Asynchronous Stal'it-Stop Codes @ 300 BPS & Auto Dialer
I
~.
____________________________________________________________
level 2
SoftWie
I
,level 3
~.
Unk Transmission Blocks (sequenced and error free byte delivery) and
Telephone line control
level 4
Process to Process Stream Blocks (multiplexing of data link between user programs)
\~\----~I
L I_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
User Program to User Program Standards
level 5
(Node Control, Mail, File Transfers, etc.)
• RS232C and RS366 specify typical modem and auto-dialer interlaces, respectively, but are not part of the PC Net
stsndsI'd since the auto-cisler may be integral to the modem which may in tun be part of the cOlJl)Ufer interface.
Personal Computing Network Protocol Hierarchy
WEST COAST COMPUTER FAIRE
157
BOX 1579. PALO ALTO CA 94302
Communication Protocols for a Personal Computer Network
automatic dial and answer telephone interface is
not specified except that the function must be
performed. This includes the possibility of manual
operation. Timeouts will be set to allow manual
operation.
multiplexing, but only one process to process
stream can exist at a time in this case.
Level 5
User programs ex ist at th is level. They manage the
communication tasks such as sending or forwarding
mail or files, and interacting with people on whose
behalf the communication is taking place. There is
currently a mail and file transfer protocol written
by Peter Deutsch and a global addressing scheme
using latitude, longitude, and phone numbers
authored by Doug Bourne.
Level 3
Th is level provides sequenced and error free
delivery of bytes from one machine to another, as
well as control of telephone connection setup and
takedown. Blocks of bytes are transmitted on the
link with a header and checksum in a fashion
similar to synchronous protocols like ADCCP
(Advanced
Data
Communication
Control
Procedure). A synchronous bit oriented protocol
was not used because of the unavailability of
hardware interfaces to implement it. Error control
is implemented using a checksum and byte count
instead of a CRC because the CRC is cumbersome
in software and most asynchronous interfaces do
not support it in hardware. Sequence numbers
provide acknowledgement of correctly received
blocks and in addition permit several blocks to be
sent without acknowledgement, without getting out
of order.
Summary
The PC Net protocols are being designed to be easy
to implement in currently available systems, but
with room for growth and modification if there is
demand for it in the future. The first two levels
are essentially complete at this time. The top three
levels have been specified and are undergoing
revisions relating to interfaces between these levels.
Detailed descriptions of each level of the protocol
will appear in the future.
Two methods of transmission on the line are
specified. Radix-41 is the default start up mode
and full 8-bit codes are an option.
Radix-41 is a 2 byte to 3 character packing scheme
proposed by Mike Wilber to avoid the problem of
operating system intervention (interrupting on
control characters and uppercase conversion of
lower case characters) when PC Net protocols are
implemented in BASIC or othe_r high level
language. The result of using this packing scheme
is a reduction of 33% in throughput.
Transmission blocks are transmitted with only
minor modification when using 8-bit codes.
Special flag characters are used to separate
transmission blocks on the link. A transparency
rule is then used to permit transmission of this flag
character if it occurs within the transmission block.
Level 4
This level is useful for nodes in which several user
programs are running concurrently and are also all
using the phone link.
Level 4 performs
mUltiplexing and flow control of data streams from
each of the programs into the single phone link.
Separate 8 bit fields specify source and destination
process addresses for each process-to-process
stream. Fields also exist for sequence and stream
numbers. In small nodes this level can be merged
with level 3. The fields specified for the level 4
block format still remain, but can be ignored by
the simple nodes.
Small nodes can still
communicate with large nodes capable of
WEST COAST COMPUTER FAIRE
158
BOX 1579, PALO ALTO CA 94302
PCNET PROTOCOL TUTORIAL
(prepared from the online file PROTO.PR3)
by Robert Elton Maas (REM at SU-AI, MIT-MC)
PO B.ox 6641, Stanford, CA 94305
This document is one more attempt to
explain the PCNet protocols to persons planning to
write their own software.
This document is
written bottom-up so that node volunteers don't
have to read it backwards to know what to
implement in sequence.
It also contains no
completely worked-out examples (see [Maas WR2]
for them, as well as a top-down approach), and no
test data for debugging node software (see [Maas
EXPERI]). It also doesn't fully specify timeouts and
other obscure features of our protocols (see
[Crane]; point of nomenclature - references of the
. form AAAA.BBB are to PCNet documents
maintained as on-line files).).
The two earlier
primers, PROTO.PRIMER and PROTO.PR2 mayor may
not be useful to supplment this tutorial.
QUICK LISTING OF DATA PASSING BETWEEN
ADJACENT LAYERS OF PROTOCOL:
This section will be mostly meaningless until
later sections have been read, but due to our
. present indecision as to what cArtain things should
be called there are some synonyms that ought to
be pointed out before proceedinl.
Phone-line: modulated carrier, Bell 103
standard.
Modem cable (optional): two-level bit-serial
with start and stop bits, RS-232, not present if
UART+MODEM on one board.
I/O or memory-mapped hardware interface:
8-bit bytes containing Radix-41 characters and
framing, making up LTBs (Link Transmission Blocks).
link-level midpoint: binary translation of
LT8s, called "TBs" (Transmission Blocks).
Pure-binary stream: data portion of TBs,
containing PPSBs (Process-to-Process Stream
Blocks) packed end to end.
PPSs (dynamically created and destroyecO:
data portion of PPSBs that comprise that particular
PPS.
Disk I/O: implementation dependent and
optional.
(Note, the term "block" used by itself In this
tutorial usually refers to a TB or LTB.)
. An important segment of the PeNet protocol
relates to Telephone Call Management(TCM). One
of the PeNet design goals is graceful sharing of 8
single telephone line between voice and data use.
TCM covers the activities which must take place
from the time the PCNet node phone line g08s
off-hook until the time the Frequency Shift Key
(FSK) handshake between the two communicating
PCNet modems is complete. TCM also deals with
call termination - the activities from the end of
data transmission until the phone line goes on-hook.
QUICK LOOK AT ALL THE LAYERS:
WEST COAST COMPUTER FAIRE
Hardware (not detailed below):
For
compatibility
with
existing
software-service bureaus, Arpanet-host dialup
equipment, manually operated terminals such as my
Beehive used to remotely test software, and
low-cost available personal computer serial-i/o
interfaces -- our network will initially be geared to
the Bell-103 standard rather than any of the
brand-new
bit-synchronous
communications
standards such as HOLC, and will run at 300 baud
(110 optional) rather than 1200 baud.
The interface to the main body of software
will consist of a GETCHARACTER routine that
returns -1 if no character has arrived at the UART
(Universal Asynchronous Receiver/Transmitter)
within a reasonable time and a number between 0
and octal 377 (the ASCII, or rarely EBCDIC, value
of the characer) otherwise, and a PUTCHARACTER
routine that either waits until the character can be
stuffed into the serializer or returns an error flag if
it couldn't be stuffed immediately (wait-and-stuff
would
be
used
in
hal fdupl ex
protocol,
stuff-or-error would be used in fullduplex
protocol). An alternative is fully-buffered i/o that
is driven by interrupts, but with similar interface
are
not
a
charact.ri.tic..
Timeout.
fulltime-essential feature, rather are used to avoid
telephone calls longer than necessary to either
transmit a message or determine that the other
node is sick, and to detect that a rare failure of
halfduplex turnaround has occurred so that the
deadlock can be resolved. It is expected that
during 99% of connections not a single half-duplex
deadlock will occur, thus with semi-manual
operation all timeouts are optional.
No further discussion of the hardware and
its interface will be done in the rest of this
tutorial.
159
BOX 1579, PALO ALTO CA 94302 .
PCNet TCM is intended for use in three different
modes; 1) Attended (manual control). This mode
assumes people present who will answer all calls,
switching PCNet calls to the computer when they
occur. 2) Attended (computer contro\). This mode
assumes people are present for voice calls, but
that the computer answers all calls and signals the
people to accept voice calls. 3) Unattended. This
mode assumes that people are either absent or
asleep; the computer answers all calls, minimizing
audib~e ring signals inside the cailed premises.
control-C or control-Z.
Some systems even
convert all lower-case characters (octal 141 to
172) into upper-case!
To avoid almost any
possible conflict when passing binary data, a subset
of 41 (decimal) characters called Radix-41 has
been selected to be transmitted across the line.
Two 8-bit bytes of binary data are represented by
three bytes of Radix-41.
A more complete
discussion of the alternatives, and reasons for our
belief that Radix-41 is the optimal method for our
purposes, are in [Maas RAD41].
Many systems echo back anything typed at
their input lines, and on most systems this echoing
cannot be turned off completely.
Also, most
programmers using BASIC on personal comput ers
are unable to handle multiple concurrent processes,
nor fully-buffered i/o, thus a fullduplex mode of
operations where data is simultaneously travelling
in both directions at the same time, is infeasible.
We have thus chosen a method of simulating
half-duplex mode of operation on any full-duplex
or echoplex or true-halfduplex line, and it is the
default mode of operation. To almost eliminate
deadlocks caused by the turnaround character
being lost due to line noise, 3-out-of-5 majority
logic is used to determine whether the other node
has or hasn't finished transmitting. To avoid being
confused by seeing your own echo, a different
turnaround character is used for the two nodes in a
link ("[" vs. "]"). Also, each TB contains a bit
telling who sent it, so that echoed TBs won't be
accepted by the node that sent them in the first
place (in the event that echo is delayed due to
buffering, turnaround get momentarily confused, or
echo occurs while in full-duplex mode).
TCM assumes that a sophisticated modem is
available; one capable of detecting telephone
signals such as ring, busy, dial tone, etc. Simpler
modems with· time-outs may be used with the
penalty of slower and less efficient operation.
In present attended (computer control) and
unattended TCM modes the computer goes
off-hook for all incoming calls; if the call is voice
and not data both people on the premises and the
calling party must be given a ringing signal so that
the voice connection may be completed. This is
undesirable in that billing will start as soon as the
phone line goes off-hook and before the voice call
really begins. Also a special piece of equipment is
required to generate the ringing signals. Some
better way of differentiating between voice and
data calls on the same phone line would be
desirable.
Link level (bottom half of communication software):
Errors in transmission invariably occur when
using modems over dialup lines. Thus a facility for
retransmission
detecting
errors,
requesting
. (impjicitly ._jn __ PCNaLby a lack ()t ..affirm~Hx~
response within a reasonable time), holding
out-of-sequence blocks until the missing earlier
blocks can be retransmitted, putting blocks into
their correct sequence, and delivering verified and
sequenced data up to the next level; has been
included. In the default mode of operation, only
one block can be sent at a time, eliminating the
need for buffering and sequencing.
When implementing our protocols as user
programs on existing computer systems, limitations
in the characterset available as input to a node,
and sometimes even as output, usually make it
impossible to transmit arbitrary 8-bit bytes across
the line. For example, most systems ignore the
parity bit on input, and set the parity on output
regardless of what the programmer actually
supplied as the octal 200 bit of outgoing data.
Furthermore many systems supply linefeed to the
input stream after carriage return that comes in,
ignore null, do strange things like killing or holding
output when control-O or control-B is input, and
interrupt the program completely when receiving
WEST COAST COMPUTER FAIRE
Node level (third quarter of
software): _. -. --. _.
--".
-- . .
communication
".
The Interface between the link level and
the Node level consists of e "pure binary stream"
which Is a sequence of 8-blt bytes with all 256
possible values legal. Files can be transmitted
using only the hardware and Link levels, however
that leaves no method for starting and stopping a
transmission. The Node level is a way to multiplex
control information (start and stop of transmissions
of files, as well as node-identification, network
statistics reports, requests for fullduplex mode of
operation, and advanced features we haven't even
thought of yet) and data (one or more
file-transfers, and maybe even additional services
such as "TELNET" (link between a terminal and a
remote interactive program» along a single
pure-binary stream.
Virtual circuits are established between a
process on one node and a process on the other
node, for example between a process having a file
it wants to transmit and a process that accepts
files and saves them on its disk. We call such a
160
BOX 1579, PALO ALTO CA 94302
circuit, at this level, a Process-to-Process Stream.
Normally here will be one PPS in each direction so
that the two processes can talk in duplex. Each
PPS is broken into blocks, called PPSBs, so that It
is easy to detect end of transfer without knowing
the total data count at the very sian (there is a
bit in the header of each PPSB telling whether it is
the last or not, and a count of zero data bytes is
legal so that end-of-transmission can be sent at
the very last possible moment if it is only then
when the sending node realizes it really is done),
and so that control messages and/or blocks of
some other PPS can be multiplexed between
PPSBs of any PPS in progress.
Optional features include keeping track of
buffer allocation at this level so that if one PPS
gets blocked the link can still be used to transmit
other PPSs without losing data of the blocked PPS
(i.e. no data from blocked PPS is put into the
pure-binary stream until the other node announces
that it has more room in its buffer to store it).
In the default mode of operation, "only one
transfer can be active at a time, no accounting for
allocation of buffers is done, and any control
messages or requests for additional transfers are
ignored while a transfer is in progress. Also, the
beginning of each PPSB is located at the beginning
of a LTB and each PPSB is wholly contained in that
LTB, so that an incoming block can be handled
completely by a closed subroutine that preserves
almost no state-information from one block to the
next.
The result of all this is that pure-binary
duplex communications are established between
File
Transfer
Process
(FTP)/MAIL
server-processes on the two nodes, without
preventing upward compatibility into multiple
concurrent services occurring between a pair of
advanced nodes, and without preventing an
advanced node from talking to a very-simplest
node.
In the simplest implementations it is
expected that all levels in the receive pipeline will
be compressed into a single piece of code that
checks incoming data for validity, discards anything
containing transmission errors, discards any PPSB it
Isn't able to accept, ignores any control mesage it
doesn't understand, and depending on a boolean
variable either awaits a request for opening a file
transfer or delivers data from the active transfer
to some output file. The transmit pipeline would
need a queueing mechanism so that replies from
the FTP/MAIL server-process could be sent as
soon as turnaround occurs, and TBs containing no
data could be sent if no data is awaiting
transmission.
Server-process
level
(top
quarter
of
communication software>:
A server-process is a subroutine or other
WEST COAST COMPUTER FAIRE
161
chunk of program which actually does something
useful, as contrasted with all the routines at lower
level, that do the IrunlY 8tuff nec•••• ry to mike
server-processes
possible.
Thus
the
server-process level is the highest level of the
protocol.
At present
we
define . two
server-processes, "control" and "FTP/MAIL".
A
server-process is specific to one particular type of
activity, whereas all the other levels of software
are general-purpose for linking nodes and
server-processes together. A "listener" is that
part of a server-process which sits waiting for the
other node to give it a request to do something, as
contrasted with performing' an action after the
request has been received, or spontaneously
'initiating actions or requests, which are done by
non-listener parts of a server-process.
The control-listener handtes any PPSB
addressed to process 0, checking to see if it knows
the· control OPCode, and if so then acting on it
somehow.
In advanced nodes, an explicit
negative-acknowledgment will be issued for
anything it understands but rejects, and for
anything it doesn't understand that is in affirmative
mode. A simple node can ignore anything it doesn't
like.
The control process also has the duty of
generating control messages .to be sent back.
Semi-mandatory is identification of the node.
Optional are requests to go fullduplex or binary
(non-radix41) or unsynchronized (PPSBs and LTBs
overlapped for increased thruput) or allocated
(explicit allocation granted before data can be sent
on a non-control message, except for initial
requests for transfer which are "borrowed" from
the later allocations).
The FTP/MAIL listener handles any new PPS
that is addressed to process 1. These usually
consist of requests for starting a file transfer. If
the request is acceptable at this time, a duplex
connection (one PPS in the other direction, in
addition to the already-started PPS that requested
the transfer) is established between a piece of
code on one node and one on the other node.
When the end of the orilinel PPS occur.,
end-of-transf.r
18
8ianalled,
Ind
In
acknowledpaent and optional file-checksum is sent
on the reverse PPS just before it too is closed.
Local
forwarding/mailing
software
outside
server-process:
.
Before a message or file can be transmitted
to another node, it must be created somehow, and
then queued for the server-process to handle.
The queued version must contain a PCNet header
telling where its ultimate destination is, and may
also have in the header a decision as to where the
next hop will be' (i.e. to which node it will be
forwarded next).
The PCNet communication
BOX 1579. PALO ALTO CA 94302
software must then somehow get started, either by
answering the phone, or by the system or another
program or a human explicitly starting it up.
After a message has been received and the
phone hung up (or possibly after the message has
been received but while the phone link is being
used for additional messages or other services, if
the computer system is powerful enough to do so
many things at the same time without slowing down
the phone link), it must be decided whether the
message is for local delivery or must be forwarded
to yet another node. If forward, go to preceeding
paragraph, else some delivery method must be
chosen, such as appending to the start or end of a
person's message file, writing as a new file with
header stripped off and an anouncement of its
arrival appended to the mail file, listing in hardcopy
for manual delivery, or summoning an operator to
telephone the addressee and recite it verbally.
Since all this occurs outside the telephone
link, it can be handled at leisure by whatever
combination of manual and automatic means the
owners/operators of the node may decide upon.
However, once the server-process accepts an
FTP/MAIL request, it is mandatory that either an
explicit negative-acknowlegment be givenj or the
message or file be correctly delivered to its
Any node which accepts
intended recipient.
messages and then loses them without comment,
will
get
nasty
black
marks
in
the
ma8ter-network-directory, and other nodes will b.
warned not to trust the offending node, which will
probably result in ostracism until the offending
node is fixed.
To avoid this, if an operator
discovers that his system has crashed and
obliterated from the disk some message entrusted
to .. it, he. (she) . . should--lmmediate1.ytelephone---the
original sender to inform him (her) of the accident
so that he (she) can re-submit the message to the
network. (This of course implies that each node
have some form of backup, such as a hardcopy log
of message headers.)
misunderstood part of our protocols, I will now
present algorithms for converting to and from
Radix-41.
Three characters of Radix-41, corresponding
to the three numerical values they map to, are
combined to make one 16-bit number. The first
numeric value is multiplied by 41*41, the second
by 41, and the third by 1, then these three
products are added. (More efficient is to compute
V3 + 4h(V2 + 4hVl), which only uses two
multiplications and two additions.) Going the other
way, two divisions must be done somehow (the
most efficient way is either a table lookup on 4
4-bit-bytes extracted from the 16-bit· quantity,
adding the four value-triples looked up in the four
tables, or for each division a multiplication by an
approximation to 1/41 followed by a slight
correction).
To convert from Radix-41 characters to
binary, first map Radix-41 to numeric values, then
do the two multiplications to get a 16-bit number,
then break that number into two a-bit bytes. The
mapping can be done efficiently by range checks
for numbers and upper-ease-letters (in either case
a simple subtraction of a constant will finish the
mapping) followed by a check for the other five
characters if the range checks fail.
To convert from binary to Radix-41, first
combine the two bytes into a 1S-bit quantity
(unless you are using the 4-table lookup method),
then do the two divieions by 41, usin. the
remainders and the final quotient 88 the numeric
values in reverse order (i.e. the final quotient is
the first value, the second remainder is the second
value, the first remainder is the third value), and
finally map to Radix-41 by a simple index into a
table of ·41·character·s;····_···· .
All this conversion between binary and
radix-41 actually occurs as subroutines in about
the second-next section in this tutorial, however
the algorithms were discussed here so the reader
understands what Radix-41 is and is not before
getting embroiled in halfduplex turnaround and LTB
framing.
(Note,
an
alternative
to
Radix-41,
transparant 8-bit mode, is described in [Crane]. It
will not be explained in this tutorial.
The
discussions below of HDX turnaround, LTBs, and
dropping of the odd byte, apply only to the
Radix-41 mode of transmission. Other sections
apply equally to both modes of transmission.)
DETAILED FUNCTIONS OF ALL THE LAYERS:
Radix-41 transmissions:
The mapping between the 41 characters of
the Radix-41 characterset and the values 0 to 40,
is nicely diagrammed in [Wilber, page 41], but can
be summarized briefly. Open parenthesis, R(", maps
to the value O. Numerical-digit characters "0" thru
"9" map to the values 1 thru 10 (note the· offset,
character "5" maps to value 6 for example).
Uppercase alphabetic characters "A" thru HZ" map
to values 11 thru 36. "*" maps to 37, "+" to 38,
"." to 39, and ")" to 40.
To be sure the reader understands the
Radix-41 representation, the most commonly
WEST COAST COMPUTER FAIRE
Half-DupleX (HmO turnaround:
To avoid deadlocks when one or two
characters at the end of a transmission is (are)
garb aged, a 3-of-5 majority rule is used. Five
turnaround characters are transmitted, and as soon
as at least three of them have been received at
the other end, that node begins transmittinl
162
BOX 1579, PALO ALTO CA 94302 .
THIS level right here). Of the two atsigns between
LTBs, the first one fixes the UART so the second
will get through to software, and the second one
(or the first if both get through) tells the software
to finish any preceeding LTB that it was parsing
and to start another as soon as a valid Radix-41
character (not atsign, not brackets) occurs.
An LTB as actually transmitted, therefore,
consists of one atsign, 3*N Radix-41 characters
(representing 2*N 8-bit bytes that are one TB),
and one more atsign.
- After a LTB (delimited by atsigns) is parsed,
it ismapp.ed·into binary .usipgthe -8..ubroutine
detailed earlier. If Ita length is not a multiple of 3,
the mapping fails and it is rejected immediatey.
Also if it is exactly 0 or 3 characters long (the
former check is an easy way to determine the
nothing between two consecutive atsigns that
occur between LTBs, namely you pretend it is an
LTB then reject it because it is too short to really
be one).
If timing is critical, it may be necessary to
buffer up a complete transmission without checking
validity of LTBs, or even without parsing them at
all. All checking can be postponed until after
half-duplex turnaround. On the PET, using BASIC,
even that trick loses, and it is necessary to make
the main loop buffer up incoming characters
without even checking for turnaround-brackets.
When the main loop detects that no character has
arrived, it lets a second loop, a co-routine, steal a
moment of CPU time to perform one step in a loop
that searches the buffer for turnaround-brackets.
(Two routines are co-routines, as contrasted with
one main routine and one sub-routine, if each
returns to where the other left off, rather than one
of them (the sub-routine) always being restarted.)
Thus during the actual transmission the HDX-search
co-routine lags far behind, then has time to catch
up while the line is idle after HDX turnaround, at
which time it finally sees the brackets and signals
turnaround.
without waiting for idle line or the rest of the
turnaround characters.
REM made an arbitrary
choice of open and close square bracket (in ASCII,
octal codes 133 and 135, gotten by shift-K and
shift-M on most terminals even if not shown on the
keY)j which has been tentatively accepted by
everyone in the protocol committee, and so has
been written into our protocols. (If we discover a
high rate of errors, and find two other characters
not already used by our protocols but having much
lower error-rate, we are willing to change this
decision.)
To avoid ·overlappingahLT9 with the tail o·f
the haU-duplex turnaround from the preceeding
transmission in the reverse direction, or even in
the same direction if the node starting to listen will
see its own echo multiplexed with the beginning of
the other node's transmission, each transmission
begins with a series of five (or more) atsigns.
(At signs
were
chosen,
after
considerable
experimentation, for their remarkable property of
fixing UART character-misframing, thus assuring
correct UART sync for the LTBs that follow, even if
due to hardware or interface problems the
beginning of a transmission has the UART in some
funny state such as transmitting half a character
then being reset and immediately starting another
character, or interleaving incoming data and echo of
one's own outgoing data at the bit level (like my
Beehive does when in halfduplex mode!!!».
Finally, I will answer one of the most
frequently-asked questions, which I always have to
Which node transmits "[" and
look up myself.
which node transmits N]" The answer is that node 0
(the node that originated the call) transmits "]" and
node 1 (the node that answered the phone when it
rang, which implies an answering modem) transmits
"[". Thus after· node 1 answers the phone and
starts up the PeNet communication-program, it
transmits [[[[[ to indicate it is listening for the first
actual transmission, then node 0 transmits @@@@@
followed by one or more Link Transmision Blocks
(LTBs) followed by]]]]]. Then node 1 transmits
@@@@@ followed by its blocks followed by [[[[[.
This alternation continues until one or the other
node hangs up after either agreeing with the other
node that they are done, or getting disgusted with
the other node and giving up.
Odd/Even checksum:
This check, and the next three, can be done
in any of the twenty-four possible sequences. The
order shown here is random, but based on
heuristics (actually prejudices). In actual fact the
most
efficient
sequence
is
probably
(1)
drop-odd-byte (2) compare length (3) check
orig/ans (4) compare checksums.
All the odd-numbered bytes are added up,
modulo 256, and compared with zero.
All the
even-numbered bytes are added up· and checked in
the same way. (This can be done in a single loop
by swappini the two runnini sums and always
adding to the same variable.) If either result I,
nonzero, the block is rejected.
When transmitting a block, it's a little more
Link Transmission Blocks (LTBs):
In addition to the mapping from binary into
'Radix-41, each LTB is prefixed by an atsign, and
followed by another atsign. Thus a total of six (or
more) consecutive atsigns occur at the beginning of
each transmission, adjacent LTBs are separated by
two atsiins, and one atsign occurs immediately
before half-duplex turnaround brackets. Atsigns
serve two purposes, correcting UART mis-frame,
and delimiting LTBs at the software level (in fact at
.. WEST COAST COMPUTER FAIRE
163
BOX 1579, PALO ALTO CA 94302
tricky because the two checksums obtained must
be complemented before appending to the Ta, and
the appending must be "reversed" if there is an
odd number of bytes so that the receiving node
will get zero for each alternating checksum. See
below for more on the extra zero byte added atter
t he checksum when the TB has an odd number of
bytes.
been truncated but whose received part is all zero
thus adding to zero, will be rejected. Even a
steady stream of zero values, represented by the
open parenthesis character, will be rejected,
because the TB-Iength in the header of the TB will
be zero whereas it should be at least two. Even if
it it is two due to noise on the line, it is unlikely
that a checksum of exactly 376 to offset it could
be created by the same burst of noise without
messing up the other interleaved parity.).
Originate/Answer flag:
The octal 200 bit in the first byte of the TB
is the originate/answer flag. It equals the node
number of the sender of the bl"ock, which is the
complement of the receiving node number.
(O=originate 1=answer, referring to original
establishing of connection as well as to modem
frequencies. Nodes not using Bell 103 protocol, for
example radio links, must agree who is node 0 and
who is node 1 before blocks can be exchanged.)
When receiving a block; if this bit isn't the
complement of one's own node number, the block is
rejected.
Sequencing .of blocks modulo 8:
The first" "two bytes of each TB are the
header. We've discussed everything in it except
the two sequence fields. One (called SEQ) is the
sequence number (of the TB it Is in) modulo 8 and
the other (called REVNAK in our current software
-- this term as well as SEQ, RCVNAK, XMTNAK and
XMTGEN may be changed in later documentation
and software) is a sequence number for
not-yet-received blocks traveling in the reverse
direction. The latter is of interest to the transmit
pipeline when we receive a T8 containing it, and is
taken from a globally-available parameter in the
receive pipeline when transmitting a TB. As it sits
inside (first byte, mask 007) the TB, I call it
REVNAK
which
means
"REVerse
Negative
AcKnowledgement". It comes from the RCVNAK
variable of the transmitting node, and is stored in "
the XMTNAK variable of the node that receives it.
Thus it is affiliated with the REVerse process to
the one that is actually passing it across the phone
line.
The SEQ field refers to the T8 it is in,
identifying its sequence number modulo 8 (i.e. a
When constructing a T8 for
3-bit number).
transmission, a locat variable XMTGEN is "used fa
generate this field, then XMTGEN is increased by 1
(modulo 8) to be ready for the next TB to be
constructed. The XMTGEN variable in each node
starts at zero, thus the blocks sent by each node
are numbered 0,1,2,3,4,5,6,7,0,1,2,3,... This block
number, a 3-bit field in the TB header (octal mask
070 in the first byte), is then used by the
receiving node to decide whether it has already
gotten it, is expecting it now, or isn't yet ready for
it.
The first and third cases are generally
indistinguishable.
In either case the block is
ignored except that since the checksum etc. all are
ok it is known to be A BLOCK from the other node
hence the REVNAK field can safely be copied to
the XMTNAK variable the same as if it was a block
that was accepted.
(Normally the storing of
REVNAK into XMTNAK is done just before the block
sequence number is checked, but of course after
all parity+length+extrazero+originate checking is
done.)
If the received block is numbered exactly
the same 8S RCVNAK (oldest still-not-received
Drop odd byt e:
If the TB-Iength, which is the complete
second 8-bit byte of the TB, is odd, there is an
extra zero byte (the last byte from Radix-41 to
binary conversion, which is the next byte after
TB-Iength has been exhausted) at the end of the
TB which must be ignored. The easiest way to
handle this is to decrease-by-one the local
variable that tells the actual size of of the TB
decoded from Radix-41 (before this step it will
always be even, and if this step is performed it
will then be odd like the TB-Iength in the
second-byte already was).
ttis reccommendedjif you can afford the"
code, to first check this byte to be sure it really i~
zero, and to report an error if this check fails after
the other three checks have succeeded.
Length:
The length as specified in the second byte
should now equal the received-TB-size minus two
(because the checksum bytes and the extra zero
byte aren't counted, and the extra zero byte has
already been deducted). If this step is performed
before removing the extra zero byte, then the
TB-Iength ROUNDED UP TO THE NEXT EVEN
NUMBER is compared with the received-TB-size,
instead.
If the checksum has already been
computed,
and
discarded
from
then
r:eceived-TB-size, AFTER REMOVING THE EXTRA
ZERO BYTE IF TB-LENGTH IS ODD, then you don't
even have to offset by two, the two counts will
exactly agree. In any case, when receiving a block,
if the lengths disagree the block is rejected (thus
two blocks concatenated, whose checksums will
always combine to yield zero, or a block which has
WEST COAST COMPUTER FAIRE
164
BOX 1579. PALO ALTO CA 94302
block, initialized to zero) then the header and
checksum are stripped away and what's left is
passed up to the pure-binary stream (if the TB
length was exactly two, then there are exactly
zero bytes of data, so nothing is passed up) and
the RCVNAK is increased by one and reduced
modulo 8. These two steps, passing up data and
updating RCVNAK, must be properly synchronized
(if this software has multiple processes active at
the same time) so that it is impossible to get two
copies of the same block and accept them both.
If a node. is capable of buffering more than
·one ~I~~kat. a lim~J then it is: possible to galan'
acceptable block ·that isn't the very next one but
which can be saved at the receiving node until the
intervening one{s) get (re)transmitted to fill the
gap. Then when the one matching RCVNAK finally
arrives, after updating RCVNAK another check is
made to see if the one matching the new value of
RCVNAK has already arrived, in which case it too
can be, unbuffered and passed up to the
pure-binary stream, RCVNAK updated again, and
the test for already-arrived-RCVNAK-equal block
repeated until it finally fails. (At moet four blocks
can be receivable at one time, thus at most three
blocks already buffered can be emitted when the
one before them finally appears. This limit of
4-out-of-8 is absolute, there is a counterexample
(or scenerio) that demonstrates that with a window
of 5 or more out of 8, a block can be mistaken for
one 8 earlier or later and thus completely destroy
function of the link. This fact won't be apparent
until we've finished discussing the function of the
REVNAK field and the XMTNAK variable.)
The function of the RCVNAK variable, as
observed from the outside (in particular from the
transmit pipeline which may run asynchronously at
the same time as the receive pipeline when in
full-duplex mode) is now describable. At any
moment it equals the number of the oldest
not -yet -received-and-completely-processed block.
Each time the transmit pipeline sends a
block, at the last possible moment before
transmission (just before converting to Radix-41),
it copies the RCVNAK variable into the REVNAK
field of the header, and recomputes the checksums.
(Note this also occurs on ,retransmission of a block,
thus it is always current in realtime at a moment
Just before the start of the LTB output.) The
effect is that the REVNAK field is an implicit
acknowledgement of all blocks (in the other
direction) preceding the one numbered REVNAK, is
an explicit negative acknowledgement about the
one numbered exactly REVNAK, and is a "no
comment" on all later blocks that might have been
received and buffered or might not have yet -been
received.
We may define the time that an
acknowledgement really happens to be the instant
WEST COAST COMPUTER FAIRE
when the node receiving the block, after checking
parity etc., stores the REVNAK field. into the
XMTNAK variable.
Thus at any moment, the
XMTNAK variable in a node equals the sequence
number (modulo 8) of the oldest outgoing block
that hasn't yet been acknow!edged by the other
node. When XMTNAK equals XMTGEN, it means
that all outgoing blocks constructed earlier in this
session have been sent and acknowledged.
Otherwise it means the blocks numbered from
XMTNAK up to but not including XMTGEN are either
some\Vhere on the round trip out (as blocks) and
bacl<. (asimpl~ed acknowledgeme-nts),c>r have been
lost somewhere due to line noise or lost characters
due to too-slow software or other problems. A
heuristic algorithm in the transmit pipeline uses
XMTNAK and XMTGEN as well as any other
information available, to decide whether to
retransmit a block that still hasn't been
acknowledged, transmit a new one while waiting a
'little longer for the wayward block to get
acknowledged, or perform half-duplex turnaround.
In the simplest implementation, which Is the default,
a window of l-out-of-S combined with half-duplex
mode makes the choice obvious, namely upon
getting turnaround the program checks XMTNAK
against XMTGEN. If XMTNAK+l=XMTGEN (mod 8) it
retransmits XMTNAK block. If XMTNAK=XMTGEN it
constructs a new block from queued data (if none
there's some hair, consult REM and look at a listing'
of the program PCNSR3.SAI for details). The other
six possibilities are impossible, thus indicate
programing bugs or faulty hardware inside one
node or the other.
Pure-binary stream:
The data portion of TSs arrives as a stream
of bytes (or as successive arrayfuls of bytes, one
array from each TB). It may be fed directly to the .
PPSB pars~r, or buffered first. In any case there
should be an explicit control point through which all
incoming pure-binary data passes, and another
similar control point for the transmit pipeline, so
that software below this level can be made almost
totally independent of software above this level,
and so that during debugging a trace can be
installed to see what is getting thru these two
poiJ:lts (rcv and xmt pure~binary) in the software.
Why break the software at these two points?
First, because it is the only place in the entire
software, other than the UART interface, where a
conceptually-clean place gets 100% of the data
flowing through the software.
Second, it is a
natural place to splice different protocols together.
During initial testing of the bottom half of the
protocol, it is common to put the software in
loopback mode by feeding all incoming data right
back out. Slightly later the lower half can be used
almost-stand-alone for file-transfer using a simple
165
BOX 1579. PALO ALTO CA 94302
top-half kludge (halter-top?) that is initiated
manually at each end or semi-automatically by a
restriction on the characterset and a convention for
detecting end of file. (The program PCNSR2.SAI is
an example of this.)
Another possibility is to
replace the bottom half by some commercial data
network
that
guarantees
100%
perfect
transmissions of 8-bit bytes, or by the bottom half
of the DIALNET protocol, or by one of the new
bit-synchronous communications protocols.
closed at the end of this PPSB, otherwise the PPS
will be kept open waiting for more PPSBs).
Normally the block number is almost
redundant. If it is zero for a PPSB that isn't part
of C:I known PPS, it is assumed to be block 0 (rather
than block 8 etc.), and the DESTINATION-PROCESS
field is checked for legal values (0 and 1 currently,
except when it is a reply to an IFTP), otherwise it
is a non-first block and can be ignored. Note that
at most 8 PPSBs can be sent in a new PPS before
getting positive confirmation that the other node
has actually accepted the PPS, otherwise block 8
might be confused with a neW block 0 attempting
to open a new PPS.
In advanced nodes with multiple link-levels
over separate dialup lines to increase effective
bandwidth, the PPSBs for one PPS can be
distributed to different link-levels, and the block
numbers used for reassembling them in correct
sequence. But this is not likely to happen for quite
a while!
Note that if the process originating
(SOURCing) a PPS realizes after it has already sent
the last byte in a PPSB with LAST -BLOCK-BIT
zero, that the PPS should now be closed, it can
simply send a PPSB with BLOCK-lENGTH equal to
exactly 3 (i.e. 3 bytes of header and 0 bytes of
data) and with LAST -BLOCK-BIT set. Thus it is
never too late to close an open PPS. There are
also methods to abort a PPS rather than closing it,
usually to signal some error condition.
This
capability is included in the control messages listed
in [Maas WR2].
PPS Blocks:
-At the node level, data is explicitly broken
up into PPSBs, each of which is one segment of a
PPS (Process-to-Process Stream). If necessary
these can be multiplexed (complete PPSBs from
one PPS located between those from another PPS,
but a PPSB isn't broken internally, thus a PPS can
be broken only at PPSB boundaries). The very
first byte of data in the very fi.rst l TB, during any
given session, is also the first byte of header of
the first PPSB in that session (this applies
separately to the two pipelines, one in each
direction, transmit and receive). Once the pipelines
have started, the PPSB-LENGTH field in each PPSB
determines where it ends, and the next PPSB
starts immediately after (the next byte of the
pure-binary stream).
Since the data in the
pure-binary stream is 100% accurate, no errors can
happen in parsing (except by failure of the
equipment, which is assumed to not happen), so no
other framing is required. In the default mode, with
LTBs and PPSBs synchronized, there is additional
redundancy that can be used to detect such
"never-happen" failures.
The first PPSB in any PPS has two fields not
Process-Process Stream:
After deciding where to send the
data
part
in--tet er-PPSBs f -namefy-a-SOURCE-PROCESS end-
-of-a--ppse,-and--etrippingoff- the 3-wordorS-word
DESTINA TION-PROCESS number, each 8 bits. The
DESTINATION-PROCESS field is used to direct the
PPS to the correct piece of code to start
processing the PPS. After the PPS has started,
that code passes control to whoever will really be
reading
the
PPS,
which
may
be
a
specially-generated entry point, or a throw-away
sink if the PPS isn't acceptable for receipt. The
SOURCE-PROCESS field is used in case the
DESTINATION-PROCESS wants to open a PPS in the
reverse direction, it uses the SOURCE-PROCESS of
the original PPS to fill the DESTINATION-PROCESS
field of the reply PPS.
Every PPSB has the following fields:
BLOCK-LENGTH (used to parse PPSBs in
not-delimited end-to-end format of the pure-binary
stream), PPS-NUMBER (used to identify which PPS
it is part of), BlK-NUMBER (sequence number
within that PPS, starting at 0 for the first-PPSB
which has the two extra fields described above),
and LAST -BLOCK-BIT (1 if this is the last block of
the PPS, so that the PPS it is in will be formally
header (5 for the first PPSB in a PPS, 3 for I-ater
PPSBs in the same PPS), the remainder of the
PPSB (up to 255-3=252 or 255-5=250 bytes,
minimum 5-5=0 or 3-3=0 bytes) is passed up to
whereever it was supposed to go, to be
interpreted further by whatever program is located
there. Two such programs, the Control-listener,
and the FTP/MAll server, are defined presently.
WEST COAST COMPUTER FAIRE
Process#O -- meaning of link-control messages;
The Control-listener gets any PPS that is
addressed to destination process O.
Each PPS
must consist of exactly one PPSB, with the
lAST-BLOCK bit turned on (1). Any multi-PPSB
addressed to precess 0 is considered a violation of
protocol.
Each PPSB to the Control-listener
consists of exactly one control message. The first
byte (of PPSB-DATA) is the control opcode, and
any remaining bytes are arguments.
A list of
currently designed control messages are in [Maas
WR2]. Almost all them can be ignored safely by
unfancy nodes.
166
BOX 1579. PALO ALTO CA 94302
FTP, the correct header should be put at the start·
of the file.
The forwarder and the protocol
program can then handle it as a chunk of data,
examining the header when necessary to see what
to do with it next. When delivering the message
to the addressee, it is optional how much of the
header to keep, how much to edit to make it
prettier, and how much to purge. All this is up to
the operator(s) of the system.
Process=ltl -- protocol for transferring a file
{message or ot her>:
All PPSs directed to DESTINATION-PROCESS
1 are fed initially to the FTP/MAIL listener.. After
a PPS has been opened, a siightiy different entry
address will probably be set up so that the rest of
the PPS can be processed without constantly
rechecking for same/different PPS number. Usually
a dispatch table for currently-open PPSs will exist
in the PPSB parser, and simply changing an entry in
it will switch a stream to a different piece of code
without affecting anythng else.
Any new PPS
addressed to process 1 will go to the original
FTP/MAIL listener, which will then note that an
FTP/MAIL is already in progress and either ignore
or signal abort unless the computer can handle
multiple simultaneous file transfers (a rare situation
even on large computers).
- The general protocol for transferring a file is
as follows: The node wishing to send the file first
sends a IFTP (Initialize File-Transfer-Process)
request to process 1 of the node that will (maybe)
receive it. That node then checks to see if the file
is small enough to fit in available storage, and if not
replies with a NO-I-WON'T IFTP message.
If,
however, the IFTP is acceptable, it replies with an
I-WILL IFTP message. Then on the same PPS as
the original request, the sending node transmits an
FTP/MAIL opcode of PLEASE-DO TAKE-THIS-FILE
followed by actual data of the file all the way to
the end of the PPS which is then closed. Finally a
reply of either I~WILL TAKE-THIS-FILE containing a
checksum of the data received (zero if no
checksum was comput ed) if it was successful, or
I-WON'T TAKE-THIS-FILE with some error code if
not. The receiving process should actually safely
close the· file it is writing into storage, before
sending the I-WILL ... confirmation of
completely successful transmission.
After the
transmitting node gets the confirmation, and
verifies the checksum is correct or zero, it may
safely delete the copy it was reading from.
SUMMARY:
We hope that this tutorial has helped the
reader understand most of internal workings of the
program that at one end of a phone connection
automatically maps files down through the layers of
protocol and transmits them out the telephone line,
and at the other end receives the LTBs and maps·
them up through the layers to construct a copy of
the file.
Formal specifications of these
communication protocols are given in [Crane].
Specifications of how a message-forwarding
network is built upon these protocols are given in
These and
[Wilber], [Bourn] and [Maas WR2].
other documentation and tutorials from the PCNet
Committee are available at a nominal charge to
cover the cost of reproduction and mailing.
(Contact the author, or any of Dave Caulkins, Mike
Wilber, Ron Crane or Peter Deutsch.)
At the time of final-editing of this tutorial
(1978 January 16), protocols are working on
several PDP-IO computers, and this software has
been partially transferred to the PET (using BASIC)
and to the Altair (using assembly language). It is
hoped that we can have several micro-processor
nodes
fully-working
and
doing
useful
electronic-mail service by the time this paper is
presented at the fair.
REFERENCES:
[Bourn] "A Proposal for Addressing Stations of the
Personal Computing Network", by Doug Bourn, an
internal working paper of the PCNet Protocol
Committee, available by photocopy means only.
Local interface between FTP/MAIL-server and
mail-forwarding queue:
This is mostly up to the operators of the
computer.
[Crane] "PC Net Communiation Protocols", by Ron
Crane et ai, a working paper of the PCNet Protocol
Committee, in press (online file PROTO.PBl).
Local mail-forwarding program:
General
guidelines for forwarding of
messages are in [Deutsch], [Bourn], and [Maas]
(respectively,
MAIL/FTP
protocol,
worldwide-addressing, and final-delivery).
How
forwarding is actually accomplished is up to the
individual operator(s).
[Deutsch] "Mail Transfer and Forwarding", by Peter
Deutsch, a working paper of the PCNet Protocol
Committee, in press (online file SERPRO.TTY).
[Maas] "Final Delivery of Messages", by Robert
Maas, an internal working paper of the PeNet
Protocol Committee.
Local mail-creating/editing/receiving program{s):
When creating a message or initializing an
WEST COAST COMPUTER FAIRE
167
BOX 1579. PALO ALTO CA 94302
[Maas EXPERI] "Experiments Sub-Committee of
PeNet Committee - Status Report", by Robert
Maas, continually-updated file (online file EXPER.I).
[Maas FLO] "Flowcharts Showing Data and Control
Interfaces
between
Modules
in
PCNet
Protocol/Software", by Robert Maas, in press
(online file PROTO.FLO).
[Maas RAD41] "Explanation of Radix-41 in PCNet",
by Robert Maas, in press (online file RAD41.WRU).
[Maas WR2] "The Design of the Personal-Computer
Network (PCNET)",by Robert Maas, in press
(online file PROTO.WR2).
[Wilber] "A Design for a Network of Community
Information Exchanges", Mike Wilber, presented at
the first West Coast Computer 'Faire.
WEST COAST COMPUTER FAIRE
168
BOX 1579. PALO ALTO CA 94302
NICRO'S
Il~
THE NUSEUN-A REALIZABLE FAI~TASY
DISNEYLAND ON YOUR DOORSTEP?
JIM DUNION) THE AMERICAN MUSEUM OF ENERGY) P.O. Box 117) OAK RIDGE) TN
Abstract
conservation methods, the need to
educate the public as to the real
energy situation and what they can do
about it is more urgent than ever.
It is the feeling of the museum staff
that microcomputers can playa major
role in increasing the effectiveness
of this educational process.
Studies performed at this museum
and others indicate that a great deal
of care must be taken in planning
exhibits if they are to successfully
transfer meaningful information to a
visitor.
The average time spent at an
unattended exhibit varies between 30
seconds and several minutes.
Thus
exhibits cannot rely too heavily on
written text, but must incorporate
interesting graphics and audio-visual
presentations.
The current tendency
at science and technology centers is
to design interactive exhibits with
which v~sitors can participate. Most
exhibits currently manufactured employ
hard-wired circuitry and electromechanical devices, making them expensive to des~gn, implement and change.
Again, the feeling at AME is that
micro-computers can make
significant
impact on exhibit and display technology.
So, the AME decided to take the
bull by the horns and instigate a
program to develop and implement this
technology.
The American Museum of Energy in
Oak Ridge, Tennessee has recently begun
a program to introduce and develop micro
computer technology in a museum environment.
The museum has some data processing
requirements, which, although not very
elaborate, form certain pre-requisites
for additional computer activities.
Micro-computers are being utilized in museum exhibits in two ways.
Some are complete, stand-alone, terminal
oriented exhibits.
These exhibits
allow certain energy topics to be introduced to the public, as well as provide
a means for receiving direct feedback
as to public opinion.
Longer range
plans call for building micro-computers
directly into certain interactive
exhibits.
Beyond the direct utilization of
nicros in exhibits, the museum is an
~ctive resource for computer technology.
rhis is accomplished in several ways:
~y offering beginning classes in micro~omputer technology and programming, by
3ponsoring computer activity events at
the museum, and by actively soliciting
!nd promoting community participation
in museum activities and developmental
?rojects.
~oving
a
Micros into the Museum
Who's Involved
The American Museum of Energy in
)ak Ridge, Tennessee (AME), has recently initiated a program to introduce and
ievelop micro-computer technology in a
nuseum environment.
The need for such
! program ties in very closely with the
~urrent energy situation in the United
5tates.
The AME operates under a
~ontract from the :Department of Energy,
~nd has as one of it·s main functions
to increase public understanding of
science and technology, with particular emphasis upon energy issues. Since
the energy program that President Carter
announced contains a major shift in
emphasis away from developmental energy
programs towards fossil fuel usage and
. WEST COAST COMPUTER FAIRE
The primary motivating force
behind this move is Robert F. Content,
the chairman of the Museum Division of
Oak Ridge Associated Universities. He
is well acquainted with computer
technology, having served as asst. dire
of the Lawrence Hall of Science at
Berkeley.
During his tenure there, he
was responsible for developing the
Hall·s public access to computers
program which has proved to be extremely successful.
However, at the Lawrence Hall of
Science, as well as at most science
and technology centers, there is an
almost exclusive reliance on mini169
BOX 1579. PALO ALTO CA 94302
.4
computers.
It is now time to put micros
in the museum.
The first step in this project was
to acquire some computer equipment. The
museum already had two Wang 2200's, and
a PDP-8, but these are utilized for internal data processing and in a couple
of existing exhibits.
To get things
going, four SOL's from Processor Technology and two Silent 700 terminals from
Texas Instruments were purchased.
Next, a specialist in microcomputers
and personal computing, Jim Dunion, was
hired to head up this developing program.
He brought with him a Compucolor 8001
with a floppy disk.
At that point, the
museum faced a somewhat unusual situation,
equipment rich-people and software poor.
With that in mind, the watchword of our
program became - cooperative development.
In a nutshell, we hope to solicit help
from the local community in Oak Ridge and
Knoxville in developing microcomputer
technology in the museum.
We provide
the equipment, the educational training,
and the projects.
In turn, we hope to
receive time and software from interested
individuals.
Major Areas of the Program
We have broken our program down into
four main areas.
1. Social
2. Educational
3. Developmental
4. Communal
The social aspect of our program is
intended to generate interest in the
museum's computer activities.
~ little
s howma:n-shIp-~ £:Ey-o u
f. We have
started a series of computer activities
nights at the museum.
These sessions
are aimed towards familiarizing the general public with the capabilities and
benefits of personal computing.
Each
session is keyed around a central theme,
such as the recreational uses of computers
or computers and art.
A typical night
will consist of a movie about some aspect
of computers, a technical talk (in terms
that laymen can understand), several
systems running demonstration programs,
and refreshments.
Our educational program will proceed
in several discrete steps.
Initially we
are holding a two to three hour seminar
called, An Introduction to Personal
Computing.
After presenting this talk
several times, we will initiate two
short courses,
1. Understanding Personal
Computers
2. Beginning Programming in
Basic
wIi
WEST COAST COMPUTER F AIRE
170
After these classes have been
conducted a few times, we will then
begin offering more specialized topics
such as:
1. Game Playing with
Computers
2. Advanced Programming
Techniques
3. Special Projects
4. Computers for Kids
One of our goals for this part
of our program is to interest local
programmers and personal computing
enthusiasts in teaching these and
other courses.
Hopefully also, some
of the students that we train-can
then turn around and teach future
classes.
The developmental portion of
this program promises to be one of the
more interesting aspects of our
approach. We have identified four
major research areas of interest for
developing micro-computer technology
in the museum. We have begun acquiring
additional hardware to configure
systems in different work stations
for these projects. As local students,
hobbyists or just interested indivuals begin working with us, we will
coordinate special assignments in
these research areas to provide some
training and experience for the
workers, and of course, exhibits for
the museum.
The research areas are:
1. Verbal Information
Systems'
2. Color Graphic Display
Technology
3 • __~l:_e_ C1:_:r:9_DA~ ___~1JJ.l ~t;_tn
Boards
4. Automated Exhibit
Technology
Verbal Information Systems
The primary goal of this project
is to develop an energy information
system that anyone could walk up to
and ask certain questions about energy
technology or energy policy issues.
The catch is, we want the input to be
spoken language, and the output to be
synthesized speechr
clearly not a
trivial task. This project will involv
voice recoPlJ'1rtuili ti83 f()r e xpi':a:-ie'i use of
.;ers')r.al C(,):il)uti:l~ in cclle::p. 1~3rnin'-';
Jcti vi tics.
sti 11 this :)'ld::"jP·IIW!
inf":lr:l:ati'Jn shoulJ De useful.
fhe Ja:nain ()f i;ersnnnl C0!llputin';
:onsi oer n;or~ broadly thnq just S:1l, 11,
5inqle- 1Jser :nClchines.
I 'V'ish to incllhJa
5.Q;.ue . .expe rLance_sh'i th t i 'Tle:~h_~rt)(J
5YStGlnS i:1 orc..ier nnt to ov~rl,)0V: !)seflJl
ideas C'loout COl'1!::uni ties of l'3arners ana
)ccasions for profe~sional co~~unic~tin'
l'Iithin such cO!TI:fiunities.
If \'Ie li'ilit
jisc'.Jssion to small (inE'x~)ensivc.
)ortdble, in-:liviCluallJ ()wneri) r:1~c!li:les
~e are 'not takinj Adv~ntaJ3 of ~ec~~es
)f experience with person"l co:nputinQ
JsinJ costl}, fixed syste.!ls havinq the
Jm'l er (proce ss or sp ewj, :ne ;i)or y si ze ,
instruction set, Clnd complexity) that
~ill be char~cteristic of the small
naclline in a fei',' l'ears.
I am c()nvinced
that the best personal COi!lj,Jutinq is done
toJal on sinJle-user m~chines, but I
haven't :Jiven up entirely on times~1f:1rin:J
::3S i] means to providing truely personal
services.
In any case, I want to have
communication networks backing up
single-user systems in education.
The SUbstance of this oackgr()uni
statement is presented in five sections.
[he first is intended to ~rovide the
educator some indication ~f why the
personal com~utinq revolution is so
WEST COAST COMPUTER FAIRE
important to cor;I;... uter use (~nJ
infor:l;ation rvmrllin~]) in flinlier
Eviu Cd t i ()il.
1 he s Gcon.J 5e c t ion 5hou10
inforili t'1i~ cn,npl.Iter s;)8cL31ist or
e n r. f 1'.1 S i ~~) t i'-W 0 lJ t ~.: i ne! s 0 f '.) s e 5 i n 'I i 9 her
educ3tion.
J.·he thiro section 0ffers FI
1 i 5 t () f 'if na t I s <:) e to ben e e '1 e '1 t () !1Fd P ,
:ll·.')n) Sr)!,le n~eue:j chAn:~es in hi'jher
e.Jdc:1tinn.
fhe lpst t','/0 sections
rJrovi de a or i e f 5 tA te iflen t ''3bout tr18
fut,lre ,JIl ..... :3 list of references An·j
5U'} Jeste-J re"3din·.;s rm CO;:lp:lters in
:-1 i ':::(h'~r erlu C,1 t ion.
31,j.'iI r ICA:iC~ \Jr- PcifSO,L\L ccr.\PUTI,lJ
r::.h' C~)LL~Ji:: LL:/.i·UH :~G
:·.h:l'y' cOlle·;;es rnd universities rElve
-1c~rJire:i et'fe-ctive and ecn;1()'111c-'
t i ~n G- sin r in::) s y s t e :ns for '.1 s 8 1)./ fa C! 11 t y
3nd stU';ents in te.,chinc: :~nd le-1rninc:
activities. Ihese can Ge exp~nJed t~
acc!);:lod,te LH:! increasin'l ~rnounts 'if
, 15 e •
/\ 1 so. l. hey can ;) e
:{t e n ~j e rI t ()
~vm.Jle SOI!ie ilew :~inJs of IIses Sllcn "s
J r A ~ h i c 5 an Q i n f n rt~ at i 0 r. rat r i e val
systems. However, so~e kin~s ()f
cO:iJ~)utin...i vlill ()8 accomplishe'i ri1on~
econ0mically '1dt:l small ."Hl·i inexpensive
co~~uters for use by ~ne in~ivi~ual or
pro JJ c t ~ t a t i nG •
At t;' l:'~ Un i v e r sit f 0 1"
. UCilicY3n t!ie Center for :·lesenrch ('):)
Le3rrlin:1 ·::lnu i'e(J:::~linq i s ~~ xplorinl
various rol2s fnr tl"l8S9 !:licrO)r'1C9:;c::ors
an'-..l pers()nal C(,)~!ii'")uters . . .:i t:~lin colle:1e
le~rninJ Activities.
e
I\spects ()f LIe revolution
i:ne iinf,)acc of ~GrsonDl C()irlf')uters on
a cHJ C :.! t i 0 n i n ;1 en 9 r~ 1 rlrl r ins t r IJ c t i ') n i'l 1
activity in ~Articular will be
consider·:1iJl e.
l'href) aspects of tne
,JerS'ljl;j 1 C:)~;11:;ut8r rev':Jlut ion f;FJY [V; 1;..;
182
BOX 1579. PALO ALTO CA 94302
);~r5'J;l'1l
;"'rs()nr:11 CO:;i~):lLt~rs ':Ii Ll :)8 :!:;8'1 in
li.:r.)er nU:i!u(~rs t:v'w iilstnlcti')(l~.1
CO,n;Yltc!"'S iFwe Df'!(·m or 'fii 11 :.Je
.Jtt18C,\'i.38.
l'ne :L=1 jnr cn:li)'Jter-l)RS~"
instructiG:1 fncilitj' .:50 t;3r ~lfJS b8~:'1 t:F?
PLAr) CO:,l j HIC8r-r>;lsed I:lstruction ::)/stCr:1
~t tne :Jniversitj' of Illi'1':)is in w:licli
tn8 flu;'ljer at s.l:ilul ttJ:130US 'lsers ~r~
counted in ti1E~ h;1r',r-fn;;,js. (';ha::-l":es in trl~
:3Ys ce:n >'Ii 11 '2xpafl~ tt:e r~U,Ii)Gr of rIsers
to ti)OUSJtklS.
l'f18 !:1cst C0iilrl0n
t i :ne s h a r i n (J 5 j s t P. lI: sin [J S (; inc 0 11 e J (; s
to(lF.l/ ·'3r<2 alli 1 t ;)j' r;G::lett.-Pnc::;lru "Hlri
jiJi ted r~:·plip!;lGj)t. A 1 tl!~)'J',Jh t:18se :"Jre
3'Tlall s!ste:!~s (four 'Co (; . . ) 'lsers each),
the tot~l nUi:lDer of ::; Lnul t'3r,eo r.r.s users
3e~"/eJ '01 th0 r~\If1GreU5 ("If syste;'ls
thrrY/.]hout t:18 countr; is c()unteu in the
th0'l:3An".Js.,dtil cOiltinuin.·; s~lles :.'J
:ol18'~jes tnis n:J::lLer "'/i 11 0~Xp(1r!c t'l the
Lens ot thousnnd:3. At 18lst I ()() ti::;es
lOr? persocwl CO':lj"lt':)rs '.1ill be U52d i;1
3ducation activi~i8S. 1h2 fi~st line
seL !I;'" to 1;"10;,'·,;5 ~)ro~iuC,3 CO':I.,)uters '/,"15
iesijnej to ;Jut ,:)ut 2J,CJJ r;8r ;:;onth.
,:1 t i1 th r'; e c(') ~jlpcl 11 i e S 'VY"j eli V9 r in'!
nachines, th(~ re'Jlly 13rj:; (;.Jotential)
JrnJlcers h!lve not let '~:~l()!mc~j t:leir
Jr;>ducts.
I expect n(~l.lrl! rnlf Fl
:1i Ilion !lni t:') to ;)8 sale in ttle first
/e';3r, an'! in a fe';i yelrs tt'lE'? nrl:ilDer us~ j
in.::; J!J CJ t ion ~',' i 11 iJ 8 c 0 lJ n t f3 rl i q t :1":~
Billions.
,;ncn tile L;et1:-;u~as of e:yense
3W"i c8p:;~')ilit~/ 0f i) t'3cl',n01or~n' improve
:)y t'ilO or t:--tre corders 0f ij18(;ni tude the
~ f f (3C ts are "~ore tha n .jus t qu .J,n ti t:"! t i 'Ie.
!ersonql CO;;Ji)ute~-s 'IIi 11 tJrin:'; ~~)OUT,
lU·qlitotive ChmL}eS in EyhcFltion in the
:10:i18 em') j.:)8n-:aps in col181-3S.
rhe secon.": c!Klnlcteristic of
Jcrs:)nfll CO;:1)uters is respansiv'~ne';.5.
fhe ilf'lC;line is AS availF.l;.)l!;! An-i res;)oncis
35 quickly os 3 ~ersonAI ~nd portqjle
electric typewriter or televisinn.
Jut
TIore than that, it respcnJs effectively
to :nore complex sin'?cti ves, re~rri3:L1in(]
3 n (j ~ roc e s s Lv:; i n f () nn ~ t ion i n r1 p e!' son a 1
:Iay not possible wi th ~ stv'!rer(,)c8:;s~r ;~nd
dis~la/ screen opens up new
aD~ortunities for real-ti~e Animations
as well as uata anAlysis.
i-ne third aspect of the revolutinn I
~vant to empn.3size is tJersol1rll cnntrol.
The Oi'iner of a iJersonn 1 c~:nputer
ietermines tne '.1ses of (me or i;lOre
;~UC"l
WEST COAST COMPUTER FAIRE
i;;)C,li[)~~",
.s:l:l):~S
'1:i':
c.~leir
'cIlnr'1ct3r [sties tn;),~:r.soild rv?e"!s :ii);";
,)re L~r~3nc:~s.
Pt'TiJ:.3f)S thei1r'lst ilJ:YirtEmt
~·lS~.;~Jct ;)1.: C(~1 i I) 2. C -1 r r;l i t "L) 0 ~ 1 t •
!):=] Ll t i t :)ll r..; 1 ~;.
r: n ,1 1 ~ v ,:~ i t
:15 ~3 }'?t, ,:lS \':ell qs r~i"r:i';n1::1 it
'3cc0rdin:-.; t::-) p(~rs()nFll ;)referenci~s.
ht;dle r ; ci1a:-:lcteristics of ;Jer:3"'r1"lJ.
C:J.ll:)ilt'3r:) an" tLc;jr C'l'~L~:lt ''!5~Slr2
,....ec·~ivi:l·: c(1r8ful atteiltio:l ~)'! (;!:Ll
~t"1ft -It'tne Uni'lsrsity o{ :.:ic;·)ic;Tl.
dIes·:} n0tes !lttc;:lf~,t ()~tlv t:; list.:'l fe"'J
cha!,'1ctGr isti cs ;'1nd 1 i;~li tltio:'l::i.
Li ::li Lilt in;'b
1:1 l')l! LH; lir::it:.!tions of pers'/tnl
CQ,::;)ilt.ers r:I,"!'! !UV8 orJt,.."eiFl~...:J tneir
C) :J S 2r v '2 '-/
c:: -:11/ ;'1 n t ~ ! E:' sf:) r 1.s (; ',v i t it i n
colL~~le leornirL; ~lctiviti'3s.
;lowever,
1)/:; tJriihl:='i Liore reli."lblp. ,'=lnd 7)O','/,:;r-ful
IIlo,Jels :)T trj(JS~ inexpe;lsiv<~ devi.c8S.
Ir1'1e8 c.! , :,':8 c."l:i 8~{;;'2C'C tLe crty~bilities
to :1 t 1 ,:~ Fl S t '. j 0 I JtJ 1 e en Ch Y G:,] r ,'1 i t h ry J t il n
i~lCrr;2'!5C ir. ,Jrr):-1!lction C0StS for at
I
1 e .~J s t
t ne nE;: x t
bi en t y
je a -r s •
a .:Ja.l0r pr;)~)lf;;r:
SystP.i.1S to '';'It;P..
.j~)',i ~liat. i_':ersor1:'11 C01:~):It3rs arc.? lJei~l)
:11<3.':;:3 pr,)~~uc'~·'i. Lw ~ntecr'~ ce(l S/St~iJS
:)err8rli! .. 1~C~l in()r:~ reli"lbl/ t~v~n th~ir
~) r e· j e c e S s 0 r s 'II 1'1 i c i l ',-j e r"J U :3 U ~ 11 'I t) {1i 1 t ~) '/
;')()iJt)iests fr",)!fl kits.
:in't;8v8r. th~
cons'c.ructiofl of )Crir)flernls for
;Jri:'ltin':J, st()r~:;2 ane the li~e dOf~S not
,tle;3S:Jre U~. . t) tile S,"li:iG st·'HlciFlr~j of
reiLlbili'tj. 'll1I,~ i:lflj:1r pr:Jr)le:T: frtcer! ()','
i;,,)Artufactur8rs of i,:,eripilerqls is a :'18e~;
to :nin J out a v(~ry l()'tl-c:)st Jf;vicc;.
sO:Jlethin; cOi1i)<9r'l[:ile wi tn the 10'\'! Cl)st
af tna :licroco~nputer5 the'lselvAs.
{!Ie
electrO:1eCiltl;)ici'.ll 'Jcvicos for )rin'C,iw).
'1 r ::1'11 i n ~;. 0 r :3 t ('I r i n q i n for :\'1 t i on 0 n
;naqn8 tic t.a pe C('HI not be !:)()th c heA J and
rei i'·lble.
i!o':lev,~r, the pr0spects nre
l0('vi for reliFl,ble ~')eripherqls llsin') ne:",
tecnnicFll u8'1ela;.n,ents w()ich wi II
eli,:linate encirely the novinq :..'l]rts!
S pee i 0 f ,) roc e ~ 5 i n'~ is.]
,
consiJer;Jtio'l.
:·la~)pilj. ,il()St
instructional n~1plic3ti()n'3 invnlv8
sLn)le ;Jro.JFlr.JS an(j tne ooservej
res)onSG fro,n the personAl co:nputer is
nor. ·jistin~;uisheole frol:r ti12t nf A
tidJ'3Silflrin~;: 5fsteli;.
Hm':ever, S0;:1e
nppli cations re'TJire :nanj cOfil9utations
( e J. for r e (.1: 1c i rq d At,:] 0 ran a I y z in,..,
183
,{eli'HJili;~/
[):lS
(;er~n
'Ii r.:) ,;,nn/nicroco;:;pte r
BOX 1579, PALO ALTO CA 94302
text), ~I).J til~ rlelnys 'ilti.f iust :)e t()O
e :·1 Co f () r .q .:.; t u den t i n t € ~ 1 Ct i n~.; attn e
510'.'/ s:)(!eUs of FJn ine:->:;)ensi vc, per:?;()[)rll
!~1~CL.r0'1icw,'sic
...J r
c 0,11 :')1 t to) r •
J
P:~rsoilFll C:1i'i~)'Jt~~rs 'In :nt no''''
:..JroviGe int~xpensive Recess to IBr.18
dFlt'l
,J8SC'j, iiih.J 'JiYintinq the j·lt~ :JAS8 is rln
ex~)eiisive operation if every user ;Y'IS an
i nd i v i -.:lUi] 1 CJ~);'.
filO n? f()re. t I iG f.lse of
i)ers~nr:ll COiil)t1ters in rc:c:1r~s flAnilinl,
dat~ re;.JlJctinri. nn(.1 stlare:i file~ is not
:JcivisAole Hitn 1'1-1/ tecnnolo(,)y. Tilis
c O!l 1u c na f1:~; e lJ y t rI e c~ :yl 0 fly I (j •
nO"!1 'ail er •
':~);;!pnc.ibi1i t/ a:i10i'!'j ({i ffep;rlt
I)Gr5C)n~1 C(YiL.iuters i!f;fOiOSes so:ne !i'1its
on ~x c 11<1;1;)8 rlnd.lrl r kG t i llJ ;, f prnJra ::lS •
Actin 11\1 ti)i3 li r :]j.tAti0n is no ~:Jor~
seV'2!" e tlVHI fnr 5 hari n·] ;"Jr;,nra:ns a:f1on'l
·Ji f fe re" t CO:ilpute rs !:lAic 0 I the s::uw
ven·iJr.
.)O!:i(~ ()f the rc~co:n:nef)'i"ltions
'~iV'3il in the thin.. sectirHl nf this ~:F~per
,dll helt) re.:lOve this li.;litpti r m.
?r~ nbaLi 1 y triP. 5 t .lnCl'~r c::; thA t e:ne r:e
';/ ill d e ~) e ryi 'J n c e r t n i rl f e ~ t u r e 5 0 f the
te c nnol OJ:;":
i ~lex pe ns i ve. reA ·j-on 1/
stor::',Je; prnces~ars .,.,hich are less
cxpellsive tiYHI tole i:IC'iiU;Il' af curricululil
stor:j;Je; FInd nUiJio-vistJAl media ',...,nich
inCorf-JOrAte ,Ji()itAI l()~Jic anJ stor,,:-.:e.
Ap~r()acnes
·d thin
to
Ap~1ications
c'Jrren~
li,lli tetions of
speed, stora·Je • .:'Inri
cOlnpc'l ti oi 1 i t/ Ct?L'l s te ff .:'31 re<1~y fino
illBn/ af);")l ic~tions for ~er5·'m~1 COill;:HJters
·{rt~lni'Ulel1(H vef'~sltyof' 'H chiq;:Jn t ada;.
;\ act) i n e s be c :1111 in,; a v Fl i 1(~b 1 c i nth e fir s t
lIa 1 f 0 f I~; I d VI i II i'1A k e va IlJ p. b 1e
aajitions to the resources for leA:nin~".l.
30me :1I8chine5 ac~ui rer! by inui vidun 1
.
fac:Jl ty ne,naers Are bein:J lJseri in
c1,gc;5rOO!1i ue.i)onstrations.
At leAst
three clJrriculura aevelor;ment projects
are usinq personl1 computers in
connection with l"boratories
(preparation for requlAr lab sessions,
information processin] ai~s in carrjin~
out the #ork. anJ dRta oenerators for
Simulated laboratory activities).
Libr=iries are considerinq !Jse of
,~icrocompters in providin, services on
campus.
MRny incJi vidl1al stuuents nAVe
purcnased machines, anJ s~me of these
are oein0 use~ far word proce~sinq
(preiJar::ltion of papers), cQmput.:,ti0rl,
"3nd information orqflniz[ltion Anrf
retrieval. '[he School of ~usic is usinry
a microcoiflputer systeln for music
anal/sis Clnd synthesis, anJ some
reli·~bility.
WEST COAST COMPUTER FAIRE
cn'iliJnsi-.:ion.
t :\uout the future of
CO:il):,ltin:j in' erillc?tion ani society :nay
) e 1 ,) C () II e c; e ten c f 1e r s tel k C i1 use f u 1
~ersi,;ective on C~H'jputer use L)/ stu'ients
t () '-1:1 ,.. •
1 his top i c rto she e [) ',.. r itt e il 0 n
.:) t h:t1C.!t[\;
i "~i 1,1 li.3 (, j;Jst tr1ree
35,J;:~cts i believ~ to ~)e very sLmiticEmt
fo~ e uu Cl tor.3 COilS i ue r in; the ~j en'3n31
to;.)ic of co:nputers in erlucation:
CO:1)IJter lit·3ri1c/. hone entertainm8~lt,
and CC:ilqi.Jter-~)P!se(-I ViJc0.jisc.3.
\ ueni;;;n::l liter'lc\' :lbolJt C()!;I;)ut(~rs
is like!! to 0e 35 wi0espre'l~ as
k n .~ ..;l e d .y? 0 f-i r i v i n q ~l C r-p'" (') r s k:, ill s f 0 t
use (') f :"i 1 i;:) n~ r y •
A1 nHl ,j :I e 1 e c t r () i1 i c
cn 1 C'..! Ii) tors n"ve ceCO:!I8 s') ine XDens i ve
3m str'1iCJhttor"I:~rrl tn use UV1t' ne'3rly
:::tn/n[le Clrl 'lcquire a convenient device
co C""l rr'l in) i)Ocket, purse or 'ile~r on
·,l i CA te
tlrc,)·_Je ·ievic9s, anJ in bo"rd qames whic:l
pIa; ~ fRir ;ame of chess or checkers or
oth311o or b.']cb~aii:mon. As
1sneral-purpose computers become
i nC0rpr)rJ ted in :l(Hne entert.ginlilent
centc~rs. the cr9p~bilities tor
siii"JUlation, uorlellinc:: and records
i)CH)dlin) eX;J::lnd r?pialj'.
An il~lportnnt
pArt of the nome market wi 11 be
sel f-education.
J\;~any c0:n)"nies wi 11 be
sellinq learninq PPlCk09·)es...,rhich include
cnrn;)lJter pro,:-;rBms to nJr. 0n the home
co::quter as well as sU~Fle'nent(]ry
'flat·9ria13 and :;;uidebr:ol"ever. grA:)f1ics for many i1l0re people and
in arder to solve some of the technical
;.)ro jects •. Video techniques, SUCli ,jS thr:
problems of retrievinq thG bi ts of
microco,nr)l1ter-based vi:ieodisc ~-::'layer,
informfltion ~'/hich ;oflke up ;~ video
are enhnncin~ 9ra~hics end low-cost
storage for instructirmal computinq
sign81, the researchers t\Jrned to
(Bark, Luehr:!iann pnr{ ::)chnGider, in
certain oigital techniques Which are of
press). lile economic nnd social
considerable interest to com~uter
pressures on edllcational insti tuti0r1s
JesiJners. It appears now that
nre forcinG :iecisions by stAte and
includinJ a microprocessor in the
feoer;'ll aqencies, and by ineHvidual
videodisc player will make it more
institutions, to su~~ort ~Jditional use
~ractical, reliable, and economical.
of te chnoloqy.
Computer control of the videodisc
player provi~es ~n exciting resource for
I~1 e xp~;r1s i ve ccmmun i CA t i ens have Deen
educational !Jse of micrncomputers. A
pro~iserl ViR s~tellites and optical
small archive of movie clips (30 minutes fibre telephone lines. Very low cost
total) or a very large nrchive of color
and ver; lar0e memories flre proposed for
still frames (54.000) or any combinfltion educational time sharinc! sjstems. i~Jhen
can oe searcned 3nri controlled by a
these dave 1 OJ') ments are rea liz ed. t:1e
personal co~puter. This means one can
cost of centralized erjucfltional
retrieve, rlisplaj at regular speed, slow comp'.Jtinc) systems wi 11 rirop
motion or still frame, an1 move to
si0nificantl/. (his cost improve~ent
anotner section of the file based on
vd 11 help restore S0me of the education
instructions from the push-button
market for tii!leshBring taken over by
controls and a history of interaction
per son., 1 co ill;.J ute r s, tHJ tal 5 0 i t VI i 11
with the particular learner.
increase the use of personal cornputers
furthermore one can set up the personal
through low-cost support neb/orks.
computer to interpret the 54,000 frames
COflHaercial incentives :3re eriler7in:)
of video as nearly a trillion bits of
in toe U.S., now that packAoinq is
di9i tal ;nemory. This reiuces
'.
necoiainq more prilctical An"; tne
considerabll the present restrictions on educi::ltional 'oarket is hec0r!ling
microcomputers for hanJlin·'; large Jata
interlinkeu with other co;nputer uses.
oas as.
l-or exail,:.>le, recreational uses of
Tnese future prospects are quite
personal or nome computers inclurle some
exciting and prooably will bring
instruction for the very young learner.
significant 3nd desired benefits to
And professional uses by tne fHiul t
higher education and to society. A
practitioner include sorrle neVi
summnry of trendS concludes this
opportuni ties for learnin'J. New m:9rket~
section.
for traininq And continuinq eJucation
have focusea attention on the need for
frenus in computi n9. corr.muni cation ~'md
improved instructional desiqn.
the locus of education
People who work on computers in
A number of changes in the
education will have to pal attention to
tecl1nology of COlnputi n9 an:i
the dramatic development of personal
cOr:lmunications, and changes in education computing. Alrea~y consiJerable
and SOCiety, have increased profeSSional education aoes take place in the home,
interest in computers in learning and
3n~ ~ore Doney is spent on home
teaChing. ~our points are listed here:
education materials and correspondence
The 1010·/ cost of microcomputers meri t
in toe u.s. than on institutionAlized
rethinking uses of technology in
education directly. I am sure fl great
education. Inexpensive communications
deal of computer use in education and
may shift the role of centralized
train inol in the next decade ·. . i 11 be
educational computing. Incentives will
through ine xpensi ve but rather capable
improve for commercial production of
machines purchaseu for personal use in
~at~rials for training ani continuing
the home and office.
e uuca ti on. dome compllt inq. combinerl
All tnese current aevelopments can
with other technology, will support a
not oe covered in the pAges of this
trehJ toward more education in the home. article or in the corresponding session
The low cost and easy use of
at tile faire. Ho\."ever, this article car
microcomputers are providinq access to
be used toyether with others in the
WEST COAST COMPUTER FAIRE
185
BOX 1579. PALO ALTO CA 94302
Pr()c':;e~jin'~5 .'lnd trle slvjC;ested reaJinqs
to e xpaild your vi ew of ini crocomputers
and uses of ~)ersonal computinq in niqher
eJucAti()n an~ to estAolisn means tn keeo
in touch with a diverse and rapidly
c ha rq i Wl fie 1 0 •
co:n:Ylter-s in e'itlcntion (1r~ essential to
s u c c '.; s s () f ~ ll~ \v pro ~ r c9 ;nsin pub 1 i c
.s c t 1 ')0 Is.
:)8rSIJ{Fll COl.li~!Jtin:..: in :10nes ShC)';iS
the Jre.::ltest jJrospect for ir:lpact 011
learninl i'W0Ut tne COl:lpllter.
dy the enc
of Iyjd, personAl computers ~ill be in
USG in nearly hnlt a milli:1n homes F-lnrl
off ice s •
'·1 an j () f the sed e vic e s miJ V t) e
lJ s e (j 0 n 1 j l"i i 1:. h pac ka 9 e 'i c1j P 1 i c C1 t i 0r1
prcqrfluc;, ns arc the pre~)ro(;rammeri videe::
:Jar:1es; :)1.1"(, ~dl t:le eq'Jirment wi 11 be
pro:Jr~nli;)8ble aC1:..J inclu'ie canvenient
local storrqe for savinq !lser-uesinneri
Le"3rn in:) abou t trle co,nputer
Learninq about the COi;'1;.Juter is the
most rapiuly grmvinr: Flre'J of c()mputer
8ssiste~ leArnin~.
It's use in CAL
fol10ws:~lJi te naturAlly from the
i ntroollc t ion 0 f compu te rs into mnny
jJarts of soci ety ilnrl into Ijomes
Lea rn in ~ throuqn the COI!1,Jllter
(Jirectly.
As experience ','Ii th computers
In the PC1St, the core ()f CAL
t)eCO;i18S commonplace for a clF.!sS of
nctivity \'/AS drill, prFlctice, dinqrl0stic
leFlrners, eiucators can IJse the
testin7. And question anJ "~nswer
COiflpllter and its procedures as metaphors tutDria Is.
.lOLJ~j these c')ntinue t') be
for nther processes and constructs.
the i:ltljor Lln'les of learni r l:1 in
C:rlucation about computers provides tools operltional u.s. sys1:.ems (e.q., th'3
useful in otner leArninc1.
fhe folU)'.... in1 PLAl.·') S/ste:1I of the University ()f
pay";;l';ratJ{)S cornment on c(xnp!lter literncy. IllinoiS nn'i Control Jnt"3 Corporatir'ln,
iJrofessional development, in-service
Co:niJuter Curriculum Corporation systems.
trainin,j of educators, nn·i personal
T'ie'l'/lett-l>ack;,)pi F.ln:i ui~Jit~l t'luipment
comp:JtinC).
ti:nesnclrin<) systeliis, and tne Univnc
Computer 1 i teracy for a 11 students
system). t;;ven tilOuqi) these !n()rles ..vi 11
is established nov: in so:ne colleqes.
oe 0verSI)adoller! for a timB by Fl dr31ililtic
Co:nputer projrai!llninq may oe reqtJireri (or Jro;'/th of learninc; aiJout anr! lef!rnin~)
assu:lled and offered only as a non-credit with tile COldrJuter, tney ~"ill re:nain
course) so computinq s~ills can be
strolHJ instr=nces of COI!lputer
ass'J',1ed in ;nathe:natics, sciences,
application, refl'iily acce;Jted because af
engineerinq anu SO[:1e other professions.
their f~lflil iari tl, moderate cost, and
.Fhe-e xt entn.[···G-0HlP uter ·It t er A CY .
. . . . ...... .COQJl.e n i en ce 0 f._tnt nL..5_Ys t e in s.
thro ' lgil0ut tne U.~~. is still very 1010-',
out inex~ensive computinl ~evices ~nrl
Lenrllinq ~"i til the COrflt)lJter
the ~)oPlJlarity rd the Bctivity witn
lhe computer as an aill to lenrninq,
cHW a n .9 rl j u n c t t () 0 1 f () r t :1e lea rn e r, i s
students will increBse the percenta~e
dra,ll:=l ti ca 11 y in the ne xt few yenrs.
taking on new riinensions now that
Professional development re0ar:iing
com;JutinJ is inexpensive And portable.
computer use is common for many ~rp.~s
riani calc~lators used in the lAhor~tory,
~lrea~y; accountants, bankers, engineers
cIa 5S room, A~ld stuuy ha 11 have take n on
anJ others whose professianal activities the characteristics of co;nputers l
jepend on aucor.Jatic computation and
stored progr91:lS, program libraries,
inforrnation rJrocessinq are refreshing
peripher~l storage, printers, Grapnics,
skills and ootainine new ones.
etc.
A.s these least expensive
Additional professions fire findinl
co:n;.:ll.ltin'] devices take on:jeneral
computer assistance indispensible, and
characteristics, the general-purpose
information is offerei through special
computers are decre~sinq in price to
courses ,"3nd insti tutes for nrchi tecture. match the calculators. Practical uses
law, rne~iicine, an:i others.
include Simulation, gaming, problem
In-service training of teachers is
solving, and creative activities.
essential if public education is to
Simulation and gamin~ h~ve always
catch up wi tt) the rapid Change of
neen popular \vitn teachers and stUdents.
technology.
University institutes offer .'.jo w the see n t e r t a i n i n <] B Ct i vi tie s are
appearing in academic~lly respect~ble
skills traininy during tl1e school year
textoooks anu laboratory :nateri~ls.
and in the summer. Sound information
and constructive atti tuues re:~ardinq
?roblem solving Activities once
WEST COAST COMPUTER FAIRE
186
BOX 1579. PALO ALTO CA 94302
i"he fe,'; inst:lflCeS ·:;i ven here represent
only a s,;lc·111 pFlrt of all the computer
,"lir:le-J learnin9 c'Jrriculu!TI :nflterials.
Studen ts in Q i:lnth8'npti cs COllrS9
nave us e~J a s i ~npl e CO!.lput3r 1 :mqflUJC
(U)IJ()) to '~ienerate a limthe;!1Fltic:")l s/steT..
Qui l'iin'1 fro::1 primi ti ve elements.
1:1 a laboratory course in chemistry.
preparatil')n for use of titrCltion
equ iiJm-en tis Fl iria u by concep tUB I
exp.er iencep::rovj;':J:e:() e-conOij1 i cally to
inciiviuufll stuuents who IJS,~ tt19 qr"iJhic
"nim,tion ca;)C1bilities of the eLA[U
System befor~ they go into the
Iflb0ratory.
A Simulated laboratory provides
research eXDerience for un::!erqraduate
stujents in' fJsycnoloc;y. i"ne COi!1puter is
userl. as a dnta Clenerator. '{he value of
the simulation de~ends on the activity
of 3 classro0m research c0:1muni ty and
the effectiveness of the teacher as a
consu 1 tan t.
In the flrts ana hU/!1ani ties computin('!
serves as a ine<.:Hum of co;n'nunicfltion as
well as 8 tool for creative work as part
of learning. Perhaps the most
L. ea rn in':) sUP:J0rt sys tems
interesting instructi0nal use in
Computer ;nancqed learnino is .
humanities tOday is as an aid for
expanaing within-the U.S •• albeit'
scholarly 'fJork by the stu'ient. Gr;~du8tf
=lui etl y a:ad often l"li thOllt Bny note of
stu1ents of literature have use1
the computer role. A significant
preprogramme~ ap~lications packages in
percenta;]e of sch001s are using co:nputer exercises to determine authorship or
systems to aid in clBssroom manAqement.
analyze style. Undergraduate students
Information management qoes beyond
e x.p lore rul es of language throuqh
instructional management to help the
COifii")U ter .]eneration of p09 rns 30d
stu-ient as well as the instructor with
stories.
information needs. Guirlance systems
In InnquaJe learninq. Aid in
have becolJe quite popular. includinq
0ractice of skills is the dominant
'computer use. ContrAry t~ the idery th8t
3IGI of ~ducational Testina Service.
the cost of development needs to be
[he automatic generatioA of learning
3nd testinq 'llaterials by computer will
di s tr ibut ed over many s tuJents, ti-'lO
soon becoMe a comnon activity among
professors at St·':lnford Universi ty :)re
computer aids. Some tools are already
programming computer assistance for a
~uite popular, espeCially computer
dozen speciBlized courses which have
3ssisted test generation (Lippey, 19/4). such low attendance that the departr~ent
of Slavic languages can not afford to
Some pOinters to current work in the
staff them. With this assistance
United States have been provided within
(tutoring, drills, and practice
the text. The next section provides a
exercises) the professors plan to !1Bn'ilE
sample of applications in various areas
a larger nu~oer of students and in a
of instruction.
greater variety of courses than
previously possible.
Preparation for profeSSional work
Areas of instruction
acco;iloaates as much computer use in
rhe broad range of computer uses can
trainin:) and education (1S anY~'ihere. FOl
be Shown by selecting S0me of the less
likely uses in six areas of instruction: example, management games are very
popular in business education and
math, SCiences, social SCiences, arts
and humanities, languages and
natural resources; simulated ca~es are
used in law 3nd medicine; ani deSign
communications, and the prof~ssions.
requi red kno','{ ledJe of pro,)rAmmi ny,
Jnless cleverly imberlderl in a tutorial
sequence which prompted f:Jr the
~arameters and equations or whatever was
"'leeded. l'JoW problem-oriented lanquaqes.
3nd familiarity with keypress sequences
::>n progrBmrnable calculators, put problem
501 vi ng in reach of any learner
experiencea in the discipline. Students
can be as ked. to turn to a probl em
sQlving facility 011 the CAL syste:n(or a
calculator at hand) to carry out some
:o~putation or moaelling activity.
Creative activities in educatia~
3re aided by computers very
"'licely, at least in experimental
systems. Perhaps the most impressive
::>verall is the first E.l9pr0ximation to
the .Iaynabook il aeveloped by Alan .(,/ Bnr!
:1i s co 11 eagues (I Y If). '( ounq chi Idren
~re able to sketch, animate. compose
TIusic, arranJe words in poetic forms,
3nd carryon many other creAtive
3ctivities usually reserve1 for
specialized and Bdvancerl users of
compo ters.
WEST COAST COMPUTER FAIRE
187
BOX 1579, PALO ALTO CA 94302
e xerc is es o8iJenrli nq on c O::1)U t'3 r
assistance are cor~imOIl in enairH~eriiL; aryl
archi tecture.
One of th3 :nost
innovative Applications is co:orJuter
assistance f()r advance"; se:ninf)rs \"/i"lich
brin] together graduate stu0ents fro:n
ii fferent (Jepartrnents for sturiy of n
proolern area (e.g., enerYj conservntion.
rec;innal tll.,'miwJ. or tc:'chnolo·.JY
a s.s essllen.t). . ea c i.1 po rt~ c i ~)Ant; use?
comp'lt~r aS$~stance for or:;Janizin'l
'1 hfortlla tibl1 {tom dive·tse t-.lhd sb:neti :ne5
unf3iTIiliar Areas, conmunic·3tinq with
others in the seminar bct:veen
face-to-face ~eetin9s. And draftinl
working papers for review by the gr(")up.
fhe or9c:mizers of the se;ilinar keep the
Jroup focusc.l on the problem wi tho,J t
minLni zing 1:nportant bF.lcJc']rounc'
material, and calIon reS0urce oeo . :.>1e
v/ho :n i ght no t otherwi se hA ve t i ;:1e 'tn
particip8te excc9t for the convenience
offered by computer-assisteri
con fe re nc i ny. 'i'hi s enabl e s tt1em t·"
respond at any time of day, any day of
the week, anJ from Any user terminAl
whi C:l can co·.... nect to the computer r>r
net~ork hAndling the conference.
Jeeis and issues
further develo(jment nf computer
assisted learning in the U.S. will
interact with a number of ~1ee""s an)
-1 ssue'sri:dAfed b)the··techrf6Tb~.)j as ~"eTl
as to eiucationAl applications. 'Llree
SUCl1 issues are listed Lere.
Ai croelectroni cs technoloGY ~ :,Ji th
rapitJly decreasing costs 'Alhich degend on
"]re~tll exp8nde,j uS3ge, is forcinq
producers to find new markets for
co~puters and related technology in
educntion as well as throlJ=]holJt socinty.
Aot)ropriate uses in education require
plannin:1 for and manfll,JinJ the desiqn of
the technolo:Jical aiGs end their
introduction into e~ucAti0nal activities
and institutions. Person31 computing is
bein~1 marketed stronC)ly in the lJ.S. and
will be t8ken tip in the next few yeArs
by :ni1ny people for entert:"l inmerl t and
small business purposes. [he equii'-:inent
in which industry is investin] lar]e
sums of inoney for the personal computer
market will not serve educational
purposes well without attention to
consiuerations of design specifically
for educational purpnses.
WEST COAST COMPUTER FAIRE
,1i,;ner Gu'JcAtir:·n :ZlCf'!S Seri0!lS
Jroblef!1S of finc:ncinc;. Access,
'credibility, ana the-li'lution
encour8Jeu bf rnpiri c)rOv-'tll of techI101o,i;
nee jed to s U.-l P () r t too a y , s II i n form A t ion
society."
~()mpl.lter liter.":lcy c~n ~~.hJin
in elementar; SCil0()1. and S0oner.
dm'le v er, De OHJS e n f the nlp id
introduction of the techn010qy in ;'nny
areas, computer literacy trainin':J ,nust
De c8rriea on in colleGes, profeSSional
SChools, certification ~rn~rams,
on-the- job tr;:d ni nq. con:mlln it)'
3ducation, anu f)(lblic :neoi:'l reAchilh] thE
nom es.
Of course, other prr)blel1s and i SSU8S
Irlay De at le,-lst AS import.,nt as the
three listed above. l-!0v;ever, this
sUlilinary statement does eXi)reSs th~
jj'ature of ·thg-----current---3itf:JR-ti ofT--Tor
computer assisted learnin':] in hiqh~;r
educ~ ti on.
j
Areas for possible action
One major need At the natiol)::Jl Ip.vel
is for coor-iinatinn of pl;:l'min ,.? anJ
funJinq. i,lan! i,TlportFlnt ;natters, 8.'.1.,
:.J oa 1s, s t n n r/ (':1 r d s • a nrl c r e rl i b iii t y, CAn
De .,ccor:1plisherl only throuqh n8tional
discussion and action.
fhe fundineJ
neceSSAry to meet the needs in thi~ Are;
can no lonoer be handleri oiecerneal
through :nany di fferent ?q~ncies. The
cOl1lini tment to excellence in education
and to effective llse of technology must
co:ne fro,n the top.
Infor.nF!tion systems
in eJuc8tion and society cut across man~
arensl rese~rch. aevelopment,
hAndi capped, gi fted, elementary .. and
professional.
Useful information and
.Joo. . f advice on these matters hilS been
accumulating for over 15 yeArs in tne
form of recoinmenJations af national
188
BOX 1579, PALO ALTO CA 94302
c-ommissions (National AcaJemy of
3ciences, 1966, PSAC. ly67, Corn;nission on
Instructional Technology, 1970, Carne(]ie
:omnlssion, 1972), professional
Jrganizations (e.g., Cm,1S, !':i72) anrl'
review projects (Zinn, 19/0, An8stasio
3na ~organ, 1912, HAmolen, IY72, Levien,
1972, MosmAnn, 1970).
A new commission
Jr conference CRn begin with the
reco;nmendations of-earlier efforts,
r~vi~w the pr-es:ent $tat-e- a f t~chnbl().{)y
3nd institutions, and tAke thoughtful
3ction. Action is neceSSAry now in
response to the pressures and problems;
furthermore, benefits are ~ore easily
justified today in light of the
jranatically improved economics for
3pplications of ~icroelectronics anrl'
telecommunications.
DeSignated centers with goorl support
could provide sites of excellent
training, development anu research
(Carnegie Co;]mission, 1912). Potential
Jsers urgently need the most Ctlrrent
information, the best training, and an
Jptimal environment for development
3ctivity. Hesidencies woulrl provide an
Jpportunity for individuals to (jet "way
from re~ular responsibilities to
initiate new work. Hesearch
Jpportunities would be increased
3ignificantly by bringing together
creative individuals with necessarf
resources and a variety of learning
environments. Large-scale exploration
)f technological opportunities and bAsic
concepts of learning would become
~ractical.
Alternative CAL systems and
3pproaches to curriculum could be
compa red VI i ttli n the s,qrne envi rrmmen t.
Immediate action to give educational
Jses for computers an identity rlifferent
from data processing woul~ in some
Jrganizations facilitate obtaining
equipment necessary for meeting
institutional goals at lesser costs.
Instances include public erlucation as
Nell as military traininq, and stAte and
local support as well as federal.
Immediate action to recoqnize
computing anJ information processinq as
3 significant part of basic education
Nould set in motion the process of
curricular revision necessary to the
information age. In a few years all
stUdents in public schools would beco~e
familiar with computers, programming as
~ell as applications, by about the
eighth year of school. [he college
~eacher could then assume long
" WEST COAST COMPUTER FAIRE
familiarity "'itl"! computArs for ent2rin'}
students.
Curriculum oevelopiJent requires
speciAl attention, since computer use in
education is a nr;ll\' inrlfJstry. as yet
!lntesterl and lacin,--J.
2. ;.> 6- I Q {.
f"'
Linn, i(arl L. COiiliuter A;,sisted
Le,:lrnin:;] in trle Jnited St"ltes.
In <1
special issue of the ;3ritish Journ3l on
Pr:)o::-)raminin9 nnd ~aucation"l TechnoloGY,
in press for sprinq Id.
192
BOX 1579. PALO ALTO CA 94302
GETTING IT RIGHT:
NEW ROLES FOR COMPUTERS IN EDUCATION
Thomas A. Dwyer
University of Pittsburgh
Pittsburgh, PA 15260
you to your destination, but you 111
still be a stranger to the territory.
The ingredients for a true adventure
were missing.
Introduction
Computers are powerful tools.
Really good ideas on how to use
them are much scarcer than one
would imagine, however. This is
partly because (up to now) computers have been very expensive,
and controlled by institutions that
couldn1t afford to depart very far
from traditional ways of doing
things. In education this has
mean_t tryi ng to use computers
mostly as IIteachers ll (CAl). When
all the costs of pursuing this
unimaginative idea are totalled up,
and the results are compared to what
what was promised, the scorecard
isn1t a very good one.
Consider now another option.
Suppose that you rent a car, and
drive yourself. The simple act of
moving into the driver's seat will
have a profound effect upon the hundreds of interactions about to take
place as you move into the role of
problem-solver, becoming an adventuresome and necessarily creative
learner. This option comes at a
price, of course. There will be the
need to find and negotiate for a car,
ask directions, study a map, choose
between alternatives. There are also
likely to be mistakes -- lIinefficiencies" by some standards. Landmarks missed, or instructions misunderstood will mean backtracking
and revised planning. Questions will
have to be asked, time will be lost.
And the cost of having exclusive use
of a car will be higher. But in the
end, the person who goes "sololl will
have learned things about getting
from A to B that are accessible in no
other way.
Is there a better way? If so,
what is it, why will it be better,
and is there assurance that this
time we can IIget it rightll? This
paper argues that the answers are
to be found in personal computers,
and that the right way to use them
is staring us in the face. To see
why, let1s examine a remarkable
learning experience many readers
have had.
The Secret Unveiled
The paradox we see from this illustration is this: the guidance of
others may very well inhibit the best
kinds of human learning. The conclusion it suggests is that people
have far more instrinsic talent for
the business of learning than they
have for the business of describing
it,' or bringing it about in others.
Even the ability of a small child to
learn to deal with the incredible
complexities of a constantly changing
world makes our ability to explain
how it all works seem pale by comparison.
Imagine you have just arrived
at an airport in a strange city,
and now need to reach your final
destination by way of unfamiliar
roads. One possibility is to take
a taxi. This option is direct and
efficient, and it can have the
bonus of being a personalized tour
along a tried and proven route. It
has all the potential for being a
first-rate educational experience.
Yet, it is not likely that upon
arrival you could pass a test asking
for an accurate description of the
route just taken. Your lIindividua1 i zed ll treatment wi 11 have gotten
. WEST COAST COMPUTER FAIRE
Even less impressive is our
success in promoting human learning
193
BOX 1579. PALO ALTO CA 94302
through institutions organized
expressly for that purpose.
Placing students within the walls
of carefully designed schools
would certainly appear to be the
best way of assuring that they
get transported along paths
(called curricula) that visit
many important educational points.
The predicament faced is that for
most students these are ~
visits, and dimly remembered ones
at that. They never get to really
know the territory.
Enter the Computer
What has all this to do with
computers? The answer is both
simple and perplexing. In
reviewing the history of computers
in education one finds that the
majority of effort (and money)
has g~ne to promoting their use
as expensive educational IItaxicabs. 1I This effort has gone
under the name of Computer
Assisted Instruction, or simply
CAl.
form of a new approach to technology,
and partly as a growing body of
examples of student accomplishment
that indicate an exceptional idea
is at hand. It's a flowering of the
IIdrive-yourself ll option (called
IIsolo-mode computingll) in schools,
made possible by personal computers.
The new spirit is all the more
remarkable in that it pretty well made
it on its own. The funneling of
large funds into CAl made early solomode computing an uphill battle for
all but the most determined and adventuresome. It is to the credit of the
ingenuity of exceptional teachers and
their students, that the door to solomode computing was gradually inched
open. What first came through the
crevice was at times amateurish, at
times quite professional. But it was
always inspirational and exciting,
and it caught on.
And now a new force from a completely unexpected quarter promises
to swing the door wide open. It's in
the form of a personal computing movement that looks upon computing as a
personally desired and appreciated
enterprise. It's a use of technology
that is (to use the words coined by
Ivan Illich in his book De-Schooling
Soc i e ty) II con v i v i a 111 rat her than
IImanipulative ll vis-a-vis the aspirations of people. It's the IIdriveyou-r-s-e-lf- II option for G-omput-in-g---C--G-me--- -true.
'
In CAl, driver and passenger
are viewed as separable entities,
with the IIdriver ll turning out to
be an impersonal conglomerate
of lesson designers, computer
programmers, and hardware vendors.
Students are relegated to the
ro le of --i-nd--l vi-dua 1 --p-a-ss-e-n-ge-r s.There is, of course the promise
that they will be the beneficiaries of personal, customized
transportation to the most exotic
of educational worlds. In
reality, the promised tour is at
times more like a shuttle, with
repetitious visits to the unimaginative lands of drill and practice. The alarm raised in
Anthony Oettinger's 1969 book
Run, Computer Run, with its conclusion that lIevery effort to
introduce technological change
into education has revealed how
profoundly ignorant we still are,1I
was not without basis.
The personal computing movement
is important because it can bring a
new and different use of technology
into our schools without major expenditures. If it finds a mixed welcome
at first, there need not be concern.
This is because it is a use of technology that can literally exist in a
home, a storefront, a community center,
the corner of a library or museum.
Actually there is hope that personal computing will find a welcome
in schools, because-it is in the
hands of the people who use schools,
pay for them, and care about them.
It will thus be the first application
of technology to education that need
not sell itself as II new and revolutionary.1I It guarantees nothing.
Yet it assures everything, because itLs
Enter the Personal Computer
But there is also good news,
and it's getting better all the
time. It comes partly in the
in the right hands, free spirits who
know the value of learning on one's own
WEST COAST COMPUTER FAIRE
194
BOX 1579. PALO ALTO CA 94302
THE ROLE OF THE MICROCOMPUTER IN A PUBLIC SCHOOL DISTRICT
Peter S. Grimes
Curriculum Supervisor
San Jose Unified School District
1605 Park Avenue
San Jose, CA 95126
(408) 998-6124
Our use of these terminals is presently
organized around the following themes. For
junior high school, the emphasis is computer
literacy for a large number of students, with
some schools offering BASIC programming as an
elective. The senior high school objective
is computer programming using a variety of
machines: programmable pocket calculators,
desk top printing calculators (with optical
card readers) and general purpose microcomputers. Our language of choice is BASIC with
the probable addition of disk FORTRAN in the
near future. We also anticipate the development of an introductory computer science elective as the need develops.
We are told that San Jose Unified is somewhat unique in its district wide policy to encourage instructional computing through the
purchase of small microcomputer systems. The
dramatic thrust of this policy is evidenced by
our purchase of fifteen such units in the past
two years and a probable similar expansion over
the next several years. As a school district,
we are quite serious about promoting general
purpose computing through small microprocessor
based systems.
San Jose Unified School District is a
I believe it is important to reflect upon
large (38,000 ADA) urban school district
the origin of this policy. Well over two years
nestled in the center of the great Santa
ago, it became quite apparent to us (residing
Clara Valley at the southern end of San Franas we do in the heartland of the digital eleccisco Bay. We have seven high schools, seven
tronics industry) that small general purpose
junior high schools, thirty-seven elementary
computing systems would become relatively inschools, and a regional vocational center.
expensive and thus well within the budget capOur educational computing facilities inabilities of individual schools and school sysclude ten time-share terminals (PDP 8/E), fiftems. (This judgement has been thoroughly vinteen microcomputers (one SOL, three POLY 88,
dicated with the marketing of the $595 PET in
one CROMEMCO Z2-D, eight IMSAI 8080 and one
late 1977.) This belief led us inexorably to
PET), and a Hewlett Packard 2000 system at
certain conclusions:
our vocational center. (Since the program at
1) Inexpensive computing would rapidly
the vocational center is dedicated almost exlead to a demand for the inclusion of
clusively to vocational data processing, the
computer programming and computer
following remarks refer to our microcomputers and the
science into the public school curriPDP 8/E time-share mini.) These terminals are
culum.
generally distributed as follows: one or two
2) The ordinary citizen would very soon
terminals in each junior high, two or three
have to have some knowledge and skill
terminals in each senior high and one roving
in the use of many types of computing
terminal for our elementary extended learning
devices; i.e., pocket calculators,
program •
The purpose of this paper is to apprise
the reader of how San Jose Unified School District is utilizing personal and home type microcomputer systems in its instructional program. San Jose Unified is considered to be
somewhat of a bellweather in the educational
use of microcomputers because it established
a district policy for the rapid introduction
of microcomputers into its secondary schools
over two years ago when few educators knew
the possibility even existed. The paper addresses the following topics:
-A general description of S.J.U.S.D. 's
instructional use of microcomputers.
.A brief rationale for the development
of S.J.U.S.D.'s microcomputer policy.
• An explanation of why we promoted instructional microcomputing before
identifying a curriculum.
eA more detailed look at how we are using microcomputers.
eA brief exposition of some of the things
we have learned.
. WEST COAST COMPUTER FAIRE
195
BOX 1579. PALO ALTO CA 94302
impacted by the advent of inexpensive calprogrammable calculators and compuculators and computers. We are also finding
ters.
out what the present student demand is for
3) Small general purpose computers would
computer electives so that we will have a
rapidly become important as instrucbasis for projecting the future. We are trytional devices (learning games, simuing to be creative. We are fearful of making
lations, tutorials, drill and pracdetailed plans before we are knowledgeable
tice).
4) Profound changes in the mathematics
enough to do so. We feel very strongly that
teachers should develop the curriculum and
curriculum would become inevitable;
i.e., increased stress on decimal nothat they would not be motivated to do so
without the actual physical presence of a
tation, flow charting, algorithmic
computer. (Teachers, too, can be very pragprogramming, iterative and recursive
matic. It doesn't make very much sense to
techniques, computer evaluation of
functions, the demise of the slide rule, make a large investment of after work time
and effort unless the resulting skills and
and vastly increased use of mathemaknowledge can be put to use.) What we have
tical processes heretofore requiring
done, then, in San Jose Unified is to provide
calculations far too complex and time
the computer resources so that teachers could
consuming for common use.
make the necessary discoveries and obtain the
In our mind, the digital electronics revolution had a certain inevitableness about it.
necessary background to begin identifying and
These things would happen! They would happen
meeting the needs created by the computer
revolution. This development takes time.
quickly! The sooner we became involved, the
more control we would have over the situation!
That is why we became involved so early. And
so ••• what are we doing and what have we
We installed our first microcomputer (an IMSAI
8080) in March of 1976.
learned?
San Jose Unified has become somewhat of a
We have introduced programming courses
bellweather for schools and districts contemin high school. These vary from one to three
plating their first entry into educational misemesters. A typical sequence would be, a)
crocomputing. We have received many inquiries
introduction to computing using programmable
about what we are doing with our microcomputers. hand held calculators and printing desk top
These inquiries have a common element. What is
units, b) BASIC programming with microcomyour curriculum? What was your planning? What
puters, and c) advanced BASIC programming.
do students do with the machines? There seems
In junior high school we have taken three
to be a feeling that to justify the investment,
approaches. First, a few schools are offerthe use of the machines must be totally maxiing a one semester BASIC programming elective
mized within the shortest period of time. It
for grades 7-8-9. Second, after school comis our opinion that this seeming urge to docuputer clubs have been organized in which
ment the need for computer resources and specBASIC and system programming is taught in a
ify a curriculum is premature at this early
more recreational context. Third, we are
stage. . truif is why we do not as Ye·th4ve ·an
. developing a ·plan ··f()r computer ·literacY··whtire·
identified curriculum. Our belief in the inmost students prepare a program, enter it into
evitability of educational computing does not
the computer and successfully run it. At the
imply that we have gazed into the crystal ball
elementary level we are testing the waters
and have thereby seen the future. We really
with one roving microcomputer serving our
don't know exactly how these microcomputers
grade 4-5-6 extended learning program (MGM)
will ultimately be used in our schools. Nor
students. So far these students have been
does anyone else! All we know is that we must
exposed to a variety of learning games, simteach more about computers to more and more
ulations and drill and practice routines. We
students and that we need computers to dishave also taught the more motivated elementary
cover how to do this. We think that teaching
student some rudiments of BASIC.
BASIC programming is a relatively safe thing to
We have also learned a good deal. There
do at the present time.
is definitely a need for computer instruction.
Why do we say that detailed early planning
Five of our high schools are offering one or
is premature? Because very ~ of us in secmore semesters of BASIC programming. One
ondary public education have any real experhigh school has employed a computer science
ience with computing, even mathematics teachers. teacher and anticipates that he will be teachWe have gone back to school ourselves! We are
ing full time in this area within the year.
learning BASIC and FORTRAN, assembly programAlthough we have found no suitable texts, a
ming, and something about computer science in
large amount of reference material exists
general. We are finding out more specifically
which has made it fairly simple for teachers
how our mathematics courses will probably be
to assemble a body of graded programming
~ . WEST COAST COMPUTER FAIRE
196
BOX 1579. PALO ALTO CA 94302
experiences (mostly in mathematics). Up to
300 high school students are currently involved,
a number likely to grow as our computer resources expand and as computer programming becomes more and more recommended or required for
college matriculation.
Our experience in junior high has been
quite similar. Although there is not as great
a demand for programming as an elective, the
computer clubs have been extremely popular and
wide scale computer literacy is being developed
as a goal for our grade 7-8-9 mathematics program. Our student contact here is much more
difficult to measure because junior high computer instruction tends to be much more infrequent and diffuse. Still, we would estimate
that the district impact here exceeds five hundred students and is rapidly growing.
The results of the elementary program are
difficult to assess. Only a few students have
profited from their exposure to BASIC. This
is understandable, however, considering the
lack of computer training or knowledge possessed by most elementary teachers. It would appear that the computer's future in the elementary grades is as a learning device in the areas
of gaming, simulation, drill and practice and
tutorial instruction. The elementary program
has been more successful where older students
have been available to serve as cross age tutors.
With regard to hardware, we have found
our microcomputers to be thoroughly dependable.
Time between failure seems to be in excess of
one year. Most of our machines are running on
16K of RAM with 8 or 10K BASIC interpreters.
Our system storage medium is audio cassette
tape. This has proven to be quite satisfactory. Students store their programs on paper
tape or in cassette cartridges. We are ex~
perimenting with teletype vs. television monitor I/O and have reached no conclusions. We
are finding our Cromemco Z2-D machine to be
the most versatile, by far, of all our microcomputers. Students have their own mini-disk
for program storage. Cromemco software (BASIC,
FORTRAN, Z-80 ASSEMBLER, DOS) is superior to
anything we have seen. Also---the Cromemco
machine can expand to eight BASIC users at a
very modest cost for each additional user.
Given the exceedingly low failure rate after
installation, we expect to pursue this Cromemco timesharing approach in our high schools.
(The argument against timesharing is that
when the machine dies, so do all the terminals.) We have also had a good experience
with our one and only PET. It performs as advertised and seems to be just as reliable as
our other machines. Because of its attractive cost ($595 for 4K user RAM and $795 for
8K) we expect that we will purchase many more
PETs over the next year or two. Since they
are less versatile machines, they will probably find their greatest use in junior high
where computer literacy is the primary goal.
WEST COAST COMPUTER FAIRE
197
There have been some problems, of course.
We have found that a system should be thoroughly burned in and tested before installation. With microcomputers, the first few
weeks of life are the hardest. We are also
very much aware of the lack of good software
interc~~nge.
BASIC has yet to be standardized
and, just as important, there is no standard
medium of exchange.
In conclusion, we would like to emphasize
that what we are doing is very "plain Jane".
We are not engaged in anything at all exotic.
We are mostly teaching BASIC. The context
of our programming is largely mathematics
because mathematics teachers have preempted
the field. We like BASIC because it is interactive and because it is so well suited to
the range of abilities with which we have to
deal. We know about CAl, but are not emphasizing its use at this time because of the
almost total absence of microcomputer adaptable software and the high cost of preparing
our own CAl software. More importantly, we
are following the approach I have outlined
above so that we can quickly adapt to the
new demands being placed on the mathematics
curriculum. Perhaps of most importance is
our intense feeling that programming and
computer science is a new curriculum area,
related to, but somewhat separate from
mathematics, science and electronics. The
digital electronics has birthed a new secondary school subject and we want to be part
of its upbringing.
BOX 1579. PALO ALTO CA 94302
MICRO COtlPUI£RS IN A HIGH SCHOOL - EXPANDING OUR AUDIEnCE
1
William J. Wagner
Uountain View High School
Mountain View, California
The title of this talk is meant to be
ambiguous, for I will argue that two
audiences are being expanded: the introduction
of micro computers into the high school will
allow computer education to be offered to more
students, and further, educators like me
represent a very different-set of users of the
formerly hobbyist-oriented micro cOr.Jputer. So
if you think my feet are shaking up here, it
is oerely because I am playing the role of the
tip of the iceberg.
Computer programs in schools are not
new. What is new is that micro computers open
the possibility of bringing computer education
to many more students within the strictures of
modern school budgets.
This broadened market represents a
real challenge for computer educators. In
every school there exist some students (about
1%, I think) who will, if you let then, spend
all their waking hours at the terminal. making
the machine jump through hoops, and
~
occasionally emitting those familiar gales of
---laughter. TheY--areg-reat peOple (they -are us;-right?). Every teacher needs these kids
around - they keep the adrenalin circulating.
We are proud of their programs and like to
take credit for their progress. Indeed, we
should take some credit, but not for teaching
them much. Our contributions are in
suggesting interesting new kinds of problems
and in getting the equipment in their hands
in the first place.
Important as it is to give these
future professionals and/or hackers their
first boost, our programs should not be judged
or justified according to the progress of these superstars. Schools are full of lots of
different people, and it is this other 99%
which I intend to discuss here, and to which
the program at Mountain View High School is
directed. Also~ although I am by no means a
computer hobbyist and have only limited
knowledge of the micro computer field, I will
1
Home Address: 127 O'Connor St., Henlo Park,
CA 94025
. WEST COAST COMPUTER FAIRE
198
present my views on the special requirements
of high school computer facilities. and why
we selected micros.
Throughout this talk I will also ask
for your help. Computer educators need better
ways to find each other and share their ideas,
plans, successes, and even failures. I hope
this will be the beginning of a useful
exchange among us.
The Students
Without risking more guesses about
percent composition! here are five categories
of students, for the purpose of discussion:
A. The computer hotshots. These have been
discussed above, but I should add that they
are not necessarily the best students in other
classes, and may even have trouble getting
computer assignments in on time. We can
really help them by focusing their energy and
enthusiasm toward activities which will
continue their growth.
Ea __ Thegoorl_st.udent.a. irL1)lath and science.
These are our natural audience, but---s~m~ti~~-~---it seems surprising that they do not flock to
the computer. For one thing, they are very
busy with course work, and school courses are
not often set up to reveal how the computer
might be of use. And the tightly packed
college prep schedule has little room for
electives.
C. Other good students. This may be the
largest group in any school. They also are
busy with various school activities, but
unlike group B, computers are not on their
list of things to pursue some day. Further,
they often show a remarkable disinterest in
what we like best - computer games and
programs which crunch numbers.
D. Kids with lots of interests, but not
particularly top students. Some of these
might be interested in our hardware, but not
so much in how to manipulate it. Others find
programming to be their first interesting
BOX 1579. PALO ALTO CA 94302
"academic" class. Often their math level is
so low, however, that the number of problems
that can be suggested is limited.
L. Unmotivated and unsuccessful students.
This is another la~ge- group~--They:Ei~their
way into computer classes because their
schedule is not full and because someone,
usually not the student himself, thinks that
something flashy and new may produce a change.
It turns out to be true in some instances.
1 will mention in passing another
group which has remained an enigma to me young women. At my school they make up at
least half of the enrollment in advanced math
classes, but seem impossible to attract to
the computer program. Those in the
programming classes are every bit as good as
the boys, but only one or two out of the
twenty or so students who spend extra time
programming or on games is female. 1 look
forward to discussing this situation with
persons interested in sex differences in math
and science.
The Importance of Expanding Our
_Audie~
1 think that we designers of computer
curricula have tended to think in terms of
groups A and B only. It is very difficult to
find a programming book that does not assume
knowledge and interest in higher math. Also,
we have been content with the few students
from those groups who flocked around us
because we couldn't have served many more
with our limited facilities anyway.
It is important for us to reach out to
this large majority of students who do not
naturally find their way to the computer room.
It is obvious that computers are actually a
part of their lives whether or not they like
or understand them. However, few
opportunities will exist for them to interact
actively with computers outsirte school.
furthermore, these students tend to be
alienated from the computer activities at
school - they think it is for smart people
only, and they think that demented laughter
and secret language means you have to be a
little crazy too. (~ colleague at a nearby
school who brought her Algebra I class to the
computer room for a \veek of introductory BASIC
told me a wonderfully poignant story that fits
her~.
As a 10th grade girl sat down at the
terminal for the first time, she looked around
nervously and inquired, "Can anyone see me in
here?")
How can we reach these individuals who
do not automatically think of computers as
their thing? It is a difficult teaching and
strategic problem, but we must continue to
WEST COAST COMPUTER FAIRE
look for ways, for several reasons. First,
this could be their last chance in a
relatively non-threatening environment to have
hands on experience with a computer. Once they
leave high school their education and
experiences begin to narrow toward a
vocational or academic or lifestyle choice
which will preclude taking a flyer into an
apparently unrelated field like programming.
Their contacts with computers will be passive,
inspiring awe, fear, or anger.
Also, the opportunities that do exist
out there are more restricting. The college
computer classes I know about are not intended
for the liberal arts person, but for the
future professional or technician. Thus we
must think of some of our teaching as part of
a general education. And for those students
too busy, nervous, or skeptical to commit
themselves to a full course, we must find \vays
to bring computers into the classes they do
select.
Another reason to teach these students
about computers is that we can offer valuable
experience in problem solving and thinking, as
well as a new vocational direction. This area
matches so many of the goals expressed by
various departments of my school and of the
school itself, that 1 am sure that if the
slate were wiped clean and a new public school
designed, courses about programming and
computers would merit permanent status in the
school.
In this utopian school computer
instruction of some kind would be a natural
part of most students' coursework: either a
regular course like Geometry, the first step
onto the college bound math track, or the
equivalent of an elective in English or Social
Studies, or a vocational offering like
Woodshop or Auto Mechanics. I have found that
experience with computers and programming can
help teach math more effectively, can help
students problem solve and organize their
thoughts, and can of course lead to jobs at
various levels of academic preparation.
Revolutionary school reform is not
imminent, so it is the responsibility of us
educators to work for the gradual increase in
use of computers in schools so that these
benefits can be made available to more
students and apparent to more decision-makers.
Finally, I think- that almost anyone in
high school who is willing can be taught
programming in BASIC at some level, and we owe
it to them to provide this opportunity to be
in control of the computer for once. The
problem is pedagogical rather than one of
prerequisites. What we need is a set of
activities for various levels of student
ability and interests.
199
BOX 1579. PALO ALTO CA 94302
It would be glib for me to say that
this is an easy task, but I am busy working on
the problem, and believe it can be solved
satisfactorily.
The Curricular
pff~ring~
At ~~untain View High School we have
tried to broaden the audience of our computer
offerings by using five different approaches.
They are a two week course in BASIC offererl as
a unit in certain math classes, simulations
and games \;/'hich have appl ica t ions in var ious
subjects offered in the school, easy access to
the computer at designated times for game
playing, classes in programming which offer
experiences at three distinct levels of math
ability and interest in programming, and a
\vell attended adult education class in BASIC
at night.
First let's talk about what we do not
do. There is no CAl per se because I have not.
figured out how to accomplish this in a class
situation with our present facilities. and I
await the software which can provide the
organization, record-keeping, and pacing which
are required in order for CAl to actually be
a help to a teacher. Also. I await the teacher
who wants to give it a try. Another thing we
do not do is any kind of instruction about
hardware or lower level languages. This
is simply because I know almost nothing about
these things. I am a teacher, a someti~e
programmer, and somewhat of a mathematician.
but I have had a nervous awe of electronics·
e"E!.r _~i_£.l:C:_E!_ my_you_ngE!_r:br:o_therbE!_<;_. .
0'
o
r-i
o
C
.c
SCIENCE CONTRACT
________________________
Ccurse: ______________________
Q)
U
Dates: begin _____ ,end _____
C
Q)
u
0..-1
E-i
U
til
Q)
Facu 1 ty : ______________
Course Objectives:
H
(lj
H
Resources Required: ________
U
C
cQ
Q)
;:l
0'
Q)
til
(J)
III
~
;:l
o
U
H
;>,
H
H
O~
o
r-i
Q)
0
U
C
C
.c
u
Q)
or;
Frojects to be Produced:
U
til
(J)
8
.. Evaluation.c.ri teria: ____
<
X
H
Q
Contract Arproved by:
Z
rzl
p..
~
-<
H
Student: ________________
Q)
U
C
Faculty: ________________
0..-1
U
til
Date: ___________________
(J)
~
Q)
Contract Completed:
..j.J
;:l
Faculty Signature: _____
0..
E
0
Date: ____________________
U
Grade: ____________________
Contracts to be made out
in duplicate with each party
receiving a copy.
WEST COAST COMPUTER FAIRE
222
BOX 1579. PALO ALTO CA 94302
HICROPROCESSOR COMPUTER SYSTEN USES IN EDUCATION
(or, You Can Do It If You Try)
Robert S. Jaquiss, Sr., North Salem High School, Salem, Oregon
97301
Abstract
I have a plan
Now is the time for the (micro)computer to
become widely accepted as a teaching tool in
the subject area classrooms of mathematics,
biology, chemistry, physics, business and
social studies.
Much software in BASIC already exists as
the product of the last several years of
research and computer use.
This can be accomplished by the use of micro
processors and the establishment on a high
school level of a Computer Science Department which will implement a series of
computer courses. These computer classes
will form the basis to carry computer usage
to the subject area classrooms.
Teachers in the subject areas will need to
be re-programmed to accept computer usage
and to include computer usage in their
lesson plans.
There is need to make a 5-year plan for the
acquisition of computer facilities, classes
to be taught and specific programs to be
implemented in specific classes.
Statement of the Problem
The computer has not been used to its full
potential in education.
The problem will be restated in various
positive statements.
The high cost is one reason computers have
been used so little in education. Modern
technology in the form of microcomputer
systems is providing the capabilities to
use the (micro)computer as a tool in the
subject-area classroom at a more
reasonable cost. The computer may be used
as a teaching tool in many clever ways.
Teacher Training. Because this technology
has come on the scene so rapidly, many
teachers have received no instruction in the
use of the computer as a teaching tool. In
addition to not knowing how to use the
computer as a teaching tool, these same
teachers may fear the computer.
The solution to these various statements of
the problem seems simple. Just make use of
available technology in education.
This may be easier to say than to do.
WEST COAST COMPUTER FAIRE
The hardware to make use of that software
is now available in the microprocessor
based computer system.
All we have to do is put the hardware and
the software together in our scheol system.
What A Hicro Can Do
In preparing this talk I wrote several pages
about the capabilities of the microcomputer
system. Perhaps those of us here already
have a pretty good idea of what a microcomputer can do. On the other hand, perhaps
some of you came here to the San Jose
Computer Faire to find out what a micro can
do. I guess that is why I came -- to find
out more about what is, and what will be
available in the micro world.
What did the Mini say to the .t-1axi Bonster?
"Anything you can do I can do better."
And wha t does the Micro say to the f.::ini?
"Anything you can do I can do better."
If you haven't heard it before, then hear it
from me. Practically anything you ever
heard of a computer doing is being done by
someone'a microcomputer. In the exhibit
area there are micros that talk, play music,
draw pictures, make graphs and charts in
color; some even compute.
Did you see the walking talking computer?
A micro can turn your lights on and off,
lock your doors, call the fire department,
keep your financial records and teach your
children math or play games with them.
A microcomputer system can be used
effectively in the educational process in
your school in math and science, English
and social studies. All that is needed is
to get the hardware and the software
together---- a~d one more thing--- you.
You will have to do the getting and putting
because you are obviously the person in your
school that is interest in computer use in
education.
223
BOX 1579. PALO ALTO CA 94302
How to get hardware
Justify the
Establish a need. As you have noticed, I
assume that some of you are teachers. OK
Teach, try this. Walk into your principal's office at 7:30 Monday morning, lean
dramatically on his desk, look deep into
his eyes and say:
I suggest that you subscribe to a number of
computer journals and read some books.
One article I like is "The Rhetoric of the
Computer" by Barbara Harsh published in the
Jan-Feb, 1978 issure of Creative Computing.
On page 131 she says,
"I believe p,~ople ought no t emerge from
schools at the mercy of what they see on
television, what they read in the newspapers
(if, infact, they read), or what a computer
analysis tells them is the case. The
television may define what are "the issues",
and computer analyses may provide "the
answers," but we must try to provide an
education which leaves room for students to
make their own evaluations and decisions.
They should be able to assess the
appropriateness of the computer mediation
of the information dealt with, and have some
idea of where to look to find what computers
leave out. I think one way to make this
more likely to happen is to have teachers
who are able to think about computers as
persuasive media whose output must be
evaluated."
"The school district is failing in its
obligation to teachers and students to
provide modern equipment to use as tools in
treteaching of academic classes and is
therefore lessoning the value of the
education provided to the students in our
school.
"The district may be considered negligent in
not obligating teachers to seek additional
training in the use of computer-based
instructional methods.
It is my guess that my now you have the
principal's full attention. ~fuile the
principal is trying to decide whether to
fire you on the spot or give you a week's
notice, you must quickly take a deep breath
and continue"Students are being denied the opportunity
of experiencing hands-on use of modern
equipment made available by the development
of the microcomputer.
This article is one of a growing number of
articles about computer literacy.
The principal has probably gotten to his
feet. You must say something soothing
before he can get a word in edgewise.
"Come let us reason together." And continue,
"Our citizens of tomorrow are being deprived
of the opportunity to use, see, and manipula-te --computer base-d-simu-latio-ns-,---tuto-I'-i.als t
and problem-solving techniques in the
curriculum areas of biology, cheoistry,
physics, social studies, mathematics,
business and even foreign language, because
the equipment is not available for teacher
and student use.
At this point, the script calls for the
principal to be seated again. With a smile,
because he has decided you are not really
dangerous, and because he has remembered
plan X, he has an answer ready for you.
The principal will say to you, "There just
might be something to what you are saying
~r. Smith.
~rite up a proposal to take care
of these problems. Justify all the parts of
the proposal. Make out a list of equipment
you will need, and the cost, and project it
on a 5-year plan."
Of course he will have to approve the
proposal and pass the proposal up the line
to program planning and evaluation.
WEST COAST COMPUTER FAIRE
~eed
Another article in the same issue, written
by Cashman and Shelly with a very long
title beginning, ""Hands-On" And Fast Turnaround ••• " has some good thoughts.
Cashman and Shelly say, "Teaching programming without access to the machine is like
teaching chemistry without access to a
chemistry lab or teaching literature without
reaaing ab-ook. HCashman and Shelly are writing about using
computers only to teach computer programming
The reader should not be so narrow-minded.
Computers should be used as a tool in the
educational processe The points made in the
article are very valid, but the scope should
be enlarged to all users and not just
computer programmers.
ANY student should be able to use the
computer in an interactive mode to the
limits of his general ability.
Cashman and Shelly provide a quote from a
book by John Kemeny, ~ ~ ~ Computer,
published way back in 1972 by Charles
Scribner's Sons, pages 80-81. Allow me to
read this quotation to you.
"I consider it imperative for the benefit
of mankind that during the next decade
computers become freely available to all
colleges and universities in the United
224
BOX 1579. PALO ALTO CA 94302.
States and that most students before
graduating acquire a good understanding of
their use. Only if we manage to bring up a
computer-educated generation will society
have modern computers fully available to
solve its serious problems. While computers
alone cannot solve the problems of society,
these problems are too complex to be solved
without highly sophisticated use of computers. I see three major bottlenecks that
must be removed if this goal is to be
achieved.
"First, most university computation centers
are still research-oriented. They are -typically operated in a batch-processing
mode with priorities given to a very small
number of users who need a great deal of
time. The philosophy of the university
computation centers must be changed.
·"Second, college administrations do not yet
appreciate the immense favorable impact
that a good educational computation center
can have on their institution. I would like
to propose that by 1980 no college or
university should be given full accreditation unless computer services are freely
available to all students. Use of the
computation center must be considered the
exact analogue of the use of the library.
"Finally, the implementation of this program for millions of students will take a
great deal of money ••• "
It is to quotations such as this that we
may turn to for justification of the
existance of a computer use program.
Kemeny, and others, looked to the future.
It is because of their efforts that the
university computer centers have greatly
improved since these words were written.
The solution
Simply get the hardware, the software, and
you all together. You see, it all depends
on you.
The school district should resolve to act
with all possible intelligent purposeful
planning to implement the use of the
computer as a teaching tool.
Computer Classes In High School
Your school should have a Computer Literacy
class to teach about computers and how to
use them, how to use canned programs and
how to do a little programming. Then the
school should provide a Beginning Programming class for students who find they like
computer programming. Finally, there should
be an Advanced Computer Programming class.
It is the advanced class that will run the
systems, encourage others, write original
programs, modify the library programs to
work a little better and take the computer
to subject area classrooms for
demonstrations.
.
Eventually one of the teachers will take the
portable terminal to his classroom for a
week to run simulations in biology class.
This system is working for me and it will
work for you. I also have students on an
independent study program.
~
Someone is going to ask about the money
necessary to implement a new program. I am
sure that the purchase of the first l6-mm
projector for your school was a real event.
Someone had to decide to purchase the first
Some colleges and universities now require
overhead projector. Believe me the money
a class in computer programming or
is there. If you can show the need for the
statistics to graduate. At some institutiom program the money will come. The computerconsideration is being made to make a class
use program cuts across the whole spectrum
in computer programming an entrance
of studies in the subject area classrooms.
requirement.
The school district can afford to spend
We might amend Kemeny's words to include
one-fourth of one per cent of its total
high schools: No high school should be
operating budget for computer education
given full accreditation unless computer
and the program to use the computer as a
services are freely available to all
tool in the subject area classroom.
students.
What a Microprocessor system can do.
Kemeny had no way of knowing that the
computer on a chip would become a reality
I was watching a program called NOODLE on
so soon. vJhile the im"(Jlementation of a
a PET computer today. Fascinating. The
computer usage program~ in high school will
little dot goes chasing around on the
take some money, the amount is many times
screen leaving a line and little rectangles
less than what would have been required a
behind it. With the proper persuasion I
few years ago, and the expectation is much
suppose the little dot could bp taught to
greater.
make graphs or maybe write one's name.
WEST COAST COMPUTER FAIRE
225
BOX 1579, PALO ALTO CA 94302
I
Expectation Rises With Product Improvement
The computer, keyboard, CRT and a box to
hold it all together costs only $800 with
the additional memory option. A terminal
usually cost more than that.
There was a time when I was satisfied with
a teleprinter throbbing away at 10 characters per second to slowly and noisily
print out the results of my program. No mor~
I expect my printer terminal to print at
least 30 characters per second and do it
quietly.
I was going to try to define a microcomputer system and then I could talk
about available software. But the system
cannot do anything without
Available software. For software I was
thinking first about the Huntington
simulations. The Huntington I and Huntington
II simulations were written in primative
BASIC by groups of knowledgable teachers for
use in subject area studies.
Each program is not very large. Most of
these simulations run in very little memor~
The Huntington Programs are available from
Digital Equipment Corporation. The
Huntington I programs are available in
listing form. The Huntington II programs
are available on punched paper tape and
come with three booklets, one each for the
teacher, the student, and for additional
resources.
At one time I questioned the value
which leaves no written record but
very quiet and very fast. I liked
security of that printed record to
away with me.
of a CRT
which is
the
carry
My students do not have this hangup. They
make a printed record when handing in
assignments. More and more program output
goes to the CRT in a form not amenable to
character oriented printed output. So far
I have insisted on a printer with each
system so that output can be assigned to
either the CRT or the printer.
What are the pieces that ma~e up a m~n~mum
micro computer system? I suppose it would
be good to have a check list of things we
expect to have in a minimum system. When we
purchase a system we will at least know if
we do not have some of the items on the list
The various computer journals have
published a vast amount of computer software. Several computer companies have
established user groups which maintain a
library of programs available to members for Everyone is not going to come up with the
same list of expectations. It is easy to
the cost of reproducing the program. There
find microcomputer systems that do not have
is at least one private venture that is
everything on the list.
attempting to provide software to the user
for a price, pay royalities to authors and
Minimum microcomputer system for Computer
_~~~~~_p'rofit.The hobby community
exchanges -pr-ograiiis so ---freely-lt---maycome--as -Use --i-n- Edu.ca tion
a surprise that someone would sell programs.
The big companies have been selling software CPU board, name your favorite processor
32K memory
for quite a while. If you purchase a mini25-30 amp power supply
computer you will find it won't do much
extra slots for expansion
until you feed it several thousand dollars
CRT with ability to display memory
worth of software.
locations, upper/lower case characters
Matric printer terminal (keyboard, 30 cps)
Many books are available with program
upper/lower case, adjustable paper size
listings from simple games to General
Extended BASIC 12-l6K
Ledger.
Operating system
Assembler
There exists a vast reservoir of Computer
Output may be directed to CaT or printer
software and computer knowledge relating to
from within the BASIC language program
computer education in printed form as a
Cassette storage system
result of several projects in computer
education that have been undertaken on large
Such a system is available for a few
time-sharing computers.
thousand dollars.
Many of the computer programs thus developed are available and can be executed on a Perhaps your list is different. No matter.
microcomputer system. There is very little The important thing is that you understand
the limitations of the system you are
that a huge time-sharing computer can do
thinking about purchaRin~.
that cannot be done on a microcomputer
system. Those things that cannot be done on
a micro I didn't want to do anyway.
~ WEST COAST COMPUTER FAIRE
226
BOX 1579, PALO ALTO CA 94302~
Additional Options to expand the
Minimum ~ticrocomputer system for
Computer Use in Education
CRT with graphics capability
24 or 48 lines of 80 characters
Color CRT with graphics and plotting
Matric printer with graphics and plotting
bidirectional printing
move paper forward and backward
lower case descenders
Letter quality printer/terminal
Dual 8" floppy disk system with
Extended disk BASIC with read/write
files, chaining
Paper tape I/O for use in transferring
programs from one system to another and
to read punched paper tape prepared offline.
Matrix printer/terminal with programmable
character set for use in applications such
as foreign language classes.
More than one system, compatible with each
other. Computer programs are written and
developed on the development system and then
transferred by cassette to the portable
terminals that can be taken to any classroom.
First Things First
There are several thing you will have to do
first before your school can make use of
microcomputer systems in education.
First you must have a computer to run.
First you must be a programmer.
First you must want to be a programmer.
First you must be willing to put in lots and
lots of extra hours at school and at home.
First you must decide what kind of programs
you want to run.
First you must decide if you want an
expandable or a closed system.
First you must consider paper tape systems
cassette systems, floppy disk systems,
hard copy or CRT.
First you must convince the administration
of the need to use computers in education.
That is where we were a while ago. The
principal had just asked you to write a
proposal to use microcomputers in the
educational process. So first you write
the proposal.
One outline commonly used in proposals is:
-statement of the problem
-The Proposal
Curriculum changes
Effects on students
goals of the proposal
teacher training
-Justification
- costs, and timeline for implementation
~WEST
COAST COMPUTER FAIRE
~
Lets take some of th~ problem statements
and change them into goals to write into
the proposal.
The school district will provide
one computer terminal for each- 200 elementary students grades 1-6
- 100 students in junior high grades 7-8
- 50 students in senior high grades 9-12.
The school district will-provide the opportunity for teachers to
take classes in computer uses in education
for college credit.
-encourage teachers to take these classes.
-provide additional support in the form of"
books and magazines for the library.
-direct the principals to procede forthwith
to implement computer use in educ"ationally
sound ways.
-recognize that every student has the right
to be educated in Computer Literacy.
-recognize that it is the obligation of the
school district to provide the opportunity
to the student to become computer literate
at a level commensurate with his/her
overall level of education.
-thoughtfully consider that the school may
be cheating those students who need
computer literacy/programming to become
effective citizens or college students.
-admit that teaching using computers should
occur whenever computers are an appropriate
and educationally sound aid in the overall
instructional process.
Value to the Student
Let us consider some of these same concepts
in terms of those values and advantages
that accrue to the student.
The student is able to-use applicable and available technology
in acquiring an education.
-investigate topics in his classes by using
simulations that would not otherwise be
possible because of
time (heredity experiments in biology)
danger to the student (heat, nuclear)
mathematical drudgery (decimals).
-become computer literate to suit the
student's own prupose whether it be taking
an elementary class about computers, or
an advanced computer programming class.
-use problem solving techniques by
using prepared programs, or by
writing original programs.
227
BOX 1579. PALO ALTO CA 94302~
Value to the Student, cont.
The student is able to-learn how to program a computer in several
languages. (Some of my students speak four
dialects of BASIC, FOCAL, FORTRAN and two
assembler languages.)
-consider computer programming
as a vocation
as a recreational interest.
-satisfy existing and/or proposed college
entrance requirements.
-have the experience of actually writing
useful programs to be used in the education
of other students.
-do system programming. (My students have
revised the operating system for several
reasons by using machine language patches.
They have written their own device handlers
and disassemblers and are working on an
operating system.
In 1974 the computer at North was a PDP8r
with 4K of memory. We had BASIC with 10
or 12 statements and a user space of about
1500 characters. We also had FOCAL which is
a much better language. I have some great
student programs written in FOCAL. There
are a number of games. The most ambitious
program is one that will solve 9
simultaneous linear equations in 9 unknowns.
We did not do much in the way of program
documentation.
The first computer I programmed was an
early IBM monster that required a suite of
airconditioned rooms. In 1957 we
programmed in machine language and
optimized the program by strategic placement
of variables in storage locations on the 4K
drum memory. I was proud of my program
that successfully added two numbers.
With this kind of equipment goals may be
limited.
The teachers of science, social studies,
math and business will have the opportunity
to use the computer to run prepared
simulations in their classrooms.
I still teach my Computer Literacy classes
to use machine language to add and multiply
two numbers, but only to demonstrate how
the computer works.
As a result
In September, 1974, my 5-..~ear plan was to
teach computer programming on the PDP81 in
machine language and FOCAL, and to teach
time-sharing BASIC using a teletype connected to Oregon State University. The
addition of a highspeed paper tape reader
made it reasonable to use the assembler on
the PDP8I.
-students will have the opportunity to run
simulations, tutorials, and drill and
practice programs relating to classwork,
either as an outside class assignment or
just because they want to.
-students will have the opportunity to play
games on the computer. It is painful to
sTopeny OWnen
6,o"i6
[Jlventors " Zxplor.r. (RO,.l Ue.) 506
TOTAL - '~J& •• C..... rc •• Servlc •••
Con.truct1on,Tran.port .F"'''11 677
Acr1cul ture, tor •• try, fi.b
3, 070
Ajp"icultural "rV1C..
288
1l1ning
68
N.A.
ILA.
lLA.
$1 ,800,218
47,277
5,155
le',708
Averllq.
?l'I)flt
(mill'9P')
.1!WlDl..
$131, 824
S7 , leO
~oo
1,594
5128.600
3,564
902
1,749
511,000
1,200
3,131
25,720
~~~:~~~~~:~~~~u~;~l~::~t~r~u_ct=i~o~n~~
________~~~~w-__________~~9~9~,~~p~:~-------4!;~~:~f~3;r_---~11~51~:I~,'
~~g
Food .. klndered product.
2S
4J,655
.,247
.b7"
T.xtile • apparel
L_ber .. wood product.
PrinUnc .. publ1en1nc
35
72
59
125
45.435
40.825
24.416
52,348
2,081
2,864
2,073
7,985
:~!~::;d(:!~!~:~!~-)
.~
~::~
!:~i!
Electrical Machin.ry
Rubber ,l.atb.r ,ston.
Petrol.u. reUainl
Pri.ary !II.tal Indulltri..
Motor Vebicle.
Otber Transportation equip,
1Il.c. Manufacturlnc
13
16
1
4
2
3
IS
46,854
33,571
88,096
43,389
58,179
34,992
22,215
3,196
2,2·U
4,138
2,068
5,614
1,486
2,243
~gI
1;¥.~n
li:~:
5,501
27,752
33,573
591.099
74:1
4,953
4,.468
20,166
3,581
495,300
203,100
7 800
20,828
57,295
74,934
91,618
20.434
18,168
16,854
2,752
21.696
3,856
39,772
165 414
815
2,656
1,881
2,284
I, 089
1,021
723
226
1.054
419
2.087
18 743
", 917
2,825
21 425
8,SOO
7,900
6,600
6,leo
4,800
9.900
6,500
5,300
3,800
3,700
5,400
15 300
22, 000
3,600
7 700
Ch~.lc:aU
T1L~:yoH:~!:~r~a~I~~lU"
Tr'-lcktnc . . .arehcu.tne
208
C.-uaic:a tion
10
El.ctric,Ga • • Sanitar),
22
R.tall-Who1esale trade
2 592
'ihol ... i. trade
4SJ
SuUdine .at.r.ial.
96
General ... rcnandi..
337
-Food lItore.
286
Auto deU.n
373
Ga.oUae sta tiona
228
Appar.l lItor..
103
Furniture
112
Hou . .bo1 d appUance.
43
EaUne place.
274
Drinll:lnc plac..
114
Usc:. Store.
388
R.al Estate, I" •• Financ.
1 223
In.uranc.
224
R.al e.ut.
795
Ser,,1C..
2 796
Hotei.,!Aotels,truler Park• • Ciape 2il
Per.onal Hnic..
618
Laundr)' • dr,. cl.anUle
91
Beaut)' shope
215
Barber .hop.
126
&wIine•• Hr"ic..
401
Auto r.~ir . . . .r"ic..
300
AppUance .. otber repair.
196
AIIu_nt,recr.at1oa • tlle.trica1 304
Doctor.,DllnUUs,lfur . . . . . lleeltb
434
L.pl •• ntc..
ISO
Ecluc.UOIIa1 eer"lce.
~
lIIe1n"Une .. Arcbit.ct.
67
AcccunUnc. BooIIII•• ptne
130
Ot!ler Mry1c..
181
Pr.pared by the AIlElUCAH
_
~WEST
I. ....,.
COAST COMPUTER FAIRE
2JS ,11J
" ,241
6, 7J7
26,750
102 959
9,109
59;
13,038
2.046
1,840
313
1,852
485
953
458
22,153
1,764
9,588
788
2,235
526
9.955
577
17.172
9,255
8.563
3.530
459
137
2.499
632
2.780
1,043
a, 6 4 6 1 0 8
nD~!,..~ ,~AU. 8US1HE8!1
n.
OIICMIO. 11. . . . .,
244
59,500
39,800
3:1,100
63,900
1~~:~~~245,900
140,100
4,138,000
517,000
2,807,000
495,300
149, sao
U,:gg
14, 900
2,900
3,300
3,400
2,300
3,600
4,400
4,000
2,700
2,800
21,300
23,500
1,400
9,400
8,000
",400
..a
. . . .~ IlI:n 027.0. .
BOX 1579. PALO ALTO CA 9430~
BUDGETING FOR MAINTENANCE--THE HIDDEN ICEBERG
Wm. J. Schenker, M.D.
Medical Information Systems
2086 Essenay Avenue
Walnut Creek, CA, 94596
(415) 939-6295
Abstract
Earmarking capital for maintenance is
one of the things which sets a business
or commercial venture apart from a
typical hobbyist's activity. These cost
factors can be dealt with in two ways,
as a science and as an art. The former
is the most visible, providing subject
matter for textbooks, seminars, and
college credit. Complex as it is, it is
still based on the simple linear premise
that 2+2 really does equal 4, and such
like. This makes it relatively easy to
read and write about.
On the other hand, what the science
deftly avoids is a large object whose
icy tip spells disaster in the deep for
the unsuspecting businessman or
professional. Etched in large letters
on the submerged"- s"u-rface, hidden to
ordinary view, is the warning, "Murphy's
Law (and Cohen's Corollary) Reigns Ever
Supreme '"
It is this murky subject, the center
of many a hallway conversation among
insiders, and rarely discussed as the
computer systems vendor plies his trade
among the innocent, that will be
emphasized in this paper.
have an electronics background." This
challenge is not constrained by time
factors nor by responsibility to an
outsider such as your customer. Since
time is money you can see how hobbyists
can spend $10,000 in labor to repair a
computer costing $1000.
To the businessman or professional
however, equipment breakdown means at
best an added expense and at worst lost
income and a blemish on the
organization's market image. To
appreciate the significance of this
consider the following.
When a computer
system suddenly stops running, or "goes
down" or ·crashes" in the vernacular,
the obvious cost is 105S of service to
the customer. What is probably in the
long run a much more telling loss is the
loss of data base integrity. This
occurs when the transaction in process
at the time of crash gets lost (or
duplicated!), a record during update is
lost, or a spurious record pointer
change occurs. This last can result in
possible loss of a massive number of
records. The bottom line effect of all
this on your business is loss of
customer confidence.
I. Introduction
Let's look then at what must be done
to maintain uninterrupted performance to
EXHIBIT A. There is a medical clinic your customer or client at the level the
which has had considerable experience
latter's accustomed to or contracted
with computers in the last decade.
for.
And some idea of what these
Three years ag~, when operational
actions will cost in the way of capital
investment and added payroll.
microcomputers were as rare and
expensive as hen's teeth it had the good
These questions are important even
fortune to be offered on loan from a
for a computer "application- or
local government scientific organization assignment which is only periodic in
a complete micro system of the highest
nature, such as getting a payroll out
every two weeks. But they can 100m
caliber. Here was a chance to evaluate
large enough to become a pivotal factor
this new technology in a medical
in the organization's overall success if
environment and for free. The clinic
chief, wise in the ways of computer
the computer's output needs to be close
vagaries, when approached with this
to continous.
offer responded, "Sure we'd love to have
EXHIBIT B. A centralized medical
use of such a system - but only if
bora tory is planning a program which
you'll pay the maintenance costs."
11 process up to 20,000 tests a day
To 'ti:at! nouuyist, so much in evidenc..
j
return the results via computer link
here at the Compu~er Faire today, system to outlying clinics the same day; any
failure is a challenge which promises at breakdown in such a system for more than
worst a broadening of knowledge, at its
a few minutes could create a backlog
best the ego rush of successful debug
forcing delay of some results over to
and repair of a non-working
the next day. This would be considered
conglomeration of wires, chips and
intolerable in many cases by the doctors
boards. "I did it, and 1 don't even
waiting for results.
~ WEST COAST COMPUTER FAIRE
245
BOX 1579, PALO ALTO CA 94302~
Thus the problem can be seen to
warrant close study and inspired
application. Indeed so much that
journal articles and textbook chapters
are dedicated to it.
Now this
literature tends to follow the formula
of computer science publications in
general. The orientation is extremely
rational in tone and the reader is
assumed of a likewise bent. The people
in this field tend to have a heavy
background in or orientation to
mathematics. Thus you will find the
literature also based heavily on a
mathematical or statistical approach
worthy of the physical sciences. At the
heart of it all is the reasonable
assumption that 2 + 2 really does
4,
and such like. As a matter of fact the
keyword here is reasonableness. It
typifies the standard approach to
maintenance strategy, the science of
systems maintenance, and budgeting for
maintenance.
Contrasting this approach is that
ill-defined, scantily documented, and
trivially regarded collection of
anecdotal material and opinions best
summed up as the art of systems
maintenance and budgeting. It is this
aspect of small systems or microcomputer
technology that will be emphasized in
this paper.
2.
Vendor pedigree~ The vendor should
be big-name and well established, even
tho the initial price is much higher.
Avoid the fly-by-night and those without
a track record.
II.
8.
=
Some Standard Recommendations
A superficial appraisal of
maintenance would focus on the obvious,
ttaJiL_spec_s ___ o_f._ the war r.anty and
maintenance contract. The important
facets of the latter include: location
of service depot, minor parts or all
parts covered?, charge for travel time?,
preventative maintenance schedule
included?, and is service agreement on
an hourly ("on callw) or contract
basis?
However, experience dictates
considering as well, the deSign and
configuration of the system itself.
Because these decisions made long before
system purchase impact so heavily on
subsequent problems, one must focus as
well on these factors.
Accordingly,
note the following brief but
representative list of points that an
end-user would be advised to investigate
prior to purchase.
1. Buy from one vendor.
A mixed-vendor
potpourri will find inter-vendor finger
pointing at the time of breakdown, each
one accusing the other as the basic
culprit.
WEST COAST COMPUTER FAIRE
3. Vendor wburn-in". Burn-in is the
process of pushing the hardware close to
its limits to see if it will stand up to
prolonged temperature, vibration,
humidity, dust, and electrical noise
stresses. Investigate the details of
this procedure by the vendor of your
choice.
4, MTBF & MTTR statistics. MTBF is the
mean time between failures, and MTTR is
the mean time to repair such failures.
Ask the vendor to show you his figures.
5.
Vendor warranty.
Investigate
carefully the vendor warranty details.
Consider this an important step.
6. Source of maintenance contract~ Buy
your maintenance contract preferably
from the system vendor, or as a second
choice, from one of the nationally-known
service companies.
7. Track record. Buy a system that's
been out in the field with a long,
reliable track record.
Size of system. Buy a system larger
and more powerful than necessary for the
application at hand - to allow for
subsequent expansion of the applications
environment-,-thru the-use- of
"multitasking" software.
(This
technique, allowing 2 or more jobs to be
handled by one machine at times
apparently simultaneously will be
discussed in more detail later.) By
planning ahead in this manner you ~an
save on maintenance in the long run, by
avoiding complex and unreliable
retrofits, kluges and mismatches. A
"larger than necessary" system here
could mean a minicomputer, even tho the
price is 3 to 10 times that of a micro
systeiD.
2. "Diagnostics".. Buy all the
available software packages of this
genre. They allow you to test out your
hardware in a routine and thorough
manner, often enabling you to antiCipate
system failures before they cause a
total "crash".
10. IC chips soldered in~ Buy systems
with the chips soldered, not socketed
246
BOX 1579, PALO ALTO CA 94302
in. The latter technique is a source of
intermittent failures.
11. Mass storage peripherals.. First
choice for small systems is the "floppy"
or flexible disc, with digital cassette
or 3M cartridge devices for backup.
12. Memory. First choice is high
density dynamic RAM, because of low
power and chip coun.t - therefore higher
reliability.
infancy to ensure getting started on the
right foot. Lacking this care. troubles
will hound the system possibly to its
grave. So until this stage is reached
you can't consider visits by service
personnel as part of maintenance costs
and loss. When the system is completely
debugged and performing to vendor specs
for say a month, subsequent breakdowns
are then properly in the category of
"downtime", or failure.
III.
Observations on The Fore£oing
13. Printer speed. In general buy the
Plus Some Mayerick Recommendations of my
fastest printer you can reasonably
..2!!.!!.
afford.
(By the way, low speed in the
big-name world means about 200
1. Single vendor systems. In the first
characters per second or somewhat less
place when you're dealing in small
than 200 lines per minute. Medium speed systems never buy from ANY vendor. Buy
is about 600, and high speed goes up to
instead from your local retail computer
an astronomical 30,000!)
shop. People you can talk to on a first
name basis and whom you're likely to
14. Install an UPS. This means an
bump into at your neighborhood
uninterruptable power supply. It should supermarket are· much more likely to be
be large enough to handle the power
responsive to your needs. In the second
requirements of your entire computer
place if you buy what are called S-100
system.
products, you can count on a relatively
high degree of inter-vendor
15. Ambient temperature. Keep your
compatability. More on that later.
computer system cool; use adequate
convection in the form of fans inside
2. "Major league" vendors. There are
the chassis, and air conditioning in the no big name vendors whose primary
room.
business is small systems. Avoid the
minicomputer firms and the big
16. Nicotine. Avoid smoking in the
semiconductor manufacturers for whom
computer room - the fumes are poison to
micro systems are only a sideline magnetic disc and tape media.
they're too big to care about you.
Besides which, the "biggies" don't
17. AC power lines and grounding. Use
necessarily use the latest technology
good filtering and solid grounding
(because they feel somewhat immune to
procedures, respectively.
market pressures?). For example, the
best support chip technology to day is
18. Modular vs all-in-one packaging.
Low Power Schottky (LS, for short). It
It's OK to buy the latter - it cuts down is more reliable than its predecessor,
on troublemaking interconnect cables,
TTL, because it produces less heat and
dust, meddling by unauthorized
electrical noise.
personnel, and generally makes for a
EXHIBIT D. DEC's PDP8 uses TTL
neater appearance.
support chips throughout.
EXHIBIT E. Persci's floppy uses TTL
19. Front panel. Your system should
support chips throughout.
include this item. It's handy in
EXHIBIT F. NLS (a biggy in test and
troubleshooting (and inCidentally helps
medical equipment) in their new model
in software debugging).
clinical lab unit uses RTL throughout.
This technology, even older than TTL,
20. TLC during infancy. There is
was already vintage in 1974, when I
another factor, not apparent to the
first got into personal computers.
newcomer in the field of EDP (electronic
data procesing), which should be
3. Vendor burn-in. Temper the standard
considered for it~ impact on maintenance advice with the fact that the modern
costs. Altho a system should operate in chip technology described just
flawless fashion the first time it's
previously tends to be quite reliable
powered up - that almost never happens.
once you're past the "infant mortality·
A computer system, like people, needs
stage.
(This is chip failure within the
lots of tender loving care during
first several hours of use.) If you do
~WEST COAST COMPUTER FAIRE
247
BOX 1579. PALO ALTO CA 9430~
feel you need it for your application
environment don't rely on the micro
vendors. They do very little of it.
Instead have the local retail shop where
you buy your system do it for you.
4.
Ah. the beauty of those neat MTBF
and MTTR statistics I So crisp, so
scientific, so neat, so precise. So
valuable?
At the outset the one thing to keep
uppermost in your mind is that these
MEAN figures apply only to Mr. MEAN
End-user. He sits right in the middle
of the bell curve of probability. Way
off to one side of him is the fellow
whose equipment never breaks down. But
off to the other side is the fellow
whose equipment fails before he even
gets it out of the packing carton.
Now
no vendor will ever guarantee that
you'll always fall between Mr. Mean and
Mr. Superlucky - but many of their
salesman will. But not in writing.
To put it another way if you need to
rely on 5 years between breakdowns you
can't pick a system with a MTBF of 5
years (even if such were available).
You'd need a system with a MTBF of FIFTY
years. To ignore this unpleasantry is
courting a case of the "pre-demo blues"
and full-blown operation of Murphy's
law.
EXHIBIT Fa. A large Bay Area service
organization had planned for close to a
year in 1976 a demo for top echelon
management of a complex multi-station,
ltI_ul ti ...tas k e d __ s-y_s_ tern.
A.sD -da y _
approached everything began to fall into
place, a tribute to the careful
planning, competence and experience of
the EDP (Electronic Data Processing)
staff. By a week before the demo
everything was pretty well sown up.
Confidence was building for a successful
performance on which would be pinned the
hopes for the new budget. Confidence
increased further in the last few days
as everything continued to fall together
right up to the eve of the big day.
THEN the system crashed, too late to
pick up the pieces in time for the
visiting dignitaries, who witnessed a
limping, anemic ghost of what was once a
vibrant template for future glory.
EXHIBITS Fb, c, and d. Three
similarly painful experiences, on a
smaller scale, with the first of my two
systems in the past year.
By the way, have you ever noticed
something peculiar about luck, that
phenomenon which is the'basic reference
point fQr all statistical validation except the statistician calls it
WEST COAST COMPUTER FAIRE
"chance"? Anyway have you noticed how
so much of life demonstrates that the
lucky get luckier and the •••••••• you
know the rest?
This may seem like rambling off the
subject, but I'm reminded of how when I
pull up to a toll gate pay station (or a
supermarket checkout counter) I always
look for the quickest line - and usually
get the slowest. What bears mention is
that altho I figured I must be a rare
one, it's surprising how many others
turn out to be members of the same
club.
And sort of inversely related to this
is how a fellow intern back in the '50s
made more money a to the end of every
month than he got in hospital salary
($1251) - by beating us all at poker for
12 months straight.
5. Vendor warranties. Forget it, in
the micro field. They're worthless in
terms of turnaround time (up to three
months) - another reason to buy local.
(See the following.)
6.
Maintenance contracts. The micro
vendors don't offer them, and the
national service companies don't have
the necessary experience with the small
systems. Again buy local, including
your maintenance contract.
{.
Products with long track record.
Forget it. The entire market is only
two years old.
8. Buy a larger-than-necessary system?
Don't, don't, don't. Buy the minimum you
need for ~he application at hand.
Discovered another application later?
Buy another minimum system. For each
added major application add another
stand alone system, as close to
identical as possible in hardware and
software to your previous systems.
Consider The Alternative. With
today's labor costs in the form of
programmer's wages, custom software
implementation of the multitasking
you'll need can cost 5 to 10 times the
equivalent in hardware.
More on Multitasking. Just to ensure
proper understanding of this point a
moment's digression into some details.
This technique allowing two or more
applications to be handled by one
machine, at times apparently
simultaneously, actually is a process
akin to juggling 87 balls in the air at
once - the computer's software
248
BOX 1579, PALO ALTO CA 94302
interweaving the multiple applications
or "jobs" one between the other. The
technique harks back to the days when
the only hardware available were maxis
and minis which cost so much per system
that you were easily persuaded to
squeeze out the maximum performance per
piece of hardware bought.
In fullblown versions used on the
biggies it involves developing
techniques for "queing" one job after
another according to priorities, error
checking of a complex nature, and
complicated "rollback and recovery" of
data when the system eventually crashes.
It is responsible for a large software
"overhead", i.e., software which is not
earning you any money, while using up
your computer's resources, both memory
and processing speed or "throughput".
Furthermore this is the kind of software
that can take man years to develop and
therefore costs plenty. It also helps
to make the science of software
development mysterious and their
practicioners irreplaceable. Further,
one would have expected by now something
that complex and expensive would have
made the large central computer systems
"bullet proof" or impervious to error.
It is certainly in part responsible for
the somewhat unsavory reputation that
computers have earned in non EDP circles
over the past 20 years.
EXHIBIT G.
In July 1977 I applied
for a Sears credit card. When it
arrived it showed a purchase made in
mid-June, 2 weeks before I ever saw the
card. So I wrote to the special place
you write to at Sears when there's any
problem with your card. Well, they've
been dunning me ever since, the monthly
finance charge ever increasing. My next
move is to cut the card up in small
pieces, staple it all together with my
latest bill and ship it off to Mr.
Roebuck.
EXHIBIT H. BART - spells Bay Area
Rapid Transit, San Francisco's new train
system. It also spells fiasco in
connection with its originally designed
·computer control system.
EXHIBIT I. Social Security. One of
the computer scientists I work with
knows of at least eight other SS card
holders with his number.
EXHIBIT J. Fill in your own
favorite.
varies with local climatic and other
factors - let you local shop make this
decision.
11. Mass storage peripherals. First
choice is not floppies but MINI
floppies, in particular North Star. For
backup don't even consider digital
cassette or· 3M cartridge. Instead buy
another North Star - it's in the same
price bracket.
If mini floppies don't
meet your memory capacity needs bypass
the full size floppy and go right to
fixed discs. You'll thank me.
How can 1 make such a recommendation
in the face of the floppy's popularity?
Well, the full-size floppy mechanicals
are very tricky to align before you can
get rock solid reliability. Then in
about 6 months you may need it again.
The mini floppies on the other hand have
different physical dimensions (less
inertia?) which make their tuneup easier
to obtain and maintain.
Where do I get
this information? From end users, not
from magazine articles.
12.
RAM memory preference. Spec your
system to avoid dynamic RAM - it's too
flaky with high speed peripherals using
DMA (direct memory access), such as
floppies and some graphics displays.
Order instead FULLY static boards. Also
avoid super high density boards such as
64K or 32K boards. Spec your system in
increments of 16K. That way, if a chip
goes bad on one board in a 64K system
you can still operate in a degraded mode
with the other three.
13. Printer speed.
In general 1
recommend the opposite: buy the slowest
printer you can get by with.
(What you
can get by with may surprise you - as
will be described later.) Slower
printers tend to stand up longer.
Remember: "Speed kills."
Install an UPS.
EXHIBIT K. Somebody accidentally
trips on the line cord to the computer
and pulls the plug.
EXHIBIT L. Margaret, your secretary,
is freezing because you won't turn up
the thermostat to 80 degrees, so she
quietly brings to work one day her 12
Amp portable space heater and plugs it
into the same 15 Amp circuit your 3 Amp
computer is on. Everything's fine from
9. Vendor diagnostics. There's hardly 9 to 930 AM with all transactions
any available so have your local
uneventfully processed and stored in
retailer write it for you.
RAM, at which time the program turns on
your 3 Amp printer to get some hard copy
10. Soldered or socketed Ies. The need and
presto! -- the circuit breaker
WEST COAST COMPUTER FAIRE
14.
249
BOX 1579. PALO ALTO CA 94302
pops and so does all your data from 9 to
Or worse yet, your disc
operating software gets bombed, too.
930 AM.
15.
Keep cool.
Yes.
16. Avoid nicotine,
computer cancer.
Yes, it prevents
17 • . Watch AC lines and ground well.
Yes.
18. All-in-one packaging of system. INSTANT DEATH from a maintenance point
of view. Go modular all the way. This
point is so important that it will be
covered in detail later.
3.
The Nitty Gritty., Which brings us
into the nitty gritty of my unorthodox
approach to budgeting for small systems
maintenance. My prescription for the
typical business application which,
altho not non-stop does have significant
deadlines to meet, is Simple.
BUY TWO OF EVERYTHING. Two complete
systems. Two computers, two sets of
identical software, two sets of dual
mini floppies, two backup storage
devices (mini floppies again?), two
keyboards, two video monitors, two
printers, and lastly two complete sets
of interconnect cables.
(Ignore this
last item and the whole deal is off.)
This strategy has three things going
Front panels.. Avoid them like the
for it. The first is the ability to
plague. The only one who might want one keep operating during a critical phase
is your maintenance man, and he'll leave of activity when one computer crashes.
it in his toolbox on many jobs.
True you lose the data that was in
transaction and you can lose records,
20. TLC during infancy. Amen. Another but with proper mass storage backup that
reason to have service personnel close
barb can be dulled. Just flip the
by, which means your local computer
store, again.
switch of the other system and transfer
19.
your work to it.
(If you get your
retail store to write some software and
add some minimal hardware you can get a
1.
"On Line" And "Real Time".
semi-automated transition from one
Computer people bandy about two terms
you should become familiar with, on line system to the other.) You've spent
twice as much in capital outlay in
and real time. There are many
exchange for almost instant repair
definitions extant, but all you need
remember is that some applications allow service, unobtainable any other way at
any price.
the computer to work in spurts, with
J~9ngpauses forresu~ci tation in between
The' second advantage"'ha-s-'t-o- -do-·wit·h
- a-n·d at' the o·ther·e·n"dor the scale ·sarife
that
low speed printer I recommended
applications require the computer
earlier. By using your backup computer
working 24 hours a day, ? days a week
with nary a skipped heart beat. Now the that is otherwise idle, to drive your
printer you can overlap your application
closer your application is to this
functions in time.
For example you can
continuous type of affair the more on
be talking to one computer via its
line or real time it'll be considered.
keyboard while the other is printing
A piece of advice. If you're
out your three hour report, but you
planning an application which could
could care lese
In this manner you can
classify as pretty much on line or real
usually do quite well with a 15 CPS
time -- STOP AND RECONSIDER.
(characters per second) printer where a
60 CPS would be considered the bare
2. "Non Stop". But suppose your
application calls for nothing less than minimum, or a 30 instead of a 120, etc.
the extreme, a continous run? It's then (This same strategy can be considered if
you're trying to get by with a low speed
logically enough, labeled non stop.
More advice. If you're planning this mass storage peripheral, the audio
kind of an application -- STOP AND DON'T cassette, which can be quite reliable if
properly set up.)
RECONSIDER o
Unless your retail shop can configure
The third and most important
your hardware and write enough software
advan~e
I save for last. It is the
to give you the micro systems equivalent
of what Tandem Computers, Inc. claims in key element in a novel concept of
computer technology, geared to match the
their ads they can do with their large
microcomputer's role in the increaSingly
system.
(If you're interested they're
popular EDP trend towards "distributed
at 20605 Valley Green Drive, Cupertino,
intelligence" thru "distributed
CA, 95014.) Their system is what is
processing".
What these imposing
called "multiple redundant".
IV.
Even Stranger Recommendations.
~WEST COAST COMPUTER FAIRE
250
BOX 1579. PALO ALTO CA
9430~
phrases really mean is that instead of
relying on one large computer to do all
your work, you spread out some of this
work by using a network of small
computers scattered around the
hinterlands.
In effect you trust your eggs to more
than one basket. This trend is having a
salutory effect on the whole industry,
making systems less vulnerable to -total
crash-. When the big one goes down
people out in the boondocks can still do
some work while waiting for the system
to come back up again. It's cheaper.
It's also less complex and mysterious.
(The enormity of the software problems
associated with one computer doing
everything was referred to earlier.)
Distributed Maintenance Protocol •.
Settine The Stage.
The success of
this strategy will depend on your local
computer store for three things.
1. A contract for repair of the
defective equipment you track down with
this method. It should specify the
maximum -turnaround time" you think
you're application can tolerate. One to
three weeks will usually do for typical
applications. (You'll save a bundle
right there.)
2. Developing software, in the form
of a short diagnostic package, that will
tell you when in the course of your
testing you've in fact bumped up against
the troublemaker and have the system
runnable again. This message will
ordinarily be in the form of video
screen prompts.
3. Installation of an electronically
simple yet very effective monitor that
tells you if your power supply secondary
voltage outputs (usually 3) are ~n good
health. This will be in the form of
little red pilot lights set into your
(otherwise blankl) front panel. Or they
can be installed inside the computer
Distributed Maintenance. I recommend
we start doing the same thing, now, with
the maintenance process. In a phrase we
need what I like to call DISTRIBUTED
MAINTENANCE. Spelled out this means
that instead of relying on a central
repair source (the vendor, or a national
repair organization) we get this service
out into the field as close as possible
geographically and timewise to the one
who signs the bottom line, you the end
cabinet away from the high voltage end
user.
of your power supply, which should have
a protective barrier placed over it by
EXHIBIT M. An excellent example of
this kind of thing in actual practice is the shop personnel. This is so you
can't monkey with it accidentally or on
described by a resourceful Canadian,
purpose. Using thi s last a"rrangement
Jean Francois, in connection with a
the lights should be in clear view on
large minicomputer system he runs for
lifting off the computer cover.
the Ministry of State for'Urban Affairs
The importance of these monitor
in Ottawa, published in DATAMATION,
lights is this.
If any of" them are out
August 1971. This article should be
it meansyou've lost one of the
must reading for you.
voltages; you should PROCEED NO FURTHER
with subsequent tests, but get your
But let's suppose you can't see your
maintenance man on the phone.
way clear to buying 2 of everything.
Fortunately this will be a rare
Then with one system at your disposal
occurrence •
your best bet would be to sign up with
your local computer store for as close
First Phase. Swap modules or
.to complete coverage as you can afford
subsystems, one by one, FROM the known
(and the store can provide). The
good TO the crashed system. Be sure the
contract specs to check apart from the
power is off both systems as you're
usual are: what is the guaranteed time
making each swap.
Off how long? Long
to arrive, and what about nites,
enough for the capaci tors' to discharge =
weekends, and holidays? Expect to pay
from 10% to 30~ of the system's purchase when the blower fans stop rotating. Do
Here'S
price annually, depending on whether you this until you find the troubleo
a good sequence to follow: interconnect
get minimum or -total- time coverage.
cables, mass storage device, video
With that kind of annual cost facing
monitor, keyboard, printer, and finally
you, my proposal of 2 of everything
the computer itself. By now you'll have
seems less outlandish.
found out which module isthe problem.
If it's any but the computer it's a job
for your retail store.
If it is the
computer go on to the second phase.
WEST COAST COMPUTER FAIRE
251
BOX 1579. PALO ALTO CA 94302
4.
Second Phase.
Remove the cover from
each of the computers. Start swapping
boards, one by one, in the same manner
you did with the modules previously
(Remember, power offl).
A good sequence
to follow: memory boards, mass storage
interface board, I/O board, and finally
your CPU card or board.
Maintenance in a small town.
With
all this reference to relying on your
local retail computer store, what if
you're in a town with no such source
available? Well in that case what might
otherwise appear to you 'as a luxury,
distributed maintenance, becomes a stark
necessity.
Simple Procedure~ Remember, don't
ake this a complicated procedure - do
it "by the numbers", preferably written
down on a large cardboard placard placed
on the wall near your system. Teach
yourself the technique first, then you
secretary, nurse, bookkeeper, office
boy, or Girl Friday.
A maximum of maybe
1/2 hour using almost no technical
expertise, is all you'll need to track
down most troubles that can arise.
You
can then in a more leisurely fashion,
send the defective piece of equipment to
your retail shop where routine (and thus
less costly) repair at the component and
IC chip level can be performed.
One Proviso.
Even with 2 of
everything don't even consider a
near-non stop application if you're
located in places like Last Chance,
Kansas or Winnemucca, Nevada. There
you'll need THREE of everything.
Also
you'd better consider making a -special
(and costly) contract _with the nearest
retail store with provisions for~)
the
technical personnel remaining on site
until the system's thru its infancy and
TLC period, and~)
paying them only 1/2
the total purchase price on delivery,
the other half after certain clear-cut,
mutually agreed upon tests can be passed
by the system's operation.
If you can't
get this kind of arrangement consider
(a) foregoing the pleasures of rural
life and moving to or near an "ugly big
Equivalent Performance. To achieve
the equivalent performance in terms of
ultra short downtime and repair of
defects would require keeping a full
time computer tech on your premises (and
payroll), AND he would have to have
available a full set of replacement
parts to achieve his goal. That salary
in today's market is $15,000 and up a
year. Then add the equivalent of "2 of
everything" anyhow.
Cheaper in The Long Run.
Distributed
maintenance; madepos-sible by modern
technology, will move computer science
considerably closer to the kind of
performance you the businessman or
professional, expected to get in the
first place. This is the kind of
performance which spells business or
professional success, which translates
to more income.
To boot, distributed
maintenance is cheaper in the long run
than any other method.
No Fancy Test Equipment.
While on
the subject of cheaper let's cover a
related point. Don't be talked into
buying fancy and expensive products that
enable you to troubleshoot like the pros
do it. That's NOT what distributed
maintenance is all about -- it's about
non-electronic people using their time
to get on with their own profession.
So
don't buy a scope, a logic probe, or a
logic analyzer.
And don't get into
swapping IC chips either - you could
blow a good one after a bad one that
way.
WEST COAST COMPUTER FAIRE
city or
before,
a cheap
calling
(b) running your business as
in the manual mode - and buying
computer for use at home and
it a hobby.
5. The weirdest recommendation of all.
This one's saved for last, since it's so
obviously beyond the pale in our culture
where rationality is considered the
final criterion of any scientific
endeavor.
Right-at toe -o(ftset- or--s)istems-----planning, before you even look at your
application needs, step back and ask
yourself this question, and then answer
it as honestly as you can.
"Am I (a)
conSistently lucky in business or
technical ventures, (b) lucky as often
as unlucky, or (c) consistently
unlucky?"
If the answer is (a) then much of my
ramblings can be- ignored.
If it's (b)
i t ' l l pay you to reflect on them.
If
it's (c) you're in the same boat I'm in,
and to ignore my warning~ augers well to
bring you deep grief and near insanity
in the form of slipped schedules and
broken promises.
(Take heart tho in the
maXim, "Unlucky in technology, lucky in
lovel")
v.
Summary
This paper has emphasized the more
quirksome aspects of small systems
maintenance problems. The major points
made were>:
252
BOX 1579. PALO ALTO CA 94302
1. Cost-effective maintenance decisions
depend heavily for their success on
making the correct choices long before
the system goes down. As a matter of
fact, it is at the time of original
spec'ing out the system to be purchased
that most of the die is cast.
2. The single most important aspect of
the system specs includes
a.
depending on purehase of 2 of
every piece of equipment, thus allowing
b.
the full exercise of the
distributed maintenance concept.
Spelled out for small systems it
means doing in-house swapping of
interconnects, modules, and boards,
backed up by a firm contract with a
local reputable computer retail store
for actual repair of the faulty
eqUipment.
VI.
How to Evaluate This Paper
After reading this far if you're a
businessman or professional concerned
about how he spends his dollars, you
should be asking the question, "Sure
this presentation is witty and
provocative, but does he know what he's
talking about?" And if you ask this
question you've got to ask the next
question, "Who can I ask to get the
answer to my first question?"
The Experts. So you're left to turn to
the "experts" and the "authorities" in
the field. Several things to remember
about these fellows hov~ver.
1. The field is so ne~ there hasn't
really yet developed a large cadre of
knowledgeable oeople.
2. Then there are those experts whose
expertize is in the mini and maxi
computer field. Therefore they're
likely to give you the standard list of
recommendations that are valid in their
world.
Ipso facto, most of my
unconventional recommendations will be
"thumbs down" for them.
3. Of those real experts we're looking
for there are 2 general categories:
a. The ones who've decided to
capitalize on their know-how - they
become vendors and computer store
proprietors (I'm fortunately acquainted
with some real -honest ones, but you've
got to be knowledgeable in the first
place to recognized this honesty.)
b. The other kind who are hard to
find.
They're usually not in the market
place selling their know-how but busy
~EST
COAST COMPUTER FAIRE
in their labs having fun. You won't
find them in the yellow pages.
The 87-foot monster.
But wait,
there's more yet.
Filling this void
then is the 87-foot monster live been
making the butt of my argument
throughout this paper, the vendor
salesmen. He's dangerous for you
computer system's welfare, because 1. He's more accessible - you'll run
into him everywhere: at the trade shows,
on TV and Radio commercials, and in the
slick business magazines.
2. He's got less scruples.
3. Mathematical and statistical "facts"
are great tools in his hands to blur
your vision of the nitty gritty you
should be appraising instead.
The Saving Grace.
With all the caveats
just mentioned where then can you turn?
The answer is actually pretty straight
forward. Go to your local retail store
and ask for a list of the purchasers of
10 or 12 complete business or
professional systems they've installed I
prior to 6 months ago, and are presently'
serving on a full maintenance basis.
If
they haven't got that many to show you
chances are you shouldn't be doing
business with them - they have~'t got
the experience. Customers more recent
than 6 months don't bother with - that
doesn't give Murphy's Law long enough to
rear its ugly head.
Then make up a short polite note
saying you'd like to talk by phone to
them for 3-5 minutes the following week
to inquire about maintenance experience
and costs with their system. When
you're done making these dozen calls
you'll know whether I know what I'm
talking about.
VI.
Cohen's Corollary
I've enjoyed writing this paper and hope
you have enjoyed hearing or reading it.
But the alert among you may have noted
there's still one item mentioned in my
introduction that has yet to be laid to
rest, namely the enunciation of Cohen's
Corollary to Murphy's Law. You can't
have heard of it before, because this is
its first public proclamation. lt goes
like this. "When you'Ve taken that very
last precaution possible to prevent
Murphy's Law from operating in your
applications environment
THAT'S when
it probably will."
253
BOX 1579, PALO ALTO CA 9430~
MICROCOMPUTER APPLICATIONS IN BUSINESS:
POSSIBILITIES AND LIMITATIONS
Gene Murrow, President
Computer Power & Light, 12321 Ventura Blvd., Studio City, CA 91604
Abstract
floppy disk drive. This is a high
density drive; each diskette holds 315K
bytes or characters of information,
which is approximately 150 single
spaced typewritten pages. We use
either the Diablo daisywheel printer
for our word processing applications or
the Texas Instruments B10 printer for
business applications. This is not a
mini-computer, it is a micro- computer,
and as such has all the price
advantages and speed disadvantages that
micro- computers have. A 56K system
with the Diablo printer costs $B,605.
A similar system with the TI B10 matrix
printer costs $7,300. Of course
there's lots of good hardware to be
found.
It's the software and the
support and the other things that get
tricky.
Computer Power & Light, Inc. has been
installing micro- computer systems in
businesses since Fall of '76. This
presentation describes four aspects of
our experiences: a short description of
the hardware we use; some actual case
histories of customers for whom we've
provided business systems; some of the
jobs we've turned down (which is almost
as illuminating as some of the jobs
we've accepted); and fourth, some of
what we consider to be the important,
but often overlooked aspects of
micro-computing in business
applications.
Introduction
It seems to me that in the heady
atmosphere of the growth of this new
industry, a lot of claims are being
made that are somewhat fantastic. We
hear phrases like "what you can do with
these are only limited by your
imagination", at worst, to the no less
extravagant, but potentially deceptive,
claims that you can "do your payroll"
with a $6000-00 .computer. Computer ..Po_wer . .
and Light, as a company, has had to
face the music. We have had the
customers coming in, magazines rolled
up in their hands saying, "I want a
computer that will do all these
wonderful things." We've had to
educate this customer, sell him a
machine when appropriate, and then make
sure that it worked and kept working.
That's the basis of the experience that
I'm going to relate.
Hardware
The hardware we work with is our own
Compal-BO microcomputer. Campal is a
contraction of Computer Power & Light.
The machine is an BOBO based micro. It
has a serial interface for devices like
Xerox Diablo printers, DECwriters,
modems, and others. It has a video
display of 16 lines by 64 characters,
an operating system on ROM, an anywhere
from 32 to 56K of memory. We also
incorporate the Micropolis dual miniWEST COAST COMPUTER FAIRE
Word Processing
Now for some of the applications with
which we have been successful and that
you might consider as possibilities for
a micro- computer system in business.
The first application is word
prOQ~:ts.si.ng.
It seemed. like. a natural
to us. There's no number cr unching
really.so the speed of some of the
single chip micro- processors wouldn't
be a factor. Our word processor, which
is written to our own specifications,
is written in the machine language of
the BOBO and is consequently very fast.
It is used to create business letters,
assemble long documents from boiler
plate material" retype multiple
revisions automatically, send the same
"original" letter to each of hundreds
of names on a mailing list, and index
archived documents. It has essentially
three functions: an edit function, a
print function and a storage and
retrieval function. In the edit mode
you can enter text in a normal way on
the typewriter, s~roll text on the
screen, search and replace a word or
phrase throughout a text, "cut and
paste" pieces of text (re-arrange
blocks of text), bring in boiler plate
paragraphs that are stored in a
diskette library to assemble long
254
BOX 1579. PALO ALTO CA 94302
documents from boiler plate material,
retype multiple revisions
automatically, send the same "original"
letter to each of hundreds of names on
a mailing list, and index archived
documents. It has essentially three
functions: an edit function, a print
function and a storage and retrieval
function. In the edit mode you can
enter text in a normal way on the
typewriter, scroll text on the screen,
search and replace a word or phrase
throughout a text, "cut and paste"
pieces of text (re-arrange blocks of
text), bring in boiler plate paragraphs
that are stored in a diskette library
to assemble long documents and things
like that. In the print mode, you can
set up your margins, your spacing,
whether or not you want the right
margin justified, you can have four or
five different margin formats going at
the same time, you can have variable
character spacing, variable page
lengths, variable line lengths and you
can mix these up anyway you like,
throughout a document. Finally, in the
storage and retrieval mode, you can
take a document, whether it's a full
report or a paragraph or whatever, and
store it under a name that's up to ten
characters long, and then retrieve it
just by typing that name on the
keyboard.
So that's what we're doing with word
processing. We had one eye on the
Vydek and Lexitron systems when we
designed it and the other eye on the
pricetag. Our word processing systems
start at about $6,0~0.00, which gives
all of us micro- computer people a
tremendous advantage over the so-called
blind or non-video systems, such as the
IBM mag-card systems or the Xerox 800
system. And, we're about half the
price of the large video oriented
systems. Most importantly, the WORDPAL
(~s we call it) is just a program which
runs on the general purpose micro.
Secretarial Services. Who's using
WORDPAL? Well, out in Van Nuys,
there's a secretarial service called P
& S Services. This was the first
computer system we've ever sold to a
woman. Harriet Wright became very
knowledgeable about computers and
looked all around before coming in. She
told us the plight of secretarial
services. They have very demanding
customers who want the document today.
If they wanted it tomorrow, they would
bring it in tomorrow; that'old story.
The work has to be done rapidly and
accurately.
If the service isn't
WEST COAST COMPUTER FAIRE
accurate the customer would type
documents himself. Oftentimes they'll
work all day on a document only to have
the guy come back with the thing with
500 different modifications that he
wants. Or he wants all of the dates
changed or something like that. So they
need a flexibility for multiple
revisions.
Also, P & S needs to
maintain steady customers who expect a
consistent quality from her and
consistent number of formats for the
type of document they're going to be
getting from her, whether they're doing
speeches or manuscripts for a
particular publisher, or whatever. So
she was in the market for a word
processor, and being a small company,
like many of these secretarial services
are, she wanted something she could
afford and that had all of these
capabilities. And, that's why I think
she came to us. Another interesting
aspect of the secretarial service
busines~, and all you consultants
listen hard, is that they all have
delusions of grandeur, good delusions
of grandeur.
They would all like
eventually to be business services, not
just secretarial services. They'd like
to offer bookkeeping help and record
keeping and consequently they are very
interested in the data processing
capabilities of the micro- computers.
So, the final clincher for P & S
Services for us was that they knew that
they could, by just changing the
diskette, go from word processing
capability to data processing
capability. In fact, they are now
starting to use our client accounting
pac kage to keep the books of the many
customers whom they also serve as a
secretarial service.
Lawyers. The other big market for word
processing, especially in the micro
field, is lawyers.
The main thing
lawyers do, as we all know, is collate
things they've used before. There's
all this boiler plate that's sitting
out there that they just like to pop in
to a document, one section right after
the other, and assemble up a set of
interrogatories or a contract or a
will. We offer them the capability of
storing all that boiler plate on our
disk system. Once the appropriate text
is booted in off the disk, into the
computer, they can go through and tell
the computer that wherever you see the
name Gene Murrow, replace that with
Adam Osborne because I'm on Adam
Osborne's case today.
And that's
precisely what they do.
255
BOX 1579, PALO ALTO CA 94302
We hooked up with one lawyer, in
particular, who's been very influential
to us and has helped us develop a real
first class legal package. His name is
Tom Lambert.
He specializes in
personal injury cases arising from
aircraft accidents. He's a very smart
guy; he and two of his colleagues have
engineering degrees and have put in
th~ir years at Lockheed before entering
law practice. When they go after the
biggies like Cessna or Bell Helicopters
(whom they specialize in), they can
bring to bear a lot of their
engineering capability, because they
can evaluate rollover rates and all the
bad things that happen to helicopters,
for example. But the problem was that
there was only three of them; when
they'd sue Bell Helicopters, Bell would
come in with their corporate law staff
of 407 typists, 343 clerks and the
rest. Tom shared his typist with the
other three man office down the hall.
He saw our system as a tremendous
equalizer. Now when he takes on Bell
Helicopters he can spend his time
worrying about the engineering data and
his overall plans while the machine
automatically runs off fat books of
interrogatories, which is what lawyers
do to make life nasty for the
opposition. The interrogatories often,
in an aircraft case, run three and four
hundred pages per plaintiff. Often it's
a lot of boiler plate and cutting and
pasting. He used to take three weeks to
do each plaintiff's set of
Int-er-rogatorie-s,--ju-stinthe-di-sco-very
process (which is the opening salvos).
But now he's got it down to about 3
days per book, from three weeks, a
factor of seven. Plus, he's free now
to concentrate on the engineering data.
Once again, I think the clincher was
that he saw the Data Processing
capabilities. So, when he's done
preparing the interrogatories and is
ready to go to the brief, or whatever
it is, he can put in the Data
Processing disc. He has written with
his colleagues several engineering
analysis programs that will model what
happens when a 747 hits another one
broadside or what happens to a
helicopter when one of the rotors
begins to loosen. These have become
critical to his profession as he's able
to put out graphical displays of this
data that a ~ can understand. So
he's got the equalizer between him and
the large law firms plus he's enhancing
the impact of his own evidence, using a
micro- computer, right where it counts
- - in front of the jury.
WEST COAST COMPUTER FAIRE
Academics. The third application for
our micro-systems and word processing
has been among academics: professors,
departments and universities. They
have a tremendous need for storage of
yearly updated documents such as lists
of required courses or lists of'who's
on leave this year.
Plus, the
department secretaries are under
tremendous pressure to relieve the
pressure that the professors are under
in the "publish or perish" syndrome.
They've got to get a few articles out
to the journals every year and they
depend on the department secretaries to
do that typing. We hooked up with a
fellow by the name of Dr. William
Oldendorf at the V.A. Hospital in
Westwood. He told us all about lab
reports and articles to journals and
things like that and once again he
purchased a micro- computer based word
processor so he could do those reports
and submit those articles to the
journals. When the editor comes back
with 112 suggested modifications, which
a typist can't do, he can sit down and
waltz through the manuscript on the
video screen, making the corrections.
He then hands the diskette over to the
typing department or the typist who
prints it out. It's been a tremendous
help for him.
So that's word processing in three
actual applications where people are
saving money and are enhancing their
businesses right now.
The y' re not
- play-ing St-ar -Trek- w-it-h--these --machines
at all.
Accounting
The second major area, of course, is
accounting.
We wrote a client
accounting package because two or three
accountants walked into our store and
insisted that they could tell us
everything we needed to know. So we
worked with these three accountants and
c arne up wi th a' General Ledger or
Bookkeeping package that allows you to
set up your own chart of accounts and
specify what format you want your
rep 0 r t sin . -, You t hen en t e r yo u r
transactions on a daily basis or weekly
basis or hourly basis. And,at the end
of whatever your reporting period is,
whether it's a day, a month, a year o~
ten years .. ~ it'll go through the usual
procedure.- It does a trial balance in
about 70 seconds. And, if everything
eventually balances, (whiQh you hope it
does) out come an income statement, a
cash receipts journal, check register
256
BOX 1579. PALO ALTO CA 94302
journal, five other regular journals, a
complete General Ledger, a balance
sheet, any schedules that come off the
balance sheet and any subsidiary
ledgers. All told it takes about an
hour to run out all these reports.
One of the accountants that came in was
a woman by the name of Audrey Roche.
Mrs. Roche is a professor of
accounting, in fact head of the
department, at Santa Monica College.
She also runs her own business which
provides the accounting services to her
own clients. She was the one that
helped us the most in developing this
package and she's running it right now.
She has a small service bureau which
does people's books. She wouldn't have
been able to compete doing it manually
because a lot of the service bureaus
now are automated. So, she wanted to
automate and still have her own
business. And, that's why the micro.
became important. A nice side benefit
of all of this is that she sees the
tremendous movement toward this
solution. Santa Monica College is going
to be among the first colleges in the
area to offer a course specifically
aimed at small computerized accounting
systems. We're looking forward to
providing several accounting systems
for the college so that they can do
that.
Real Estate Investing
Another interesting application that we
found and that we're able to provide
micro-computer support for was the real
estate syndicators. These guys abound
in Los Angeles, where even the Arabs
are buying up property at a horrendous
rate. What a real estate syndicator
does is he gets a group of people
together and says "lets all pool our
money and buy this building and make
lots of money." The trick is to
convince everyone that it's a good deal
and not to drop out. So, what they
need, of course, is a forecast, a
spreadsheet, that tells what's going to
happen to an income property over the
years.
you don't know it you enter some data
from the Tax Assessor). Then you enter
a whole bunch of financing instruments,
which is real estate jargon for loans.
The data you enter is the amount of the
loan, the term of the loan, the
interest rate. That alone would have
been easy except these guys are always
talking about refinancing, balloon
payments, variable interest rates. For
example, you can start with three loans
and in month 27 let's say, payoff two
of the loans with a third loan at a
different interest rate, pull some cash
out of the deal at that point to pay
for the air conditioning system that
you're going to put in at that point,
which you're going to depreciate for
ten years to get a tax write off in
year five •.. So, those are the deals we
had to sort through and which caused
our programmer to lose most of her
hair.
After you do the loans you then have to
do an income package. You tell the
machine what the gross income of the
building is or what the income per unit
is and it prints out a nice list of who
the current tenants are, what the rate
per square footage is on the building
as a whole, who's way under, who's way
over, and what the vacancy rate is.
Then you put in an expenses package.
There are 20 dategories, everything
from taxes and maintenance on down to
the gardener and the swimming pool
maintenance guy. What the program does
after it chews up all this data is a
year by year forecast or a forecast for
a particular year that gives you the
bottom line-- the return on investment.
That's calculated in several ways: the
income versus the cash you put in, or
the build-up in equity, or income vs.
equity, and so forth.
We sat down with two real estate
brokers/syndicators. It was one of the
most interesting weeks we spent at the
store, and came up with a package that
does the following:
One of the biggest features of it is
that a syndicator can put in the tax
bracket of any investor before this
thing flies off and it'll tell him the
implications on his personal taxes.
That's very important for doctors and
others who often end up with too much
money at the end of the year. They want
to know what the implications are on
their own taxes if they invest in this
deal.
The program also computes
post-tax and pre-tax spendable and post
tax and pre-tax income as far as the
IRS is concerned.
You enter the purchase price of the
property, the down payment, the
depreciable basis, rate and term, (if
Another nice thing that it does is
allow you, after printing out any
forecast, to manipulate any single
WEST COAST COMPUTER FAIRE
257
BOX 1579, PALO ALTO CA 94302
variable to change the picture.
Suppose we fired the gardener, how
would that impact our income in the
year five?
The syndicator who was the first one to
take delivery of the system about five
months ago was Sheldon Allman in North
Hollywood, California. He is a former
stand-up comic. I don't know what that
says about real estate. But, one of
the things that interested him about
the machine was sort of the inverse of
what I was talking about before. He
finally got sold on buying the machine
because of its word processing
capabilities. When he's all done
running out all of these forecasts on
different income properties he then
turns to the word processor to write a
very nice cover letter and cover
description that goes "personally
addressed" to each of his prospective
clients as "this is a really good deal
for you". So he uses both capabilities
of the micro-computer.
data base with employees' names and
whether they're on an hourly rate or
salary or commission or get a
guarantee.
It has all of the tax
algorithms in it, not the tax table. We
worked back from the tax tables and
figured out what the algorithms were.
They match in every case.
It
automatically will select the list of
employees at pay day so you can run
through and just tell whether he was
there that day or that week or whatever
and it prints the checks. It does the
quarterly reports, the year end reports
and it updates the data base.
So that's some of the applications,
some of the things we've done.
It
maybe fleshes out some of the words
like "limited only by your imagination"
or "this thing will balance your
checkbook" or "play Star Trek" or
whatever. I hope I've given you some
feel for the kinds of things we're
doing.
Limitations
Retailing
Now I'd like to talk briefly about the
The final thing I'd like to mention in
limitations. I'm going to tell you the
applications is in retail systems.
jobs we turned down. And that I think
any self- respecting micro- computer
This is a current project of Computer
Power & Light. We've done the General dealer should turn down.
Ledger, we have already done a payroll
package and we've done some mailing They fall into two categories. One is
list packages. We have finished up a
that the job is too complex. The
sales anaylsis and marketing survey software is just too complex and any
package and we're working on order
dE!C!ent~y written packag~~quJd_so swamp ____ _
entr y, invoic ing, ag i ng of reCel v ables, ---the -cos-f---of the micro"':computer that you
and payables package.
might as well, since the cost of the
machine is in the noise anyway, buy a
The person who got us into that whole
mini-computer, a faster and bigger
business is Harry Margulies. Harry is machine. That may sound heretical but
that's it folks.
the owner of Beverly Stereo and
Electronics, which is one of the
venerable firms in Los Angeles. They The second category is that in some
were in it very early on when stereo
cases micro- computers are just too
and hi-fi was much the way microslow, or the storage is too limited. I
computers were a year ago-- very much a mean we've had people coming in with a
new thing. Now he has a large number of check made out for $2,000.00 who
actually needed 128 megabyte disk
employees with varying pay modes plus a
tremendous inventory problem packs.
controlling the large number of items
that a stereo store handles and all
Here are some of the ones we've turned
kinds of other things where a micro- down. Medical Group Accounting. A
doctor would come in and say "Hi, I
computer could save a lot of time and
work with five other doctors in my
money. Harry, right now, is running
building and I'd like you to ..• I've
our payroll system, which handles the
heard about these micro-computers and
payroll for all of his employees
weekly.
He also uses our mailing
I'd like you to do a system that'll
system, which is part of the word
compute all of the Medi-Cal and
processing packaging, to do direct mail Medicare payments, all the insurance
reports, keep all of my appointments,
campaigns.
age my receivables, keep all of the
Just to give you a brief description of
the payroll program ••• it maintains a patient records, and ••• " you know, 37
WEST COAST COMPUTER FAIRE
258
BOX 1579. PALO ALTO CA 94302
other assorted jobs. I think the
medical thing is going to be a tough
one to crack and we're going to have to
work on it over the next few years.
But right now I don't see any
micro-computer really providing a :ost
effective solution to the entlre
medical problem.
The second one we turned down was
scheduling classes for a school. I
don't know if you're familiar with what
it takes to do that. You might have a
thousand students and 300 teachers and
275 classrooms and 6 periods per day
and 1200 different courses. We had
several people come in, from local
private schools especially, who said
"I'd love to have one of these
micro-computers and this is what I want
it to do. Build a master schedule,
sign up the students into various
blocks once the master schedule has
been built, then print out rosters of
every class so the teacher on the first
day of class knows who's in his class.
Plus, the room assignments for the
students. And then every marking
period I want all the grade reporting
with class by class averages and
department averages and all of that."
That kind of an application will hurt
the industry if we attempt it right
now. Because people are going to say
it doesn't work. I'm convinced that it
won't work right now.
The third area that we've avoided, that
I feel represents a limitation in the
micro- computer in a business area that
we're all interested in, is
point-of-sale terminals and other
on-line or real time applications. It
brought down a company by the name of
Singer and I don't expect many of the
micro-computer companies to attack that
one right away. The micro-computer is
ideal for it but there are some other
problems. I don't know how I'd like to
handle a phone call from a customer who
calls up and says there are eight
people waiting in line to buy something
and the machine isn't working right. I
think there are so many other factors
in this that we had better tread
carefully before we all .•• with new
equipment ••• put in on-line real time
systems.
Even though I know the
equipment can do it, we have to solve
some other problems. We have to mature
a little bit as an industry before we
tackle that one I think.
WEST COAST COMPUTER FAIRE
Other Considerations
Finally, the last topic-- some of the
factors in our experience that, as a
retail store, meeting businessmen and
being out there amongst them, we've
discovered that are very, very
important and that aren't immediately
obvious to the person who's delighting
over the instruction set of an 8085
chip or something.
Service. One of- them is service. Do we
emulate IBM?
Do we say to our
customers "if anything goes wrong pick
up the phone and we'll be there in an
hour". To some extent, we have to do
that. If we are telling a businessman
that he's going to place his life
savings, the hard work of himself and
his wife, and the success of his
business on a little black box with
your name on it that he's going to plug
into the wall, we better really think
twice about service. And, that's one
of the biggest areas that we find our
energies going into.
There are some nice things that
micro-computers have going for them.
One of the approaches we use is that
instead of taking a service contract,
which is expensive relative to purchase
price (12~ of the purchase price of the
equipment, per year) we say a microcomputer is so small you can just tuck
it under your arm and throw it into the
back of your car after work and bring
it on down to the store and we'll fix
it while you wait. Which is what we
do. You can't do that very well with a
System 32 or a Vydek word processor.
So, there are some distinct advantages
to being in the micro end of this but
service is going to remain a big
issue.
Support. Another one is support. I
don't care how "canned" a package is,
the phone rings continuously for the
first three weeks that the system is
sitting in a businessman's operation.
You have to have people on hand who can
answer those questions, who can find
bugs in programs if they exist. That
one's a real sleeper. Having enough
people on hand all the time who can
answer those phone calls and straighten
things out and can also modify packages
as they need to be modified.
Software Tools. The third area is
software tools. All the little things
that the big guys have that we're just
starting to develop. Things like
utilities for sorting and data entry
259
BOX 1579, PALO ALTO CA 94302
and formatting. This is another area
where Computer Power & Light has been
working. Writing machine language sorts
for the Micropolis disk BASIC and
writing machine language data entry
packages that prevent you from entering
a four digit zip code. Things that
prevent you from entering a part number
using digits when it's expecting
alpha-numeric characters. Things like
that. It's a big area because when
you're out in the business world, you
know, the secretary might have been
hired last week and doesn't know a
computer from a Datsun.
Training. The fourth area that we have
always been strong in, and that we feel
is important, maybe others may not
agree ... is training. We say that our
training is better than Xerox's, and
we've got the affidavits to prove it.
It's an area in which we had some
experience. The people who are part of
Computer Power & Light who were
successful teachers earlier in their
careers have expended great effort in
designing training sessions and courses
that are effective. Our classes are
not an afterthought, as they are with
so many other computer companies.
They've taken a lot of our resources,
but we feel that they give us a pretty
good advantage in dealing with the
problems and remaining profitable in
-this ihdustry.I hope my remarks have given each of
you some insight into the realities of
the low- cost business computer
"revolution". I'll gladly answer any
question you may have. Thank you.
****
WEST COAST COMPUTER FAIRE
260
BOX 1579, PALO ALTO CA 94302
MICROLEDGER - COMPUTERIZED ACCOUNTING FOR THE BEGINNER
Thomas P. Bun, MBA, MSEE,
2171 Sharon Road, Menle Park, CA 9402S
Abstract
MICROLEDGER is a General Ledger system,reduced to the absolute essentials. Written in
'BASIC', it employs only two files, Chart of
Accounts and Journal. It will run in 8 kilobytes of user memory.
The package is based on a foolproof,stepby-step procedure, designed with the novice
computer user in mind. Some familiarity with
simple accounting practices is required. The
documentation includes a ready starter Chart
of Accounts for the small business user.
After entering data, changes are easily
made, both to the Chart and to the Journal.
Even after posting, adjustments may be made
promptly, both to the Profit and Loss Statement and to the Balance Sheet.
Decision problem for business accounting
Small business, just like its large enterprise counterpart, faces an early decision in
setting up its accounting practice. Should it
first deal with the most urgent parts of its
detail procedures, like inventory, receivables,
payables? Or should it in the first place, set
up an overall framework for its entire accoun~
ting? This latter alternative corre?ponds to
the proper organization of the general ledger
as the first step. The detail procedures, then,
follow as mosaic stones in a picture, whose
major outlines already have been properly defined.
The purpose of MICRO LEDGER is to supply
this overall framework for the small business
accounting. To choose this alternative is,
therefore, equivalent to the TOP-DOWN systems
approach, as opposed to the BOTTOM-UP approach.
In this way, it is easier to design procedures
that do dovetail together. The final goal, a
totally automated comprehensive system,is made
easier to achieve, since it can now be attained
step by step. When a new module is set up, no
change has to be made in old modules, since the
general frame\lTork has been set up first.
use computers before. The existing general
ledger packages were designed for more elaborate machines and for users with more resources. Typically, their use required people w·i th
computer background and training; not unfrequently, a package would require 15 or 16 files
to be set up and manipulated. Complex procedu~
res and lengthy operating manuals were involved. ~tost of todays microcomputer us·ers would
simply keep away from them, because they are
too difficult to understand, set up and run.·
Organization of MICROLEDGER
The new package is set up in the form of six
'BASIC' programs. According to the particular
hardware - and corresponding 'BASIC' version the programs may be stand-alone or chained.
Each program is intensely interactive, maintaining a "conversation" with the user and
leading him to the next step.
LEDGER1 is the input program for the Chart
of Accounts file. This is the general ledger
master file.
LEDGER2 is ·the. input "pr9gtam _ for- 'the Journal
file. This is the transactions file of the
system.See an e.xample, Fig. 1 in the Appendix.
LEDGER3 lists both files, to help the user in
checking them out and to supply audit trails
for a complete story of all transactions.
LEDGER4 runs the trial balance, displays the
result in a table and then allows the user to
ask for posting the·transactions to the ledger, Fig.2, top part, in the Appendix.
LEDGERS reports the Profit and Loss Statement
for the period covered by the journal. An
example is shown on Fig.2, bottom part.
General Ledger packages
LEDGER6 reports the Balance Sheet at the
closing date. A balance sheet is shown in
Fig.3 of the Appendix.
There were hundreds of excellent general
ledger packages available in the market. The
need for a greatly simplified new package, like
MICROLEDGER, arose when inexpensive microcomputers suddenly became available to thousands
of small businesses that could not afford to
A dual drive diskette device is recommended,
in order to enable the user to keep the six
programs on one drive, on a protected diskette, while the two data files, the Chart
of Accounts file and the Journal file, are
kept on another diskette on the other drive.
WEST COAST COMPUTER FAIRE
261
BOX 1579. PALO ALTO CA 94302
RESTRICTIONS
ADVANTAGES TO THE USER
The price to pay for such a greatly
simplified setup is relatively small. The
account numbers are kept to 3 digits and
must obey to a predetermined structure:
Many small business users may set up this
package with the sample Chart of Accounts as
supplied. The sample chart is condensed from
many actual small business users charts. This
alone may, frequently, justify its employment.
101-199
201-299
301-399
401-499
501-599
600
701-799
801-;899
901-999
Current Assets
Non-Current Assets
Current Liabilities
Long-Term Liabilities
Owners Equities
Retained Earnings
Revenue Accounts
Direct Expense Accounts
General and Administrative
Expense Accounts
Fig. 4
The number of journal entries is only
limited by the capacity of the diskette. A
typical device, like a Micropolis floppy
diskette, could contain 10,000 transaction
entries. This is much more than would be
actually required and recommended for use
in practice for a single posting.
The final restriction is the fact
that the system does not automatically
handle a multiple department situation.
EXTENTIONS
MICROLEDGER was set up to allow for
easy bypassing of this restriction. If a
U5e-l" would I-ike to- handle---A_multiple_department situation, he can set up his Chart of
Accounts for this, by using up to 10 accounts for each purpose allowing for up to
10 departments.
Each department will have its own
journal file. These will be kept on separate diskettes, with the same filename,
but a physical label differentiating each
one.
At run time, the program asks for the
name - now the department becomes identified on the report for free. And the proper
posting reference being employed, the ledger now handles the multiple department
situation correctly.
Other extent ions will be added by
COMPUMAX ASSOCIATES, the owner of the
system, by the development of additional
modules. The Accounts Receivable and the
Accounts Payable modules are being developed currently. These future packages
can be run both as stand-alone applications and as preprocessors to MICROLEDGER
since their output files are compatibe in
format with the MICROLEDGER journal file.
WEST COAST COMPUTER FAIRE
The way the chart is set up, it is very
easy to make small changes, additions and deletions for coustomization to any particular
requirement.
The balancing outputs reported at posting,
and at printing the statements, help a great
deal in detecting inconsistencies in the actual figures entered.
Once the necessary adjustments are determined by the user, these can be effected very
easily, by the use of the update options in
the programs. These allow for insertion,change
and deletion of any data item.
After the printout is finally acceptable
to the user, it becomes an ideal frontispiece
for a month of actual records. The printout is
solid, clear, readable. It will be welcome by
tax inspectors,I.R.S. auditors, accountants,
and - particularly - by the user himself.
The employment of consistent and permanent accounting practices, month after month,
take away the drudgery from the bookkeeping
chore. Instead, it becomes a pleasant and
rewarding occupation, a useful tool for the
decision making by the_small bustnes~ owner.
SUMMARY
Two premises were employed in the design
of MICROLEDGER:
- keep it as simple as possible, in contrast _to extisting general ledger
packages with too many options, files
and complications;
- make it, nevertheless, powerful enough
to accomodate the needs of a general
small business user community.
It is obvious that many tradeoffs had to
be made to accomodate these premises, that
so often lead to conflicting requirements.
It is the hope of the author of this
paper, that the product described met both
these goals satisfactorily.
It is a pleasant duty to offer my best
thanks for the significant assistance received
during the development of this product, from
the persons listed under ACKNOWLEDGMENTS.
262
BOX 1579, PALO ALTO CA 94302
APPENDIX
PLOADG-LEDGER3"
ENTER 1 FOR CHART OF ACCOUNTS LISTING, 2 FOR AUDIT TRAIL OF J08RNAL ? 2
AUDIT TRAIL OF JOURNAL FOR PERIOD FROM 07-01-77 TO 07-31-77
NBR.OF TRANSACTIONS IS
REC.:J:
DATE
1
07-18-77
2
07-01-77
3
07-29-77
4
07-04-77
5
07-01-77
6
07-17-77
7
07-31-77
8
07-31-77
9
07-31-77
10
07-20-77
07-20-77
11
12
07-22-77
13
07-23-77
14
07-31-77
15
07-31-77
16
07-31-77
07-31-77
17
07-31-77
18
07-31-77
19
07-31-77
20
07-31-77
21
07-31-77
22
07-31-77
23
24
07-31-77
25
07-31-77
26
07-31-77
27
07-31-77
07-31-77
28
29
07-31-77
30
07-31-77
READY
-.-,
~.;.
TRANSACTION
ACC~T
MICRODISKETTES TO STOCKROOM
J.STERN PAYMENT
CREDIT SALES THIS WEEI~
CHECK :J: 226 U.C.B.
J.EWING NOTE
E.P.R.I.CONTRACT
MONTHLY PRODUCTION
UNFINISHED WORK
PARTS SENT TO SHOP
BARCLAYS BANK DRAFT
ROCKWELL INTERN'TL STOCK
NEW ROOF ON SHED
NOVA 3 COMPUTER
DEPRECIATION-BUILDING
DEPRECIATION-FURNITURE
DEPRECIATION-MACHINES
"JULY SALES
CONSULTING INCOME
ROYALTIES EARNED
PRODUCTION
STOCKROOM
SUPPLIES
JULY PAYROLL
SOCIAL SECURITY
AMORTIZATION EXPENSE
DEPRECIATION EXPENSE
BILLS PAYABLE
MONTHLY OFFICE BUDGET
F~ENTALS PAIDFEDERAL TAXES PAID
NBI~
145
115
130
110
120
125
135
140
145
225
210
250
270
241
261
271
710
720
730
810
820
830
840
845
910
920
320
930
975
980
•
AMOUNT
1628
138
29603
-100
361
1151
8282
5569
6342
4516
5000
2668
12951
-1845
-4260
-352
242677
80110
3959
20193
106429
87308
42015
4191
2615
6447
58418
28900
4000
11414
Fig.l
WEST COAST COMPUTER FAIRE
263
BOX 1579. PALO ALTO CA 94302
BALANCE SHEET - MIDWESTERN MANUFACTURING CO.
DATE OF 7 - 31 - 77
CURRENT
I~SSETS
CASH IN BAN~;S
Ci~SH ON HI~N(I
NOTES RECEI"IABLE
CONTRACTS RECEIVABLE
ACCOUNTS RECEIVABLE
RESERVE FOR DOUBTFUL AIR
FINISHED GOODS INVENTORY
WORK-IN-PROCESS INVENTORY
MATERIALS-PARTS INVENTORY
PREPAID EXPENSES
4000
738
1770
10203
90541
1215
29020
35934
35315
9547
TOTAL CURRENT ASSETS
215853
NON-CURRENT ASSETS
INVESTMENTS
OTHER NON-CURRENT ASSETS
ACCUM.DEPRECIATION-BUILDINGS
LEASEHOLD IMPROVEMENTS
ACCUM.DEPREC.-LEASEHOLD IMPR.
FURNITURES AND FIXTURES
ACCUM.DEPREC.-FURNIT.& FIXT.
MACHINERY ~ EQUIPMENT
ACCUM.DEPREC.-MACHIN.& EQUIP.
AUTOMOTIVE EQUIPMENT
ACCUM.DEPREC.-AUTOMOT.EQUIP.
OTHER INTANGIBLES
18626
20139
1845
17392
6808 )
14189
12840 )
62951
21455
3994
2050 )
1944
TOTAL NON-CURRENT ASSETS
TOTAL ASSETS
94237
310090
CURRENT LIABILITIES
NOTES PAYABLE
ACCOUNTS PAYABLE
ACCRUED LIABILITIES
FEDERAL & OTHER INCOME TAXES
CURRENT INSTALLMENTS ON LOANS
24600
78954
13307
12839
192
TOTAL CURR.LIABILITIES
.
.
129892
LONG-TERM LIABILITIES
LONG-TERM DEBT
73551
TOTAL LONG-TERM LIABILITIES
73551
J
OWNERS EQUITIES
COMMON STOCI,
CAPITI~L SURPLUS
RETAINED EARNINGS
I
58154
23066
25427
TOTAL OWNERS EQUITIES
TOTAL LIABILITIES & OWNERS EQUITIES
106647
310090
Fig.2
WEST COAST COMPUTER FAIRE
264
BOX 1579, PALO ALTO CA 94302
PLOADG·LEDGER4TRIAL BALANCE FOR PERIOD STARTING 7 - 1 - 77
TO
7 - 31 - 77
-------------------~-------------------------------------------
EXPENSES
313512
INCOME
13234
TO ASSETS
71652
REVENUES
326746
TO LIAB.
58418
TO R. E.
ASSETS BALANCE LlAB.+O.E.
DO YOU WANT TO POST, Y OR N? Y
30 JOURNAL TRANSACTIONS POSTED TO CHART OF ACCOUNTS FILE.
READY
F'LOADGBLEDGERSP. & L. STATEMENT PROGRAM
-------------------------
ENTER COMPANY NAME (UP TO 30 CHARACTERS),START DATE OF FISCAL YEAR (MMDD
yy)? "MIDWESTERN MANUFACTURING CO.",Ol0177
PROFIT & LOSS STATEMENT - MIDWESTERN MANUFACTURING CO.
FOR PERIOD FROM
1 - 1 - 77
THROUGH
7 - 31 - 77
REVENUES
SALES
OTHER OPERATING REVENUE
INVESTMENT AND ROYALTY INCOME
2426"77
80110
3959
TOTAL REVENUES
326746
-----------------------------EXPENSES
MERCHANDISE FOR INVENTORY
20193
MATERIALS PURCHASED
106429
SUPPLIES PURCHASED
87308
DIRECT LABOI~
42015
LABOR OVERHEAD
4191
TOTAL DIRECT EXPENSES
260136
AMORTIZATION EXPENSE
2615
DEPRECIATION EXPENSE
6447
OFFICE EXPENSES
28900
RENTALS PAID
4000
TAXES PAID
11414
TOTAL G.& A. EXPENSES
53376
------------------------------------313512
------------------------------------INCOME
13234
------------------------------TOTAL EXPENSES
READY
Fig.3
WEST COAST COMPUTER FAIRE
265
BOX 1579, PALO ALTO CA 94302
REFERENCES
ACKNOWLEDGMENTS
The following textbooks were used during
the development of MICROLEDGER:
The following persons were of significant
assistance during the development of the
MICROLEDGER.
Earl A. Spiller: "Financial Accounting"
Irwin, 1971
Richard Mattesich"Accounting and Analytical Methods", Irwin, 1964
John Dearden &F.Warren McFarlan:"Management Information Ststems", Irwin, 1966
Anthony, Dearden and Vancil:"Management
Control Systems", Irwin, 1965
Paul J. Terrell, as President of Byte,Inc.
served as inspiration and support from the
beginning.
Mike D. Lipschutz and John K. Borders of
Microcomputer Software Associates - MSA,
contributed with valuable advice.
Boyd Wilson and Mike Black, of the Mountain
View Byte Shop, contributed with many hours
of patient help in setting up the hardware.
Zulmira McMorrow of the McMorrow Engineering
These books might be found at the libraGroup,one of the first users,cornpleted the
ries of the University of Santa Clara
first large-scale data entry.
and Stanford Business Schools.
---.-.---.".--.-.-'.-- .. --.~.. ~---.--.- ..... - .............. _....._...._..... _._----------------
-----------
..
ABOUT THE AUTHOR
"-'"
.jlil
-.'
Thomas P. Bun
President
CompuMax Associates
505 Hamilton Avenue
Pal~ Alto, CA 94301
Positions occupied by Mr.Bun have included:
senior systems analyst with Stanford Research
Institute; project manager in microcomputer
application design with Rockwell International; manager-systems with Light S.A., the
largest privately owned electric power utility in Latin America; director of Reduto,
a Brazi!ian engineering company; president
of..the.Latin ..American Astronomical League; .
member of the Council of the National Commission for Space Activities of Brazil;
management science analyst with I.S.I.Corporation and product engineer with SmithCorona Marchant Corporation. Since January
1977, Mr.Bun is president of CompuMax
Associates, a Palo Alto-based software
house, specializing in the production of
application packages for microcomputers.
.
.
.- .
I
Thomas P. Bun was born in Budapest,
Hungary. Having graduated in general
engineering,with a major in planning,
from the Budapest Polytechnical UniversitY,he worked in Europe and Latin America,finally settling in California.
Mr.Bun obtained an M.S.degree from Stanford University,majoring in Digital Systems/Computer Science, and an M.B.A.
from the University of Santa Clara.
WEST COAST COMPUTER FAIRE
266
BOX 1579. PALO ALTO CA 94302
Money for Your Business-Where to
Find It, How to Get It
Don Dible
468 Robert Rd.
Vacaville CA 95688
One of the recurrent problems that plagues most ownecmanaged businesses is the shortage of adequate capital. In the case
of new businesses, this problem can be severe.
Promising small businesses traditionally have relied upon such
sophisticated money sources as investment bankers, venture
capitalists,. and federally licensed and leveraged Small Business
Investment Companies (SBICs) for their equity capital needs. In
today's market, these sophisticated investors have many options
from which to choose. Regardless of market conditions, t..':1eir
objective continues to be the maximization of return on investment, consistent with intelligent risk analysis.
Their first option is·the purchase of securities in publicly traded
companies at bargain basement rates. Their second option is the
private placement of growth capital in young, but already established, companies of demonstrable merit. In a tight money market,
the terms of such an arrangement may be very attractive for the
investor. The investment option· representing the highest risk,
obviously, is in fmancing the start-up company. Given the first
two options, a private placement with a start-up company is, I
think you'd agree, a most unlikely choice as an investment vehicle.
What about banks? Surely, you can get a personally endorsed
loan for your business from the friendly loan officer at your
commercial bank. Not necessarily. In evaluating the financial statement of any business, a banker will pay particular attention to the
ratio of debt to equity capital. A general rule is that you cannot
borrow more money than has been invested as equity capital.
Furthermore, most bankers are not eager to lend money to new
businesses at all, preferring to wait until there is at least some
history of profitable operation.
How, then, can you assemble the resources you'll need to get
started and to keep you going until you begin to turn a profit?
Take heart; there is hope. There are, in fact, four different money
sources that can now help you stretch your business dollars: 1)
personal financial resources, 2) trade credit, 3) customers, 4)
economizing.
Personal Financial Resources
Many of us significantly underestimate the value of our personal
resources when taking a financial inventory. Let's look at some of
the more obvious (and not-so-obvious) resources you may have:
Home In the recent inflationary period, the value of practically
all residential real estate has appreciated substantially. If you have
owned your own home during this period, you are indeed fortunate. The difference between the current value of your home and
the balance outstanding on your mortgage may represent an
equity asset of between $20,000 and $50,000. You might consider
converting this asset to cash by 1) taking a second mortgage in the
amount of your equity, 2) refinancing your mortgage, 3) subdividing your lot and selling part of it, or 4) selling your house and
moving into an apartment. Every year tens of thousands of people
go into business using "house money" to bankroll their ventures.
WEST COAST COMPUTER FAIRE
Life Insurance A loan based on the cash value of your life
insurant. policies can be a low-interest source of money Niany
pohcles provide for automatic loans from the insurance carrIer at
interest rates far below the prime rate charged by commercial
banks.
SioCRS and Bonds You may own stocks and bonds that, for a
variety of reasons, you do not wish to sell. Such instruments make
ideal collateral for loans, and you can borrow anywhere from 40%
to 60% of their current value, depending on the lender.
Credit Cards and Personal Credit When you prepare your financial business plans, you will surely want to take the fullest"possible
advantage of your credit worthiness. At the same time, you will
want to minimize the amount of money that you have to take out·
of the business to meet your personal financial needs. This is
particularly true when the business is just getting started and every
dollar in the treasury is needed to finance business growth. During
this period, personal credit cards of all types and descriptions can
give you just the extra leverage you need. Instead of drawing a
heavy salary in the first year of operation, supplement your
modest cash draw with the judicious use of credit cards.
Credit cards come in a great variety of classifications: bank
cards such as Master Charge and BankAmericard, travel and entertainment (T & E) cards such as Diners dub and· American Express,
as well as cards for department stores, oil companies, airlines, and
so on. With a good credit record, it should be no great feat for you
to secure enough credit cards to give you a personal line of
revolving credit in excess of $30,000.
Now, obviously, you can't buy a carload of raw materials for
your business with your bank credit card, but you can cover a lot
of your personal expenses with it-as well as such business expenses as transportation, food, and lodging. With a little thought, I'm
sure you can come up with a variety of ways to employ credit
cards in financing your particular business.
While we're on the subject of personal credit, you should give
serious consideration to arranging for the installment purchase of
an automobile and other major consumer items before you start
your business. You'll find it a lot harder to qualify for this kind of
financing after you've started. Lenders tend to worry a great deal
about the financial stability of new small businesses and their
founders. Your credit application looks a lot better when, under
"Current Employer," you show that you have been employed
with "Solid as a Rock, Inc." for the last six years instead of with
"Shaky at Best" for the last six weeks.
Relatives and Friends I happen to consider relatives and friends
to be extremely valuable personal financial resources. Where else
can you find lenders who, simply because they like you, will
advance money on anything as risky as starting a new business?
However, do yourself and your lenders a favor. Document their
loans. Draw up a formal note showing interest charged and the
dates on which principal and interest are payable. You never know
when a personality problem may arise that could precipitate
calling the loan. That can become a~.fully messy.
Take the case of the young man~ ~hose rich aunt loaned him
$100,000 with which to start his business. The forinality of a loan
agreement was ignored. Six months later the aunt died. The heirs
then forced the entrepreneur to liquidate his business so that they
267
BOX 1579, PALO ALTO CA 94302
could each get their share of the aunt's estate.
Relatives and friends can also come in handy as cosigners. Let's
assume that you apply for a loan and the lender decides that your
qualifications are marginal. The availability of a financially strong
cosigner can swing the balance in your favor. Your relatives and
friends can prove to be very important personal assets. Don't
overlook them in your financial planning.
Trade Credit
According to a U.S. government study, trade credit constitutes a
33% larger factor in financing the business community than
that represented by bank loans. Clearly, every company treasurer
should give serious consideration to trade credit in financing a
small business.
Customarily, suppliers provide trade credit as an inducement to
their customers to do business with them. Although credit terms
in most industries are extended on a net 3o-day basis, overall
averages may stretch this to 45 days, 60 days, or even longer
depending on the condition of the overall economy and the
particular industry involved. Under the guise of "cash management," many companies make a habit of vigorously enforcing
their collection policies while simultaneously treating their
accounts payable with cavalier disregard.
Just how you handle your payables is your own business. But
you should be aware of the fact that not everybody in business
makes a habit of paying bills the day the first invoice arrives.
When it comes to making use of trade credit as a tool in
financingyour business, I recommend that you establish with your
suppliers, in advance of purchase, the best extended credit terms
you can negotiate. Depending on how hungry your suppliers are
for your business, you may be able to arrange extremely attractive
terms. Securing competitive bids will greatly improve your bargaining position. However, once you have agreed to terms of
-payment, hollOf -yOUI' commitme-n-t -if- you value your- -credit.
Nothing is more difficult than trying to operate a business when
your suppliers will ship to you only on a COD basis.
Customers
There are many ways in which customers can be induced to help
you finance your business. The degree to which they are willing to
do so depends on the extent to which you enjoy a monopoly on
the goods or services that you offer. In other words, no one will
pay in advance if he can get essentially the same goods or services
from another supplier under more liberal credit terms. However, if
you have the only game in town, you may be in a position to get
your customers to finance your business.
As you know, the telephone company, electric and gas companies, the post office, and a host of government monopolies
require deposits in advance (independent of your creditworthiness), so that you may enjoy the benefits of their services.
The same kind of policy may be applied in the operation of
certain small businesses and selected industries.
A San Francisco Peninsula electronics company, which sells
a patented device available nowhere else, provides a good illustration of customer financing. The company's customers are
required to make a deposit of one-third of the purchase price
WEST COAST COMPUTER FAIRE
when the order is placed. Another one-third is payable on delivery,
and the balance is due in 30 days. As a result of these favorable
terms of sale, this company has been able to finance a highly
satisfactory growth rate while experiencing almost no problems
with cash flow.
An extreme example of this type of financing is the case in
which the customer is required to pay the full purchase price at
the time the order is placed. You may be surprised to learn that
you have been financing certain of your own personal suppliers on
this basis for years. I am referring, of course, to magazine publishers. If you take a three-year subscription to a magazine, you may
get the first one or two issues on credit based on your promise to
pay. However, in order to continue receiving the magazine, you
must pay the subscription bill, even though you won't receive
your final shipment for almost three years.
Hugh M. Hefner, publisher of Playboy magazine, played this
customer-finance game with admirable success when he initially
offered lifetime subscriptions for $100. Obviously, he needed the
money to fmance his growth. Had the subscribers to some of the
early issues bought $100 worth of Playboy stock instead of a
subscription, they could have picked up a tidy profit.
In many industries, including a number of the construction
trades, it is usual for the suppliers to receive progress payments
when previously agreed-upon levels of project completion are
achieved. Highway construction, aircraft assembly, and other
large-sca1e projects are often financed in this way.
A special form of customer financing occurs in a number of
service and manufacturing industries. Here the customer provides
raw materials that the vendor transforms into fmished goods. In
the book printing trade, a publisher may supply the printer with
paper; in a machine shop, the customer may provide the metal to
be worked; and in a tailoring service, the customer may provide
the cloth to be fashioned into a dress or a suit. In each case, the
vendor avoids the expense of financing the purchase of raw mate-
- -rials.-Another way of getting the customer to pay in advance for
goods or services is to establish some kind of "membership"
arrangement. Here the customer may pay an annual fee for the
privilege of attending meetings. Using a similar membership
approach, some discount department stores require customers to
pay a membership fee for the privilege of shopping there.
A novel twist on this customer-backed approach to business
fmance is seen in physical fitness spas, dance studios, and other
contract service organizations. Customers sign an agreement to
purchase the service offered for a period of one or more years. In
most cases, the intentions of the customer are honorable and
sincere at the time he executes the contract. However, many
people lose interest in fitness and other self-improvement programs after a short time, and the incentive to pay the installments
on the service contract may falter. In anticipation of these longrange collection problems, the original holders sell the contracts to
finance companies at a substantial discount. While the average
individual may balk at paying the original contractor for services
not used, he is more likely to pay a finance company when
notified that it has taken over his contract. The result is that the
original contractor gets a handsome chunk of cash almost immediately after the customer signs the contract, whether or not the
customer continues to use his facilities. Once again, the customer
has financed the business, albeit indirectly.
268
BOX 1579, PALO ALTO CA 94302
6. The United States Government is the single largest consumer of
goods and services in the world. Not surprisingly, it also disposes of
enormous quantities of surplus goods on a more or less continuous
basis. For information on the sale of surplus government equipment
at locations all over the world, write to the Department of Defense
Surplus Sales Office, Box 1370, Battle Creek, Michiga.i' 49016, and
the Assistant Commissioner for Personal Property Disposal, Federal
Supply Service, General Services Administration, Room 926, Crystal
Mall, Building 2, Washington, D.C. 20406. Local representatives of
these agencies are listed in the White Pages of your telephone book
under "U.S. Government."
Economizing
In preparing your pro forma financial statements, you probably
allocated quite a bit of money for office equipment and other
capital expenditures. If you figured on buying new equipment,
figure again. Used equipment is what you want. That way, you
may find that you need a lot less cash than you originally thought.
Forget the rosewood paneled office with the Italian marble-topped
desk, too; that comes later. And most financially strapped entrepreneurs quickly learn the delights of night coach and special tour
package rates to save a few dollars when traveling. There are many
other ways to economize in the operation of your business; we'll
get to them shortly, but first let's concentrate on where to find
used equipment.
7. Classified ads provide a simple, convenient, and inexpensive means of
finding used equipment. You can consult the listings under the headings of interest to you, or you may want to advertise the fact that
you are looking for a particular item. In some iIl6tances, trade journals carry classified listings, thereby permitting you to confine your
search for specialized items to the more likely sources of supply.
1. Used equipment dealers may handle anything from office equipment
to laboratory test equipment to cash registers to display cases for
butcher shops and retail stores. You'll find these dealers listed in the
Yellow Pages of your telephone directory under such headings as
"Used Equipment Dealers," "Second Hand Dealers," and "Surplus
Merchandise." You'll also find dealers listed under generic headings
such as "Office Furniture-Used."
2. Dealers in new merchandise invariably find themselves stuck with a
variety of goods that cannot truly be represented as new. "Demonstrator" and "loaner" equipment (provided for the temporary use of
customers who are awaiting delivery of new equipment or who are
having their own equipment repaired) fall into this category. These
dealers may also have floor samples, warehouse- and freight·damaged
goods, and obsolete·but·serviceable rental equipment available at a
substantial savings.
3. Bankruptcy and liquidation auctions provide an opportunity to get
some real bargains. To secure information on where and when
auctions are to be held, consult the Yellow Pages of your telephone
directory under "Auctions" or "Auctioneers." Many auctioneers
maintain mailing lists of interested clients and send out brochures
announcing forthcoming auctions.
You may also obtain information on bankruptcy auctions by
contacting the bankruptcy court in your area. You'll find this court
listed under "U.S. Government" in the White Pages of your telephone directory.
4. Bankrupt companies that receive protection under Chapter 11 of the
Bankruptcy Act are very likely to be interested in liquidating some
of their assets. If you are lucky enough to learn about such a
company in your own industry, you are in a unique position to fIll
your equipment needs quite reasonably. Bankruptcy filings are
announced in the legal newspapers of record serving various communities across the country. Also, when a large company in a
particular industry files for voluntary bankruptcy under Chapter 11,
the trade journals serving that industry will usually carry mention of
this fact. Upon learning of such a bankruptcy, don't hesitate to call
the company involved to determine whether the owners are interested in selling some of their assets.
5. Now and then major corporations simply decide to get out of a
particular industry and shut down one of their divisions. A friend of
mine who has his own company read about such an instance in a
trade journal. He purchased a $100,000 (price when new) piece of
test equipment for a mere $7,000 cash. Then he called a leasing
company and received $45,000 for the same equipment when he
agreed to lease it back from them over a five-year period. He realized
an immediate cash infusion of $38,000.
WEST COAST COMPUTER FAIRE
Barter Bartering your goods and services is a primitive-but-fun
way to save money. It also affords cenain tax advantages. I know
of a carpenter who remodeled an orthodontist's home in exchange
for having his daughter'S teeth straightened. I also know of a
plumbing contractor who paid for his appendectomy by plumbing
his surgeon's vacation home. Radio stations have been known to
exchange advertising time for consumer merchandise to use as
premiums. The opponunities are unlimited.
Do It Yourself When the cash supply is limited and the money
for meeting a payroll is nil, you simply have to learn to do things
yourselfthat you might otherwise hire someone else to do. You
have undoubtedly heard that many small businessmen work 80 or
more hours a week. Many of these companies are also husbandand-wife operations, where the wife works virtually without pay
until the business starts turning a profit. This kind of toil may not
sound like much f~n, but it does save money.
Then, too, a lot of businessmen, in response to economic
pressure, fmd that they have many talents and skills they never
appreciated. A janitor used to empty their wastebasket when they
worked for Big Business, Inc., but they now take care of this
occupational specialty themselves. On opening a restaurant, they
may fmd that they possess the dexterity of a short-order cook.
The may learn how to write advertising copy, how to repair their
machinery, or how to operate a typewriter and a ten-key adding
machine.
In some cases where a specialist is needed but there is no money
with which to hire one, the entrepreneur may have to take courses
at a local college to learn the skill himself. It is often surprising
what you can learn to do when your economic survival is at stake.
Free Publicity Free publicity can do wonders for your business
-and the price is right. You don't have to hire a Ptlblic relations
fIrm on retainer to get it, either. What you do need is guts enough
to call a newspaper or trade journal editor, a radio announcer, or a
television personality and explain your story. If you have something to say that will be of genuine interest, educational value, or
amusement to the audience served by the medium you have
selected, you have a goo~I chance of getting publicity.
One businessman I know sent out new-product releases describing a $200 device to 12 trade journals serving his industry. He
269
BOX 1579. PALO ALTO CA 94302
received more than 1,500 inquiries in response to articles carried
in the two journals that printed his story. His total cost was less
than $10.
I could doubdess catalogue dozens of other ways of saving
money in your business, but I'd like to conclude by suggesting a
different point of view. It is easy to become preoccupied with
saving nickIes and dimes instead of figuring out how to make
dollars. Nothing succeeds like a company with the right product at
the right price at the right time. The electronics giant HewlettPackard was started in a garage in the 1930s. The company grew
rapidly with limited invested resources for a very simple reason:
the founders were selling unique and superior products with high
rrofit margins to a market eager to buy. Go thou and do likewise.
~ WEST COAST COMPUTER FAIRE
RECOMMENDED READING
Baty, Gordon B. Entrepreneurship: Playing to Win. Reston, Va.:
Reston Publishing Company, Inc., 1974.
Brady, Frank. Hefner. New York: Macmillan Publishing Co.,
Inc., 1974.
Deiner, Royce. How to Finance a Growing Business. New York:
Frederick Fell, Inc., 1965.
Putt, William D., ed. How to Start Your Own Business. Cambridge, Ma.: The Massachusetts Institute of Technology, 1974.
270
BOX 1579, PALO ALTO CA 94302~
SELLING YOUR HARDWARE IDEAS.
HOW TO START AND RUN A MANUFACTURING ORIENTED
COMPUTER COMPANY
by Thomas S. Rose
President, Astro Electronics Co.
P • .o.. Box 1429
Alameda. California 94501
Introduction
So, you're thinking about starting
your own business. You have a great
idea for a piece of hardware that will
revolutionize computerso Not wanting
anyone else to profit from your ingenuity you decide forming your own company
is the best thing to do. If that is
your inclination I have one piece of
advice for you; DON~·T: Your chances of
succeeding are about 50-50. Worse than
that, though. your chances of failure
with possible bankruptcy and personal
financial disaster are about the same.
If you are reading this you probably are not interested in taking my
original advice. Consequently. I will
give you some advice that should help
improve your chances of success. Some
of the important things you should know
about are financing, government regulations, production, marketing. organization structure, bookkeeping, and ethics.
Is This Really For Me?
The first question you should ask
yourself is what are the chances-' I' will
succeed? There is very little point in
going through all of the trouble of
starting up if you know in advance that
you are doomed to failure. As you consider the product you intend to sell
the first indication that it may fail
is the existence of similar products on
the market. For example, there is no
way you can manufacture an 8080 microprocessor and compete with the likes of
National SemiconducT.~r, Fairchild. and
the handful of others that already make
8080's. I should really say there is
one way you might compete. You could if
~u had a few million dollars to invest.
a top management, production. and marketing team and a bit of luck. If you
are like me, though, you have none of
the above. Even so, if you had the
dollars you would probably just want to
retire (I would anyway) and if you had
all those top people they would tell
you not to try competing with the Mg_
boys. Therefore, you should try to
find a product which is largely unique.
WEST COAST COMPUTER FAIRE
Let us say for example that you were
going to produce a memory board with 4K
of RAM. Now that does not sound very
unique. If you sell that 4K for $20.00,
though. you have got something. Note
that the physical ch~racteristics of
the product are not the only things
which. may make it unique.
Of course, the best kind of uniqueness is a big breakthrough. Something
akin to the invention of the vacuum
tube or the transistor is what I have
in mind here and with an idea like that
your chances of success· dramatically
improve (but are still not certain).
Consider next the size of your market. In the case of hobby and personal
computers your market is large and
growing. A walk through the Computer
Faire will convince you of that. I
have read estimates that indicate there
are J5,000~1-l or 50.000~2-l personal
computer installations in this country.
These estimates are not current. By
now there are likely to be many more
and millions of installations are foreseeable by the 1980<'s. The buyers are
there.
Price is a factor in determining the
size. of your market. The-re are more
people who can fit a $5.00 item into
their budgets than there are who can
fit a $500 00 item in:. Not everyone of
those 50,000 or whatever people will
buy your product but a lot more will
consider it if its price is low. .
Now, bring all of these factors together. Take a rough guess at how many
people will buy your product at the
price you want to sell it. Now, figure out roughly how much it will cost
you to make the product. Next, divide
your sales estimate by 2 or more and
multiply your cost estimate by 2 or
more (these revised estimates will
probably ~rove more accurate than the
originals) and determine whether or not
you will make a profit. If it looks
like you will lose money do not bother
going into business (unless you are a
philanthropist dedicated to all of your
fellow computer hobbyists).
271
0
BOX 1579, PALO ALTO CA 94302
Financing
financing than you alone can provide yru
If you have gotten to this point and will have to turn to outside sources.
still believe you have something worth- You may want to consider relatives or
while your first step in starting busi- friends. Be careful! If your business
ness is to get together some working
is a success and you failed to allow
capital. There is no manufacturing
relatives or friends to invest they may
business on Earth I know of that can
be upset that they could not share in
come into existence without moneY~3 7. the rewards. If you do include them
In the case of manufacturing the sayIng and your business fails they will also
"It takes money to make money" is an
be upset. Your relations and friends
ironclad rule.
may be more willing to assist you with
How much money will it take to get
financing than institutions which know
started? This will vary from business relatively little about you and have no
to business. You will need money to
track reoord to look at. Depending upcn
satisfy requirements for deposits for
how you relate to your friends and relvarious government agencies, to pay for atives you mayor may not want to ask
raw materials, to meet payrolls, and
for their financial participation.
for a variety of miscellaneous expenThe two major institutions that most
sese Additionally, most businessmen
people think abDut in connection with
embarking on a new venture will make at small business financing are banks and
least one very serious and costly misthe Small Business Administration(SBA).
take during the first two years of
Most of the SBA's aid is in the form of
business. If you do not want your
loan guarantees for loans actually made
business to end when that mistake is
by a bank. It is usually easier to get
made you should reserve something to
an SBA loan if your financial situation
cover it. After you have determined
is not particularly strong. In most
what you will need double it or triple
cases it is best to provide as much fiit and that is the extent to which your nancing yourself as you can. Even if
business should be financed.
that is not enough by itself a financial
The first place to look for financinstitution will look more favorably
ing is to yourself. Personal savings
upon an entrepreneur who has committed
may be your first financial source.
a substantial part of his own fortune
Some people may want to mortgage their
to the enterprise., An essential inproperty, sell off other investments,
gredient in securing financing from an
or adopt a more frugal lifestyle. Uninstitution is a comprehensive formal
less you are deeply committed to your
business plan. This may also be usebusiness you should have strong second
ful to you in encouraging or disaour-thoughts---about -moI'tgagingyo_ur_.p:rpp~rt:y...~ging; yourself in a relatively objecAsk yourself if it is worth the loss of tiv..e way-··a:s·_-y-ou·cunsideryour new·
your horne to gain the independence and
business. As an aid to preparing your
other potential rewards that come from' business plan it is absolutely esser. al
owning and operating your own business. that you purchase the book, ~ Your Own
For some people it is and by all means
Organization by Donald M. DibleZ 4:/.
they should take this action. Selling
I guarantee that as a novice entrepreoff other investments is relatively
neur this will be the best purchase
easier than mortgaging your home.
you will make.
Again. though, you must determine for
In addition to the suggestions Mr.
yourself how badly you want to go into
Dible has for a business plan you will
business. Keep in mind that the money
find an extensive list of financing
you invest in your own firm is one of
institutions. Among those he suggests
the riskiest investments you will ever which may not corne readily to mind are
make in your life. All but the most
consumer finance oompanies, credit
poverty stricken people should be able
unions, the Economic Development Adminto make the adjustment to a more frugal istration, venture capitalists, and
lifestyle. If you are unwilling to
some thirty-five or so others. His
take those steps I do not believe you
book also tells you the procedures for
have the determination necessary to
securing financing from these instisucceed in your own business. If you
tutions. If you cannot finance your
think you are unable to change' your
business with all of the various sourlifestyle then you have not scrutinized ces available your business probably is
your budget closely enough and I suggest not worth financing.
you take another look at it. Trim the
The Government
fat and perhaps some of the lean.
If your business requires more
The government is a monster. You
WEST COAST COMPUTER FAIRE
272
BOX 1579, PALO ALTO CA 94302
will have to deal with three sets of
self. The reason this method is diffigovernment; federal, state, and local. cult is that it is largely based on your
With each set you will have a plethora natural rights as expressed in the U.S.
of agencies, .bureaus, and administraConstitution. Most judges are much
tions that want some form of control
more interested in the complex words in
over your business. With every agency some statute than the simple and clear
you deal you have a couple of strawords in the Constitution and consetegies you may employ. The first I callquently do not accept Constitutional
the compliance and conciliation method. arguments. Nonetheless, signifigant
The second I call the adversary method. savings may be realized if you do not
In the first strategy you make every have to apply for endless permits and
attempt to comply with the written laws pay never ending fees·.
and regulations that apply to you. adThere are a number of agencies you
ditionally you get to know the bureau- need to be concerned about. First and
crats you deal with and by so doing se- foremost of these is the Internal Revecure the best treatment you can get.
nue Service (IRS). If you are using
For example, when I applied for a resale strategy one you should go to the IRS
certificate (business liscence) from the and ask them for all of theliterature
California State Board ot Equalization I they have that is relevant to your siwas told I would have to deposit a sub- tuation. You should explain the type
stantial amount of money as security for of business you do. Secondly buy the
payment of sales taxes. This was one of Proceedings gf ~ First Annual ~
those items I had not budgeted. To have ~ Computer Faire and read the arcontinued in business after making a se- ticle on pge 202 by Kenneth S. Widelcurity deposit of that size would have
itz~2-l.
In the article Mr. Widelitz
been impossible. I made one phone call gives you some ideas for tax savings
to a man responsible for setting deposit that you may employ. You should subrequirements and succeeded in getting my scribe to the ~ Street Journal;-5-!
securi ty deposit requirement cut in half. and read their regular collumn and freI was not beligerent and explained cooly quent articles on changing IRS policy.
and rationally to the man why I felt the You should buy the book Small Time !msize of the deposit was excessive. Doerator by Bernard KamoroffL 6'".7for his
not antagonize the bureaucrats. They
tax saving ideas and general tax comare like German shepherds. If you poke ments. After.YE. I2J!t Q!!l Organization
sticks at them they get mean and will
this is the second most valuable book
make things very difficult for you. If to buy. You should hire an accountant
on the other hand you pat them gently on who is a specialist in taxes. This is
the head they will be friendly to you.
especially important as your sales and
The adversary method is a bit more
income grow. If you employ the second
difficult but you may reap rewards in
strategy I suggest you find an alterthe long run. By the way I only recco- native bookstore and read some of their
mend this method for those of you who
tax avoidance (not evasion) literature.
elect the proprietorship and partnerOther agencies of thef'ederal governship forms of organization and not the
ment you may find yourself dealing with
corporate form. Furthermore, I am not
are the Occupational Safety and Health
advocating that you do anything illegal. Administration (OSHA), the Federal Trade
In the adversary method you make the
Commission (FTC), and the Federal' Comassumption that the government has no
munications Commission (FCC) among many
business messing around in your busines~hundreds of others.
You do not register in any way with any
If you have employees in your busigovernment bureaus or agencies unless
ness, especially in a factory or on an
the laws clearly require it. If they do assembly line you will have to be connot know you exist they cannot corne acerned with OSHA. Under a major federal
round and bother you. Even if they know act they administer certain safety code~
you are there and they start pestering The FTC deals with warranties and truth
you you should be well aware of your
in advertising. For a fine discussion
rights. You are not required to give
of warranties I suggest you read another
anyone any information which may be used article by Mr. Widelitz starting on page
against you in court. Since as a prac- 72 of the First Faire Proceedings;-2~.
tical matter any information you give
If any of your products involve long
may be used against you you need not
distance communications (farther than
give anyone any information about your- from one point in a building to anself or your non-corporate business
other point in the same building roughwhich is really an extension of yourly) the FCC may be inVOlved.
WEST COAST COMPUTER FAIRE
. 273
BOX 1579, PALO ALTO CA 94302
Of course, I cannot begin to list
all of the agencies which may concern
you in your business. If you have any
doubts about your relations with federal government agencies I strongly suggest that you do some research on the
agencies and that you hire a lawyer
competent in federal regulation.
At the state level (in California)
you have two agencies which will cause
you the most concern. The first is the
State Board of Equalization (SBOE).
The SBOE primarily deals with the administration of the sales tax. If you
are buying materials that are to be resold you will need a resale certificate
issued by the SBOE. This will allow
you to buy the materials without paying
sales tax and requires you to collect
sales tax on all final sales you make.
The second agency is the Franchise
Tax Board (FTB). The FTB is to California what the IRS is to the U.S. The
advice I gave for dealing with the IRS
largely applies to the FTB as well.
If you have any questions about any
other California agencies or agencies
in other states you should enlist the
services of a lawyer.
Regulations at the local level vary
widely. LocalitieL generally impose
zoning. thereby restricting certain activities such as manufacturing to certain specific locations. If your company's name is other than your own you
will need to file a fictitious business
name statement usually with the county
clerk.
any case I do not claim to be an expert
in this area and for further information you should consult one of the texts
available on this subject.
Marketing
Marketing systems generally consist
of three elements; distribution, pricin&
and promotion. Distribution deals with
the questions of how your product gets
from you to your customers. In the personal and hobby computer industry you
have essentially three choices; sales to
middlemen or wholesalers, to retailers.
or directly to the ultimate consumer.
To the best of my knowledge wholesalers
are an insignifigant force in this part
of the electronics industry. If you
sell to retailers you cannot charge as
much as you would if you sold directly
to consumers. However, you will have
larger amounts of sales at one time.
With the proliferation of computer
stores in the past couple of years this
can be an attractive distribution channel. If you sell directly to ultimate
consumers you can sell units at a higher
price but you will have higher expenses
as well. It will cost you more per unit
to process an order for one unit than
for twenty units.
Pricing is an important consideration. If your price is too high you
will not sell anything and if it is too
low you will lose money. You should
consider the prices your competitors are
charging. Due to rules of the marketplace the price they charge is probably
-about-the price tha-t i-s--ri-ght-f'-or you-.-Your price may vary around that stanProduction
This is probably the easiest topic
dard because of differences in such
for people who are knowledgeable about
things as quality and features.
computers. For the most part producWhat most people think of when they
tion considerations are just common
think of marketing is promotion or one
sense. Still t:ere are a few tips I
of its categories, advertising. Promocan give you.
tion involves not only advertising but
When you design your product try to
the areas of publicity and personal
use parts which are widely available.
selling as well. It is my opinion that
Every time you use a custom part your
you cannot through promotion make someproduct will cost more and it will be
one buy something he is not inclined to
more difficult to design around custom buy anyway. You can make someone who is
parts. Also, when these type of parts
unaware of your product or its features
are used you are more likely to expermore knowledgeable about it. Publicity
is favorable news or information about
ience delays in production.
Try to watch your costs. Shop ayour products for which you do not pay.
round for the best price possible for
Some publications even solicit information about your products which will apall of your materials. This is espepear for free. Publicity is clearly the
cially true if you have lots of time
best deal available in the promotion
devoted to your business and not much
area. Personal selling is most useful
money.
There are a number of quantitative
if your sales are to retailers. It may
techniques available to production man- also be important if you are dealing
agerse Generally, these are only usewith a large number of customers at one
ful in large production facilities. In time or a relatively high priced item.
WEST COAST
, COMPUTER FAIRE
274
BOX 1579, PALO ALTO CA 94302
I think that salesmen are born and not
made. I know that I could not sell a
cure to a dying man. If you have the
knack you may want to do some personal
selling yourself. It' your business requires personal selling and you do not
feel qualified you should hire salesmen
who are able.
In advertising you have two major
considerations; how much and where? For
a manufacturer about the only place for
advertising is in one or more of the
magazines that now cater to the growing
group of computer hobbyists. The broadcast and newspaper media reach too broad
an audience including many people who
are not interested in computers (yes,
some people could not care less). They
are not cost effective. Advertising is
not cheap. Prices for a small black and
white ad in a typical small systems magazine will range t'rom $200 to $300 and
will go up to around $2000 for a full
page color ad. Still, you will reach a
large number of people who may be interested in your product this way. If your
advertising budget is large enough you
can enlist the aid of an advertising
agency 0 The nice thing about an agency
is that they cost you little or nothing.
They make their money by receiveing discounts from the media that they place
your advertising in.
Ethics
Your primary obligation is to maximize your profits. The free enterprise system is based upon profit maximization. Note that profits are not
measured in dollars alone but may be
measured in such intangibles as personal satisfaction and happiness. As
long as you do not use force or fraud
to make your profits I believe you are
operating ethically.
Conclusion
I can only begin to tell you about
starting your own business in this
short space. There is much more you
will need to know. You can gain much
of that knowledge by reading the materials I have suggested. Your local community college can be a great resource
if you will enroll in some of the business courses they offer •. Ultimately,
though, the best teacher is experience.
In that experience I wish you the best
of luck.
References/Bibliography
1. Alan Kaplan, "Filling the Need for
Consumer Software", Computer Decisions, October, 1977, p. 14. - 2. Jim C. Warren, Jr., ed., Conference
Proceedings . .2f. ~.Eir.§1 West ~
Computer Fa1re.
3. When I refer to money throughout the
Form of Organization
paper I am using the definition "A
I think far too much attention and
medium of exchange". This differs
worry is paid to this topic. Unless
considerably from the legal definiyour special financing or tax needs diction which is important in some tax
tate otherwise (your accountant can help
matters.
you here) you should organize as a sole
4. Donald M. Dible, QQ Your Own Organproprietorship. Enough said.
ization, 1974, Entrepren9ur-Fress.
Available through most bookstores.
Bookeeping and Accounting
5. The Wall Street Journal is available
Since my training is in accounting I
onJmostlnewstands and subscription
could go on at quite some length about
information is available in all
issues.
this topic. I will not. As long as the
records you keep show clearly how much
6. Bernard Kamoroff, CoP.A., SmallTime
your company owns, owes, what your inOperator, Revised Edition, 1977; BeII
vestment is, how much you sell and what
Springs Publishing Company. Availait costs you to sell it you will be in
ble from major bookstores. If you
good shape. If you want to be able to
have trouble finding it write to the
handle more complex topics such as depublisher at P.O. Box 322, Laytonpreciation, double entry accounting, deville, California 95454 or have your
ferrals and accruals, and periodic rebook dealer contact Bookpeople, 2940
porting I would suggest that you contact
7th Street, Berkeley, California
your local community college for infor94710.
mation about their accounting courses.
One or two nights a week for one semester will usually qualify you to handle
all of the day to day accounting tasks.
For additional help you should seek the
services of an independent accountant o
-....WEST COAST COMPUTER FAIRE
!75
BOX 1579. PALO ALTO CA 9430~
BRINGING YOUR COMPUTER BUSINESS ON-LINE
Stephen Murtha
D/A Associates
3 Altarinda Dr.
Orinda, CA 94563
Elliott MacLennan
MacLennan &Lillie
2855 Mitchell Dr. Suite 130
Walnut Creek, CA 94598
(415)-254-7100
(415)-938-5120
(213)-926-6629
With the exception of some simple
legal formalities such as registering with local or state government
when operating under a fictitious
name etc., a person may operate as
a sole proprietor with relative
ease. From a tax point of view,
the sole proprietor simply reports
any income less allowable business
expenses as he would any other income on his tax return.
A partnership is not much different than a sole proprietorship
except in the number of people involved. As with the sole proprietorship, there are no complex
legal requirements. Even the partnership agreement may be oral.
However, this is often a hidden
trap. The nature of running a
joint venture requires that all
asp_e_c::ts oC..ru:n:ningthe_ bu.s_tn~s.s
such as share of profits and losses,
capital and work contributions, etc.
be agreed on in writing. Since
there is no legal requirement that
this be done, many partnerships neglect this step, only to be torn apart by disputes later on. For tax
purposes the partnership pays no
taxes itself, it simply acts as a
conduit for income and the partners
report their share of the income
on their tax returns.
A Subchapter S corporation is a
unique form of business created by
federal tax law. From a legal point
of view it is the same as any other
corporation and must comply with all
of the laws of the states in which
it incorporates and does business.
From a tax point of view it is very
similar to a partnership in that
the income flows on through the
corporation to the shareholders without being taxed at the corporate
level. This is especially useful in
the start-up phase of a new business
This is an abstract of a panel
discussion which we have given to
a large number of people considering entering the microcomputer
business or have already entered,
but are not beyond the infancy stage.
We will examine some of the legal,
tax, financial and tactical considerations which must be considered
for the venture to be a success.
The first topic of discussion
here is the form which the business
should take. Should it be a sole
proprietorship, partnership or a
corporation? This question can
only be answered intelligently by
examing the legal and tax environment, the nature of the business
and the way these factors interplay.
A microcomputer business can be
one of three types; manufacturing,
ret-ailihg6tc6iisul ting .-- Eac:li---Eaf~
egory has its own unique requirements in terms of capital, labor,
etc. to run it. Consideration must
be given to the number of workers
needed to run the outfit. It must
be determined if they can be hired,
or if they will require an ownership interest in the business. In
addition to this, the capital requirements of the business must be
dtermined and the most appropriate
funding secured.
There are four main business
forms used by small firms today.
They are the sole proprietorship,
partnership, Subchapter S corporation and Subchapter C corporation.
At this point lets briefly review
the salient characteristics of
these forms from a legal and tax
point of view as there is no one
form which is automatically best
for a small business.
A sole proprietorship presents
no real legal or tax complexities.
WEST COAST COMPUTER FAIRE
Robert Jones
Interface Age
13913 Artesia Blvd.
Cerritos, CA 90701
276
BOX 1579, PALO ALTO CA 94302
where there is often a net operating
loss as it can be passed on to the
shareholders instead of being buried
in the corporation. This tax treatment is for federal taxes only and
the corporation can usually have no
more than 10 shareholders in the
start-up stages.
The final form is the Subchapter
C or regular corporation. A corporation is very different from a
partnership or sole proprietorship.
State and federal laws impose a considerable number of formalities and
regulations on corporations having
to do with everything from bookkeeping, corporate minutes, to the sale,
transfer of stock, etc. Since the
corporation is legal entity separate from the owners, there are considerable tax and accounting considerations which far exceed those of
other forms. However, this same
separation leads to tremendous tax
advantages in certain situations.
Raising the capital for your
business requires a fair amount of
work and planning. The first step
is to make out a business plan.
The business plan must include detailed projections of income and
expenses,plant and equipment requirements, working capital, inventory, etc. for as far into the
future as can reasonably be done.
When completed, the well drawn
business plan will provide a documented answer to any question an
investor might have.
Considering that most people
have never done this type planning
before, help is often required.
There are three main sources; your
attorney, your accountant and the
many federal, IS ta te, and local government agencies set up to aid small
businesses.
One of the better of these is SCORE
(Service Core of Retired Executives)
which is part of the Small Business
Administration.
Choosing the investment vehicle
and the potential investors are
closely related topics. Both the
investor and the company have the
same goal in mind, namely profitibility. However, the investor will
want maximum protection of his investment while the company will want
maximum flexibility in the running
of the company. Often these two
short-term goals will be in conflict
and create problems.
There are two main ways of financing a business; debt and equity.
All investment vehicles are a variation or a combination of both.
Common and preferred stock are ownership vehicles and as such tend to
dilute ownership and control. They
pay no fixed interest or dividend.
Debt, such as notes, bonds, etc.
offer the investor a fixed rate of
interest, but no ownership or share
of the profits. Many debt instruments are convertible into equity
instruments to overcome this limitation, particularly in high growth
firms.
It is of critical importance to
note here that the company must
make sure that the proposed investment transaction complies with all
securities law including both Federal and State. Serious penalities
including civil and criminal await
the company and its officers that
fail to observe these regulations,
even when dealing with friends and
relatives or with very small firms.
The time and money invested in
weighing these factors will be returned many times over and will .
free you up to make your business a
success.
The material presented III this article is
intended for the reader's general information. The authors request that the reader
consult professional advisors prior to
applying this material to his or her specific situation.
WEST COAST COMPUTER FAIRE
277
BOX 1579, PALO ALTO CA 94302
TOWARD A COMPUTERIZED SHORTHAND SYSTEM
W. D. Maurer, Professor
Department of Electrical Engineering and Computer Science
George Washington University
Washington, D. C.
20052
Abstract
By a computerized shorthand system is meant a system having the following components:
(1) a language of abbreviations
for common English words;
(2) a microcomputer program
which accepts English words as input,
in either abbreviated or unabbreviated
form, and prints them out in unabbreviated form; and
(3) a typewriter connected to a
microcomputer, upon which is resident
the above-mentioned program.
The purpose of a computerized
shorthand system is to allow the user
to take dictation "at speed." As the
dictated words are spoken, the typist
enters words and their abbreviations
into the system, which types out words
in unabbreviated form. The result is a
one-stage system of transcribing, in
contrast to the two-stage systems presently encountered.
Fundamental Design Considerations
The idea of computerized shorthand started very simply as follows:
With microcomputers smaller than, and
cheaper than, typewriters, what enhancement to the capabilities of a
typewriter could be effected by imbedding a microcomputer within it?
Perhaps if the user could strike the
keys bz, and the typewriter would type
out the word business -- or ~ for
government, and so on -- the capabilities of typewriters would be enhanced.
It is clear even from this minimal description of the idea that it
resembles that of shorthand; so let us
look at the existing systems of shorthand to see if they could be adapted
for a microcomputer system. Ordinary
(Gregg) shorthand as it is used today,
of course, involves a number of symbols which do not appear on a iypewriter. But there are several shorthand systems which involve alphabetic
characters, such as ABC Shorthand [1]
or Speedwriting [2].
~WEST COAST COMPUTER FAIRE
A cursory glance at the principles
of these systems, however, uncovers an
immediate difficulty. The idea of any
of the presently commonly used shorthand
systems is to use a symbol to represent
a sound or a collection of sounds. In
many cases the same symbol is used for
several sounds and thus the same combination of symbols is used for several
words. Even were this not the case,
however, the same symbol or combination
of symbols would certainly be used, in
such a system, for words whose sounds
are the same (homonyms).
A microcomputer system, on the
other hand, must be able to read a
shorthand word and tell immediately what
longhand form is represented by that
word. (We have here one of the basic
drawbacks of microcomputers when compared to the human brain.) Thus it is
clear that a new shorthand system must
be developed for this application.
Before describing what such a new
shorthand system ought to be like, let
us briefly examine another alternative
to shorthand, namely stenotyping. This
-involv-es - am-ach1ne ha.ving a -keyboard
like a typewriter, but with many fewer
keys. Any combination of keys may be
struck at once, and each key that is
struck causes a letter to be printed on
a roll of paper tape. At a later time,
this tape can be transcribed to ordinary English. The fact that combinations
of keys may be struck is a distinct advantage of this system; it allows recording at 240 words per minute or more
to be done, whereas ordinary typing
takes place at 70 words per minute or
so.
The code which is used in stenotyping, like shorthand, is a sound-based
system. Not every letter of the alphabet
is represented by a single key on the
machipe; those which are not are represented by combinations of keys. However,
in all cases, it is the sound of the
letter, rather than its written form,
which is represented. A serious drawback of stenotyping is the time it takes
-- normally two years -- to learn the
code.
278
BOX 1579, PALO ALTO CA 9430~
Can stenotyping be adapted into
a computerized shorthand system? First
of all, one would have to devise special codes for the various homonyms.
The drawback mentioned in the previous
paragraph now becomes an advantage; if
you have already spent two years learning the code, a few more months relearning new codes for homonyms do not
represent appreciable extra effort.
This has, in fact, been done, and
there are computer systems which perform the transcription (see, e. g.,
[3] ) •
In practice, stenotyping is not
used in the great majority of business
applications involving the taking of
dictation. This is undoubtedly due to
the amount of time it takes to learn
the code and the attending scarcity of
(and, therefore, high salaries paid
to) people who know the code. We are,
on the other hand, concerned with a
system which can be used in business
applications, much as word-processing
systems are used.
The fact that a system such as
we are describing must be word- (and
possibly phrase-) based, rather than
sound-based, presents us with two immediate problems. One is that, obviously, not every English word can be
separately represented by a shorthand
form -- the dictionary is too big for
that. The other is that learning
shorthand for words is obviously quite
a bigger chore than learning shorthand
for sounds, because there are a lot
more words than there are sounds.
The solution to the first of
these problems is to represent only
the most common words by shorthand
forms. Any word that is not represented by a shorthand form can simply be
typed out in longhand. Thus the computer is always either in shorthand
mode, in which it is translating
shorthand into longhand, or in longhand mode, in which it is simply
copying out longhand.
Surprisingly, this turns out to
be the solution to the second problem
as well. Since any word (even a word
which has a shorthand form) can be
typed and printed out in longhand
form, it is possible to use a computerized shorthand system with only
a bare minimum of knowledge. One
learns the first few shorthand forms
and then starts typing, using only
these shorthand forms, and typing
everything else out in longhand. As
one learns more shorthand forms, one's
shorthand percentage (and, therefore,
WEST COAST COMPUTER FAIRE
typing speed) increases. Thus anyone who
has mastered ordinary typing skills can
expect a slow but steady increase in
typing speed attendant upon the learning
of more and more shorthand forms. Mistakes in shorthand are minimized by the
constant application of a cardinal rule:
if you are not absolutely sure of the
shorthand form in a given case, use
longhand.
Des ign Details
Let us now look into the details
of shorthand, treating the broadest
outlines first. What is the most commonly used key on a typewriter? Obviously
the space bar. This key is used so commonly, in fact, that in shorthand we
would like to see if we can get away
with not keying it at all. If every
shorthand form were exactly three characters long, for example, hitting the
space bar would never be needed; the
computer program would simply read
three characters at a time, look up the
corresponding word, and then print that
word, together with a space, either before or afterwards. A little thought
convinces us that the space should be
typed beforehand, not afterwards, since
words are sometimes followed by periods
or commas.
Such a system, however, is much
too inefficient. As long as no shorthand
form is an initial substring of any
other shorthand form, the computer can
tell where a shorthand form ends. The
most commonly encountered words may be
represented by single keystrokes. Any
key which does not represent a word in
this way can be the first character of
a two-character code. Any two-character
combination of this kind which is not a
two-character code can then be the first
two characters of a three-character
code, and so on.
Another immediate problem is' now
apparent: How do we know which words are
the most commonly encountered? Some are
obvious -- "the," "and," "of," and so on
-- but when we start to face the question of whether a particular word such
as "this" or "that" should be represented by a one-character code or by a twocharacter code, it is clear that something more scientific is required. Fortunately, the frequency analysis of
English words is a well-known subject,
and many such analyses have been done.
Unfortunately, almost all of these analyses were done in connection with the
teaching of children, and the materials
analyzed were children's materials.
279
BOX 1579, PALO ALTO CA 94302
One frequency analysis, however,
namely that of Kucera and Francis [4],
satisfies our requirements. Besides
having been constructed from writings
meant for adults, it is a computational analysis which avoids the pitfalls
of, on the one hand, counting all
forms of a word as the same word (see
[5], for example) and, on the other
hand, distinguishing between various
forms of capitalization, so that Time,
time, and TIME are counted as three
different words, each with its own
frequency (see [6] J for example). tn
the particular case discussed above,
Kucera and Francis tell us that "that"
is considerably more common a word
than "this." (This is plausible; we
speak of "this table" and "that chair"
but we also say "I know that he will
come," and so on, so that "that" has
two common meanings whereas "this" has
only one.) In our system, "that" is
represented by a one-letter code (~),
whereas "this" is represented by a
two-letter code (ts).
In order to-See in a bit more
detail what such a system should be
like, let us, for the moment, ignore
the codes of three or more letters. It
is clear that there are several hundred possible two-letter codes, which
already take quite a while to learn,
so that the form of the overall scheme
is determined to a great extent by the
form of the typical two-character
code. It seems natural that the typical two-letter code should begin with
the firs-t le-tYer-or -th-ecorresporid-Ing-longhand form. What does that leave us
for one-letter codes? There are, first
of all, the digits; then there are the
letters (such as x) which are not the
first letters of ;any common words;
and finally there are the punctuation
symbols. However, at least some of the
punctuation symbols, particularly the
period and the comma, are common
enough that they ought to represent
themselves; one ought to be able to
produce a comma by typing a comma.
Whatever a punctuation symbol
represents ought to be much the same,
in most instances, whether the computer is in shorthand mode or longhand
mode. However, there are two important
exceptions. In longhand mode, typing a
space signifies a space between two
longhand words; in shorthand mode,
however, spaces are not typed~ Similarly, hyphens can appear, and often
do appear, in longhand forms, where
they do not (or at any rate not nearly as much) in shorthand. Thus the
WEST COAST COMPUTER FAIRE
space bar and the hyphen may be used as
single-character codes. Similarly, the
ten digits and the letters j, k, q, u,
v, x, y, and z are used in our system as
single-character codes. The codes and
their corresponding longhand forms are
a s fa llow s:
2
3
4
5
6
7
8
9
0
1
j
k
q
u
v
x
y
z
blank
minus
to
the
for
it
is
as
a
in
was
I
be
he
at
on
of
that
by
his
and
with
It should be noted that the word "I" is,
according to Kucera and Francis, the
20th most common English word; it has
been assigned the single-character code
"1" and an alternate code "ij" as well,
for use on typewriters which do not
possess the "1" key. Of the other 19
representations, some of them (2, 4, v)
are strongly mnemonic, while others (3,
8, 9, y, z) are slightly mnemonic.
Any word that begins with j, k, q,
u, v, x, y, or z, and that has a shorthand form, has one beginning with some
at her 1 e t t e r. I n our s y stem, the two character forms of this kind are as
follows:
fy
gb
very
job
gl- ---kind
gj
John
gk
keep
gq
quite
gs
jus t
gu
knew
gw
know
ie
year
ig
young
ik
York
ir
iu
-ty
oa
ad
oe
og
oi
00
op
as
oz
your
you
yet
usually
used
under
understanding
united
upon
up
us
use
Note that f substitutes for v, a for u,
i for y, and g for any of j, k, q, x,
and z, as the first letter of a shorthand form. All other two-character
shorthand forms start with the first
character of the corresponding longhand.
(The last two forms above are interesting. The form "ik" is marked for obsolescence in a future version of the system; Kucera and Francis do not analyze
phrases, but it seems obvious that
"York" -- in this country, at least -almost always occurs as part of the
phrase "New York." The word "use" is an
example of the opposite of a homonym,
280
BOX 1579, PALO ALTO CA 94302
that is, we have two words that are
spelled the same but have different
pronunciations -- "Use this tool" and
"Put this tool to good use," for example -- and this causes no difficulty
in the system at all; the same shorthand form, OZ, stands for both words.)
Let u;-now ask where our forms
of three characters and more are going to come from. If we stick to the
rule, implied by what we have said
above, that a two-character code is
always actually a two-letter code,
then it follows that three-character
codes of the form (letter, digit,
letter) are always permissible. This
gives us a wide variety of possible
three-letter codes. Furthermore,
since all words contain vowels, and
since there are only six different
vowels, we can let the choice of digit
in such a form specify the choice of
vowel. In fact, in our three-character
codes, we use 2 to specify "a," 3 for
"e," 4 for "0," and 5 for any of the
vowels "i," "u," and "y," all of which
are less common.
Let us now discuss forms of a
word. It will clearly not do to type
a word followed by s, for example, to
denote a plural, because the computer
will take the s to be the start of the
next word. However, it would also
clearly be advantageous to be able to
follow any shorthand-representible
word by any of the three commonest endings -- -s, -ed, -ing -- by striking
only one key in addition to the shorthand. The solution we have adopted is
only slightly difficult to learn: we
use the key 6 for -s, 7 for -ed, and
8 for -ing, to be struck as the second
character of any shorthand form. It
should be clear that this does not
conflict with any of the other rules
out I in e dab 0 v e •
We have to have a way of getting
into longhand mode from shorthand
mode, and vice versa, and the character we use for this purpose is the
slash. The sentence above, for example, may be rendered in shorthand by
/We have/2/have/8/way/v/getting
into longhand mode from
shorthand mode,/ /vice versa,
/ 3/character we/oz4ts/purpose
/6~/slash.
This is of course only one possible
shorthand rendering, and a "minimal"
one at that; it uses only the shorthand forms that have already been introduced in this paper. From an ori-
~ WEST COAST COMPUTER FAIRE
ginal sentence of 144 characters we
have produced a shorthand sentence of
125 characters, obtaining a character
count reduction of 13.2% and a typing
speed increase (assuming a constant
number of characters per second) of
15.3%. In this connection it should be
noted that any shorthand form is to be
considered as learned only when the
typist can produce it in context at an
unreduced character speed (without stopping, however momentarily, to think of
what the shorth~nd form is).
If we were to represent the same
sentence, using as many shorthand forms
as possible in the abbreviation language
we are using at the time of this writing, we would obtain:
wehv2hv8wyvg8eioln;;hn/mode/
fm/short;hn/mode,/ /vice versa,
/ 3c3cweoz4tsp5p63/slasb/.
This shorthand rendering is to be interpreted as follows:
we
hv
2
we
have
to
hv
h.ave
8
a
wy
way
v
of
g8e
getting
io
into
In
long
, , (s ee below)
hn
hand
fm
from
(s ee below)
hand
hn
blank and
blank and
the
3
character
c3c
we
we
oz
use
4
for
ts
this
p5p
purpose
6
is
the
3
This time, the shorthand sentence is
made up of 85 characters, a character
count reduction of 41.0% giving rise to
a typing speed increase (again assuming
a constant number of characters per
second) of 69.4%.
It must be noted that there.are
actually two ways of getting from longhand mode into shorthand mode, or vice
versa, the other one being the semicolon. This has the effect of not inserting a blank; thus "short/hn" (with the
slash) corresponds to "short hand" (two
words) whereas "short;hn" (with the semicolon) corresponds to "shorthand" (one
word). When we have a word, such as
"longhand," which is made up of two
words ("long" and "hand") each of which
has its own shorthand form (In and hn,
respectively), we can use th;-semic;!on
twice, once to get into longhand mode
and another time to get back into shorthand mode, without inserting a blank
either time.
281
BOX 1579, PALO ALTO CA 9430~
Semicolons are used mainly for
prefixes and for suffixes other than
-s, -ed, and -ing. We have learned
above that ~ represents purpose;
p5p;ful is therefore purposeful.
Similarly, hv is have, and so be;hv
is behave.
It should be clear that an abbreviation language of this kind is
extremely tolerant of the user with
incomplete knowledge. If one forgets,
for example, that the word "short"
has the shorthand form s4t -- as this
author did when typing out the above
-- it doesn't much matter; the typing
speed increase obtained is only 69.4%
instead of 73.5%. This is in marked
contrast to the situation in natural
languages, where, for example, not
knowing the German word for "telephone" can be quite serious in Munich.
Let us now consider the period.
Most periods are at the ends of sentences, but many are not (as in a
person's initials, for example). In
our system, any period typed in shorthand mode is assumed to be at the end
of a sentence; any period typed in
longhand mode is not. In particular,
when a period is typed in shorthand
mode, it is automatically followed by
two blanks (reflecting standard secretarial practice), and the next word is
automatically capitalized. This is why
the second form of the shorthand sentence above starts with a small ~; it
is assumed that the preceding sentence
ended (as this one does ) with a period
. typed-- in- -shorfhand - mode. -K-p-e-r1od--typed
in longhand mode simply appears as a
period, without any side effects.
What if the user needs a slash or
a semicolon in the printed output? Our
solution to this problem is to use a
standard punctuation key, which is the
key immediately to the right of the P
on a typewriter (whatever symbol might
appear on that key on an actual keyboard). Typing this key (which we shall
refer to as ~ since that is the symbol
on our own trusty Selectric) followed
by / or ; or, for that matter, by any
punctuation character which appears in
lower case on the given typewriter,
causes that punctuation character to be
printed out.
For punctuation characters which
appear in upper case (as, for example,
the ones above the digits, or the colon) we have the standard capitalization ~. This is the key to the immediate right of the semicolon, which,
as before, we shall refer to as ' from
the character on our own typewriter.
~WEST COAST COMPUTER FAIRE
Typing , before any key produces the
capitalized version of the key; this includes the letters, so that 'a produces
A, for example. Typing ~a, on the other
hand, produces the ampersand, and, in
general, typing ~ followed by a letter
produces a punctuation symbol whose
name (usually) starts with that letter
or is otherwise mnemonically related to
it, according to the following table:
~a
~b
~c
~d
~e
~f
~g
~h
~i
~j
~k5
ampersand
left bracket
cents sign
dollar sign
equal sign
one fourth
r i!,h t b racke t
one ha lf
, (single quote)
" (double quote)
***** (5 asterisks)
(5 may be replaced by-2, 3,
left parenthesis
~l
minus sign
~m
numb e r sign (II)
~n
colon
~o
pru';" sign
~p
question mark
~q
right parenthesis
~r
s tar (as teris k)
~s
at (@)
~t
underscore
~u
.•• , 9)
Learning this table -- or at least
part of it -- ma'kes it easier for the
user to switch from one typewriter keyboard to another in which some of the
---cnar-ifcte-r-s-maybein different posi-----tions.
The shift key can also be used,
either in shorthand or longhand mode.
In longhand mode, it simply causes
capitalization as usual; in shorthand
mode, this is true only for punctuation
and for the first letter of a shorthand
form; any other use constitutes an error. It is less efficient to hold the
shift key down while typing something
else than it is to use the capitalization key; the use of the shift key is
retained, however, both because people
often use it out of force of habit and
because some typewriters have no key to
the right of the semicolon.
The carriage return key is used
to end paragraphs only. The program has
stored a maximum number of characters
per line, and calculates where old lines
end and new lines begin. (The ~tandard
word-processing functions of right justification and hyphenation may be added
to a system such as ours, as optional
extras.) It may be noted that, in coun-
282
BOX 1579, PALO ALTO CA 9430~
characters in our original longsentence, we have omitted the
four carriage returns and the hyphen
(in th e word "cha rac tern) that would
not be typed if the system were used.
If these are included in the calculations, the typing speed increase rises, in the best case, from 73.5% to
79.5%. When a carriage return is
typed, a new line is started, blanks
are printed (we print six) and the
first character of the first word of
the next paragraph is marked for capitalization.
Lis t Of Two-Character Codes
We now list the two-character
codes which we are using, in an order that makes ·them reasonably easy
to learn.
(1) The following two-letter
words represent themselves in shorthand:
PRONOUNS me, my, we
ADJECTIVES an, no
VERBS
am, do, go
CONJUNCTIONS
if, or, so
In addition, "up" and "us" are represented by ££ and os, as noted
above, since u all by itself represen ts the very common word "on."
(2) The following words are
represented in shorthand by their
first two letters (thus bo represen t s "b 0 d y ," c h rep res en t s " chi 1dren," and so forth):
NOUNS body, children, course,
data, education, effect, end, equipment, experience, form, idea, interest, life, mind, Mr., nature, night,
part, rate, right, road, state, will
PRONOUNS him, it's, our
ADJECTIVES all, big, black,
certain, each, even, far, full,
great, human, last, least, low,
more, old, one, own, right, same,
such, three, two
ADVERBS away, even, here, too,
where
VERBS are, came, did, end,
find, form, gave, get, had, last,
may, must, obtained, own, put, read,
run, see, should, state, will
PREPOSITIONS
about, after, behind, during, near, off, over
CONJUNCTIONS but, either, however
(3) The following words are
represented in shorthand by their
first and last letters (thus aa represents "area," bd represents
"board," and so forth):
WEST COAST COMPUTER FAIRE
NOUNS area, board, being, back,
boy, club, can, car, city, data, death,
door, days, day, evidence, field, fact,
general, group, head, half, help, heart,
history, leadership, law, man, membership, Mrs., nothing, nations, place,
problem, point, room, return, something,
states, thought, tax, world, way
PRONOUNS her, I'll, I'm, its, myself, they, who
ADJECTIVES all, any, both, better, dead, done, dark, English, every,
free, following, four, few, good, general, high, less, likely, most, north,
natural, public, red, real, recent,
small, these, this
ADVERBS back, ever, generally,
here, later, now, ,nearly·, only, probably, rather, really, .then, too, well,
when
VERBS being, began, brought,
could, can, cannot, done, doing, don't,
going, given, got, having, help, has,
looked, let, making, need, not return,
said, see, saw, say, thought, went
PREPOSITIONS around, among,
against, following, from, into, off,
out, toward
CONJUNCTIONS how,nor
(3) The following w·ords are represented in shorthand by their first
and next-to-last letters (thus cc represents "church," ..£.&. represents
" c ha n g e," and s 0 for t h) :
NOUNS
church, change, case, home,
hand, light, name, pr~sent, period,
past, research, state, time, type, wife
PRONOUNS himself, what, which
ADJECTIVES another, ·best, early,
east, first, five, left, large., light,
little, long, much, next, past, some,
their, what, which
ADVERBS again, also, once, there
VERB S become, b eli eve, change,
come, didn't, felt, found, give, have,
left, like, made, might, make, move,
present, state, take, told, type, .were
PREPOSITIONS above, down, like
CONJUNCTIONS than, though
(4) The following words (in addition to the four-letter words in the
preceding list) are represented in
shorthand by their first and third letters (thus £!!. represents "country," 3
represents "England," and so forth):
NOUNS country, England, increase,
labor, level, objective, power, report,
river, service, table, woman
ADJECTIVES different, economic,
expected, important, local, limited,
major, military, necessary, other, obj ective, social, technical, thes e
VERBS called, develop, expected,
require, would
283
BOX 1579. PALO ALTO CA 94302
PREPOSITIONS
along, before,
except
CONJUNCTIONS
because, since
(5) The following words are represented in shorthand by their first
letter and some other letter in the
given word, or "z" where the word
contains the sound of z, as indicated:
NOUNS
anything Cah) , business
(b z), co mm un i t y (c i), com pan y ( c p ) ,
development (dl), department (dm),
example (em), everything (et), eyes
(ez), government (gm), husband (hb),
headquarters (hq), hands (hz), information (ia), individual (iv), lines
(lz), members (mb), means (mz), number
(nb), newspaper (np), needs (nz), president (pd), program (pg), project
(pj), people (pp), problems (pz), reason (rs), result (rz)
PRONOUNS
themselves (tv)
ADJECTIVES American (ac), close
(cz), difficult (dc), developed (dp),
enough (eu), historical (hc), national
(nn), possible (pb), professional
(pf), political (pi), religious (rg),
those (tz)
ADVERBS
always (az), further
(fh), frequently (fq), perhaps (ph)
VERBS became (ba), close (cz),
developed (dp), does (dz), provide
(pv), reached (rh)
PREPOSITIONS between (bw), inside (ii), through (tu)
CONJUNCTIONS although (au),
therefore (tf)
(6) Finally, there are the following exceptions (somewhat analogous
to--tne-waywe-pr-o-n-ou-nce -bus y --IIbi-z ZYJ "
etc.):
NOUNS
art (aj), cut (cj), college (cx), defense (dx), feet (ff),
family (fx), God (gx), house (hx),
love (lu), men (mm), office (ox), product (pk), set (sj), school (sk), top
(tj), women (ws), war (ww)
PRONOUNS
I (ij), itself (ix),
she (sz), them (tq)
ADJECTIVES many (mx) , new (nu),
per (px)
ADVERBS almost (ax), why (wq)
VERBS asked (aq), been (bx),
cut (cj), drive (db), look (lq), love
(lu), set (sj)
PREPOSITIONS without (wz)
CONJUNCTIONS while (wx)
Each of the above lists is in
alphabetical order of the shorthand
forms involved, even though this may
not be the alphabetical order of the
corresponding longhand. Homonyms can
be easily seen to have different
shorthand forms; thus we have "there"
(g) and Itt heir" (ll), etc.
WEST COAST COMPUTER FAIRE
If a word (such as "English") has
a shorthand form and begins with a capital letter, the capitalization is automatically supplied. Note that a few
words have such common plural forms
that the plural has a shorthand form
a 11 its own; thus we have "day" (!!Y.) an
"days" (ds). In other cases a form of a
word wilY-be much more common than the
word itself, so that, for example,
"members," "reached," and "frequently"
have two-character shorthand forms,
whereas "member," "reach," and "frequent" do not.
There are many duplications in
the above lists; thus "end," "s ta te,"
and "Will," for example, are both nouns
and verbs, while "all," "off," and "see"
appear both in paragraph 2 (first two
letters) and paragraph 3 (first and las
letters). Occasionally a word will have
a two-letter code, not because it is
particularly common, but because that
code does not seem to fit any common
word; "leadership" (lE.) and "headquarters" (!!.9..) are examples of this.
Summary
A computer-aided shorthand system
has been demonstrated to be feasible.
Details of the actual computer system
which implements the shorthand translation as described here are deferred to a
subsequent paper.,
Referenses
1_0 Smith. Jos eph _We H •. , J r . , _AB C
Shorthand, Smith Business School,
Washington, D. C.
2. ITT Corp. Speedwriting Series,
Principles £f Speedwriting, BobbsMerrill, Indianapolis, Ind., 1977.
3. Koomanoff, L. G., and A. J.
Gasdor, Computer Compatible Machine
Shorthand For Expanding Careers, Stentran Systems, 380 Maple Av. W., Vienna,
Virginia, 1973.
4. Kucera, H., and W. N. Francis,
Computational Analysis £i Present-Day
American English, Brown University
Press, Providence, R. I., 1967.
5. Thorndike, E. L., and I. Lorge,
The Teacher's Word Book £f 30,000 Words,
Teacher's College, Columbia University,
New Yo r k , 1 944 .
6. Carroll, J. B., P. Davies, and
B. Richman, The American Heritage Word
Frequency Book, Houghton Mifflin Co.,
Bos ton, 1971.
284
BOX 1579, PALO ALTO CA 94302
MICROCOMPUTER APPLICATIONS IN COURT REPORTING
Douglas W. Du Brul, BSEE
5681 Mary Lane Drive
San Diego, California 92115
Phone: 714/583-3733
This paper describes a need for a
set of compatible word-processing systems for use by court reporters and
attorneys.
By taking a "systems engineering" approach to the design of an
integrated set of word processing equipments it will be possible to simultaneously improve the transcript production
process for court reporters and reduce
the cost of computerized data searching
for attorneys. The key to potential improvement is digitization of the data as
early as possible in the transcript preparation cycle.
This is a systems level article.
It describes an applications area for
small word-processing systems, describes
the manual process to be replaced, indicates possible functional improvements
which may open up new markets, and presents several design concepts for equipment to meet the identified needs. Technical considerations are not addressed
in detail.
DOCUInenta tion support advantages
of early digitization include the transfer of data over telephone lines, CRT
text-editing prior to any printing, compact record storage, and low-cost document reproduction. And if digitization
takes place at the source data level (as
shorthand is being used to record testimony), it is even possible to computerize the translation of the shorthand
symbols into plain language.
The applications area being addressed is a very good potential market
area for small computing systems. Almost all of the court and deposition
transcripts are produced by "independent"
contractor" typists (working at home).
Amazingly this slice of highly dispersed
free enterprise accounted for about one
billion dollars worth of documentation
in 1977. That dollar amount was obtained by taking estimates of transcriptrelated income for the reporters in San
Diego County, California, reducing it to
dollars per area resident and then extrapolating that value to the population
of the entire country.
Roughly 25% of the billing cost
~WEST COAST COMPUTER FAIRE
of transcripts represents direct expenses incurred in the actual production
of the documents (equipment, typing
labor, duplication, binding and distribution).
In addition to these traditional and presently funded activities,
there exists a potential market for
equipment and services in the "litiga-'
tion support" category which could involve both attorneys and court reporters.
Cooperation between a court reporting firm and an attorney client can
result in a reduction in the need for
capital investment by the attorney. A
reporting firm which uses a computer in
the preparation of transcripts can make
computer searches for key words and
phrases identified by clients.
The results of the searches can be presented
in the form of an index to the transcript pages on which the words and
phrases appear.
The reporting firm
could also make digital tape recording
of transcripts so that it would be possible to re-enter the data into the computer to make further searches at a
later date should it become desirable
to search for other key words and
phrases.
The service outlined in the previous paragraph will have special appeal
to small law firms and attorneys who do
not have computing equipment. A similar service may also be appractive' to
law firms hav1ng computers.
To indulge
in computer searching of transcripts it
is necessary to first digitize the text
of interest. This digitization is frequently accomplished by use of an optical character recognition (OCR) unit,
frequently referred to an an optical
scanner.
These OCR units are capable of
reading typed pages, provided certain
type fonts have been used, and placing
the data in a computer in proper digital
form.
The need for these expensive
pieces of equipment (about $14,000 to
$32,000) might be avoided by having a
'reporting firm provide a tape recording
of the document in proper form.
If the
reporting firm uses a computer in
285
BOX 1579, PALO ALTO CA 9430~
transcript preparation, the digital data
will exist in the reporting firm's computer and it would be a simple matter
to make a tape recording of it for delivery to a client.
Much spade work has already been
done in applying computers to courtrelated tasks, but there is still room
for innovative thinking. There is a
real need for adapting small generalpurpose computers to tasks presently
being done by large time-sharing systems or dedicated computers which are
integral parts of single-function
equipment. This trend will probably
not significatly impact on the need for
time-shared services or special-purpose
equipment, but it will bring the power
of the computer to more small businesses - and with no compromise in the quality of the product or service provided.
all manual methods. These have been in
use for many years, but they are now
being challenged by computer-aided
transcription. Computer-aided transcription (CAT) services are available
commercially, but it is not yet possible to purchase CAT software. Various
systems are under development using a
number of approaches to preparing data
for entry into the computer. Presently
available commercial CAT systems all
use the input device shown in Figure I
(or a male counterpart). The basic
analog-to-digital converter is still
the human brain, and interfacing to the
computer system is accomplished with an
encoder installed in a stenotype machine, which sense the operator's "keystrokes". All-electronic voice digitizers exist, but they work best when
fully optimized for one person at a
time.
Existing Methods
The present manual process for
producin<;t court transcripts starts with
a court reporter who records the original testimony in shorthand. Most reporters now use shorthand typewriters
(stenotype machines), but some reporters are still "penwriters". When an
order is received for a transcript, it
is necessary for someone to "transcribe" the shorthand notes and type up
a formal document.
Several approaches are used to
transcribe shorthand -notes .-.. The most
frequently used method involves having
the reporter read the notes and dictate
into a dictating machine. The dictation tapes are then given to a transcriber who types up the finished document, which is then returned to the
responsible reporter for proofing prior to delivery to the client. Alternatively, the court reporter might deliver the shorthand notes to a "note
reader" (a transcriber who is also
skilled in reading shorthand) who will
type the transcript directly from the
shorthand notes. The note reader relieves the reporter of the dictation
task, but charges more for note reading than for typing from dictation
tapes (about twice as much). A third
method for manual production of transcripts is for the reporter to do the
typing directly from the shorthand
notes without involving a third party.
This approach is too time consuming
for reporters who carry a normal work
load.
The documentation methods mentioned in the previous paragraph are
WEST COAST COMPUTER FAIRE
286
Figure 1, Adaptive analog-to-digital
converter for computer-aided tran.. scr iption sy:stems ...
CAT systems constitute a threat
to the traditional court-reporting
community because CAT systems can produce computer-generated indexes to
key words and phrases. This service
cannot be duplicated manually without
an inordinate expenditure of time and
effort. Since there are several good
reasons for small reporting firms to
avoid an immediate involvement with CAT
equipment it becomes very attractive to
consider the use of small word-processing systems which enable manual typists
to digitize the data while producing
hard copy in the traditional manner.
Tohe digital record can then be delivered to a reporter client having computer facilities for making the required data searches.
Computer-aided transcription is
too big a subject to be covered in detail in this paper, but a quick overview is in order. Commercially available CAT services at present are of
two general types. Baron Data Systems
of Oakland, California provides a
BOX 1579. PALO ALTO CA 94302
complete '·stand-alone" system under a
lease arrangement. The equipment provided is all that one needs to transcribe shorthand records to plain language, to edit the text on a CRT, and
to print the final document. Stenographic Machines, Inc., of Skokie,
Illinois, provides a service which requires a telephone connection with
their host computer. This is typical
of the service offered by several other
CAT service firms also. When the
shorthand-to-plain language translation is performed by a remote computer,
the customer usually has to have textediting and printing facilities, although arrangements can usually can be
made to have hard copy returned by mail.
Although CAT seems to be gaining
in popularity, there are a number of reporters who have reservations about becoming involved. Some fear that they
are not "computer compatible". Others
object to the cost, which is about the
same as for a note reader's services.
However, the per-page cost of CATproduced copy decreases as the number of
pages per unit of time is increased.
Until very recently CAT was considered
as just another way of producing a
transcript, but that picture changed
when the CAT service firms started to
offer computer-generated indexes to key
words and phrases.
The most obvious reason for the
limited use of CAT is the lack of commercially available software. Apparantly the owners of CAT software see a
greater return on their investment in
the sale of CAT servi(;s than in the
sale of CAT software. Speaking as one
who has researched the task of writing
CAT software, I can sympathize with
those who have developed acceptable programs. The program structure is basically simple, but the work involved in
building up the master dictionary is a
discouraging prospect. Hopefully
someone with a CAT capability will start
to provide a service in which the shorthand notes will be read optically and
the first-pass computer output will be
returned in the form of digital tapes.
The responsible reporter could then do
the text-editing, proofing and printing. This approach would appear to be
very satisfactory between now and the
time CAT software becomes available at
a reasonable price.
New System Concepts
The system of Figure 2 is a
simple typing station capable of producing a magnetic tape recording and
WEST COAST COMPUTER FAIRE
287
hard copy simultaneously. Input to this
station will be dictation tapes or short
hand notes, depending on whether the
operator is a transcriber or a note
reader. Preferably the electronics
should be capable of processing simple
error-corrections, entered at the keyboard, so as to produce an error-free
magnetic tape recording. Buffering of
several pages of text will be required.
It should be possible to print final
copy a page atoa time under computer
control while the recently typed-in
text is still in the buffer memory. The
output tape format must, of course, be
compatible with all "downstream" equipment. It may be necessary to include a
capability for producing magnetic tapes
to more than one recording format (and
physical size) if this station is required to feed several mutually incompatible systems.
Figure 2, A simple transcriber's station
capable of capturing typewriter keystrokes while producing hard copy.
1.
2.
3.
4.
Typewriter.
Typewriter/computer interface unit.
Microcomputer.
Tape recorder.
In court reporting the reporter
who does the initial reporting is responsible for the accuracy of the final
document, so it is common practice for
them to proofread at home. When digital recordings become available, the
reporters will need a low-cost textBOX 1579, PALO ALTO CA 94302
editing station similar to that shown
in Figure 3. The input to this station
will be the output of the system shown
in Figure 2 or the unedited output of a
computer-aided transcription service.
The system should be capable of reading
a block of data into computer memory
from where it can be called up for display on the CRT for editing. Edited
text is to be recorded on the output
recorder.
Figure 4, A full-featured court
reporter's system.
Figure 3, A minimal court reporter's
text-editing station.
1.
.2.~
1.
2.
3.
4.
S.
6.
Input tape reader
.. Microcomptlter ..
.j.
'-~J.·t::U.i.-tfrig
4.
Output tape recorder.
terminal.
The system shown in Figure 4 is a
full-featured reporter's station.
It
is intended that this station be capable of all of the operating features
of the systems shown in Figures 2 and
3 and, in addition, be capable of a
number of other special word-processing
manipulations.
It would be highly desirable, though not absolutely necessary, that this system be capable of .
assigning page numbers, indexing of key
words and phrases, and computation of
"folio counts" (the number of blocks of
SOO characters). The folio count is
used for billing purposes.
It is likely that this system will need a dual
floppy disk drive in addition to the
equipment shown in Figure 4.
The output of this system will be the final
hard copy and, if required, digital
tape recordings for use as a record
storage medium, or for delivery to a
client as an additional "product".
WEST COAST COMPUTER FAIRE
Input tape reader.
Manual input or text-editing statio
Output tape recorder.
Printer.
Microcomputer .
Printer- interface unit-.-
Figure S is a simple system intended for use by an attorney in searching a transcript for which a digital
tape recording is available.
This system should be capable of simple searching for key words and phrases. A more
elaborate version of this system would
be required for long documents. A dual
floppy disk drive would not only in-:
crease the processing capability but
would make it possible to accept floppy
disk recordings as input.
Figure 6 illustrates a system
which is functionally equal to that of
Figure S except that it assumes the
availability of a "smart" terminal capable of performing the required functions
without the need for a separate microcomputer unit.
288
BOX 1579. PALO ALTO CA 94302
The design concepts presented in
this paper are being refined by the
author and several associates, primaril
at the concept level.
Suggestions from
persons aware of equipment or software
potentially capable of supporting any of
these system concepts will be greatly
appreciated.
Figure 5, An attorney's documentsearching station using a "dumb" terminal.
1.
2.
3.
Input tape reader.
Microcomputer.
CRT terminal.
Figure 6, Attorney's documentsearching station using a "smart"
terminal.
1.
2.
"Smart" terminal.
Input tape reader.
Figure 7 is a conceptual sketch of
a unit that could be developed for use
in both the court reporting and attorney communities.
It could be supplied
with or without a printer or floppy
disk unit, depending on the application.
In this way i t would be possible to
shave cost where necessary while making
it possible to upgrade the system with
standardized modules at a later date.
WEST COAST COMPUTER FAIRE
289
BOX 1579, PALO ALTO CA 94302
Figure 7, An integrated "court-support" terminal.
1.
2.
3.
4.
5.
6.
Input tape reader/recorder.
Output recorder.
Computer control keys.
Cursor controls.
Number pad.
Output tape recorder.
WEST COAST COMPUTER FAIRE
290
BOX 1579. PALO ALTO CA 94302
REAL TIME HANDWRITTEN SIGNATURE RECOGNITION
Kuno Zimmermann, Dept. of Electrical Engineering
Lafayette College, Easton, Pa. la042
Abstract
Problems of computer security and entry
control have over the last few years been
approached in various ways; fingerprint recognition, handwriting pressure patterns and/or
accelerations recognition, to mention just
a few. Handwritten signature analysis
appears to be reasonable in terms of recognition effectiveness, required capital investment and computational load. This contribution will present an introduction to
the state of the art in handwritten signature recognition as evidenced by patents held
by various corporations and by recent publications on both signature recognition algorithms and signature input devices. A
basic system consisting of a simple graphic
tablet, an A to D converter and a microcomputer will be introduced, as an example
of the possibilities available to today's
microcomputer user. Experience acquired on
such a system comprised of a modified Intel
SDK-aO linked to an HP-3000 will also be
discussed.
Introduction
The need for an accurate, fast and low
cost personal identification system has increased steadily in our computerized society.
Possible applications for such a system are in
computer memory protection, security access,
entry control, etc. This identification
problem has, over the years, been approached
in various ways: fingerprint recognition,
voice print recognition, handwriting pressure
patterns and/or,accelerations, to mention but
a few. Handwritten signature analysis appears
to be reasonable in terms of recognition
effectiveness, required capital investment
and computational load. With this in mind,
a systematic search of patents and literature
in this field was undertaken. An experimental signature analysis system was built to
test some of the approaches proposed, as well
as some other ideas.
Dynamic Signature Recognition Concepts
A handwritten signature is essentially
a 3 dimensional trajectory, where the x and
y axis should be taken as corresponding to
the usual left to right and top to bottom displacement of normal handwriting, and where the
z axis is taken along the direction of displacement or pressure into the writing surface.
~WEST COAST COMPUTER FAIRE
Assuming the availability of means to translate
such 3 dimensional components into a form
suitable for computer processing, what sort of
features should one be looking for to attempt
recognition? Such questions and their answers
were pondered more than 50 years ago by
graphologists. To quote from Downey's G[aJhology and the psychology of handwriting 1 :
"The existence of graphic individuality, often
of a very pronounced type, will hardly be
questioned." And later on: "The mathematical
probability of two complete handwritings being
identical is one in something more than 6a
trillions". And to quote from Saudek's
Experiments with graphology [2J: The pressure
is among those features of the handwriting
which are very difficult to alter, and is
therefore in a high degree individual and
characteristic." This second quote, in particular, encourages one to investigate the
pressure patterns of a signature process. A
quick glance at the literature along this
idea reveals a wealth of patents and publications on both pressure input devices and
processing methods. A patent assigned to
Veripen, Inc. , [3J, for instance, describes an
input device which is basically a capacitor
consisting of two parallel plates separated
by an elastomeric material. A writing stylus
exerting pressure on a writing surface resting
on the upper plate will change the spacing of
the plates and thus introduce a capacitance
change related to the pressure. Three patents
assigned to Burroughs Corp. [4J [5J I6J
describe input devices consisting of a handwriting surface suspended in space on a
cant~lever arm [41 or on rubber support members
[5J, [61 . Pressure variations induced by handwriting are translated into a strain in the
cantilever arm [4J or a change in magnetic
coupling between various coils traversed by a
magnetic rod rigidly attached to the handwriting surface [5],[6]. Two further patents
assigned to Burroughs Corp. describe respectively another plate-like handwriting surface
resting on two elliptically shaped members
where the pressure is related to the strain
induced in these members and picked up by
strain gages [7], and a force responsive transducer fixedly mounted within the housing of a
writing instrument such as a ball point pen
[a]. An implementation similar to the latter
is found in a patent assigned to the Mosler
Safe Company [9J.
The recognition algorithms proposed in
conjunction with pressure patterns range from
291
BOX 1579, PALO ALTO CA 9430~
simple human or optical comparison or direct
correlation methods [9], to more sophisticated and at times also more empirical
approaches involving averaging, normalization of certain parameters, and data en codinj (compression) to decrease memory constraints [10J.
While pressure patterns obviously provide a solution to the problem of signature
authentication, one should ask whether the
x and y components of a signature trajectory might not be used also, either independently or in conjunction with the z-axis
pressure patterns? Here comparison of the
y ordinates and x abscissas of two signatures
will not help much, since this is precisely
the kind of duplication forgers excel at.
Clearly, a better idea would be to compare
the vertical and horizontal velocities, or
even more so, the vertical and horizontal
accelerations of the signature process. A
priori deliberate and careful forgery is
certain to fail an acceleration comparison
test with an original. However, are the
accelerations of each of one's handwritten
signatures characteristic to the point where
they are the same time after time? The
definite answer to this question is found in
the work of some IBM researchers. Herbst et
a1 111], using anterior research [12J,[13],
[14J, established that the act of signature
handwriting is the consequence of muscular
interactions of ballistic rather than feedback nature. Motions controlled by sensory
feedback are usually slow and precise.
Ballistic motions are generally rapid, and
their accuracy increases with speed. Walking,
. Elayinga m1,lS~cC3J, iIlstrurnE:!Dt, s'Viinging: a
tennis racquet or a golf club, writing a
signature all are ballistic motions. The
muscular forces involved in a signature are
therefore predictable and predetermined, and
as a consequence, the accelerations of the
movement will exhibit the same characteristics.
The exploitation of this property of handwritten signatures for the purpose of comparison and recognition of signatures requires
suitable input devices. A two dimensional
graphic data entry tablet for transforming a
positional information into a digital input to
a computer system is the subject of a patent
assigned to IBM [lSJ. Another position
measuring system of the writing tablet-stylus
type is described in patent [16J which is also
assigned to IBM. Both of these tablets require analogue or digital 2nd order differentiation of the x-y signals in order to obtain
the accelerations. An apparatus consisting of
a horizontal platen, connected by a pair of
inner beams to an intermediate structure itself connected by a pair of outer beams to a
supporting frame, allows direct measurement
of the accelerations through strain gage
measurement of the forces in the connecting
WEST COAST COMPUTER FAIRE
beams, and is the subject of patent [17J
assigned to Stanford Research Institute. More
recently developed input devices include x-y
pressure ~ransducers [18J or x, y accelerometers [llJ mounted within pen -like housings.
In both cases, z axis information is acquired
from pressure sensors located under the writing surface platen. The recognition algorithms
proposed in conjunction with acceleration
patterns range from the conceptually simple
correlations proposed in patent [19J assigned
to Sylvania Electric Products, Inc., to a more
sophisticated method of segmented correlation
proposed by IBM [llJ, to a similar method including data compression also proposed by IBM
[20J, to a method of segmented "rubbery"
correlation introduced by Stanford Research
Institute [21J. The latter Institute also is
the assignee of patents [22J and [23J, which
present two approaches for computing template
vectors from the x, y and z signals, as well
as algorithms to compare template vectors of
reference and sample signatures.
Whereas all input devices and recognition
algorithms mentioned up to this point use
either pressure patterns or x, y, and sometimes
also z acceleration patterns, the input device
and recognition algorithm introduced by RCA
and presented in [24J use handwriting speed as
a discriminant. This is a natural consequence
of the rather unusual but very ingenious input
device, where a stylus deposits charge on an
insulating writing surface, the total charge
laid down being proportional to the total
linear extent of the handwritten piece of information, and the magnitUde of the charging
current being proportional to the instantan.eo:!J,$ speedatwb.ich the stylus is beingmQved.
A Signature Recognition Facility
A simple signature recognition system
consists of a graphic tablet to translate the
x and y deflections of the handwriting into
analogue electric signals, a two channel multiplexed ana10gued digital converter, and a
microcomputer to control the A-D converter and
to store the samples of the vertical and horizontal deflections. From the surveyed literature and patents, as well as from our own
experience it appears that a sampling frequency
of 100 Hz is reasonable; in fact, it seems
that handwriting signals exhibit major spectral
components in the range of 2 to 25 Hertz
primarily. Since most signatures are written
in less than ten seconds, a storage capability
of 2000 pts (10 seconds of x and y deflection
both sampled at 100 Hz = 1000 + 1000 points)
is amply sufficient. The low sampling frequency of 100 Hz (corresponding to successive
pairs of x and y samples spaced at 10 ms.
intervals) leaves plenty of time available for
any late model microprocessor to perform other
tasks such as preprocessing, recursive filter292
BOX 1579. PALO ALTO CA 94302
ing, validity testing, etc., in between
samples. The system constructed at Lafayette
College uses a slightly modified Intel SDK-80,
a DATEL 8-channel differential A-D converter
(obviously an overkill since neither the
differential capability nor more than two
channels are needed), and a simplistic graphic
tablet. This tablet consists of two superposed conductive sheets (graphite coated
Mylar or paper) spaced a few thousands of an
inch apart. Electric fields are alternatively established on these sheets by
supply"ing them with out of phase pulsed bias
voltages. Whenever a writing instrument
forces the two sheets into contact, the sheet
not presently pulsed acts as the wiper of a
potentiometer and picks up a fraction of the
supply voltage to the other sheet proportional to the position of the stylus. The
output of the tablet thus consists of two
pulse amplitude modulated x and y signals.
These are subsequently low-pass filtered
(integrated) in order to obtain two analogue
signals suitable as inputs to the A-D converter. Reconstruction of signatures from the
stored samples of the x and y signals demonstrates the satisfactory working of the
acquisition system (Fig. 1). To compute the
accelerations, various experiments with
digital 2nd order differentiators led to the
use of a finite impulse response (FIR) filter
of order 25, with coefficients smoothed by a
Blackman window. Comparisons of the x and y
accelerations of stored reference signatures
with submitted original or counterfeit signatures were attempted under various criteria.
Current recognition algorithms rely on conventional dicrete correlation, using a threshold
dependent on the original signer's ability to
consistently duplicate his own signature.
Compression of the data was also attempted,
with the conclusion that great care is needed
to avoid losing vital information. Presently,
success rates of the signature recognizer
vary in the range of 80 to 95%, a valid
recognition experiment being defined as the
submission of a true or counterfeit s'ignature
and the correct acceptance or rejection of
said signature. The exact success statistics
are difficult to assess accurately at this
point, since the data base is felt to be too
small.
A quick glance at the state of the art in
automatic handwritten signature recognition
reveals a wealth of patents and a few publications on the topic. Two main approaches are
evident:
(i) recognition by pressure pattern
comparison, and (ii) recognition by acceleration pattern comparison. Either can be
implemented fairly simply using today's microcomputer technology. Simple experiments
performed on a system consisting of a simplistic graphic tablet, a modified Intel SDK-80,
a DATEL A-D converter, and an interconnected
HP-3000 show encouraging recognition rates
and promise better results in the future.
References
[1] Downey, June E., Graphology and the
Psychology of Handwriting, Warwick and
York, Inc., Baltimore, 1919
~] Saudek, Robert, Experiments with Handwriting, William Morrow and Cy, New York 1929
[3] Boldridge, Austin G.,Jr., U.S. patent
#4,035,768 July 12, 1977
[4] Radcliffe, Arthur J. Jr., U.S. patent
#3,956,734 May 11, 1976
[5}
_ _ _ _ _ _ _ _ _ _ _ _ _!
U.S. patent
#4,008,457 Feb. 15, 1977
[7J Roggenstein, Edwin 0., et al., U.S. patent
#3,563,097, Feb. 16, 1971
[8] Johnson, Robert R.f et aI, U.S. patent
#3,528,295, Sept. 15, 1970
[9J Clark, Robert K., U.S. patent #3,621,720,
Nov. 23, 1971
[10] Sternberg, Jacob, et aIr. U.S. patent
#3,959,769 May 25, 1975
[11] Herbst, N.M., and C.N. Liu, "Automatic
signature verification based on accelerometry" IBM J.Res.Develop., May 1977
[12J van der Gan, J., and J. Thuring, "The
guiding of human writing movements",
Kybernetika, 1,145, 1965
While the original configuration called
for the modified Intel SDK-80 to simply transmit the x and y samples to the HP-3000 who
then performs all the computations, the more
recent implementation provides for the microcomputer to perform some minor computations.
Ulterior developments will call for the
microcomputer to assume a larger part of the
data processing load, thus freeing the HP3000 for more demanding tasks.
[13] Eden, M., and M. Halle, "The characterization of cursive writing", Information
Theory, C. Cherry, Ed., Butterworths
Publishing Co., Washington, D.C. 1961.
[14jvredenbregt, J., and W.G. Koster, "Analysis
and Synthesis of Handwriting," Philips
Tech. Rev. 32, 73, 1971
Conclusions
WEST COAST COMPUTER FAIRE
, U.S. patent
#3,991,402 Nov. 9, 1976
293
BOX 1579. PALO ALTO CA 94302
[15] Dym, Herbert, u.s. patent #3,668,313,
June 6, 1972
[16J Mazza, Robert V., u.s. patent #3,582,962,
June 1, 1971
[17} Kamphoefner,Fred J., et aI,
#3,988,934 Nov. 2, 1976
u.s.
patent
F~.
i
[18J Eernisse, Errol P., et aI, "Piezoelectric
sensor pen for dynamic signature
verification," Proc. International
Electron Devices Meeting, Dec.5-7,1977,
Washington, D.C.
[19J Dyche, James W.,
Oct. 17, 1972
u.s.
patent #3,699,517,
[20] Herbst, Noel M., et al., U.S. patent
#3,983,535, Sept. 28, 1976
[?1] Crane, Hewitt D., et aI, u.s. patent
#4,040,012 Aug. 2, 1977
[22J Crane, Hewitt D., et aI,
#4,040,011 Aug. 2, 1977
u.s.
patent
[23J Crane, Hewitt D., et aI, u.s. patent
#4,040,010 Aug 2, 1977
[24J Engelbrecht, Rudolf S., U. S, patent
#3,962,679 June 8, 1976
WEST COAST COMPUTER FAIRE
294
BOX 1579. PALO ALTO CA 94302
INPUT HARDWARE DESIGN FOR CONSUMER ATTITUDE RESEARCH WITH A MICROCOMPUTER
Dr. H. P. Munro
Direator~
Laboratory for Research and Instruction
in Rhetoric and Communication
Kent State University
Kent~ OH.
44242
Possible business uses for a microcomputer include consumer research for product
developers or advertising agencies. Of the
areas of concern for the owner of a microcomputer system who wishes to adapt it for such
a purpose, two are the foci of this paper: 1)
some psychological and statistical cautions
which should be observed in order to generate
useful data, and 2) how to design input hardware to implement these cautions. Reference
is made to "home-grown" hardware in a university-based lab which could be used to do premarket studies of goods, services and advertising messages.
sponses; and (c) number and identification of intervals (degrees) between the
bi-polar extremes of each scale. Statistical cautions are many, but the
main ones germane to the design of hardware have to do with the constraints
usually imposed on sampling and scaling;
(a) number of judges to be sampled; (b)
preservation of the interval assumptions
and (c) exclusion of multiple or ambiguous responses on a given scale.
Psychological Cautions
Our laboratory at Kent State [1]
uses CCTV videotape and a full range of
Introduction
A-V apparatus (most remotely controlled)
One possible business use for a
to study the impact of speakers and
microcomputer is consumer research for
other message sources on audiences. The
product developers or advertising agen- lab is located iri three rooms and is
cies. Quite a few such companies are
often used, in both research and instruc
located in places other than New York,
tion, to obtain response data from
Chicago or L.A., and local ad campaigns listener/viewers correlated simultanefor products and services might more
ously with a split-screen videotape of
quickly, intensively and efficiently
the message source and selected portions
utilitze a microcomputer system with
of the audience (to record visual feedappropriate input hardware than by the
back). The response collecting ijardtraditional interview methods or writren ware has undergone several generations
questionnaire and attitude surveys.
of R&D change, with construction financed
The system which has provided the by limited funds and subsidized by gradexperience for my observations in this
uate assistant labor; none of the gear
report is a university-based social
in this report was bought "off-thepsych communication research lab used
shelf" -- economics and unavailability
for measuring the impact of various
of hardware to meet our needs have
messages, appeals and sources on audcaused it to be "home-grown." This
iences in the investigation of theorres
takes awhile, but in the end it is much
of rhetoric and communication, but the
cheaper and better adapted to specific
same configuration of equipment could
needs.
just as easily be employed -- for a
Certain constraints from social
fee -- to do pre-market studies of pro- psychology and learning theory guided
spective consumer goods and advertisthe design of our hardware. Some of our
ing messages.
faculty do research on attitudes and
My remarks will focus on two areas attitude change. Thus, evaluations
of concern for the owner of a microcom- (good-bad, like-dislike, agree-disagree)
puter system who wishes to adapt it for and probability (likely-unlikely) were
consumer research: 1) some psychologiknown to be frequent parameters of
cal and statistical cautions which
judgment. Others of us cut our teeth on
should be observed in order to genthe Semantic Differential of Charles
erate useful data, and 2) some "howOsgood and associates at the University
to" suggestions on appropriate input
of Illinois [2], and so other dimensions
hardware to implement these cautions.
of judgment are needed: potency (strongPsychological cautions to observe weak) and activity (active-passive).
include: (a) choice of target concepts
Most of what follows in this section wil
to be judged; (b) choice of judgment
be based on considerations imposed by
scales on which to record audience rethese schools of psychology, as they
WEST COAST COMPUTER FAIRE
295
BOX 1579. PALO ALTO CA 94302
bear on the study of human communication.
Choice of Tar~et Conce~ts. One
of the assumpt10ns 1n Osgood s work is
that a concept to be described throu¥h
the bi-polar scales (¥o?d-b~d, certa1nimpossible) and quant1f1cat10n (+~ to
-3) of semantic differentiation w1ll
occupy a single point in an ~-dimen
sional semantic "space." There has
been considerable criticism, however,
that this seems not to be true, as
(careless) users of the Semantic Differential have reported that concepts
1 ike "my!relf" and "car," for exam~le,
shift around over time (are unrel1able) even with the same subjects.
The problem here is that such concepts
are over-broad and may be differently
qualified by a subject at various
t1mes. That is, "car" could mean,
when one is asked to respond to a set
of scales resulting in a semantic profile 1) the auto I have (junker), 2)
the ~ar I would like to have (Mercedes
450 SLC), 3) or ~sub-compact a favorite student was killed in a few weeks
ago. Obviously such "cars" will ha~e
different "locations" in the semant1c
space, i.e., will have different meanings, because they are ~n fact different
conce~ts.
So, the caut10n to be observe in choosing target concepts is
to avoid ambiguity: qualify and condition each concept to be tested as
fully as possibly, even ~f that requires, not one word as 1S so COIiUllon. Jy .. f9und, b ll 1:. . 9-. phrase of . seyeraFl. .
words or even a full sentence.
or
exampie don't ask subjects to respond
,
.
1 Ban,
k"
to the "Your
Town Last Nat10na
for how do you know they might not b~
thinking of the appearance of the bU1lding, and that would certainly n?t fully
tap the bank's desire to probe l~S total
"image" with present or prospect~v~ depositors. Instead, be more spec~f1c:
"Quality of Drive-Up Window SerV1ce at
Your Town Last National Bank" would be
better.
WEST COAST COMPUTER FAIRE
296
BOX 1579. PALO ALTO CA 94302
or "interesting." It would appear that
this would be in the interests of a
testing service as well, because it can
only muddy the results to mix in ~oral
judgments with ratings of enterta1nment
value.
So the caution here is to choose
rating scales which are true opposites,
and which are not "noisy" or ambiguous
with several differing interpretations
possible.
Degrees Between Ends of Each
Scale. The 1dent1ficat10n and number
or-rntervals between the bi-polar extremes of the scales chosen will depend somewhat on the scale names and
the probable nature of the audience.
If one is measuring agreement, then
the usual qualifiers on a seven-point
scale (like "agree-disagree") are
"very strongly," "strongly" and
"slightly" on each side of the neutral
or ambivalent ("either/neither") center point. On the other hand, Semantic Differential qualifiers are usually "extremely," "quite" and "slightly." A way to resolve this problem,
and provide for a statistical concern
yet to be mentioned, will be suggested
in the hardware section of this paper.
The question of how many divisions to have in one's scale has occupied a number of psychologists. Usually the answer is: as many as can be
discriminated reliably (on test/retest trials) by a given audience. That
is, the more divisions, the more useful the data because discrimination
among concepts can be finer, until the
point is reached where subjects are
"overloaded" and can't really tell,
say, between "slightly" and "quite."
In this case, it would be wise to
shrink the seven point scale to five.
Osgood, in his lectures in the fifties,
used to observe that studies suggest
a nine-point scale for college graduates, seven for sophomores and freshmen, five for high school students,
three for less-then-high school education . . . , and perhaps two for members
of the American Legion ("If'n yer not
fer it, y' must be agin it")!
All that I seek to do in this section is
mention a few concerns that will influence the design of input hardware.
Number of Judges to be Sampled.
This is an important concern because a
product or message testing agency will
need to know how many response stations
to build. Generally, the minimum number
of subjects (for parametric statistical
measures, fewer are needed for "non-parametric" tests) is 25 or so. At Kent
State, my Lab was designed for 24 response stations, partly because the room
won't hold many more people and because
the mainframe of a previous generation of
response stations lent itself to multiples of 12. (Those earlier machines used
interlocked multiple pushbutton switches
and stepping relay counters, but the
present system, having 75154 IC's in the
I/O interface to the computer, suggests
multiples of 16, and 32 would be a better
number of stations).
But neither 24, 25 or 32 are actually needed. A rating service could get
by on quite a few less because the statistical caution to be observed has to do
with the number of sub~ects, not stations.
If one is willing to glve a number of
presentations to a smaller number of subjects each time, then six, or ten or some
similar number of stations would be adequate. The trade-off is between time
and money: more stations are more expensive but quicker, while saving construction time and money will later eat up
testing time. In the final analysis, how
large a room (for screening messages),
how much capital one has to invest and
how much business one might expect should
all help determine an optimum number of
stations to build.
Preservation of Interval Assumptions. What's 1nvolved here 1S the
arrterence between nominal (by category),
ordinal (rank order) and interval judgments. Scales are assumed (hoped?) to
be equal-interval means of measurement;
that is, the -distance between 3.0 and 2.0
should be the same as between 1.0 and 2.0.
With pencil and paper it is easy to suggest this to subjects, but electro-mechanical devices need to be more carefully
Statistical Cautions
selected. Dials are troublesome, especiTh1S 1S even less appropriate a
ally if connected to potentiometers.
place to presume to review the many
"Pots" are analog devices; what is needed
caveats that have to do with designing is a digital selector. A dial connected
stud1es and processing data. Best to
to a wafer switch is better, but even
get the advice of a competent statiswith this the labelling of the dial could
tician, and if you find one whom you
cause response problems. Our solution
can understand, put him on a commission at Kent was a bank of seven MicroSwitch
basis for any revenue you might generat~units, as will be demonstrated in the
WEST COAST COMPUTER FAIRE
297
BOX 1579, PALO ALTO CA 94302
hardware discussion.
Exclusion of Multiple or Ambiguous Responses. Each given scale should
receive one, and only one response. In
pencil-and-paper tests, subjects are
instructed to put their "X" marks on
the lines, not between them, and put
no more than one per scale. Here is
one place where a machine substitute
can be much more efficient than pencil-and-paper scoring, at the cost of
a little care in design. Human scorers must spot and then throw out violations of these conventions, whereas
a machine can be designed to prevent
such actions from occurring. More·on
this shortly.
Hardware Design Considerations
It is not the purpose of this
section to provide full details for
the construction of a given design of
input response station; even if space
permitted such specifics, it is doubtful that the same parts and materials
would be obtainable, perhaps not even
desirable to others. Thus, no schematic wiring diagrams will be provided;
instead, I shall suggest how certain
choices were adapted and useful in
our situation. To facilitate the
discussion, reference will be made to
the several photographs at the end of
the text.
Target Concepts. Once selected,
target concep.tsare_-pr_obab.lY best
photographed in 3Smm or 2~ square format transparencies and projected onto
a screen adjacent to the message or
object being judged. At Kent we have
a 4by 6 foot rear projection screen
in one wall, onto which several projectors may be directed. Thus, the
concept language may be put on the
same screen with still visuals, 16mm
movies, or television monitors (or
even live performances) can be arranged
nearby. If only a few concepts are to
be judged, then overhead transparency
production, perhaps by the thermal
process, is quicker and cheap. Also,
it is not necessary to use rear projection (we do simply to keep the noisy
equipment out of sight and earshot);
all that is required is to be able to
display the message (e.g., a film or
videotape) a}OnK with enough "concept"
language to ocus-rfie judgments of an
audience (e.g., "If I were to use the
product in the message, I would probably find it:
II).
The blank
at the end of the concept statement
WEST COAST COMPUTER FAIRE
is for the various scale judgments desired (e.g., "good-bad," "worthwhileworthless," "strong-weak," "activepassive," etc.) As can be seen by the
comparative length of the language involved, projection onto one screen common to all subjects is a practical necessity -- to fit so much into each response station would require a fortune
in Sx7 matrix alphanumeric LED R/O's or
a CRT in each station.
Judgment Scales. Judgment scales,
on the other hand, while they might also
be projected onto a cornmon screen (and
unusual ones would have to be) could, we
found, be put into each response statim:
they are short (one word at each end of
the scale) and a handful tend to recur in
much of our research. As Figure 1 reveals, the arrangement of the "business
end" of each response station is an
electronic and mechanical translation of
the geometry of a single scale as it
usually appears on paper-and-pencil
tests, e.g.;
good
:
:
:
:
:
:
bad
The squariShwindows on eiflle"r end,
slightly separated from the bank of
seven rectarigular push-buttons are
actually small projection screens for
I.E.E. numeric readouts, originally containing a piece of film with "0-9," "M"
and a red filter. What we did at Kent
was to substitute a new film negative
into the optics of each readout which
now projects the scale designations we
choose. III ourcase,w-e finally chose
the following bi-poTar-" iidTectives . as
being of most utility for us:
Left Hand Readouts
Good
Strong
Active
Believable
Certain
Possible
Pleasant
Agree
Aware
Clear
Right
Lively
Right Hand Readouts
Bad
Weak
Passive
Unbelievable
Uncertain
Impossible
Unpleasant
Disagree
Unaware
Unclear
Wrong
Lifeless
Although there are only twelve apertures
in each film/optic sandwich, we actually
have a total of 13 scales, as a bit of
diode circuitry allows us to oppose "certain" with "impossible" to get a full
p.=O to p.=l range on one scale.
Identifying the Intervals. Identifying the lntervals between scale extremes gave us fits for some time, until
we hit upon a novel, but simple, non298
BOX 1579. PALO ALTO CA 94302
verbal way of communicating an of the
various qualifiers discussed a ove. We
could have inserted Xerox or Thermofax
etched transparency film into each of
the translucent caps for the seven MicroSwitch [4] units, but this would require changing caps whenever a different set of qualifiers was used. We
can still go this way for use of the
seven selectors as nominal categories
but since most of our work is with
interval scaling we chose, instead,
to leave off all language, and communicate degrees ("very strongly,t1
"strongly," "slightly") by the intensity of the cap, as illuminated
by the #327 bulbs located behind it.
This was easily accomplished by a resistor network, resulting in the +3
to -3 appearance in Figure 1, and
the 7 to 1 look in Figure 2. One
bulb and resistor network is used
for each of these two aspects, with
the third bulb (through a red filter) on all seven switches serving
as a "stop" warning. The fourth
bulb signals when only the extreme
and middle positions are active and is
controlled by a nearby spring-loaded
lever switch (for 3-degree judgments,
a more practical number for continuous judging during a longer message).
h
Preservation of Interval Assumptions. Preservatlon of lnterval assumptions is, we hope, accomplished
by the symmetry of 7 identical pushbuttons, ranging in a row from one
scalar extreme to the other. This
configuration also seems to remove
possible confusion when a -2 PB cap
may appear to have almost the same intensity as the -1, as will sometimes
happen with bulb aging. The subject
sees the pattern of the whole scale
and seems to understand the idea, even
without elaborate and lengthy verbal
instructions which is one of the pains
of paper-and-pencil testing.
Exclusion of Multiple or Ambiguous Responses. Exdusion of multiple or
ambiguous responses is accomplished by
the design of both the input sampling
I/O and the interconnection of the
bank of seven switches internal to
each unit. Multiple responses are excluded (except when they are desired,
as in sequentially judging continuous
phenomena) by a controlled sequence of
activities: 1) present message stimuli
(with a concept and scale) to audience
(e.g., activate the advance on a slide
projector); 2) wait a suitable period,
WEST COAST COMPUTER FAIRE
perhaps 15-20 seconds, for subjects to
arrive at their judgments (during this
period, they may change decisions already entered into a unit simply by selecting, and pressing, another switch)-no data is recorded until the end of
this period, when 3) a selector circuit
samples each of the 24 response stations
in turn, sweeping all units once within
a few milliseconds, then 4) the "holdin" voltage to the coils on the MicroSwitch units is interrupted momentarily,
at which time all stations are re-set,
and the next message, concept and scales
are selected and presented for judgment.
Ambiguous responses are excluded
by means of the electrical bail circuit
through which the MicroSwitch units are
interconnected. This circuit simulates
inter-lock latching and "lockout"
features of our previous banks of mechanical switches, whereby pressing one
switch releases any other, and it is
impossible for two or more switches to
be activated at the same time.
Conclusion
There are a number of advanmgeous
features of the system presently in use
and described here which have made the
time and effort of design and construction worthwhile to us. Despite what
may seem to be a rather kluge-like
contraption (the innards are pictured
in Figure 3), it works! The case was
fabricated of aluminum and designed to
clamp onto a standard classr'om desk -when so attached, it is so sturdy that
the desk can be lifted by the response
box. Data lines, power and control
lines number 30, contained in a 36 conductor cable from each station to an
interconnect mainframe; the large 200
pin socket seen in the photographs
allows testing and access to various
circuit points without taking apart the
two halves of the case.
The advantages of this design,
aside from meeting the cautions and
considerations previously discussed,
make the unit convenient, easy and fun
to use. This last quality is of no--small importance when subjects are ~ked
to supply a number of responses at one
sitting. Paper-and-pencil work is dull
and tiring, but units such as these,
while not as fully entertaining as Arto
Detoo, are nonetheless somewhat responsive, and thus "alive." For example: the buttons are not only large
and easy to hit, they are differentiall
lighted, and when anyone of them is
pressed lightly, a special circuit activates the "pull-in" coils of the Micro299
BOX 1579, PALO ALTO CA 94302
Switch units [4] thus completing the
action with a slightly perceptible
tactile feedback. The same coils also serve a "hold-in" function, by
means of a modified electrical bail
circuit, enabling the latching and
lock-out features, and allowing all
activated switches to be re-set simply by opening the common 28 volt
line to all units. Simultaneously
with the self-completion action of
the pull-in coils, the response unit
signals to the subject (and continues to remind him until the data is
recorded and all units are re-set)
which scale division he chose. This
we accomplished, not by the usual
and obvious alternative of turning
on a lamp under the chosen switch
cap, but by turning off all the
other six lamps (see-pfgure 4 for
an example).
While our experience with the
design described here has been gratifying, it is only one of many
possible hardware implementations
for input devices with which to conduct microcomputer-based consumer
attitude research. Advancing electronic technology challenges us to
develop response units which would
be equally or more sophisticated in
their functions, but simpler internally and with a smaller component
count. As such devices emerge, small
system computerists will be increasirigly enabled--t6 conduct~profitable
audience and market research.
Indicators. The Operator/Indicator Housing type
is #2C69, and the switch module was #2D172,
modified to momentary rather then alternate
action and using only DPDT contacts. Mounting
barriers (2B-) were not used so as to provide
the better appearance of a continuous scale
with closely segmented intervals; there is
enough clearance between display screens (caps)
to permit easy operation without fouling, if
the mounting cutout (in our case, for a bank of
seven switches) is carefully measured.
Figure I
Figure 2
References
1. More information on this facility is
available in "The Kent State University
Laboratory for Research and Instruction
in Rhetoric and Communication: A Report
on the Rationale of its Design, State of
Development, Capabilities and Potential
for Functional Growth" (1972, 1976). This
report is available from H. P. Munro,
School of Speech, Kent State University,
Kent OH, 44242.
2. Charles E. Osgood, George J. Suci,
Percy H. Tannenbaum. The Measurement of Meaning (Urbana: University of Illinois Press, 1957).
3. Jay Sharbutt. "Guinea Pig: 1V 'Tester' Rates Evening 'Very Dull. "'
Akron Beacon Journal, January 2,
1978
4. The switch units which we managed to
obtain (as electronic "surplus" material)
are from MicroSwitch, Series 2 Rectangular
Display Modular Lighted Pushbutton Switch/
WEST COAST COMPUTER FAIRE
Figure 3
Figure 4
300
BOX 1579. PALO ALTO CA 94302
IMPROVING NAME RECOGNITION AND COORDINATION IN VIDEO CONFERENCING
David Stodolsky; PhD, Center for Educational Research
Stanford University, Stanford, CA 94305 415 494-2106
Abstract
Current techniques for coordination of
group video conferencing are derived from
broadcast applications. Conferencing typically occurs between two locations, and often
a number of support personnel are requi red for
equipment set-up and operation. A computerbased mediation system can be used to resolve
problems of technical and social coordination
while reducing costs and improving name recognition.
Conferees indicate their wish to speak by
pressing a switch, and the computer at their
location transmits this request to the location
chairing the conference. The request is queued
by a mediation program. When the previous speaker terminates, the new speaker's camera is activated, and the speaker s name is automat i ca 11 y
displayed below the image. Conflicting requests
are typically resolved according to preprogrammed rules; however, the chairperson may override
the automatic resolution mechanism at will.
Computers at each location are responsible for
set-up and self-testing as well as camera activation and name display. The resultant system
permits flexible interaction among participants
while balancing participation and improving the
quality of deliberative decisions.
Vi deo conferenci ng opens the prospect for
a new era in representative democracy. The
-full potential of this technology, however,
requires careful analysis of its current limitations. These limitations are not technological, but stem from the non-interactive mode
of operation typical of the video medium.
research in teleconferencing has indicated that
automatic switching may be preferred in teleconferencing (Bretz & Dougharty, 1974; Stodo1sky,
1976). The oper.ation of a Resolving Bridge for
teleconferencing is probably best explained from
the user's viewpoint. Prior to teleconferencing,
each user's name is typed onto the system control keyboard. (With an appropriate card reader connected to the system, members of the House
of Representatives could merely insert the card
used with the House voting system to enter their
names.) When the conference is called to order,
the chairperson triggers the system initialization procedure. Initialization is equivalent to
a roll call. A person IS name appears on the
video display, and that person presses a switch
at his position. The person could also state
his name to indicate proper pronunciation and
confirm correct name assignment. (Stodolsky
(1976) employed an error-checking procedure to
ensure a one-to-one correspondence between names
and conferencing positions.)
While the current video techniques are
relatively easily extended to interaction between two locations, multiple location conferences have proved problematic in past experiments. If the full capabilities of the media
are to be realized, coordination techniques for
multiple location conferences must be improved.
I
Automation of many functions provides an
ease of use and flexibility which could facilitate acceptance of the technology. For instance, it would make practical the placement of
interactive stations within or near representatives ' offices. This distribution of stations
and the ability to activate the system on short
During conferencing, the same switch is used
notice, since few support persons would be necessary, could be crucial in increasing uti1i- to request the floor. When a speaker is selected, his name appears on the bottom of the screen,
zatton of vi deo conferenci ng technology.
and his microphone is simultaneously activated.
Camera pointing could also be a function of
Increased availability of communication
satellite channels, perceived need for a closer speaker selection if the necessary procedures
relationship between representatives and their were followed during initialization.
constituents, and possibility of substantial
economic savings have resulted in experimental
With the Resolving Bridge, speaker selecuse of video conferencing by Congress (Carter, tion is normally automatic but manual override is
available to the chair at any time (Cohen, 1976;
1977). The technique to be described here
Stodo1sky, 1976). The chair may also choose
could be used to improve name recognition and
the rule for speaker selection. The selection
coordination in such conferences. The method
could reduce the costs of staff support by auto- rule may be based upon principles of priority,
mating certain functions normally performed by precedence, or equal time (Stodo1sky, in press).
camera crews and their backup persons. Previous
WEST COAST COMPUTER FAIRE
301
BOX 1579, PALO ALTO CA 94302
In a previous experiment (Stodo1sky, 1976)
the rule came into action only when two or more
persons were simultaneously requesting the
floor. For example, the Equal Time Resolution
rule would always select the person who had
spoken the least time thus far in the conference. Rules of this sort are most helpful when
there are many conference participants.
The many-participant conference can be of
two types, one in which participants are each
at different locations and one in which they are
grouped at remote locations. When each participant is at a different location, the ability to
switch rapidly from one image source to another
is essential. When participants are grouped at
a remote location, the video image can display
a panel, thereby sacrificing image resolution
for technical simplicity. With appropriate
initialization, the Resolving Bridge mechanism
can improve effective resolution in this case.
The full size image and name display oontinuous1y available during conferencing improves
name identification and recognition. The automatically triggered switching improves coordination in conferencing by eliminating delays
and permitting rapid interchanges among partici pants.
The Resolving Bridge may also have an important
impact upon the emotional tone and the performance of a deliberative body. The above mentioned Equal Time Resolution rule, for instance,
tends to balance participation and assist more
reticent individuals in gaintng the floor. This
influences both the perceived fairness of the
proceedings and the likelihood that relevant
information will be contributed by such persons.
Even a simple rule restricting freedom to interrupt has been found to improve the quality of
deliberative decisions (Morley &Stephenson,
1969). Short (1976, p. 93) confirms that greater
formality in deliberative procedure tends to im·prove performance. The Resolving Bridge for
teleconferencing is a powerful method for
structuring deliberations by increasing formality
without sacrificing flexibility.
Acknowledgments
Preparation of this paper was in part supported by Alcohol, Drug Abuse, and Mental Health
Administration National Research Service Award
1 F32 MH05164-01 from the National Institute of
Mental Health.
References
Short, J., Williams, E., &Christie, B. The
sociology of telecommunications. Lonaon:
Wiley, 1976.
Stodo1sky, D. Machine-mediated group problem-solving: Therapy, learning, performance (Doctoral dissertation, University
of California, 1976). Dissertation
Abstracts International, 1976, 37, 1949Cohen, D., and lSI Research Staff. Network Secure
B. (University Microfilms No. 76-19,633).
Communication. In lSI· Research Staff, A Research program in computer technology, annual Stodo1sky, D. Group conferencing with automatic mediation. In J. Belzer, A. G.
technical report, July 1975-June 1976. Marina
del Rey, Ca.: University of Southern CaliforHoltzman, and A. Kent (Eds), The encyclopedia of computer science and technology.
nia, Information Sciences Institute, July 1976,
New York: Marcel Dekker, in press.
(ISI/SR-76-6) .
Carter, L. J. Videoconferences via satellite:
Opening congress to the people? Science, July
1977, 197(4298), 31-33.
Morley, I. E., &Stephenson, G. M. Interpersonal
and inter-party exchange: A laboratory simulation of an industrial negotiation at the
plant level. British Journal of Psychology,
1969, 60(4). 543-545.
WEST COAST COMPUTER FAIRE
302
BOX 1579, PALO ALTO CA 94302
£HE BEDSIDE MICROCOMPUTER IN THE
IN~ENSIVE
CARE NURSERY
Robert C. A. Goff, M.D.
Fellow in Neonatology
Children's Hospital Medical Center of Northern California
51st and Grove, Oakland, California
(415) 654-5600 ext
431
values. In addition to this voluminous
Abstract:
daily documentation, there is at the
Software has been developed to enable
bedside of each infant a flow chart of
Pediatricians and Neonatologists
to
all the daily laboratory results, and
maintain bedside microcomputers in the
the daily computations of fluid intake,
Intensive
Care
Nursery,
providing
fluid intake per kilogram per day,
instant processing- of, and access to
calories per day, calories per kilogram
the voluminous laboratory data and evnt
per day, urine output per kilogram per
summaries generated by each infant.
hour, etc.
The data is stored in a problem-oriented
While today, with no less than a
format, and may be ac.cessed with an
Herculean effort, we are still capable
inquiry to any particular problem. The
of managing and reacting appropriately
program
is
written in North Star
to the reams of information generated
extended disc BASIC (version 6, release
by our ICN patients ( up to about 40,
3,
which utilizes random disc file
at full census), we are realizing that
access) and is implemented on a SOL/20
the current trend in Neonatology is
Terminal Computer with 48K RAM, and
toward more laboratory tests per infant
triple North Star Microdisk drives.
and
more
documentation
of
the
increasing number of proceures required
Introduction
by each infant.
If this
trend
The
use
of computers in the
continues, then it will be virtually
Intensive Care Nursery is not a new
impossible to keep apace
of
this
idea, but I am unaware of previous
information
deluge.
Future trends
attempts to use a microcomputer in such
aside, it is currently a major task,
an
application.
This paper will
each
time
one of our infants is
discuss the structure of the software,
discharged from the hospital, to review
and
the
reasons
for
both
the
his records (often consisting of 3 to 8
programming language used, and
the
volumes of hospital chart), understand
selection
of
the
hardware
his 2 to 3 month hospitalization, and
configuration.
then dictate a usefully concise and
accurate
summary.
Our present
As a general background, one must
practice is to dedicate 1 to 3 hours in
realize, first of all, that infants in
preparing
each
summary,
with our
an Intensive Care Nursery (ICN) are
nursery requiring, on the average, 2.5
usually highly unstable patients with
summaries per day.
multiple,
complex medical problems,
when compared to older patients in
The solution to this porblem is
other hospital settings. Secondly, and
obvious--to
utilize
some
form of
as
a
result
of
this
first
computer processing and synthesis of
consideration,
infants
in the ICN
both
laboratory
data
and
event
generate an overwhelming quantity of
description to maintain instant access
both data and narrative description of'
to any past information, to accept
clinical
events,
conditions,
and
daily input of data, and, at the time
procedures.
As an example, the daily
of discharge, to abstract from the
progress note written in a typical
patient's file those pertinent items
patient's chart (in most areas of the
appropriate
for
inclusion
in
a
hospital) will require, perhaps 8 or 10
discharge summary.
lines on one page of his chart, ana
will include all new laboratory results
Software
and
procedures,
as
well
as the
The program, written in North Star
patient's clinical condition for that
BASIC, is fairly simple in structure,
day. In the ICN, however, it is not at
but, because of the multiplicity of
all uncommon to find a progress note
types of data manipulations required,
for one day requiring as many as 2 to 3
and
the
extensive text capability
full pages of discussion and laboratory
~WEST
COAST COMPUTER FAIRE
303
BOX 1579. PALO ALTO CA 9430~
required of a narrative summary, the
program length is projected to run to
about 60K bytes, exclusive of the space
needed for variable manipulation. As a
result of its length, the program is
structured in the form of disc files,
directed by an executive program which
chains into RAM whichever sub-program
is called. The program resides in one
disc drive, and stores all patient data
on the other disc (a triple drive will
enable the use of one microcomputer for
every two infants).
The organization
of
the sub-programs is a modified
version of the Problem Oriented Format,
~ow
popular
among physicians, and
extensively used in Intensive
Care
Nurseries across the country. Rather
than being oriented strictly to patient
problems,
the
sub-programs
are
representative of body systems.
This
approach
allows
the formatting of
virtually every type of clinical data
or
problem,
and will permit easy
access, at a later date,
to
any
particular
information
required by
patient follow-up or retrospective data
analysis.
1. Enter Data
2. Enter Events
3. Review Data and Events
4. Plot Data
5. Print Textual Summary
6. EXIT
On selecting, for example, #2, the CRT
displays a menu of events related to
the chosen body system. When an event
has been selected, the computer will
then request the time and date of the
event, and then compute the infant's
age at the time of the event. This is
now displayed for confirmation, and if
approved, will be recorded in
the
appropriate file on the patient's disc.
An opportunity is given to
record
additional
events, then control is
returned to the initial
sub-system
menu.
On exiting the sub-system, the
executive routine is chained into RAM,
and it is then used to access ferther
sub-routines.
Sub-routines:
The
major
sub-routines serve to format the dat
and events into either random or serial
disc files, whichever is most easil
manipulated for the given type
of
information.
The plotting functions
are capable of producing graphs of
data,
plotted
simultaneously
with
certain event markers, as well
as
standardized curves for reference. For
example, the plot of the growth chart
will, on a single page, plot three
graphs: weight,
length,
and
head
circumference, each with appropriate
standard percentile curves, and each in
the - format-of. the._Babson _9.rQwth ___cJ'lart.
Because of the ease of generating these
curves, and their usefulness to the
physician who follows the infant after
discharge from the ICN, they may be
included
in
the
final
discharge
summary, and available to the referring
physician immediately.
Additionally,
attempts are being made to represent
complex data, such as arterial blood
gases and ventilator settings in easily
interpretable graphic form.
It should be noted that, because
of the relatively stereotyped set of
clinical problems common to premature
and sick infants, an estimated 90 to
95% of all data and event summary
information can ~: specifically encoded
for later search and retrieval. The
remaining 5 to 10% of the information
would be accessable only by manually
searching --a category such - as-"OTHER",
included under each body system. This
situation is not the case with general
medicine or, for that matter, general
pediatrics, in which the multitude of
commonly encountered clinical entities
would require a much more
complex
structure
of software in order to
accomplish a comparable textual product
with
comparable
data
access
capability.
Executive Routine: This is a short
program which displays on the CRT a
menu of the major sub-routines of the
system. If the hardware consists of
three disc drives, for use on two
different patients, then the patient is
selected within the executive routine.
At this point, the physician chooses
the particular body system of interest,
and
the
executive
chains in the
sub-routine which has been
called.
With
the
sUb-routine
loaded, the
physician is presented with a menu of
routines included, such as:
WEST COAST COMPUTER FAIRE
Text:
Most
of
the
infant's
admisSIOn history (primarily prenatal
and maternal history) is encoded, and
at the time of review decoded, by the
History sub-routine, so that most of
this textual material is confined to
the program disc, and does not require
space on the patient's disc. However,
uncommon items of history can be typed
in as text, and are stored as strings
on the patient's disc.
This is also
the
case
with each of the other
sub-routines. The finished discharge
304
BOX 1579, PALO ALTO CA 94302
summary will be in the form of a
standard textual discharge summary, and
may
optionally
be formatted as a
letter.
use BASIC.
Second,
it posesses the
CHAIN function and extensive string
manipulation capability.
Third, this
was a natural choice to use with the
North Star disc
drives,
discussed
below.
An
additional
feature of the
output capability of the software is
that it can print the forms (presently
filled out by hand) which are required
by the State of California for each
infant who is transported
from
a
referring hospital to an Intensive Care
Nursery.
Hardware
The hardware chosen consists of a
SOL/20 Terminal Computer with 48K bytes
of
RAM,
a three-drive North Star
Microdisk drive combination, a Sanyo
CRT
monitor,
and a Diablo 1610-3
receive-only "daisy wheel" printer.
If
the system is to be used for only one
patient at a time, or by
several
patients,
changing
discs for each
patient, then a dual disc drive will
suffice.
Diagnoses:
Each
sub-routine
posesses
considerable
diagnostic
capability. Any diagnoses which can be
made solely on the basis of laboratory
data and encoded events or encoded
history, will automatically appear in
the summary as discharge diagnoses.
While the attending physician has the
option of deleting
any
of
these
diagnoses, or adding other diagnoses to
the list, it is anticipated that by far
the
majority of diagnoses will be
accurately made by the program, and
will
maximize
future
access
for
statistical study of
patient
care
information.
An additional feature of
the diagnostic algorithms is that any
suggestive
(but
not
conclusive)
diagnoses will be pointed out to the
physician as possibilities which may
warrant further clinical or laboratory
investigation.
(Once again, the rather
circumscribed nature of
neonatology
allows
this
capability
to
be
implemented on so small a system.)
The choice of the SOL/20 was based
on two major factors.
The first is
size. The Sol will fit comfortably at
the bedside in the ICN, whereas most
other microcomputers are simply too
bulky. The enormous backplane capacity
of the "larger units is not needed.
If
the 48K RAM is all on one high density
memory board, then the SOL will have 3
empty
slots
for
further hardware
development. The second major factor in
the
choice
of
a
SOL
is
its
user-oriented keyboar~, and lack of a
front panel.
The optional numeric
keypad is a tremendous advantage when
entering large volumes of laboratory
data.
Perhaps a third consideration is
the ease with which the SOL may be set
in a "terminal mode" and networked to a
laboratory mini-computer,
for direct
data acquisition.
(A
network
of
micro-computers is certainly in the
near f~ture for most hospitals.)
Choice of Programming Language
Only two languages were considered
in setting about this project:
8080
Assembly Language, and BASIC.
The
former would allow for a much more
concise program structure, considerably
less RAM, and more
rapid
program
execution.
BASIC was chosen instead,
for several reasons. Most importantly,
it
would allow the program to be
quickly modified to run on just about
any
hardware
system,
including
time-shared systems and
the
large
systems available at most university
hospitals. A second advantage to BASIC
is that it would allow other users to
easily modify any of the
graphic,
textual, or diagnostic routines to meet
their exact needs or preferences.
In considering the various disc
drives available, again two facotrs
were of greatest importance. First,
once again, was size. The large disc
drives simply require more room than is
available presently at the bedsides of
ICNs.
The North Star drives can be
tucked away
just
about
anywhere.
Second,
was
flexibility
in
interchanging one patient's data, at
the time of his discharge, for that of
another patient. A large disc would be
wasted if it contained the information
of only one patient, and flexibility
would be lost if a large disc were used
for more than one patient.
The 90K
byte capacity of the 5" inch disc seemed
to be only a slight overkill, and could
easily justify the use of one disc per
patient.
North Star extended disc BASIC
(version 6, release 3)
was chosen in
particular, for three reasons.
First,
it is an extremely powerful and easy to
WEST COAST COMPUTER FAIRE
305
BOX 1579. PALO ALTO CA 94302
The
software
was
originally
developed using a DECWRlTER as the hard
copy output, and all graphics were
implemented so that any serial printer
would be capable of generating entirely
adequate graphs.
Chosing a Diablo
"daisy wheel" type printer was prompted
by not only the desire for more precise
graphics, but also the preference of
most physicians for reading a solid
type font, rather than dot-matrix. The
printer, whatever the type, is not
intended to be at the bedside in the
ICN. It should ultimately be a part of
an additional system located in some
other area of the nursery or nursery
offices, and would be used solely for
printing the discharge summaries. This
additional system can easily be cost
justified by using it the remainder of
the time for inventory, scheduling,
accounting, and numerous other tasks.
Alternatively,
the
printer may be
placed on a mobile cart, and rolled to
the bedside unit for use at the time of
discharge.
Children's Hospital in Oakland, is that
by generating discharge summaries at
the instant of discharge, the hospital
will render better service to referring
physicians,
and
certainly
thereby
improve community-hospital
relations
and physician-hospital realtions.
Summary
A
general
description
of
a
micro-computer
implementation
of a
bedside computer for the Intensive Care
Nursery is presented, with some of its
basic
features,
and
the
authors
justification for selecting North Star
BASIC, and the SOL/20-North Star Disc
combination.
Costs,
and
cost
justific~tions are also discussed.
Acknowledgements
The author wishes to thank Dr.
Barry Phillips of Children's Hospital Oakland, Peter Hollenbeck of The Byte
Shop of Berkeley, Dr. Adam Osborne of
Osborne and Associates, Adam 'Grossman
of the Black Pine Circle School
Berkeley,
and
Bruce
Bargmeier
Berkeley,
for
their
assistance,
suggestions, and encouragement in this
project.
Costs
-----The system described, including
the
Diablo
printer,
should
cost
approximately
$9000.00
with
all
necessary supplies and
sales
tax.
Substituting a DECWRITER for the Diablo
1610-3 will drop the cost by about
$1200.00.
These prices include the
cost of 100 floppy diskettes--$450.00
(for a census of 40 patients).
Justifying such an expense should
be in the light of the c-os-toE typicai
monitoring electronics used in the lCN.
As an example, the PSI infant monitor
(which monitors heart rate, respiratory
rate, blood pressure, heart rate trend,
respiratory trend, and blood pressure
trend, along with appropriate alarms)
runs in the neighborhood of $10,000.00
per bed.
Less expensive monitors are
still in the $5,000.00 range. By using
one triple disc drive SOL system for
every two beds, the cost is about
$2,200.00 per bed, plus the cost of one
printer spread over the entire nursery.
These
figures,
of course, do not
measure the improvement in patient care
that would result from instant data
access at the bedside, as well as
increased physician time attending to
matters other than a dictaphone. There
is
also
a significant savings in
medical
transcription
costs,
by
eliminating
the need to transcribe
lengthy
lCN
discharge
summaries.
Perhaps the greatest cost justification
for a large referral center, such a
WEST COAST COMPUTER FAIRE
306
BOX 1579, PALO ALTO CA 94302
AN AUTOMATED CONFERENCE MEDIATOR
David Stodo1sky, PhD, Center for Educational Research
Stanford University, Stanford, CA 94305 415 494-2106
Abstract
A portable mini-computer based mediator,
which facilitates speaker selection in conferencing is described. The system is a twolevel communication network, permitting both
anonymous and public responses. Up to 128
response units permit anonymous inputs on
short travel switches with positive confirmation by tone signals. Each response unit contains a microphone which feeds a voice-activated
switch in the mini-computer interface. The program samples six bits of information from each
unit, five bits from short travel switches, and
one from the voice-activated switch. The microphone of the current speaker is selected by a
BASIC program responding to switch inputs.
computer with 4,000 words of memory, floppy disk
storage, and a video compatible display. A
crystal controlled clock with storage provides
the system with a millisecond timebase. All
facilities are accessible from BASIC programs.
The design objective was the creation of a
tool for the studyofautomatical1y facilitated
group interaction, which would not by its form
induce 1i-mitations on group process. Preci se
delivery of tone and video displays and rigorous
measurements of speech sequencing and voting
behavior permit utilization of techniques
previously limited to the psychology laboratory
to be used routinely in the classroom.
The central controller consists of a PDP-8E
Technological Advances in the Study of Group
Interacti on
In recent years, three different types of
electronic systems for the study of group interaction have been presented in the socialpsychological literature. Each of these systems
represents a limited but significant technological advance in the study of group interaction.
One class of systems is devoted to the measurement of speech sequencing, another to the collection of votes, and a third to delivery of
stimuli to group members.
mode. The more recent research attempts to use
them in the on-line interactive mode to facilitate group dialog (Sheridan, 1973), problem
solving. (Chu, 1972), and learning (Rubin, 1970)
They are limited in that they are broadcast
information systems; there is only one channel,
a television type display or verbal announcement to feed messages back to the group.
The stimuli presentation system is the
third direction of research on group interaction (Aiken, 1965; Hastorf, 1966; Shapiro,
1963). In these studies, the type and quantity
of verbal production of group members is manipulated by private presentation of information
(e.g., RED light, GREEN light) to each person
in the group. The group is observed by raters
from behind a one-way mirror and differentially
reinforced by the lights, which could denote
IIgood insight-poor insight or other dimensions
of interest.
The speech sequencing measurement systems
(Cassotta, Feldstein &Jaffe, 1964; Haley, 1964)
are directed, as the name implies, to the measurement of vocal behavior of group members.
Their development was motivated by a need to improve the accuracy of data collection and to
cope with the mass of data generated by detailed
recording of speaker turn-taking behaviors.
These methods do not attempt to analyze the fine
structure of vocal production such as tone,
stress, or emotive quality of the voice. Their
An integration of these types of developimplementation is off-line so that no immediate
feedback to the group members is possible as
ment in a computer-based laboratory for the
study of marital therapy has been reported
discussion proceeds.
(Thomas et a1., 1973). This system accommoThe student response or electronic voting
dates only a few persons at once; lights are
system represents another avenue of development used for stimulus presentation and only a few
in the study of group behavior. The depression buttons are available for responding. Vocal
of a switch or turning of a knob is the measur- analysis is quite flexible using voice-opered response in these systems. They have often
ated switches to collect sequencing data and
been used as data collection devices (e.g., for raters to· determi ne IIfau1 ti ng ,II IIposi ti ve
the administration of tests) in the off-line
ta1k,1I and other parameters in conversation.
ll
~WEST COAST COMPUTER FAIRE
307
BOX 1579, PALO ALTO CA 9430~
Design Objectives
The primary objective in the design of this
system was the creation of a tool for the study
of automatically mediated group interaction
which would not by its form induce limitations
on group process.
Classroom Environment. The design attempts
to bring the advantages of the automated laboratory to the classroom. To the researcher, the
classroom setting is advantageous in that it
provides groups of people in an environment
which is less artificial than that found in the
experimental psychology laboratory. To the instructor, it provides a welcome relief to the
logistical problems of the large classroom. Preprogrammed modules can administer tests with
immediate feedback to the student and summary
statistics to the instructor for the evaluation
of test questions and identification of problem
students. In the response system mode, the instructor can obtain immediate feedback to lecture material. In the conversation mediation
mode, classroom discussion can be facilitated.
Response Units. Because of the expense
involved in such a computer-based system, its
use has previously been limited to a few people
at any given time. The approach described in
this paper uses standar1 computer components
for a majority of its implementation. A substantial economy is achieved, however, by the
use of simple, hand-held response units, which
can be easily constructed. The objective of 64
response units was selected to meet classroom
needs, where the system could serve as a conver_satton medlator and electronic voting machine_
and could aid in the administration of tests or
experiments. The fully expanded interface
accommodates 128 response units.
Portability. The objective of a portable
design is to permit use in different classrooms
and in the laboratory. This feature combats
under-utilization, a chronic problem with classroom response systems, in two ways. First, it
permits the system to be placed at a location
where it is likely to be used. Second, it permits easy rearrangement of seating patterns, an
important variable in both teaching and research
which greatly improves the system's flexibility.
Voice Capability. The response unit was
designed to permit voice communication and thus
experiments in which people are visually and
acoustically isolated. This feature is also
useful in face-to-face groups and combats the
problem of under-utilization of electronic
response systems. A microphone and voting
system is more likely to be used than just a
voting system. The benefit of voice amplification in large groups is obvious even to those
~ WEST
COAST COMPUTER FAIRE
uninterested in voting. In some previous
response systems, instructor/student dialog was
limited by acoustical problems (Instructional
Industries, Inc.).
Design for Equal Participation. Most
previous systems for the mediation of group
interaction have, by their form, limited equality of participation. A primary promoter of
unequal participation in the large classroom is
the public address system, which amplifies the
instructor's voice. Not only does the instructor have a central position and authority, but
his voice is enormously louder. Any system
seeking to avoid imbalance in participation
should provide each person with access to the
public address system.
Anonymous response capability has been
demonstrated to facilitate participation in
both voting and speaking (Sheridan, 1973;
Dybvig, 1972). The design objectives for the
response collection unit specified characteristics rarely encountered in a typical computer
terminal or voting system. The unit had to
permit private voting "responses and speech
transmission capabilities.
Another limitation electronic voting systems often foster is unequal participation via
centralized control or private presentation of
aggregated response information. Centralized
control is countered by use of a computer which
can provide centralized coordination and distributed control. Private presentation is
a_'{oided_by_s.imultaneous1y pres.entingthe aggre- _
gated information to all participants. The
system can be configured for centralized control
and private presentation of aggregated responses
but this mode of operation is not forced upon
the user by the hardware design.
Confirmation. There is no fail-safe capability in most electronic voting systems, and
errors can accumulate without the knowledge of
the operator or of the users. Pri vate confi rmation of responses in an electronic voting
system is a necessity. This feature is important both in order to control errors and to
maintain confidence of users during voting. For
full flexibility, maximal response rate, and
tight error control, the system should be
designed to simultaneously receive and confirm
response, that is, have a full-duplex capability.
Response Collection. Previous systems
introduced limitations upon the rate users could
transmit information because of the low response
collection rate, limited alternatives, or lack
of capability to transmit information simultaneousl y on the pub 1i c and anonymous 1eve1 s. In
308
BOX 1579, PALO ALTO CA 94302~
the system proposed below, the limitations on
information transmission are due only to the
inherent information processing capabilities
of the users.
One of the critical factors in the design
of an electronic system is the selection of the
total number of parallel response alternatives
available to the users. Previous studies
(Miller, 1956) have indicated that the amount
of information transmitted for stimuli which
vary on a single dimension is about 3.25 bits.
As the number of stimulus dimensions is increased, the amount of information which can be transmitted in a single judgment also increases. A
four-dimensional stimulus can be transmitted
with 5 bits of information. For a stimulus with
seven dimensions, a maximum of 7 bits of information can be transmitted by the user.
which the probability of correct response is
very low . . . . These findings have definite
implications for instructional decision making.
. . . While it is known that overlearning increases retention, the amount of overlearning
to be provided has always been a relatively
arbitrary decision. The capability of measuring response latency may provide a means of
determining the optimal amount of overlearning . . . for a particular student . . . . If
it were found that response latencies were not
shortened by instructional programs designed
to bring a student to a high level of proficiency in a certain skill, the utility of instructional procedures might be questionable"
(Judd &Glaser). The instructor using an electronic mediation system which can provide him
with latency data would be in a superior
position to evaluate instructional program
effectiveness as compared to an instructor who
had a system providing only correct response
information.
In use, the number of response alternatives
is likely to be limited by memory for alternative codes rather than by judgmental capacity.
What degree of time resolution must the
A response indicating one of 32 categories is
apparatus have to be limited in accuracy only
learned relatively easily. Englebart (1965)
found that personnel can readily learn an alpha- by the user? In the studies by Judd and Glaser
(1969), response latencies were measured with
betic code on a five-bit device.
an accuracy of + or - one millisecond. One
millisecond is near the minimal repetition time
Latency measurement may have application
in the classroom, as the following computerof the neuron and thus one
the basic response
assisted instruction experiment suggests. Judd subcomponents which would have to be measured
and Glaser (1969) found that there is some inin a psychological experiment.
crease in latency if an item remains unlearned
Voice responses contain a vast amount of
over a considerable number of trials, while
there is a large and significant drop in latency infonnation~ They can be analyzed in terms
of their duration and sequence, amplitude,
from the trial of the last error to succeeding
trials. "There is also an indication that laten- tonal qualities, syntax, and semantics. Each
cy of the correct response begins to drop, while· of these possible measures overlaps the others
incorrect response latencies remain constant, or in terms of the information it can yield. The
increase slightly on the last one or two trials above measurements are progressively more
pri or to the tri al of the 1ast error" (Judd &
complicated to perform automatically. The
Glaser, 1969). The study suggests that as the
minimal system requirement is the capability
measure of correct response approaches its
to determine whether vocalization is occurring
asymptote, the latency measure becomes relative- at a given moment. This function is necessary
ly more sensitive. On the basis of latency, it if vocalization is to be used as an implicit
appears that overlearning continues to have an
request for the group's attention, as is the
effect beyond 10 tri al s past the TLL "post
case in unassisted conferencing. Similarly,
the cessation of vocalization is useful as a
trial of the last error response latencies may
provide means of determining the amount of over- sig~al of relinquishing the group's attention.
learning practice which would be required for a
particular subject to assume to assure a given
A~ unobtrusive system must identify a
degree of retention" (Judd & Glaser, 1969). To speaker and enable the speaker's microphone
summarize, there are two major findings of the
within a psychological moment (approximately
experiment: first, prior to the trial's last
1/10 second) so that it appears that the
error, latency was a measure of test complexity speaker's line is open whenever the person
but did not measure the development of associashes to address the group and is permitted to
so by the rules of discussion.
tive strength. Second, during overlearning,
response latency did appear to measure the continued development of associative strength.
The ability to detect voice onset and off"Latencies may be quite useful in a situation
set yields the ability to collect patterns of
in whi ch instructional materi al s have been· care- turn-taking within a group. These patterns
full y progranmed, so that correct response prob- can yield valuable information about the
group's emotional tone (Haley, 1964). Accurate
ability is always relatively high, but they
determination of vocal patterns within a single
would seem to be least useful in situations in
~ WEST
COAST COMPUTER FAIRE
309
BOX 1579, PALO ALTO CA 94302~
speaker's comments can yield information as to
emotional tone of that individual. Time resolution of 1/10 second is adequate to determine vocal patterns both within a given individual's comments and between vocalizations of
different individuals.
the user must learn the communication protocol
of yet another machine. These complexities
limit effective utilization of a system.
In order to minimize these problems, a
high level computer language is specified for
implementation of the mediation system. This
The basic device I have specified thus far language must be easy to learn and must have
would accept 5 bits of information simultaneous- as built-in features a simple operating system
ly and resolve the input to within a thousandth and a rudimentary editing procedure. Thus,
of a second. No human, however, can transmit
once the user has mastered the language, he
5,000 bits of information per second, though
can utilize the machine effectively with only
this is not considered a high data rate for a
a few auxiliary commands.
computer. The reaction time of a person on a
task is related to the amount of information
Response Units
transmitted. The currently accepted function
for disjunctive reaction time is T = A + BH,
Switch Arrangement. The switch arrangewhere H is the amount of information expressed
ment used was motivated by research at the
in bits, transmitted by the subject per past
Augmentation Research Center, Stanford Research
response (Judd &Glaser, 1969). Nominal values Institute (Eng1ebart, 1965). This research
are: A = .2 sec., B = .2 sec/bit.
group investigated stenotypewriter, standard
typewriter, telegraph key, and the computer
The trade-off between reaction time and
light pen as the input devices for man-machine
information transmitted results in a upper limit communication. They eventually settled on
of 50 bits of information per second transmitted the chord-keyset. This device uses the five
from stimulus to response (Hyman, 1953). In case fingers to generate 31 possible chords. The
of user errors, less information is transmitted; condition when no keys are depressed is reserved to indicate the previous chord is done.
thus, the keypress rate may exceed this level.
In one experiment, even cases where subjects
Eng1ebart found that a clerk could learn to
transmitted well below the potential information transmit about 20 words per minute after 20
transmitted by error1 ess respondi ng, the reaction hours of unsupervi sed practi ce wi th thi s keytime was linearly related to the potential infor- set. A speed of 35 words per minute was
mation in the task (Judd &Glaser, 1969). From attained with additional practice. This
chord-keyset offers a good trade-off between
the reaction time literature, it would be expected that response latencies would be a linear speed of input and portability. In the conferfunction of the amount of information actually
ence mediation application, the chord-keyset
being transmitted, but the latency data appeared offers a substantial margin of capacity, while
tob~Lmore_a_ linear func:;tipn of Jhea!TIO~nt ot_ma;l1ta_iJl5n9_J?Ottabi 1ity by pe!'fl1i tti ng pa rti cipotential information in the task.
pants to be unencuiTiberedbYffxe-d-keyboards. - .
In addition, it gives them the advantage of
The response rate may also diverge from the a free hand for taking notes or for other
purposes.
information transmission rate when previously
learned sequences of user keypresses are delivered at a high rate as a result of a single judgA critical specification in an electronic
mente In no'case has rate of actual responses
vote collecting application is privacy of inexceeded 50 bits/second, even for short periods puts. The switch characteristics in an iso(F1anagan~ 1965; Posner, 1967). Thus a device
1ated group situation are not critical. If
capable of transmitting 50 bits/second with a
one wishes to maintain privacy of a vote in
a face-to-face situation such as that of the
resolution of 1 millisecond should not add any
limitations to the rate of information processing classroom, some precautions must be taken.
in our man-machine system. The device described One approach is the placement of the switch
should accept 5 bits of information in parallel
underneath a table to insure it is not visible
and transmit this data every tenth of a second.
to other members of the group. This switch
may be activated by either the hand, or, if only
Software. A crucial human factors decision a single switch is necessary, by the foot.
in any automated system is the trade-off between Another method is a physical barrier, which
complexity and flexibility in operation. In
covers the hand, isolating the movements of
many computer systems, the user has to master
voting from the visual sphere of group members.
many 1eve1 s of comp1 exi ty before he .can effectively make use of the apparatus. Typically,
The keyset configuration selected does
the user must master the operating system, an
not require visual attention, and may be kept
editor, a programming language, and often the
out of sight of the user and others present.
machine language and even hardware details.
Concealment would, however, eliminate the
If the system cannot operate independently,
response unit's multi-function capacity as a
WEST COAST COMPUTER FAIRE
310
BOX 1579. PALO ALTO CA 94302
voting device and voice communication instrument.
The use of a minimal travel or pressure sensitive switch dispenses with the need for concealment.
Switch Characteristics. Most switches
can be obtained in either a momentary or a
latching version. Latching switches are
available as toggle or push-button types.
The toggle type is inapplicable because of
pri vacy consi derati ons (Sheri dan, 1971). A
complete cycle with the push-button latching
switch involves a press-release cycle to turn
it on and a press-release cycle to turn it off.
This is considerably slower than a momentary
switch which is on when pressed and immediately
off when released. Storage of information is
done electronically. The momentary switch can
also function as an automatic key which has
fixed repeat time and senses a static state to
determine an output. Examples are automatic
keyers used to transmit Morse code and repeat
keys on electric typewriters.
Tactile feedback can be given by either an
inertial transducer (Sherrick, 1965) or a iow
level electronic stimulus delivered directly
to a person's skin. The electronic stimulus
would permit simultaneous sensing of Galvanic
Skin Response, but the signal would be degraded
by hand placement and movement artifacts. The
ratio between absolute threshold and painful
stimulation is 1 to 8 and permits 59 distinguishable steps or just noticeable differences
(Saunders &Collins, 1971).
Conversion of the feedback signals into
low frequency tones offers the best solution
for tactile feedback. Most people have had at
least minimal experience with tone-producing
instruments. Complexity is considerably reduced by using an inertial transducer.
After a comprehensive survey of current
switch technology, the electrical grating mechanical switch (Model TC-l) was selected for use in
this application. The TC-l is an economical,
low force, low travel switch. liThe multi-element, parallel contact design concept provides
an extended conduction region. Its principle
constitutes the first major advance in the principles of mechanical switching in nearly half a
century" (Wild Rover Corp.). The switch is heat
and shock resistant and has a life in excess of
10 million cycles at low load. In the handsets,
I use the TC-l, series C switch capsule, .615
inches in diameter by .16 inch depth, weight 1.4
grams and the TC-l, M7, a square shaped, plastic
packaged switch with the numbers 0 through 4 (.75
inches by .75 inches, 3 grams). The packaged
switches were mounted with switch 0 under the
thumb and switches 1 through 4 under the fingers
1 through 4. The switch travel for contact is
approximately 10 thousandths of an inch, and the
force required is minimal. Thus it is possible
for the exposed finger to activate the switch
without apparent movement. This feature permits
completely private voting in the small group
setting without the necessity for concealment.
In operation, the person can rest his finger
lightly on the switch without triggering a response, and then can trigger an input without
apparent movement. This type of switch should
not be confused with the Contact or capacitive relay switch. The capacitive relay switch
is activated by proximity or touch; therefore,
a person could not rest a finger on the switch
without triggering it, a necessary requirement
for this application.
II
II
Confirmation. In the previous sections,
a switch configuration permitting anonymous or
private response without the need for visual
WEST COAST COMPUTER FAIRE
attention was developed. The needed confirmation should have similar features for full
flexibility. The alternatives are tactile
feedback or auditory feedback with provisions
for pri vacy.
Auditory feedback can also be accomplished
with tone signals, if their frequency is a
magnitude greater than that required for tactile
feedback. The major disadvantage of this mode
of delivery of acknowledgment is the precautions which must be taken to insure privacy.
If the device produces an airborn signal, its
chamber must be sealed to the ear if privacy
is to be preserved. An inertial transducer
mounted on the mastoid bone which transmits
vibration directly to the inner ear by bone
vibration is commercially available (Radio Ear
Corp., Cannonsberg, Pa.). This device, however, can become uncomfortable after extended
use, and its placement is probably too critical
for use without individualized instruction.
An earphone type of device was selected for
this application. When the user hears a tone
signal in response to his keypress, he can be
certain that the computer has received and
acted upon his input. Tone response is a
software function.
The current response unit is a full-duplex
communication terminal, permitting simultaneous
transmi ssion of keypress i nformati on to the
computer and tone signals from the computer to
the terminal.
Handset. The design finally adopted was a
modified telephone handset. The modification
consisted of the installation of six switches,
four placed between the mouthpiece and earpiece of the telephone handset so that the
fingers of the hand could rest upon them. In
order to permit the handset to be held in
either hand, and therefore accommodate lefthanded people, two thumb switches are mounted
on opposite sides of the handset, just below
311
BOX 1579, PALO ALTO CA 94302
discussion. A second approach to facilitate
the identification of the actual speaker is
the use of the throat microphone (Haley, 1964).
The throat microphone, however, produces an
unnatural voice sound of lowered intelligibility. It can best serve as an adjunct to
a primary voice transmission channel.
the earphone housing. When the handset is held
in its typical fashion, the user's fingers and
thumb rest on the appropriate switches. A
substantial advantage in using the telephone
handset is its familiarity to almost every
parti ci pant.
This arrangement meets a number of restrictive criteria necessary for the flexible use of
an electronic response collection system in the
group environment. The telephone handset, which
is readily available, can serve effectively as a
two-way voice communication instrument, thereby
permitting experimentation in which the group
members are separated. In the face-to-face
situation, the microphone element serves as an
effective voice pickup unit and permits the amplification of the speaker's voice so it is easily heard by other group members.
Computer System
Selection Factors. The selection of a
mini-computer was based on three major factors:
1) computational needs, 2) software availability, and 3) cost. Since the primary function of the mini-computer is to collect and
respond to switch depressions by group members,
the computational load is quite light. The
voice-operated switches transmit data to the
computer at the highest rate. To continuously
collect data on vocalization of all group memEach handset is connected to the computer
bers at one tenth of a second intervals would
interface via a nine-conductor cable. Five
require the computer to sample 320 times per
conductors return switch depressions, one selec- second, since two units are selected simultor line activates that handset's switches, one taneously. This is the maximum sampling rate
line goes to the earphone, one to the microphone, for vocal inputs and switch inputs, since both
and a common ground line is used by the earphone of these inputs are sampled by a single operand mi crophone.
ation. A rate of 320 samples per second is
quite low for any modern mini-computer.
Voice Input. The telephone handsets used in
this implementation were of the sound-powered
The second major factor in computer setype. The sound-powered telephone handset uses lection was availability of software. The
a dynamic element for its microphone, and thus
computer selected should have a large number
permits a higher quality voice signal than that of installations, preferably in educational
produced by the carbon button transmitter used
institutions, and should have an active user
society, which maintains and updates an exin the conventional telephone.
tensive software library. Software support by
An advantage of the telephone handset in
the manufacturer and a selection of appropriate
the c1as sroom type. of s i tuat i ani s the __ rnai nten~ _. perip-heral_~quipl]1ent ar~._ClJso_._importaJlt facance of an appropriate mouth to microphone ele- tors in mi ni -computer sel ection. As a:--re·sultment distance. An alternative in the group
of these considerations, the PDP-8/E was
selected as the main frame for this system.
situation is a conventional microphone. The
conventional microphone public address type of
system is, however, prone to acoustic feedback
The availability of a Digital Equipment
which can cause severe oscillation, resulting in Corp. PDP-10 on campus also contributed to
an overload of the various components of the
this decision. Programs can be completely presystem.
pared on the PDP-10, which has available a
PDP-8 simulation program and cross-assembler.
A further problem with the conventional
Thus the advantages of a large time-sharing
microphone system is spill-over, which occurs
system are available for program preparation,
when one person speaks exceptionally loud.
but the system is not needed for operational
Under this condition, a number of microphones
use. All programs run in stand-alone mode
can appear to be on, to the computer, thus caus- on the mini-computer system.
ing confusion in the determination of the actual
speaker. This is a problem even in groups of
Peripherals. A serial input/output board
three or four people. Attempts have been made
was used to drive a video compatible terminal
to design systems which cancel this interference (Ann Arbor termi nal , Model 204). Thi s termi nal
by electronic summation and cancellation (Casso- was selected because of its low price and a
tta, Feldstein, &Jaffey, 1964). This cancella- format appropri ate for the di spl ay of i nformation technique is only effective for a small
tion to a large group. The unit generates a
number of speakers and a fi xed pl acement of
television type display with 16 lines of 32
microphones. A substantial increase in complex- characters each.
i ty woul d be requi red for a 1arge group of
people in which microphone poSition was not
The Ann Arbor terminal 204 disp y unit is
preset or was permitted to change during group
driven at a 1200 baud rate. This permits 120
WEST COAST COMPUTER FAIRE
312
BOX 1579, PALO ALTO CA 94302
characters per second to be transmitted to the
screen. The terminal permits absolute character
addressing; thus, any character on the screen
can be changed in one fortieth of a second.
The system is equipped with eight small video
monitors. For larger groups, standard television receivers tuned to channel four can be
used, since the terminal simultaneously generates a radio frequency signal on this channel
and a direct video output to the eight nineinch monitors. This display unit is also equipped with a teletype-like keyboard, which serves
as the operator's console.
A secondary storage medium in a mini-computer installation is often critical for effective operation of the system. The storage device should be fast and flexible in order to act
as an extension of the minimal memory available
on the mini-computer. Unless the medium is removable, the system is limited in use to only a
few users, for storage space can become rapidly
exhausted. The removable diskette makes the
system much easier to use since it makes possible s,tand-a10ne operation and provides an instructor with a medium which, when mounted, provides a memory of previous class sessions. Program selection by simply inserting an appropriate
diskette is also possible.
while a disk transfer is in progress. In
order to maintain accurate timing, a special
cumulating clock was constructed. A foundation module (11-0E-8) was purchased from
Douglas Electronics Inc., San Leandro, Ca.
The fundamentai time source for this clock
was a crystal oscillator producing a square
wave output at 10 megahertz. This signal was
divided by 10,000 to yield a pulse per millisecond. Each pulse causes a 12-bit counter
to increment. Periodically, the counter is
read by the computer and cleared. Thus, the
clock can accumulate 2,048 ticks, or milliseconds, before overflowing. The most significant bit of the 12-bit counter is reserved
to indicate overflow. If this bit is set on,
it cannot be turned off, except by the operation which reads the counter into the accumulator of the central processing unit. This
positive indication of overflow conforms with
the standards specified by Creelman (1974).
The same foundation module serves to
transmit 12 bits of information to the interface. These outputs control microphone selection and tone selection for feedback.
Response Unit Interface. The majority of
the hardware design effort was directed toward
the interface for the electronic voting units.
In many cases, the cost of peripheral stor- The interface can be divided into five major
age devices exceeds the cost of the computer it- sectors.
self. The only device capable of meeting the
The switch input lines are connected to a
above speci fi cati ons at mi nimum cost was a movable head diskette or "floppy disk" system. The common node through diodes. Thus, switch #1
unit selected permits the storage of 131,072 12- from all of the odd numbered handsets connects
to the same input terminal on the 12-bit I/O
bit words per disk unit. The maximum transfer
rate is 15,000 words per second, and transfers
board. At any given moment, one pair of hand
are made in blocks of 128 words. This configur- units is selected. Each unit delivers five
ation permits the transfer of data to and from
finger switch closures and one voice-operated
switch closure to its half of the 12-bit input
the main memory of the computer to be timeboard. The input interface is jumpered to
sequenced with data collection operations. In
the current configuration, the longest possible indicate a transition on an input line. The
transfer from disk would take approximately 30
use of the input lines to indicate transitions
milliseconds. Thus, even when sampling data
eliminates the problem of switch bounce by
10 times per second, the computer can transfer
storing anyon-transition that occurs during
selection of a unit.
information to disk memory without the loss of
any data samples. The alternative, a direct
memory access module, is an expensive peripheral
The 12-bit output section of the parallel
controller which permits data transfer to be
I/O interface board is used for switch input
interleaved with computing operations.
and for tone feedback. The four least significant bits are bused to one~of-16 selector
The computer configuration included a tele- integrated circuits. The fifth bit is used
type interface. The tel etype permi ts the load- to enable one of two selector circuits.
ing of paper tape when building a software system, running diagnostic programs, and the transThe six most significant bits are similarfer of information from other machines. It also ly arranged to feed a total of up to eight
functions as a hard copy listing device.
selector circuits. The sixth bit of the 12-bit
parallel output is reserved for system expanInterface Hardware
sion. It can be used to select a high or low
bank of selectors. It would operate simulClock Board. Because of the high rate of
taneously on the unit voting selectors and on
information transfer to and from the disk, the
the feedback selectors.
computer cannot perform any other operation
WEST COAST COMPUTER FAIRE
313
BOX 1579. PALO ALTO CA 94302
The output register on the clock board
provides the microphone selection information.
The seven least significant bits are reserved
for microphone selection via up to eight oneof-16 selectors. Anyone of a possible 128
microphones can be on at a given moment.
The electronic voting units plug into the
interface via 36 pin Molex sockets. Each
unit uses one nine-pin column. Thus, a group
of four units connects simultaneously to the
interface. The back of the connectors is used
for mounting the busing diodes. All circuit
components are mounted on a perforated vector
The five most significant bits select any board. This board is in turn mounted to a
combination of five tone generator outputs
standard ~ inch relay-rack panel using two
to be transmitted to a given earphone via the
inch standoffs. In the mounted position, all
feedback selectors. Thus, the feedback tones
circuitry is between the perforated panel and
can occur in any combination, as is necessary
the rack panel. Individual potentiometers are
with a chord-handset approach. The actual tones supplied to adjust the level of input needed to
are derived from the timing chain of the clock. trigger the voice-operated switch. This perTones derived from the clock chain are accurate mits different types of microphone elements to
to five digits, which is well in excess of the be used in the voting units. Wire wrapping
accuracy needed for this feedback application. was selected as the method of interconnection
of circuit elements.
Voice Signal Processing. The voice-operated switches are integrated with the speaker
Software
selection circuitry. A novel MOS gating method
is used to minimize system cost and response
BASIC Language. The BASIC computer langutime and to maximize reliability. The microage was selected based on criteria of ease of
phone signal from a given hand unit feeds into use, compatibility with other systems, and
an operational amplifier, which is set for a
avaflability for uses with the current memory
gain of 1,000. This amplified signal is then
limitation. The 4K memory made it imperative
fed into the voice gating circuit and the voice- that the software system make effective use of
the diskette secondary storage media. POLYoperated switch circuit.
BASIC (DECUS 8-195), a BASIC dialect, fits
The voice gating circuit is comprised of a these requirements. It is almost identical
to BASIC as described in Kemeny and Kurtz
three input nand C-MOS gate. The audio signal
(1967). BASIC in this software package is imis fed to one input. The other two inputs are
tied together and are fed from the microphone
plemented by compilation, and programs can be
selector lines. The outputs from these micro- 1arger than core memory. In addi tion, the
CHAIN command permits one program to call anphone selector gates are summed and amplified
before being sent out along the earphone bus.
other. Thus, the sequence of programs limitThe earphone bus feeds to the PA amplifier in
ed only by size of diskette storage can be exa face~ to~ fad~~froup--andinto the --1 ndividua 1-ecutedunder--prQ9ram £ontro 1.earphone transducers for use in the isolated
Language Additions. POLY-BASIC had to be
group condition. The use of a C-MOS gate in
this application is dependent upon the device's modified to accommodate the diskette secondary
capability to function as an analog or digital
store. The modification is transparent to the
circuit element. When the device is selected, user. The POLY-BASIC READ and WRITE commands
were modified to handle a DATA file on disk
it serves as an amplification stage. When it
is not selected, it is completely cut off, thus instead of in the temporary storage area from
not permitting the transmission of audio infor- which programs are executed. The change permation.
mits as many as 40,000 numbers of characters
to be reserved for data storage by use of the
The voice-operated switch circuit contains added OPN function.
two operational amplifiers. The first amplifier drives a rectifier. The derived DC potenThe 12-bit parallel I/O interface is controlled by the new fun-ction SRD, which intertial, filtered with a one tenth of a second
time constant, is in turn amplified and used to rogatesa speci fi ed handset pair. The function
trigger a one-shot. The one-shot drives a two is called with the 12 least significant bits
input AND gate. The other input to the gate is of the argument specifying which output line
to select and returns with a l2-bit word conthe unit selector line. The gate output is
treated as the sixth switch input from a given taining a pattern with the ones indicating
unit.
swi tches closed.
II
Connectors and Mounting. Cables provided
by the interface manufacturer are used to bring
parallel I/O signals to the interface. DEC
compatible sockets are used on the interface
board itself (Douglas 26-DE8 wire wrap sockets).
WEST COAST COMPUTER FAIRE
II
The hardware clock ;s interrogated by the
pseudo-interrupt routine which updates a 24-bit
memory storage location indicating elapsed
time to the millisecond. The CLK function interrogates this location. The output register
314
BOX 1579, PALO ALTO CA 94302
on the clock board which controls the microphone select and tone select lines is loaded
with a 12-bit word by the MIC function.
Undocumented Features. The switch register on the front panel can be interrogated by the KEY function.
Pseudo-Interrupts. The complexities
of interrupt handling are avoided .in the
POLY-BASIC software by the use of pseudointerrupt software. After each line of code
is executed, or block of data is transferred,
the system polls all peripherals to determine whether service is required. This process updates the internal clock time and implements buffered terminal input and output.
Thus, a line of up to 32 characters can be
buffered to the video display while processing continues.
controlled voting systems have in most cases
evolved from previous systems which did not use
the computer for their control. Therefore, the
configurations are somewhat redundant, and, in
many cases, the computer is not utilized effectively. Most of the electronic voting systems
in current use are simple tallying mechanisms.
Even when the systems are controlled by computer, the operations they perform are extremely
simpl e.
Comparison with Other Systems
A computer system for group instruction
and research has been presented by Scholz
and Holly (1975). This system has a substantially different orientation; it also represents a different hardware approach to
vote collection than that presented here.
Their unit uses an input multiplexer, as
opposed to the selector system described
here. The input multiplexer has the advantage that it permits more rapid scanning of
the input lines in situations where line capacitance could cause slow response ,times.
This has not been a problem in the system
descri bed in thi s paper, however. The input
multiplexer approach must use a selector
circuit for each bit of the input signal.
In our system, six times as many selector
circuits would have been necessary if the input selector approach had been taken. In
the Scholz and Holly system, only three selector circuits per unit are required; thus,
the difference is not as significant. The
useful feature in their system not used in
the currently described vote collection system is an auto-polling circuit. This permits
the interface to autonomously scan the voting
units, while the computer is performing other
tasks. In this condition, their system generates an interrupt when a vote is received.
In the system described in this paper, the
use of the interrupt system is reserved. All
polling proceeds under program control.
Acknowledgments
I would like to acknowledge the invaluable aid of Prof. Albert Ahumada, School of
Social Science, and Prof. Howard Lenhoff, Biological Sciences, on this project. The assistance of Prof. William Batchelder and Prof.
Jack Yellot, School of Social Science, Thomas
Batey, Wayne Deeter, and Mary Aubuchon of the
Social Science Laboratory, Jim Humphries, School of Social Science, and Jim Neighbors, Information-Computer Science, contributed substantially to this project. The support of
Dean Christian Werner and the Staff of the
School of Social Science was 'necessary to the
project1s accomplishments. Finally I would like
to thank Corinne Strohschneider for preparation
of this report. This work was performed at the
University of California, Irvine.
This work was supported in part by Innovative Projects in University Instruction No.
406701-07427 and by Alcohol, Drug Abuse, and
Mental Health Administration National Research
Service Award 1 F32 MH05164-01 from the National
Institute of Mental Health.
A number of electronic voting systems
are available commercially. These computer
WEST COAST COMPUTER FAIRE
315
BOX 1579, PALO ALTO CA 94302
References
Aiken, E. G. Changes in interpersonal descriptions accompanying the operant conditioning of verbal frequency in groups.
Journal of Verbal Learning and Verbal Behavior, 1965, i, 243-247.
Judd, W. A., &Glaser, R. Response latency as
a function of training" method, information
level, acquisition, and overlearning.
Journal of Educational Psychology, 1969,
60 (4 ), 1-30.
Cassotta, L., Feldstein, S., &Jaffe, J. AVTA:
A device for automatic vocal transaction
analysis. Journal of Experimental Analysis
of Behavior, 1964, ?...' 99-104.
Kemeny, J. G., &Kurtz, T. E. BASIC programm~. New York: John Wiley and Sons, Inc.,
1967.
Chu, Y. Study and evaluation of the student
response system in undergraduate instruction at Skidmore College. Educational Support Project of the General Electric Company, Schenectady, New York, 1972.
Creelman, C. D. Software management of timing
in computer-controlled on-line experiments.
Behavior Research Methods & Instrumentation, 1974, ~(5), 488-492.
Dybvig, H. E. Some observations on the use of
the student response system in teaching
radio and television classes. Educators
Review, Instructional Industries, Inc.,
New York, 1972.
Englebart, D. C. Augmenting human intellect:
Experiments, concepts, and possibilities.
(Contract AF 49(638)-1024). Menlo Park,
California: Stanford"Research Institute,
March 1965.
Miller, G. A. The magical number seven plus
or minus two: Some limits on our capacity
for processing information. Psychological
Review, 1956, 63, 81-97.
Posner, M. I., &Fitts, P. M. Human ~erforman
ceo Belmont, California: Brooks COle Publishing Company, 1967.
Rubin, S. Student personalities, classroom interactions and the evaluation of an anonymous feedback system in college classrooms.
Thesis, Purdue University, 1970.
Saunders, F. A., & Collins, C. C. Electrical
stimulation of the sense of touch. The
Journal of Biomedical Systems, 1971:;2(7),
27-37.
Scholz, K. W., &Holly, B. A 64-station computer-assisted teaching and research facility. Behavior Research Methods & Instrumentation, 1975, I(3}, 301-304.
"Shapiro, D. The reinforcement of disagreement
in a small group." Behavi or Research and
Therapy, 1963, 1, 267-272.
flanagan, J." t. Speech anal,ysis.,synth.esi s
and perception. Berlin: Springer-Verlag,
1965.
Haley, J. Research on family patterns: An
instrument measurement. Family Process,
1964, ~, 41 -65 .
Sheri da"n, T. B. Technology fo r group di a1ogue
and social choice. Proceedings of the Fall
Joint Computer Conference, 1971, 327-335.
Hastorf, A. H. The "reinforcement" of individual actions in a group situation. In
Krasner and Ullman (Eds.), Research in
behavior modification. New York: Holt,
Rinehart, and Winston Inc., 1966.
Sheridan, T. B. Progress report of the M.I.T.
Community Dialog Project, 1973.
Hyman, R. Stimulus information as a determinant of reaction time. Journal of
Experimental Psychology, 1953, 45, 188-196.
Wild Rover Corporation. The TC-l principle.
TC-l Touch activated switches, keyboards,
&moving key systems. Norwood, New Jersey.
Instructional Industries Inc. Personalized
instruction and mass-lecture planning at
Monroe Community College. Educators Feedback, Ball ston Lake, New York.
WEST COAST COMPUTER FAIRE
Thomas, E. J., Walter, C. L., &"0'F1aherty.
Com uter assisted assessment and modificatlon: Posslbl ltles and 1 ustratlve
data. 100th National Conference of Social
Welfare, May 30, 1973, Atlantic City, New
Jersey.
316
BOX 1579. PALO ALTO CA 94302
SYNTHETIC SPEECH FROM ENGLISH TEXT
D. Lloyd Rice
Computalker Consultants
Box 1951
Santa Monica CA 90406
A flexible rule processor and a set of rules Is described
which converts nonmally spelled English text Into the phonetically
spelled strIngs needed for a speech syntheslz.r system such as the
Computalker CT-l/CSR1. StrIng match-and-replace type rules locate
common letter sequences of nonmal spellIng and substitute the appropriate phonetIc sequences. The rules are stored In a way that allows
easy modIfIcatIon wIth a standard text editor and open-ended upward
expansIon of the system to a general phonetic dIctionary. Problems
of such a system are discussed, IncludIng the proper assignment of
stress patterns and ways of handling ambIguous pronunciations.
WEST COAST COMPUTER FAIRE
317
BOX 1579, PALO ALTO CA 94302
MACHINE RECOGNITION OF SPEECH
M.H.Hitchcock, President, Phonics Incorporated, POB 62275, Sunnyvale CA, 94086
tures are then concatenated and word recognition attempted by analyzing the
strings of these features. The main advantage of this technique is that a relatively small number of features may be
used to identify a large number-of spoken
words since it is essentially a sequential
process. For example, let us assume that
using some sort of feature extraction process, the english phonemes ,. only 46 in
number, can be correctly identified. Any
word may then be identified simply by recording the recognized sequence of phonemes and using a table-lookup to retrieve
the result. Features which might be used
to identify phonemes or characterize whole
words include fundamental voice frequency
or pitch, frequency and amplitude of vocal
resonances called formants, noise-like
segments called fricatives and many other
well known linguistic units. The biggest
Is voice control of machines a
problem with this technique is that many
realistic goal given the type of
of these voice characteristics, being
speech recognition equipment currentsomewhat subjective in nature, may be
ly available? First of all, what
quite difficult and at times impossible t
type of equipment is available. All
identify in the acoustic signal.
stand alone speech-recognition sysNon-parametric speech recognition systems commercially available today
tems on the other hand look at the speech
share some attributes. All systems
signal as simply a complex pattern in the
operate on discrete words or short
time and/or frequency domain. These sig---pnrasEfS va~ing - in maximum lengt-h-------- --. - na-ls- may be reduced_ to a managE3abl~_l1UlD- ..
from t to 2~ seconds depending on the
ber of data points by using information
specific system. None can handle
theoretic techniques to remove redundant
continuously or normally spoken text.
information. The resulting data sets are
The practical limits of vocabulary
then associated with spoken words by apsize are from 16 to several hundred
plying any of several well known pattern
words depending on price/performance
recognition algorithms. These systems
requirements. All systems require
would work equally well for other acoustic
that the user train or teach the sysor electrical inputs since no specific
tem a set of vocabulary words. This
features of speech are looked for. The
training most often consists of letresult in either case is a system which
ting the system "hear" several excan identify a limited number of spoken
amples of each word, forming a proto- words with a reasonably high degree of
type pattern of each item. All sysaccuracy. Such automatic speech recogterns operate in real time. Most sys- nition systems are available for appliterns are relatively insensitive to
cations including industrial control, aids
extraneous noises and have the abilfor the handicapped, remote data entry/
ity to reject words which they have
retrieyal, simple machine control and game
not been taught. Output is availplaying. Specific devices currently being
able as either parallel or serial
marketed include: VIP500 - Threshold
data identifying the index of the
Technology Incorporated. A high quality
word spoken. From a technical standsystem capable of 99% recognition rates
pOint, speech recognition systems
'vith a 20-40-word vocabulary. This is a
fall into two main categories. Paraparametric system used mostly in indusmetric systems rely on extractin-g--trial applications such as sorting, data
specific features of the speech
input for quality control, or in handssignal which relate to linguistic
busy machine control situations. Its
units such as phonemes. These feaprice of $10-30,000 puts it out of the
Introduction
Computer recognition of spoken
words and phrases has received a good
deal of interest in the last few years
as a sort of "ultimate" form of manmachine communication. The available
technology however has fallen considerably short of the dreams of automatic dictation equipment, natural
language voice programming and a myriad of other applications requiring
a degree of technical sophistication
not yet widely available. Is voice
control of machines realistic today,
and if so, what kind of applications
lend themselves to today's technology? How well do they have to work
and how much should they cost - these
are the questions to be addressed by
this paper.
WEST COAST COMPUTER FAIRE
318
BOX 1579, PALO ALTO CA 94302
range of most home computer users.
VDETS - Interstate Electronics Corporation. This is a non-parametric
based system roughly equivalent to the
Threshold Technology unit in price and
performance. It was originally designed
and marketed by Scope Electronics Incorporated. It is unique due to a high
level voice oriented software package
that allows the customer to fairly easily adapt the system to specific application requirements.
CGMl6 - Centigram Corporation. The
CGMl6 is a non-parametric system capable
of recognizing a 16 word vocabulary with
an accuracy of about 95% for a practiced
user. Priced at $3800, it will probably
find use in simple industrial machine
control applications and perhaps among
the wealthier home computer users.
SR/8 - Phonics Incorporated. Another non-parametric system with about
the same performance as the CGM16. A
useful feature of this system is a user
controlled threshold which allows the
recognizer to reject words or sounds it
has not been trained to respond to. Additionally, it utilizes a dynamic programming algorithm which makes it relatively insensitive to word duration
changes which might be experienced over
long term usage. It's price of $995
for a complete unit or $550 for the OEM/
hobbyist makes it the lowest priced
stand-alone speech recognizer available
today.
What kinds of problems may be solved by systems such as these and how
well do they have to work? Perhaps the
best insight into thip question can be
gained by looking at s~ecific examples
of speech input systems currently in
use.
One of the products manufactured
by Owen-Illinois Corporation in Pennsylvania is glass television faceplates.
As part of a quality control process,
dimensional measurements must be taken
requiring physical manipUlation of both
the faceplate and measuring instruments. The resulting measurement data
was then recorded, keypunched, and
later analyzed for any measurements
out of tolerance. This was a labor intensive operation, prone to error and
with a built in time delay before information could be sent back to the
manufacturing line to correct out of
tolerance runs. The system was stream~
lined by employing a speech recognition system, a Threshold Technology
Inc. Voice Data Entry System. With the
speech system, which includes a minicomputer, an inspector enters the meaWEST COAST COMPUTER FAIRE
surement data as quickly as measurements
are taken. Reports of out of tolerance
conditions are available immediately and
thus manufacturing line changes may be
implemented before long runs of defectiv
parts are made. In operation, the unit
is pre-programmed with the required measurement sequence and tolerance limits
for all products to be inspected. After
manually entering via TTY heading information, including product to be inspected, the inspector's name and any
changes to be made in the pre-stored
tolerances, the inspector is ready to
start an inspection run. The voice system leads him through the process, displaying received measurements to allow
for their correction if necessary and
immediately flagging any out of toleranc
events. When the inspection run is complete, a report is provided on the TTY
including all necessary heading information and a statistical analysis of all
measurements taken. The entire operation is performed quickly and accurately
by a single inspector, justifying the
pricetag of$30,000+.
The sorting of baggage at the Unite
Airlines Terminal at Chicago's O'Hare
Airport was a two man job. One man phys
ically manipulated pieces of luggage,
reading the destination tag and sliding
it onto a loading mechanism to a carrousel sorter. As he did this he called th
destination to a second man who entered
it via a numerical keypad, providing information to the sorter to allow it to
offload the luggage at the appropriate
place for shuttling to the aircraft.
Using a voice input system, again a
Threshold Technology Incorporated system,
the same man who handles the baggage
speaks the destination, verifies its accuracy and causes it to be entered into
the sorter's memory. Additionally, instead of entering the destination by two
digit numeric code as was done manually,
destinations may be entered by airport
name such as LAX, SFO or lAD. This further reduces the error rate and makes the
man-machine communications aspect of the
job more natural. Since this is a multishift operation and one man is eliminated
per shift, the high cost of the system is
acceptable.
A sophisticated system called VOTECS
for Voice Operated Teletypewriter and
Environmental Control System, produced
by Scope Electronics Incorporated has
been used by the Veterans Administration
Hospital in Richmond VA to allow handicapped persons acces~ to a timeshared
computer. Using this system, a spastic
quadriplegic student has demonstrated
319
BOX 1579, PALO ALTO CA 94302
the ability to write, debug and operate
computer programs communicating entirely
by spoken commands. While each key of
the typewriter may be activated by
speaking the appropriate character or
symbol, not all words or commands must
be spelled out. Certain commonly used
"BASIC" commands such as DATA, READ,
PRINT, NEXT and others may be spoken as
complete words. The resulting throughput rates compare favorably with manual
entry. ·The individual using this system may also voice control certain functions in his environment such as lights,
radio, TV or bed position. For persons
temporarily or permanently disabled,
voice data entry and control provides
a degree of freedom not previously
available.
How much should speech recognitions systems cost? In nearly every
case of systems performing some real
function in industry, the only acceptable criterion has been, does it significantly reduce labor cost? If a
man may be replaced by a machine, the
machine's cost, including maintenance
must be such that it will pay for itself in 1-2 years. In some cases, increased performance is enough of a factor to justify cost but this simply
means increased output with no increase
in labor. This has been true because
prior to last year, speech recognition
systems typically cost $20-40,000. It
is hard to justify the use of a system
.__ l~'lc_ethis simply because it is easier
or Inore-natural··to--use-;···· This··-situation
is rapidly changing however as prices
for complete recognition units continue
to drop dramatically. Technology that
was available 8-10 years ago for $20,000
is now available for less than $1000.
The question of speech recognition system cost is tied fairly closely to system performance. For applications requiring large vocabularies and/or very
low error rates, system cost can be expected to range from $10-50,000. These
applications include most industrial requirements such as remote data entry,
computer aided design and sortation.
For applications such as equipment control, aids to the handicapped, and game
playing, smaller vocabularies are typically used and higher error rates tolerated. However, once the error rate
exceeds 6-8%, the system becomes quite
unworkable, regardless of cost. Fortunately, the lower priced recognition
systems, such as the Phonics SR/8 and
Centigram CGM16, offer adequate performance for many simple control tasks
such as environment control, control of
~ WEST COAST COMPUTER FAIRE
simple devices such as timers or locks,
and noncritical data entry tasks as
might be encountered by the amateur astronomer, photographer or radio operator.
Wha t of the future of machine recognition of speech? Much of the work
done in universities and corporate research labs indicate significant improvements to speech recognition technology.
"Speech Understanding Systems tl allow the
user to retrieve information from a computer via his natural language, speaking
normally rather than having to use one
of a small number of commands spoken
very concisely. Vocabulary sizes have
been pushed to over 1000 items and
teaching the system initially has been
simplified and in some cases eliminated
altogether. Systems have been designed
which adapt to the users voice changes
constantly, thus keeping recognition
performance high for very long periods
of time. A great deal of work remains
to be done before systems such as these
may be brought to bear in real applications. Not only are they very expensive.
requiring large amounts of memory, but
most do not yet operate in real time.
It will not be long before the semi-conductor industry provides the hardware
necessary to allow practical implementation of some of these advanced systems
In the meantime, as microprocessor
speeds increase and memory costs go down
both the recognition accuracy and vocabulary size may be increased. Certainly,
the technology is available today to let
people- verbally. control JnClch~~s "[hen
their hands or eyes are busy, as a way
to simplify communication with computers
or simply because it is fun.
320
BOX 1579. PALO ALTO CA
94302~
SSTV GENERATION BY MICROPROCESSORS
Clayton W. Abrams K6AEP
1758 Comstock Lane, San Jose, CA 95124
Slow Scan Amateur Television (SSTV)
is a low resoltuion/bandwidth video communications method.
SSTV is a 1000:1 reduction in
bandwidth from normal TV. This means
that an SSTV picture will have a bandwidth of 3 KHz, which is compatible
with low-cost tape recorders and amateur radio transmitters.
SSTV was first transmitted over the
air in 1958 on the old 11-meter band.
After numerous experimental contacts,
the FCC authorized HF transmission of
SSTV in 1967. Since that time numerous
amateur radio recievers and TV camera
converters have appeared on the commercial market. Now that commercial
microprocessors are becomming available
for reasonable prices, there use for
amateur radio applications is a natural
evolution.
Obviously, the use of microprocessors requires a merge of hardware and
software in a relatively complex manner.
Today, I would like to talk about three
6800 computer programs which I have
written for my SWTPC 6800 computer system for amateur radio SSTV.
SSTV Titler Program
The second method of character generation was described in detail in
October 1977, "73" magazine. In this
method I inserted SSTV character lines
into SSTV pictures. This method was entirely a software approach and attached
a SWTPC 6800 to a SSTV Scan Converter.
The only trick to this approach is to
slave the microprocessor to scan converters horizontal and vertical sync pulses
For those of you who are not familiar
with scan converters, they are devices
which convert a fast scan TV camera
directly to SSTV by analog and digital
techniques. See Fig. 1.
The computer software of the Titler
program allows for the insertion of up
to 9 characters on anyone of 10 locations of a SSTV picture. A total of 10
character lines can be stored in computer memory and inserted in the SSTV
picture in any order on up to 10 successive picture frames.
Figure 2 is a block diagram of the
SWTPC 6800 Computer/SSTV Scan Converter
interface, which consists of only 4
wires.
SSTV Character Generator Program
The vertical and horizontal pulses
provide the proper inputs to the PIA,
The easiest method of microproces- which allows the computer program to
sor SSTV generation is a character
count SSTV lines and insert the SSTV
generator. Last year at the Computer
characters at the correct location in
Faire, I spoke about my software apthe picture. The black and white conproach to SSTV character generation. The trol lines are attached to the D/A condetails on this approach were published verter in the scan converter and allows
in June 1977 "73" Magazine, and in the
the selection of black on white or white
Proceedings of The First Computer Faire. on black characters with background.
\fAn,
TV
camera
/\
-
AID
conv
1k
---- memory
r-----
DIA
conv
SSTV
mod
~ .....
t
- - - - - 41Clock II--_.L.--__---'
I
I MXV-200
--------------~~~-----Fig.l Scan converter
~ WEST CO~T
COMPUTER FAIRE
321
.....
Ham
xmitter
SSTV
monitor
BOX 1579. PALO ALTO CA 9430~
I
Terminal
.TVT
. KIB
. Tape
casette
Fig.2
~
RS-232
CI)
I c.J
t'O
SWTPC
I 't
CI)
6800
.....
I
MP-68
.S
"8K MEM" I «
I 0::
I
Sync vert
Sync horiz
Black
White
Scan converter
. Robot 400
.MXV 200
SSTV titler program computer interface
An interesting part of both of my
character generator programs is that
the character dots are in computer
memory, which means total flexibility.
Character sets can be exchanged easily
or even dynamically with slight program changes to the software.
SSTV Picture Enhancement Program
A new and exciting program which I
developed last summer, also to be discussed today, is my SSTV picture
enhancement program. This program will
be published in 73 Magazine this spring
in two parts due to its size and complexity. However, today I would like
to discuss its highlites and explain
the computer techniques used.
The field of image enhancement is
not a new one. Numerous commercial TV
firms have used these techniques which
I will present today. My main intention in this program was to apply these
techniques in a simple straightforward
way toward amateur radio SSTV generation.
I'll start by listing some of the
highlites of my software package:
·1 .Allowsthe~eceptionefanSSTV
picture over ham format, which can be
connected directly to a ham transmitter.
2.
Transmits the picture in computer
memory in a SSTV format, which can be
connected directly to a ham transmitter.
3.
Prints a hard copy picture of the
picture in computer memory on a SWTPC
PR-40 printer. ASCII characters are
substituted for the picture gray levels
and printed.
4.
The picture in computer memory can
be modified or transmitted with the
following enhancements:
- remove noise from successive
pictures received
- add contrast to the picture
- zoom in on 5 locations on the
picture
- reduce the picture gray level
content from 16 to two
- produce negative or inverted
pictures
Most of the above enhancementa
were accomplished by computer software
WEST COAST COMPUTER FAIRE
and a special interface card which cost
less than $75 to construct. However,
to accomplish these tricks you mu~t
first obtain a 6800 computer.
I would like to first discuss the
computer interface hardware. The first
piece of hardware required is a SSTV
received. Many units are available at
moderate costs. These units are required to demonstrate'the SSTV video to
a varying DC level, and to obtain horizonatal and vertical sync pulses. I
installed a pre-amp board in my MXV-100
monitor to scale the video DC voltage
swing to 0-5 volts, which was necessary
for my computer interface card.
The next piece of hardware required
is the special interface card (Fig. 3).
It consists of an analog-to-digital
converter (A/D), digital-to-analog (D/A)
converter, and a SSTV modulator, the
cards block diagram is as follows.
The card uses off-the-shelf Datel
modules and standard IC's. This interface card can be easily duplicated.
The modules are used to input/output the analog and digital to the outside world. The analog modules are
controlled by the PIA chip which is
under proqramcontrol.
It is now approrpiate to discuss
how the TV picture is formatted in computer memory and how the enhancement
techniques are achieved. The TV picture
is divided into small picture elements
which are called pixels. A horizontal
scan line was defined to contain 128 of
these pixels. Since an SSTV picture
contains 128 lines, the digitized picture in computer memory will contain
approximately 16 K picture elements.
Each picture element was defined to
have 16 gray levels or 4 binary bits.
If the 4 bits or nibbles were packed
into bytes by the computer software, a
TV picture could be contained in 8 K of
computer memory.
The biggest trick of the entire
project was to place the SSTV picture
in computer memory. I took a software
approach to the problem by sampling the
A/D converter every 520 microseconds.
Since the A/D converter had a conversion rate of less than 50 microsecond.,
I had sufficient time to format the
322
BOX 1579, PALO ALTO CA 94302
----------------------,
I
i Sync
--~-"'-..,~
DIA
~
cony
SWTPC
6800
System
6820
PIA
~
SSTV
amp
t----
I
I SSTV
mod
--
I:
I:
"12K"
Mem
OP
---
AID
conv
r----STAIL""""'--
I
-
S/H
r--
video
MXV-1oo
Ham
receiver
Sync
. vert
. horiz
Start SIN
Fig.3
....._0_-_5_v- - 1 SSTV receiver 14-
SSTV interface card
pixels and place them.into memory bethen used to modify all pixels in the
. _computer memory.
fore the next pixel time.
The next project ·was to convert
the digital pixels to analog SSTV. The Zoom Enhancement
pixels were unpacked and shipped to the
D/A. This caused the SSTV frequency to
This routine zooms in on pictures
shift between 1500 and 2300 Hz which is in computer memory with a 2 X magnifithe SSTV black and white trequencies.
cation. The zoomed picture is then
The PIA was additionally connected to
transmitted over the air. The process
is quite simple as follows:
the SSTV modulator FSK control line
which creates sync pulses of 1200 Hz.
All pulses and timings are controlled
original byte
SSTV line 1 ~
by software delays. It is now appropriate to discuss some of the enhamce~
SSTV line 2 ~
ment techniques used.
rn
rn
Noise Reduction
Five locations can be selected in the
picture for zooming by the program.
This computer programming routine
averages received pixels with those in
computer memory. The averaging is
accomplished by software on a real time
basis. The resultant effect is to reduce the random noise received by the
square root of the number of pictures
received.
Other Enhancements
Hard Copy Printing
This programming routine prints
hard copies of SSTV pictures on a PR-40.
Seven ASCII characters are substituted
for each gray level printed.
Contrast Enhancement
This routine of the program adds
contrast to dark SSTV pictures received.
The following algorithm was used:
original
pixel
darkest
pixel
original
- darkest
X2 enhancement
in contrast
The negative pictures were produced by complementing each pixel before
transmission. Additionally, a binary
effect was achieved by converting the
picture elements to either black or
white before transmission. The binary
clip level was selected by a program
constant in computer memory.
The preceeding techniques show how
powerful microprocessors are and how
naturally they fit into the SSTV applications.
I would like to encourage other
radio amateurs to explore the use of
computers for other ham radio applications. My experience has been very
rewarding and I have never had so much
fun with the hobby before.
I'm sure the applications are just
starting and the future will be very
exciting.
The routine first finds the darkest
pixel in the center of the picture1s
center 10 scan lines. This value is
~WEST COAST COMPUTER FAIRE
323
BOX 1579. PALO ALTO CA
9430~
: #:ii~p.:~i-t: f;'~ ~;:rl·
=•• '.-::.[':-;;:-:=':,.
##:«: \*"''''=**=
: ***:fQIc====: : :: :
###=\C~~:**:t-'f:';': : =\:t.:;';:4<:4<=:i<*: : : : : : : :
##O=\\>!<-i<**\*=: =0\\\**====::::::::::
###:4<\0'. :... **\*:1<-:: . #O\'·.*:~'**:;'*==-::: :
It#fi:J:'','··.''~;':····.O'··.\:k-=: : O~:"\\\:-I<=:I<=====: .
##ff.JJO··..\\O\\\.1< ",·..,'...:k\\:;':-I<**=: =: : . __ . . . .. ..
It#tfO··..G=-i-'~,,··. •C\··...'.:*: : : :«\\\'. :. .:... *:1<====:
. .. ". .
##U....CQ···.\OO\;J···.=I<. : : =0'··,'··.\**:4<:1<::=: : : : : : :: :::
##itC;·Ct"':f{.=D\G\····.: : #tt:~:\\ .... ======: : : =: : : : : : . : : : : ; :: :
#tt~\GO"'\DO!}J\\== \0\\***:1<",,,,==::::::: =: : : : : : : :: ::
##tr·.C)C~«····.OO\\C!\=:
=:+{j\0\\\\\\\\\:1.<~===-=-:::: : : : : : : : : : :
#f#:+:eO..··,\\\O\o:J==; : : =#C!!JG\o\"··lr··. \OGGO'··';\OC\ -=.=~-=~; : : : : ; : :: ::
##it\·--,·. .·:···.OCQ'-·IGJ:J:!:=::
#tF~:kO~J·-·.c\\C"""'..,t-..• '.... :~:::-:::
##~f:~}J"·,f\'_",'''·,'''_.\O\\:{:::
t!'fft~:ii\~:;···.\\''''-.*'-·.G:j:~·::·:·:--:::
. . ,. . t:··I:-:,::k·..,··.• :·~:~:
##t;~=::f.-='··.·
: OO****·-·I:';;;f::f.:···I\G!J:JC:::G'·I;;·::i;:-:-~-:-::::=: : : :
=. . ,i~:J?·#:}."J:J. . ,OGOGt;:G:-.ID"!i:::;·:~·..
lf_••
=
: : :k:.J.;I_ I'·I···.:J;::
.. ::1:\0 ~ :~: '~::!~J .
: =-*~J~:!~:::~C~ ';':::\ .::-~ .
..... =-=::::::.;
= ===:.!~.:c:t:i::~.!:-k-::==:
: =\!}fi'O;t-'fG\ ' :. : :
: : : :-:::k'··'\'·I!f~~\;:~: : : :
: . --:=':-=\"'1:::::': ::"'IC:, : : :
: ;
; : : :-I::.k:-t:{,::-k\•• "..• ,:,::: : :
_.
: :-:.-:;=
:1.<-::; : : ===-:;::==....".
: : -::
=:k:~:'.. ,"..• '........I\r:'.,I\ .'-..r-.,.... '. ,'.,:~-l\.::.:.;.~: .. ":'. :'=::::""·1:';'; -:~.~.:: :t:::::~J: ...
: : ; : : : = ::7:~r_·.C~f\\Ct·I=)'J'··.\:~:J:'··.;;~t:::GCC:C·-·,\\C:CG;; ~t-G:J\\. ..
\D:. .::..:a::-k:.kl-:;:-::.k:.::t::':··.••....... \\\Q:J::,:,...:.:.:':..:=:-::=:=.'::: . : : : •. _ :
\D·\r...·:'. ·...··,\:.k\. . ,\....•··..\Oe\'\c:-·.\··/·:.:~::.:.:;i::.,:~.:.f::i:: ; : : : _ : :
: : -= . . .G..··,G!J:J~t::!:J-~-~f J':·~G·;·;:~-t:i ~JC:::·~::;':\\\'·,,:-kad.:-=:-=. : :
: : :
OC;k:k:K'!'='::
:+'::f;:~·::{.'·•• •·•• ··.,"",:-k
: : : : : ...
!JG:J~~~f~;··;:;.~~:t·~..~ r;·~·;; ~ ;!. ;-~ ; ':~ ~:;C:\C:C:::'C::'*~; ;i~::- ~'~:::\.
:i::~:r•• I•• ,·••• •... :k;;.-:;:.;: :
;:r:::g~:·:~::~.~~::~~:~::~:::~ ~ ~ ~ :;;ii;:i!i;;ii:1:6tt~~::.~~: 1:~:;:~~B~·~:;;::::::~~~::~~::
.
ttttii:·~':'.. ,C~· ·.f.••*\\\f~
...... -===:= *f.:f·-tHti·itGr. . r\t1GO·~fti:~:~G:·k
#fft:~JO''''I''','''I\,\''''':«'-'t-:::-:;;
*#fGG:Jti'fi\\Oi:OGOGQC~:
ft:tfH:~:C;O\·.... '-·. *\:..::.l::k=: ::
OC¥.it!~\:-k''''·.\''lo.\\"",·. . t~*f.·~O=:-k::
'. fi': . ,:.f.:;.:~:k:~f.. ,:~ ~ -=.;:
=*\*·. . *;f:;.:;:~'••:k=::~ =:
==:
:t
==::k1-;;-k'·._;~:;':'::-k::: :
...
#HlF:·~-:\C::·k\I... :~:,j,:;.f.;:~::.;;.-":. _ : : ; rrC·;·i·~#~\\::r ··,:k::-=\:J;':!::4::t==-===:..: .....i .. :-k:~.:'_,_:·::~:_~; , :-
-= -:-:: .. : =:+;:+_:t:+"A::~::~:~-: =.::.=:
~~~·~~···I:,::\:,~:\···.\:~:l.:-:-::;: ; : . =:·~·:rJ"··'C::'\\'\""·"'I\···'\:J.::-~:~·::~:-=··;:;
.. : _: ====;f.=_:·::k:::::::,,:,.:·:;""::
#=:;f;/"·:·.O:;;·· :;;:}:.~:::. : ; .. : ... O:':\\···.:l<:}::·~:!<·" .".:;.::
~f.:~:~·:·-·.C:';'·::·-=-..:-:
r.:t~:i.;::::::;':";:;.::-:
•••
~
;
•
-:.
'.-:"'-:' -:::!::k-!-~:~·::-5;:'·.
••
.:
-
I
\_:.;::
:::k,;-:;-_~:
- . -:''':''' ":_;:~:.'I":::'.".
I.•.
__
=: : : : ... _:-:-===-=::.:-:.:-:- 7-:::-:- :"":'-:::
: . : : :: . ===-=-;"'":'~'.:-=="7';:_.~-:.:=-:::
. - :;:
=: : .. : ; .I..,\=.L-k==-== :-_:.:: =: : : : ::.-=:; ':":-==='.:,.:.f..=-: -:":';":';=-='.;':-:::,
=: . : : ; =.... :~:t\=~.:t.:t. "=-:':.-::::::-:;: : : ; : =:::::. =:-::;=-.,.·-:=:i;;~:::-::."":-·:-·,,
:.=: :
\O··.. :::· .. :~:.r.·
:.;.::.;-: ., ' . ; ... I
. __ . :d·:~·_
: .
I·... ' __
##1::::C·::··::-: ==: ; . : :«0":':':'. :::.::t*===·;:-c:.===: ::: : : : ..,:::-:-::-:O~;~;-=:::~::,,::,,:::::.:::~ , .~ ..
'itfi'ti':.:.:......... -:..::-k=: : =: : ==\'\\G\\:k:-t:fi:Jk=:k; =-=.====:-::.: ==: : ·_·",:~~~~-::.:.,,:::":,:,:,,:~:':;kk:-:~·_. : :
"ttl"": '''I:¥.-::",::===:=::~'"I·I'-·/,;···,C···,·\,;''':''''.:t;t:l:-=-=::=:..:=:.:==: =: -::-::=-.:~-:-::":;i1:~~:~:*:-k:':-:-: :-:~:=: :
ttff~~:·::-:-;.:: ~
: =.... \:t'·.,\\'. . \C!:J\\........ : : : ~ i
. . :::-:-:..:~::-:-::=-::=-:.:==--::
=_
#~~~;z._"':' /L:{. I._.:~::ki-:::": ::-: . : : ~ *-O"'IG~QGC ~ C:'·"GO(::}-:·:\:!:-:·:t
~··;f-:~:~C::~;·::\:+·:"';:,i.·:":-: =: : . : :·~-:""\\\\""\\'·I:~"::ki:.:k·~-=:
: . : ==: : : :
:
;.'::;~:~.::~'-
:.;-:-..
::
:¥.;k:';';::i:~':'_,-::. ;l
*:.k~~-:"":k:
: : :
: : -==:ii::~;;:i-::-k\I::
=:-i:~:!G'·I\\'··.:l;I\:t;-k:~~~-=-==-=-=-===:~=:==== ~~-:-:-~-:.-::t:-k7,::4 :"'::k.:k:~:-:-.-k:k--:~: : :
-:1-:"__
. '"
1tf'· •. :i::l:: : =: =:':':I·I·\···'\'·I'.. G··':{:'-·I\:::;~:*::·::~:.:k ='=-::==':'=-::::=:: -:-:-~:·:';:{:'''.\·'_,:t~..• \:-::f,:.;.kt:k:k:!.::::-:.:.:-.::.::-: :
.
~~=;= ::-:~:.'7:: =_.$.::i-:'·,··I··, ~:~/·I'·I ... r··I\t~.::::!.:;"t:::":~"'::t: ===-:=:-:-::=:::7.=,~":,,, .•:<:I._.:~::.!:r\:l:I..• :~::-~~:~~. . :'::}:; cee . . -:-=:; =: .... :-::
t;· ;i';~:;: -:i;.::.:- ;f.i..;J.::i-:"',:k::::: ··~G··I:::·",'··.\,t-'.",,:J::t"::;:k::"::.J.:-=:!-::':'::-k-:--:==:=:: -:'::::":"':;·;·::!-:'''I'-·I'-_I'··I:+::t:r·.,:k;t:.~:._.:::'_, :;':". ,".,:'!::~:-::'=: :::-::
~tf I' -::-I-.:=-:-::+=.:d-:\' .• ::.::~: ~!. ;i:J::'-.::'-.' ':-·I;~:''':'·,:-k-=:i::k-;-:-=-:,:,,:,:,:-::4::~::- --=-:-:-:-:-::~~:t::t::+::i-:~""I:~:\\"'I"""'.:~:;':::';-:';':::~.;:-!.;.:.::-: :: :
i1*:~'= ;~-:-t:~'.'-"I.;{i-:;:t:j!:~~~:C:; . \·\\\~:fcl:-.=:t=;===::-:,::-:== ~~;',,:·=·::·=·:7.':::;':::::f.:~:!i-::i-;:f:'X5!:l;;':-::::-."-:~ -;. ,:"",,,'- .. ~
~:tC::"-:·~::;·-::'7':';,i,;:';';\··.:~:;J:\~~H~G'·,G\""\'··I:k,:"".::;k:~::t::!:·-."':::~::k-:::-=: =''':::'~::'~=:-=:~-:*'-=-=:+::.::~ =-::-:-.- :::
;'
\:':-.~_-:
-,:,,:":~'::·:·::~:f'f.::k
• •
:
..::::\
.=-=~:'\C~
: :
-=::\"'.0(:(;0"\
: : =.=\\\\. . . !~t.
-=-=: ; : : : : : : : : : :
. _. . . . . .
*' it- i:,:~::,::",,-:.:·~··:.j.::·k-kr··.\;J'-.'··.o""Of~--:iG\\""""\:k:k;kt.:y.,:,·::=:-!(:-~::-k:~::": :-f.: 7,-:-::':';;!::·!:::::':-::4::",::.:.:\r·'·~I\··,\:k:;'::~::':;::~.::!::~::-!.;:.:.:==,,:=-:-::-::: . . .•
-:;.:~k··::.... :...:.- -__~
: : : =:kOG\C£:\*
: : : =:t:';;.\ '\ \ \ \:~::#
. .
: : : -::=:j.:"-·I"'!J!}~::-.:'
•..
: : : : : =:-k:}.;\\Ct',:.:-::i
~~~fG·~::·I:-~:·:·)j.:::::-t:':':\\""\'_I'·'\'·_'C~;:·;~:::\:.~~:f.:r·,,'\:-k:k~::.J::;::.~:-:·::~~::::~.::.l.: ;+:-::k:~::-!i:r__ :"I:~'::~":-:_=-::=-==: ; : ':':."::'"::: : : : : : : : : : : : : ;
: : : : -=-::"',\CG:~:~:::-:;=
~i·;i~/::::::·k:~.:i-:'..• ·",:-:..=~:::j;r:::(·.::\\f~ ~:_'·_,\\\\·-.•\'-.•:kk:l:;':'::'":::f-:,::=-: =~ : -=..=:::~;-:-:~.=:t==,,::,:,,:-.,,:·=. ":":: ~ : :; . . .
. • .•
1f:';~:·;f\;~:\:",.. :-:t:~:;f:;k:~:~::f;:kG;~···.:!:C~·::\:J'-.• :;::k~t:'-·I:·k;k:.t-;-::~'!::: -:.: ::-=~::,"=-::.:_J-::..~=;i:.:-:.-:-,::-=-:.'::.:::,,::: : : : : : : : : : : _ ; : =~::: :: .
: : : -:::-k:i-:Gi::\:]L :: : t
•.
• •
-==*\''''I··'I~-.,:-k·,,,:: : :-:..:=: :
~ : :.=:~:\""\:J\: . _... _._._
: :
; :
\c.Cr.•·..
: : : : : : : : • : : : : : :: : : : :
: : : :
: : : =-=""'_"I\~31"I:k ..
~·tht::'·-,\-:::-::=::=:k\S:\.\-.,,:::'-,\:i;\GG~:C\\\;-!t:. . ::~:::-.:-S:i::';'~=:::= :.=:: : =~.",:.-:.: : =:;=''::-:::':-:;'::::~':'':7~:-:_:-''~=::': : : : : : ;
#iUf..;\'... :~~:~;\:t-:=::::k···,·-""":~:,,,:\\;~-;:~-:C:'··.fif\\'...\,.==:t=::===:. :«-:::::.:::; -:.: : -::=-:-:=.: : : : . : ~ : : :
j.i~!J:::\···.-::a.*:k,:-::=.k\··'···I:·k:::.:l·:\:-k:.:,;\cr.. .t;·i:!-c\:t:k:~:=:!(*=-::= :::====:::'7.7' : : : : : : : :
!f·ijG-:.·-G!}':":::'....... "::-::=;:.J.:·-.,'·•• :-!:~;;:t\ .... -;:.·..., ....
:k.=:"':=:ewt:"'~ -::-::===: : : ; : : : : :: :
·;:~·;*G:!:·. . . . . :.:::-;::~-;:t:t:-::-=-=_=:k"'.".' .• \=:I;;;; \:t..\\O~'. . :~:-l::·~~:+::bt::k:.. '::"'::~=-::.:::-::-:::: : : : : : ; : : . : : : : ~ :
·ii·~-~;:G'··I\::::t:-=:,.::.~.:==:.;: \G:-:::.· .... :!-::·}:\-==*:k:.f.!\DD:~:·:':-;::.:"'::~;-t.:·..:!.:.:':"!-..:::::-;:=":":;.:~:k:;':': ; : ; : : ; :
• •.•.
••
jj-~:-i:GG::::·}:-:::I:\~::: ~=:!.,; .... ':';";..:t:::-:~ : -==::-=:k:.J.:\GOG\\:I::U:«:k:·t:·:::~;t::~!:{:-:-;==. : : : : : : : : : : : : -=-=-=: : -=; :: :: : : :: i : : : : :
~
: : -=-:.A(:~:t':·_r""\=': ==-=
-:::..:...·-.I.ftC~::.;:{ .:: : -:.::+:=
.
t~·~G·-=~::;..-::-·::-:{"::-!-::!-:J:::·-·.:k~:'·.\!]'-·r\Ql~C""\;i.::&:::.~:t:J.:.:.,:,:,:..::.:=== ':":':-::.:::::-::-=. :::.-=-::-;'"=':": :-.:':'.:':-::--:'::':':':-:-:: -::-.::--::; : ~ :::-::~ : : : :
-~·;tG~:-::;i:r-·I=-:~:~=_k:t:G:}·k~··.-·,,::;;'_·,:~:\\'fi:ti .... '.,r._.;k' .. :_••:~::};:~~:.~:l::!:"'!.= ..:: ":"::===: : -:,;,-:-=-::,-=,,:,:-=·:,,·=·-:~"::~"=.,,:,,:-:-i:;{:-: ::.-:.::-:-:--=:-:..:: : : : : :
:
."","',",.D
: : : -=;-K\CC:::~C'.
..
·:i~f}-~:-:.::~:::.'··I\\:k\:j:J\r-,COH·*c:G\"··:\F.\\:«~-!t:... :~,;;'~::.~'::t.;:~:~::.: .... -:.:""::===7..:=.: :: : : : =: ::=::~-;-:':.=::: : : : : : : : : : :
-;~ ';f';;::-~::'~;:';::i-=\ "', :-k'-., \C:J:!~I"IO\ il-~:GG\\ '-', \ \, \:,ft'-..:k:k:-k:i.::.&.::f±ft:t ::=. ::-:-:=: -:::-= -= =-=-: -=:i::.J;.;i;:~:t.:~:;i:·.-".,,:-=:==-:-: =: -=-::;::-::;-:':"':-:::':':'':':''~==:
••
.:
·;~~:~·i··:"'.",,:~·;\:i::':-;\' .• :}}l::~:JG·!t,~C:::',., .... •... :kk.i.::k:F.:it:k:~::.x;t'::-k!t:.,.~:k -::t,:,:-;,;::::-:-:::-;-:;t::t-::+::{;\"·.DG~-~-;~C:G(::::\~:':'::.f.:'··1\'....O\'·.iH~G··.:t:t:.i :~::.~-;:-!-.:.'-::~:":".-=: : : :
ft~fi.-1i·i{t::-i:::~·#ti··f~i-~i!·~;·;{]~f-~f.iHi··~;:~ ir··;titC .... \ .... \··.\\\\\\\ •.. ,~:\•..,. . ,\:!r:\.... \\\\\\\\.... \ ....:!A:
:-k:~'~
.
--; -:'
-=-=: -:::: . _: : ;
....
.
: -::k\\\~::: .i.
·:i~G·· '-·I\:f::;:;+:~I'.,Qt·I;-k'''.\]HGG\C\\:t.:,:-::t.:k:k:k:J:::':.:k:Ic~'::...=.:'::-:' ::::==-=-::":':':-:':-==-::-='':':'::=::: .. '.:': ; : :
1i·;~~~:::-:~:'·.=.:{::.j.:,:f-;=:.:J"·.:;·:'·.~J·;tC:;·i'\\:::·":-.,·...:('::t;.:,::!,\••:~$:t-; ..:::t=: '"'::-;=: -=-: ::; =:
-a:~f·;;:~;~;.!·::-!,;,::\::::k:k~~J=:.;·-..D·;~}~:X:c: \\\:k:L"-ft:-k:fr.:k~~!i-::-:-:.:. =~ r:::,,:=====~:
t~:-:-
I.
'1·...-......
. -=:·:·: .... C{:::~-:
:k"
=.::",,\\0\\=: . -:::::-:-=::::
:
: : =::::~:\\\!~'... ":.:: =::-::: ..:..-::.;..-:: ; : ::
: ==:{~:,}:·... Oc:(:\:l:-;-=-:- ;:-:«:k: : : : :
:: =-=:~( .... \Ct:GC:C;
. -:-:::: -=. :::.
=: : ; ::-;: : ::-::
=: :
-===: : : : : :
:mm:~m~;,m:mmt~~~g::::?::::e:::::; ~~:::~::::::::::~:::::::::::::::::::~2~~i ~ i~~:~"~~,~;;~~~~ i~~"U;i"?<~i ~~'j..m"mm,:; ,rw§'&fl I
WEST COAST COMPUTER FAIRE
324
BOX 1579, PALO ALTO CA 94302
A REAL TIME TRACKING SYSTEM FOR AMATEUR
RADIO SATELLITE COMMUNICATION ANTENNAS
John L. OuBois,Dytron Inc. 241 Crescent St.
Waltham Massachusetts 02154
Introduction:
This
paper
describes
a
hardware-software system for pointing an
amateur antenna at a polar orbiting
satellite such
as
OSCAR-7 and
automatically tracking it during a pass.
The
program
is
written
in
BASIC and performs all computations
necessary for tracking once given the
pass
equator
crossing
time
and
longitude.
The system described uses a S-100
bus
microcomputer
operating
with
BASIC.
Specific
hardware
is
described consisting of AID conversion
and parallel output for interface with
antenna azimuth and elevation rotators.
the system requires a real time clock in
the
computer
and
a
commercially
available S-100 buss clock board is
used in the example.
Background and Objectives:
There have been a number of good
articles (1,2,3) written on the subject
of computing the track of low altitude
polar orbiting
satell ites
such
as
OSCAR-7 and NOAA-5 for amateur
radio purposes. There have also been
several ingenious
circuits published
(4,5) for pointing appropriate antennas
at
the
satell ite
track
from
pre-programmed media
such
as
tape
cassettes or paper tape.
The obvious combination, however,
in view of the current explosion of
microcomputer applications between doing
the track computations and managing the
pointing hardware all by microcomputer
has not yet, to the authors knowledge,
appeared in the
amateur literature.
This is such an appealing application
after one has experienced the need for
six arms
in
trying
to
track an
OSCAR pass, tune the receiver, spot
a
desired
frequency
with
the
transmitter, and log the last QSO
that it was tackled very shortly after
getting a
microcomputer
system
in
operation.
WEST COAST COMPUTER FAIRE
A review of literature In amateur
publications quickly turned up a wealth
of ideas for software. The article by
Henson in February 1977 73 Magazine
is an excellent reference and in fact
forms the basis for most of the orbital
calculations in this program.
The
material
available
for
hardwar~ ,on the othe~ hand, Is not ve~y
helpful unless one intends to exactly
duplicate a particular pre-programmed
"tracking" circuit. Since the effort
and cost involved in building one of
these devices is a significant fraction
of that necessary to assemble a small
microcomputer
and
the
result
is
specialized to only one purpose, it
seems more desirable to put the labor
and money into a "micro".
At this point it was nece~sary to
make some
choices relating
to the
specific hardware to be involved at the
antenna end of the system. The data
transfer
necessary
between
the
antenna-rotator
system
and
the
microcomputer is the current position
and the movement commands. In order to
simplify the interface hardware a type
of azimuth and elevation rotator was
chosen whIch controlled the motor by
independent SPST switches (although
one side of each switch is common) and
indicated
position
with
an
which
isolated potentiometer coupled to the
rotator shaft. These are the Kenpro
Model KR-400 and KR-500 for azimuth
and
elevation
respectively.
The
essential part of the rotator schematic
is shown in
Figure A-1.(See the
appendix for figures) Other types can
of course be used with the interface
board described but in some cases a
little ingenuity may be necessary to
obtain the variable DC voltage output
from the indicator mechanism.
The signal, then, which is read to
indicate azimuth (and elevation> is a
DC voltage derived from the shaft
coupled potentiometer. Control commands
to the rotators are issued by simple
325
BOX 1579, PALO ALTO CA 94302
contact closures for cw,ccw,up,and down
connected in parallel with the rotator's
manual controls.
This
provides
a
convenient method for overriding the
computer position commands.
of choices was
A similar set
necessary for the
software. ( The
microcomputer was not open for choice,
it w"as already in operation and not
like I y to be- rep I aced! ) • The gene ra I
specification for the program was that
it require
as
input
only equator
crossing time
and longitude
for a
desired pass and that it perform all
other necessary calculations internally,
commanding the rotators to point the
antenna appropriatel~.
This left two loose ends, real
time and orbital constants. It was
decided to write separate programs for
each satellite of interest, differing
only In the fixed orbital constants.
Real time was a little stickier.
It was finally
decided to
put a
hardware clock in the computer because
It would simplify applications in other
amateur radio programs such as RTTY.
Although
the
BASIC
program
presented references this hardware clock
(Comptek
Model
Cl-2400)
other
schemes of deriving real time can of
course be used.
At this point it was necessary to
decide on a hardware interface board to
"read" the rotators and issue direction
commands. The approach chosen called
for a combination
multiplexed AID
i-nput antt-re lay co-htactparaTTe 1"" Qu-tpuf
board. Since this exact combination
does not exist among the many S-100 bus
accessory boards, it was decided to
design one to do the job efficiently
rather than use up two chassis slots
with separate
boards or
modify an
"almost right" board.
Interface Board:
The interface board (6) was designed
specifically for position readout from
antenna
rotators
and
for
issuing
direction commands to those rotators.
Several features, however,
give it
wider application while serving as an
antenna
controller. The
schematic
appears in Figure A- 2.
A 3
1/2 - digit
BCD AID
converter with full scale reading of
+1- 1.999 volts is provided. Input to
the converter comes from an a position
multiplexer
under
program
control.
Input to multiplexer channels 0 thru 7
appears on pins 1-6 and 19
of the 24
WEST COAST COMPU'fER FAIRE
pin I/O socket with ground at pin 24.
As an aid
to troubleshooting, the
multiplexer output is also brought to
this socket, pin 23. Up to 8 seoarate
analog inputs may be read but two of
these will normally be antenna position,
leaving
6
for
signal
strength,
transmitter outPut, etc.
There are 6 parallel output relays
which may be individually latched on or
off
under
program
control. The
isolated SPST-NO relay contact~
appea r" on pins 7-18 of the 110 socket.
Normally, 4 of these will be used for
rotator commands: up, down, cw and ccw.
This leaves 2 free for transmit-receive
switching, etc. The relay contacts are
rated at 28 VDC, 250 Ma. maximum and
external slave relays should be used I
the rotator switch requirements excee
this.
In addition there are 2 direct
outputs and 1 direct Input to the 8255
PPI available. The
outputs will
only drive 1MA, however, and must be
buffered for TTL compatibility. The
Input Is directly TTL compatible.
These lines appear on the I/O socket
at pins 20 and21 (output) and pin22
(inPllt ).
The interface board uses an Intel
8255 PPI
which Is
an extremely
versatile parallel I/O device with 24
lines which can be prograf1111ed to b
Input or output. This board expects
these lines to be
programmed In
specfflc~rrangement of l.2__ "ltnes.ln__Bn
12 -j-rn-e"S"" ou-f." - "
""
The 8255 responds to 4 sequential
port addresses starting at the base
address set Into the Interface boar
DIP switch. This switch sets the 6
most significant
bits of
the base
address. The least 2 significant bits
respond to address lines AO and AI.
Therefore to make the board respond to
hex port addresses 10 through 13, the
DIP switch would be set to 000100.
For response
at hex
addresses 50
through 53 the DIP switch would be
set to 010100, etc.
The addresses of the board will be
referred to as A+O, A+1, A+2, and
A+3 in this discussion where A Is the
offset determined by the 6 MSB's set
into the OIP switch.
The arrangement of I/O lines in
the 8255 is determined by a control word
which is written once into address A+3.
For the present board circuits, this
control word must be 98 Hex ( 152
decimal). This control word sets up
326
BOX 1579, PALO ALTO CA 94302
address A+O and the 4 MSB's of
address A+2 as INPUT. It also
sets up address A+1 and the 4 LSB's
of address A+2 as OUTPUT. The
meaning of the bits in these I/O words
is given in Figure A-3.
In
sending
outputs
to
port
addresses A+2 and A+1 which control
the MUX address and state of the
relays it should be remembered that all
outputs a-re
1atch i ng.
The des ired
current state must be sent to ALL bit
positions in
the control
word for
EVERY
output
to
the
port.
Potentiometers R9 and RIO allow full
voltage from the rotator circuits to be
set to
2.000
volts
at
the AID
converter input. This program assumes
that 0 degrees elevation is represented
by 0 volts and 90 degrees by 1.000
volts. Azimuth of
-180 degrees is
assumed to be 0 volts and +180 degrees
to be 2.000 volts.
Appropriate modifications should
be made to
other rotator indicator
circuits to obtain these voltages.
Software:
The BASIC source listing is
~iven in Figure
A-4. and the program
variables are described in Figure A-S.
The BASIC used i~ TDL 12K
Super BASIC Version 3.0.
After
initializing
orbital
constants, the program loads an assembly
language routine at address 6EOOH.
This is the program which reads the
MC14433
AID
converter
on
the
interface board. It is programmed in
assembly instead of BASIC solely
for speed. Most BASICS would not
be fast enough to read all BCD output
digits on the same conversion cycle
,leading to erratic results.
A source 1 isting of the AID
program is given in Figure A-6. Note
that an interface board base address of
20H is used and the AID converter
output is read on ports 20H and 22H.
The program waits for an EOC bit to
go true, then looks
at the BCD
position indicator bits and reads the
BCD digit, storing it in the position
register indicated. The
nibble for
overrange, MSD,
and
polarity Is
stored rri 01 (at address6E3F in this
program) while the other 3 significant
digit nibbles are stored at addresses
02, 03, and 04 from most to least
significant. The
BASIC program
subsequently transfers
these nibbles
into the
array
variable
OV for
..... WEST COA~T COMPUTER FAIRE
conversion to a decimal voltage value.
During this conversion
the program
checks D1 for overrange and sets the
value output to 2.000 volts if overrange
has occured.
The
program
then
gives
an
opportunity to slew the antenna to any
desired position for testing or whatever
purpose is in mind. Next the hardware
clock may be set by fast running if it
is not already on time. The next OPtion
is for tracklng the pass or else just
printing the az-el pointing coordinates
at Intervals. The latter is useful for
manual tracking
before
the rotator
hardwre is built or connected. The
next option
is for
pre-AOS and
post-LOS tracking when the satellite
is
beyond
the
maximum
angle
of
observation. It leaves the elevation at
o (attenuation through the earth would
be rather high) but tracks the proper
azimuth for attempting over the horizon
DX.
If the tracking mode has been
selected and the satell ite has not yet
come over the local horizon, the program
waits until it does. Then at intervals
of real time set by variable 1M the
current azimuth
and
elevation
are
computed and the antenna is moved to
those -coordinates. Care has been taken
to account for the possibilities of the
track passing through the .rotator stops
at +1- 180 degrees.
I f the track
reaches one of these limits, the program
stops and slews the antenna so that tne
desired azimuth is reached from the
complementary side of the stop and
tracking continues from that point.
After each antenna
update the
current time, coordinates, range to the
satellite and doppler shift are printed
on the console.
The doppler shift
computation assumes
the
uplink and
downlink frequencies of Oscar 7, mode
B and is not accurate for ranges beyond
the maximum observation angle.
Note that alignment errors in the
antenna mounting can be easily corrected
in the program (assuming that yOU can
figure out
the
error). One
such
correction appears in
the elevation
routine of this program.
Two features of the BASIC
used which may not correspond to other
extended BASICS are the formatting
strings for the PRINT USING
statement and the proceedure fo~ calling
the assembly language routine. Users
should check these areas' especially when
translating
BASIC.
327
to
other
dialects
of
BOX 1579. PALO ALTO CA 9430~
In order to apply this program to
other satellites, the user must insert
the appropriate values for P, HO, T9,
and AO in the initial izing statements
at the beginning. The station lattitude
KO and longitude K1 must be set to the
proper values in any use of the program.
A typical console printout during
tracking is shown in Figure A-7.
References:
1.
B.
Henson,
\-'/BOJHS,
73
Mag~zine, Feb. 1977, pg.72
2. A. Burke, W6UIX, 73 Magazine,
Nov. 1977, pg. 58
3. T. Prewitt, W9IJ, 73 Magazine,
Nov. 1977, pg. 64
4. D. Brown, ~i9GCI,' 73 Magazine,
July 1977, P~. 46
5.
G.Bailey,
WA3HLT,
Ham
Conclusions:
Radio~ Jan. 1975, pg.26
The results of this effort have
6. The interface board described is
been generally rewarding.
During a
available
in PC board or
typical pass the system operates very
assembled and tested form from the
well to alleviate
attention to the author at: Dytron Inc.
antenna. The console display is a great
241 Crescent St. Waltham Ma.
aid in timing QSOS and looking for
02154.
particular stations. In use with the
NOAA satellites the system permits
almost completely
automatic
picture
acquisition.
Two negative features have turned
up however, one of minor importance and
the other
a
GREAT
HAIRY
MONSTER! The simpler problem is
that for
some orientations
of the
antenna array the angular dynamics of
the antenna-mast load interact with the
control
algorithm
to
produce
a
persistent oscillation of a few degrees
beyond the dead band. This would be
easily eliminated by
a proportional
control algorithm instead of "bang-bang"
but the effect is so infrequent that it
has been ignored.
The other situation is that awful
spectre RFI!
OX
operation
on
-oS£ARat -low elevations -j 5- - a-weai< .
signal afair and the last thing one
wants is
spurious
signals.
RFI
generation
by
typical
hobby
microcomputers is
intense
within a
hundred feet or so over the entire
amateur spectrum. The author's system
was no exception. A great deal of
effort was
put into
shielding and
"bead-chok i ngl~ a 1mos tall 1 i nes ex it i ng
the computer i case with only partial
sucess. On the OSCAR-7 mode B
downlink at 145.925 to 145.975 MHZ
numerous birdies are still present and
they are
modulated by
the various
operations
of
the
program,
often
obscuring desired stations. Additional
shielding
and
RFI
tracing
is
obviously needed.
This problem seems to be a serious
inhibition to
more
widespread and
sucess~ul·appl ication
of microcomputers
to amateur radio. It is hoped that
this situation can be tackled by some of
the numerous clever individuals in our
hobby and some effective remedies found.
WEST COAST COMPUTER FAIRE
328
BOX 1579, PALO ALTO CA 94302
CONTROLLER UNIT
ROTOR UNIT
~~---------------------+-()~------~
10K Cal.
Pot
Regulated
10 VDC
Pwr. Supply
Motor
70uf
50 VAC
To CC\"i Re 1ay
Contacts
SPST-NO
To CW Relay
Contacts
SPST-NO
Gnd. +
To MUX Input
Potentiometer
Interface Connections ------------------
FIGURE A-I
Partial Rotator Schematic Showing Interface Wiring
WEST COAST COMPUTER FAIRE
329
BOX 1579, PALO ALTO CA 94302
.--
~
z
~
JT1
-
\;7
en
-f
n
,+5V
RI
IIt2
0
01
IN4740
-f
..a.
0
~I-
n
~
~
."
:::u
...,
»
•
.. 4 .
10...
~1
~
,J:'
@-
I lOOK
1 RIO
f
:::u
JT1
.:
\
\
~~
W
G
0
I!
w
-,
--.
Un
a
R;'1l
0
10
MI-i
M.O.V.
.,...
+ICV
2
~
X
Con
o."J
46
78
75
."
7•
r0
80
»
n
»
U)
•
W
0
t.:
V
100
\:::I.....c\--,.
RII
T~~
100\:::l~
RVtl
.. 14
IOO
+.v
I C II
1
,
14
":"
~3-8
Lf
I
I
+5V
:
~
RST
II ....
LS04~
ICI3
Ae
10
14
r-12
r-r--
6o':~S
,
+5V
51
C3
10.'
28V
•
-+
IC5
7.05
+ f04.,
Z5V
CI6
I~:J
' I<-
+
~
~'---
IC6
19M05
L.-..
+
CI7
10uf
15V
..
'
2
2
4
3
6
4
10
5
DI'
2'
•
7
018
30
10
,
014
31
II
.11
II
011
32
14
13
012
••
12
II
011
34
14
13
01 •
2
DO 7
15
ICII
Ll04
5
•
~,
C
LII:
7
•
ICII
LI04
3
I
3
~
I C,
74LS3e7
ICIO
74LS317
hoot
I
~
~+8V
~
5
L.-..
IC II
74LSl67
2
DO 5
4
D04
•
003
1,15
•
10
DO 2
II
12
DO I
13
14
DO.
7
+5V--!.!
~
AI
3
A3
5
A4
II
A5
12
13
A.
14
15
A7
-
IC8
8131
43
93
'2
91
42
41
94
IS
90
40
39
38
89
88
35
36
81
31
30
Zt
82
83
l7.8
":"
.-.Iuf
CI8·2O
I
5V
C5-14
4
SWITCH
10
r-r--
• t
16
-
II
AI
2.
i~i
4
I
:
DI7
DO
i
+9V
"'--'"
5 LIDO
ICT •
01
3
5
~II
3
"
01
2
r
~ ft.-·
·:v ·
.
~
04
~
27
'--Ein
5
II
-16
....
~
"'''APC
13
1.--::::..
POliN
~
... ....
... 1
20 ... 1
II ... 1
22
"'4
21.
HUT
LI
\:::1...-4--.
D.
01
"CI
I. ..
C,
12
le4
.. CT
I I .. CI
15
T~
T'V
52
12
T~
~-LtJT-
"*
SINP
0-
10
~II
"18Tr-...~
100
17
100
fOA'
14
i
.. AI
4
I iii: .. CI
II .. C.
+~/
•
I~
I
LS04
.---!J~~~O
SOUT
»
r-f
0
10
I
,
.
U)
14
D.
.. AI
;5
IN4002
77
=2~THENH=H-2~
970 REM
980 REM PRINT TIME, RANGE,AND DOPPLER AND GO AROUND LOOP AGAIN
990 REt1
1000 PRINT USING 70;H,INT(M),INT(S),INT(R),FD
1010 PRINT : NEXT
1020 REM ENO OF THE PROGRAM, REQUEST NEXT ACTION.
1030 PRINT"LOS" : GOTO 360
10~0 Rn1:
1050 REM *********** SUBROUTINES FOLLOW *************
1060 REM:
1070 REM: THIS SUBROUTINE CALLS AN ASSEMBLY LANGUAGE ROUTINE
1080 REM: TO READ THE A TO D CONVERTER. THE NUX ADDRESS AND
1090 REM: PPI MUST BE SET UP BEFORE ENTRY. TH~ VALUE RETURNS
WEST COAST COMPUTER FAIRE
334
BOX 1579, PALO ALTO CA 94302
1100
1110
1120
1130
1140
1150
1160
1170
1180
1190
1200
1210
1220
1230
1240
1250
1260
1270
1280
1290
1300
1310
1320
1330
1340
1350
1360
1370
1380
1390
1400
1410
1420
1430
1440
1450
1460
1470
1480
1490
1500
1510
1520
1530
1540
1550
1560
1570
1580
1590
1600
1610
1620
1630
1640
REM: IN D1,D2,D3,AND D4 AS BCD.
REr·~
CALL &6EOO
FOR I=O-TO 4 : DVCI)=PEEKCD1+I)AND15 : NEXT
IF CDVCO) AND 15)=C7 OR 3) THEN 1190
DV(5)=- CCSGNCDVCO)AND8»-1)
DV(4)=DVC5)+DV(1)/10+DV(2)/100+DVC3)/1000
IF( DVCO) AND 4) THEN RETURN
DV(4)=-DVC4) : RETURN
IFC DV(O) AND 8) THEN DV(4)=0 : GOTO 1170
DV(4)=2.0 : GOTO 1170
RETURN
REM:
REM: SUBROUTINE TO FETCH THE CURRENT TIME.
REM: TIME RETURNS IN VARIABLES H,M,S
REM
FOR 1=0 TO 7 : LET TCI)=INPC168+1) : NEXT I
H=10*T(7)+TC6)
M=10*T(5)+TC1)
S=10*T(2)+TC3)
RETURN
RE~~:
REM: SUBROUTINE TO SET THE CLOCK
REM
PRINT"FLIP SS15 D0\1N"
PR I NT"ENTER T It-.1E + AT LEAST 2 ,-.1 I NUTES"
PRINT"AS 4 DIGITS SEPARATED BY COMMAS.II
PRINTIIFLIP S515 UP AT EXACT TIME.II
OUT 169,0
INPUT H9,H,M9,M
OUT 169,4
IF INP(175)=H9 THEN IF INP(174)=H THEN OUT 169,0:GOT01430
GOTO 1410
OUT 169,2
IF INP(173)=H9 THEN IF INP(169)=M THEN OUT 169,1:GOT01460
GOTO 1440
WAIT 255,128
OUT 169,0
GOSUB 1230
PRINT"TIME -- " H ":" Mil:" S
RETURN
REM:
REM: SUBROUTINE TO FETCH CURREKT AZIMUTH
REM: VALUE RETURNS IN AT
RH1
OUT 34,1 : WAIT 34,128 : GOSUB 1120
IF DV(4»=0 AND DV(4)<=1 THEN AT=180+DV(4)*180 : GOTO 1590
IF DV(4»1 AND DV(4)<=2 THEN AT~CDV(4)-1)*180 : GOTO 1590
PRINT CHR$(7);CHRS(7);IIAZIMUTH LIMIT ERROR": GOTO 1590
RETURN
REM:
REM: SUBROUTINE TO FETCH CURRENT ELEVATION
REM: VALUE RETURNS IN VARIABLE ET
REM
OUT 34,2 : HAlT 34,128 : GOSUB 1120
WEST COAST COMPUTER FAIRE
335
BOX 1579, PALO ALTO CA 94302
1650
1660
1670
1680
1690
1700
1710
1720
1730
1740
1750
1760
1770
1780
1790
1800
1810
1820
1830
1840
1850
1860
1870
1880
1890
1900
1910
1920
1930
1940
1950
1960
1970
198~
1990
2000
2010
2020
2030
2040
2050
2060
207 0
2080
2090
2100
2110
2120
2130
2140
2150
2160
2170
2180
2190
IF DV(4»=0 AND DV(4)(=2 THEN ET=DV(4)*90 : GOTO 1670
PRINT CHR$(7);CHR$(7);"ELEVATION LIMIT ERROR": GOTO 1670
RETURN
REM:
REr1: SUBROUTINE TO FETCH TIME IN DECIMAL WITH 24HR OFFSET
REM: TIME RETURNS IN TM IN HOURS + 24
REM:
GOSUB 1260
TM=H+M/60+S/3600+24:RETURN
REM:
REM:
REM: SUBROUTINE TO MOVE TO A REQUESTED VALUE OF AZIMUTH ,AZ
REM:
GOSUB 1550
DF=AZ-AT
IF ABS(DF)(PR THEN OUT 33,0 : RETURN
IF ABS(DF)(3*PR THEN OUT 33,0
IF DF(O THEN 1980
IF ABS(DF)(180 THEN 1920
REM:
REM: (AZ-AT»O AND ABS(AZ-AT»180
REr~:
OUT 33,1
GOTO 1780
REM:
REM: (AZ-AT»O AND ABS(AZ-AT)(180
REM:
IF(AZ )180)AND(AT(=180) THEN J=-1
OUT 33,2
GOTO 1780
GOTO 2100
RD~:
REM: (AZ-AT)(O AND ABS(AZ-AT»180
REM:
IF ABSCDF)<180 THEN 2040
OUT 33,2
GOTO 1780
REM:
REM: (AZ-AT)(O AND ABS(AZ-AT)(180
REM:
IF (AT>=180) AND (AZ(180) THEN J=l
OUT 33,1
GOTO 1780
GOTO 2100
REr~:
REM: SLEW 180 DEGREES
REM:
A1=AZ
AZ=AT+J*180
IF AZ(O THEN AZ=AZ+360
IF AZ>360 THEN AZ=AZ-360
GOSUB 1760
AZ=A1
GOTO 1780
REM:
REM: SUBROUTINE TO MOVE TO A REQUESTED VALUE OF ELEVATION, EL
REr~:
WEST COAST COMPUTER FAIRE
336
BOX 1579, PALO ALTO CA 94302
2200
2210
2220
2230
2240
2250
2260
2270
2280
2290
2300
2310
2320
2330
2340
2350
2360
2370
23BO
2390
2400
2410
2420
2430
2440
2450
2460
2470
24BO
2490
2500
2510
2520
2530
2540
2550
2560
2570
25BO
2590
2600
2610
2620
2630
2640
2650
2660
2670
26BO
2690
2700
2710
2720
2730
2740
IF EL=1.0 THEN 2760
IF X2<=-1.0 THEN 2770
H9=0.0
H1=lBO.O
X7=(H1+H9)/2
IF ABS(COS(X7*P9)-X2)<0.0001 THEN RETURN
IF COS(X7*P9»X2 THEN 2750
H1=X7 : GOTO 2710
WEST COAST COMPUTER FAIRE
337
BOX 1579, PALO ALTO CA 94302
27S0
2760
2770
2780
2790
2800
2810
2820
2830
28~0
28S0
2860
2870
2R80
2890
2900
2910
2920
2930
2940
29S0
2960
2970
2980
2990
3000
3010
3020
3030
3040
30S0
3060
3070
3080
3090
3100
3110
3120
3130
3140
31S0
3160
3170
3180
3190
3200
3210
3220
3230
3240
32S0
3260
3270
3280
3290
H9=X7 : GOTO 2710
X7=0. : RETURN
X7=180. : RETURN
REM:
REM: SUBROUTINE TO FIND AZIMUTH TO SUB POINT
REM: REQUIRES PARAMETERS SO,P9,KO,D,LS
REM: VALUE RETURNS IN C
REM:
X2=SIN(SO*P9)-SIN(KO*P9)*COS(D*P9)
X2=X2/(COS(KO*P9)*SIN(D*P9»
GOSUB 2670
C=X7
IF LS)=O THEN RETURN
C=360-X7 : RETURN
RE~~:
REM: SUBROUTINE TO CALCULATE RANGE AND DOPPLER
REM: REQUIRES PARAt1ETERS: AO,D,P9,E,SO,RE,HO
REt~:
R=«AO+39S7)*COS(O*P9)-39S7)/COS«90.-E)*P9)
R=ABS(R)
X2=(R~2+(RE+AO)~2-RE~2)/(2*R*(RE+AO»
GOSUB 2670
VP=4.43*SIN(X7*P9)
VR=«VP*SIN(HO*P9»~2)*(VP*COS(HO*P9)-.28S*COS(SO*P9»~2
FD=3.108*SQR(VR)
IF R)RL THEN FD=-FD
RL=R
RETURN
REM:
RE~~:
REM: SUBROUTINE TO FIND G.C. DEGREES BETWEEN STATION AND
REM: SATELLITE SUB POINT. REQUIRES PARAMETERS KO,P9,SO,Sl,K1
REM: VALUE RETURNS IN D
REM:
REM:
IF Sl<=180 THEN 3120
Sl=Sl-360
LS=K1-S1
IF ABS(LS)<=180 THEN 3170
IF(K1-S1)(0 THEN 3160
LS=LS-360 : GOTO 3170
LS=LS+360
X2=SIN(KO*P9)*SIN(SO*P9)
X2=X2+COS(KO*P9)*COS(SO*P9)*COS(LS*P9)
GOSUB 2670
O=X7
IF J2=1 THEN 3240
IF 0<= MO THEN RETURN
0=0 : REM: OUT OF RANGE
RETURN
RE~~:
REM
REM: SUBROUTINE TO CALCULATE ELEVATION
REM: REQUIRES PARAMETERS :AO,D,P9
REM: VALUE RETURNS IN E
WEST COAST COMPUTER FAIRE
338
•
BOX 1579, PALO ALTO CA 94302
3300
3310
3320
3330
3340
3350
3360
3370
3380
3390
3400
3410
34 2 0
3430
3440
3450
3460
3470
3480
3490
3500
3510
3520
3530
3540
3550
3560
3570
3580
3590
REM:
E=CAO+3957)*SINCD*P9)
E=E;«AO+3951)*COS(D*P9)-3957)
E=ATN(E)
E=90.-360*E/P2
IF E)160 THEN E=E-180
RETURN
REM:
REM:
REM: UTILITY SLEW ROUTINE
REM:
INPUT "AZ=";AZ
I NPUT II EL=II ; EL
GOSUB 1780
GOSUB 2240
GOTO 240
REM:
REM:
REM: THIS SUBROUTINE LOADS THE AID ROUTINE AT 6EOO H
REM:
FOR J=O TO 62
READ Z
POKE ( &6EOO+J ) ,Z : NEXT
RETURN
REM:
DATA&DB,&22,&E6,&80,&CA,&OO,&6E,&DB,&20,&E6,&80,&CA
nATA&07,&6E,&DB,&20,&47,&DB,&20,&E6,&40,&CA,&11,&6E
DATA&DB,&,O,&4F,&DB,&.O,&E6,&20,&CA,&IB,&6E,&DB,&20,&57
DATA&DR,&20,&E6,&10,&CA,&25,&6E,&DB,&20,&32,&42,&6E
DATA&7A,&32,&41,&6E,&79,&32,&40,&6E,&78,&32,&3F,&6E,&F9,&C9
WEST COAST COMPUTER FAIRE
339
BOX 1579, PALO ALTO CA 94302
AO:
AT:
AZ:
C:
0:
OF:
DV:
01:
02:
03:
04:
E:
EL:
ET:
FO:
H:
HO:
H9:
IL:
U~:
19:
J1:
J2:.
KO:
K1:
LO:
LS:
M:
MO:
M9:
PR:
PO:
P2:
P9! __
R:
RE:
RL:
S:
SO:
51:
T:
T9:
TM:
TX:
VP:
VR:
Xl:
X2:
X7:
X8:
Orbit altitude in miles.
Observed current azimuth in degrees.
Requested azimuth in degrees.
Azimuth of satellite sub-point in degrees.
Angular separation of station and sub-point in degrees.
Current error from setPoint in azimuth or elevation.
Array containing 01-4 nibbles from AID converter.
Most significant BCD nibble of AID conversion.
Second most significant AID nibble.
Third most significant AID nibble.
Least significant AID nibble.
Elevation of satell ite in degrees.
Requested elevation of antenna in degrees.
Observed current elevation of antenna in degrees.
Doppler shift in HZ.
Time in hours.
Inclination of orbit in degrees.
Miscelaneous temporary variable.
Limit for variable 19.
Increment of 19 in minutes.
Main program loop index in minutes.
Print or track flag. l=Print. 2=Track.
Pre-AOS/Past-LOS track flag. l=Yes. l=No.
N. lattitude of station in degrees.
W. longitude of station in degrees.
Equator crossing longitude in degrees.
Difference in longitude between station and satellite sub-point.
Time in minutes.
Maximum observation angle at station in degrees.
Miscelaneous temporary variable.
Desired dead band around azlel set point.
Period of orbit in minutes.
2* PI.
_RadJ ansI deg ree
Range to satellite in miles.
Radius of earth in miles.
Minimum range to satellite in miles.
Time in seconds.
Lattitude of sub-point in degrees
Longitude of sub-point in degrees.
Array variable containing BCD elements of time from
h a r dwa r e c 1oc k •
Degrees of westerly progression of orbit per orbit.
Current time in decimal hours+24.
~quator cro~stng time in decimal hours+24.
Miscellaneous temporary variable.
Miscellaneous temporary variable.
Argument to arcsin routine.
Argument to arccos routine.
Value returned by arccos routine.
Value returned by arcsin routine.
Figure A-S. Definition of Program Variables
WEST COAST COMPUTER FAIRE
340
BOX 1579, PALO ALTO CA 94302
TnL ZRO r.p;r~ DISK I\SSEl1BLER VERSION 2.21
.'·1AIN. -
PAGE 1
.PABS
,
;THIS ROUTINE READS r1C14433P AID CONVERTER AND STORES
;BCD DIGITS FOR READING BY CALLING PROGRAM. PRIOR TO
;lJSE 3255 PPI '·1UST BE SET TO CONTROL \'IORD 9311 AND THE
;MUX ADDRESS MUST BE OUTPUT TO SELECT DESIRED CHANNEL •
6Ertn
6EOO
6E02
6E04
6E07
61:09
6EOB
6EOE
6E10
6E11
6E13
6E15
6E18
6E1A
6E1B
6E10
6ElF
6E22
6E24
6E25
6E27
6E29
6E2C
6E2E
6E31
6E32
6E35
6E36
6E39
6E3A
OB22
E630
CA 6EOO
n1320
E680
CA 6E07
47
DB20
E640
CA 6E11
0820
4F
DB20
E620
CA 6E18
0'320
57
0820
E610
CA 6E25
DB20
32 6E42
7A
32 6E41
79
32 6E40
78
32 6E3F
6E3rl
6E3E
F9
C9
,
EOC:
DS1:
D~20
• LOC 6EOOH
IN
ANI
JZ
IN
ANI
JZ
IN
t10V
DS2:
[)S3:
IN
ANI
JZ
IN
MOV
IN
ANI
JZ
IN
,·10 V
DS4:
IN
ANI
JZ
IN
STA
t~Ov
STI\
'·10V
STA
'·10 V
STA
2211
80H
EOC
20H
80H
DS1
20H
B,A
20H
40H
DS2
20H
C,A
20H
20H
OS3
20H
D,A
20H
1011
DS4
20H
D4
A,O
03
A,e
D2
A,B
n1
SPIlL
RET
6E3F
6[40
6E41
01=.
02=.+1
03=.+2
04 =• .r -
6ElJ 2
;CHECK THE EOC BIT
;AND LOOP IJNTIL TRUE
;LOOK AT THE DIGIT STROBES
;AND LOOP UNTIL D1 GOES TRUE
; THEN READ THE t1S0
;ANO STORE IN B REGISTER
;LOOK AT STROBES AGAIN
;AND LOOP UNTIL 02 GOES TRUE
;THEN READ 2ND HSD
;AND STORE IN C REGISTER
;LOOK AT DIGIT STROBES AGAIN
;AND LOOP UNTIL 03 GOES TRUE
; THEN READ 3RD ~1SD
;AND STORE IN 0 REGISTER
;LAST LOOK AT OIGIT STROBES
;AND LOOP UNTIL D4 GOES TRUE
;THEN READ LSD
;STORE LSO IN LOCATION
;GET BACK 3RO MSO
;ANrl STORE IN LOCATION
;GET BACK 2ND MSD
;AND STORE IN LOCATION
; GET BACK r~SD
;AND STORE IN LOCATION
D4
03
D2
01
;RESTORE CALLING STACK
;ANO RETURN
; USE THESE LOCAT IONS FOR DIG I T STORAGE
.END
Figure A-6.
Assp.mbly listing for AID converter "reader".
WEST COAST COMPUTER FAIRE
341
BOX 1579, PALO ALTO CA 94302
AZ= 154.6
EL= 21.2395
TIME::: 0
7
59
RANGE= 1742 til +
DOPPLER:;;: "J"'. ~0851 KHZ.
AZ:::: 153.984
EL= 27.5999
TIME:: 0
8
59
RANGE= 1541 MI.
DOPPLER;;:: 8.74297
AZ= 152.798
EL~-: 35.2726
TIME= 0 • 9
59
RANGE::: 1355 MI.
DOPPLER= 7.53359 KHZ.
·
·•
·
·•
I·~HZ
151.414
EL= 44.9193
10
TIME= 0
59
AZ= 146.843
EL= 56.4242
TIME= 0 + 12
0
RANGE= 1050 MI.
AZ:::: 138.691
EL= 70.8016
13
TIME= 0
0
RANGE= 952 MI.
DOPPLER= 1.65726 KHZ.
AZ= 81.0242
EL::: 82.5105
TIME::: 0 •+ 14
0
RANGE= 916 MI.
DOPPLER:::: .433502 KHZ.
AZ= 0
EL= 73.4254
TIME= 0 + 15
0
RANGE= S'41 MI.
DOPPLER=·-1.27285 KHZ.
AZ::::
·
·
·
RANGE::: 1185 MI.
AZ= 353.232
EL= 59.0203
. ... . T-IH£=·.o t··l·5··: 59·
AZ:::: 347.959
EL= 4~. 722;'
TIME= 0 : 16
AZ= 346.113
EL= 36.8374
TIME:::: 0 : 17
AZ:::: 345.278
EL= 28.8728
TIME= 0 : 19
DOPPLEF~=
•
5.85798 KHZ.
DOPPLER= 3.8342? KHZ.
RANGE;:;:. -.1.02.7 .-lil •.
--_.
59
F-'+e·ither BS 2 or.~~Sw.
/
3Address'es, Data, and Status
4Th~
interrupt lines
Bus State preceding BS
1
~st
The
signa~s
must remain stable during BS .
w
be stable for the period shown in the
of an op-code fetch.
The proposal is that when
an interrupt line is true, it remains true until the CPU responds.
Normally, this response would be an I/O instruction that addresses the
interrupting device.
PRELIMINARY SUBJECT TO REVISION
WEST COAST COMPUTER FAIRE
353
BOX 1579. PALO ALTO CA .94302
PRELIMINARY SUBJECT TO REVISION
S-100 Bus Signal Definitions
SThe rising edge of P\/AIT must occur within the area shown.
The
falling edge must occur within a similar area following the rising edge of
the logical AND of PRDY and XRDY.
6Signa'ls prefixed by "DMA" refer to internal logic of the new Bus
Master.
These signals control the buffers of this Bus Master which drive
the Command and Control, Status, Address, and Data output Bus lines.
The
timing diagram depicts logiC levels which are 'high when these buffers are
disabled.
7BS
BBS
S
y
is either BS
3
or BS.
I
is either BS.I or BS 1
PRELIMINARY SUBJECT TO REVISION
~ WEST COAST COMPUTER FAIRE
354
BOX 1579, PALO ALTO CA 94302~
PRELIMINARY SUOJlCT TO REVISION
5-/00 Bus
as,
TIMING
All
aSe
I
\___---JJ
v
PDBIN
r-__O_~_~_S._IO_O_~_~_ rE;;i:~~
. 05.
01
Jf
~ j
150
r
Memory
"r
I/O
Rea.d
PRELIMINARY SUBJECT TO REVISION
~ WEST COAST COMPUTER FAIRE
355
BOX 1579, PALO ALTO CA 9430~
PRELIMINARY SUBJECT TO REVISION
\__1
Me-mary
~ WEST COAST COMPUTER FAIRE
0"..
I/O
356
Write
BOX 1579, PALO ALTO CA 94~O~
PRELIMINARY SUBJECT TO REVISION
BS~®
B5w@
B 5 oc + 1
as,
PWAIT
PREll t1l NARY SUBJECT TO REV IS ION
Ihfe..rrvp+
ana
W'ai+ Tirnjn'3
PRELIMINARY SUBJECT TO REVISION
~ WE~T
COAST COMPUTER FAIRE
357
BOX 1579, PALO ALTO CA
9430~
PRELIMINARY SUBJECT TO REVISION
I
6S« (i)
I
BS~ (i)
I
JIB
B S; @ )
~*~:HOLD
j
)
J~
PHLDA
~;12
~
-*~/501-----------------~~2S
51"@
J
\
\~---------------
--
- - ADD D58,-DO· DSS,
DMA c/c Dsa
G>
cJc OSB.~
STAT D5B,
DMA ADD DSB, DMA STAT DoSe,
DMA DO DoSe
I@
I
I
I
I
J
I
Bus Excha.nge. Tit'ni"'9
PRELIMINARY SUBJECT TO REVISION
~WEST COAST COMPUTER FAIRE
358
BOX 1579, PALO ALTO CA 9430~
PRELIMINARY SUBJECT TO REVISION
Oi'rect Memory Access (OMA) Requi rements
Introduction
A OMA cycle is a special case of a Bus Master taking over the Bus to
execute a memory read or write cycle.
~
A OMA device is required to generate
type M (Bus Master) signals on the Bus.
The Bus Exchange
PHOLO is the signal used by one Bus Master to request that another
Bus Master give up control of the Bus.
PHOLO must not be asserted true
unless PHLOAis false and PRIORITY (if implemented) is true.
One Bus Master (CPU) relinquishes control of the Bus to another
(OMA) as shown in the Bus Exchange Timing diagram.
The OMA device must
control the CPU's bus drivers through the use of ADD OSB, DO DSB,
STAT OSB and CIC OSB.
It must also control its own bus drivers through
the use of signals similar to those shown in note 6.
The CPU (current mas ted and the DMA dev ice (new mas ted mus t ,both
driv.e the Command and Control signals for at least 200 ns at two different
periods as shown in the Bus Exchange timing diagram.
During these two
times, the Command and Control signals are required to have the following
levels:
1.
PSYNC
=0
2.
PWAIT
=0
3.
PHLOA
=1
4.
POBIN
0
5.
PWR
=1
PRELIMINARY SUBJECT TO REVISION
WEST COAST COMPUTER FAIRE
359
BOX 1579, PALO ALTO CA 94302
OMA Requ i rCllIcn ls
PRELIMINARY SUBJlCT TO
REVISIO~
The OMA cycle timing sequence which follows is a suggested implementation
that meets all the requirements of the generalized Bus Exchange timing.
The sequence is controlled by the edges of
~2.
At some previous time,
PHOLO was asserted according to the limitations described in the first
paragraph of this section.
PHLOA is asserted true by the CPU during BS
of the last CPU bus cycle.
The bus exchange begins on the falling edge
of ~2 while PHLOA is true (labeled 1 on the timing diagram).
The DMA
bus cycle then proceeds as described in the following section.
of
~2'
3
At edge 8
PHOLO is driven false by the OMA device and henceforth the CPU is
again in control of the bus.
Proposed OMA Cycle Sequence
~2
edge:
1.
CPU Address and Data bus drivers turned off.
Control drivers turned on.
DMA Command and
The CPU and OMA Command and Control signals
must match values described in the previous section.
-2.
CPU Sta tus and COllTTland and Cont rol -drive rs turned 6ff.
Address, Data output and Status drivers turned on.
3.
No change.
4.
PSYNC
5.
No change.
6.
POBIN = 0 and PWR = 1.
7.
CPU Command and control drivers turned on.
= 0.
POBIN
1 if memory read or PWR
PSYNC
=0
=
OM
1.
if memory write.
DMA Address and Data
output drivers turned off.
8.
CPU Address, Data output, and Status drivers turned on.
Status and Command and Control drivers turned off.
PHOLD
=
OMA
1.
PRELIMINARY SUBJECT TO REVISION
WEST COAST COMPUTER FAIRE
360
BOX 1579, PALO ALTO CA 94302
PRELIMINARY SUBJECT TO REVISION
cj
u
~ V)
:J
Q
CO
\J
0"(
\!)
<0
CO
l'-
~
\J
t'r)
U'
rJ)
\0
en
«
~
a
'0
"o
tJ)
o
[)
QI
I/)
t\J
a...
~
cl:
('()
-
Q
ro
~
0
-J
~
~
-
G...
Q
:r.
~
-
'-J
lD
0
~
a...
Q:
~
a..
PRELIMINARY SUBJECT TO REVISION
WEST COAST COMPUTER FAIRE
361
BOX 1579. PALO ALTO CA 94302
TWO CHEAP VIDEO SECRETS
Don Lancaster
Synergetics
CHEAP VIDEO
THE SCAN MICROINSTRUCTION
Cheap Video is a brand new
collection of hardware and software ideas that dramatically slash
the cost and complexity of both
alphanumeric and graphics microprocessor based video displays.
A Scan Microinstruction is a
subroutine combination of ordinary
instructions running at ordinary
speed that tricks the computer into
putting its program counter on the
address bus and sequentially
advancing the addresses fed to all
memory in the computer at a one--word per microsecond rate.
A typical cheap video system
(A-I) lets you do things like a 12
X 80 scrolling display using only
seven ordinary IC's with a total
circuit cost as low as $20, and
transparently running on a microcomputer system that still has as
much as 2/3 of its throughput
remaining for other programs.
For the 6502, a suitable scan
microinstruction looks like this:
Enter Via
Subroutine
L
Cheap video displays run on
an ordinary TV set with unmodified
video bandwidth, even when doing
64 or 80 character lines. Changing
a single IC switches you between
upper or combined case alphanumerics or high resolution or color
graphics modes.
The basic idea behind cheap
video is to totally eliminate any
TVT system timing and let the
m:j.ct"PPJ·Qce_ssor_doall thewoTk.
As (A-2) through (A-4) show us, the
object ii to use both the existing
microcomputer and tv set with a
minimum of modifications, putting
as little dedicated hardware as
possible between the two.
There are two key secrets
involved in cheap video. One is
a software secret called a Scan
Microinstruction. The other is
its hardware companion called
an Upstream Tap.
Together, the scan microinstruction and the upstream tap
cause the microcomputer to output
characters at a rate fast enough
for direct video use.
WEST COAST COMPUTER FAIRE
,
6000 LDY AO AO
6002 LDY AO AO
6004 LDY AO AO
60lC LDY AO AO
60lE RTS 60
Exit to main
Scan Program
As (A-5) shows us, the address
lines on a 6502 are normally a mix
of "go fetch" values and program counter values. When the program counter
is on the address bus, the bus will
typically advance at a one or two
microsecond rate.
When we do a scan microinstruction, the program counter appears
continuously on the address lines
(A-6) and advances the address bus
binary counter style, once per
microsecond.
The scan microinstruction is
usually stored in a small 32 x 8
PROM. The length of the sequence
decides the total number of characters or graphics chunks output
per line.
362
BOX 1579, PALO ALTO CA 94302
As the address bus advances
during the scan microinstruction,
each and every memory in the
entire computer is sequentially
addressed. By using a redundant
calling of the scan microinstruction, the subroutine becomes portable and can be moved
around as needed to pick up
various lines stored in display
memory, or can call the various
dot combinations needed for a
particular part of an alphanumeric character.
THE UPSTREAM TAP
Normally, while the scan
microinstruction is controlling
the computer, nothing else is
allowed data bus access. This
means we are addressing everything else in the compute~ but
preventing everything else from
doing anything useful at the
same time.
Somehow, we have to get
characters out of the display
memory when the memory does NOT
have data bus access. This is
done with the upstream tap of (A-7).
Usually, a scan microinstruction will last 32,40,64,
or 80 microseconds, the normal
length of a selected character
or graphics line. The scan
microinstruction is called over
and over again as part of a
larger .main scan program.
It is this larger scan program
that causes TVT refresh, while
the scan microinstruction
causes individual characters
to be output at a proper rate.
An upstream tap is nothing
but eight pieces of wire at the
output of the display memory but
before the output bus drivers.
Extra enable logic activates the
otherwise normal display memory
RAM during a scan microinstruction
but does so only ~ far as the
upstream tap.
The upstream tap in turn is
connected to the interface hardware for conversion to serial
video.
With some add-ons, the
TVT refresh process c~n be made
totally transparent, letting
you run other computer programs at the same time you
provide a continuous display.
FOR MORE READING
Complete details on cheap
video techniques appear in the Sams
Cheoap Video Cookbook.
WEST COAST COMPUTER FAIRE
363
BOX 1579, PALO ALTO CA 94302
A-I
This PAlA TVT 6-5/8 is a typical cheap video system. Only
seven low cost integrated circuits are needed for a high
performance alphanumeric or graphics video display.
WEST COAST COMPUTER FAIRE
364
BOX 1579, PALO ALTO CA 94302
A M\CROCOM"PUTe.R HAS .....
-f'
I
A C:::LOc..~.J
AL\"
..
A
CAto..) \3.
-n.4A\
~"'(~'TEM
u~, t>
FOR..
~\M'~~.
I MEMORY I -rHA,
CA....., Sc
\..)~Et)
TO
~TOR=
CHAR..AC'TEta~.. 09-C:ODE-. O~
C:;~AP,,",,\C"
\~Me~l~.
~
5E:O\)E~T'ALLY
f
IOAi A 1
'5OME
C:~,RO'-
,.
I
~OM£. [AODR.E~S \.."INE~ TH~'
Haw
AcCeS~
La ~E~
W"e
A~O ICONiROL.1
t..)~
$a\TC:t-\
~O~M"\..
CAw-..,)
C:HAstAc-r£~S.
,.... A"t CAl!.,,)
Ac::c.fi,S S MEMOR.~.
L '~~-n-tA't
S"1'wae,....,
"lQ Eo
\.~T
"NO
OP~~A "'t '0 t-.l.
,..
A-2
~WEST
Cheap Video gets us from here . . . . .
COAST COMPUTER FAIRE
365
BOX 1579. PALO ALTO CA 9430~
A
IV seT
,r
r-J'E..EOS • • • •• •
I OO'T~
TO FcR..M c:.t-lAaAc"t£I2.~ oR.
S'CMBo\"'S, AR.jt\\I'Nc. "1 -t~E
RlC, ....,. pLAc.e A"t ,totE fl\6H,. , lME.
[v IDEO
Gt2~","" Ie
~
\-\Ofl\'tON'"t~\..
'TD LOCK.
if
MA"-E,
'SOM~
IU::
'-.)P
IN9uT
A~
M\Ci.,o CO MPu1'E~.
c~ ~OM~ c~"'£fl.
Fo«'
IA"e~ s
MoOULt\-rO~
u5£ 0
"E."~'C:A\.. IS'1~c.J pU"'$'~
"'T\I To ,HE
IC:OMP'~~ ""'0"-0) I
,0
f
''''E
ANQ
"
w
t\~
L'Ml'lE.O SANOw'Ont
I ~V<:M
A~
"
u
\!I
c:t
0
,..
«Q :;)
F
-
at
o
1
l~
367
BOX 1579. PALO ALTO CA 94302
A-5
A-6
Typical behavior of a 6502 address bus during
a normal program. Bus may advance at a one or two
microsecond rate, can loop, or can fetch higher
or lower memory values.
A secret cheap video scan microinstruction forces the
6502 to uniformly advance addresses once each microsecond
from a starting address. This sequentially accesses
a block of display memory corresponding to .a horizontal
character line or its graphics equivalent.
WEST COAST COMPUTER FAIRE
368
BOX 1579, PALO ALTO CA 94302
€'nE it...., 1\ '.,.,.. :t"fAT6
a~~_ ~_1
.U~
OIt'''ER.~
___
• _ _--.:.___---,
-~
NEw
~--
1" 1r .2.
065
084
RAM
til
e:"'l~IINC.
2
.:i
DA,A
6u$
..
083
"
.,.,-'
til
nor 1
~
1
D82
RAJII'1
\I
~£....,
DBt
a
L04\C.
PRo\llO£$ t-.l£4A"f''''o~ 0 F
Loe:. \C
~CAIoooI ~
U$U"'-
a)
080
NEW
UP~TR.e.AM
lAP
A-7
A secret upstream tap works with the scan microinstruction
to output characters. Total DMA hardware consists of eight
pieces of wire.
.
WEST COAST COMPUTER FAIRE
369
BOX 1579, PALO ALTO CA 94302
A RECIPE FOR HOMEBREW ECl
Chuck Hastings, 4890 Hamilton Avenue, San Jose, CA
95130
Introduction
Abstract
What I hope to do in this presentation is
Emitter-coupled logic (ECl) is understood
to get you thinking about emitter-coupled logic
by most computer designers to be the fastest
stuff available, which it is -- and as too diffi- (ECl) as a viable alternative for homebrew
projects requiring very high processing speed,
cult for anyone but the largest companies to
perhaps in music synthesis (see Reference 1),
design with, which it isn't! If an appropriate
recipe is followed, ECl systems can be developed speech processing, or simply fireside numbercrunching.
with very limited resources with as good, or
Why ECl? For openers, the industrybetter, chances of technical success as with
equivalent TTL systems. Thus, homebrew ECl is a standard 10,000-series Eel (hereafter referred
to as "10K") offers at least twice the net
serious possibility for applications which need
speed of Schottky TTL when actually designed
the speed. Such applications may occur in some
into typical systems. 10K provides a more
technical approaches to music synthesis, speech
natural and less brute-force approach to highanalysis, and personal scientific computing
speed signal transmission than Schottky, and is
involving matrices or partial differential
in a number of respects actually easier to use.
equations.
ECl has probably not been considered for
Such a recipe isn't written down anywheremany applications where it would have been
existing ECl tutorials make ECl design sound
appropriate, both in industry and more recently
formidable. However, a careful amateur can
achieve a reliable 100 MHz small system today if in hobby work, because people tend to be scared
to death of it. Frankly, ECl has an image
he knows what to do. This paper will present a
problem! (See Figure 1 below.) like many
practical recipe, used once successfully, for
designing, building, and troubleshooting a small image problems, this one has some basis in
ECl system with the level of resources available truth; but there has been a considerable
overlay of exaggeration, distortion, and
in a well-equipped homebrew lab.
This recipe was developed during the course mythology, which I will do my best to dispel
based on the results obtained in one mediumof one task in a project at Racal-Hilgo, a
sized computer hardware development project.
medium-sized Florida company with no previous
Huch of what I have to say concerns a
ECl systems experience. The circumstances were
-subject-euphemi st j-ca II yea tled-Hj ntercOnnect ion
-i-n- many---ways qu He -si mil artot hose of-a - homepractice," which means all the things you have
brew project. The outcome of the task was a
to do to keep your logic from being thoroughly
24-bit general-purpose stored-microprogram
computer, capable of 6,000,000 three-address
confused by its own noise after you turn it on.
fixed-point add/subtract/Boolean instructions or Except as occasionally noted, ~ of my remarks
concern 10K in a wirewrap environment. later
900,000 fixed-point multiply instructions per
on, 1111 have a little to say about other ECl
second, which was completed and has since been
families such as HECl III, PECl III, and
operated 10 hours a day for several months in a
signal-processing system.
~~~Fa~·~lr~c~h~i~l~d~O~O~K~.r-~~~~~~~==~
"""""'---l~l
';:::--~
·
~r:~
:itt~
c-
~J~I
\--~
Figure 1.
WEST COAST COMPUTER FAIRE
Frankly, ECl has an image problem!
370
BOX 1579. PALO ALTO CA 94302
A good wirewrap board, believe it or not,
is an excellent signal environment for highspeed logic. I have met people who solemnly
claimed that one can1t wirewrap ECl, but it
just ain1t so~ Communications Satellite
Corporation, for instance, has done it for
years. I have also met people who claimed
that wirewrap fabrication was something which
one does only for prototypes, and that it is
too expensive to be a manufacturing technique;
but Modu lar Computer Systems,' in Flori da near
where I used to live, has been cranking out
wirewrapped minicomputers since about the
beginning of this decade. Much of the wi rewrap
equipment used in industry is made by GardnerDenver, but there is also a company called
OK Machine and Tool Corporation which makes a
line of wi rewrap equipment specifically
designed for use by hobbyists.
Since most hobbyists probably prefer to
have their systems work withoufa major initial
checkout hassle, my interconnection-practice
recipe probably errs on the side of overkill.
If for some underground entrepreneurial reason
you are intensely concerned with the cost of
replicating a homebrew ECl system once it is
working, you can do a cost-reduction job by
deleting some of the practices I am advocating
one by one until the system goes bananas.
But don1t start out doing an el cheapo job -if the system doesnlt work at all, you may not
have the equipment, resources, and patience to
find out why. Big oompanles do have the luxury
of trading off more product development
engineering hours against lower manufacturing
costs, but you probably donlt. The first time
you do it, do it right.
althou'gh they did have some expertise in analog
computers. The backup resources which one
expects to find in place in even a small computer mainframe house simply werenlt there.
To top it all off, I myself am a computer
systems type -- ones and zeroes, architecture,
logic design, machine-level software, microprogramming -- with very little expertise in,
say, linear circuit design or electromagnetic
field theory. All the same, with one sharp
technician working with me full-time plus parttime help from a few other people, I was able
to get a high-performance digital system of
about 900 ECL 10K DIPs developed and operating
in about 15 months. Thereafter, for several
months, it was operated many hours a day five
or six days a week, as part of a larger signalprocessing system, with very few maintenance
problems. If I can do something like that,
probably you can too.
The Miami Number-Cruncher
The architecture of this midicomputer is
not the main point of my presentation, so 1111
say just enough about it to put it in perspectiNe. It is three-address, with a 48-bit
instruction word and a 12-bit data word.
Instructions and data come from separate memories with separate addressing spaces (IIHarvard
architecture"). Arithmetic is generally 24-bit
An Astounding Claim
twos-complement, with some 12-bit operations
also available. The minor cycle (liclock"
The primordial fear of ECl in the industry
interval) is about 10.17 nanoseconds, which is
the reciprocal of the 98.304 MHz basic frequenis so great that it requires some chutzpah on
my part simply to state, straight out, that yes, cy. One microprogram step requires a major
cycle consisting of 5 to 12 minor cycles
you too can successfully build, debug, and
operate ECl logic systems in your spare bedroom, according to a 3-bit microprogrammed field.
Normal execution time for a 24-bit add or
garage, or rumpus room - just like TTL and MOS.
subtract instruction is 163 nanoseconds, and
You don1t have to have the vast resources of a
huge company like ,Control Data, Univac, IBM, or a Boolean instruction requires one minor cycle
less; instructions of both of these types
Burroughs behi nd you to succeed - or even those
require two major cycles. The time of 163
of a rather unusual small company such as Cray
nanoseconds is for a memory-to-mernory operation,
Research or Biomation, to name two with some
not merely register-to-register, since the main
obvious ECl expertise.
data memory (4K 12-bit words) is comprised of
I make this statement not on the basis of
20-nanosecond-access lKxl ECl memory DIPs (type
having an ECl computer running in my spare
10415A/IOI46). Two copies of all main memory
bedroom -- since I have five children, I donlt
words are implemented, in order to avoid the
even have a spare bedroom -- but on the bas i s
of successfully developing a medi~m-sized, high- penalty of an extra major cycle on each execuperformance ECl midioomputerunder what might
tion of one of these instructions.
be called primitive industrial conditions, at a
The approximate times for some other 24-bit
company (Racal-Hilgo, in Miami) having no prior three-address operations are: 1.1 microseconds
experience building either ECl systems or
for multiplication, 3.5 microseconds for divicomputers. The company management did not
sion, and 13 microseconds for the square root
particularly even understand digital computers, of a sum. There are both single-word and blockWEST COAST COMPUTER FAIRE
371
BOX 1579, PALO ALTO CA 94302
oriented input and output instructions, and an
external command instruction, with a fully
asynchronous handshake control philosophy.
All instruction sequences are controlled entirely by stored-microprogram techniques.
The computer itself, including both data
and instruction memories, occupies three large
(418 DIP locations) wirewrap boards mounted in
aluminum frames, and draws a little more than
300 watts. It is part of a larger experimental
signal-processing system for a proprietary realtime application, and was never intended to be
a product in its own right.
ECl Tranlmisslon lines
Image and Reality
Perhaps the single statement which scared
me most, as I embarked on the development of
Racal-Kilgols ECl number-cruncher, was
"In high speed systems, the inductance,
capacitance, and signal delay along
interconnections cannot be ignored.
The only practical way of dealing with
these factors is to treat interconnections as transmission lines."
(Reference 2, page VI. This ~ a good
book even if it scares you a little.)
Th is statement is of course 1i tera 11 y true
in a technical sense, and yet is enormously
misleading. It raises vivid mental images of
huge steel towers marching across the wasteland,
with long wires dangling from brown insulators
in catenary curves, as in the portion of Figure
I where I pasted up a picture of Grand Coulee
Dam. Thus, it tends to scare hell out of
people who are used to treating logic signals
simply as wires from one point to another, as
in garden-variety or low-power Schottky TTL.
However, the real truth is that ~ type
Test Equipment
of logic operating at relatively high speeds
has to be treated with extreme care - not just
PrObably the scale of this machine is
ECl. I have found that there is essentially
larger than should be attempted under ,home lab
no difference between the care which must be
conditions~
Nevertheless, the only important
taken to design a good Schottky TTL system, with
resources I had which would be difficult to
respect to interconnection practice, and that
match in a well-equipped homebrew lab were a
needed to design a good ECl system -- but the
much larger test equipment budget and other
ECl system will run somewhat more than twice as
people to do some of the work.
fast, is actually easier to debug and get
By far the two most important pieces of
running, springs fewer nasty surprises on you
test equipment were a Tektronix type 485 portable 35O-HHz osci lloscope anct-a Data IlO'lTDde-l' -during the checkout process,and"tendson'the
whole to come closer to treating you right if
VI PROM programmer. The 485 is a marvelous
you have treated it right.
scope, but is much higher in performance than
All THAT THE TRANSMISSION-liNE PROPERTY
needed for routine measurements, even in ECl
ACTUAllY MEANS IN PRACT I CE I S THAT THE LAST
work, and is priced out of the reach of most
THING ATTACHED TO EACH AND EVERY SIGNAL WIRE IN
hobbyists. I had previously used a Tektronix
AN ECl COMPUTER IS A RESISTOR. If your system
150-MHz type 454 scope for TTL work, and this
model should be quite adequate for ECl. The
is entirely wi rewrapped, as mine was, on a board
454 is now several years old, and I am told that withgooeJ voltage planes (more on that later),
the going price for a rebuilt one is about
the characteristic impedance of each wire is
$1800. Since that is probably still too much,
that of a "wire over ground" and is somewhere
between 100 and 120 ohms. And, i f you wade
unless two or three hobbyists share one, I will
through all the formidable equations in liS and
state a belief that a 50-HHz or 60-MHz scope
ils in Motorola's various handbooks, one of the
such as a Tektronix type 547 or type 453 could
things you discover is that nothing ~ bad
be used effectively as long as its limitations
were understood and conservative design prachappens -- just a few per cent reflection -- if
there is a fair amount of mismatch between the
tices were followed. More on this later.
As for the PROM programmer, this was needed line and the terminating resistor. Because the
wi re over ground on a wi rewrap board fu 11 of
because Miami is, for digital systems work, an
other wires is at a varying height anyway, and
isolated area far from the bright lights of
the characteristic impedance depends on that
technology. Here in Silicon Valley an enterheight, the characteristic impedance of that
prising hobbyist should be able to buy preprowi re is bound to be "smeared out" and not very
grammed ECl PROMs from a distributor or even a
precise anyway.
manufacturer, although it may still be a while
I used two types of resistors: thick-film,
before they are sold over the counter in every
shopping center.
which come in 16-pin DIPs costing $1.25 to $2.50
Motorola
type 10181
AlU
WEST COAST COMPUTER FAIRE
372
BOX 1579, PALO ALTO CA 94302
scary goblins of high-speed logic systems -crosstalk, ringing and reflections, limits on
line length, and so forth.
Some Good News
each depending on quantity, from Beckman,
Bourns, and other vendors, with 11 individual
resistors per DIP; and 1/8-watt carbon resistors, which are so tiny that the leads can be
wirewrapped around backplane pins. Most of the
resistors overall were of the thick-film DIP
variety, and the ratio of ECl IC DIPs to resistor DIPs was roughly 3:1.
'
There are also single-inline (SIP) resistor
packages, and Jlactive terminators" (Fairchild
type 10014) with a nonlinear current vs. voltage
characteristic. In any case, the other end of
the resistor is terminated to a supply voltage
(V
intermediate between the two usual supply
vo ages (V ec and VEE).
The "Tllevenin equivalent Jl scheme is a
second way of terminating a signal line in its
characteristic impedance. This approach avoids
having a VTT plane at all, and presumably also
inflicts less noise from the logic on the main
power supplies in some cases, but dissipates
about 11 times as much extra power per line
termination as does the previous method. In the
Thevenin equivalent scheme, the termination
point for each signal line is connected to both
Vec and VEE by resistors, whose values are
chosen to form a voltage divider (Thevenin network) such that the voltage drop produces VTT
at the termination point. Beckman also makes
Thevenin network thick-film termination resistor packs, with 4 such networks per DIP.
To be sure, there ~ other ways of
approaching signal interconnection besides my
recipe of terminating each and every signal
line in its characteristic impedance, if you are
(a) skilled in linear circuit design, andlor
(b) a masochist. You can simply not terminate
the line, and compute out the maximum number of
inches or tenths of an inch allowable for line
length under each given set of conditions for
each signal 1ine. Or you can use "series
termination," in which there is a resistor in
between the output stage of your gate or whatever and 'the input (just one per line, with
many lines fanning out from one origin) whic\-·
is being driven. Possibly, in a big-company
environment where one is using 17-layer etchec
circuit boards like those used in the Texas
Instruments Advanced Scientific Computer, there
are real advantages to these schemes. In the
wi rewrap world there aren't any, and it is better to t'erminate each and every signal line in
a resistor and then relax, since you have
thereby at one stroke slain most of the big,
TI
)
WEST COAST COMPUTER FAIRE
And now for some pleasant surprises.
First, 10K outputs are "open-emitter,"
and may be tied together in slm21t the same
way as TTL open-collector outputs, but with
wire-oRlng of outputs viewed as assertive-high
and wire-ANDing of outputs viewed as assertivelow. (1 1 11 delve into the mystique surroundin~
logic polarities before I get done, I promise.)
However, since the termination resistor has a
value determined by the characteristic impedance
of the signal line, one no longer has to recompute this value every time the number of driving
outputs or the number of driven inputs changes,
as one is supposed to when stringing together
open-collector TTL. ECl logic isn1t slowed
down much by stringing together open-emitter
outputs; Motorola estimates 50 picoseconds per
additional output. When five or more outputs
are strung together, one may start to see minor
glitches in the waveform, and so I never tried
that. Stringing together open-emItter outputs
turns out to be a valuable technique in ECl,
for two reasons: It does an extra level of
logic with essentially no extra logic delay and
no additional gates, which together with the
usual two-rail outputs makes ECl 551 much more
powerful per gate package than TTL 551. Also,
it allows in-circuit stimulation of Eel devices
while your system is running, or trying unsuccessfully to run, at full speed; any logic
point can be tied to a logic IIpl source with
impunity in order to change what is happening
so that you can study it, which is a very
powerful troubleshooting technique. It is
normally a no-no in TTL troubleshooting because
of an unfortunate tendency to melt IC output
transistors in totem-pole devices.
Second, since virtually any ECl IC output
stage wi 11 drive a 50-ohm line, it wi 11 also
drive ~ properly terminated 100-ohm lines
going to different places, which is very useful
for instance when driving a lot of memory
address lines. By way of comparison, there are
only a few TTL devices -- the 745140 dual NAND
buffer and the 74128 quad NOR buffer, for
1stance -- which will drive such low-impedance
'es.
Third, once you have bitten the bullet and
ninated a signal line in its characteristic
impedance, you can stop worrying about how long
that line is, at least as long as it doesn't go
off the board away from the ground plane. The
boards I used were roughly a foot wide and
almost two feet long, and some signal lines were
longer than two feet, which would be rather
unacceptable using TTL gates since the usually
373
BOX 1579, PALO ALTO CA 94302
quoted line-length limit is 10 inches. (For TTL
3-state buffers it is much longer.) Eel signals
which go off the board should be differential,
but even that turns out to be less frightening
than it sounds, as will be discussed later on.
Fourth, in ECl the only limitation on
fanout that matters is that each additional
input connected to a line adds a few picofarads
of capacitance, just as additional TTL or HOS
inputs do in other systems, and as the number
of inputs increases the rise and fall times
lengthen a bit. But, instead of a fanout of 10
as for garden-variety or Schottky TTL, or 21 as
for low-power Schottky TTL, the fanout limit
imposed by driving capability is something like
92, which is as good as infinity for most purposes. I never really had to test this proposition out; it usually was not necessary to go
beyond driving 10 to 12 loads with one output,
except in special situations like driving memory
IC address inputs with buffer gates, and even
there I stayed conservative.
Figure 2.
Top view of Augat board.
Vo ltage Planes and "Pos i t i ve Ea rthll
ECl logic, even easier-to-use 10K, should
still be built on a good board for best results.
"Good" here means that the voltage plane or
planes occupies at least 50% of the available
area of the board as it is viewed from above,
say by Superman with X-ray vision if the board
is multilayer with internal voltage planes.
I knew where to get really deluxe boards, from
a successor company (Kleffman Electronics,
Minnetonka, Minnesota) to one I ()nce worked
-for~ -with .f.Q.y£ -complet-e voltage planes, bUt up
until now these boards have not been offered
for public sale. However, a number of circuitboard companies do now offer wi rewrap breadboards which look satisfactory for ECl, and in
some cases state such a design objective. (See
list in Appendix.) Augat pioneered in this
area, with a 3-layer board, and boards with a
similar design philosophy are now also available
from Excel, Garry, Mupac, and SAE. Interdyne
has a rather different type of board which also
looks plausible. These various boards do of
course cost more than vector board -- probably
$200-$300 for one to accomodate 150 or so DIPs.
In most cases the DIPs plug directly into the
holes in the round pins on the board, and no
additional IC sockets are needed.
Figures 2 and 3 show an Augat board in top
view and local cross-section, and Figure 4 shows
Mupac·s "Sponge" (TM) board. Reference 3 is a
useful technical note available from Augat _on
wirewrapping ECl logic using their boards.
One of the disconcerting facts about ECl
which seems to baffle each person newly introduced to the stuff is that VCC -- yes, I Ql2 say
VCC -- is normally specified as +0.0 volts, or
"positive earth" as British car aficionados say.
WEST COAST COMPUTER FAIRE
/
I
USE GARDNER D£NVfR II"
~5179" ANO SLEEVE NO
FOR wRAPPING AXIAL
RESISTOR LEADS (NO_2t> WIRE)
- --"NO
~7100
Fi gure 3.
Figure 4.
374
Cross-section of Augat board.
Top view of Mupac board.
BOX 1579, PALO ALTO CA 94302
After all, everyone who has designed TTL or MOS
systems knows that VCC has to be +5.0 volts and
that it is the other voltage supply which is at
+0.0 volts -- why, it is even ~ ground. So
then, what is this ViE which is specified as
-5.2 volts? Why isn t VCC specified as +5.2
volts and VEE as ground, the way any normal person would? Certainly the logic doesn't care
what the dc potential of various circuit points
is relative to Mother Earth, does it? For that
matter, why can1t ECl run on a S.O-volt spread
between the two main supply voltages like TTL
does?
Well, it turns out that when Motorola
originally instituted this now-universal
+0.0/-5.2 specification, the goal which they
were in a subtle way trying to achieve was. to
get their customers to yse the best plane on
the board for Vc rather than for VEE in case
there was any dl~ference in the extent of the
planes. The circuit properties of Eel are such
that system performance is affected much more
by inadequacy of the VCC plane than by, say, a
VE plane which only covers part of the board
an~ shares the same surface with the VTT plane.
To keep the internal workings of Eel ICs from
being confused by electrical transients due to
their own output stages, most of them (except
the ones with particularly serendipitous internal layout) have 2 or even 3 separate Vee pins.
Do not, however, draw the conclusio~ that you
must actually connect these different pins to
different VCC planes -- they don't want you to
do that, but rather to connect them separately
to the same VCC plane. It makes sense if you
t h ink a bou tit.
The Kleffman boards I used had two complete
ground planes and two other voltage planes,
having been designed to accommodate a mixture of
Schottky MSI devices with linears which often
required a -5.0-volt supply in addition to the
normal TTL supply voltages. I adapted these
boards for ECl by using the ground planes for
VCC (after all, it 1i at ground), the TTL Vee
plane for VEE' and the -5.0 plane for VTT •
By the way, now that the upside-down supply
voltage polarity issue has been disposed of,
you will know what- I mean when I state that VTT
(or the equivalent individual tenmination points
if the Thevenin-equivalent voltage divider
scheme is used) is normally specified as -2.0
volts.
Motorola
type 10186
hex D-fli pflop
t... WEST COAST COMPUTER FAIRE
Oecoupling Capacitors
In ~ high-speed logic system, not just
ECl, there should be an easy path for highfrequency noise to get between the two main
supply-voltage planes without passing through
the logic and confusing the hell out of it on
the way. lower-frequency noise usually is dealt
with by connecting a fairly large tantalum
electrolytic capacitor, say 22 microfarads or
larger, between the two main supply voltages
(for Eel, Vec and VEE) at the point where they
are brought onto the board, and perhaps at other
points on the board also. Higher-frequency
noise is similarly shorted out using little
ceramic disk capacitors scattered allover the
board, mingled with the semiconductors.
Although I have seen printed recommendations as mild as using an O.OI-microfarad disk
capacitor for every few !Cs, again -- as in the
case of signal-line termination -- my recipe
calls for doing it right everywhere to start
with and finishing off the goblins for good.
Here, doing it right means using one O.l-microfarad disk capacitor (ten times as large) for
each and every DIP on the board, which thoroughly slays many noise problems otherwise likely to
be encountered in either Eel or Schottky system~
AVX (nee Aerovox) is the brand I have used, and
there are some other vendors a I so whom I haven't
persona 11y ca Ii brated. These capaci tors are
physically quite small, and cost in the range
of 20~each in modest quantities.
The reason that I insist (and the people
who write ECl applications notes for semiconductor manufacturers also insist) on using disk
capacitors for this application is that they
provide the best practical way to get ~ a
capacitor, without at the same time getting an
inductor and a resistor willy-nilly into the
bargain. The last thing you need is to have al1
your little decoupling capacitors turn into
little tank circuits scattered allover your ~
board.
The Kleffman boards I used, and some of the
commercially-available boards such as Augat1s
(see again Figure 3) and Interdyne's, provide
yet one more weapon in the battle against suppl~
voltage noise. A pair of supply-voltage planes
are physically separated by only a very small
thickness - an 0.00411 mylar layer in the case
of the Kleffman boards -- so that there is in
effect a distributed capacitor, sufficiently
large to severely restrict the magnitude of the
very-highest-frequency noise (say 150 MHz and
up), between all points on these planes.
I
375
Motorola
type 10116
triple differential
1i ne rece i ve r
BOX 1579. PALO ALTO CA 9430~,
Keeping Sypply Voltages Smooth
popcorn as I have recommended. In the second
there has to be some way to keep the
The
ever-present possibility of ac noise
signal lines at the same characteristic impeon the power supply voltages is probably the
dance, without discontinuities, as they leap
~ reason for the general industry concern
through space between boards -- and, worse yet,
with power-supply-voltage margins in digital
to keep them shielded from various forms of
logic. It isn't hard today to build a fairly
electromagnetic interference (such as each
economical power supply with very tight reguother) now that they are no longer safely close
lation-- 0.1% to 0.2% according to what one
to a ground or other voltage plane.
seasoned power-supply designer once told me.
Again, there is a simple, seemingly drasThe non-trivial part is getting that precise
tic, very effective way of solving the problem
voltage conveyed to each and every DIP. ECl,
which pretty well decimates the goblins. As I
by the way, is normally specified as having a
just stated in the previous section, many ECl
±10% supply-voltage tolerance, and one major
gates have two-rail outputs. (This may be an
vendor (Fairchild) offers 10K logic with interunfamiliar idea to TTL chauvinists; except for
nal voltage compensation. In contrast, normal
flipflops, one mux configuration, and a rather
commercial-grade TTL is specified to tolerate
new and little-known two-rail buffer called the
just ±5% supply-voltage misbehavior.
74265, TTL devices donlt usually offer this
Although I did not find it necessary to do
feature.) ECl gate circuit parameters are such
this in my system, and I doubt that you will
that ~ two-rail gate can be used to drive a
either, it is worth noting that an ECl system
differential line, with all of the implied
~ straightforwardly be designed to present an
advantages of common-mode-noise rejection and
invariant load to the power supply -- in coninsensitivity to temperature and dc-voltage
trast to a TTL system, since some TTL gate
discrepancies between different boards. Since
packages may draw as much as 7 times as much
such a line may in principle be as long as a few
supply current with all outputs low as with all
hundred feet before purely circuit-designoutputs high, and thus full-word-complementing
parameter alligators start snapping at one,
operations may result in high-frequency supplythere is no abrupt length limit of concern to
voltage hiccups.
a hobbyist. Of course, remember that a
The world's fastest computer, the CRAY-l,
nanosecond is approximately a "light foot," and
capable of 138,000,000 floating-point arithmetic that electrons in a wire only travel about 2/3
operations per second on a sustained basis, is
as fast as light travels. Thus you may observe,
designed according to this invariant-powerat least if you can borrow a 485 s,cope for a
supply-load philosophy. (See reference 4, page wh i 1e, that each 6" to 811 of signa I line
72, and also reference 5.) A number of rather
requires another nanosecond for the signal to
extreme measures have been taken in the CRAY-l
traverse it, for differential as well as for
to control various types of noise, for obvious
single-ended signals. I was at one point rather
reasoris~· The·non.;..memoryportiOris-·-are·oes i gned
s1:a'rtled1:c:> rearlze that some ISH'sig-nal lines"
largely with simple gates (Fairchild type l1C01) were actually a bigger delay factor in one data
having "two-rail" outputs (the output and its
path than a whole row of 2-nanosecond buffers
complement, on separate leads), with both outwith short signal lines coming and going.
puts terminated even if both are not used.
At the other end of the differential line,
In this configuration, each llCOl presents an
on the other board, one uses a differential
invariant load to the power supply. Single-rail receiver element with a resistor between the two
output devices such as memory ICs use Thevenin
differential line ends. These elements come in
termination. The 64-bit, 1,048,576-word CRAY-l
four flavors: three types of triple elements
main memory is comprised entirely of lKxl ECl
with two-rail outputs (type 10116 for plain
memory ICs essentially similar (and actually
vanilla, 10114 for hysteresis, and 10216 for
bought to a longer access-time specification)
extra blazing speed), and one (type 10115) with
to the ones I used. Of course, I only needed
quadruple elements with single-rai 1 outputs.
about 200 of them rather than '66,000 or so.
For more details see reference 6, which
also describes (on page 9) how to turn one of
the triple two-rail devices into a Schmitt
Off-Board Interconnection
trigger circuit. Two cautions: First, any
~ elements in a differential receiver DIP
Probably one could, at least in some cases, should be "strapped" to force their outputs into
get away with running a properly-terminated ,
one logic state or the other, as otherwise they
signal line right ~ff one board onto another if will hover right at the logic threshold point
all of the precautions already discussed were
and the on-chip bias networks will get screwed
t'aken. I never tried it. In the first place,
up and confuse the elements which ~ being used.
one canltassume that the voltage-plane potenAlso, we found that the .resistor values suggestials on one board exactly match those on some
ted for use with the receiver elements by referother board the way they're supposed to, even
ence 6 were not the right ones for our interif one has used O.l-microfarad capacitors like
connection system, and wound up using resistors
place~
WEST COAST COMPUTER FAIRE
376
BOX 1579. PALO ALTO CA 94302
with values close to 300 ohms for all three
resistors shown in Figure 3 of that reference.
Cab 1: 09
There are probably other acceptable physical means for getting these differential signals
from one board to another, but the one I recommend is flat ribbon cable, available in various
forms from 3M, Augat, Elco, Spectra-Strip, and
probably other companies. Specifically, what I
have used is 40-wire 3M cable, which is physically surprisingly small. Many such cables "
stack neatly in a small thickness, and fairly
abrupt turns and at least some limited hinge
action are possible. 3M supplies little presson connectors, and a tool to crunch them into
place, one at each end of the cable.
The electrical shielding properties of this
cable are excellent if one does not get greedy
about how many logic signals pass through a
single cable. There should be one or more
ground wires at both edges of the cable, and
alternating signal and ground wires within the
cable. This means that one can only transmit 9
differential logic signals in one 40-wire cable,
since doing just that according to the recipe
demands a minimum of 37 wires. The cable format
is, of course,
When one stacks several such cables, the
signal-ground-signalbar-ground philosophy should
also prevail along the liz-axis," that is, in the
direction perpendicular to the plane of each
cable as one goes through successive cables.
Thus, in the cable immediately above the one
whose format has just been typed OUt, there
would be three edge GiS on the left and two on
the right, and likewise in the one just below,
and so forth, so that the signal wires are
staggered.
Keeping it all Cool
If one firmly grasps a lKxl ECl memory IC
(type 10415A/IOI46) after the computer has been
running for a few minutes, one can literally get
second-degree burns. This IC type dissipates
as much as 3/4 watt, and we measured ceramic
DIP case temperatures as high as 600 C. Up-down
counters (type 10136) and hex D-flipflops (type
10186) also run pretty hot, althou~h not quite
that hot. 256x4 PROMs (type 10149), oddly
enough, run much cooler - about 45 0 C. The
average power dissipation for all ICs in the
entire midicomputer, including SSI and MSI types
as well as lSI types such as t,he 10149 and
10415A~ is about 1/3 watt. Of course, probably
about 1/10 of that is dissipated as heat not
~WEST
COAST COMPUTER FAIRE
within the ICs themselves but within the
termination resistor DIPs.
Despite all that, we encountered few if any
problems attributable to heat. The ICs simply
sat out in the open, on large boards which were
mounted vertically like pages of a book on a
central vertical post, free to flop back and
forth through a small arc since they were
interconnected by ribbon cable as just described
Although we had a forced-air-cooling scheme
figured out in case we needed it, we never had
to use it, and relied purely on convection and
radiant cooling. I also found that ECl ICs,
once installed and running properly, very rarely
died of natural causes, at least as compared
with TTL ICs in similar applications. Probably
the very high percentage (about 78) of voltage
plane on our boards helped a lot to conduct the
heat efficiently away from, the ICs.
An ECL system installed within a closed
metal cabinet, particularly if the boards are
mounted horizontally, should doubtless be cooled
by some more active technique, such as forced
air. As for what the big--machine people do,
Control Datals big computers are Freon-cooled,
with lots of little pipes running along chassis
structural members. The CRAY-l uses not only
Freon cooling but heavy-gage heat-conductive
copper sheets. (And, ~yen though the CRAY-l
mainframe itself actually' is physically small
enough to fit into your spare bedroom, the
auxi 1iary cool ing apparatus might drive you out
of the rest of the house. Oh, well, you didn't
need quite that much speed anyway.) Some large
IBM computers use chi 1led-water cool ing. You
may now note a delicate allusion to each of
these cooling techniques in Figure 1. Someday,
an ingenious hobbyist t·rying to cool a really
massive homebrew ECl system may wind up using
the refrigeration unit from a used Sears
Coldspot, but open-rack convection cooling or
forced air should do the trick for most systems.
There were a few Saturdays when we worked
on the Racal~ilgo system, and Plant Engineering
forgot to turn on the airconditioning until the
middle of the morning, and in Miami during the
summer an unventilated room is bad news for
people as well as for computers. The system
didn't run too well on those days until the
airconditioning had been turned on long enough
to pull the temperature in the lab down below,
say, 900 F. However, we rea lly had no reason
to bel ieve that it was the ECl which wa's giving
377
BOX 1579, PALO ALTO CA 9430~
problems. We were using a semi-homebrew 1116100- a switching hazard in the logic you designed to
based, PDP -8-compat i b1e microcomputer to cont rol control that clock line.
the larger ECl machine, which is also a plausible technique for a hobbyist who already has
one or two other mi crocomputers. Host of the
system reliability problems which we were actually able to pin down turned out to be tnouble
Motorola
with the 2102-type K)S memory ICs used with the
type 10136
1M6100, and the specific symptom of tnouble we
up-down counter
had on those hot Saturday mornings was usually
inability to load the ECl midicomputer instruc.
tion memory from the IM6100. Nevertheless, if
you do choose to rely on open-rack convection
coo 1i ng, you r ECl homebrew number-cruncher may
run a bit better if you keep your spare bedroom
at a temperature which you also find agreeable.
Ppodyct Families
If Your Scope Isn't Fast Enough
ECl 10K output stages have a nominal logic
swing from about -0.900 volts (considered to be
a Illogic )'1 or IIhlghlt) down to ellout -1.750
vo 1ts (II log i c 011 or 1I1ow'l) , wi th the log i c
threshold being around -1.290 volts. (Aha!
Now you know what these negative numbers really
mean!) If you have followed the interconnection
recipe of the preceding paragraphs faithfully,
you should see picture-book square wavefoMms
everywhere, although they do look just a bit
cleaner at the end of a signal line close to the
tenmination resistor than at points along the
way. Even with a 485 scope, which shows every
little wiggle, the ECl wavefonms I observed
looked very clean compared to the grassy ones
sometimes seen in high-speed TTL systems.
I f you IILISt "use a s lower scope for money_~ype r~s9fls, you wi 11 of cou rse ()bserve even
cleaner waveforms (which arenlt exactly real!)
with slightly rounded corners, which may not
deceive you very IILIch about anything essential
as long as you remember why it is that they
look so clean. The principal danger is that,
now and then, there wi II be a gl itch on some
signal line which is insufficiently wide to show
up on the scope, or at least to look to you as
If it is of sufficient magnitude to reach the
logic threshold --- when, all the while, here Is
an up-down counter (type 10136) or hex D-flipflop (type 10186) or other edge-len.i~l¥e
device whose clock input is connected to that
signal line, which sure is acting as if It Is
getting an edge at just about that time.
Probably it is, and you just canlt see it
because your scope has smoothed it out for you.
Realizing that such IILIst be the case, you have
your choice of (a) getting hold of a more
expensive scope, or (b) Itreading between the
11 nes" of what you rhumb Ier scope is te 111 ng
you, terminating that clock line better, and
seeing if the problem doesn't then go away. Or
perhaps the clock-line glitch is really due to
WEST COAST COMPUTER FAIRE
To oversimplify things a bit in a manner
meaningful to a ones-and-zeroes type like
myself, ECl Is one type of IIcurrent-mode 10gic.1I
The state of an ECl gate is determined by which
of the two output I egs the ma i n cu rrent is
being steered through, and the resulting
voltages at the output points are interesting
side effects but are not the basic switching
phenomenon.
In TTL and K)S, on the other hand, the
output voltage states are where the action is,
and the currents tag along after the voltages
as Interesting (and often inconvenient) side
effects. In Schottky TTL logic, for instance,
the voltage states you actually see on a scope
are about +0.2 volts for a Illogic 011 and +4.1
volts for a Illogic 1.11 Incidentally, since
Schottky TTL rise times are probably a bit
faster than the 3.5 to 4-nanosecond times
c~aracteri stl ~~fE~~_"J~,y~_ ~""_n~ti~e that
the Ivoltage slew ratell or whatever that pa"rameter should be called is many times greater for
Schottky TTL, and is in fact roughly equal to
the corresponding rate for the very fastest
ECl fami 1i es.
There are lots of custom families made by
IC manufacturers for direct sale to large computer companies which fall into the general
category of !Icurrent-mode 10gic. 1I However, most
"these are not available for sale to the general
public. There are six product families, more
specifically considered to be ECl, which are
sold to all comers:
o Eel I, contemporary with DTl and now
obsolete and not used in new designs.
o Eel II, contemporary with and somewhat
philosophically akin to H-series TTL.
o Eel III, extremely fast, but with only
a modest selection of SSI and MSI types.
o Eel 10K, the only one which I am claiming is well-adapted to homebrew usage.
o Eel 95K, philosophically much like 10K,
but a marketplace also-ran.
o Eel lOOK, the fastest one of all.
378
BOX 1579, PALO ALTO CA 94302
The first four of the above families were introduced by Motorola, and the last two by Fairchild.
Fairchild, Motorola, and Plessey also have
various other ECl products which are not really
organized into families -- for instance, Fairchild's llCOI OR/NOR gate (used in the CRAY-l),
which is an lOOK-technology device offered in a
non-lOOK package. The last four families are,
or can be made to be, electrically compatible
so that with some care devices may be mixed in
a system.
Except for ECl 10K, the second-sourcing
picture isnlt too bright. ECl III is avai lable
from Motorola (which of course calls it MECl
III) and also from Plessey (which calls it PECl
III). Signetics, or its French affiliate which
is also owned by Philips of the Netherlands,
is moving towards becoming a second source for
ECl lOOK.
ECl 10K, however, has a large number of
viable second sources. Besides Motorola, Fairchild, Plessey, and Signetics make virtually
the complete line, Nippon Electric makes some
of it, and Fujitsu, Monolithic Memories, and
Texas Instruments make 10K-compatible bipolar
memories. This list covers only those firms
which offer their wares in the United States
today through distributors. There are other
firms which sell only in Japan or in Europe,
where ECl 10K probably has a larger share of the
total digital logic market than it does here.
It was a British computer manufacturer,
International Computers ltd., which originally
sponsored Motorola1s development of ECl 10K.
The Even Faster Stuff
A.hobbyist willing to hand-solder, rather
than wirewrap, sl! interconnections to that part
of his system might with due care succeed in
making some limited use of ECl III and/or ECl
lOOK. (A few turns of wrapped wire, it turns
out, functions all too well as an inductor when
hit with the 900 or JOO-nanosecond edges
respectively characteristic of those families,
and the resulting impedance discontinuities
make reflections.) The technology required to
build a system of any size using one of these
families, however, remains pretty difficult at
the present time.
There are, however, two ECl III devices of
some interest to a hobbyist: type 1648, which
is ca II ed a IIVO 1tage-cont ro II ed osc i II ator, II and
type 1658, which is called a "voltage-controlled
multivibrator." There is no announced ECl 10K
product matching either of these descriptions,
and they are useful. I used a 1648 once in an
otherwise all-TTL system to provide a handadjustable system clock source for testing clock
margin - that is, how fast the system could be
made to go before it fai led. (In this case, I
didnlt personally do the nitty-gritty.) It
worked fine, after being well shielded.
ThoseECl 10K parts having type numbers of
form I02XX (106XX in military temperature) form
a subfamily, with appreciably different properties. Hand-soldered connections are also
advisable when using any of these. They are
quite a lot faster than their normal ECl 10K
equivalents, and consume essentially no more
power, 50 they sound like a super-good deal.
Mundane Details
Alas, this greater speed has been obtained by
cutting very short the leisurely rise and fall
As far as one can tell by scanning current
times deliberately designed into normal ECl 10K.
Fairchild and Motorola OEM price lists, ECl 10K To overs·implify a bit, normal ECl 10K rise and
ICs in plastic packages tend to cost about It
fall times are perhaps 3.5 to 4 nanoseconds -times as much as the closest equivalent part in much longer than the nominal logic delay of 2
low-power Schottky TTL. There are certain items nanoseconds or so; whereas 100XX rise and fall
which donlt follow that rule and cost relatively times are probably not much different from the
more, such as the type 10136 up-down counter.
logic delay which I have observed to be about
However, most ECl 10K gate parts in plastic
1.25 nanoseconds. Reluctantly, I concluded that
today cost well under a dollar even in unit
system noise problems would be minimized by
quantities.
restricting the use of 102XX parts to those
Some of the ECl 10K lSI parts are still
situations where that last ounce of speed is
up in the $10 to $30 range, such as the Motorola really required, for instance in the clock
10800 which is a rough equivalent to an AHO
generation circuits. The ~ sure-enough
2901 at least when equipped with external RAM.
example of proven crosstalk trouble in the Raca~
The cure for that situation is of course second- Milgo midicomputer was due to an unnecessarily
sourcing, which is happening but takes time.
long wire being driven by a type 10212 buffer,
Sooner or later Fairchild will probably be
and was eliminated by relocating a few ICs so
making the 10800, and then the price will drop.
that that buffer was closer to its load.
Almost all ECl 10K parts are now available
in full military-temperature-range versions, in
Motorola
case you are taking your homebrew system with
type 102l!
you to Montana this winter or to Phoenix next
NOR buffer
sunmer.
WEST COAST COMPUTER FAIRE
379
BOX 1579. PALO ALTO CA 94302
the electrical polarity of some signal (say, for
example, BANANAS) hasn't changed onels perception
of its meaning or "psychological polarity" has
changed (in the example, to YES WE HAVE NO BANANAS), then logic drawings can be made almost as
semantically precise and self-checking as logic
equations. This is not an academic exercise -it helps you spot real mistakes before you wire
it up wrong and waste a lot of time trying to
figure out why it isn't working.
Reference 7 is an eminently sane paper on
this whole dogma-ridden subject; I have relied
on it for several years for guidance as to logic
drawing conventions. Recently there have been
more papers in the same vein. I have just one
minor quibble with reference 7; the symbol
suggested there for psychological inversion, a
small line drawn across the signal line at right
angles, tends not to show up too well on blueline copies. A little solid triangle or arrowhead drawn next to the signal line shows up much
better, and there is a hole of the right shape
logic Drawing Conventions
on most templates.
If one wishes to think "assertive-hightl
Figure 6 shows the same physical gate
that is, the more positive of the two output
element, one of the two-input elements from a
voltage states represents a 111'1 and the more
type 10105 triple OR/NOR gate part, drawn first
with assertive-high inputs as an OR/NOR gate and
negat ive state represents a "0" -- then it
follows that in TTL logic the simplest and most second with assertive-low inputs as an AND/NAND
natural gate structure is the NAND gate, whereas gate. You get the idea. The pins are all still
in ECl logic it turns out to be an OR/NOR gate. in the same relative positions. If one uses the
It is fairly clearcut in both cases what is
standard "inversion bubbles" correctly, one
doesn't really need the additional symbols such
really the simplest circuit for the silicon
as triangular flags - they in fact introduce one
peop 1e to bu i 1d •
Since the ORing together of minterms seems too many degrees of freedom and just confuse the
to be more natural to human psychology than the issue. I suggest the proper use of mixed-logic
ANDing together ~f maxte~s, part of learning
conventions as a sort of "software adjunct" to
to use ECl-cons i sts ofleamin9--touse-~'mixed
the-rest of my homebrew ECL· reclpe-.-.
logic" conventions in some form. These conventions allow you to think of --. and draw -- a
given physical gate circuit as performing either
an OR function or an AND function, and then to
consider as a separate issue the assertiveness
of that gate's input and output signals.
Soaking up the mixed-logic viewpoint should
(
also be part of learning to design with TTL, but
unfortunately it isn't always. In fact, many
erudite polemics have been written defending
older and less general viewpoints, which I feel
Figure 5. Fixed-frequency oscillator.
are now best understood as evolutionary way
stations on the way to the full-blown mixedlogic viewpoint. One of these older viewpoints
is the one which results in the dozens of busy
little black and white triangular flag symbols
on the inputs and outputs of ECl 10K parts as
drawn on Motorola's data sheets.
I can only say that, once I forced myself
to give up the particular Bronze-Age viewpoint
I formerly had and learned to use mixed-logic
conventions, within a week I was really wondering why I had ever used anything else. If one
uses an additional logic symbol to denote
.I~
"psychological inversion,"implying that althoug~igure 6. Two representations of the same gate.
One other simple and plausible usage of
ECl III or ECl lOOK is to build high-speed,
fixed-frequency oscillators. Two type 1688
OR/NOR gates on the same IC in series make a
dandy oscillator (see Figure 5), which we
observed to generate various frequencies
from 110 MHz to 170 MHz depending on which
particular MECl or PECl sample we were using.
Probably an llCOl would produce a somewhat
higher frequency. Don't try to build this
type of oscillator with a single gate -- it
won't even oscillate, but will just hang in
there with its output at about the threshold
voltage. If swapping ICs around doesn't get
you the frequency you are shooting for, try
hanging ~ small capacitors on gate outputs
to slow them down. Caution: with ECl III at
least, the speed of oscillation may depend on
the ambient temperature.
~ WEST COAST COMPUTER FAIRE
380
BOX 1579, PALO ALTO CA 9430~
in four states. Besides the computer described
in this presentation, he earlier managed the
technical end of a hardware project in which the
Control Data 3300 virtual-memory computer architecture was successfully eIl1Jlated using TTL MSI.
He has a SA in physics and math from Grinnell
College, an HA in math from UCLA, and many
additional EE and computer courses at the University of Minnesota, and has embarked on the
MBA program at the University of Santa Clara.
He has two patents in electro-optic mass
memories, belongs to ACM and IEEE, and has
five children and three station wagons.
Finale
I have used references sparingly, because
many of them tend to give ECl system design an
air of awesome complexity and desperate perii,
and this is exactly what I. am trying to tell
you ain't necessarily so. However, if you get
seriously into ECl you probably wi II want to .
get hold of Motorola's whole set of application
notes perta i n i ng to ECl 10K" and a I so son,e
worth-while material published by Fairchild and
Signetics. Good luck, and may the Force be
with you. #
References
Motorola.
type 10105
triple OR/NOR gate
I.
"Notes on Microcomputer Music," Marc LeBrun,
pages 128-13 0, The First West Coast
Computer Faire Conference Proceedings,
Box 1579, Palo Alto, CA 94302; 4/1977-&
John Reykja lin, private COImlJni cat ion; 1/19]8.
2.
The ECl Handbook, Fairchild Semiconductor,
464 Ellis Street, Mountain View, CA 94042;
7/1974.
3.
"Packaging High Speed ECl Integrated
Circuits,lI leonard A. Doucet, Augat Inc.,
33 Perry Avenue. Attleboro, HA 02703;
about 1974.
4.
l'The CRAY-I Computer System. II Richard M.
Russell, pages 63-72, Communications of
the ACM; 1/1978.
5.
"CRAY-l; The Smaller Supercomputer,1I
New Products department on page 53.
Computer (IEEE Computer Society magazine);
3/1976.
6.
Interfacing with MECl 10.000 Integrated
Cirguits, Application NoteAN-720, Motorola
Semiconductor Products, Inc., Box 20912,
Phoenix; AZ 85036; 1974. Author of this
note is Bill Blood.
7.
"Mixed logic; A Tool for Design Simplification,tI Paul M. Kintner, pages 55-60,
Computer Design; 8/1971.
Humb I eThan ks
There are several people who were at
Ra~l-
Mi Igo when I. was, wi thout whose efforts the
.
number-cruncher wou I d never have happened and ...•
wouldn't have been able to tell you abOlitit.
Two part i cu larly deserve ment ion: .D tck Joerger
is the " sharp technician" referred to hi the
text of this paper, and built most of the
machine with his own two hands. Rick Johnston
did the preliminary design of the control section and improved it greatly from what I· had
originally planned; he made it a pipelined,
overlapped, stored-microprogram machine with a
self-restarting main timing circuit.
There are also three electronics industry
veterans at other companies with whom I have
had numerous conversat ions, usual1y by WATS
line, and without whose wise opinions I would
not have had the temerity to try to build the
machine out of ECt. They are: Stan Bruederle
of Signetics, Rob Walker of Intel (at that time
still at Fairchild), and Norm Winningstad of
Floating Point Systems. Everything each of then
told me about ECl turned out to be absolutely
correct, and Il1Jch of it appears in the text of
this paper. If the paper is wildly off-base on
any topic, it's because I didn1tget their
complete message.
Ad Hominem
Chuck Hastings has spent two decades in
the computer mainframe business. mostly as an
architect/designer, and currently works for
.tek Applied Technology in Sunnyvale, CA. He
has prev ious I y worked fu l1-t ime at Raca I-M i I go,
two subsidiaries of United Telecom. Control
Data, Honeywell, and TRW, and has been a
consultant to various big and little companies
~WEST COAST COMPUTER FAIRE
+
,
+
+
+
+
+
+
+
+
+
+
+
~
APPENDIX
About this list
I promised you a list of vendors of various
items which you will need. Here they are, with
names and addresses, in alphabetical order by
topic. • don It, of course, imply any warranty
381
BOX 1579, PALO ALTO CA 94302~
that you will find them utterly perfect about
everything, simply by listing them here, but
I have had positive dealings with most of them.
Stanford Applied Engineering Inc. (SAE)
340 Martin Avenue
Santa Clara, CA 95050
ECl logic and Memories
Flat Ribbon Cable
Fairchild Semiconductor
464 Ell is Street
Mountain View, CA 94042
Augat (see above)
3M Company, Industrial Electrical Products
3M Center, St. Paul, MN 55101
Motorola Semiconductor Products, Inc.
Box 20912, Phoenix, AZ 85036
Elco Corporation
2250 Park Place
El -Segundo, CA 90245
Plessey Semiconductors
1674G McGaw Avenue
Santa Ana, CA 92715
(Head office: Swindon, U.K.)
Eltra Spectra-Strip
7100 Lampson Avenue
Garden Grove, CA 92642
Signetics Corporation
811 East Arques Avenue
Sunnyvale, CA 94086
Ceramic Disk Capacitors
(No direct information)
Nippon Electric Company, Japan
AVX Ceramics
P. O. Box 867
Myrtle Beach, SC 29577
ECl Memories Only
Centre Engineering
2820 East College Avenue
State College. PA 16801
Fujitsu America Inc.
2945 Oakmead Village Court
Santa Clara, CA 95051
Resistor Packages
Monolithic Memories Inc.
1165 East Arques Avenue
Sunnyvale, CA 94086
Beckman Instruments. Inc.
2500 Harbor Boulevard
Fullerton, CA 92634
---.exasTnifruments Iric.
BOO rn 5 ~- Tile .------
P. O. Box 5012, MS 308
Dallas, Texas 75222
1200 Columbia Avenue
Riverside, CA 92507
ECl-Grade logic Breadboards
IlC Data Device Corporation
Airport International Plaza
Bohemia, long Island, NY 11716
Augat Inc.
33 Perry Avenue
Attleboro, HA 02703
Wirewrap Eguipment
Excel Products Company, Inc.
401 Joyce Kilmer Avenue
New Brunswick, NJ 08903
Gardner Denver Company
1333 Fulton Street
Grand Haven, MI 49417
Garry Manufacturing Company
1010 Jersey Avenue
New Brunswick, NJ 08902
OK Machine and Tool Corporation
3455 Conner Street
Bronx. NY 10475
I nterdyne, Inc.
14761 Califa Street
Van Nuys, CA 91411
Mupac Corporation
646 Summer Street
Brockton, HA 02402
WEST COAST COMPUTER FAIRE
382
BOX 1579, PALO ALTO CA 94302
N-CHANNEL PACE l6-BIT MICROPROCESSOR SYSTEM
Ed Schoell, B Tech (Electronics), VK3BDS
1.
ABSTRAC7
The CPU card, a multi-purpose interface card and
an 8Ox24/28 video card are completed and a l6Kx16
memory card and a floppy disc interface cards are
planned in the near future.
This paper describes a microcomputer system based
on the National Semiconductor Pace (INS8900) l6-bit
microprocessor. This system has been developed by
the author in Australia to fill the gap between
evaluation kits offered by microprocessor chip
manufacturers and the full sized microcomputers
available from USA sources.
2.
INTRODUCTION:
By way of background, the hobby microcomputer
scene in Australia has been dominated by the two
hobby magazines, Electronics Australia and
Electronics Today International. Both these
magazines have published projects based on
evaluation kits from the microprocessor chip
manufacturers. Both have published simple VDU
TV-typewriter systems, (of which quite a few
hundred have been constructed) and both have
reviewed offerings from importers of USA
originating systems from Altair etc.
The use of a l6-bit processor has a number of
advantages for hobby applications, especially where
any maths work is contemplated, and at $19.95 for
the CPU chip the provision of a powerful instruction
set and minicomputer architecture make it very
attractive.
The system described consists of a family of
boards 6.25 by 8.5 inches with a single sided 85way edge connector. These boards plug into a
mother board in a case and power supply
combination box to form a microcomputer. However
the CPU card can be run on its own by connecting
it to a power supply and TTY or terminal thus
providing a low cost introduction to the system
without limiting later expansion as is usually the
case when a person tries to expl&nd an 'evaluation
kit' •
Computer stores have opened in the major cities,
and a number of active computer clubs have
started with membership in the 100 to 200.
One popular project has been a SC/MP based system
call "MINISCAMP" using a switch and LED simple
control panel to enter data into RAM and execute a
program. Some 800 odd systems have been built of
these and it has proved an attractive learning
tool priced under $100.
Ed Schoell, Box 30., Boronia 3155., Victoria, Australia.
STlCKFUlLlElIPTy
D1S-DOO
[30-40,1-51
1111
NIR2
1-----:=.'Ii~·,·J
1111
.,m
III
131
IDS
ODS
Exn.o
.-s
NnUT
NHALT
~
-12
GID
.
:
!1!!
-I.
!ZI
VOD
Vss
IZ2I
I!!
Yee
Fig. 1 •. PACE (INS8900) INTERNAL ARCHITECTURE
Data and addresses are connected to the outside world by the l6-bit data bus at the top
right of the diagram.Stobes NADSIIDSIODS control bus activity.
WEST COAST COMPUTER FAIRE
383
BOX 1579 1 PALO ALTO CA 94302
Because of .the cost and difficulty of importing USA
equipment into Australia and the lack of locally
designed equivalents, about two years ago design
was started on a system using the SCIMP microprocessor as the controller for an intelligent VDU. The
original intention was just to build up a system for
personal use, but discussion with a lot of
interested other people convinced one of the need to
design reproductable printed circuit boards and to
offer these as kits for others to build as well.
.The video system was prototyped first as a wirewrapped conglomeration dcross :the bench, hooked up
to a SC/MP low cost developm~nt system from
National and this worked vet;; wen.
A variety of memory is provided on this card.
Firstly, 6 PROM sockets for 2708 (or 2716)
PROMS give 3K (or 6K) by 16 of firmware storage.
One pair is used for the DEBUG program described
later. The PROMS are-normally located in high
memory, but two pairs can be moved .to location
zero (the initialise address). As well, optional
automatic power up vectoring to the monitor is
switch selectable.
About this time National announced a price
reduction on the PACE cpu chip down to $25 for a 3
mic~osecond version of the P-channel part, and it
was t~9 great a temptation to resist putting a
much more powerful micro chip into the system and
releasing it as a microcomputer with a video front
panel (although still usable as a terminal. with
other systems).
Having made this decision the long h~rd ta&k of
detailed interface design, CPU design and iCB
layout began and occupied some six months of spare
_time activity. The first results ,have been
gratifying as we now have a unique combination of a
16-bit CPU with a powerful debug program and easy
expandability,a multichannel interface card able to
drive a combination of parallel and serial 1/0
devices and a video card with 4K of character
storage in a variety of formats, plus a flexible
graphics system giving 160 by 140 points able to be
mixed with upper or lower case text. Let us now
look at the design in more detail, starting with
the CPU card.
Because the DEBUG is out of the way of low memory
RAM can be located there, with no restrictions
at all. In fact address space for the bottom 52K
(x16) is unassigned, and slots above this are
provided for VIDEO RAM (4K),Disc Operating System,
standard peripherals and the ROM mentioned above.
A block of 256 words (x16) of RAM is located at
the very top of memory. Some of the lower half
of this is used by the monitor, but most is
available for us.rs. It resides at the split
base page if this is enabled.
A second block of 4K RAM can be provided by
plugging in 16, 4Kxl static RAMs. This can be
allocated anywhere in memory by DIP switch, and
provides enough capacity on the single card to run
the editor, and assembler, as well as a TINY
BASIC compiler planned for release later this year.
As mentioned before the change to Pace was made
when National rel.eased the $25 3 microsecond chip.
Since then a $19.95 two microsecond N-channel
chip the INS8900 has been released and this was
used for the released printed circuit boards. It
offers a number of advantages, in that the clock
system is now a single CMOS line and bus interfacing can .nowbe ..done ... at.... low.,.power schottky levels
via the 8-bit wide INS8208(DP8304) transceivers.
3.
This card can be used stand-alone, and TTY/20rnA1
RS232C interface allows for bit-serial
communications with ASCII and BAUDUT devices at SO,
.110.,.300 and1200.BAUD.. ThefJ--'~$!1 (Fl3,Fl4/and
JC15 are used for this simple 1/0.
A l6-pin DIP connector is also provided on this card
to convert to a range of low-cost microprocessor
peripherals developed in Australia on a ribbon
cable interface. These include PROM programmers
for the 270SQ and 5204Q, LED displays, and
calculator-style control panels.
CPU DESCRIPTION
On the CPU board a crystal oscillator at 11 MHZ
provides timing for the CPU after division and this
clock is also buffered off the card for use by the
video system for timing the display and by the
interface card for the programmable baud rate
generators. The Pace internal architecture is very
minicomputer like (actually rather similar to the
Data-General NOVA). It has four 16-bit
accumulators, all of which can be used in memory
reference instructions, although accumulator zero
is used as the prime data accumulator, because of
the availability of branch on condition
instructions which can test data or individual bits
of this accumulator as well, a group of logical
memory reference instructions use this accumulator
(in these respects the pace instruction set is a
considerable enhancement of the NOVA's).
4.
Accumulator 2 and 3, as well as being able to be
used as destinations and sources for l6-bit
arithmetic operations, can also be used as 16-bit
index registers. All memory reference instructions
(with the exception of the branch on condition which
is PC-relative) can use either of these for
indexing, alternatively, memory reference instructions
can go PC relative or into the first 256 words as
a base page. Indirect instructions are also
provided.
Figure 1 gives the internal structure of the CPU.
WEST COAST COMPUTER FAIRE
The 16-bit 1/0 bus is provided to couple the PACE
to the outside world, and data in and out as well
as addresses are placed on the bus. Control strobe
lines (NADS, IDS, ODS) indicate what is happening
on the bus, and in the case of this CPU card, are
used to latch address data into a pair of
DP8212 8-bit latches giving a latch address bus
pined out from pins 20 to 35 on the ~ard edge. The
buffered data bus is available on the card edge
pins 40 through 55 and is turned around by the
IDS (input data strobe) signal. An additional pair
of buffers on the card buffers the on card memory
onto the system bus when memory in the range is
decoded.
384
Multi-Interface Card:
To expand the system over the" flag-waving" serial
1/0 on the CPU card, a second card adds multiple
serial and parallel interfaces. One (or optionally
2) USARTS are provided, ·giving synchronous or
asynchronous serial 1/0 at programmable, split or
externally controlled baud rates. A three-channel
16-bit interv~l timer chip is used for baud rate
generation from the crystal clock, so precise
clocks can be generated for all standard rates as
well as the odd BAUDOT ones used by radio hams etc.
Channels not used for baud rate clocks can be used
for real time clock or external counter
applications in binary or decimal.
Serial 1/0 is at TTL, 20 rnA or RS232C with modem
control lines provided.
To provide low cost backup storage, it is hard to
beat an audio cassette recorder, so an interface
in BYTE I KANSAS CITY format is provided, along with
remote control for two tape recorders, and a
higher speed option as well. A
high speed
synchronous port is also provided to convert to a
low cost Australian developed 3M cartridge drive
BOX 1579, PALO ALTO CA 94302
PC relative (i.e. 2-byte) instructions can reach
2 or 3 times further than the 8-bit micro's. Also
instructions are constant lengths, a bonus for
hand-assembly.
system. Various parallel interfaces are provided
to allow input from a high speed paper tape reader
and an output for a Centronics or similar style
printer. Strobe and control polarities are link
programmed to allow for the usual odd collection
of peripherals hobbyists and schools accumulate!
The monitor/debug has dump and load facilities
in hex and binary onto paper tape, audio
cassette, and "dmo1n-l ine" to and from other
Rather than provide seperate cards for such a
range of I/O devices, it was easier and much cheaper to combine them all onto one card. In this
way, address decoding, bus buffering and I/O
control flags are shared rather than being
duplicated as most minicomputers do it, and each
interface costs only very few dollars.
5.
computers
the system uses a PACE cross--
One area most monitor/debugs fall dmvn on is
facil i ties provided for program checkout. :-10s t
usually only provide a break-point (or tHO) if
you are lucky. At National (in Australia) He
developed the single-step debug nm" used in the
PACE Lmo1 Cost Development System from 1\SC. This
has been expanded in this system to give options
of program stepping, printing (or displaying) each
step CHith or Hithout registers), or Hith
registers which altered with execution highlighted
by a reverse video field. Optionally, the video
display can either shmo1 the last step or scroll
up at each step or each branch of program. The
single step facility makes use of the level zero
non-maskable interrupt provided in the CPU.
VIDEO INTERFACE
A third plug-in card adds full intelligent VDU
facilities to the system. On this card, 4096 bytes
of RAM are scanned by the displays logic to
produce an 80 character by 28 line video output
suitable for feeding to a monitor or modified TV
set. The CPU has direct access to the screen
memory, so data can be output to the screen very
rapidly without waiting for a serial transfer,
and can, of course, go anywhere it likes, reading
or writing.
The RAM is isolated from the CPU via multiplexers,
although the RAM appears in the CPU memory space as
a 4K block. Several video cards can be supported
in a multi user environment, as memory management
enable/disable logic is provided.
All input-output for system soft\.Jare (text editor,
reloading loader macro-assemblers, BASIC, etc) goes
via the monitor. I/O is defined at startup and,
can be changed dynamically between drivers provided
in PROM or user-supplied 1/0 routines called via
link addresses examined as I/O routines are
called. This allows a user to use video as the
system console, but cause the hard copy of an
assembler output to go to a Baudot or
Selectric printer (Baudot code driver provided,
Selectric user loaded). Alternatively, a Baudot
machine can be used as system console (unique!),
but allow programs to \vrite ASCII hex or binary
data to cassette.
Care has been taken to blank the video during CPU
access, thus reducing interference and "flashing"
on the screen. Scrolling is handled at high speed
(in seperate blocks of 16 and 12 lines) by the
CPU simply writing a screen offset constant into a
top or bottom screen latch.
Each character position on the screen can be
addressed in a graphics mode as five horizontal
lines the width of the character. A plug-in
option expands the video word to l2-bits (easy to
handle with a l6-bit micro) spliting each bar
vertically to give an overall graphics resolution
of 160 horizontal by 240 vertical square dots
able to be mixed with upper or lower case
alphanumerics.
7.
CO:';CLUSIOt\
This has been a brief introduction to the system.
It has caused a fair amount of interest in
Australia, and as the l6-bit field has been
neglected on a world-wide basis, it is hoped
that there \.Jill be interest in it from further
afield.
Optional data formats are provided, allowing for
64 characters (by 64, scrolled) or for 40 doublewidth characters (with lower video bandwidth).
8.
(A link provides for 625 x 50 or 525 x 60 video
standards, 'ut on 525, only 25 lines can be
displayed, rather than 28.)
6.
~vhen
assembler, or acts as a cross-assembler host
machine to SChlP, PACE or 8080 external systems.
REFERENCE
INS8900 single chip 16-bit n-channel
microcomputer data sheet.
Oct '77, National Semiconductor Corp.
SOFTWARE
9. AUTHOR BACKGROUND.
1he author has been wOT~ing in digital design for
12 years, initially with Ha\",ker Siddeley and since
1972 as an applications engineer \-lith National Semiconductor.This system is a private development,and
kits and cards are available from JED MICROPROCESSORS
PO Box 30 ,BORONIA 3155 ,VICTORIA ,AUSTRALIA.
Quite a lot of development time have gone into the
software provided in the two monitor PROMS - and
quite a few years experience in writing and using
debug programs has provided the background. The
usual commands to type and alter memory, registers
and stack data are provided with enhancements to
allow reference to memory addresses not only asa
hex number, but as an arithmetic expression (e.g.
an offset can be added to allow for relocated
code) or as an indexed expression via either of the
index registers.
Also a leading sign can imply the length of the
typing range, without needing a full definition
(e.g. TM -3(2)/+6 types 6 memory location onwards
from 3 locations below the address pointed to by
index register 2).
Automatic calculation of displacement for PC
relative instruction is provided when using the
Alter command (e.g. AM 4003, Cl(3F92) alter memory
location 4003 to C18F the PC relative negative
displacement of 8E being generated automatically).
One bonus with the 16-bit wide instructions is that
WEST COAST COMPUTER FAIRE
385
BOX 1579. PALO ALTO CA 94302
AI.
PACE (INS8900) CPU CARD.
This photo shows the CPU chip, the addres~ decoding.
and the level zero interrupt logic (for s~ngle stepp~ng)
with the 4K-RAM, 3K-ROM Xl6 memory. TTY and RS232
interfaces allow this card to be used stand-alone.
A2.
MULTI-INTERFACE CARD FOR PACE CPU.
A3.
Connectors across the top of this card connect to
Rl232 20 milliamps, 3M cartridge, Kansas City
audio cassette, paper tape reader, paper tape
punch and parallel printer systems. Two
USARTS on this card provide serial interfaces and
DP82l2 and other logic chips handle parallel I/O.
WEST COAST COMPUTER FAIRE
386
VIDEO INTERFACE FOR PACE CPU.
This card, with its four K by twelve bit RAM
provides' video interface to a TV set. Formats
provided are 28 lines of 40 or 80 characters
and an alternative of 28 lines by 64 characters
scrollable through 64 lines. 525 and.625
standards are link selectable. Graphics on a
160 by 140 matrix are also provided.
BOX 1579, PALO ALTO CA 94302
MICROPROCESSOR INTERFACING TECHNIQUES
Rodnay Zaks, President and Austin Lesea, Senior Engineer, Lecturer
Sybex, Inc., 2161 Shattuck Avenue, Berkeley, California 94704,415/848-8233
No longer is interfacing an art which
requires years of experience and hundreds
of integrated circuits. With the introduction of the microprocessor and other
LSI chips, interfacing most peripherals
becomes a technique of applying the proper
LSI chips.
well as modem control features. Again,
interrupt circuitry, and a variety of programmable character lengths and rates are desirable. The authors' ideal USART appears in
Fig.A- 2. Again everyone has such an element
in one form or another. Examples are the
TI 9901 and 9903, In te 1 8251, Motoro 1a 6850,
and Zilog 2-SI0.
Any interfacing requirement involving
less than 20,000 bytes per second transfer
rate can be solved by one chip. Many other
tasks can be solved by the new controller
chips, or a three or four chip microcomputer.
Special Device Controllers
The UART was first put in LSI form because
it was a basic building block required by most
systems. The same is now true of the circuitry
required for printers, CRTis, f10ppy disks,
cassettes, and other common peripherals.
Presented here are: the basic inputoutput interface chips for simple serial
and parallel interfacing, the advanced
protocal controllers, two device A/D,
D/A modules for rea 1 worl d interface prob lems.
For your favorite printer, there is an
interface circuit that will connect it to
your favorite microprocessor. All the hardware
has been done for you except for possible
motor drive circuits or relay drive circuits.
Included here are:
-Basic serial and parallel inputoutput IC's.
The most difficult and disagreeable intertask of all, that of floppy disk interfacing, has now been solved on one chip! The IBM
dual density 3740 compatible format is built
into the Western Digital 1781 interface chip.
The only external circuitry required the data
separator and 1 ine drivers to the floppy. Such
parameters as stepping time, head settl ing time,
block size, etc. are programmable. One chip
then will work with most of the available
floppies and mini floppies.from all the manufacturers. The 1781 is illustrated in Fig. A-3.
-Specialized device controllers.
fa~e
-One chip interfaces.
-New D/A, A/D products to simplify
"real world" interfacing.
Basic 10
Typically, latches are used to store
output values, and buffers are used to input
values. Such specialized SSI circuitry has
been improved greatly by providing programmab i 1 i ty.
One Chip Interfaces
A programmable paralleled interface provides not only the input drivers and output
latches, but also the interrupt circuitry,
direction selection, and handshaking signals
usually required. An ideal parallel interface
chip is shown in Fig. A-l. The companies
coming closest are Zilog, Motorola, and
Intel with the z-80 PIO, 6820 PIA, and
8255 PIA, and 8255 PPI, respectively. Now
the basic microprocessor board is universal,
as the I/O can be allocated by software
depending on the application. Hardware is
the same in almost all cases. Only the
software changes.
With the introduction of single chip microcomputers such as the Intel 8040 family and
Texas Instrument 9940 family, and the Mostek
one chip F-8, we can now program our interface
problems.
We use the one chip processor as a dedicated interface element in a larger system. This
is shown in Fig. A-4. As long as the processor
has enough time to handle the peripheral data
rate requirements, we have the perfect general
purpose interface.
Serial interfacing has long been integrated
into the classic UART or Universal Asynchronous
Receiver-Transmitter. Now we have the appearance of even more useful serial interface
chips. The new UART provides asynchronous
or synchronous communications capability as
~WEST COAST COMPUTER FAIRE
387
Intel has announced the 8741 or UPI. This
is a programmable interface element which is a
special microcode version of the 8048 family.
It is meant to be used as the peripheral interface element in the system. The 8741 is the
EPROM version which can be user programmed and
erased.
BOX 1579, PALO ALTO CA 94302~
In the future, no special purpose interfaces will be designed, they will all be mask
programmed parts as ROM's are used today for
software packages. We will have BASIC ROM's,
FORTRAN ROM's, and Shugart UPI IS, Pertec UPI IS,
OKIDATA PRC's, etc. Not only will we have
"plastic software", but "plastic interfaces"
as well.
•
I
~
;
•
•
~
•
:
;
,
I
"'lij"
,
"
! t
t~L'
A/D and D/A
-
-POWER
So far we are unable to measure voltages
and currents from physical sensors. This is
the "real world" of industrial appl ications.
Designing A/D (analog to digital) and D/A
(digital to analog) converters has long been
a tedious process. Once done with the design,
they were not easily interfaced to our standard
microprocessors.
~.,
I::
CHIP
SELleT
Now we have the ADC 0816 from National.
A CMOS part costing $20.00 in quantities, it
provides 16 multiplexed analog inputs with an
8 bit digital three-state output. It replaces
previous modules costing upwards of $200.00.
In the same way that the ADC 0816 gets the
information in, other monol ithic products are
available to do the D/A conversion.
/", ICROP~OCESSOR
CONTROL
DATA BUS
SIGNALS
Typical PJO
A -1
In addition to A/D's, there are other parts,
such as; the Signetics NE5018. It is a complete
8 bit D/A on a chip. It has a built-in
reference and input latch so that no external
components are required for interfacing, and
SERIAL
costs $8.00 in large quantities.
INPUT-----i
ClOCKENABLE/RESET-
RECE IVER
Conclusion
---
--
PARALLEL
I
!
PARALLEL
OUTPUT
·~-'-~
TRANS"I!TTER
==--...:::;:
The new LSI components have liberated
IN
the designer to spend more energy on improving
---==:
util ity and performance. No longer are interCLOCK - faces "dumb", but they actually reduce the
_ - r----------~
CONTRO~
amount of processing required by the use of
CONTROL
=-~
distributed intell igence. We now have the
FUNCTIONS
- - ~:::::
1
"plastic software" interface, where other than
buffering or level shifting, all interfacing
is done in software. This is the ideal situaPOWER
tion as hardware now becomes standardized, and
DART Block Diagram
the only real cost becomes programming.
SERIAL
OUTPUT
STATUS
SIGNALS
III
This material is a short summary of the
concepts presented in "Microprocessor Interfacing Techniques", by Austin Lesea and Rodnay
Zaks available through Sybex, Inc., Berkeley,
California 94704, telephone: 415/848-8233.
Also available in most computer stores.
~ WEST COAST COMPUTER FAIRE
A-2
388
BOX 1579. PALO ALTO CA 94302~
!II
I
DATA 0I1l'
lIf.iTE
LoATA
DIIQ
(TO D.:':,-)
WG
INTRQ
MR
CS
RE
WE
COHPl1I'ElI
DISK
INTEIIFACE
INTEIIFACE
CONTROL
~0;i-:'?0!
TG 1.3
WP
IPHT
TROu
READY
J ii::".'~~Pt.
PH2/DIRC
PH3
A6
~
DIN
Al
~
HDL
-:LY.
j;
liLT
MHZ)
A- 3
c..,..
J.tAL
0_ • •
·.,. ... .,C ..
t016.U
AUO'c"w:).C"'OII
.74. •..• 0«.
PROw.AOM
"....
110 TIMER
I
K[>eo ..~2;·D·S.L.AY
".···.0~::::"·~
C~
-=--==--=--l
-~=-;."~;=] ;::::;J
..... TI".·
.. ·""'I ....
.. :1 .. • ..... 1.
AOY'"NCI
:~~:
.ITC
.:;::~
[fi e 181
.
[_~~.LA_.w.'''.. o. W
:_~ .......... ~t~ ... ,.,0PS
~ .. _
"-'-'--'---
~04S
Puint of Sale Terminal with 8279
A -4
WEST COAST COMPUTER FAIRE
389
BOX 1579. PALO ALTO CA 94302
TESTING FOR OVERHEATING IN PERSONAL COMPUTERS
Peter S. Merrill, Consulting Engineer
1460 Diamond Street
San Diego, California 92109
Abstract
Overheating in personal computers can be determined inexpensively with temperature
indicating lacquers. Permissible chip junction temperatures and corresponding lacquer
temperatures are discussed. Results of tests on the Commodore PET 2001 Series SK
computer are presented.
Introduction
Excessive temperatures can cause errors,
intermittent operation, and can shorten the
operating life of semiconductor components in
personal computers. The existence of overheating
can be estimated easily with inexpensive temperature indicating lacquer which has an opaque dull
color when a drop is placed on the surface of a
component. The lacquer changes color irreversibly
or turns clear when the indicating temperature is
reached or exceeded. A variety of lacquers are
available (see Table A-3) with indicating temperatures throughout the range applicable to personal
computers. The lacquer can be removed with 99%
isopropyl alcohol. Stick-on labels are available
also, but these are generally more expensive to
use than lacquers.
Estimating Semiconductor Junction Temperatures
from Case Hot Spot Temperatures
The important semiconductor component temperature
is that experienced by the hottest junction on
the chi p. This june t ion tempe-ratur-e is -rela t-edto the temperature indicated by the lacquer on
the hot spot of the component case by the
relationship:
(1) Tj = Tc + jOc * W
where:
Tj = Chip junction temperature, °C.
Tc = Temperature at hottest spot on component case, °C.
jOc = Thermal resistance between junction
and hottest spot on case, °c per watt.
The parameter jOe is not necessarily identical to the overall thermal resistence of a component, (jec ).
Estimating Junction Temperatures of Power Semiconductors
- - - F"or-power semi conductors wi th hea t sink
flanges, /ic and jge values are approximately
equa 1 and manufacturers j9c values can be used
(with caution) for junction temperature estimates using equation (1). For example, consider a voltage regu 1ator wi th a "9 of 4°C per
watt which dissipates 10 watts ~; a personal
computer power supply. If a lacquer with a 66°C
indicating temperature on the mounting tab
remained opaque under
I
~WEST COAST COMPUTER FAIRE
390
conditions with a 25°C ambient temperature at sea level, then the following
junction temperature estimate can be made:
oper~ting
.0 = J.9c + 4°C/W
W= 10 watts
Tc < 66°C
J C
and
Tj < Tc + .0 * W
J c
Tj < 66 + 4 * 10
Tj < 106°C
The regulator junction temperature is less
than 106°C with a 25°C ambient temperature.
Estimatin~ Junction Temperatures of Integrated
Circuits 1n DIPs
Figure A-IA(l) is a plot of junction-tocase temperature differences vs. position
along the top of a Fairchild 723 voltage
regu 1alor in a-T4""p in ceramic"DI P. Thi spl"ot
was obtained from tests of the regulator using
the forward voltage characteristics of Zener
diode on the semiconductor chip to determine
junction temperature, and liquid crystals to
determine case temperature under operating
conditions. jOe is approximately 22°C per
watt (jOe is approximately SO% of the measured
jGcva1ue of 27°C per watt).
Figure A-IS is a plot similar to Figure
A-IA for the Fairchild 723 voltage regulator
in a 14 pin plastic" DIP. jOcis approximately
3SoC per watt (jOe is approximately 54% of the
measured jge value of 70°C per watt).
For personal computer testing, the
measured jOe values for the 723 14-pin DIPs can
be used for estimating junction temperatures of
devices in DIPs different than the 723 package
in lieu of better data. For natural convection
cooling and/or for 16 pin and larger DIPs,
junction temperatures calculated with the 723
jOe values may be different (but perhaps
higher) than actual values, but errors of less
than 10°C can be expected. Junction temperatures can be estimated from DIP case temperatures in the same way as for the power regulator example.
(2)
BOX 1579. PALO ALTO CA 9430~
Maximum Junction Temperatures
I.C. semiconductor manufacturers usually
specify maximum junction operating temperatures
of 125°C or higher. Temperature related
reliability can be expected to improve approximately by a factor of 2 with each 10°C decrease
in junction temperature. For personal computer
semiconductors, maximum junction temperatures
of less than the 100°C range may be appropriate.
Where high reliability is desired, maximum
junction temperatures of less than the 85°C
range may be selected.
Screening Out Cool Components
As a first step in evaluating semiconductor junction operating temperatures, all
cool semiconductors can be screened out.
Selection of the appropriate lacquer~indicating
temperature for ceramic and plastic DIPs is
outlined in Table A-I for a maximum DIP junction
temperature in the 85°C temperature range. The
power dissipation values of 0.9 and 0.5 watts
for ceramic and plastic DIPs represent maximum
values that would be expected for the hottest
DIP types used in personal computers.
Although plastic DIPs have higher thermal
resistances than ceramic DIPs, the maximum
expected power level of plastic DIPs is lower.
Thus, case temperatures for screening plastic
and ceramic DIPs are nearly the same. This is
shown in Table A-I. For screening out DIPs with
junction temperatures in the 85°C range or less,
a lacquer with indicating temperature of 66°C is
recommended.
Testing Hotter DIPs Which Do Not Pass the Screen
. Power levels of those components which do
not pass the screen (the lacquer melts) can be
determined from manufacturers' data (with caution)
and higher temperature lacquers can be applied to
determine maximum hot spot temperatures. Then,
junction temperatures can be estimated using
equation (1).
Where it is desired to decrease component
temperatures, changes in the cooling system may
be employed, such as adding air vent holes,
repositioning components or P.C. boards to cooler
locations or to augment convection, shielding or
cooling adjacent hot components (such as power
resistors), installing heat sinks, or adding a
fan. If a hot component is a power semiconducto~
circuit changes to reduce component power dissipation might be considered.
Example: Testing Component Temperatures in the
Commodore PET 2001 Series Personal Computer with
8K Memory
Screening all low temperature components:
66°C indicating temperature lacquer (Temp,l-) was
applied to all components including powar semiconductors. After operation for 3 hours in a
~WEST
COAST COMPUTER FAIRE
391
23°C ambient temperature at sea level while
running the program "Wrap Trap," no clear
lacquer was observed on any component except
for all of the MOS Technology 6550 RAMs. From
the values of Table A-I, it was concluded that
all DIP junctions, except for all of the 6550
RAMs, were cooler than approximately 85°C.
The 6550 RAMs, packaged in 24 pin plastic
DIPs, have typical power dissipations of 0-45
watts 1is ted by the manufacturer. Wi th a therma 1
resistance of 38°C per watt, a modification of
equation (1) gives a value of Tj - Tc of 17 C.
Thus, it is estimated that the junction
temperatures of the 6550 RAMs exceeded 83°C.
No further testing of the power components
was undertaken.
Testing the MOS Technology ~AMs: Additional temperature tests with 83°C and 76°C
indicating temperature lacquers were conducted
on the 6550 RAMs. No 6550 RAM case temperature
exceeded 83°C. DIPs 12, 14, and J3 had case
temperatures exceeding 76°C. (Those DIPs that
are hottest may vary according to the
particular program that is running.) As noted,
junction temperatures are expected to be 17°C
hotter than case hot spot temperatures.
Results: The temperature test results of
the PET computer are summarized in Table A-2.
It was concluded that the PET computer cooling
was adequate for the operating conditions
tested.
Concluding Remarks and Recommendations
The technique here outlined is convenient
and inexpensive for temperature testing of
personal computers. The accuracy of the technique is dependent on values for jOe which are
available for only 14 pin ceramic and plastic
DIPs. However, extrapolation of the 14 pin
results to other DIPs is expected to give
errors within acceptable limits.
It is recommended that the accuracy of
each particular lacquer used be verified on
dummy components in an oven using an accurate
thermometer. With some lacquers, detection of
melting after the component cools may be
difficult. Also, 1ac-quer indicating temperatures may change after long term exposure in
personal computer operating environments.
The author solicits comments on the
temperature testing technique, additional jOe
data, and information on additional suppliers
of temperature indicating lacquers and/or
labels.
Reference (1)
Test and Analysis for Development and Evaluatio~
of Computer Air Cooling Systems. P. Merrill.
Paper presented to Thermal session, 1978 NEPCON
West. February 28 - March 2, 1978.
Q
BOX 1579. PALO ALTO CA 94302~
..,
~
Table A-I.
Determining Lacquer Indicating Temperatures for Screening Out DIPs with Junction
Temperatures Less Than Approximately 85°C
CD
COMPONENT
I
Estimated
.0
J c
®
Maximum
Power
I
CD
Maximum
Tj-Tc
(j)*®
®
®
Maximum
Junction
Temp.
Tj
Maximum
Case
Temp.
@-@
Selected
Lacquer
Indicating
Temp.
°c
°C/W
W
°c
°C
°C
Ceramic DIP
22
0.9
20
85
65
66
Plastic DIP
38
0.5
19
85
66
66
Table A-2.
Summary of Temperature Test Results on Commodore PET Series 2001 with 8K Memory,
Serial No. 0010159. Ambient Temperature 23°C. Sea Level Altitude. Running the
Program "Wrap Trap.
II
COMPONENT
(1)
(2)
ESTIMATED CHIP JUNCTION TEMPERATURE °c
MOS Technology 6550 RAMs:
(la) 11, 14, J3
93 to 100
(lb)
83 to 93
11 through 8 and J1 through 8
except for (la) above.
All DIPs except for (1)
< 85
(approximately)
Note:
All power component and discrete semiconductor case temperatures were
less than 66°C .
.~=....~.-.=--~--=-.==-~.==========================~=. -=-=-~-=... ~. -.=-.-==~.-=.-~..~~~=-~..=... =-=-~-~-.~.=.-=....------------Table A-3.
List of Suppliers of Temperature Indicating Lacquers and/or Labels
Note:
Some of the temperature sensitive materials may be available from local
welding equipment suppliers
Markal Paint Company
270 North Washington Avenue
Chicago, Illinois 60612
Telephone: 312/826-1700
Omega Engineering Inc.
31 Knapp Street
Stamford, Connecticut 06907
Telephone: 203/322-1666
Teletemp Corporation
P.O. Box 5160
Fullerton, California 92635
Telephone: 714/879-2901
Tempi1 Division, Big Three Industries, Inc.
2901 Hamilton Avenue
South Plainfield, New Jersey 07080
Telephone: 201/757-8300
~WEST COAST COMPUTER FAIRE
392
BOX 1579, PALO ALTO CA 94302~
40~-.....,--
__- -......- _
30
CERAMIC DIP
20
10
0~0---2~-~A~-~.6~-~~
POSITION FROM LEADING EDGE ALONG
LENGTH OF PACKAGE. INCHES.
Figure A-IA
•
PLASTIC DIP
60
40
t
.() = 38 °CIW
20
J c
~---'------"---'~
o
o
.4
.6
POSITION FROM LEADING EDGE ALONG
LENGTH OF PACKAGE. INCHES.
Figure A-IB
TEMPERATURE DIFFERENCES BETWEEN JUNCTIONS AND
TOP SURFACES OF 723 VOLTAGE REGULATOR CHIPS IN
14 PIN DIPS WITH AIR FLOWING AT 250 FEET AND 500
FEET PER MINUTE ALONG LENGTH OF PACKAGE.
WEST COAST COMPUTER FAIRE
393
BOX 1579, PALO ALTO CA 94302
INTERFACING A 16 BIT PROCESSOR TO THE S-lOO BUS
John Walker, Partner, Marinchip Systems
16 St. Jude Road, Mill Va11.ey, CA 94941
(415) 383-1545
Introduction:
The M9900 CPU
Marinchip Systems has developed a
CPU board which allows the Texas
Instruments TMS9900 processor to be
used on the enormously popular 8-100
bus. This board, the M9900 CPU,
replaces the 8080 or Z-80 CPU board
in an S-IOO mainframe, and uses the
existing nemory and peripherals, or
al~ost any 8-100
com~atible
board.
The TMS9900 is an extremely powerful
processor, which features hardware
~ultiply
and divide instructions,
multiple sets of 16 general purpose
registers, addressing modes
including direct, indirect, indexed,
and auto-increment, and a context
switch mechanism that allows both
rapid interrupt response and user
extension of the hardware
instruction set.
The TMS9900 is a
single chip
processor
that
is
comparable to the PDP-II in most
respects, and exceeds it in several
important ways, notably the
provision of 16 registers instead of
8 and the fact that the user can
have as~any independent register
seEs· as he warits~ . and need noFhe . .
limited to hardware registers within
the CPU.
The purpose of this paper will be to
explore the problems of interfacing
a fully parallel 16 bit processor to
the S-IOO bus, concentrating on the
peculiarities
of
the 8-100 bus
structure and the solutions that
were developed to surmount them.
The
performance
tradeoffs
and
compromises made in the design will
be discussed, and
finally
some
recommendations regarding standards
for certain 8-100 signals will be
presented.
Since this paper will be discussing
signals generated by both the 8080
and the TMS9900 processors, as well
as S-IOO bus signals, some
conventions have been adopted to
lessen confusion. Signals generated
by either CPU chip are referred to
by the name given them by the chip
~ WEST COAST COMPUTER FAIRE
manufacturer.
Which chip is being
referred to should be clear from
context.
S-IOO signals will always
be suffixed by their pin number in
parentheses.
Active low signals
will be identified by a minus sign
following the signal name.
TMS-9900 Bus Structure
The task of interfacing one
processor to a bus designed for
another
involves designing logic
that will transform the
signals
generated by one processor into the
corresponding signals of the other
processor.
The
fact
that the
orocessors
have
different
word
lengths increases the complexity of
the solution, but introduces few
conceptual problems. First, let us
look at the signals used by the
TMS9900 processor.
The TMS9900 is
one of the simplest microprocessors
to interface, largely because there
is no multiplexing of information on
package pins.
Each pin has one
clearly defined function, so the
external
decoders
and
latches
·-------r-eciuired in man:YOther system-s may
be eliminated.
The price paid for
this simplicity is the
64
pin
package required to accomodate all
the
independent
signals.
The
signals which are relevant to memory
accesses are the address bus, data
bus, and control bus. The address
bus consists of 15 lines
representing bits 1 through 15 of
the address being referenced. Since
the TMS9900 uses 16 bit wide meroorv,
the 15 address bits permit
addressing of 64K bytes of memory.
(Byte addressing is
handled
by
masking data within the processor,
and is of no concern in interfacing
it.)
The data bus is a 16 bit
bidirectional bus
which
behaves
exactly like the data bus of an
8080, except that it is twice as
wide.
The control bus consists of
the
signals . that
control
the
external memory. These signals all
a9pear on their own dedicated pins,
so no status latching is required as
394
BOX 1579. PALO ALTO CA 94302~
...
for the 8080. The signal MEMEN- is
a low-true signal which indicates a
memory access is in progress.
When
it appears, a valid memory address
is present on the address bus.
The
signal DBIN indicates the direction
of the memory data transfer.
When
DBIN is high, the output drivers on
the 16 data bus lines have been
disabled to allow the memory to
place data on the lines in response
to a memory read. MEMEN- and DBIN
simultaneously active indicate
a
memory read, while MEMEN- active and
DBIN inactive indicate a
memory
write.
The TMS9900 generates a
write enable signal, WE-, which goes
active during a write cycle after
the address and data have
been
present
for
sufficient time to
satisfy the setup time requirements'
of
most
static memories.
This
signal allows easy interfacing of
memories to the processor, but is
not used in the M9900 CPU because
the memory cycle must be segmented
into two independent 8 bit accesses.
The READY and WAIT lines permit the
processor to delay to accomodate
slow memories.
After the address
has been presented to the memory bus
and MEMEN- goes active, READY is
sampled. If high, the memory cycle
will complete on the next clock
cycle. If READY is low, the WAIT
signal is brought active and the
processor will delay one cycle, at
which time it will test READY again,
and either proceed or delay again
depending on its state.
In the
M9900 CPU the READY line is used to
cause the processor to wait for the
two cycles on the S-IOO bus to be
completed.
The WAIT line is not
used, since the M9900 must generate
the S-lOO wait signal in response to
a wait state encountered on either
(or both) of the 8 bit accesses.
The above signals
comprise
the
complete memory interface of the
TMS9900, and seem to be the minimum
orthogonal set of signals allowing
control of variable speed memories
with
no external decoding.
The
TMS9900 has
no
complex
timing
relationships
between
signals.
Every signal
generated
by
the
processor is related to one of the
four clock phases, and there is a
uniform propagation delay, typically
20 nanoseconds, from the clock edge
to the signal.
The
memory bus of the 8080 is
similar in concept to that of the
9900,
but
more
complicated in
practice because the control signals
relevant to memory are divided into
command and control signals which
appear directly on processor pins
and status signals which are output
on the data bus during the first
state of each machine cycle.
A
memory cycle in the 8080 consists of
three or
more
machine
states.
During the first state, the 8 bit
data bus outputs the status bits
which indicate what type of cycle is
being performed.
The
processor
generates
a signal, SYNC, which
identifies the first state of the
cycle and may be used to latch the
status bits for use later in the
cycle.
The status bits, properly
decoded, identify the type of cycle.
The ones relevant to memory and I/O
cycles are MEMR, WO-, INP, and OUT.
The MEMR bit identifies a memory
read cycle (except when it comes on
during a halt cycle, which will be
ignored henceforth) .
The INP and
OUT bits identify I/O read and write
cycles,
respectively.
The
Wosignal is active when a write is
being done to either memory or an
I/O device:
external logic must
generate the write strobes for I/O
and memory based upon the OUT bit.
The rest of the status bits are used
to
implement the 8080 interrupt
scheme, to indicate when the machine
is halted, to flag accesses to the
stack, and to indicate when
an
instruction. byte is being fetched.
The command and control signals are
almost identical to those of the
TMS9900 in name and function.
The
DBIN signal indicates that the data
bus is in input mode to receive
data, WR- is the delayed output data
strobe, READY is the line that may
be used to stretch the length of a
memory or I/O cycle, and WAIT is the
signal
that
confirms
that the
processor is waiting.
The address
bus on the 8080 is 16 bits wide,
since the 8080 uses byte-addressable
memory, and the data bus is an 8 bit
bidirectional bus. I/O on the 8080
provides 256 ports.
An IN or OUT
instruction referencing one of these
ports causes a bus cycle identical
to a memory cycle, except that it is
identified as I/O by the presence of
the INP or OUT bits on the status
bus.
In an I/O cycle, the 8 bit
port address is presented on BOTH
the high and low 8 bits of the
8080 Bus Structure
-.... WEST COAST COMPUTER FAIRE
395
BOX 1579, PALO ALTO CA 9430~
control S-IOO lines.
The signal
PSYNC(76) is the SYNC signal from
the processor that identifies the
first state of each machine cycle.
PWR-(77)
is the 9rocessor delayed
write strobe. PDBIN(78) is the DBIN
signal from the processor.
Most
(but not all)
S-IOO boards only
drive the data in bus when PDBIN(78)
is high.
PINTE(28)
is the signal
from
the processor
(INTE)
which
indicates that the processor has
interrupts enabled.
PWAIT(27)
is
the WAIT signal that indicates the
processor is waiting for the READY
signal from a peripheral. PHLDA(26)
is the HLDA processo~ signal which
acknowledges a DMA request.
(Refer
to the section below on DMA control
signals for more information on the
PHLDA(26)
signal.)
The six command
and control lines may be forced to
high impedance by pulling the line
CC DSBL-(19) low.
address bus.
(This "address mirror"
feature
is intended to reduce bus
loading by dividing devices between
the
high and low bytes of the
address lines in system
without
address
buffering.)
The timing
relationships of the 8080 signals
are quite complicated. The 8080 is
driven with a two phase clock.
The
two phases must not overlap, and
have different widths. The command
and control signals may be delayed
as much as 120 nanoseconds from
their controlling clock edge, and
the address and data may not be
stable for as much as 220
nanoseconds after the clock edge.
S--lOO Bus Structure
The S-IOO bus is largely the result
of
simply buffering the signals
generated by the 8080 and directly
presenting them to the bus.
It will
help to break up the bus signals
into
groups
and
discuss
them
independently.
Status Lines.
When
the
status
signals appear on the processor data
bus during the first state of a
cycle, they are latched and
presented on a .separate set
of
status lines on the S-IOO bus. The
status bus remains stable for the
duration of the machine cycle. The
SMl(44) line indicates the current
cycle is fetching the first byte of
an instruction.
The SOUT(45)
bit
identifies an output cycle
(initiated by the OUT instruction).
The S-INP( 46)pirtide-ntif ies an inpu"t
(IN instruction)
cycle.
SMEMR(47)
indicates a memory read cycle, and
SHLT~(48)
indicates
that
the
processor is halted. The SWO-(97)
signal
indicates
a
write-type
operation:
if SOUT is low, it is a
memory write.
If high, it is an I/O
write.
The
SINTA(96)
signal
identifies the special 8080 cycle
that responds to an interrupt by
requesting an instruction to
be
executed by the processor, and the
SSTACK(98) signal flags the current
memory cycle as referring to the
stack.
The status bus signals may
be
forced to high impedance by
pulling the STAT DSBL-(18) line low.
Clocks.
There are
three
clock
s1gnals on the S-IOO bus. The first
two are the Phase 1 and Phase 2
processor clocks, presented as TTL
levels, PHI (24)
and PH2 (25) .
The
third signal
is named CLOCK-(49),
and is. an inverted Phase 2 clock,
delayed about 60 nanoseconds
(an
artifact of the original
Altair
_.QE;.£Li9-nJ ..., __ .__ .~()J_h .. PH2(? 5) ... and
CLOCK-(49)
are - commonty" used
as
timing
references
by peripheral
boards.
Address Lines. The 16 address lines
appear on the bus, buffered directly
from the processor address lines.
The line ADDR DSBL-(22) will cause
the address lines to go to high
impedance when pulled low.
Data Lines. The 8 bit bidirectional
processor data bus is split by logic
on the CPU board into an 8 bit data
in bus and an 8 bit data out bus on
the S-IO 0 bus. Hhether the data iT:
bus is appl ied to the processor dati'
bus is controlled by the DBIN signa]
from the processor. Since the data
out lines are dediqated to output,
their drivers are always on, except
if disabled by pulling the line DO
DSBL-(23) low.
Command and Control Lines.
direct
control
lines
from
processor appear on the command
WEST COAST COMPUTER FAIRE
Memory Control Lines.
These lines
are a collection of signals relating
to memory and I/O cycles.
The
PRDY(72)
line is a~plied through a
buffer to the READY pin on the 8080,
and
is used by slow memory and
peripherals to stretch a cycle that
references
them.
The MWRITE(68)
The
the
and
396
BOX 1579, PALO ALTO CA 94302
signal is a copy of the PWR-(77)
write strobe that only goes low on
memory writes (e.g., when SOUT(45)
is low). This is the most commonly
used write control signal in memory
boards.
It is also quite confusing
in that many S-IOO machines do not
generate it on the CPU board. The
Altair and IMSAI,
for
example,
generate this signal on the front
panel board, with the result that
memories which require this signal
will not run if the front panel is
removed.
To compensate for this,
many of the "reset and go" PROM/RAM
boards contain logic to generate
this signal, since they are
replacing
the front panel in, a
system. This signal is logically a
CPU
signal,
and really has no
business being generated anywhere
else, but the weight of history is
great, so for
the
time
being
confusion will reign. The
UN PROT (20) , PROT(70), and PS-(69)
signals respectively clear, set, and
contain the status of the memory
protect flip-flop on the currently
addressed
memory
board.
Since
memory protect is little used, they
will not be discussed further.
The
PHANTOM-(67)
signal is used by many
systems and boards to allow
an
automatic
power-on start from a
nonzero address. The memory board
at address zero is strapped to be
deselected regardless of the address
on the bus when PHANTOM-(67) is low.
A PROM board then can, when
triggered by a reset signal, disable
the memory at address zero, enable
itself, and cause the CPU to execute
instructions from the PROM
even
though
the
CPU "thinks" it is
executing from address zero.
The
PHANTOM-(67) line is normally turned
off once the processor has jumped
into the PROM itself. The memory at
address zero may then be referenced
normally.
vectored
interrupts
on the CPU
board,
the signal PINT- (73)
wa s
defined
to
permit
a
separate
vectored interru~t controller -board
to request an interrupt from the
~rocessor .
In such a system i
t-hp
vectored interrupt controller board
received the 8 vectored interrupt
lines, chose the highest priority,
then requested an interrupt using
the PINT-(73) line and supplied the
processor with an interrupt
instruction when the SINTA(96) line
went high.
Because of the way the
8080 CPU interrupt structure worked,
systems without a vectored interrupt
board could provide a single level
interrupt simply by pulling
the
PINT-(73) line low.
Front Panel Signals. The following
signals
provide
the
interface
between the front panel and the
boards on the bus.
Since
some
systems have complex front panels
and others have only a reset switch,
most of these signals may be absent
in a particular system.
The only
signals in the front panel group
present in all S-IOO mainframes are
PRESET-(75) and POC-(99).
PRESET-(75) is pulled low when the
reset switch on the front panel is
activated. The CPU board normally
responds to PRESET-(75) by resetting
the processor and pulling POC-(99)
low.
POC-(99)
is also driven by
logic that keeps it low
on
a
power-up operation until the supply·
voltages have stabilized. Thus,
if
peripheral boards use POC-(99) as
their clear signal, they will be
properly
reset
both by initial
application of power to the system
and
by
the reset switch.
The
following signals are present only
in
those systems with elaborate
front panels. The RUN(7l) signal is
used to indicate that the front
panel RUN/STOP switch is in the RUN
position.
The SSW DSBL-(53) signal
is used by some front panels to
implement data input to the
processor from the
front
panel
switches.
The EXT CLR-(54) signal
resets I/O devices independent of
the processor.
What it does and
when it is activated depends upon
the peripheral and mainframe being
examined. The SS(2l) signal is used
by certain front panels to implement
a single step function.
It allows
the
front
panel to place data
directly on the processor data bus
(this requires a connection from the
Interrupt
Signals.
The
lines
VIO-(4)
through VI7-(11)
are the
vectored
interrupt
requests.
Pulling one of these lines lo~ will
cause an interrupt at the
corresponding level, assuming that
interrupts
are
enabled and the
processor is not servicing a higher
priority interrupt. VIO-(4) causes
an interrupt which is not
distinguishable from a reset of the
processor, and hence should be used
with discretion.
Since the early
S-lOO processors did not provide
WEST COAST COMPUTER FAIRE
397
BOX 1579, PALO ALTO CA 94302
front panel to the CPU card).
The
XRDY(3)
signal allows the front
panel to stop the processor without
interfering with the PRDY(72) signal
used by memory and peripherals. The
typical CPU ANDs XRDY and PRDY to
develop the READY signal for the
BU80.
ground depends upon the mainframe.
Pin 55 is defined as chassis ground,
but very few mainframes actually
connect this pin.
The reader might-have noticed that
it took a lot more words,
explanations, and hedging to explain
the 5-100 bus than to explain the
BOBO processor signals themselves.
This is the case because one of the
many
different
CPU
boards
or
"compatible" I/O boards gives lie to
just about any definitive statement
regarding the bus one might choose
to make (except possibly that it has
100 pins) .
DMA Control Signals. Direct Memory
Access (DMA) can be implemented on
the S-lOO bus through use of the
PHOLD-(74) signal. When this signal
is
pulled
low,
the
processor
suspends execution at the end of the
current instruction, and raises the
HLDA line, which appears on the bus
as PHLDA(26).
Once the requesting
peripheral sees this signal, it can
pull the lines STAT DSBL-(lB), CC
DSBL-(19), ADDR DSBL-(22), and DO
D5BL-(23)
low and assume control of
the bus itself.
It should be noted
that pulling the CC D5BL-(19) line
low forces the PHLDA(26)
signal
itself to high impedance. If this
signal is being used as a direct
enable
by
the
DMA board, its
floating may lead to havoc,
especially because line 25 right
next door is the Phase 1 2MHZ clock,
which puts a lot of noise on the
floating line.
Pulling up PHLDA(26)
to +5 with a resistor neatly solves
this p~oblem, but few CPU boards do
this.
Interfacing to the S-lOO Bus
The job of interfacing the TM59900
to the 5-100 bus fell largely into
three phases:
mapping the signals
from the 9900 bus to the 5--100 bus,
defining the subsystems that would
make up the CPU card, and logic
design and debug. First of all, the
memory cycles of the TM59900 and the
BOBO were drawn out side by side,
and a mapping was defined between
the two.
It was found that every
signal corresponded in both
directions closely enough that once
16 bit TM59900 bus was multiplexed
onto the B bit 5-100 bus, all the
other signals could be translated.
In this phase of the design, it was
decided to implement 5-100 I/O by
pr2viding memory mapped I/O in a
page of th~
TMS9900
addressing
space.
This was done because the
unique TMS9900 I/O scheme did not
lend
itself
to
adaptation
to
existing 5-100
peripherals,
and
because the memory bus interface
that had to be designed for the
TM59900 already contained all the
logic required to implement the 1/0
cycle.
Once it became clear that
the problem
was
solvable,
the
following subsystems that made up
the TM59900 CPU board were defined.
Power and Ground Lines. Power to
the 8-100 bus is-unregulated, sinGe
each board regulates the raw supply
to its desired logic levels. Pins 1
and 51 supply a nominal +B volts.
Pin 2 supplies +16 volts, and pin 52
supplies -16 volts.
There are no
specifications and few conventions
about the voltages actually found on
these pins. Specifically, some very
high
voltages
occur in certain
mainframes.
If the +B line goes to
12 volts, the dissipation in the on
board regulators may exceed
the
capacity
of
their
heat sinks,
forcing thermal shutdown of
the
regulator and malfunction of the
board. One might point out as an
aside that since these supplies are
unregulated they contain ripple, and
at least one CPU board counts on
this!
The ripple is amplified with
an op-amp and used to provide a line
frequency real time clock. Pins 50
and 100 are the common ground return
for all supplies, and the logic
ground reference.
Whether or not
this is tied to safety (green wire)
WEST COAST COMPUTER FAIRE
Clock Generator.
This
subsystem
contains the generator for the four
phase clock required by the TM59900
and the logic that transforms the
9900 clock pulses into a
synchronized
replica of an B080
clock. A properly delayed inverted
signal is generated for the
CLOCK-(49) signal.
Address Bus Driver.
takes the address
398
This subsystem
bus of the 9900
BOX 1579, PALO ALTO CA 94302
and drives the address lines on the
S-lOO bus.
Depending upon whether
the address on the address bus is
within the memory mapped I/O region,
this logic either drives the address
directly onto the bus (for normal
memory accesses) or places the low 8
bits of the 9900 address bus on both
the high and low 8 bits of the S-lOO
address lines
(for I/O accesses) .
For normal memory references, the
upper 15 address bits on the bus are
supplied by the 9900 chip, and the
low order bit is generated by the
memory bus controller subsystem (see
below) .
latch data from the 8-100 bus at the
same time an 8080 would have sampled
it. -When the memory bus controller
gets the PRDY(72) for the final byte
of a transfer,
it raises READY to
the 9900, allowing it to proceed
with its execution. By anticipating
ready it is poSsible to complete the
16 bit memory cycle in the same time
an 8080 would have taken to fetch
two bytes (six machine states).
I/O
cycles take three machine states.
The PINTE(28) signal, which
indicates
that
interrupts
are
enabled in the 8080, is always high,
since the 9900 does not provide this
status on an external pin.
The
PHLDA(26) signal, which acknowledges
a DMA request is simply the HOLDA
pin of the 9900 buffered to the bus.
A pull-up resistor is provided on
this line to prevent the "floating
PHLDA(26)" problem mentioned above.
The DMA request line, PHOLD(74) , is
latched before being passed to the
HOLD - line on the 9900. While this
signal is internally latched in the
9900, the internal latching is done
at a different time in the 9900 and
the 8080, so the external latch
accomodates any device that counts
on the 8080 r s timing. This may be
paranoid, but better to be over
compatible than to discover the cpu
doesnrt work with somebodyrs ".sloppy
disc" controller.
Data Bus Driver.
This subsyst~m
contains the drivers that route data
to and from the data in and data out
lines.
The data out lines
are
driven by two sets of drivers that
can route either the high or the low
byte of the 9900 16 bit data bus to
the data out lines.
The data in
lines are received by two 8 bit
latches that save the data appearing
on the data in lines for parallel
presentation to the 9900 as a 16 bit
data
word.
In addition, extra
drivers provide the
data
paths
necessary to use the data in and
data out lines as a 16 bit parallel
bidirectional data bus for use with
special Marinchip high-performance
memories
(see the description of
"Sixteen bit mode" below).
Status Bus Generator. Logic decodes
signals from the 9900 and 'the memory
bus controller to
generate
the
status
bus
signals.
SWO-(97),
SHLTA(48) , SOUT(45), SINP(46) , and
SMEMR(47)
are generated compatibly
with the 8080. Since SSTACK(98) and
8INTA(96)
represent concepts not
applicable to the 9900, they are
always low. On an 8080 system, the
status bus signals may also be read
from the data bus when P8YNC(76) is
high (an artifact of the way the
808G. supplies these signals). The
M9900 CPU does not include logic to
place thes~ signals on the data bus,
since it was felt that no board
designer would count on this quirk
of the 8080.
Few do.
Memory
Bus
Controller.
This
subsystem is the heart of the M9900
cpu.
When a memory
access
is
initiated by the TMS9900, the memory
bus controller is started.
Depending upon whether the address
presented by the 9900 is within the
memory mapped I/O region or not, the
controller generates an I/O or two 8
bit
memory
cycles.
While the
controller is operating, the READY
line of the 9900 is held low to
force it to wait for the data to _be
transferred on the 8-100 bus. The
memory bus controller is a random
logic implementation of the 8080
memory timing logic, which generates
PSYNC(76),
PWR-(77),
MWRITE(68),
PDBIN(78), and PWAIT(27)
as if an
8080 were directly connected to the
bus.
PRDY(72) is honored with the
same timing as the 8080 expects.
The memory bus
controller
also
generates the signals to the data
bus drive subsystem that route data
to and from the S-lOO bus and the
9900 data bus, and the strobes that
~ WEST
COAST COMPUTER FAIRE
Reset and Load Generator. The reset
and
load
generation
subsystem
generates
the
two
nonmaskable
interrupts
for
the
9900.
The
subsystem is designed so that the
reset switch on the S-lOO mainframe
may generate either signal.
The
9900 reset traps to address zero,
399
BOX 1579, PALO ALTO CA 9430~
early status signals from the M9900
caused the one-shot to expire before
the processor sampled PRDY(72). The
final M9900 design delays the status
bus
signals
for
compatibility.
Since there are many ways to decide
what kind of cycle is being
performed from the signals on the
bus, there are correspondingly many
ways to time the cycle.
It seems
unreasonable
to
expect
every
processor to reproduce all the 8080
signal timing relationships exactly,
so a simple definition of what is to
be used would be a great boon to CPU
and peripheral board designers both.
It would be nice if we decided to
make MWRITE(68) universal. Then we
could count on SINP(46), SOUT(45),
SMEMR(47), and MWRITE(68)
as four
simple signals that identify the
current cycle.
while the load causes a trap to
address FFFC, so by strapping the
CPU board properly, the user may run
with ROM at either end of memory.
The reset and load subsystem also
decodes the 9900 instructions that
force a reset or load operation, and
generate
signals
equivalent
to
performing the actions
via
the
external switches. A power-up reset
circuit causes the CPU to start
automatically
at
the
selected
address after power is stable.
The
power on clear signal, POC-(99), is
generated.
Interrupt Controller.
The
9900
features 16 level priority
interrupts within the chip, so only
a
latch to stabilize the eight
interrupt requests on the S-IOO bus
and a priority encoder are required
to provide 8 level interrupts.
The
other 8 9900 interrupts were not
used, and the 8080 trick of
requesting
an interrupt via the
PINT-(73) line was not implemented.
The user can easily enough strap
PINT-(73) to one of the vectored
interrupt lines if this is required.
DMA Protocol. The whole area of DMA
protocol on the S-IOO bus is very
loosely defined. The statement that
the DMA device must keep PHOLD-(74)
low until the processor responds
with PHLDA(26)
would ease one area
of confusion.
The existence
of
separate disable lines for each of
the buses is too
ingrained
in
ingenious bootstrap schemes to do
away with at
this
late
date,
however, some statement such as "The
disable lines will never be
activated unless the PHLDA(26) line
is active" would be a step in the
.right direction.
Once the problem had been subdivided
into the above subsystems and the
functions of each subsystem clearly
defined "all" that remained was to
design
the
logic
within
each
subsystem.
This
was
done,
a
prototype
was
built,
and
the
i-nev i-t-able debug phase was __he.gun.
Other- than straightforward design
errors, several problems began to
crop up which seemed to indicate
problems inherent in
the
S-IOO
standard itself: problems that will
beset any designer of a non-8080 CPU
board.
It is these problems that
will be discussed below:
Utility Clocks.
An 8080 on the
S-IOO bus provides perfectly good 2
Mhz clocks on three separate pins.
Boards which need a
clock
for
general timing such as generating
communications
baud
rates
or
implementing a real time clock have
no particular reason to choose one
over the other. This is a problem
when trying to use a processor that
runs at a speed other than 2 Mhz.
We should define PHl(24) and PH2(25)
as CPU clocks which run at the
processor clock rate and to which
memory timing is relative.
CLOCK-(49) should be defined as a 2
Mhz utility clock signal which bears
no specific timing relationship to
the CPU clock.
Wait State Timing Reference.
In
peripherals that stretch the bus
cycle with the PRDY(72)
signal,
there is no convention regarding
which pin defines the start of a
memory or I/O cycle. Some boards
use PSYNC(76), others use the status
bus
signals or MWRITE(68).
The
M9900 CPU originally generated the
status bus signals immediately at
the start of the memory cycle rather
than waiting 200 nanoseconds like
the 8080, and this caused
some
boards to miss their wait states
because they were starting one-shots
to time the wait state when the
status bus signals changed.
The
WEST COAST COMPUTER FAIRE
Unique Features of the Design
The
M9900 CPU has succeeded in
interfacing the TMS9900 to the S-IOO
bus.
The CPU is a single board
400
BOX 1579, PALO ALTO CA 94302
system that will run with
most
existing
S-lOO
peripherals
and
memories.
It is, in fact, more
compatible
with 8080 peripherals
than many Z-80 boards, particularly
in interfacing to dynamic memories.
The major innovation in S-IOO bus
architecture introduced by the M9900
CPU is its ability to use the S-IOO
bus
for
16
bit parallel data
transfers.
external devices within a 4096 bit
address
space.
This
approach
permits peripheral chips to be built
with few costly pins and no external
logic.
For example, the UART for
the 9900 family is an 18 pin device,
compared with the 28 to 40 pins
required with other microprocessors.
Since the CRU I/O was not used in
interfacing to the S-IOO bus, it was
simply brought to the bus on three
unused pins. Future 9900
peripherals may be built to tak~
advantage of this unique I/O system.
Sixteen
Bit
Mode.
Obviously,
forcing a 16 bit parallel processor
to do all of its memory accesses in
byte-sized
chunks
reduces
its
performance compared to a
fully
parallel system.
In most
applications, the increased power of
the TMS9900 instruction set results
in such a performance gain that the
overhead introduced by the extra
memory accesses is overcome.
For
those applications which require the
greatest CPU power, the M9900 CPU
allows the use of 16 bit parallel
memory in the S-IOO chassis.
The
key to this option is the signal
that Marinchip Systems has
designated SXTN-(60}. When a memory
cycle starts, if this signal is
pulled low by the addressed memory
board within 125 nanoseconds, the
SYNC cycle will be aborted, and the
memory transfer will be performed 16
bits parallel, using the S-IOO data
out bus for the high byte and the
S-IOO data in bus for the low byte.
A memory cycle performed in 16 bit
mode will complete in one
microsecond
(assuming
no
wait
states), compared to three
microseconds if conventional S-IOO
memories are used. This can result
in performance gains
approaching
three-to-one.
Since
the memory
itself informs the processor if it
is capable of 16 bit operation, it
is possible to mix conventional 8
bit and 16 bit memory in the same
chassis. Obviously, a 16 bit memory
is a rather special beast,
especially so if it is capable of
operating in 8 bit mode for DMA
transfers.
None the
less,
the
design
of
such a memory is a
straightforward task
beside
the
design of the M9900 CPU itself.
Summary
The M9900 CPU is a happy marriage of
the advanced 16 bit architecture of
the TMS9900 and the widely accepted
S-IOO bus.
The interfacing of the
9900 revealed several
characteristics and problems of the
S-IOO bus that
deserve
to
be
standardized.
The design of the
M9900 CPU took a very conservative
approach to the S-IOO bus, and tried
to generate
virtually
all
the
signals provided by an 8080, with
the
same
timing
relationships.
Careful work by a standards group
would have permitted a much more
straightforward
design, and will
greatly ease the task of others who
wish to interface foreign processors
to the bus. The extensions to the
S-IOO bus made by Marinchip Systems
were to provide the unique
performance and features of the 9900
within the existing bus
architecture.
The
author would
welcome
communications
regarding
standards for 16 bit (and wider)
operation on the S-IOO bus.
CRU I/O Signals.
Little has been
said about the TMS9900 r s
unique
bit-addressable
I/O
scheme, the
Communications Register Unit (CRU).
This mechanism performs bit-serial
transfers from the processor
to
WEST COAST COMPUTER FAIRE
401
BOX 1579. PALO ALTO CA 94302
SINGLE CHIP MICRUCOMPUTERS FOR THE HOBBIEST
John Beaston, Microcomputer Applications
Intel Corporation
3065 Bowers Avenue
Santa Clara, California 95051
Abstract
Recent advances in solid state technology
have allowed integrated circuit manufacturers
to place all the elements of a computer system
on a single silicon die. Although most of
these single chip microcomputers are ROM
(Read Only Memory) based and primarily
intended for high volume users, EPROM (Erasable,
Programmable ROM) based versions have also
been developed to overcome the high development and rework costs associated with their
ROM counterparts. This EPROM technological
fallout opens up a whole new world of
versatile, low cost, dedicated control for
the computer hobbiest. As an introduction
to single chip microcomputers, a specific
microcomputer, the EPROM based Intel 8748,
is discussed in detail with both the hardware
and software aspects explained. Finally,
a typical application example is presented.
Introduction
One of the few areas not often addressed
by computer hobbiest is that of control
applications for-microprocessors. A s_arnpJe
of such applications might include burglar/
fire alarms, radio controlled models,
printer controllers, and ham radio accessories.
There are probably several reasons for the
interested hobbiest not tackling such projects.
The greatest deterent is the non-availability
of specialized hardware. The hobbiest using
an S-100 based computer as a burglar alarm
is probably guilty of processor overkill,
however deSigning and building a dedicated
microprocessor based alarm system would be
expensive and very hardware intensive, so
there really has been no alternative.
Portability is another consideration. Many
control applications like radio controlled
models preclude the use of most microprocessor
based systems simply due to high parts count
and power supply demand. Handling multiple
tasks is also a problem. If one processor
is to control several tasks such as a printer
and keyboard in addition to the alarm system,
the software must be written with this in
mind. Adding additional tasks is usually
a difficult task in itself. And finally,
it is well known that even a minimal system
containing the required amount of I/O
~ WEST COAST COMPUTER FAIRE
and memory for the usual control application is not inexpensive. With these
deterents, it is no wonder that hobbiests
have not pursued the more control-oriented
applications. But never fear, a need has
been seen and filled.
Recent advances in semiconductor
technology have enabled integrated circuit
manufacturers to pack all the elements of
a control-oriented microprocessor system
on a single silicon die. These microcomputers contain a CPU, RAM, EPROM/ROM,
I/O, timers, and a clock generator all
on one chip. Most of these microcomputers
are capable of stand-alone operation while
some operate as a slave processor to a more
powerful master processor.
These microcomputers remove all of
the deterents mentioned earlier. They have
obviously low parts count. Their power
requirements are correspondingly reduced.
Multi-tasking is easy since each task may
have its own controller. And their cost
is significantly below that of a micro_________ Pn)<;:ess9t bilsed. system wi thequi~a lent
capabilifies. \·fifh the-s-e deterents -rem()ved
those hobbiests interested in control
applications can now come "out of the
closet" and invent and build to their
heart s content.
I
Desirable Control Characteristics
As an introduction to single chip
controllers, let's examine several
characteristics which are desirable in
single chip control applications.
402
1.
Single 5v supply
2.
Code efficient instruction set
3.
Timing control
4.
Interrupt capability
5.
Expandable memory and I/O
6.
Compatible ROM/EPROM versions
BOX 1579, PALO ALTO CA 9430~
The single supply characteristic is
almost universal in the present and upcoming
generation of both microcomputers and
microprocessors. Its advantage is obvious fewer power supply hassles.
All instruction sets, whether in microcomputers or microprocessors should be code
efficient. However, this characteristic is
particularly important for single chip
controllers. With all memory on-chip, each
byte is precious. So every method to conserve code is desirable. One method of
achieving code efficiency is to limit the
addressing range to, say, 4K bytes rather than
the usual 6SK. (Since control applications
rarely require more than lK of program
memory, this is not really a restriction ..)
This allows memory reference, Jump, and Call
instructions to not have to carry the cumbersome 16 bit address with it. Theseinstructions can now be compacted into 2 bytes
rather than the 3 bytes found in microprocessor
coding.
Several additional characteristics of
the instruction set are important for code
efficient control. Many control applications
require only one bit wide I/O; switches are
read, relays and lamps are driven.. Thus the
bit manipulation capabilities of the instruction set are important. The instruction
set should be able to set and reset individual
output port bits and to read and test
individual input port bits.
There are times when neither the onchip memory nor I/O is sufficient for the
application. For these times, an expansion
bus should be provided. This bus should
typically have a multiplexed address and
data structure to save valuable package
pins. It should provide a microprocessorlike structure to allow interfacing to
standard RAM and ROM/EPROM. It should also
allow the use of intelligent peripherals
such as USARTs and PPIs to supply functions
the controller does not have time or code
space to implement.
The final characteristic is the one
which has the greatest impact on the
hobbiest: compatible ROM and EPROM
versions. At least two manufacturers are
producing, or· are about to produce, EPROM
equivalents of their ROM controllers. The
ROM versions are for high volume productio~
However, users are usually reluctant to
commit code to ROM before it has been fully
debugged. To allow the complete debugging
of both the hardware and software, the
EPROM equivalents were developed. Now the
user can develop his hardware and software
using the EPROM version and know it will
still work once committed to ROM. This
EPROM/ROM compatibility is a significant
asset to the high volume user.
Some controllers are often called upon
to drive displays and read keyboards. Therefore, the instruction set should have binary
and BCD arithmetic capabilities. Decimal
adjust and nibble swapping instructions
provide an efficient means of handling BCD
data.
It is this compatibility byproduct
which is a boon to the hobbiest. Using
the EPROM based single chip controllers,
specialized hardware and software can be
developed for applications with a volume of
one. This can be done at a cost significantly lower than what would be required
utilizing a microprocessor based system.
The third control characteristic is
timing control. Timing control involves two
functions: sequencing and event counting.
In sequencing, the controller generates
accurate time intervals or pulse streams to
replace cams and gears in mechanical systems,
or for external timing to multiplex displays,
etc. In event counting, the controller is
used to count events or to keep track of an
external timing source such as 60Hz for
time-of-day computations or where long time
intervals are to be maintained. In most
microcomputers, the timing control function
is implemented with a programmable on-chip
timer/counter. Having the timer on-chip
decreases parts count and alleviates the need
for time consuming software delay loops and
port polling.
The Intel 8748
Let1s look at one particular microcomputer, the Intel 8748, to see how
these control oriented characteristics are
actually implemented. First, let1s discuss
the 8748 1s general features.
Key features of the 8748 are:
1. Single Sv supply
Going almost hand in hand with timing
control is interrupt capability. Timing
WEST COAST COMPUTER FAIRE
control frequently involves interrupting
the processor to execute a specific task,
i.e., time-of-day computation. Also, since
single chip controllers are usually used
in real-time asynchronous systems, interrupt capability is often mandatory to
respond quickiy to asynchronous events.
Interrupt capability is code efficient
since it eliminates the need for lengthy
software polling loops.
2.
403
2.S
~s
cycle time - all instructions
BOX 1579, PALO ALTO CA 94302
execute in 1 or 2 cycles
3.
96 instructions - 70% single byte
4.
1Kx8 UV erasable/programmable program
memory - single pulse programming
and single location programming
5.
64x8 RAM data memory
6.
26 I/O lines
7.
8 bit interval timer/event counter
8.
single level interrupt
9.
easily expanded memory and I/O multiplexed bus
Of course, if the second bank is not used,
those locations are still addressable as
general purpose RAM. RAM locations 8-23
serve a dual purpose in that they contain
the program counter stack during subroutine calls. This provides a maximum
nesting of 8 subroutine levels. If less
than 8 levels are used, the remaining stack
locations are available as general purpose
RAM.
Since the RAM pointers are 8 bits wide
they are capable of addressing 256 RAM
locations. If necessary, this additional
RAM may be easily added thru the expansion
bus.
The 8748 contains 26 lines which can
be used as either input or outputs. These
26 lines are arranQed as 3 8-bit ports plus
2 test inputs. Ports 1 and 2 have identica
characteristics. They are called quasibidirectional. This structure allows each
individual line to serve as an unlatched
input, a latched output, or both, even
though the outputs are statically latched.
The third 8-bit port is BUS. BUS is a
true bidirectional port with associated
input and output strobes. If bidirectionality is not needed, BUS may serve as
either a non-latching input port or a
statically latched output port. Input and
output cannot be mixed as with the other
ports however.
10. on-chip clock generator - xtal, or RC,
or lC
11. single step function
The 8748 5 resident program memory
consists of 1024 words 8-bits wide which are
addressed by the program counter. This memory
is UV erasable and user programmable.
Individual words are programmed with a single
programming pulse. There is no restriction
on how many words may be done during a programming session. Three locations in the
program memory have special importance;
locations 0, 3, and 7. Reset vectors the
program counter to location O. An external
interrupt vectors the program counter to
location 3. And a timer interrupt causes
a vecto~to lqcatio~ 7.
1
BUS also forms the expansion bus
allowing interface to external RAM, ROM/
EPROM, and peripherals. Four control
--signa-l s are provided: RO tRead),-WR
(Write), PSEN (Program Store Enable), and
ALE (Address latch Enable). When used for
expansion, the BUS lines (OBO-7) are
multiplexed with address and data. ALE
provides a means for external circuitry to
de-multiplex the bus when standard RAM,
ROM/EPROM, and peripherals are used.
Multiplexed combination peripherals such
as the 8155 Combination RAM/I/O/Timer and
8755 Combination EPROM/I/O, interface
directly. PSEN is used to enable external
program memory. RO and WR are the normal
control lines for RAM and peripherals.
While the resident memory is 1K bytes,
the 8748 program counter allows expanded
addressing up to 4K bytes. External
ROM/EPROM furnish the additional memory by
way of the expansion bus which is discussed
shortly.
The resident data memory is organized
as 64 words by 8 bits. All 64 locations are
indirectly addressable through either of two
RAM pointers which reside at addresses 0 and
1 of the RAM array. In addition, the first
8 locations (0-7) of the array are designated
as working registers. These registers are
directly addressable and are usually used to
store frequently accessed intermediate results. Locations 24-31 are also designated
as a second set of working registers. These
two sets of working registers are selected
using a Register Bank Switch instruction.
This second bank may be used as an extension
of the first bank of may be reserved for
use during interrupt service routines. The
first two locations in the second bank also
serve as RAM pointers for indirect addressing.
~ WEST COAST COMPUTER FAIRE
The TO and Tl pins serve as testable
inputs. These pins allow inputs to cause
program branches wi thoutthenecess i ty to
load an input port into the accumulator.
TO also serves as a clock output whenever
an ENTO ClK instruction is executed. Tl
serves as the event counter input when the
on-chip counter is used in that mode. When
neither of these special modes are being
used, TO and Tl are general purpose testable inputs.
404
BOX 1579, PALO ALTO CA 9430~
the port is first read into the accumulator. The instruction set includes
instructions to jump on the condition of
any bit in the accumulator. One of these
instructions is then executed. Thus the
condition of switches can be read and the
appropriate action taken. Also included
is an instruction for n-way branches based
on the contents of the accumulator.
The contents of the program memory location
pointed to by the accumulator are substituted for the lower 8 bits of the
program counter. This results in an
indirect jump within a page of program
memory.
The INT (INTerrupt) pin is another testable input. It may serve a function identical
to TO and Tl or it may be used as an interrupt
input in the traditional sense. In the
interrupt sense, activating INT causes a
"jump to subroutine" to location 3 in the
program memory. As in any CALL, the program
counter and status word are saved on the
stack. Location 3 generally contains an
unconditional jump to the interrupt service
routine. At the completion of the routine,
a RETR instruction is executed to return
the program to its pre-interrupt location.
Of course, the instruction set contains
instructions to disable and enable interrupts under software control.
Loop control is accomplished with
the DJNZ instruction. This instruction
implements a decrement and jump if not
zero function. It may be applied to the
contents of any working register. This
instruction saves code space and shortens
the timing spent in various software loops.
The final hardware element to discuss
is the on-chip timer/counter. The 8-bit
counter is presettable and ~eadable
through the accumulator. Instructions are
provided to load, read, start, and stop
the counter. The counter contains an overflow flag. This flag is set whenever the
count raps around from FFH to OOH. The
flag may be tested or used as an interrupt
source. A counter interrupt vectors the
'program to location 7 in the program memory.
The counter interrupt output is internally OR'd with the external interrupt pin,
INT. The counter can be configured to
operate as either an event counter or as
an interval timer. These modes are
selectable via the software. In the
event counter mode, the Tl input supplies
the events to be counted. In the interval timer mode, the internal clock (ALE)
is prescaled by 32 and is used as the counter
input. In either mode, the load, read,
start, and stop instruction control the
operation of the counter.
The MOV P3 A,@A instruction eases
look-up table handling. This instruction
uses the accumulator as the offset to
fetch a byte from page 3 in the program
memory. This effectively allows the CPU
to "look-up" the corresponding code (an
ASCII character, for instance) in a single,
code-efficient operation.
Special instructions are provided for
BCD and binary arithmetic. The DA A
instruction decimally adjusts the accumulator~
SWAP A swaps the two 4-bit nibbles
of the accumulator. And the XCHD instruction exchanges the lower nibbles of the
accumulator and any working register.
This completes our discussion of
some hardware and software details of
the 8748.
Now that the hardware has been
discussed, let't look at a small subset of
the instruction set which illustrates the
8748's instruction set efficiency in
control applications.
Application Example
An application example was given as
part of the presentation.
The 8748 contains a comprehensive set
of single bit manipulation instructions.
These instructions apply to the accumulator
as well as the output ports. The output port
instructions are representative. To manipulate
a bit in an output port, there are AND and
OR port i nstructi ons. These instructions
utilize a mask to define which bits are to b·
set or reset. For the AND instruction, the
mask contains a 0 where a bit is to be reset
and a 1 where no change is desired. In the
OR instruction, the mask contains a 1 where a
bit is to be set, and a 0 for no change.
Thus individual bits in any port being used
for output may be set or reset using these
instructions. For input port bit testing,
Conclusion
This presentation has hopefully been
an introduction to the relatively new
world of single chip microcomputers. We
have covered the general characteristics
desirable in single chip microcomputer
used in control oriented applications. And
as an example of one such controller, the
Intel 8748 was discussed.
c
WEST COAST COMPUTER FAIRE
405
BOX 1579, PALO ALTO CA 94302
THE DISYSTEM: A MULTIPROCESSOR DEVELOPMENT SYSTEM
WITH INTEGRATED DISC-ORIENTED INTERCONNECTIONS
Claude Burdet, Systemathica Consulting Group, Ltd.
4732 Wallingford St., Pittsburgh, PA, 15213, (412)621-8362
Abstract
The microcomputer architecture of
the DISYSTEM features innovative solutions to several limitations--8-bit
capacity, 64K maximal memory, fixed
addressing--of the 8080 microprocessor
family. The modular design of the mainframe is especially suited for implementation of business and industrial applications on turnkey systems. It also
furnishes a possibility to expand an existing microcomputer system into a powerful parallel processing configuration
which will, in effect, perform 16-bit
multi-byte operations.
Section 0.1
Overview
This article describes the general
structure of a new r.ype of microprocessor based computer system; one of its
distinguishing features lies in the use
of two processors which communicate
through a linkage module to become a
versatile dual CPU, operating in parallel processing mode, or independently
-from.one.anotherinmultiprocessin@:
mode (see Appendix A).
The building blocks of the DISYSTEM mainframe are described in Section
1: two single board computers, and a
communication board comprising linkage
and arbitration modules with the FD
controller.
Section 1 also presents a snecial
memory design for improved compact
storage and better usage of memory
banks through dynamic addressing. A 24bit addressing scheme increases direct
RAM/ROM access to a maximum capacity of
several megabytes, along with a sharing
scheme for access of the same memory
banks by both CPUs.
In Section 2 several typical hardware configurations are listed, illustrating the modular versatility of the
hardware. A fully expanded DISYSTEM
operates as a virtual machine using
special system commands to define different types of operating configurations of the dual processor system: two
independent CPUs, one parallel processing dual unit, or various Master-slave
WEST COAST COMPUTER FAIRE
multiprocessing configurations. A multi
processing flow chart illustrates the
virtual machine's ability to change
structure at each instruction; these
special commands are used to define the
state of the virtual machine and can be
viewed as an extension of the instruction set of the 8080.
The DISYSTEM linking approach
introduces new programming possibilities in the 8080 family. With its
two CPU chips the virtual machine is a
16-bit computer whose characteristics
differ from those of conventional 16bit microprocessors--in fact, depending on the application and the software, double 8-bit parallel processing can be superior to 16-bit arithmetic.
0.2
Introduction
The DISYSTEM was originally developed at Systemathica to fill a gap in
the computer industry. Off-the-shelf
microcomputer systems do not have the
kind of power and hardware versatility
.. recuired forOEMdavelopm.ent of turnkey
systems in the small to medium size
range. The 8080A is chosen because it
is a well known chip with the best
speed-to-cost ratio; as a result, the
DISYSTEM delivers minicomputer oerformance at the price of micros.
A wide range of hardware options
are built into each DISYSTEM board, so
that the same standard element can be
used for a variety of di~ferent hardware applications without additional
interface boards and modifications.
This contributes to hold turnkey system development costs to a minimum and
to guard against premature obsolescence.
Por example, DISYSTEM memory units are
designed to onerate with either 8-bit
or 16-bit systems so that the substantial investment represented by a large
memory unit can be preserved when a
system is upgraded from an 8-bit to a
16-bit CPU.
The next objective of the DISYSTEM
oroject is one of technical innovation
for a low cost system with features
found only in large systems, putting
406
BOX 1579. PALO ALTO CA 94302
the accent on three areas: intelligent
control of peripheral devices (see Appendix B), increased size and better
utilization of memory space, and faster
number-crunching and file management by
the processing unit.
The result is: a new single board
computer concept with larger memory and
1/0 capability; a multi-megabyte memory
box with dynamic addressing; a dual,
parallel-processing, Central Processing
Unit which simultaneously operates two
microprocessors; and a super-intelligent Floppy Disc controller with builtin 1/0 module and DMA for temporary
storage of large files.
The question of hardware and software compatibility is one where SY8temathica differs most from other manufacturers. DISYSTEM architecture is
largely universal: it interfaces directlywith a variety of different bus
structures, such as Intel's MDS or SBC,
and S-IOO standards. The same philosophy applies to the software. In addition to software packages specifically
developed for the DISYSTEM to take advantage of its parallel- and multiprocessing capability, any software
written for the 8080 family will run
on DISYSTEMS including popular disc operating systems such as ISIS or CPM.
The motivation behind the development of the DISYSTEM is a natural
consequence of the need for better
overall performance of small but relatively powerful systems (usually disc
oriented). The intrinsic speed of a
processor is often much less relevant
than one assumes; in an interdependent
system, speed is limited by the slowest
component, and this is almost never the
processor itself. 1/0 devices are much
slower and should be given particular
attention--floppy discs also fall in
this category. Overall processing efficiency of a disc-oriented system therefore requires at least two processors:
a Host CPU for main processing and number crunching, and a sloave CPU for
handling the peripheral devices. Microcomputers presently offered on the market are either of the single processor
kind or contain a second processor
which is permanently dedicated to a
specific peripheral task. The DISYSTEM
architecture, on the other hand,maintains complete multiprocessing symmetry
for increased programming flexibiliby,
including the possibility to simultaneously service several 1/0 devices
(viz. floppy disc, terminal and printer). This introduces a much higher
level of peripheral intelligence than
could be attained with a dedicated
WEST COAST COMPUTER FAIRE
slave processor.
The dual 8-bit processing structure of the mainframe rivals conventional 16-bit processors through its
versatility: 16-bit arithmetic is obtained in the form of a double-byte
word where each byte is processed on a
different processor; the hardware links
are used primarily to convey "carry"
signals. Alternately, the dual machine
can be set up for parallel programming
where both processors may execute different operations while communicating
through an 8-bit channel. This dual
CPU displays more than twice the power
of a single CPU chip due to new software options arising from the byte
oriented link which is, in fact, a new
register shared simultaneously by both
microprocessors.
DISYSTEM hardware also interfaces
other existing microcomputer systems;
small system owners can upgrade their
facilities towards 16-bit processing
and intelligent peripheral control
without fundamental changes to their
present installation.
Section I
The DISYSTEM
The overall architecture of a
DISYSTEM is shown in Fig. 1. It
features two main processors which
function as independent microcomputers,
sharing the same floppy disc and memory; alternately, each processor can
operate as a slave to the other, converting the floppy disc controller
into a super-intelligent device. Configuration changes are under software
control, and processor assignment can
be dynamically reconfigured using
commands of the DISYSTEM extended
instruction set. Thus the dual CPU
operates as a virtual machine which
can become any of several machine
tVDes through an internal command. The
following configurations represent the
basic ontions which can be chosen by
the virtual machine for either CPU
(see Section II for an example).
I.l
DISYSTEM Architecture
The single-board computer concept
is critical to the multiprocessing
desi~n of the DISYSTEM. The various
standard configurations listed below
represent different phases defined by
the software during program execution.
Configuration Cl) This is the
basic single board processing configuration. A micro-unit operates alone
with its 8K RAMIROM on-board memory
407
BOX 1579. PALO ALTO CA 94302
and throuf,h its on-board I/O. The main
bus is cut off by "floating" the corresponding drivers to the high impedance state. In this mode the microunit will typically perform minor satellite processing tasks such as editing, formatting, or word processing.
Configuration C2) In Fig. 1 each
is connected to a memory box
(shown immediately below the microunit). When the micro-unit controls its
off-board bus, it has direct access to
this memory box, becoming a fully expanded single processor microcomputer.
The DISYSTEM includes two such computers which can operate independently.
Communication between the two systems
may occur through a latched 8-bit communication port; data transfer is then
performed in handshake mode. At all
times a status word can also be read by
either subsystem, indicating the current status (i.e. configurations) of
the entire DISYSTEM.
micro~unit
(i.e. Configuration C3 and C4 combined), while the other CPU is in
Configuration Cl.
DISYSTEM hardware is flexible
enough to incorporate other microprocessor systems as one or both of its
linked CPUs. Configuration C3, for
example, is a super-intelligent disc
controller which can be connected to
an existing microcomputer (not necessarily 8080 based).
Bus Structure There are two
separate buses, linked by the arbitration board; access to and from the
buses is through tri-state buffers
with plenty of power for noise reduction. Each memory box also possesses
an internal bus with the same characteristics.
1.2 Micro-unit (8080-MU-IOOI board)
see Figs. 2 and 7
This single computer comprises
the following modules:
Configuration C3) This is the
basic configuration of a disc oriented
microcomputer system. A micro-unit
gains access to the floppy discs by
turning on the appropriate buffers of
the Floppy Disc module. The FD 1771
chip automatically handles all primary
disc functions, including a Cyclic
Redundancy Check, while the CPU is dedicated to servicing the FD 1771. Since
disc operations are slow (milliseconds
ranK~) C3,_s_G_9ITlpared to th~CPU (microseconds range), ove-r-alY--p-er-{ormanc-e Or
a single CPU-disc system is reduced due
to the inherently slow procedures of a
disc operating system.
Central Processor Module Consists
of an 8080 CPU set (8080 CPU, 8228/38
controller, 8234 clock driver, 2.0432
MHZ clock) and associated logiC.
I/O Module Two serial ports (independent 8251 USART) each with selectable Baud rate varying between 75
and 19,200. One can operate either a
20ma current loop, an RS 232 CRT
-fermlnal, or- both simuTtane-olfsTY-'- "ThF----I/O also contains six independent
parallel 8-bit ports organized in two
8255 chips. A pair of 8216/26 buffer/
drivers is provided for either output
or input buffering.
Configuration C4) The buses from
both sides may be linked and become one
by turning on the arbitration and memory cross-access buffer/drivers. To
avoid conflict, one of the micro-units
is then "floated" and constrained to
on-boa~d operation, while the other now
has access to both memory boxes (i.e.,
120K of memory). The 8080 address
structure only allows a maximum of 64K
of direct addressing, but a special
Virtual Memory assignment module is
used to expand on-line memory addressing. This also permits a DMA type of
data transfer between the CPUs of (up
to) 32K in less than 10 microseconds,
i.e., more than 100,000 times faster
than a conventional memory data
transfer.
RAM/ROM Memory Module With up to
4K of static RAM (21L02) and up to 4K
of ROM (2708), the micro-unit is well
equipped to perform most satellite
processing tasks. The memory module
also contains an automatic start-up
relocation submodule which sets the onboard 8K block of memory at any of the
00, 20, 40, 60, 80, AO, CO, or EO
address boundaries. ROM is always
relocated to the top, RAM to the bottom
of the 8K page so that all on-line RAM
remains continuous.
Bus Buffer/Driver Module All
address, data, and control lines entering the micro-unit are buffered; all
signals leaving the micro~unit are
boosted by powerful drivers (8097 type
or 8216/26 with a fan-out of up to 30
Configuration C5) Here one CPU
has both memories and the FD controller
WEST COAST COMPUTER FAIRE
408
BOX 1579, PALO ALTO CA 94302
TTL loads).
troller) with an S-lOO microcomputer.
There are also additional slots between standard connector positions;
thus, if space and ventilation are not
a problem, DISYSTEM mother boards will
accept additional boards.
1.3 Memory Box
(for 8- or 16-bit
words, up to 128K words)
see Fig. 6
The DISYSTEM contains two 64K RAMI
ROM memory boxes which may be organized
either as two (physically) separate
subsystems or as one single unit totaling 128K. In any case, RAM is placed on
16K boards (2102-M-816) where each 8K
RAM block can be individually assigned
to one or the other CPU. A single system command will reconfigure the entire
memory so that, in effect, each CPU has
direct access to a 128K workspace.
A memory box plugs into the address and data bus of either side of
the DISYSTEM (see Fig. 1); CPU #1
accesses memory box #2 through the memory cross-access module of the arbitration board; similarly for CPU #2 and
memory box #1. Thus, each CPU has 64K
of natural memory and an additional 64K
of "virtual" memory. Virtual memory
allocation is not limited to 128K:
several megabytes of RAM or ROM can be
appended in this manner, connecting
several memory boxes in parallel on
either side. This spacious memory design has been develoned to allow future
use of new memory technologies, such
as low cost bubble devices. It also
allows several (more than two) systems
to share a joint ROM source or a~64K
Joint RAM workspace (scratch pad).
1.4 Mother Boards
see Fig. 6
1.5 Arbitration and FD Controller
Board see Figs. 3 and 4
FD Controller Module Tri-state
drivers govern the access to the controller's internal bus from each CPU.
Thp. controller is seen by the CPU as
an I/O device which can be referenced
as BO to BF; all special commands to
the FD 1771 are triggered by such I/O
commands. All signals to the disc
drives are powered by open-collector
logic.
Status Latch Module A set of 10
fully independent flip/flops are used
to record the current status of the
controller. It is collected in one byte
of information which can be inspected
by either CPU at their request (see
Table 1). There is also one pair of
flip/flops attributed to each CPU for
handshake communication.
(2102-M-I07X)
DISYSTEMS are usually mounted on
two universal mother boards which accommodate 4 memory boards and 4 system
boards. Memory boxes are also available
as separate units (a 64K unit or a 128K
unit), with or without virtual memory
logic which is wired onto the mother
board.
The system mother board is universal in the sense that any bus line can
be (jumper) rerouted to any other pin
of a connector so that DISYSTEMS may
incorporate boards from other manufacturers (0.156-inch spacing). A wirewrap area and up to 30 (16-pin) DIP
positions are provided for user-designed system implementations or signal
conversion. The main purpose of this
universal mother board is to ensure
compatibility with other microcomputers.
It will, in particular, allow one to
generate S-lOO bus signals for direct
interface of a memory box, a floopv
disc controller, or a DISYSTEM Configuration C3 (super-intelligent con~ WEST COAST COMPUTER FAIRE
409
Data Latch Nodule Data communication between both microcomputers is
handled by a pair of 8-bit latch/drivers. In interrupt or handshake mode,
each byte is latched by one micro-unit
and subsequently read by the other. In
cross-access DMA mode, the ports act as
transparent buffers. All system control
si~nals are accompanied by a message
byte which is automatically latched in
the data communication ports, at the
disposal of the other micro-unit (see
Tab"le 2).
Data Separator The FD 1771 possesses an internal data separator which
may be used; however, this is not recommended and, for added reliability,
the PM serial data/clock line is presented to an external data separator
in the controller module.
1.6
Interrupt Structure
The interrupt structure of the
DISYSTEM is completely symmetrical and
under software control by either CPU.
There are three internal interrupt
sources: CPU #1, CPU #2, and the controller chip FD 1771. Over 200 internal
and external interrupt calls may be
serviced. Interrupts between CPUs may
BOX 1579. PALO ALTO CA 9430~
be inhibited by a system command in order to assure absolute priority to the
floppy disc controller during disc data
transfer. Interrupt calls and acknowledgements are recorded in the status
latch, so that no ambiguity may occur.
In addition to the hardware signal,
each interrupt is accompanied by an
8-bit message (latched by the caller),
which contains the priority and identification of the requested service. Each
CPU can entertain over 200 individual
interrupt calls with detailed priority
management and associated service vectors. Entry points are listed in a 512
byte .iump table (in RAM or ROM) which
is itself directly referenced by the
(RST 7) hardware call (see Fig. 5).
Since it is controlled by two processors (not merely an interrupt controller
chip), this scheme can easily be cascaded to accomodate arbitrarily many
interrupt services. The DISYSTEM interrupt structure also accomodates interrupt signals from external devices.
Such interrupt calls are presented to
the same priority manager whose individual service vectors eliminate the
need for separate interrupt management.
Section II
Operations
During the course of its operations a DISYSTEM will continuously
change structure, assuming any of the
Configurations Cl~C5;.a system command
is required for each change of config-;"
uration. Perfectly symmetrical, this
architecture replaces the more conventional master-slave configurations with
dedicated CPU, offering more possibilities for hardware and software design
to increase the efficiency of the total
system. The example described here
shows how the virtual machine evolves:
the Host (CPU #1) communicates with a
complete disc operating ~icrocomputer
slave. Thus the main processor need not
be concerned with file management since
his requests to the slave subsystem can
be issued at the file name level. Furthermore, virtual memory allocation
allows the Host to access disc files in
a time comparable to RAM access time.
All DISYSTEM commands have 1/0 names
and no memory location need be reserved
for internal activities.
11.1
Example (see Aopendix C, Table 3)
Consider the following installa-
tion:
Peripherals
serviced by CPU #1:
~ WEST COAST COMPUTER FAIRE
-CRT at 9600 Baud
-Cassette tape unit at 300 Baud
serviced by CPU #2:
-Teletype at 110 Baud
-Line printer at 4800 Baud
The teletype and printer are serviced on a time sharing basis, similarly for the CRT terminal and the tape
unit.
ROM Both ROM #1 and ROM #2 are
automatically relocated to page FO-FF
(last 4K).
-Rom #1 contains a start-up monitor and utility routines, cassette tape operating system, and
a smart CRT editor; the 4K onboard RAM buffer is used as a
scratch pad (that's more than two
full CRT screens!).
-ROM #2 contains a start-up monitor, and a printing editor for
both the teletype and the line
printer; thus micro-unit #2 can
ooerate as an independent sate-IIi te with a 4K on-board RAM
buffer.
System RAM #1 memory box = main
programs and workspace area.
#2 memory box
disc
operating system and file storage area.
=
A typical multiprocessing chain of
operations is described in Table 3; in
its initial status, the virtual machine
consi-sts of two independentl-y- running
CPUs, each with its own memory, i.e.,
as in the parallel programming Configuration C2. Numbers in () indicate
the sequence of events.
This example also presents an
illustration of virtual memory operations. The memory area ADDR occupies
the same physical location (in memory
box #2) during the entire process, but
it is referenced either as natural
memory by CPU #2 during phase 4 or as
virtual memory by' CPU #1 during phase
7. Instead, a double DMA operation
could be made by CPU #1 to transfer the
data block ADDR into memory box #1 and
back. The method used in the example,
however, is much faster, as CPU #2 is
engaged in on-board processing during
phase 7.
Disc files appear, to the Host,
to reside in RAM. The only requirement
for this is that the fetch request be
made in advance; but in view of the
fact that the FD controller has access
to as many memory banks as needed, this
is no severe restriction--disc file
requests can be timed so that CPU #2
410
BOX 1579, PALO ALTO CA 9430~
has enough time to load the file into
virtual memory before CPU #1 issues an
actual data reference within that file.
File access time now becomes essentialIv the same as RAM access time. Thus,
the use of virtual memory banks has
much the effect of converting a floppy
disc into fast memory.
In Table 3, communication between
CPUs is interrupt driven, and multilevel nested interrupt calls may occur
during multiprocessing. But the processors will automatically resume their
"interrupted" task immediately after
the interrupt has been serviced, so
that little overhead is required to
control the flow of operations.
The "program" is a straightforward
application of the improvements built
in-the DISYSTEM. It shows that virtual
memory operations eliminate lengthy
memory-to-memory data transfers, and
that to a large extent they give a RAM
flavor to disc files. The importance of
such improvements need not be empha-Sized to the user of disc oriented
-microcomputers.
This example was chosen because it
demonstrates the super-intelligence of
the FD controller system, i.e., the
half of the DISYSTEM which is in Configuration C3. In the DISYSTEM, it is
linked to a Configuration C2, but, as
such, it will yield the same improvements when combined to any microcomputer system.
Further multiprocessing programming details, parallel programming
routines, multibyte arithmetic functions, and other softw~~e possibilities
of the DISYSTEM are des~ribed in Reference 3. Some standard software packages are furni~hed with DISYSTEMS allowing the user to take advantage of
the parallel and multiprocessing mode.
Application software packages include
large scale linear programming, simulation programs as well as business
programs. DISYSTEM related software and
programming methodology can be obtained directly from the manufacturer.
but a collection of them still does not
constitute a sound concept for a well
integrated modular architecture.
The DISYSTEM architecture follows
the opposite philosonhy: it is one
integral concept which is capabre-of
major extensions in several directions~
memory, central processing, discs or
other IIO devices. System expansion
represents no more than an implementation of options already built into the
hardware and the system commands.
The development effort centered
around this principle has proved successful: the-DISYSTEM is one of the
lowest nriced systems, even when compared to less ambitious personal computers; and yet, an expanded version
will hold its rank in the field of
minicomputers.
The prices listed below convincingly demonstrate this fact.
The SOSOA-MU-IOOI single board
computer is available for $119.00 kit,
sockets are $15.00 extra; assembled
$1500.00; the additional chip set with
CPU, lK UVPROM, RAM, serial port costs
$110.00.
The 16K memory board costs $60.00,
$30.00 for 16K RAM (21L02, 450ns);
assembled $260.00. The64K memory box
motherboard with virtual memory logic
is $5S.00 (kit), $103.00 assembled;
12SK is available for $93.00 kit,
$lS5.00 assembled.
The arbitration and FD controller
1771-AC-I051 is available at $171.00
kit, sockets are $25.00 extra, $230.00
assembled; the additional FD chip set
is $71.00.
Standard OEM quantity discounts
apply. Delivery is 0-45 days.
Assembled and tested systems are
priced as follows (disc drives and
enclosures excluded):
-64K virtual memory system (450ns):
$1100.00
-Microcomputer (Configuration C2)
with 20K RAM: $520.00
-Super-intelligent FD controller
(Configuration C31 with 36K of
RAM and disc operating system:
$1200.00
-DISYSTEM with 72K RAM: $1950.00
with 120K RAM: $2600.00
Conclusions
Building a system with off-theshelf components is a difficult task as
soon as a certain level of complexity
has to be reached; many microcomputer
boards are readily available on the
market, but hardware compatibility is
not as pure as magazine ads make one
believe. The major difficulty lies in
the system design area~ Off-the-shelf
boards are fine as "add-on" products,
WEST COAST COMPUTER FAIRE
411
BOX 1579. PALO ALTO CA 94302
Appendix A
The term parallel processing is
used to characterize a single program
performing (possibly different) operations on several processors.
The term multiprocessing is used
here in the restricted sense where
several machines operate independently
from one another, occasionally communicating through interrupt calls,
for instance.
Parallel processing example:
= ab
Scalar Product: c
CPU #1 operations
c1 - a1 b1
c3 =
c5 =
c .
n-l
ship
-
CPU #2 operations
Co - aob o
c 2 =.c o + a 2 b 2
c 1 +.a 3b 3
c 3 + a 5b 5
+ a
b
n-3
n-l n-l
cn
to CPU #2
1=
cn - 2 = c n - 4 + a n - 2bn - 2
c = cn - 1 + c n - 2
C
Appendix B
Appendix C
Intelligent means that the device
is accessed through a microprocessor
based controller; 'we will aiso call the
device super-intelligent wh~n it is
controlled by a microcomputer system
with full I/O, a substantial memory,
and resident operating system.
Table 2:
I······
...
. ...
_.
......•............
The following I/O commands are used for
Communication between the Micro-units:
Hardware function
OUT DO: send Handshake command byte
OUT D2-: ~end Handsha.kedata b-yte··----OUT D4: interrupt other CPU
OUT D6: return its natural bus to
other CPU
OUT D8: disconnects FD controller
from itself
OUT DA: CPU disconnects itself from
its natural bus
OUT DC: disable interrupt calls from
other CPU
OUT DE: unused
.. . . . .
Appendix C
Table 1:
Status Word
Each CPU has permanent access to the
following status information:
Bits 0 and 7: a handshake command has
been issued
Bits 1 and 6: handshake data is latched
All these commands issue a message
byte which is automatically latched in
the Data Latch Module. The following
commands are used to read the appropriate messa~e as well as perform the
indicated hardware function.
Remark: Bits 0 and 1 are for data
transfer from the CPU, and
Bits 7 an~are for data
transfer to the CPU
Hardware function
Bit 2: interrupt caused by the other
CPU or some external device
Bit 3: interrupt stems from the FD
controller
Bit 4: the CPG has access to the PD
controller
Bit 5: the CPU has control over the
buses on both sides
tt.. WEST COAST COMPUTER FAIRE
DISYSTEM Bus Controls
IN DO: read the status word
IN D2: read the latched data byte &
clear Handshake flip flops
IN D4: acknowled~e interrupt; clear the
interrupt flip flops and read
the latched data byte
412
BOX 1579. PALO ALTO CA
94302~
Tahle 2:
continued·
IN D6: gain control of both natural
buses and disconnect other CPU
from its natural bus
IN D8: gain access to the FD controller
bus
INDA: disconnect other CPU from its
natural bus
IN DC: enable interrupts from other CPU
or an external device
IN DE: unused
Communication with FD controller:
Hardware function
OUT BO: send command byte to controller
register
OUT Bl: send track ID
"
"
OUT B2: send sector ID
"
"
OUT B3: send data byte
"
"
OUT B4-B7: send configuration byte
(latched in disc control
latch): selects drive and
FD 1771 op code
OUT B8-BF: unused
IN BO: read FD controller command
register
IN Bl: " "
"
track
IN B2: " "
"
sector
IN B3: " "
"
data
IN B4-B7: force CPU ·into wait state,
until data request signal
from FD 1771 (an interrupt
or a reset) reactivates it
IN B8-BF: unused
Appendix C
Table 3:
A Multi-processing Application: File update by the
super-inteligent FD
controller
The table below presents the
flow of major operations and configuration changes occuring during
a "file update" procedure. This
description does not contain all
instructions in order to highlight
main events better than a complete
program listing.
It is assumed that both CPUs
are linked asynchronously; most
"acknowledge" interrupt calls would
be superfluous with a synchronous
DISYSTEM.
The label * resume processing *
indicates that the activity which
is taking place at that moment is
not directly related to the "file
update" routine.
CPU #1
CPU #2
'Config: Timing: Operation"
"Config: Timing: Operation"
C2
C2
Main processing~ independent
or parallel mode
C2:(1): Send FD service request and
assign other CPU to FD service
(interrupt call)
C2:(2a):Acknowledge (interrupt call)
C2:(2b):Grab FD controller bus (system
command DB D8)
C2:(3): Issue a "fetch FILENAME" request, with desired address
location
ADDR
(interrupt
with message)
=
*
resume processing
~ WEST COAST COMPUTER FAIRE
Independent satellite processing or main parallel procesing
C3:(4a):Acknowledge (interrupt call)
C3:(4b):Get "FILENAr·m" from the apnropriate disc drive designated
by the resident disc operating
system. Store "FILENATv'IE" into
RAM location ADDR (memorv box
#2)
*
413
BOX 1579. PALO ALTO CA
9430~
Table 3:
continued
CPU #1
~onfig:
CPU #2
Timing: Operation"
"Config: Timing: Operation"
C3:(4c):Signal "file ready at address
ADDR" (interrupt with messa~e)
C2:(4d):Quit FD control (system
command D3 D8)
C2: (5a):Acknowledge; request access to
virtual memory box #2 (interrupt call)
CI:(5b):Acknowledge (interrupt call)
(5c):Release system bus #2 (system
command D3 DA)
C2: (6a):Reorganize memory #1 (system
command D3 00 with message)
C4: (6b):Grab system bus #2 and gain
access to virtual memory #2
(system command D3 D6)
C4: (6c):Reor~anize memory #2 (system
command D3 10 with messa~e)
C4:(7a):Process and update "FILENAME"
at address ADDR in memory #2
(main program)
.
c4: (7b):Reorganize memory #2 (system
command D3 02 with messa~e)
C2: (7c):Release system bus #2 (system
command D3 D6)
02: (7d):Signal to CPU #2 that system
bus #2 is free (interruot call)
C2: (7f):Reorganize memory #1 (system
command D3 00 with message)
C2: (8): Issue a "store FILENAME" request (interrupt with messap:e)
*
C2:(9a):Acknowledge (interrupt call)
q3:(?b):Grab FD control (system
. . -..... _. .c ommarid "DBDa-) .. C3:(9c):Store "FILENAME" according to
the directions of the resident disc ooerating system
C3: (9d):Signal uFILENAME stored"
(interrupt with message)
C2:(11):Release FD controller (system
command D3 D8)
C2:
Main processing, independent
or parallel mode
~ WEST COAST COMPUTER FAIRE
*
C2:(7e):Grab system bus #2 (system
command DB D6)
C2: (lO):Acknowledge (interrupt call)
C2:
resume processing
414
Independent satellite processing or main parallel processing
BOX 1579, PALO ALTO CA 9430~
Appendix D
Captions for Figures One thru Eight
Figure 1 Archi tectl:lre of the ·DISYSTEM
A DISYSTEM consists of two single
board computers, an FD controller and
linkage b~ard, and two memory units
each containing up to four 16K RAM
boards; all boards are mounted on two
system mother boards in a single or
two separate enclosures.
Each CPU has access to the FD controller and to both memory boxes, for
a maximum of 120K of RAM; each also
has its own on-board 1/0 and memory
module. Information is shared through
an S-bit latch and an S-bit transparent
communication channel. All commands of
the DISYSTEM extended instruction set
are executed through hardware logic
for maximum speed.
Figure 2
Microprocessin~Unit
Figure 4 Cross-Access Arbitration
Module
The arbitration module is the
heart of a DISYSTEM. It combines two
independent microcomputers into one
central processor, onerating under an
extended instruction set. The resulting machine then operates either in
parallel nrocessing mode with 16-bit
canacity or as an interrupt driven
multiprocessor. All Address, data, and
control bus lines are transmitted from
one system to the other, with an additional latched S-bit bi-directional
communication channel. The arbitration
module also provides DISYSTEMS with
nriority interrupt control for over
200 separate calls with individually
vectored service.
Figures 3 and 4
(single
board computer
The SOSO-MU-IOOI board is for
stand alone operation as well as multiprocessing. It is an ideal low cost
general purpose controller, with SK of
on-board memory and multiple serial
and parallel 1/0. Simultaneous service
of several independent devices such as
typewriters or printers converts them
into intelligent word processors and
editors. This micro-unit is available
fully assembled and tested, as a kit,
or a bare board, with or without sockets. It will also oper~te normally
without all of its IIC ports and memory chips for maximum cost efficiency
in applications requiring less processing power.
The FD 1771-AC-I051 board contains both the floppy disc controller
and the arbitration module. Tied to a
micro-unit, it forms a super-intelligent FD controller system with its
own processor, 1/0, and memory.
Figure 5 Interrupt Service Structure
The Data Latch furnishes the LSB
of the Jump Table address to the RST 7
subroutine (for instance 9A). In turn,
the jump table delivers the MSB (for
instance 22 contained in memory location F39A) and the LSB (B7 from location F49A) of an entry point (i.e.
22B7) for the requested interrupt
service.
Figure 6
Figure 3 Floppy Disc Controller
Module
The Floppy Disc controller has
access to both CPUs and both memory
units for added programming flexibility; it features its own clock generator and is capable of controlling
either Standard FD Drives or Mini FD
Drives. The FD controller can be given
absolute interrupt priority, disabling
all other interrupts. A 1771 controller
chip handles all disc signals, performs
automatic CRC checks, and has several
formating capabilities, including IBM
formats.
~WEST COAST COMPUTER FAIRE
Memory box unit showing its four
nositions for 16K memory boards (2102M-S16), totaling a maximum of 64K
words. A memory board is inserted in
the last slot, displaying two separate
S-bit SK banks; thus the memory unit
can be configured for S or 16 bit
operations.
Figure 7
The micro-unit SOSO-MU-IOOI with a
maximum of 4K RAM (21L02), 4K ROM
(270S), 2 serial ports (S251) and 6
parallel ports (8255). This single
board comnuter also possesses 10 free
16 DIP positions for dedicated applications.
415
BOX 1579, PALO ALTO CA 9430~
Appendix D
Captions
continued
continued
Figure 8
The disc-oriented microprocessor
connection board FD 1771-AC-I051 contains a bus linking module and data
communication channel (center), a
floppy disc control module with double
access (left), and a system command
logic module (right) which defines the
state of the dual processor virtual
machine.
References
[lJ Intel MDS-800 Microcomputer
Development System Reference
Manual, October 1975.
[2J George A. Anderson and E. Douglas
Jensen: "Computer Interconnection
Structures: Taxonomy, Characteristics, and Examples," Computing
Surveys, vol. 7, no. 4, pp. 197213, December 1975.
[3J Systemathica, DISYSTEM Software
Development Manual, 1977.
I····
~ WEST COAST COMPUTER FAIRE
416
BOX 1579. PALO ALTO CA 9430~
~
fTI
SERIAL PERIPHERALS
CRT TERMINAL
TELETYPE
MODEM
tn
-I
n
......
o
7
~
~
-I
2 SERIAL 2 PARALLEL
PORTS
PORTS
18080A MT r.R~It-'K.Ul:ES SOR.
qK RAM
LJK ROM
"'U
C
-I
IT1
::u
.,..
:!!
::u
BUFFERS
DRIVERS
)
fTI
A~
[}.
~
""IIIiiO:
.....-~
0
,/:>.
-t
I-'
~m
cr
rmz
Ul~
»Cj)
m
UI
.....
(,D
"'U
r>
0
D
R
I
V
E
.........
...... R
./
./
S
V
'"
B
IL INKAGE MODULE.
U SYSTEM STATUS LATCHES
F DATA TRANSFER LATCHES
F BUS ARBITRATION
E ADDRESS,DATA,CONTROL
R INTERRUPT ARBITRATION
S MEMORY ALLOCATION
B: .D
UIR
I
FI I
FIV
f
EIE
I
R,R
SIS
,
)
,l""1I
.......
./
./
./
V
V'
B
U
F
F
E
R
S
ICONTROLLER.
READ I WRITE
FORMAT I CRC CHECK
DATA SEPARATOR
BUFFERS I DRIVERS
MEMORY
RAM I ROM
A
~
B
U
F
F
E
R
S
D
R
I
V
E
R
S
FLOPPY
DISK
0
n
>
L
.........
"'
or
y
~(/')
ZLU
Q
~o
"""l
FLOPPY
DISK 7
(,D
FIGURE ONE
ARCHITECTURE OF THE
W
l!J
«
.......:
,.
0
------
,...
~
WL
I
I-
""
,,~
1/
V'
MEMORY
RAM I ROM
~
~.
-.....J
.....J:::>
~ ~
-I
N
'-
.JIll'
D
R
I
V
E
R
S
~
, "~
./1
"-
>
r
W
II
2 SERIAL 2 PARALLEL
PORTS
PORTS
ISQBQA MICROPROCESSn~
q K RAM
q t< ROM
DRIVERS
BUFFERS
I
'"
0
~
~
I
0;0
><
"'I
PARALLEL PERIPHERALS
8~
-...J
~
DIS Y S T E M
0
.,
~
1"11
~
en
-t
~
n
o
>0
en
-t
8
~
"U
C
-t
1"11
::u
'TI
>0
ADDRESS BUS
v
CENTRAL
EXTERNAL
INTERRUPT
- ,-
u
.....
-I
a..
:::>
-
<.!)
0
~
1"11
3
~
~
8080A
---..
0::
0::
UJ
IZ
::u
7
SYSTEM
BUS
....
CONTR.
8238
n
::0
o
"lllllf")P!O~II!!I!lPN~T:E~R~R~U=P=T=S~~I~·
""tJ
::0
,t:.
~
(X)
o
n
(TI
en
en
:z
::i)
c=
•
~
)(
~
(/)
I I 0
r-I •
z
Ci)
....,
Ul
r
m
U)
OJ
"U
>0
r
o
o»
n
o
-u
o
)-
,.w
U)
o
N
CONTROL
~
"
•
~
c
~
:::>
In
UJ
le::(
.....
,
7
11111
w.
~
~
-.
0::
W
IJ....
lL
0::
I-
ADDRESS
.--
V)
V)
'I
,
INTERNAL
BUS
I
EXTERNAL
BUS
.......
~ iiiil ili~~
CLOCK
DRIVER
r---- INT~RNAL
~
BUS
I
DATA
•
i
11r.;,.
EXTERNAL
BUS
II-
BUS
ENABLE
,.I .~trr;~ml
~~ *~ILOGIC
o
-t
n
II-
~
~
·---T~
n
;;u
)-
r
DECODING
UNIT
V1
o
......
I
Z
-I
III
0::
A
~
~
C
~
0::
UJ
>
( i)
::0
V)
DRIVERS
PROCESSOR
."
111
~
INTERNALI
~
.....
ADDRESS
BUS
~~
BUFFERS
DRIVERS
I--
PARALLEL PORTS
(TWO
SERIAL
8255)
(TWO
PORTS
8251)
RAM
I
ROM
21.
ON-BOA~
ACTIVITY
MODULE
-t
m
;u
'""
~
7
---011IIII
~
1'1
en
-f
8
~
"'U
C
-f
1'1
:u
'TI
~
:u
1'1
...,.'lIII
:::::>
III
iV'"
...J
oe:(
~
Z
CONFIGURATION
~
UJ
...J
...J
~
r<::
CONTROLLER
INTERNAL
DATA
~
ADDRESS LINES
Z
o
AO, Al
u
o
,c:.
\D
~
UJ
>
......
~
o
~
I/O
.......
.....~
ADDRE~>
;»'
FLOPPY DISK
COMMAND
DECODING
...
CONTROLLER
...~_
-...
.....
CD
LL
LL
:::::>
III
oe:(
l-
.!.
i'
I-
)-
o
)-
i'
-f
o
n)-
.
CD
W
o
N
F.
V)
"'U
~
FD 1771
-+
UJ
I-
~
.....
--
D.
INTERRUPT
~
_------,k--·--~
CLOCK GENERATOR
2.0 MHZ
DATA
REQUEST
FIGURE THREE
FLOPPY DISK
CONTROLLER
DATA
SEPARATOR
DATA -
....
~CONTROLS FROM DISK -
•
~
UJ
(II
CHIP
UNIT·
V)
~
)(
..
FLOPPY DISK
...
I-
.....
CLOC~
~
r~
I-
V)
.........
BUS
'-i
o
...,
~
I
,
~
--..
LATCH
~
UJ
IZ
DISK DRIVE SELECT LINES
DISK DRIVE
........
V)
-f
8
i:
~
MODULE
...
f==-CONiROTSt6-I5TSK~
:e
I'T1
(f)
~
-I
n
.==::
0
>
(f)
-I
8~
."
"G'>
-I
ITI
:::0
C
:::0
">:::0
1.
I
~~
/.' ~~
~
{juS
j
.
~
n
0
DRIVERS
Cf)
Cf)
.,
I
»
n
n
m
~
-A.
r"
~~
~
TRI-STATE
/'
DRIVERS
~
I
~
II•
•1
J
HANDSHAKE
D MA
INTERRUPT FLOPPY DISK
SECTION
SECTION
SECTION
SECTION
ARB I T RAT ION MOD U L E
Cf)
Cf)
~
11liiio..
"c:0
TRI-STATE
L
~J'~ ,
:tJ'tv<;
u~1!'
BUS 2
I~
~
~}--
:::0
ttl
-I
:::0
~
><
»
-I
0
z
UI
3:
!"
0
."
r
""-I
r>
0
r>
COMMAND
DECODING
UNIT
n
>
,..
CD
W
0
N
~.
~
\1
L~
~
UNIT
0
c:
m
~ ....
L~
,
V
.-.
4DD
I~
~I!'S
~J' S 4
tvotJ' tvD
,
tvb' C°tv
II
-I
0
~
COMMAND
DECODING
= ADDRESS
A
BUS 1
---
~
AtODu}-~Ot.
(I:
l!I
uS
~
~
......
I"
{ 17
L~
,~
ADDRESS
-
BUS 2 -
INTERRUPT SIGNAL
(HARDWARE)
DATA
LATCH
(ARBITRATION
MODULE)
MSB
TABLE
LSB
TABLE
F300
F400
·
·
·
F39A
·
·
·
F49A
·
·
·
·
A~
F4FF
F3FF
1
JUMP
TABLE
CPU
v
-Figure 5:
RST 7
INTERRUPT
WEST COAST COMPUTER FAIRE
SUBROUTINE
SERVICE
421
--
SERVICE
ROUTINE
STRUCTURE
BOX 1579. PALO ALTO CA 94302
c.
Burdet
The DI3YSTElVT •••
Fi~ure
6:
Memory box unit
C. Burdet
The
DISYSTEt~
Fi~ure
7:
•••
micro-unit
808o-~U-IOOl
C. Burdet
The DISYSTEfIII •••
Figure 8:
arbitration and controller board
FD 1771-AC-I051
SYSTEMATHICA
WEST COAST COMPUTER FAIRE
422
BOX 1579, PALO ALTO CA 94302
A POINT-OF-SALES NETWORK
Samuel A. Holland, Director of Research and Development
Extensys Corporation, 380 Bernardo Avenue, Mountain View, CA 94040
A Point-of-Sales network is a classic example for implementation of distributed .processing architecture. This
paper defines a point-of-sales environment in terms of the capabilities that
are needed to effectively handle the
information exchange. Next the EXIOOO
embodies as its primary architectural
concept "distributed processing".
Each of the components in the point-ofsales network is then described using
the EXIOOO as a basis. This emphasizes the modularity as well as efficiency of a well designed distributed
processing system.
Point-of sale applications with
computerized systems generally require
a wide variety of hardware and software
designs to provide a totally integrated
system. Some of the factors to be considered in point-of-sale systems include:
• Diverse data inputs at:.the acutal
point-of-sale: keyboards; cash registers, bar code readers, credit card
inputs, interface to mechanical devices and totalizers.
• Ability of multiple point-of-sale
terminals to access a regional data
base with input/output capability in
real-time.
• Ability to update the information
bank in the regional data base from
the point-of-sale terminal with current transaction data ••.. along with ability to modify the regional data base
from a corporate home office main-frame
computer (pricing, inventory codes, acceptance and verification data, etc).
• Capability to batch stored information in the regional data base to a home
office system on demand.
• Ability to easily add and subtract
remote terminals as required.
• Human factors particularly at the
point-of-sale for ease of input, accuracy, and confirmation of entry.
• Ability for the system's software
architecture to allow application code
to be written, entered, and modified.
• Low capital investment to more easily
justify a full network with maximum capability.
• Record retention considerations.
These generalized point-of-sale requirements along with installation-specWEST COAST COMPUTER FAIRE
ific considerations lend themselves to a
distributed processing technique. Under
such an architectural scheme, the full
capability of the electronic circuitry
and associated software can be focused
on each diverse section of the overall
system to optimize system capability and
flexibility while minimizing cost.
The Extensys EXIOOO Computer System
embodies architectural concepts found,
before now, only in costly large scale
computers. The primary concept that has
been used throughout the EXIOOO is distributed processing. The EXIOOO distributes system processing functions to
those system components that are best
suited to perform those tasks. This dedicated function type of architecture is
just coming of age. It is a state-of-the
art technology which was prohibitive until the recent introduction of cost effective computational plus control microprocessor chips (costing as little as
$8) along with programmable peripheral
circuits to perform preassi~ned tasks.
Coupling these cost effective products
with the distributed processing techniques proven by computer companies such
as Control Data Corporation, Extensys
Corporation has been able to provide an
extremely powerful and flexible system
in the EXIOOO. Through the efficient
use of system components and their modular structure, the EXIOOO system allows
system configurations that meet a wide
variety of particular application needs
as well as offering expansion capability
to satisfy increasing usage demands.
The Extensys EXIOOO Computer System
is ideal for use in a point-of-sales
network environment. A-I illustrates
how a point-of-sales network system
could be designed using the EXIOOO. The
use of distributed processing concepts
allows for the placement of processing
in those elements which can provide a
highly cost effective and efficient operation. The system functions that are
distributed to the various processing
elements are:
• The Home Office System provides data
retention and processing for the entire
data base.
I Regional Systems are used for concentrating data from up to 64 (or more)
terminals within a geographical region,
423
BOX 1579, PALO ALTO CA 94302
with area data retention as required.
• Regional Systems also use a Store and
forward system to communicate periodically with the Home Office System.
• Remote Terminals have intelligence
for editing and formatting of data.
Extensys is able to distribute the processing requirements of the network system through the proper selection and
placement of microprocessor elements in
junction with software to perform and
control those tasks.
The Home Office System which retains
the entire data base, would normally
consist of a large mainframe computer,
such as an IBM 370/168, a UNIVAC 1110 or
a CONTROL DATA CYBER 175. These units
would have large disk storage capacity
for entire data base retention. Additionally they would be used for statistical information processing and reporting.
The Regional Systems would consist
of an Extensys EXlOOO Computer System.
A typical Regional System is illustrated
in A-2. It is composed of several remote terminal processing elements, a
host or central processor, a system memory, disk storage and a local terminal
processing element. The remote terminal
processing elements can accomodate up to
8 remote terminals each. By incorporating 8 terminal processing elements, up
to 64 (or more) remote terminals could
be serviced by a single Regional System.
More systems could be added to incrp-ase
the regions capabilities even further
Thef-lexibilit:-y -to -add or --deletetermin~
als allows for the efficient structuring
of each Regional System to meet current
as well as future needs.
The host or central processor is
used to execute application programs.
These programs would be executed in the
system memory with each terminal sharing
the same programs. System memory modules can be added, providing from 16K 8bit bytes to 1 megabyte of RAM storage
to accomodate a wide variety of application programs. The disk storage element
controls from 256K bytes to 2 megabytes
of on-line removable disk storage. Additional disk storage units can be added
to a Regional System to expand the disk
storage capacity of a Regional DataBase.
A local terminal provides the capability
to monitor the data base and control the
operation of the system.
A Remote Terminal is comprised of
selected EXlOOO processing elements. A-3
illustrates its composition. A Remote
Terminal consists of the local terminal
processing element of the associated Regional System coupled with a communica~ WEST COAST COMPUTER FAIRE
424
tions modem. The Remote Terminal has
enough processing horsepower to be able
to perform local editing of information
as well as formatting and compression of
information to accomplish efficient
data transfering to the Regional System.
Software within the Remote Terminal
could step the person initiating a transaction through a given set of instructions in order to provide ease of operation and accuracy of transaction.
The Flow of Transactions in the
point-of-sales network system using the
EXlOOO as a basis is depicted in A-4.
Transactions are inputted at a Remote
Terminal by keyboard, credit card reader
or other convenient means. The remote
terminal with dual microprocessors and
4K bytes of buffer storage performs editing and formatting functions and concentrates the data prior to transmitting
it via modems to the Regional System.
The Regional System receives the transactions through a modem attached to a
multiplex controller board which has a
dedicated microprocessor and buffer for
each modem. The transactions are then
combined with other transactions on the
APU-lOO processing unit in an 8K byte
buffer. These transactions are then
passed to the Regional Data Base through
the central memory of the system. The
APU-lOO processor then allows the transaction data to be efficiently transferred from the RAM buffer and stored on
the removable disk.
All transactions would be stored at
Regional Syste_m_~j=t4::tS_ and per:i.odicCilly
or on demand would be forwarded to the-Home Office System. This would be accomplished by buffering large volumes of
transactions off the Regional System
disk storage through the central memory
of the system to a communications multiplex controller board. This board then
passes these transactions to the Home
Office System via communication lines.
The Extensys EXlOOO Computer System
is ideal for point-of-sale network environments. It incorporates flexibility
through distributed processing to allow
for structuring systems to specifically
meet current needs as well as offers expansion capability as the demands on the
system increase. It provides an efficient operation since only those processing elements that are required for any
operation are involved, freeing the remaining elements to perform other tasks.
The EMOS software, in addition to the
hardware, is distributed throughout the
complete system for efficeint handling
of transactions. As a result of the tot
al hardware/software distribution, only
BOX 1579, PALO ALTO CA 9430~
a~plication programs would need to be
developed. This flexible, efficient
operation coupled with the cost effectiveness of using microprocessors makes
the EXIOOO an excellent choice for a
point-of-sales network system.
POINT OF SALES NETWORK SYSTEM
HOME
DATA
BASE
HOME OFFICE
SYSTEMS
REGIONAL
DATA
BASE
REGIONAL
DATA
BASE
REGIONAL
SYSTEM
.. .
•• •
REGIONAL
SYSTEM
o
o
...
o
A-I
WEST COAST COMPUTER FAIRE
425
BOX 1579. PALO ALTO CA 94302
~
ITI
en
-f
n
o
»
en
REGIONAL SYSTEM CONFIGURATION
-f
n
o
~
"'0
C
DATA BUS
-f
ITI
::0
-
----
:!'!
::0
ITI
APU-IOO
PROCESSOR
...
...
~.--
T
'TI
RM64
HOST
PROCESSOR
RAL'1
APU-IOO
PROCESSOR
TERf.lINAL
PROCESSOR
MEMORY
MUX
ROCESSORS
0I:>l>.)
0\
~
FLOPPY DISCS
)(
UI
.....
CD
"'0
»
r-
,..o
COMMUNICATION LINES
TO UP TO 64 TERMINALS
r-
-f
o
,..n
.
CD
(,)
o
N
A-2
OPERATORS
STATION
r
l
REf.10TE
TERMINAL
MODEM
TERMINAL
PROCESSOR
~8
I
~
KEYBOARD
I
A-3
WEST COAST COMPUTER FAIRE
427
BOX 1579, PALO ALTO CA 94302
:e
ITI
U)
-I
n
o
>-
REMOTE TER!'1INAL
U)
-I
n
o
~
."
C
[ KEYBOARD
TRANSACTION INPUT
-I
1'1
.8085 PROCESSOR
~ .8041 PROCESSOR
H'
WI,"
64 BYTE BUFFER
.4096 BYTE BUFFER
& CRT REFRESH
,
,
MULTIPLEXER
.8080 PROCESSOR
.8192 BYTE BUFFER
.8-8041 PROCESSORS
WI 64 BYTE BUFFER
REGIONAL SYSTEM
DISK STORAGE
.8085 PROCESSOR
.16K to 1 MEGABYTE
MEMORY
.8080 PROCESSOR
.8192 BYTE BUFFER
.FLOPPY DISK
CONTROLLER
::0
'TI
~
::0
1'1
STORING TRANSACTIONS
01:>0
'"
CD
,
~ tJ
DISK STORAGE
~
-....
)(
UI
CD
."
:.r-
0
:.r-
-f
0
n
:.-
...
CD
W
0
N
.[-:------]
REGIO~AL
SYSTEM
MULTIPLEXER
~I~---J
FORWARDING TRANSACTIONS
A-4
T: HOME
OFFICE SYSTEM
A SHORT l\}O'rE ON HIGH LEVEL LANGUAGES
AND MICROPROCESSORS
by Sassan dazeghi*
and Lichen Wang
S'rANFORD LINEAR ACCELERATOR CE1\}'rER
Abstr ac t
In this note, some of the practical aspects of bridging the gap
oet,ween high level programming language and computer hard,ware are
discussed. Several possible strategies are considered and the method
of half-compiling-half-interpreting is studied.
In dealing ,with
address space limitation (or tight memory situation) and slow speed
of micro processors running an interpreter, a measurement and
analysis technique is suggested. This analysis not only gives a good
estimate of the timing an~ storage requirement before the actual
implementation, i tal so helps to optimize the speed and storage usage
of the implementation.
The note
concludes with some results
concerning the implementation of the programming language PASCAL on a
family of micro processors.
The
question of
high
level
language
versus assemoly
language
programming is far from resolved, and
it is unlikely that
it .ill ever
be settled to the satisfaction of
everyone involved. Ho,wever, it can
safely oe said:
a
hign
level
language is
an essential programming tool
in large scale soft,ware
proiects. For large and medium scale
computers, the major applications that
~ere ~ritten
in assemoly
language,
namely
system
sofbware
such
as
compilers, interpreters,
operating
systems and even assemblers, are no.w,
to a very large extent, being ~ritten
in nigh level lang~ages.
the
first generation of the
microprocessors there
nas been
a
great deal of interest in
implementing existing high level languages
and even in defining ne.w languages for
th~se new devices.
~ith
In the cas~ of microprocessors,
the rather primitive nature of the
instruction sets of these machines and
their innerent address space limitation makes
them a less desiraole
target for
compiler writers
and
compilers.
Nevertheless,
starting
* WorK supported in part oy the Energy
Reasearch and Development Adminstration under contract E(043)5IS.
WEST COAST COMPUTER FAIRE
429
The early versions of microprocessor compilers and assemblers ,were
intended
to
run
on
available
medium or large scale computers.which
generate machine code for the target
microprocessor.
These
programs,
generally
referred
to
as
cross
compilers and assemolers, (themselves
oenefactors of the already existing
software tools
on
their
host
computer s) ,were made
ava ilable to
the microcomputer programmers through
time sharing nebworks or
in-house
host computers, and
thus ,were not
easily accessible to the small users
who .- had no extra support but their
microprocessors.
The resulting pressure from the
user community prompted
the microprocessor
manufacturers,
as
,well
as independent
soft~are
establishments, to provide resident soft,ware
for the
microcomputers.
Unfortu-
BOX 1579, PALO ALTO CA 94302
nately, the existing cross compilers
cannot usually oe used to "bootstrap"
themselves
into
a
"resident"
version, and the limitations of trie
microprocessors make the
task
of
,wr itinggood resident
compilers a
ratner difficult one_
An alternative
approach to this problem is the use of
"inter pr eter s ",wh ich do not try to
translate
the
set
of
actions
specified oy the user program into
mechine code, out
instead execute
tnese actions in their o.wn ,way_
'rhere are t,wo important characteristics of the
interpreters ,which
make them particularly suitable for
microprocessors_
The first is that
the high level language representation
of a
program is
generally
more
compact
than its assembly language
form_
In other .words, high level
languages
result
in
a
.denser
"encoding"
of
the
program. '-The
famous APL "one-liners" are an extreme
example of SUCh compact
encodings_
The second characteristic
is that
it is generally easier to mimic the
actions specified oy a program than to
translate that program into a sufficiently
different
language,
in
particular a
ffiachine language.
An
ooservation ,which supports this idea
is that interpreters
are
usually
much smaller than
"full" compilers
for high level languages_
Due to these and- other -similar
considerations, the first high level
language ~hicn gained ~idespread use
on microprocessors Mas an interpretive
BASIC.
The
availability of
very
c01npact interpreters, as ,well as the
simplicity of the language, made it
the microprocessors' i"universal" higo
level language. Triis is particularly
evident amongst
computer hoooyists
~itn
limited resources
and little
concern for speed and (in) efficiency
of the programs.
These interpreters,
in general, maintain a copy of the
program in its original te~tual form,
~ith little or no change in its representation_ Althougn this results in
ease of modification of the program
and meaningful diagnostic messages, it
is still far from optimal in terms of
the stora~e requirements, in addition
to being very inefficient in terms of
_running time.
Implementing an interpreter
WEST COAST COMPUTER FAIRE
compiler in assembly language is a
long and
tedious project.
Moreover, the ~ork has to be repeated for
each microprocessor, and
more often
than
not,
some
differences
are
introduced
in the underlying high
level language.
The standard method
of bootstrapping
a
self-compiling
compiler
(a compiler
Mritten
in
the language
it implements) into a
resident compiler appears to be a very
attractive approach in dealing ~ith
these
proolems.
Ho.wever,
before
starting any actual implementation,
some careful planning is needed in
order to overcome the problem
of
limited
memory
space.
Therefore,
as
an experiment
in
the
microprocessor sofbware
design, ~e
decided
to
try
implementing
a
compiler
for
the
programming
language
~ASCAL
on
a _ family
of
microprocessors.
One of the existing PASCAL compilers, the so called PCompiler [1], is
specifically deSigned-to simplify the
task of generating code for different
target computers.
This is
accomplished oy generating
code for a
hypothetical
6"universal")
Stack
Machine ~which is to be mapped into the
target computer machine code.
The
stack
machine
is
designed
to
simplify the compiler itself [2], [3],
by
leaving the
details of
the
(machine
dependent)
register
. assignment a-nd utl1fic:ition
---problem
to
the
fin al
impl erne nto r •
Another characteristic of the stack
machine
code (also
called
·zero
address" code) is the relatively short
average instruction length due to lack
of
register
specification
fields
~ithin
the instructions.
For these
reasons,
~e
adopted
a
modified
version
of the
P .Compiler
stack
machine as our~irt~al intermediate
machine, Mith the
idea that this
machine
could
be
implemented
(i.e.,
interpreters ~ritten) on a
variety
of
microprocessors
~ith
reasonable
efficiency.
Table-l
sho.ws
this
modified
instruction
set, Mhich basically satisfies the
follOoWing requirements:
a) ·rhe
instruction set
of
the I. M. ,
referred to
as the
Intermediate Language
(I.L.), is
qui te small.
Many studie;sQ..f the
instruction
sets
of
different
or a
430
BOX 1579. PALO ALTO CA 94302
computers [4J
have
ShQWTI that
the
bulk of
tne programs are
composed oy only a feM different
instructions, Mnich
also account
for
a large
.fraction of
tne
program's
running
time
(in
general, the opcode entropy is on
tne order
of 3-4
oits).
But
instructions
are
usually
an
integral number of storage units
and a large number of different
opcodes tends
to increase
the
average
instruction
length
(Taole-2, 808~ frequencies).
A previous experience in mapping
tne I.L.
into IBM 370 code [5], using
a moderately optimizing
transformation, resulted in an average length
of 4
to 5 bytes
per translated
I.L.
instruction.
The
PASCAL P
Compiler itself, a 4000 line PASCAL
program, Mas translated into about
15000 I.L.
statements. This turned
out to be equivalent of about 73000
bytes of the IBM 370 code, and did not
include the data area required ,while
running tne compiler.
It is clear
that a direct translation of the I.L.
into machine code, or even a straightfODward
mapping of
the I.L.
into
the microprocessor's memory, Mould far
exceed the availaole storage on most
of these machines.
b)
macnine
The I.L.
is relatively
independent and
it
can
be~easily
implemented on a variety
of microcomputers. Even though the
I.L.,
as
generated
by
the
P Compiler, could be used on the
target machine
in a
number of
different ~ays (e.g. direct translation, macro expansion, etc.), in
its final
encoded form
it is
intended for an interpretive implementation.
~o
deal ~ith this problem, Me
developed a set of programs to trace
and analyze the
I.M.
code -which
provide static and dynamic information
aoout the I.M.
instruction
set.
By
static information,
Me
mean
the
statistical
distribution
of
various
instructions in
a
given
program as
it
is
loaded
into
memory.
Dynamic
information,
is
based on the frequency of execution of
various
instructions
as
the
program
is
executed.
These
distributions are obviously program
dependent and the dynamic properties
are, in addition, data dependent. We
considered the PCompiler itself to
represent a extreme case in terms of
size and
complexity both
as
a
program and as
data
(Mnile oeing
compiled) •
The
P Compiler
,was
therefore used as
a- benchmark to
compare different revisions of
the
I.L.
with regard to the projected
size and speed of the encoded program.
c) Tne level of complexity of
the
instructions
represents
a
compromise
bet,ween
the
source
language and the potential target
macnInes.
To this end, the I.L.
includes "floating
point", "set"
(as used
in PASCAL)
and address
computation instructions, but does
not provide bit manipulation operations sucn as
"Shift", "Rotate",
and "8it :rest"_
d) ~he I.M.
code
is flexiOle enough so tnat it can be
relocated in memory or divided into
segments or pages.
e)
rhe
I.L.
includes
provisions
for
optional
runtime cnecking
so
that
the
runtime errors can be easily traced
to the source
statements.wn icn
caused them.
'rhe standard May to cut down on
the "opcode space" of
the instructions
is to use some form of the
Huffman-encoding of the opcodes, in
.wn ich the mos t fr equent opcode has
the
shortest
representation.
HQwerer,
practical
considerations,
such as operand and memory alignment
requiments, complicate the
problem.
For example,
the
"LOD" and "LOC"
(loading variable values or constants
on top of the I.M.
stack) are the
most
frequently used
instructions
(Table-3). The typical "LDC" instruction should
be able
to specify a
full integer constant (a 2-byte quan-
The runtime environment of tne
closely
resembles that
of
PASCAL
and
other
block
structured
procedural
(ALGOL-like)
languages.
Sucn an environment is
nighly
useful
to
the
compiler
.riter, and
could also be used oy
programs ~ritten directly in the I.L.
thereoy
simplifying
tne
storage
management proolem.
I~M.
WEST COAST COMPUTER FAIRE
431
BOX 1579, PALO ALTO CA 94302
tity) and the "LOO" operation should
include both a "level numoer" (typically in the range ~ to 7) and a
sufficiently large
"offset" field.
Tnus even ~ith duffman-encoding, LOD
and LDC .would still require about 2-3
oytes
per
instruction.
In
the
case of the compiler, these instructions alone ,would use up 10-15
K
bytes of
memory.
A closer look,
ho.wever,
shOows
that tne
operand
distributions are even more skewed
than
the
opcode
distribution
(Taole-4). This suggests tnat,
if
needed,
the
operand
fields
could
also
be rluffman-encoded.
Since the
above t,wo
instructions
are also neavily represented in the
dynamic instruction counts, ~e decided
on
a
fairly
simple
encoding,
namely,
dividing
these
into
different groups, depending on the
size of the operand.
For tne "LDC" instruction, Me
noticed tnat tne great
majority of
the
(integer) constants
used
in
programs are positive, and, in the
case of the P Compiler, about 80% of
tnese constants are in the range 0
to 31. 'rhus if ,we use a 3-bit opcode
and a 5-bit operand field, a large
fraction of LDC instructions could
be represented oy a new one byte
instruction. This ~as in line Mith an
earlier decision to align instructions
on oyt-e
bounda-ries- bUt --to -- al1o.w
operands to cross over oyte
boundaries,
~nenever
this ~ould
not
create a major runtime penalty in
extracting the operand fields. Like~ise, for the LOD
instructions, it is
knOwn that most of the references are
to the
aosolute Global
variables
(those defined in the main program)
and
tne
most Local
ones (those
defined in
tne very
procedure in
~nicn
tney are
oeing referenced).
rhe
Local
variaoles
are,
most
often,
simple
variables
(as
opposed
to "structured"
variables
in
PASCAL terminology) and fe,w in
numoer, so
tneir offset
value in
the address field
is small.
For
tne ulooal var iables,
nOoweve r , .we
noticed tnat a f~w "hyperactive" variaoles are overly represented in the
reference pattern.
(One can Observe
tnis
pnenomenon oy looking at
a
cross
reference
listing of
any
program, ,whether ·wr itten in assemoly
or nigh
level
language.)
Reord-....WEST COAST COMPUTER FAIRE
432
ering
the
Global
variables
(performed
either
by
the
programmer or the compiler) so that
simple
variables
precede
larger
(structured) variables and are ordered
oy
their
reference
frequencies,
results in
a short form (I-byte)
I"LOD" instruction .which can replace
the majority of the original "LOD"
instructions. Of course, one has to
provide
the
long form
of these
instructions, so that none of these
decisions impose any restrictions on
the language.
The important point,
hOowever, is that these long forms
are not employed frequently enough to
maKe a significant contribution
to
the program size or execution time.
The relatively high frequency of
the
procedure
call
instruction
"COB" reflects
the current
trend
in programming style,
Mhich emphasizes
modular
and
structured
program
organization.
(The
PCompiler consists
of about
100
procedures).
The
efficiency
of
and
the implementation of
nCall n
"Return" mecnanisms thus becomes an
important factor in the efficiency of
the overall program. For this reason,
it
~as
decided to
include
the
somewhat
redundant nMST n instruction
~hich flags tne
oeginning of evaluation of parameters prior to a Call.
This instruction helps speed up the
Ileall"__ sequence in ouc __ ac.tuaJ impJe-_
mentation, but it can be removed from
the instruction set if storage limitation becomes an
issue.
The call
instruction "_CUB", however, presents
a
more interesting problem.
The
straightfor~ard
implementation
of
this instruction -,would include the
entry point address of the Called
Procedure in the operand field of the
instruction.
By
Observing
that
there
are usually many more Calls
than procedures, ,we concluded that
procedure names
(addresses)
,were
good candidates
for more
compact
encoding.
Using a procedure number
(name) ~ith a much
smaller
range
than a procedure address, ,we can use
a 2-oyte ~CUBn instruction, instead of
the
3-oyte full
address version.
Furtner
examination of
the
call
instruction reveals that not all the
procedures are- alike,
since only a
f~w
procedures are
the target of
tne oulk of the call instructions
(Table-5). Having
set aside
some
BOX 1579, PALO ALTO CA
9430~
--
4-oit
opcodes
in the
beginning,
chose
to
use
smaller
numbers (shorter representation) for
the most frequently
called procedures~
and larger ones for the less
popular ones. This encoding all~s up
to 16 procedures to oe called by
l~oyte call instructions (about 85% of
the procedure calls in the compiler),
~hile the
rest of
them are called
oy
the 2-oyte
call instructions.
Note that having a "procedure address
table" (PAT)
to implement such calls
is also essential to the code relocataoility at the procedure level.
Moreover, ,we have envisioned a simple
overlaying scheme
,which
uses the
same
.I?A·r
to
"page"
procedures
into the main storage from a secondary
storage device such as floppy disks.
In such a case, the PAT. entry Mill
contain the main memory address of the
procedure, or its
seconday memory
address (disk address), as
.ell as
appropriate
flags.
The
I.M.
code is
read-only and
paging out
is not necessary; one only has
to
inval ida te
the
PA'r
entr ies
for
the segments overlayed by a paged-in
procedure.
~e
The next candidates
for
the
4-oit
opcodes,
oased
on
the
frequency
table,
~ere
conditional
and
unconditional
branch
instructions.
Over half
of
the
conditional
oranches
are
fOuward
branches
to targets Mithin 16 I.M.
instructions from the source of the
branch.
Although
this
represents
a
large
number
of instructions,
,we realized tnat the naverage length n
of the final
encoded instructions
~ould
be
closer
to
2
·bytes.
.Consequently cutting do.wn the ratio
of branch instructions
Mith small
branCD distances. In addition, exact
determination
of all
such
short
"relative
oranch"
instructions
requires a non trivial, multi-pass
algorithm, ,which ,was considered to
outweigh
the
potential
benefit.
Instead, Me settled on a 12-bit target
address .wnich is
relative to
the
oeginning of
tne procedure.
This
puts a limit of 4K bytes on the size
of each procedure Mhicn, given the
projected code density, ~as felt to
be qui te
adequa te.
('rhe
largest
procedure in the .I? Compiler is encoded
in
,well under -2K bytes).
Since
oranching
to
a point outside the
~WEST COAST COMPUTER FAIRE
433
procedure
containing
the
branch
instruction is not allo.wed in PASCAL,
the "procedure-relative" nature of our
branch instructions does not pose any
problem. Furthermore, procedures can
be easily "relocated"
in the main
memory Mith no restrictions and in
a
completely
transparent
mode.
This
feature is
also needed
to
simplify the overlay scheme discussed
previously.
without going into great detail
in describing
the
analysis
and
encoding of
the
other
instructions, Me
note that the first 10
instructions of the I.M. instruction
code account for over
75% of the
static
instruction
count,
and
somewhat smaller but still significant
fraction
of
the
dynamic
count. Consquently, ~e can afford to
be less concerned Mith the compactness
of
representation and
pay
more
attention to the efficiency of the
implementation of some of the statistically infrequent but, dynamically or
other,wise,
important
instructions.
One of the surprises in
the static
count listing is
that the integer
add nADI" instruction is les. frequent
than the number of procedures.
In
other ,words the average procedure in
the .I? .Compiler contains less then one
AdditIon operation, and the number of
SUbtraction, Division or Multiplication operations are ,well oelow the
number of Additions. In this sense,
the lack of arithmetic
instructions
for operations
like multiplication
and division, at least as far as the
compiler Mriter is
concerned,
is
not
a major
loss.
Ho.wever, the
soft,ware
implementation
of
these
instructions
should
favor
the
running
time in
the
space/speed
compromise to make them more attractive to numerical applications.
After completing the design of
the instruction set, ,we ,were able to
encode the
P Compiler and get an
accurate measure
of the
program's
total memory
requirement as
.well
as
the contribution of individual
instructions
to
the
total
sum.
(Table-6 summarizes these results.)
These figures correspond to a version
of the compil~r .hich ~as adopted for
the
IBcl
370
implementation
and
includes features
(such as alignment
of variables on appropriate byte boun-
BOX 1579, PALO ALTO CA 9430~
A more
meaningfull evaluation
.would be the
compar 1son
of
the
t Lll i ng
res u 1 t s
0f
. the
I • L.
interpreter
~ith
the alternatives
available
to
the
microprocessor
programmer,
namely
the
Assembly
Language and the BASIC codings of the
Quick-Sort
routin~.
Although
the
assemoly language implementation
of
the
sort routine is not completed
yet, the (integer) BASIC coding of the
program seems to oe about 18 times
slower than the PASCAL version. (The
'finy BASIC [6J Quik-Sort program is
about 750 bytes long and sorts 100
numbers in
24 seconds.
This time
increases to about 360 seconds for
l0~0 random integers.) Even though the
performance
measurements
of
the
interpreter is at a very early stage
at the time of this ~riting, by an
extrapolation
of
the
available
results, it seems that the interpreter
is efficient enough to be useful in
compiling large programs such as the
P compiler. This ~ill make the micro
prossesor based compiler
a
stand
alone system ~ithout the need for
external sofhware support from larger
computer s.
daries and
collection
of
other
information),
Mhich are irrelevant
to the
microprocessor
implementation. By eliminating these features,
Me feel that tne P Compiler ~ill fit
in aoout
25-26 -K
oytes Mitnout
resorting to the other storage saving
options mentioned earlier.
Until
tnis
point
in
the
design,
no
actual implementation
of the interpreter
Mas attempted.
Only a fter ,we ,we re reasonaoly sa tisfied ,wi th the encoded size of our
oencrunark program, did ,we decide to
Mrite an interpreter
for a particular
microprocessor.
Once
the
representation of the I.M~'S Stack and
the general plan for implementing the
Instruction
Fetch
and
Execution
cycles
in
the
interpreter ,were
defined, the coding of the individual instructions proved to
be
a
quite simple and
almost mechanical
task.
The
resulting
program,
excluding its taoles and the section
dealing Mith floating point instructions (not yet implemented), is about
1.5K bytes long and execept for a
small I/O interface is entirely self
contained.
.
In order to ootain an estimate of
the performance of
the interpreter
,we
decided
to
use a Quick-Sort
program (due to ,C.A.R. Hoare and J.
Sedgewick)
,wnich
,was
extensively
--used
intheevaluatio-h----cffthe
Pascal 37~
compiler.
The
PASCAL
source of tnis program (including tne
I/O and a Random ~umoer
generating
routine) is
about
130 lines long
and it
compiles
into
410
I.L.
instructions.
This in turn can oe
translated into l24~ bytes of tne
IBM/370 code or encoded in 5d0 oytes
for tne interpretive
execution by
tne
microprocessor.
The program's
running time, ,when sorting ~ "random"
integers, is proportional to &*LJG(~)
and takes about
2-seconds on the
370/168 for N = 10000.
The
2MHz
8~80/Z80
microprocessor
Quick-Sort,
using tne same program, sorts ~ =
1000 randomly generated numbers in
less than 20 seconds under the current
version of tne
interpreter.
This
rudimentary comparison sh~ws that the
interpretive
microprocessor version
of tne sort routine is about 100 times
slower tnan the "compiled" 370/16d
code~
WEST COAST COMPUTER FAIRE
434
In conclusion, the "interactive"
analysis
technique
presented here
proved
to oe
a very helpful and
effective tool
in resolving
some
important design issues and answering
~ritica~ qu~~ti9ns _ bef~re any _impl~
meritat io-n de-cislon- ---had to be made.
All too often, these early decision
are made
prematurely
and Mithout
enough
data.
The
ability
to
measure the cost and effect of such
decisions, before being committed to
them, is essential in designing soft,ware systems ,which must meet difficult requirements.
Although
the
major concern in our experiment ,was
the limited
address space of
the
microprocessors, one
could use
a
similar approach in estimating the
running
time
(or
other
dynamic
properties)
of
programs,
thereby
avoiding
potential pitfalls.
with
the experience gained by implementing
the I.L.
on the 8080 microprocessor
family, ,we feel that the implementation
of
such
interpreters on
other existing or future microprocessors can be an
effective -,way of
overcoming
the
deficiencies
and
limi tations of microprocessors as ,well
as providing a reasonable
vehicle
BOX 1579, PALO ALTO CA 94302
for
transporting
different machines.
software
across
AKduwLEDGEriEriT
we ~ish to thank Len Shustek for
his help in reviewing this note and
providing the tao1e of 8088 opcode
frequencies [5].
REFERENCES:
dORI, U.
AMMAN, K.
NAGELI.
'The PASCAL P
C~PILER,
Implementaion
Note~',
8erichtes des Instituts fur In£ormatik, E.T.H. Zurich, Dec. 1974.
[1]
JEdSEN,
[2J
~WEST
K.
H.
D.
An Introduction', I.E.E.E.
May 1977.
-
Computer,
[3J N. vlIR'rH, 'Steak vs. Multiragister
.Computers'-,
ACM
SIGPLAN
Notices Notices, March 1968.
(4)
L. SHUSTEK and B. PEUTO,
'Current Issues in the Architecture of
-Microprocessors', I.E.E.E. .Computer,
Dec. 1976.
[5J S. HAZEGdI, 'Bootstrap and
Adaptation of a PASCAL -Compiler on the
:IBH/3 70 Computer_ " .Computation Group
Technical
Memo
(in
preparation),
Stanfor Linear Accelerator ·Center.
[6]
BASI~',
L. wANG, _' Palo Al to Tiny
DDJ, VOL 1, NO 5, May 1976.
8ULMAN, _'STACK COftP(JTE.RS.:
COAST COMPUTER FAIRE
435
BOX 1579, PALO ALTO CA 94302~
Ot'ERA'rION
OPERANDS
Ad! (AdR)
ADI (ADR)
AND
CHt<
CSP
CUP
DEC
LAB
LAB
DEf'
ulf'
DVI
LAd
Q
nt~t-Q
Q
(psuedo op)
a t
n t~2t OIV (/)
(OvR)
GEQ
'r (, Q)
LOC
M0D
t~OV
MPI
{LAB set to the IntegerQ}
{Set Difference}
nt~2t
'r (, Q)
LuJ)
{bounds checking}
{call stnd .. proc .. }
{call user proc .. }
-(P<=t<=Q)~£RROR
PU'::;rl (pc): pc-EQ
PuSH (pc): pc-EQ
BQIl
FJP
FLu
E'Lr
lOR
{aosolute valLle}
P,Q
'r, P, Q
IXA
LAd
LSA
LOA
LDe
LEQ
LES
n t~A.aS (t)
nt~2t + t
nt~2t AND t
U
'r,p,Q
El~'r
GR'r
INC
IND
INN
IN£
Ef'f'EC'r (3)
{entering proc .. LAB,
type T, level P,
local stack frame size
nt~2t
Q)
Q
(2t)
t~FLOA"r (t)
nt~2t >= t
nt~2t > t
nt~t + Q
Q
nt~M[t+QJ
{branch on FALSE}
{FIX to FL0A'r conve r sion}
,"
"
"
2t~FLOAr
T (,q)
{ind irect load}
{set memoersnip test}
{set intersection}
n t~2t IN t
nt~2t J' t
nt~2t I t
Q
nt~2t + Q*t
(pseudo op)
nt~ .. Q
Q
'~t-E .. M[J
P,.Q
T,Q
t-EQ
T (,T)
nt~2t <= t
T ( ,Q)
nt-E2t < t
Q
(pseudo op)
'r, P,Q n t~
nt~2t MOO t
t4 [ 2 t.:Q ] -EM [ t: Q
(MPa)
nt~2t * t
Ms'r
l~EQ
'r ( , Q)
NEtl
\i
~GI (NGR)
·rae
'r, P,Q
<> t
M [tJ -Ehp: np~hp-Q
{NEw stnd .. proc}
{return to calling routine}
{release dynamic storage}
{mark dynamic storage}
{generate a single member set}
{ ind irect store}
{terminate execution}
{store into level: P, offset Q}
{'rRuNC operator}'
{unconditional oranch}
{set union}
{indexed oranch}
EXIT (t)
M[J~t
n t~'rRu~C (t)
UNI
No'rA'r lOl~S
{begin proc. parameter list}
nt~2t
hp-Et
M[tJ-Ehp
nt-E2t - t
nt-E [tJ
M[2tj-Et
UJPQ
XJP
{move Q 'locations'}
POP (pc)
SAV
8TR
{LOCation counter}
{load from }
nt-E -t
'r
Rs·r
SBl (3dR)
SGS
;:)'ro
STP
{com~ute 'base/index' address}
{label definition}
{load address of string Q}
{load address}
{load constant}
·nt~--;;;.t
J.iu·r
RE'r
Q}
= t
-t~ (pc~
Q
t
pC~Q
t-E2t iB t
Q
.:
pC~Q
+ t
~
.:.:= assignment,
~'.:.:= conditional,
t :.:= 'rop stack element,
2t .::= 2nd Top stack element ,
nt .:.:= Ne;w top stack element (implies POPing the old one),
pc .:.:= program counter,
hp .:.:= dynamic storage pointer,
P,Q.:.:= instruction operands,
L .:.:= current (static) level
'r .:.: = type of tne operand/procedure,
M :.:= data stora~e array,
M[i:jJ .::= locations M[iJ through M[i+j-l],
M[ij :.: == M[i:l],
.a ::= address of the entity 'a',
;:.:= case_level address (i .. e .. offset j of le\1el i).
TABLE I
~ WEST COAST COMPUTER FAIRE
I .. M.
I~$~RUeTI0N
436
dET
BOX 1579, PALO ALTO CA 94302~
%
OPCODE
LOD
LODr
LODI
L0D
LOD
INC
Ail!,)
I~C
R,M
R
rtrt
Lot ,R
R,R
R
rlL
RR
INSTR~
12.92
11.65
9.63
7.66
7.06
6.39
5.71
5.55
OPCODE
%
12.92
24.57
34.21
41.87
48.93
55.88
61.5:1
67.14
LOD
LDC
18.8
15.5
7.1
7.1
(PL/M PROGRAM)
Msr
CLJP
6.~
BJf>
STR
uJJ?
LDA
sra
IND
5.7
5.2
4.4
3.0
2.7
2.6
2.4
2.3
2.1
1.7
1.6
1.6
1.6
1.0
.9
.8
.6
.6
.6
.5
.5
BQU
%
OPCODt::
.CALL
LOD
JMP
POP
PLlSrl
I~C
RE'f
L0DI
LOD
JlotP
L0DI
,Cl~PI
XCd
LD
I~s·rR.
13.0~
R,R
CC
RR
RR
R.R
RR
R,M
U
R
N
tiL
9.06
7.96
6.96
6.85
4.46
4.36
3.96
3.70
3.28
3.17
2.91
2.89
2.41
% CU1'1i-1.
13.00
22.06
30.02
36.98
43.84
48.30
52.66
56.62
60.32
63.61
66.78
69.69
72.58
74.99
(ASSeMBLY LANu. PR03RAlot)
s'rA'rIC 81/J8I/J OPCOOE
Ii~S'r ~
%CJM,'1.
FREQUEi~CIES
'rASLE 2
CSP
IXA
INC
DEC
NEQ
M0iJ
LSA
LCI
ORO
UNI
NOT
RE'r
Er~T
ADI
Ii~N
.3
.3
AN!)
LBQ
GR'r
sal
XJP
LES
10R
':;EQ
£t1f>I
CdR
D"I
NGI
SGS
.1
.1
.1
.1
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
.0
MOD
DIF
s'r~
ODD
~.aI
'rOTAL
COu~T
=
% CUM!-1 ~
RAw COUNTS
18.8
34.3
41.5
48.6
54.7
61r:i.5
65.7
70.1
73.2
76.0
78.6
81.1
83.5
85.6
87.4
89.0
90.6
92.3
:13.3
34.3
95.1
95.8
96.5
97.1
97.7
98.2
98.6
98.9
99.1
99.2
99.4
99.5
99.6
99.7
99.7
93.8
99.8
99.9
99.9
93.9
99.9
99.9
99.9
100.0
2736
2254
1037
I1tl37
877
837
756
647
445
402
338
361
346
308
252
238
236
234
156
138
123
100
96
96
81
14St18,
ENTROPY
30
49
44
25
24
20
19
13
13
9
9
7
4
3
3
2
1
1
1
=
4.10
s'rAfrc I.L. OPCODE FREQUENCIES
FOR ·rrlE PASCAL J? COMPILER.
TABLE 3
WEST COAST COMPUTER FAIRE
437
BOX 1579, PALO ALTO CA 94302
O~ERAND
COUNT
COMl'tU.
BRANca
DISTANCE
% COuN'r
RAANG£
2id7
227
193
234
0
1
2
4
8
16
32
64
128
256
512
1024
2d48
4096
8192
16384
L~UMBER
3~5
26d
3139
74
73
32
3
0
0
~
0
1
-1024
-512
-256
-128
-64
-32
-16
-8
-4
-2
-1
9.1
19.2
27.8
38.1
51.7
63.2
76.9
80.2
83.4
84.9
85.0
85.0
85.0
85.0
a5.0
85.0
2d7
434
627
861
1166
1426
1735
1809
1882
1914
1917
1917
1917
1917
1~17
1~18
DISTRItW'rION OF "LOC" OPEAAtJDS
0
1
2
4
8
16
32
64
128
256
512
IlfJ24
2048
Nu~aEa
-CJO~T=
COUN'!'
CUMMO.
%
~
0
8
9
11
13
10
1
0
148
DIS'rII.~CT OPERANDS=
2254 OR 15.5% OF 'rtfE 'N'rAL.
vALUE
R.RANGE
0
1
2
4
8
16
32
64
128
256
512
1024
OF
COO~T=
INTERVAL
COUNT
CUMM.
COUNT
52
52
52
44
35
24
11
1
III
~
r)
0
0
0
0
32
343
179
114
73
54
21
8
1
0
0
0
0
32
375
554
668
741
795
816
824
825
COUL~T
COUNT= 877 OR 6.0% OF THE -l'O'rAL.
FORwARD/BACKwARD dRANCH RATIO = 15.0
338
iii
181
233
757
--416
230
283
17
224
39
0
18
12.3
12.3
18.9
27.4
55.1
338
3313
519
752
1509
1925
2155
2438
2455
2679
2718
2718
2736
DISTiUBu'rION OF BRANCH DISTANCES
FO!l 'rHE "FJ B" INs-rRUCTION.
10-,;3 -
78 .. 7
89.1
89.7
97.9
99.3
99.3
1011l.0
84
OF DISTINCT OPERANDS=
2736 OR. 1d.8% OF rdE 'ro'rAL.
DIs·rRIBu·rIOI.~
OF "LOO" OPERANDS
Il~3TitOCTION
Ort:':itANO DIs'raIBU'rIONS
(F0R fdE PASCAL_P COM~ILER)
'rAdLE 4
~ WEST COAST COMPUTER FAIRE
438
BOX 1579, PALO ALTO CA 9430~
01.
~
LOC
I
ium
18.8%
U?JO
0 10.7%
107.
21.2Y.
ERR0R
I
28.8%
LOC
1 11.Sy'
207.
!
LOC
15.5%
LDC
lL9%
MST
7. 1/0
FJP
9.2%
CUP
7. 1:t.
STR
7.7%
FJP
STR
UJP
LOA
5TI21
mrr
6.0%
5.7%
5.2%
4.4/'
5.5Y.
4.2%
3.9%
3.7%
-~-:i¥~. "
LOA
INO
IXA
DEC
ADI
NEQ
CSP
TIT
-, ;.r'
EQU
INC
lIE
2.5%
2.41.
EQU
UJP
2.8Y.
2 4r.
GENO
SKIP
NEXTCH
Cr2JMPTYP
GEN2
GEN1
TlrAlJ
.~
E:NTF:RfIl
S~RCH
5.1%
4.9%
4.6%
4.3%
3.8%
3.4%
~
.tr%
2 10.1%
LOC
4 12.2%
LDC
8 15.9%
307.
407.
507.
607.
LOC
16 13.6%
LOC
32 16.1%
70r.
V.
.7~
-~1/'
807.
.lY.
0THER
0THER
3. 1Y.
3.0%
I NSYMBr2J 16.9%
LOC
21.4%
13.4% I
~THER
14.5%
LDC 64
LDC 128
3.9y'
3.8y'
90r.
100%
I. L. STATIC
COUN'r
Il.~ST.
I.L. DYNAMIC
IN3T. COUN'r
CALLeD PROC.
DIS'fRIBUTION
nLOCn OPERAND
DISTRIBUTION
OPCODE/0EERAND DISTRIBUTIONS OF TrlE BENCHMARK PROGRAM
'fABLE 5
WEST COAST COMPUTER FAIRE
439
BOX 1579, PALO ALTO CA 94302
OPND
OPC00E
FIELD
o"'k1xXXXX
110XXXXI
~
010~0"'10
1000XXXX 08
0110XXXX
10i(}lXXXX 08
0011000k1 DB
"'01"'01~0 016
001"'000111 016
01000100
01OO1001
110XXXxt'J
001111301
~011010~ 08
0in1~lij1
016
0111XXXX
01t:J01~10
1010XXxx
1e11XXXX
0100001711 08
00111010
0011011k1 OX
001111t:J101 D16
IiHn01~1(J0 D8
0010017101 064
t:JHhJ17J111
111"'10101171 08
II1HHlit111
17J1a111101
193
66
128
96
144
48
36
32
68
73
192
57
52
53
112
74
160
176
65
58
54
37
410
33
71
42
87
93
LOCI
L00L
l~S'r
FJJ?
CUPl
UJP
S'rRLG
LOO
LDC
3T0
ADI
LODG
EQiJ
LOALG
LDA
"'~111100
00110liHt1
fcHlll"'001
01"'11100
00111101
01ichH101
0fcHl1111"''''
"'1"'01011
00101l7JliH
01001110
01"'10101
01001100
1711011"'01
01"'100101
01"'10100
01001111
I:HH11111
00101011
D16
016
016
08
67
46
86
90
91
59
··62
55
60
50
49
92
61
77
56
75
41
78
85
76
8~
08
Dd
69
84
79
63
43
RELA.
COUN;r
2221
1517
1"'37
877
836
756
677
627
613
443
14.8
10.1
6.9
5.8
5.5
5.0
4.5
4.1
4.0
2.9
2.5
2.5
2.5
2.2
2.1
1.9
1.9
1.7
1.7
1.5
1.5
1.5
1.3
1.3
1.171
.9
.8
.8
.6
.6
.6
.5
.5
.3
.3
.2
.1
.1
.1
.1
.1
.0
.O
.0
.0
.0
.0
.0
.0
.0
38~
388
383
332
315
CSP1
2~7
SdI
IND1
IXA1
296
267
265
236
236
234
204
MOV
NEQ
LSA
L008
.CUP
LOC8
ORO
!L~O
UNI
l~OT
E1.'l·r
01001d"'11
"''''101110 016
i(} 1 I() 1 1711 H1
01011010 08
a11011011
00111011
d-J11111iJ
0011"'111 D4'"
AdS.
COUNT
RE'r
IXA
li'lN
NEw
2~1
156
138
134
123
1013
96
96
81
ihl
LEQ
57
49
44
·GR'r···
25
XJP
LES
srRS
s·rR
lOR
GEQ
MPI
20
16
15
15
13
13
9
9
7
5
4
3
3
AL~D
C£o1PM
01/1
CSP
NGl
.-:)GS
£0100
DlF
s·roa
Ad!
RB'r
CMP3
INDS
'r0'rAL
C0Ul~'r
CUi'4M.
COUNT
Ir~3'rK •
LENGrH
1
1
1
2
1
2
2
3
3
1
1
1
1
2
3
1
1
1
1
2
.0
.0
.171
.0
14.8
24.9
31.8
37.7
43.3
48.3
52.8
57.0
61.1
64.1
66.7
69.3
71.8
74.0
76.2
78.1
80.1
81.9
83.7
85.2
86.8
88.4
89.7
91.1
92.1
93.171
93.9
94.8
95.4
96.1
96.7
97.3
97.8
98.2
98.5
98.8
99 .. 0
99.1
99.2
99.3
99.4
99.5
99.6
99.6
99.7
99.8
99.8
99.9
99.9
99.9
99.9
99.9
99.9
99.9
99.9
10"'.0
18
3
2
9
171
2
1
1
11
1
3
1
2
1
1
1
6
1
3
3
1
1
1
3
1
2
1
1
1
1
1
1
1
2
2
14975,
BYTES
28710.
..0'"
2
2
1
1
1
1
1
TO'rAL
LENG'rrl
2221
1517
1037
1754
836
1512
1354
1881
1839
443
389
388
383
664
945
297
296
267
265
472
236
4212
612
402
1404
0
268
123
100
117156
96
243
80
114
49
44
2S
120
16
45
45
13
13
9
27
7
10
4
3
3
2
2
1
1
2
2
RELA.
LEl'~G'rH
7.7
5.2
3.6
6.1
2.9
5.2
4.7
6.5
6.4
1.5
1.3
1.3
1.3
2.3
3.2
1.0
1.0
.9
.9
1.6
.8
14.6
2.1
1.4
4.8
.0
.9
.4
.3
3.6
.3
.8
.2
.3
.1
.1
.0
.4
.0
.1
.1
.0
.0
.0
.0
.0
.0
.0
.0
.0
•0
.0
.0
.0
.
~
.0
Il~'rERMEDIA'rE LANGUAGE INs'rROCTIONS
THE dENCHMARK PROGRAM ( P_COM PILE R) •
El~C()DED
~'OK
TABLE-6
WEST COAST COMPUTER FAIRE
440
BOX 1579, PALO ALTO CA 94302
COMPILER CONSTRUCTION-FOR SMALL COMPUTERS
R. Broucke
Dept. of Aerospace Engineering and Engineering
Mechanics, University of Texas at Austin
Austin, Texas 78712
Abstract
4.
We describe a simple parsing algorithm that
can be used in a compiler to translate complex
statements in machine instructions. It could be
used on any small computer. To describe the
Parser in detail we also include a SNOBOL-implementation of it (one page of coding only) and
three examples of translated statements.
Introduction
In the present article we describe a simple
parser that could be easily implemented on a
small computer or even on a microcomputer. The
Parser is the heart of any compiler. It translates the complex statements of a higher-level
language and decomposes them in small elements,
eventually in machine instructions.
In order to be able to describe the parser
we assume that the higher-level language is
Fortran and that the machine language has only
six instructions: Add, Subtract, Multiply,
Divide, Exponents and Store. In order to test
the algorithm we programmed it in SNOBOL4 which
is a well known language for symbol manipulation.
We give the complete listing of the program (only
one page) at the end of the article, together
with a one-page output of the program: the
translation of three fairly complex Fortran
statements in elementary operations. The
elementary operations are r~eceded by the word
CALL. The reader who is not too familiar with
SNOBOL4 will be able to understand the
mechanism of the Parsing algorithm by carefully
studying the three examples.
We hope that this short presentation of a
"Simple Parser" will help some of the experienced programmers in building simple compilers
for their personal computer.
Description of Parser
We insist only on the principal ideas
ana precedence rules that make up the body of
a parsing algorithm. In fact we are restricting ourselves to the following simple arithmetic
expressions.
1.
2.
3.
There are only five ~inary operations:
exponents, multiply, divide, add and
subtract, identified by the symbols
**, *, /, + and
There may be an arbitrary number of
parentheses, but they have to form
matching pairs.
There are no constants in the expressions,
but only variables, (of any length, starting with a letter).
WEST COAST COMPUTER FAIRE
441
There are no subscripts or dimensioned
variables.
5. No considerations of type are made (such
as integer or real).
The parser program has 60 SNOBOL statements. The first 16 lines are Pattern
definitions and the last 16 lines are the main
program. The other 28 lines are the four subroutines of the program: EXP, COMPIL, POPT,
DROPT. The subroutine EXP is really the
heart of the compiler; it transforms any
expression without parentheses into a single
variable.
The basic principle of the Parser consists in searching for elementary expressions
called Binaries. A Binary is a pair of
variables separated by an operation such as
**, ~, /, + or -. The subroutine EXP compiles
these binaries by replacing them with a
tempory variable inside the statement and
simultaneously generating a CALL statement as
output.
During the compilation process of any
statement, we use the following precedence
rules:
All expressions inside parentheses are
compiled first; pairs of parentheses are thus
removed gradually until a "level zero"
expression with no parentheses remains. A
call to the subroutine EXP is made for each
pair of parentheses. The final expression is
then compiled by a last call to the subroutine
EXP. Inside the subroutine EXP, the following
precedence rules are respected.
The exponential binaries (of the '-form
A**B) are compiled first, from left to right
as they occur in the statement.
The multiplicative binaries (of the form
A*B or A/B) are treated next, from left to
right.
Finally the additive binaries (such as
A+B and A-B) are compiled, again from left to
right as they occur in the expression.
A call is made to the subroutine COMPIL
for each binary that is found in the expressio
Also, a temporary variable is generated (a
letter T followed by a 5-digit integer) for
the storage location of the result of the
binary operation. For instance the result of
A*B may be stored in TOO012. The label
T00012 is constructed by the SNOBOL program.
At the end of the compilation of A*B = T00012,
the program checks if A, B happen to be
temporary variables. If they are, they will
BOX 1579, PALO ALTO CA 94302
be stored in a stack (last-in, first-out
principle) with available temporary locations
(TAVAIL). This is done by the subroutine DROPT,
with the purpose of optimizing storage locations
in the object program. The subroutine POPT that
finds temporary locations whenever they are needed
will first search in the table of avialable
temporaries. If this table is empty, a new
temporary variable will be constructed. The reader
can understand this feature by examining the three
examples of compiled statements given at the end
of the text. It can easily be seen that the flowchart of the program can be represented as follows:
COMPIL~ DROPT
MAIN --+ {EXP - -......) {POPT
DROPT
WEST COAST COMPUTER FAIRE
442
BOX 1579, PALO ALTO CA 94302
= 'ABCDEFGHIJLKMNOPQRSTUVWXYZ'
ALPHA
DIGIT
ALNUM
B
B~
= '0123456789'
DIGIT
=
= ALPHA
t
t
= SPAN'B)
=
=
LP
BS
RP
as
VE
EXX = as
MULD I V
AOOSUB
BINARYE
BINARYM
! .,
'C'
')'
=
' •• '
CANYCALPHA) CSPAN(ALNUM)
,,
» • VAR
=
C. • • ! • " ) • MD
= 65
a5 C.+· ! ._,) • AS
= BS VE • LVAR EXX
BS VE • RVAR
VE • LVAR MULDIV BS VE • RVAR
BI~ARYA
VE • LVAR ADDSUB BS VE • RVAR
P~xP
LP BREAK"C)') • INSIDE RP
TPAT
'T' ANY'DIGIT) ANY (DIGIT) ANY(DIGIT) ANY(DIGIT) ANY(DIGIT)
=
=
as
= as
=
DEFINE('CO~PIL(OPERTN'AI'A2'RE)')
:(END.C~P)
=
COMPIL
OUTPUT
DUPL" ',30) 'CALL I OPERTN 'C' Al '.' A2 " , RE ,).
DROPTCAIJ
DROPT(A2)
: (RETURN)
END.CI'tP
OfF INE ( 'POPT') ,)
:CPOPT.ENQ)
POPT TAVAIL CI,' BREAKC',-) • POP)
:S(POP2)
TE~PNR
TEMPNR + I
POP
'T' DUPL('O', 5 - SIZECT£MPNR» TEMPNR
Popz POPT = POP
:CRETURN)
POPT.ENL)
OEFINEC'DROPT(Tl)')
:CO.END)
DROpT Tl TPAT
:FCRETURN)
TAVAIL
Tl TAyAIL
: (RETURN)
="
=
=
= '.'
DErINE(~EXP(EXPR)')·
EXP
LS
L6
EXPH 6INARYE
= POpT()
CO~PIL('POW'
,LVAR,RVAR,POP)
EXPR BINARYM
POpTC)
OP
'MUL'
OP
IDENTCMO,"·) 'OIV'
=
=
=
: (ENO.EXP)
:F(LS)
:(EXP)
:F(l6)
CO~PIL(OF.LVAP,RVAR'POP)
: (LS)
:F(L70)
CO~PIL(OP'LVAR,RVAR'POP)
:Cl6)
:CRETURN)
EXPR 8INARYA = POpT()
OP
= 'ADD'
OP
= l~ENT(AS,'-') 'SUB'
L70
EXP
ENO.EXP
= EXPR
TE.~1PNR =0
Ll
La
L8!
El
E2
. END
= ','
TAVAIL
EXPR
TRIMCINFUT)
OUTPUT
EXPR
EXPR VE • LEFTV
:1=(El)
EXPR (as '=') ="
:F(E2)
EXPR PEXP
EXPCINSIOl)
:SfL8)
EXPR
EXPCEXPR)
EXPR as Vl = "
:F(l~l)
EXPR
EQ(SIZE(EXPR),O) "
:r;:-(LA1)
OUTPUT
DUPL(' ',30) 'CALL STORE(' VAR '" LEFTV ')'
OkOPTlYAR)
:(ll)
OUTPUT = 'INCORRECT EXPRESSION ON RIGHT SIr-E'
: (ll)
OUTPUT
'ERROR o~ LEFT SIDE of EGUAL sI6N' : (ll)
OUTPuT .= 'INCORRECT EQUAL SI6N '
:Cll)
=
=
=
=
=
="
=
=
~ WEST COAST COMPUTER FAIRE
443
BOX 1579, PALO ALTO CA 94302~
V:wl.R+KL-T**R-X+X/R.*TH*RE+A*Z/X**Z-A+Zl**Ul/U.T+A5/Z-OE/ZX-Q123K
CALL POW(T,R,T00001)
CALL POWCR'TR,T00003)
CALL POW(X'Z.T00006)
CALL POWCZ1'Ul,TOOOOS)
CALL ~UL(WE'R.T00004)
CALL OlV(X,T00003,T00002)
CALL MUL(T00002,RE,T00003)
CALL MUL(A,Z,T00002)
CALL OIV(TOOo02,T00006,T00007)
CALL oIV(T00005,U,T00006)
CALL MUL(T00006,T,T00005)
CALL OIV(AS,Z,T00006)
CALL OIV(QE,ZX,T00002)
CALL AOO(T00004,KL,TOOOOA)
CALL 5U8(T00008,T00001,T00004)
CALL 5UB(T00004.X,T00001)
CALL AOO(T00001,T00003'T00004)
CALL AOO(T00004,T00007,T00003)
CALL SUB(T00003,A.T00001)
CALL ADOCT00007,T00005,T00003)
CALL AOO(T00003.T00006,TOOOOS)
CALL 5U8(TOoo05,T00002,T00006)
CALL SUHCT00006,Q123K,T00002)
CALL STORE(T00002,Y)
A»» * «(A9-B/O»+D»+A •• RO
5UB(C,0,T00001)
OIV(B,O,T00002)
5U6(A9,T00002,TOn003)
AoDCT00003,O,T00002)
MUL(A,T00002,T00003)
AODlA,X,T00002)
5UB C'''OOOO.2_,_l00003~Tn0004)
POW(TOOo01,A,T00003)
POWCA'BD,TOOOO!)
MUL(G,A,T00002)
MUL(B,To0003,T00005)
MULCF,X,T00003)
AOOCT00002,T00005,T00006)
5UB(T00006,T00003.T00005)
AoOlTOOo05,T00004.T00003)
AoOCTOoo03,T00001,T00004)
5TORE(T00004,Z)
Z=G*~+A*«C-O».*A-F*(X)+«A)+X-««
CALL
CALL
CALL
CALL
CALL
CALL
.CALL.
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
Z
=
A+B*C)/(F.G-(D+E)/(H+K»
CALL MUL(B,C,T00004)
CALL AoOCA,To0004,T00001)
CALL AOOCD,E,T00004)
CALL ADOCH,K,T00003)
CALL MUL(F,G,T00005)
CALL OIVCT00004,T00003,T00006)
CALL 5UBCT00005,T00006.T00003)
CALL OIVCTOOo01,T00003.T00006)
CALL 5TORE(T00006'Z)
WEST COAST COMPUTER FAIRE
444
BOX 1579, PALO ALTO CA 94302
TABLE DRIVEN SOFTWARE
AN EXAMPLE
Val Skalabrin,
Second Source
ABSTRACT
mini data base management system (MDBMS) is implementable
in any computer language which has or can be given, the
capability to perform byte manipulation within a data record.
This capability is definable as the ability to move a
contiguous segment of bytes between the data record and a
work area. With it, a single set of programs can be described
which will allow the user to create, update, and report on
data from virtually any data file. The system will also
allow a data base to be altered in format without requiring
any program modification. The report option of the system
is a version of the usual general-purpose-select-whateveryou-want program found in most larger installations.
A
DEFINITION
- Mini Data Base Management and MIS is a set of
computer programs, user manuals, user training and
support which allows the manager's staff to
create, maintain and add to their own data file.
MDBMS gives the manager the capability of generating reports on selected members of his data base.
MDBMS also allows the the manager to change the
format of his data base, dropping or adding types
of information kept in the files, without requiring
additional DP center programming.
WHY MDBMS?-
Firms need to maintain on-line computer files to
capture daily activity, and to produce on-call
reports, but, management also reserves the right
to expand and change the contents of the records
kept in that data file - "The county's new regulation means that we'll have to keep an Ethnic
Origin code on all of our employees. Can you OP
boys stick that in all your programs by Monday?"
Plus there are generally several middle management
people asking if you can't keep their thermo frocator inventory on the computer.
The computer manufacturer would like to help his
clients by furnishing a file management system for
WEST COAST COMPUTER FAIRE
445
BOX 1579, PALO ALTO CA 94302
thermofrocator inventory, but he is geared towards
mass production and cannot afford to tailor his
software to each installations needs.
ITEM '2 NAME? NAME
A (ALPHA) OR N (NUMERIC)?
NUMBER OF CHARACTERS? 30
The requirements in most cases are very similar in
system design:
1.
2.
3.
4.
5.
A
(PEOPLE.DRV now has:
006
SOC SEC • AOll
NAME
A030)
create a file
maintain the file
update, add, delete records
report generation
be ready for a chang~ in record format.
'3
ITEM
Name? SEX
A (ALPHA) OR N (NUMERIC)? A
NUMBER OF CHARACTERS? 1
(006
The differences in most cases are also very similar:
SEC I AOll
A030
SEX
AOOl)
SOC
NAME
1.
2.
3.
4.
5.
6.
7.
number of records in a file
number of items in a record
names of the items
lengths of the items
length of the record
data item types (alpha or numeric)
report formats and headings.
ITEM '4 NAME? AGE
A (ALPHA) OR N (NUMERIC)?
NUMBER OF DIGITS? 2
N
(006
soc:: SEC • AOll
NAME
The Mini Data Base Management System and MIS
Report generator discussed in this paper attempt
to provide one answer to the requirements listed
above.
MDBMS
FUNCTIONAL OUTLINE
SEX
AGE
A030
AOOl
N002)
*
ITEM S NAME? SALARY
A (ALPHA) OR N (NUMERIC)? N
NUMBER OF DIGITS? S
(006
File Creation
SOC SEC
NAME
The Driver File - The design philosophy behind
MDBMS rests on describing the size and make-up of
a data record in a fashion which will allow the
subsequent update and report programs to build a
core table of each data item's:
size, in bytes
type, alpha or numeric
name
SEX
AGE
SALARY
'6
*. AOll
A030
AOOl
N002
NOOS)
ITEM
NAME? LOVER
A (ALPHA) OR H (HtJMERIC)? A
HUMBER OF CHARACTERS? 20
(006
SOC SEC t AOll
NAME
A030
SEX
AOOl
AGE
H002
This formation of the makeup o{ ada1::a record- is
the task of the first-module of MOBMS, CREATE.
The output of CREATE is a sequential, small file
called the Driver File. We will use BASIC and an
example to clarify the operation of CREATE.
SALARY
Hoos
LOVER
A020)
"PEOPLE" HAS BEEN CREATED, YOU MAY HOW RUN "UPDATE"
FILENAME?
(CREATE initializes
PEOPLE.DRV the Driver
file)
NUMBER OF DATA ITEMS PER RECORD?
6
(CREATE will now loop
through the item specification questions 6 times)
'1'0 EH"l'ER DATA RECORDS nrro YOUR FILE AND "REPORT"
'1'0 SELECT AND PRINT FROM "PEOPLE."
CREATE has finished its job and built the driver
file, PEOPLE.ORV, and initialized the key (PEOPLE. KEY)
and data files (PEOPLE.OAT).
Digression for OVerview - We now are discussing
the three files which makeup the MDBMS system:
THE FIRST DATA ITEM MUST BE THE KEY OR RECORD
IDENTIFIER ITEM. LIMIT EACH ITEM NAME TO 10
CHARACTERS •
1.
ITEM #1 Name? SOC SEC #
A (ALPHA) OR N (NUMERIC)?
NUMBER OF CHARACTERS? 11
The Driver file contains a description of the
format of each data item in a record, and therefore
of the entire record itself.
A
(The entries in PEOPLE.DRV
at this point are:
006
SOC SEC"# AOll
WEST COAST COMPUTER FAIRE
2.
3.
PEOPLE.ORV, the driver file
PEOPLE. KEY, the key file (do-your-own ISAM)
PEOPLE.DAT, the data file.
The Key file will contain the user's record identification key (Social security Number in the example)
and will also contain the physical record number
that the data is stored in PEOPLE. OAT. The Key
file is sortable.
446
BOX 1579, PALO ALTO CA 94302
The Data file will contain the data record with
the remaining data (Name, Sex, Age, Salary, Lover)
and is never sorted. We will also discuss the tag
file, and how to sort, later.
File Maintenance and Update
Accept-Numeric
Continue
The Update Program - UPDATE is the update program
(surprise!) and is best described by continuing.
our example.
FILENAME?
PEOPLE
(UPDATE looks for a
driver file named PEOPLE.DRV,
and finding it builds
core tables with an
arbitrary max of 100
- items. In this case
there are only six items
in each. There are:
1. an
Item Name
table of 6 names
2. an
Item Type
table of 6 types
3. an
Item Length
table of 6 lengths
UPDATE now will ask
whether you wish to Add,
Change, or Delete a
record. )
°For 1=1 to Number of
Items __
°PRINT Name (i) ;
°IF Type(i)="N" branch to
Accept-Numeric
°INPUT Alpha-String
°00 TO Continue
°INPUT Numeric Value
° CONTINUE
°Perform a routine to
concatenate (append)
sufficient blanks to pad
the response to at least
Length (i) bytes and then
isolate the first Length(i)
bytes.
°Perform the move of this
contiguous segment of
bytes into the record length work buffer.
°NEXT I
Perform the routine which
separates out the key
(record identifier - the
first Length(l) bytes.
°Perform the routine which
finds the next available
slots in PEOPLE.KEY and
PEOPLE. OAT and write the
records out.
°RETURN
After every record transaction in the following
example, the contents of PEOPLE.KEY and PEOPLE. OAT
will be displayed.
UPDATE now repeats its request for the action to
be performed.
ACTION? ADD
SOC SEC #? 531-33-1111
NAME? SKALABRIN VLADOMIR
SEX? M
AGE? 33
SAIARY? 42000
LOVER? MOTHER NATURE
ACTION? ADD
SOC SEC #? 518-18-1818
NAME? ALBRECHT ROBERT
SEX? M
AGE? 38
SALARY? 15000
LOVER? YES
people. key
0002
A531-33-llll0001
people.dat
Skalabrin Vladomir M3342000
Mother Nature
people.key
0003
A531-33-llll0001
A5l8-l8~18l80002
What has occurred is now instantly replayed.
Upon receiving the user's file name, PEOPLE, our
UPDATE program opened the driver file, PEOPLE.DRV,
and retrieved:
Number of i terns
and then
6
°For 1=1 to Number of
Items
°INPUT---Name(i), Type(i),
Length (i)
°NEXT I
UPDATE then asked for the action to be performed,
it was ADD - a command to collect from the user
all six items in this new record. UPDATE branches
to the Add-a-Record routine and:
WEST COAST COMPUTER FAIRE
people.dat
Skalabrin Vladomir M3342000
Mother Nature
M38lS000
Albrecht Robert
Yes
ACTION? CHG
SOC SEC #? 531-33-1111
ITEM NAME? AGE
AGE = 33 = ? 38
ITEM NAME? lEND
people.key
0003
A53l-33-llll000l
·AS18-l8-l8l80002
447
people.dat
Skalabrin Vladomir M3842000
Mother Nature
Albrecht Robert
M38lS000
Yes
BOX 1579, PALO ALTO CA 94302
After reading this file, UPDATE had:
Number of Items = 6
A six element Name table
A six element Type table
A six element Length table
Record Length = 69 bytes . (summing the
lengths)
This moving out of n bytes beginning at position
m, and moving in of n bytes beginning at position
m is the critical capability the computer language
must have to implement the MDBMS concept.
MIS - The Report Option
The value of a general purpose, select, format and
report on-line program is very great for any
computer installation providing data processing
services to its customers.
When AGE (item 4) was requested during the CHG
operation, UPDATE totaled the lengths of items 1,
2, and 3 (those preceding AGE), added 1 and had
the position of the Starting Byte of AGE.
The picture that keeps returing to mind
innocent eyed business manager who just
a non-existent report for tomorrow, and
that no program existed and it may take
to find the time, remarks:
Item Value = MIDS (Work Buffer, Starting
Byte, Length (4» then ret.urns the value of AGE
from the 69 byte work buffer cum combination data
record.
After accepting the neW AGE in Response and performing the Pad-it-out-to-length(4)-bytes routine, the
Work Buffer is reformed by:
is of the
requested
when told
two weeks
"You've got the data in your computer, I'm
just asking you to print it out."
MDBMS and its MIS report option does just that.
Work Buffer
LEFTS (Work Buffer, Starting Byte 1) + Response + RIGHTS (Work Buffer,
69-(Starting Byte -1 + Length
(i») •
Let us demonstrate the use and function of REPORT
(the report program) by assuming we've entered a
number of people into our file PEOPLE and continuing our example.
FILENAME? PEOPLE
The CHG option is the Update option, and upon its
choice, UPDATE will:
PLEASE ENTER THE ITEM NAMES, THE COMPARISON TESTS
AND TEST VALUES TO BE USED.
°PRINT Name (1);
°INPUT Response
°Perform the Search Key
File routine for this
identifier and move the
appropriate records into
the work buffer.
Start
°PRINT "ITEM NAME";
°INPUT Response
°FOR I = 2 TO Number of
Items
°IF Name (i) = Response
branch to Continue
"'NEXT I
Continue °CONTlNUE
°Perform routine to move
Length (i) bytes out of
the appropriate area of
the work buffer into Item
Value.
°PRINT Name(i); "="; Item
Value; "=";
°Accept Response as before
and move back into the
work buffer.
°GO TO Start
ITEM NAME?
COMPARISON?
TEST VALUE?
SEX
EQ
M
ITEM NAME?
COMPARISON?
. TESTVALUE?_ ..
AGE
GT
3.0
ITEM NAME?
COMPARISON?
TEST VALUE?
AGE
LT
40
ITEM NAME?
lEND
We have just specified a report of all male People
between the ages of 30 and 40.
The mechanism of REPORT works thusly:
REPORT builds core tables of item names, types,
and lengths just as UPDATE did. REPORT then
builds, through terminal interaction, selection
tables of:
1.
item name to be tested
2.
comparison test to be used
3.
value. to test against
Detail of Moving To and From
In our example, the driver file PEOPLE.DRV contains:
006
Soc Sec # AOll
Name
A030
Sex
AOOI
Age
N002
Salary
NOOS
Lover
A020
WEST COAST COMPUTER FAIRE
When the user signifies that he has entered all of
her selection criteria by typing "lEND", REPORT
selects the records for printing by:
448
BOX 1579, PALO ALTO CA 94302
°LET T$ = "GO"
°Read a record (sequential
file reads)
°FOR 1=1 to Number of
Tests
°FOR J=l to Number of
Items
°IF Name to be Tested
(I) = Item Name (J) GOSUB
Selection Routine
°NEXT J
°NEXT I
°IF T$
"GO" PRINT
°GO TO START
Selection Routine
eq
°Perform routine to move
item (J) from record
buffer to Item Value.
°Convert Comparison (I) to
comparison number (1
through 6).
°GO TO eq, ne, gt, ge, It,
Ie, ON comparison number.
°IF Item Value <. > Test
Value (I), LET T$ =
"NO"
° RETURN
The REPORT program can be given these capabilities
of selecting records for printing, formatting the
output, forming report items from combinations of
data items and previous report items and could
also be equipped to print grand totals of columns,
subtotals for columns, and counts of the reoccurrence
of specific items.
The actual print formatting would be done by
defining a 132 byte output record (for line printers)
and performing the "Move n bytes into the record
beginning at positon m" routine.
Sorting the Report
The need to sort a report into a particular order
introduces a redesign into MDBMS and MIS components.
Considerations of remaining general purpose,
increasing processing speed, etc., dictate the
REPORT program outlined above to be segmented into
a SELECT program which performs the selection of
records to be processed, and a format-and-print
only REPORT program. One alteration is made to
each of SELECT and REPORT, and a new program SORT
is defined.
°SELECT writes the record key (Social Security
Number in our example)·and the corresponding
data record number into the last 20 bytes of
a 120 byte TAG file, and blanks the remainder
of the TAG record.
°If the selected records are to be reported in
a sorted order, SORT will determine the sort
keys by item name, from major to minor,
access the data file by the record numbers in
the TAG file, and move the corresponding item
values into the first 100 bytes of the TAG
file.
The TAG file is sorted as though the entire
120 bytes were one sort key.
°REPORT sequentially uses the record keys and
data record numbers from the last 20 bytes of
the TAG file to read data records and print
its report.
The "PRINT record" used above may be replaced with
GOSUB Print Formatting routine. This would be the
case in a full blown REPORT program which allows
the user to specify report headings, define a
subset of a record's items to print, and allow the
formation of new report items formed from record
items and/or previous report items.
This type of sophisticated REPORT program might
have the following starting dialogue:
HOW MANY COLUMNS IN THIS REPORT?
4
COLUMN #1 HEADING? Employee Name
DATA (D) OR FORMULA (F)? D
DATA ITEM NAME? NAME
COLUMN #2 HEADING? AGE IN MONTHS
DATA (D) OR FORMULA (F)? F
NUMBER OF COMPONENTS? 1
COMPONENT NO. 1 FROM? D
DATA ITEM NAME? AGE
MULTIPLIER? X12
COLUMN # 3 HEADING? ANNUAL SALARY
DATA (D) OR FORMULA (F)? D
DATA ITEM NAME? SALARY
COLUMN #4 HEADING? SALARY/AGE RATIO
DATA (D) OR FORMULA (F)? F
NUMBER OF COMPONENTS? 2
COMPONENT NO. 1 FROM? D
DATA ITEM NAME? SALARY
MULTIPLIER? Xl
COMPONENT NO. 2 FROM? R
REPORT COLUMN NO.? 2
MULTIPLIER? Xl
COMPONENTS 1 & 2 OPERATION? /
WEST COAST COMPUTER FAIRE
Do Your Own ISAM
The discussion presented in the preceding pages
mentions the Key File and record keys several
times. While MDBMS and MIS is operable completely
with sequential files, it performs as though it
had Indexed Sequential Access Method (ISAM) capabilities.
ISAM gives the user and programmer the capability
of referencing the storage location of a data
record by its user-defined key (Social Security
Number, Catalog Order Number, Course Code, etc).
The only restrictions imposed are a maximum size
(bytes) and uniqueness of record keys (no two
alike) .
The large system lSAM's are markedly faster than
the do-it-yourself concept outlined below, but
often have severe operational limitations. Some
of these are:
449
Box 1579, PALO ALTO CA 94302
1.
2.
3.
Files must be initially built via an I SAM
loading utility.
When sufficient records have been added to
fill the allocated ISAM file or its overflow
area, it must be rebuilt.
Some ISAM's (e.g. , IBM 1130) do not allow
adding a record in the same program which is
upda ting the file.
An initialized Key File for a system capable of
dynamically adding records would contain:
(15 spaces .... ) 00001
An initialized Key File for a system requ~r~ng
allocation of file space would contain:
(15 spaces •• ) 00001
zzzzzzzzzzzzzzzOOOOl
zzzzzzzzzzzzzzz00002
zzzzzzzzzzzzzzz00003
zzzzzzzzzzzzzzz00004
In particular, most small systems do not have an
ISAM utility, and those that do have restrictions
which make their use in a user controlled environment prone to operational errors.
The search and write routines for an ADD would be:
MDBMS fulfills the ISAM concept in its Key File
and search routines.
Consider the Key File as a unique sorted file of 20
byte records, each record containing a unique record
key (15 bytes) and an associated data record number
(5 bytes). Set Key File record #1 aside as a special
record to be considered later.
1.
2.
3.
ISM Search
Each program in the MDBMS series must be able to
locate the data record defined by a user key. In
our example, this means that each program must be
able to take the Social Security Number 518-181818 and locate the corresponding data record
ALBRECHT RDBERT
M38l5000 Yes.
4.
Both the binary and directory search techniques
require that the Key File be sorted at some time,
and also need an additional routine to handle that
unsorted portion of the file created by ADD's
while UPDATE is in operation.
At least two search schemes are available:
1.
Perform a binary search of the Key File.
For- fairly concise coding and needs no extra
core tables.
Aqainst- requires a significant amount of
extra disk accesses (10 for a 1,000
record file).
Briefly, the search routine must be capable of:
1.
2.
2.
Build a in-core directory of highest-key-inthis-disk-segment values.
For- fast, only requires one disk access to
locate a key where segment = buffer
read.
Against- may require a large core table if
the file is large and the segment is
small, or trade-offs of table size
versus number of segments per high-key,
and the subsequent increase in disk
accesses.
fast searching the sorted portion of the Key
File, and
sequentially searching the add-on portion.
SUMMARY
The Mini Data Base Management System described on
these pages can be implemented in any computer
language having the capability of moving an arbitrary (defined at run time) segment of bytes from
and to a buffer area.
It is a single set of programs, CREATE, UPDATE,
SELECT, SORT, REPORT and TRANSFER*, which allow
the creation and maintenance of user defined data
files, and the selective report generation from
these files.
In either case, the logic of the search routine is
the same.
The physically first record of the Key File contains
a count of how many records (including #1) are in
the Key File. This record is maintained with
sufficient leading blanks to ensure that it will
always sort to the front and remain the first (#1)
record. The record count is updated by UPDATE if
records are added or deleted.
WEST COAST COMPUTER FAIRE
read the #1 record and get COUNT (done once).
read the COUNT+l key file record and get the
record number of the first available data
file slot. Place this data file record
number in RECNUM.
Write the user key for this new record in the
Key File at COUNT+l, and set COUNT = COUNT +
1 in core. No further accesses of the #1
record would be required until UPDATE ends if
this is a single user environment.
after completing the formation of all the
data required for this new record, write the
data into the Data File at RECNUM.
450
This system has been implemented in BASIC, COBOL
(with a macro), and RPG (with an assembly subroutine) .
*TRANSFER looks at the old and new Driver files,
and moves selected data from the old Data file to
the new Data file.
BOX 1579, PALO ALTO CA94302
DESIGN CONSIDERATIONS IN THE IMPLEMENTATION OF A HIGHER-LEVEL LANGUAGE
Including Details of the Internals of Cromemco "16K BASICH
William F. Wilkinson
Shepardson Microsystems, Inc.
20823 Stevens Creek Blvd., Building C4-H
Cupertino, California, 95014
Purpose and Scope
This paper will try to serve
several purposes: First, it will introduce at a tutorial level some of the more
important considerations that must be
weighed in the design of a compiler or
interpreter. It will also present a few
of the techniques commonly employed in
various language processor implementations.
And, finally, it will discuss in some detail an actual and successful BASIC language interpreter.
As noted, a sizable portion of
the material herein will be of interest
to those who might be relative novices in
the field of system-level programming.
On the other hand, it is hoped that more
advanced programmers will appreciate the
information presented relating to the internals of Cromemco' s new stand-alone. ,and
disk-based BASICs •
-- '.-
3. Fully Syntax Checked
4. Incremental Compilers
5. Compile and Go
An example of each type as represented by
an available software product will be given.
However, this author can not claim with absolute certainty that the examples given
are correct since, in some cases, external
indications were the only indications as to
type.
Compilers
A compiler is a type of language
processor which reads a user's source program one or more times and produces (as
final output) actual machine language code.
Typically, programs which are compiled need 'support' from system 'libraries'
of subroutines. These subroutines are used
- when the compiled program needs to perform
a function too complicated to be included
directly in the machine code. Examples
Terminology
of routines found in system libraries include I/O (Input/Output) routines, transSome of the terms used within
this paper may be unfamiliar to many readcendental functions (Log, Sin, etc.), and
array processing. On machines such as IBM
ers. As an aid to better understanding
of the contents herein, a glossary of some
370's which include floating point arithmetic in their instruction set, such instrucof the more important and/or complex terms
has been included as an appendix.
tions are obviously included in the object
code. But for a microprocessor lacking these
The first usage of a word or
phrase that maybe found within the glossary
capabilities, the routines for floating
will be flagged by a double asterisk (**)
point arithmetic must also be included in
for the reader's convenience.
the system libraries.
Advantages of compilers include
TYpes of Language Processors
generally lesser memory requirements and
faster user-program execution speeds (because
In subsequent subsections, the
the output code really is machine language).
advantages, disadvantages, relative memory
Note, though, that some-of the speed of
requirements, and relative user-program
compiled code is lost on microprocessor-based
execution speeds of the following types
systems where significant amounts of floating
of language processors will be briefly
point arithmetic is performed. Even on small
considered:
systems, however, there is no denying the
COMPILERS
advantage of compilers when performing in1. One Pass
teger based routines.
Disadvantages of compliers include
2. One Pass plus Assembly
3. Multi Pass
the fact that the machine code output is often
INTERPRETERS
very difficult to debug and that turn-around
time between program revisions is longer
1. Unaltered Source
2. Keyword Token (Partially
(since both the debugging and the compliling
consume significant amounts of time).
Syntaxed)
W~ST
COAST COMPUTER FAIRE
451
BOX 1579. PALO ALTO CA 94302
Also, since the compiler is simpler, it
generally requires less memory to run than
a one-pass type. If the assembler used is
similarly compact, significant memory savings
may be realized at the expense of compile
time.
An interesting note here is that
Data General's Fortran IV compiler is a
one-pass-plus-assembly type (two pass
assembly, at that) and was, for quite some
time, the only Fortran compiler offered by
the company! This contrasts sharply with
their "Fortran V" compiler discussed in the
next section.
Sidelight: one pass plus assembly
type compilers were especially popular in
machines of a few years back because of their
reduced memory requirements. When memory
was extraordinarily expensive and disks
were cheap (compared to memory), the approach
made a lot more sense than it does in today's
cheap-memory market.
Sophisticated (especially diskbased) compilers can overcome some_of the
disadvantages noted by including an
equally sophisticated debug program that
is aware of where variables** are stored
in memory, where program lines have been
compiled, etc. This can produce an
interactive debugger with trace capabilities similar to an interpreter.
Even the best of such debuggers still
cannot make program modification as easy
as an interpreter can.
One Pass Compilers are often a good
choice for microcomputer systems,
especially those without a disk. They
read the source code** only once, simplifying input from serial devices such
as teletypes and cassettes. Nevertheless, the better ones are often capable
of local optimization** on at least a
per-statement basis. On a system with
a given amount of memory, one-pass compilers often cannot handle source programs as large as those compiled by other
techniques; this is especially true if
the compiler is expected to output its
object code** directly to memory instead
of to a mass storage device.
An extremely good one-pass compiler is a true example of the system
designer's (and programmer's) art:
after all, such a compiler is actually
performing several functions at once
(see next section).
The Microsoft-produced Fortran
IV Compiler for the 8080 and Z80 is a
one pass c-ompiler. It is available from
several sources now, including Cromemco
and, of course, Microsoft.
Multi-Pass Compilers. These compilers, as
their generic name implies, must read the
user's source program several times before
producing machine code output.
The primary reason for writing a
multi-pass compiler is usually to facilitate
global optimization**. They are typically
capable of Significantly more efficient
object code than the one-pass types (though
some two-pass compilers might only be simr
plifications of one-pass types). The object
code mayor may not be more compact, but
it is virtually always significantly faster
at execution time.
Th-eonly real disadvantages ofmulti-pass compilers is that the compiler itself
is usually a huge program which requires
much machine time to operate. A secondary
disadvantage is that once global optimization
has taken place the dis-assembled object
code might in no way resemble the input source:
this can be a real handicap at debug time,
especially if the compiler has a bug in it!
(Which actually happened to this author.)
IBM's Fortran Level H is an example
of a multi-pass optimizing compiler. In
fact, with. this compiler, the user may even
specify one of three of levels of optimization
to be attempted. Data General's Fortran V
compiler is rumored (rumored!) to be a thirteen
pass optimizing compiler. In any case, it
produces remarkably efficient code for'a
minicomputer compiler.
One Pass plus Assembly Compiler. This
is also a type of compiler that reads
the user's source code only once. But
it then produces an assembly language
intermediate "source" program which
then must be assembled by a more or less
standard one or two pass assembler**.
The chief advantage of this type
of compiler is that it is the easiest
kind to design and implement! In fact,
given a system with a good macro-assembler,
an enormous amount of "housekeeping" is
removed from the compiler-writer's
bailiwick.
Often, this type of compiler
will do little or no optimizing. The
extra passes through the assembler can
be a nuisance to the user if not fully
automated.
On the other hand, the person
familiar with assembly language can
often take advantage of the availability
of the assembler listing and thereby
significantly reduce debugging time.
WEST COAST COMPUTER FAIRE
Some Interim Notes
Before proceeding to a description
of types of interpreters, a comment on the
compiler versus interpreter controversy seems
appropriate.
Generally speaking, the only programs
that really need computational speed are
452
BOX 1579, PALO ALTO CA 94302
allow the user to halt program execution
through some break or escape key, after
which he may examine the value of variables,
status of flags, etc. Many basics even
allow the user to change, delete, and insert program lines after executing such
a break and then continue execution of
the modified program!
But various types of interpreters
have varying abilities, some of which are
discussed in the sections which follow.
those doing a large amount of "number
crunching". But, if a program involves
any significant amount of floating-point
arithmetic (especially transcendental functions), the time required to perform such
routines is usually significantly more than
the time spent on the supportive control
functions. Similarly, programs involved
in primarily I/O processing on devices
no faster than floppy disks are generally
seldom bound by the speed of the control
operations being performed.
So what kind of program really
needs the extra measure of speed provided by compilers versus the interpreters? There really are many such
programs: real-time process control,
music processors, programs which need
to run on memory-limited systems, and
others. But the hobbyist should probably
carefully consider whether the programs
he is writing fall into any of these
categories. If not, he should seriously
consider using an interpreter, for
reasons which will be noted in the next
section.
As a final note on compilers,
it should be noted that one feature of
Fortran compilers is they may be made
to process a particular subset of Fortran
(ANSI standard Fortran), and other comr
pilers on other systems should be able to
handle the code with little or no modification.
Unaltered Source is a term used herein
to mean that the program as actually
typed in by the user is stored in essentially unaltered form (i.e., extraneous
spaces might have been removed, etc.) in
memory. The interpreter then executes
statements by actually reading the source
and operating on the commands therein.
No validity check is made on the source
until execution is attempted. Some systems use this "feature" to advantage:
since no checking is performed, any data
may be entered and treated as a program
ilne. Since Basic (for example) will
rearrange incoming lines in numerical order,
this allows the user to implement a poor
man's text editor.
The disadvantages of this method
of interpretation are numerous: chief of which
is relatively slow execution speed (although
even here a clever designer can earn his
money). Another significant problem is
that the user has no idea that he has made
an error in entering a line until it is
actually executed, which may not occur
for some time in a complex program.
There are several so-called
"tiny Basics" available which are implemented in this fashion. Despite their
name, many of these Basics actually can
handle some very sophisticated programs.
Interpreters
The primary difference between
compilers and interpreters is that the
latter were designed to facilitate interactive computer usage while the former
come to us from the days when batch processing represented the only computing
power available.
Generally, an interpreter will
allow the user to sit down at his terminal and/or computer and enter a program
one line at a time. He may enter several
lines and then RUN the resultant partial
progr~m,. verifying that it is performing
the function assigned to it. He may proceed in this manner, adding a few program
lines at a time and checking that they
function properly, until the whole program is entered and checked.
Depending on the interpreter
being used, several additional aids to
debugging may be available: Most Basics
allow the user to execute several (if not
most) statements in an immediate or
direct mode. For example, in Cromemco
Basic, only the DATA, DEF (user function),
and FOR/NEXT statements may not be directly
executed. Virtually all interpreters
WEST COAST COMPUTER FAIRE
Keyword Token (or Partially Syntaxed). This
term is used to classify a type of interpreter that scans incoming lines of program for the keywords defined in the syntax**
of the language, converting them to internal
format bytes (tokens). However, a Basic
interpreter of this type is liable to allow
a statement of the following form without even
protesting about the utter nonsense of it:
100 NEXTSTEPFORPRINT
Such a Basic would be very likely to list
that statement back out as:
100 NEXT STEP FOR PRINT
It was capable of recognizing all those
keywords, but did not realize that they
were used incorrectly. (Of course, the
nonsense would be found at execution time
and an error message would result.) It
seems obvious, then, that in some ways
there is little advantage in this type of
453
BOX 1579, PALO ALTO CA 94302
as being in error. Another level of co~
plexity is added to the_problem if the
interpreter allows both logical operators
and long variable names: is FORB the variable "FORB" or is it the expression "F OR B"?
Since both constructs are legal, it is the
designer's job to decide on one or the other
and then clearly state his choice in the
user's manual.
Generally, a fully syntaxing interpreter enjoys all the advantages of
the keyword token type (i.e., faster execution speed through token vectoring) plus
the added advantage that the user is made
aware of his syntax errors as soon as he
types them in.
An example of this style of interpreter is Apple Basic, the integer-only
Basic placed in ROM in the APPLE II. This
is a Basic complete and fast enough to
enable the user to program video games
directly in Basic.
interpreter versus the unaltered source
variety. Were we only concerned with
validity checking, that would be true;
however, the keyword token concept allows
somewhat higher execution speeds, since
chere are fewer bytes to scan to determine statement type and since the appropriate keyword token can immediately vector off to its processing routine rather
than having to first decode it and then
vector.**
Both the keyword token and unaltered source interpreters are capable
of performing all their feats in the
direct mode, although many interpreters
nevertheless exclude certain functions
as direct because they may not truly
make sense unless executed within a
running program.
Many, many of the available
microprocessor Basic's are of the
keyword token type. Prime examples
are most (all???) of the Basic
interpreters written by Microsoft,
including,as a specific example,
Applesoft as distributed by Apple
Computer.
A sidelight: This type of
interpreter is popular with system
programmers because it is reasonably
fast at execution and yet does not require the double level of complexity
necessary to the type of interpreter
discussed next. Shepardson Microsystems, for example, felt much more
constrained in space than in speed
w.hen its 6800 Basic was designed, and
hence- -chose-- this me-thode
Incremental Compiler is actually a type
of interpreter which takes the fullysyntaxed concept a step further. An incremental compiler not only fully checks
for correct syntax as the source is being
entered, it also immediately resolves
any references to undefined items! The
internal code produced mayor may not be
actual machine language; in fact, it is
more likely that a more generalized form
of tokens will be produced.
The CROMEMCO 16K BASIC interpreter
is an incremental compiler, and details
on its inner workings will follow in later
-8ec:t:-tons~-- Another example-of this type
is Data General's Basic.
The primary advantage of the
incremental compiler is execution speed.
Since variable and line number references
are already resolved, no execution time
is spent searching tables for (for example)
variable name match. User's of Cromemco's
Basic enjoy excellent execution speed even
though the system provides them with as
many, if not more, features as any other
microprocessor-based Basic.
The primary disadvantage of this
type of interpreter is that the interpreter
itself requires significantly more memory
than other types. For example, Cromemco's
Basic requires 16K bytes for the stand-alone
version and somewhat more for the disk-based.
Fully Syntaxed is a term used to describe
a type of interpreter which actually
completely takes apart the user's input
line and reassembles the pieces as internal codes (tokens), checking for syntax
errors right then and there. As an example, assume a Basic which accepts
only standard Dartmouth variable names
(single letter, optionally followed by
a single numeral); consider the result
when the user enters the following line:
530 PRINT FORB
The keyword token type interpreter will
most probably syntax that as:
530 PRINT FOR B
It sees the keyword "FOR" and processes
no further. The fully syntaxed type of
interpreter, however, would realize that
a FOR keyword cannot appear after a PRINT
statement. Depending on whether the interpreter in question allowed logical
expressions using the keyword OR, it
might syntax that line as:
Compile and Go is a type of interpreter
which is often an interpreter in name only.
Some of this type might be more accurately
described as interactive compilers. A
typical method of implementation involves
a two-step interpreter: the first part
functions only as an editor, allowing the
user to change his program. It mayor may
not be a partially or fully syntaxing editor.
530 PRINT F OR B
If,however, it did not allow logical
operators, it would flag that statement
WEST COAST COMPUTER FAIRE
454
BOX 1579. PALO ALTO CA 94302
art in microprocessor-based BASIC interpreters: Watch this space.
The second part of this interpreter is
the actual compile-and-go part: it
accepts the edited source (which may
have even been converted into tokens
for ease of compiling) and resolves
all line number and variable references
and then runs the resultant object.
This type of interpreter is easy to
recognize: it is the type that, when
the user types RUN,responds immediately
with error messages regarding missing
END statements, GOTOs to non-existant
lines, etc. (The other interpreters
discussed usually cannot give these
error messages until the line in question is actually executed.)
The obvious advantage of this
type of interpreter is that it is
fast. The HP2000 series time-shared
BASIC systems use this methodology
and are often able to successfully
support significantly more users than
(for example) Data General can with its
incremental compiler, even though the
DG machine may be faster and more powerful than the HP CPU.
The biggest disadvantage of
the compile-and-go interpreter is that
usually very few operations are available in direct (immediate) mode. On
the HP2000F and below, for example, the
user cannot even print out the values
of variables after encountering a program break or error. In this respect,
the user is often more uninformed than
he would be with even a straight compiler, and debugging can sometimes be
somewhat time-consuming.
CROMEMCO 16K BASIC
The name of this interpreter is
somewhat of a misnomer in the case of the
disk-based version: it currently occupies
18.5K and is likely to grow. Cromemco
Basic was designed from the start to be
many things for many people. It can definitely be considered a business-oriented
product: it has easily accessible random
and sequential files, three different
precisions of arithmetic (including 14
digit decimal floating-point), and userprogram trappable processing of errors
and escape requests. All this was accomplished with little sacrifice in speed:
the interpreter handles double-precision
arithmetic as fast as most interpreters
do single-precision. Of course, all these
features added to the memory requirements,
but the biggest memory-eater was the implementation used, namely the incremental
compiler method.
An incremental compiler requires
a number of tables both in the code of
the interpreter and in user program space.
These tables will be discussed in later
sections and then an example program line
will be followed through the entry and
execution phases.
Syntax Related Tables
As each program line (or direct
command statement) is entered from the
keyboard (or some other I/O device), it
is checked for correct language syntax
and converted into an internal format.
Actually, the routine which does the
syntax checking also converts source items
into internal "tokens" at the same time.
Basic's syntaxer is actually driven
by a set of syntax tables, the purposes
of which are described following.
More On Interpreters
We have seen that the primary
advantages of interpreters over compilers arein the area of user interaction
and debugging. Their major disadvantage
lies in their memory requirements: not
only must the interpreter be memory
resident, even tokened source code tends
to occupy more space than truly compiled
code. Of course, speed is also a consideration; but many, this author included, feel that speed is often not
overwhelmingly important in hobbyist
appli~ations.
Of course, nobody likes
to wait forever for a program run, and
so Cromemco Basic was designed to be
as efficient as possible while retaining
virtually all other desirable features.
Another point worth mentioning
is that memory prices are still dropping at a fantastic rate, so complex
programs are coming into the reach of
more and more people.
And finally, with regards to
what can be calle'd' the state of the
WEST COAST COMPUTER FAIRE
The Reserved Name Table contains a list
of all statement, function, and operator
names that are recognized by Basic. This
table is used to equate the user's ASCII
input to a particular internal token.
Thus, in addition to the reserved name,
each entry contains the token to be used.
The Main Syntax Table. Once the first
reserved name in a statement has been found,
the statement may be classified as to type.
The type directs Basic to an entry in the
main syntax table, where an entry is simply
made up of a list of required and/or optional further items (actually their equated
tokens) that must be fo~nd in the statement.
If a required item is not found in the
455
BOX 1579. PALO ALTO CA 94302
Cromemco Basic is that the last line ~
tered is always at the end of the table.
Only when a line is deleted or modified
is it necessary to "slide" the table (in
order to recover the space occupied by
the deleted parts). Also note that the
program's line numbers are not stored
in the statement table. Instead, the
line numbers are found in the
proper position in the input line, a
syntax error is generated. This table
is really quite complex, as even such
things as arithmetic expres~ions in all
their variations must be covered. There
are even syntax subroutines included
here, so that a statement type may require (for example) a subscripted string
name by calling for a subroutine which
in turn requires a string variable, a
left parenthesis, subscripts, and a
right parenthesis. (Please note that
this is not actually how the search is
performed; it is actually more segmented
and more highly organized than stated
here.)
The syntax table contains other
information about statement types, such
as whether they are allowed in direct
mode, within a program, or both places.
It can also declare that a statement must
be the last one in a line or that subsequent statements on the same line are
permitted.
Line Number Table. This table is also
known as the Label Table. Herein are
stored the actual line numbers. Also
in this table each entry has the address
of the beginning of its corresponding program line within the statement table.
The third item in each entry in this table
is the address within the table of the
next logical succeeding line (i.e., the
line next to be executed unless program
flow is altered by a GOTO, GOSUB, or
NEXT statement). Note the implication
here: even this table is not organized
in line number order! As each new line
is entered, its label entry is simply
appended to the table and the logical
successor pointers are updated as needed.
The Binding Strength Table is more
properly described as a run-time table,
since it determines the priority in
which operators (+,-,AND,NOT,etc.) are
to be executed. It is included here
because it is used to relate the internal
tokens for the various operators to their
priorities.
Variable Table. When a variable is first
defi~d (which occurs as the first line
usingAis entered), an entry is created
for it in this table. Types of information contained herein are many: All variables have their name (' AI' , 'A$' , 'E') and
variable type (string, integer, short or
long floating point, and/or array) stored
here. In addition, scalar variables (nonarr-ay--niifiiet'ics) have tfleif actual value
stored here. Strings have their dimension
and current length stored also. Arrays
have the number of dimensions in use noted
as well as the maximum value of each dimension. In addition, arrays and string
entries contain the address of the actual
location of the data for each. The data
so addressed is located within the
On Listing a Program
After a program has been converted to internaitoken-furm,it-isobviously desirable to be able to implement the LIST statement. On unaltered
source. types of interpreters, this is
simply a matter of dumping the memory
contents back out to the list device.
In Cromemco Basic, the problem is significantly more complex: Each token must
be reconverted to its ASCII form and (as
we shall see later) constants must be
reconverted to external format.
String/Array Table. Again, this "table"
is not so much a table as simply a section of memory reserved for the storage
of array and string data. Of the tables
mentioned so far, this one is unique in
that is is allocated (expanded) at runtime. That is, since statements of the form
Tables in User Program Memory Space
Generally, these types of
tables may be referred to as "runtime" tables, though many of them
are established at program entry time.
They are the fundamental tables which
the interpreter uses in executing a
user program.
310 INPUT J
320 DIM A$(J)3B3(J32)
are legal, arrays and strings cannot have
their space allocated to them until they
are actually dimensioned during program
execution.
The Statement Table is not strictly
speaking a table. It is simply an
area of memory where all program lines
are stored after they have been converted to internal format. The most distinguishing feature of this table in
WEST COAST COMPUTER FAIRE
The For/Next Table. An entry is placed
in this table whenever a FOR statement is
encountered. Information kept here includes
the address of the corresponding variable
456
BOX 1579, PALO ALTO CA 94302
It is translated to a single byte internal
token and the syntax table entry for 'IF'
is accessed." The syntax for 'IF' requires
that the keyword be followed by an arithmetic expression, so the appropriate syntax
subroutine is called.
Without going into detail as to
what is a valid arithmetic expression, and
how the syntaxer determines that it has or
has not encountered one, it is sufficient
to note that certainly 'A2 = 3.7' would
be considered valid. That being so,
the variable 'A2' makes its first appearance
and must be added to the variable table.
It's entry would look something like this:
2 bytes
the variable name ('A2')
1 byte
the variable type, assume
a 02, short floating point
4 bytes
the actual value of the
variable, in the length
required for its type •••
set to zero until altered
table entry, the size of ~TEP requested
(or implied), the terminating TO value,
and the address of the entry in the label
table corresponding to the line logically
following the FOR statement. If a FOR
statement is executed using a variable
with an entry already stored in the FOR/
NEXT table, the old entry is deleted, the
table is adjusted, and the new entry is
appended.
GOSUB/RETURN Table. A very simple table,
this consists simply of the address of an
entry in the label table which corresponds
to the line logically following the GOSUB
statement.
User-Defined Functions Table. Since only
user-defined functions FNA through FNZ are
allowed in Cromemco Basic, this is a fixed
length table with 26 entries, each active
one of which contains the address of the
label table entry corresponding to the line
where the function was defined.
The statement table would receive a byte
signifying that a numeric variable had been
found followed by two bytes which are the
address of the entry for 'A2' within the
variable table.
The equals sign ('=') would be
recognized as an operator, and its internal
code stored next in the statement table.
The value '3.7' would be recognized
as a floating-point constant (integer
constants don't have decimal points), and
a routine would be called to translate it
to internal format. The statement table
would receive a byte signifying a particular
type of constant (short-floating here) followed,and then the internal constant would
be stored.
The 'IF' syntax requires that the
expression be followed by a 'THEN' keyword.
When it is found, its internal token is
stored in the statement table.
'THEN' may be followed by either
another whole new statement or (as in this
case) by a line number. The processing of
this line number is partly what qualifies
the Cromemco Basic interpreter to be called
an incremental compiler.
The lable tabel is scanned for a
line number '300'. When it is not found,
an entry is made for it similar to the one
previously made for line '100'. However,
for line number 300, the address of its
corresponding line in the statement table
is set to an illegal value to indicate that
it doesn't exist! (But, later, if a line
300 were entered, the addressed would be
changed to reflect the fact.) Also, the
entry for line 100 is updated to reflect
that its logical successor is line 300
(the next sequentially numbered line).
The statement table receives a token
to indicate that a label table address
AN EXAMPLE
There follows an actual example
of what happens internal to Cromemco Basic
when a program line is entered (syntax time)
and then executed (run time). It is assumed
that any existing program and/or data has
been removed via a SCRatch command and that
the example line shown is the first (and
only, though this is not significant) line
entered towards creating a new program.
Herewith the example line:
100 IF A2 = 3. 7 THEN 300
Syntax Time
The first thing detected is the
line number, '100'. This line number is
placed in the label table along with the
address of the beginning of the statement
table (where the encoded line will be
stored). Since this is the only entry in
the label table, the successor pointer will
be set to zero to indicate no successor.
Since the label table works from the top
down, the pointer to the bottom of the
table would be updated to indicate where
to place the next entry. So far, then,
the label table looks something like this:
2 bytes --pointer to statement in
statement table
2 bytes --pointer to successor label
(zero, currently)
3 bytes --the line number, 100, in
BCD (5 digits significant)
Next, the keyword 'IF' is encountered
and recognized as a valid statement type.
WEST COAST COMPUTER FAIRE
457
BOX 1579. PALO ALTO CA 94302
'A2' and the value '3.7') and returns either
a one (1) if they are equal or a zero (0)
if they are not. The expression evaluator
is finished and returns with this value to
the 'IF' processor.
At this point let us examine what
happens if the value returned is '1' (which
it can't be in our example). The 'IF'
processor ignores the 'THEN' token (it has
to be there, the syntaxer passed it!) and
encounters the label table token. This
implies a change in program flow to the
line specified in the table entry. So the
'IF' processor simply places the entry encountered in Basic's own 'next logical
statement' location. It then checks to
ensure that a line really exists to correspond to the entry. Lo and behold, the
line does not exist and Basic issues the
error message, "GOTO UNDEFINED LINE NUMBER".
Now backtrack a bit and assume that
the expression evaluator had returned with
a '0' instead (which it would in our example).
In this case, the 'IF' processor simply
aborts processing of its line and returns
to allow Basic to execute the next logical
line. When Basic encounters the next logical line ('300' in our example) it checks
to see if the line exists (it doesn't here)
and executes it if it does. If it does not,
Basic ignores the line and "falls through"
to the next logical line. Since line 300
does not exist, and since there is no
logical successor Basic would print out
will follow, and then the address of the
label table entry for line '300' is
stored. Finally,a byte of zero (00)
is stored to indicate the end of line.
At this point, then, the statement
table will contain the following:
1 byte
1 byte
2 bytes
1 byte
1 byte
4 bytes
1 byte
1 byte
2 bytes
byte
token for the 'IF'
token, a variable table
address follows
the variable table address
for' A2'
token for '='
contains 02 hex to indicate
that a short floating
point constant follows
the internal form of the
constant '3.7'
token for 'THEN'
token, a label table address
follows
label table address for
line number 300
value 00 hex, indicates
end of line
Run Time
Assume now that the user requested a
RUN of the program (and, incidentally, even
this simple statement must go through the
syntax process before it is executed!)
Basic searches out the first logical
line of the program from the label table
and then performs the following steps:
First, the address of the statement
within the statement table is found. Then
th~_ fir~t _byt_~ ~.f the statemellt is_~_~~_~LtQ
vector to the routine responsible for processing IF statements.
The 'IF' processor knows that what
follows is an expression, so it call5the
expression execution routine to evaluate
'A2 = 3.7'.
The expression evaluator notes that
the first item is a variable, so it uses
the variable address to extract the value
of the variable from the variable table
entry for 'A2'. It places this value in
an area of memory referred to as the argument stack.
The '=' operator (note: this is not
the same thing as the assignment operator
'=' used in LET statements) is then pushed
onto another Basic-maintained stack known
as the operator stack.
The constant token causes the short
floating point constant '3.7' to also
be placed on the argument stack.
Since there is no more to the expression, the expression evaluator calls on
the processing routine for the equal operator. The equality processing routine
extracts the two values (contents of
WEST COAST COMPUTER FAIRE
"***END***".
Summary
Theid_ea behind -presenting this
example was that in so doing the reader
might be presented with a better understanding of the beneficial effects of
the incremental compiler.
In many Basics, several operations
described herein would have proceeded much
differently.
As examples, the variable
'A2' might cause a sequential scan through
a variable table looking for a match on
the ASCII characters; the constant '3.7'
might have to be converted from ASCII to
internal format; and the processor might
have had to sequentially search lines in
order to locate line number 300.
In Cromemco Basic, there is no speed
penalty for using any and as many variables
wherever desired in the program, there is
no reason to put certain statements (i.e.,
subroutines) first in the program, and
constants in programs execute as fast or
faster than variables.
No attempt has been made here to
explore the various features of Cromemco
Basic. This paper was intended primarily
to show why the particular interpreter
design used was chosen.
458
BOX 1579, PALO ALTO CA 94302
Syntax Checking refers to the process of
validating the executability of a (set of)
statement(s). In other words, the language
processor must ensure that the statements
given to it follow the rules of the 'grammar'
of the language which it compiles/interprets.
For example, the statement
GLOSSARY
There follows a glossary of
some of the more complex terms as well
as some of the terms with implied meanings
as used in the body of this paper.
Assemblers, One and Two Pass. Assemblers
are language processors of sorts that
translate assembly language into machine
code. One pass assemblers usually must
either play "tricks" or put limitations
on the user in order to function. When
a one-pass compiler is implemented, it
must actually perform the functions of
interpreter and assembler, all in one pass.
Suffice to say this implies several
programming tricks. When a one-passplus-assembly compiler is implemented,
in often uses a macro assembler for the
assembly phase, thus allowing the compiler
writer to generate his own intermediate
language-sensitive code which the assembler
is "taught" to recognize.
701 FOR I = 5 TO 100 STEP 5
may work great in Basic, but a Fortran compiler would get lost after the first three
or four characters and should give the user
a "syntax error" message to tell him something
is amiss.
"Syntax" is used loosely within this
paper as a noun and verb in various forms,
and where appropriate should be thought of
as "Syntax Checking".
Source and Object Code. Generally, source
code is the original typed (keypunched,
handwritten, etc.) program as entered into
the machine, stored in characters recognizable to the language processor (ASCII
representation is almost universallyu..~ed
for microcomputers). As a special case,
though, Basic often considers source code
to be what the user entered after it has
been stripped of blanks (spaces) since the
original Dartmouth Basic was not sensitive
to the presence of blanks.
Object code might mean the actual
machine code output by an assembler or
compiler, the intermediate "code output
by a one-pass-plus-assembly compiler, or
even the internal token form output by the
first phase of a Basic interpreter of the
keyword-token or incremental compiler variety.
Optimization refers to a technique often
found in compilers whereby like expressions are recognized and extracted from
more complex expressions, statements, program loops, and even whole programs. Fo.r
example, even most moderately good compilers
could optimize the following:
B(J+K-l)
= B(J+K-l) +
Vector, as used herein, refers to the
technique of using a code or coded value.
to access a table of similarly encoded items,
the idea being to choose from several possibilities. For example, a one byte code could
be used to "vector" into a table of 256
different addresses, each of which might
represent a different statement type, function
to be performed, etc.
_
_
s
= _ ==_ ====== = = = = == =
The author would like to acknowledge the,
permission of Cromemco, Inc., owner of
the 16K BASIC describedberein, to divulge
the details of their product.
PLEASE NOTE that Cromemco is the owner of
this language, although produced by
Shepardson Microsystems, Inc.,.and any
requests for copies of the interpreter,
documentation, or simply more general
information ~ be addressed to them.
Shepardson Microsystems is the owner of the
6800 Basic noted.herein,lbut it is currently
available only on an OEM basis.
Inquiries about .. the design philosophy, etc.,
of these and other software products are
inVited, and comments on any of the foregoing
would be ve~ much appreciated.
1
The sub-expression '(J+K-l)' would be calculated before any other part of the line
is executed.
A somewhat better optimizer would
be able to treat that expression as simply:
INCREMENT B(J+K-l) BY 1
Generally, Local Optimization refers
to that done within a single expression (or
statement, etc.) while Global Optimization
refers to broader, multi-line or even multisubprogram optimizing.
WEST COAST COMPUTER FAIRE
459
BOX 1579, PALO ALTO CA 94302
AN ARITHMETIC EVALUATOR FOR THE SAM-76
LANGUAGE
Karl Nicholas
Box 257, Route 1
Pennington NJ 08534
II
II
II
Ari tlTnetic Evaluator - Karl Nictolas
II
11 ____________________________________________________ -11
This example demonstrates t\\O basic algorithns: substitution and a bit of
systematic juggling. \'lhat this exaInple does is enable tm user to express
equations in a fonnat approaching Uat of API.. oo\\ever still canpletely
canpatible wi th SA~76 of couroo. The user invokes "EXP" (expression),
ari thnetic expression = value. One can get too expression s:anned in ei tter
direction by using neutral or active fetctes. A normal active fetch will
give a normal left to right s:an. For an example of too left to right
s:anner:
tJ-------------------
{}
{}
%EXP,2+10\2/=6
or an example of too right to left s:anner:
tJ----------------------
{}
{}
&EXP,2+10\2/=7
or to get what you v.ent from eitoor scanner:
tJ------------------------{}
{}
%EXP, 2+{l0\2 }/=7
~\s
you can ooe, hierarchy is established by use of curly braces, ttey can be
infinitely nested, of couroo. The user defines all otter functions by use of
tte "define" function. Thi s function creates t\\O simultaneous lists where in
too first is too symbol to be used in tte evaluator and in tm mcond is too
SA~76
function or user defined function to be substituted in its place. The
user invokes "define", first list append, second list append. For example:
tJ-----------------------
{}
{}
{}
%define,+,ad/=
%define,\,di/=
%vt, list1/=
{}
, +, \
{}
{}
%vt, list2/=
,(,ad,),(,di,)
{ }
WEST COAST COMPUTER FAIRE
460
BOX 1579. PALO ALTO CA 94302
This will cover
define reveal s:
too
functions used in th::: previous exai1lple. A view text on
1}----------------------------------------
{}
{}
{}
{}
%vt,definel=
%dt, list1, &ft, list1/( , ( [1] ) ) /'
%dt, list2, &ft, list2/( , ( , [2] , ) ) 1
This one is simple; tte extra carrnas in list2 are ttEre to
from functions for tte evaluator:.
~parate
numbers
The procedure that tests for tte neutral and does tm substituting is "EXP".
Looking at i t ~ ooe:
1}--------------------------------------------------
{}
{}
{}
{}
{}
{}
%vt,EXP/=
%nL'
(%dt,arith,([1])/%pt,arith,{,}%ft,list11/'
%EXP11, %arith,<%EXP11, >, %ft,list211I} , ,
(%dt,arith,([1])/%pt,arith,{,}%ft,list111'
%EXP1,%arith,<%EXP1,>,%ft,list2111)1
{ }
The first thing "EXP" does is test to ~e if tte fetch to "EXP" WlS neutral
or not. In both ca~s it defines text arith as what ever was after "EXP"
tam partitions out of arith tte curly braces and all list1 symbols. After
that it fetctes which ever evaluator it' s suppo~d to depending on tte
neutral implied, substituting arith with carmas in betw:=en all numbers and
list2 replacanent functions. The procedure trot does all tte evaluating is
eitter "EXP1" or "EXP11". "EXP11" evaluates from right to left and to ~e
what it does v.e will do a view text on it:
1}-------~-------------------------------------
{}
{}
{}
%vt,EXP11/=
%iL [2] ,,[1] , (% [2] , [1] , %EXP11 [#3] / /) /
This is very similar to the recursive algorittrns except trot tte nunbers and
fmctions are user defined in each ca~. "EXP1" tten evaluates from left to
right. A view text on it gives:
1}--------------------------------------------{}
{}
%vt,EXP1/=
%iL [2]" [1], (%EXP1, %[2] , [11, [3] 1[#4] I) 1
{ }
WEST COAST COMPUTER FAIRE
461
BOX 1579. PALO ALTO CA 94302
This time it takes tha first set of nunbers and f\l1ction and evaluates it
than loops back on i tsel f until only a nunber is left. If you Wlnt to use an
user defined functions make sure you follow tIE same format as alwsys.
(nunberFUNCTIONnunber) If tIE fLllction only requires one nunber it must be
enclosed in curly braces because no otter fonn of hierarchy is programned
in.
II
II In thi s section I would like to just go to tm
II
Examples
II teleprinter and show some examples using this
11 ___________-11 evaluator. Remember everything ttat tas been defined
in this ~tion is still mre and valid.
example will be simulating APL sort of. MY\'06y on with tIE show:
r1y
main
tl-------------------------------------------------------------
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
%dt,FAC,!%ii,q2,,1,(%mu,q2,%FAC,,%su,q2,1///)////////=
%pt,FAC" q2// / /=
%define,-,exp/=
%define,(@!),FAC/=
%define, (@i) ,mrn/=
%define,*,mu/=
%define,-,su/=
%dt,APL,! %ca, %xc,OD//\ut,**/\apl///=
%dt, ** , ! %os,
EXIT/%ri// /=
%dt,apl,!%os,
/%os,
%EXP,&IS///%apl///=
{}
\APr./=
{}
{}
{}
6
3+3
5+3-2*3\9
{}
{}
{}
{}
2
{ }
256
3#27
3
{}
!l00
{} 933262154439441526816992388562667004907159682
{} 643816214685929638952175999932299156089414639
{} 761565182862536979208272237582511852109168640
{} 00000000000000000000000
{}
!200
{} EXIT
{}
To make clear tow I exited, because it is a little tricky, I defined a user
trap Uat means thlt when a delete code w:lS hit during a multiply f\l1ction
tre text .,**,. \eS executed. With a little imagination one can get closer and
closer to real API. but never all tre ~y trere because flllctions don't cane
before multiply and divide and 9) on. Ho~ver let me see you simulate API..
wi th a different kind of language, especially one ttat gets a factorial of
one hLlldred wi th ALL significa"lt figures.
~WEST
COAST COMPUTER FAIRE
462
BOX 1579, PALO ALTO CA 94302~
APPENDIX
II
11
II
~
Beginner's - Part I
Operation and Syntax
II
II
___lI
The SAM76 language deals mostly with the manipulation of text. It is
designed for use through a reactive machine such as a personal carputer such
as a "rone reckoner" set.
The language design has the structure to allow interaction of functions
resident in the machine with expressions, scripts or procedures written by
the user; in this manner the language gives the user an unusual amount of
flexibility e1d freedom for invention and extension.
The syntax consists first of a "warning character" followed by the
expression itself then terminated by a different second "syntax marker"; in
the follOWing discussion the "warning characters used will be one of the
follOWing three: % - percent sign, & - arrpersand oJ:! - exclamation mark;
the "syntax marker" will be the / - slant sign for exanple:
%•••••••• / or &.......•. / or else ! ......... /
The foregoing three examples represent re~ctively the three types of
expressions used in the SA~76 language and are known re~tively as
"active" , "neutra 1 " or "protected" expreSSions; the signi ficance of the
three types will be explained later.
The expression itself is made up of arguments which are separated by conmas.
The first argument designates the action to be taken. If this first argument
consists of two or three alphabetic characters, the action to be taken may
well be one defined as a function builtin to the language or otherwise a
language primitive function. Each argument following contains text or data
to be dealt with by the action taken within the execution of the expression.
For instance we wish to add two and four; consequently we type everything in
the follOWing exarrple up to and including the "=" equal Sign which tells the
canputer to do its thing:
{1--------------{}
{}
%ad,2,4/=6
The two letter code "ad" signifies the primitive of addition. Upon
execution, which was initiated by the equal sign after the slant sign, the
value of the second argument or 2 was added to the value of the third or 4.
Then the value cOll'Puted is outputted. The syste-n then returns to a waiting
condition known as the idling program which identifies itself by moving the
"curoor" or printer to the beginning of the next line.
The idling program is actually the following expression:
%os,%is//
When starting, the innernost expreSSion is located which contains an "is"
primitive; "is" - or "input string" accepts input from the keyboard up to
the reception of the current "activator" namely (in our case) the equal
sign. The corrputer replaces the %is/ expression with this typed in text. Now
the system goes back one level of nesting to the expression whose conmand
was "os" or "output string"; this expression outputs the contents of the
second argument which is now the text accepted from the keyboard, thus
repeating what was typed in. For exarrple:
{1--------------------------{}
{}
%os, %i s//=ABC=ABC
WEST COAST COMPUTER FAIRE
463
BOX 1579, PALO ALTO CA 94302
In actual fact the expression "%os,%is//=" is executed everytime the idling
program is loaded; it is not printed out and lives in what is known as the
working area of the memory so actually the printed exarrple should be:
{J-------------{}
{}
ABC=ABC
It is important to be able to store text, script or procedures in memory. To
this end the "dt" which is the mnemonic for the "define text" function is
used. If we wish to define a text to be named "A" containing the words "AN
APPLE" we type:
{J------------------------{ } %dt, A, AN APPLE/=
{}
Now stored in mem::>ry is a "text" named "A" containing the words "AN APPLE".
To retrieve this information we "fetch" the "text" named "A", and in this
processs the second argument of the idling program will contain the words
stored and the "os" will output the value returned in the fetching of "A"
thusly:
{J------------------------{}
{}
%ft,A/=AN APPLE
When we defined the text "A" nothing was returned since "dt" does not return
any value on execution.
To Continue - "pt" or "partition text" removes one or more characters from a
string and in its place sets markers which represent the value of the
partition.
{J-------------------{}
{}
%pt,A,AN/=
The second argument holds the name of the text to be dealt with; the third
argument is the string of characters which if found in the "text" will be
removed and replaced by partitions. Now to examine "A":
{J------------------{}
{}
%ft,A/= APPLE
Note that "A~" is miSSing and nothing shows its presence because the
expression that fetched "A" above did not require any partitions to be
"plugged" in a manner to be shown later.
We will now define another text to be named "B":
{J-----------------------------------{}
{}
%dt,B,THE SHACK
O~
THE HILL/=
We partition that text on space:
{J------------------{}
%pt,B, /=
{ }
WEST COAST COMPUTER FAIRE
464
BOX 1579, PALO ALTO CA 94302
,-l
We fetch "B" and get:
{j-------------------------------{}
{}
%ft,B/~HACKON1'HEHILL
Notice the spaces are omitted.
"fe" or "fetch element" returns the contents of the text designated by the
second argument: but on finding a partition it stops output. On the
execution of the next "fe" on that text the next element of the text bet\oJeen
partitions are returned:
The first:
{j------------------
{}
{}
%fe,B/=THE
The second:
{j-----------------{}
{}
%fe,B/=SHACK
The third:
{j--------------{}
{}
%fe,B/=ON
It is very simple to find out where the partitions and the divider happen to
be at any time by using the "vt" or "view text" primitive thus:
{j-----------------------------------------------{}
{}
%vt,B/=THE[l]SHACK[l]ON[l] [I]THE[l]HILL
In this view of text "B" the partitions, all of value "I" are shown as (1],
and the location of the text divider is shown by [I].
At the end of the "text" there is nothing left to return:
{j--------------{}
{}
%fe,B/=
The gadget which remembers where
"text divider": each text has one
arOlmd by the execution of a
ordered around through the use of
one left off in the "text" is known as the
of its own. This divider may be moved
a number of different primitives or may be
the "md" - "move divider" function thus:
{j--------------will
"B".
{}
{}
%md,B/=
return
the
divider
WEST COAST COMPUTER FAIRE
to the beginning or left end of the "text" nailed
465
BOX 1579, PALO ALTO CA 94302
Now to explain 00w to replace the parti tions in a text with characters; to
do this we add arguments to the expression that is used to fetch the text.
For instance if we wish to fetch "B" replacing the partitions with an
asterisk:
{1---------------------------~-------{ } %ft, B, *I=I'HE*SHACK*ON*THE*HILL
{}
Now we can redefine "B" as this value retuned and in other words return it
to the original:
{1----------------------{}
{}
%dt,B,%ft,B, 11=
If we now fetch "B" it would seem that the original has never been changed:
{1------------------------------------{}
{}
%ft,B/=I'HE SHACK ON THE HILL
Since the S.z\M76 language works from the inside to the outside of the
expression, it first fetched "B" replacing the partitions with spaces; then
on doing the next expression a "text" named "B" was defined (erasing the
original and partitioned out version). This usage of interactive functions,
primitives within primitives is called nesting. In theory this can be done
to any depth - in other words it is limited only by the amount of memory
available.
Another example of nesting:
{1--------------------------------{}
%dt,C,H/=
{}
%Pt_,~~ _ ~ ft_,~/I:=
{}
{}
%ft,B/=rE SACK ON TE ILL
_
In the above exanple the text named "B" was partitioned on the basis of the
characters received on fetchi1l9 the text named "C". To return it to the
original form we type:
{J-------------------------{}
{}
%dt,B,%ft,B,%ft,CIII=
In the latter reconstitution, text "C" was first fetched then this in the
act of fetching "B" was used to replace partitions found therein; the result
was then the argument of the define text expression.
At this tirre we will introduce a short cut in the act of "fetching". If the
name of the text to be fetched is not the sarre as any of the primitives or
built in functions then the first argument "ft" may be left out and the name
of the text is used as the first argument of the expression. As we are using
one character names for all our exarrples we can do this quite safely from
now on.
~ WEST COAST COMPUTER FAIRE
466
BOX 1579. PALO ALTO CA 9430~
In order to find out what the primitives in a system are you can do this by
executing the "@f" - "what f\D'lction" ccmnand thus:
{}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{}
{}
&@@f, I={function list will be here}
Observe the use of the & - anpersand instead of the t sign as a warning
character to start the expression: also since @ is in its own right a
warning character, it is protected by precedinwing an executable procedure. It is
easy to go fran here and let the expression call another expression or
itself by silrply fetching the text it is contained in. This ability of
recursion lets individual strinqs act as "subroutine" expressions.
There are two other. ways of protecting procedures, besides using the ! •.••• I
form: these are by usin : in this manner you can
incotpOrate ! and I in your text witOOut having them act as if they were
warning characters.
Let us now say that we wish to be able to fetch one string and have it
partition out of "B" the cootents of "C": then output the contents of "B"
and then restore "B" to its original form. To do this we need to use the
"os" or "output string" primitive. This primitive outputs the contents of
the second argument of its expression:
{}~~~~~~~~-~~~~~--~
{}
%os,ABC/=ABC
{}
if we nest the expreSSion that fetches "B" within the "os" expression,
the contents of "B" Will be displayed on execution:
Now
{}~-~~-~~~~~~~~~~~~~~-~----~~-~~~~~~~~
{}
%os, \811=rHE SHACK ON THE HILL
{}
-......WEST COAST COMPUTER FAIRE
467
BOX 1579, PALO ALTO CA 94302~
We will now use "os" in an executable expresssion to display the contents of
"B":
{J---------------------------------{}
{}
{}
%dt,F, !%O/\os,%B//%E///=
%F /=TE SACK ON TE HILL
First on execution of "F" , "D" was fetched. Execution of "D" caused the
parti tioning of "B" on the contents of "C". The execution of "os" displayed
"B" as it stood with its partitions errpty or "null". Then "E" was fetched
and in its execution "E" caused the redefinition of "B" replacing the
partitions with the contents of "C" thus restoring it back to its original
condition.
Finally we would like to know just what we have created
"text area" of memory. To do this we use the "It" or "list
the second arg\l1lellt represents the character string
precede each name just so we can tell them apart from each
and stored in the
text" primitive:
we wish to use to
other thus:
{J---------------------------{}
{}
%It, /= A C D E F B
In this exarrple we used a space which precedes each na.'1le: note that "B" is
last in the list - that is because it was redefined for the last time when
we fetched "F" in the previous exarrple.
II
II The editor of this beginner's description of the SPtM76
I I Nota Bene II language wi shes to credit Robert M. Evans, from whose
I....I _____~II first technical writing effort this was derived.
WEST COAST COMPUTER FAIRE
468
BOX 1579, PALO ALTO CA 94302
ALGOL-M
AN IMPLEMENTATION OF A
HIGH-LEVEL BLOCK STRUCTURED LANGUAGE
FOR A MICROPROCESSOR-BASED
CO~~UTER
SYSTEM
LT Mark S. Moranville
Naval Postgraduate School
Code 52MI
Monterey, CA 93940
PH 408-646-2449
~stract
The design and implementation of the ~LGOL-M
programming language for use on a microprocessorbased system is described. The implementation is
comprised of two subsystems, a compiler which
generates code for a hypothetical zero-address
machine and a run-time monitor which executes
this code. The system was implemented in PL/M
to run on an 8080 microcomputer in a diskettebased environment with at least 20k bytes of user
storage.
History of Algol
The definition of the algorithmic language
(ALGOL-60) was the result of the work of a
committee of distinguished computer scientists
and was originally published in 1960 [2]. The
nurpose of the developers of ALGOL-60 was the
establishment of a universal computer language
specifically designed to allow for the logical
and efficient program representation of
algorithms. Additional versions and extensions
pf ALGOL-60 such as ALGOL-68 [5] and ALGOL-W [6]
~ave been developed and have found acceptance in
~he academic communities and in Europe.
~icrocomputer
Features of the ALGOL-M Language
Software
The rapid development of microcomputer hardware since 1975 has generally resulted in a con~iderable lag in the corresponding development of
compatible software, particularly that of high
level languages. The Intel 8080 microprocessor
is one of the few microprocessors which has
endured long enough to permit software developmem~
to advance beyond the assembly language level.
The majority of high level languages currently
~vailable for microcomputer based systems are
extensions of the original Dartmouth BASIC and.
~lthough they allow for a reasonable level of
~rogramming sophistication, they are encumbel,
by the inherent limitations of the BASIC langu~je
constructs.
Objectives of ALGOL-M
The major objective of this project was to
develop a dynamic, block-structured, recursive
~igh level language which would provide adequate
-....WEST COAST COMPUTER FAIRE
programming power and flexibility for
applications programming using microcomputer
based systems. ALGOL constructs were chosen
because of their simplicity and power and
because it was possible to write the grammar in
LALR(l) form for use with available compilercompiler generated parse tables [4]. ALGOL-M
was developed to run on 8080 based microcomputer
systems because of the availability of a high
level system development language (PL/M) Il]
which produces 8080 object code and which could
be run on the Naval Postgraduate School's IBM
360. The ~vailability of an 8080 based disk
operating system (CP/M) [3] simulator on the
IBM 360 and the widespread use of CP/M were
also strong factors in the choice of 8080 microprocessor and CP/M operating system.
Although ALGOL-M was modeled after ALGOL-60
no attempt was mnde to make it a formal subset
of ALGOL-60. This was done intentionally in
order to provide a language which would be best
suited to the needs of applications programmers
using microcomputer systems. However, the basic
structure of ALGOL-M is similar enough to ALGOL60 to allow simple conversion of programs from
one language to the other. This was considered
particularly important in view of the fact that
the standard publication language is ALGOL-60.
Therefore, there exists a large source of
applications programs and library procedures
which can be simply converted to execute under
ALGOL-M.
Type Declarations. ALGOL-M supports three
types of variables: integers, decimals, and
strings. Integers may be any value between
-32,767 and +32,767. Decimals may be declared
ith up to 18 digits of precision and strings
be declared as long as 255 characters. The
:ault precision for decimals is ten digits
.. :" j the default length for strings is ten
characters. Decimal and string variable lengths
may be integer variables which can be assigned
actual values at run-time.
Another form of declaration in ALGOL-M is
the array declaration. Arrays may have up to
255 dimensions with each dimension ranging from
469
7.
BOX 1579. PALO ALTO CA 9430~
-32,767 to +32,767. The maximum 8080 micro~
processor address space of 64k bytes limits
practical array sizes to something smaller than
the maximum. Dimension bounds may be integer
variables with the actual values assigned at
run-time. Arrays may be of type integer,
decimal or string.
in a halt in program execution at run-time until
the imput values are typed at the console and a
carriage return is sent. If the values
typed at the console match the read list in
number and type, program execution continues.
If an error as to number or type of variables
from the console occurs, program execution is
again halted until values are re-entered on the
console.
Arithmetic Processing. Integer and binary
coded decimal arithmetic are supported under
ALGOL-M. Integers may be used in decimal
expressions and will be converted to decimals
by the compiler. The integer and decimal
comparisions of less-than, greater-than, equalto, not-equal-to, less-than-or-equal-to, and
greater-than-or-equal-to are provided.
Additionally, the logical operators AND, OR and
NOT are available.
Implementation
The implementation of ALGOL-M consists of
of two subsystems, a compiler and an interpreter
Compiler Implementation. The compiler was
designed to read source language statements
from a diskette and to produce an intermediate
language file with optional source listing at
the console. A two pass approach was used to
facilitate the implementation of GOTO statements
forward subroutines, and control statements.
Pass one builds the symbol table and saves all
branch locations for resolution during pass two.
Pass one also computes the size of the program
reference table(which is used at run-time for
maintaining the actual memory locations of
variables, arrays, and subroutines) and writes
this information out to the intermediate file.
Pass two resolves all forward references and
emitsqode to the intermediate file on disk.
Control Structures. ALGOL-M control
structures consist of BEGIN, END, FOR, IF THEN,
IF THEN ELSE, WHILE, CASE, and GOTO constructs.
Function and procedure calls are also used as
control structures. ALGOL-M is a block
structured language with a block normally
bracketed by a BEGIN and an END. Blocks may
be nested within other blocks to nine levels.
Variables which are declared within a block
can only be referenced within that block or a
block nested within that block. Once program
control proceeds outside of a block in which
a variable has been declared, the variable may
not be referenced and, in fact, run-time
storage space for that variable no longer
exists.
Functions, when called, return an integer,
decimal or string value depending on the type
of the function. Procedures do not return a
value when called. Both functions and
procedures ma-Yha,'-ef-zeroor mor-e- parameter sf
and may be called recursively.
Input/Output. The ALGOL-M WRITE statement
causes output to the console on a new line.
The desired output is specified in a write list
which is enclosed in parentheses. String
constants may be used in a write list and are
characterized by being enclosed in quotation
marks. Any combination of integer, decimal and
string variables or expressions may also be used
in a write list. A WRITEON statement is also
available which is essentially the same as the
WRITE statement except that output continues on
the same line as the output from a previous
WRITE or WRITEON statement. When a total of
80 characters have been written to the console
a new line is started automatically.
Console input is accomplished by the READ
statement followed by a read list of any combination of integer, decimal and string
variables enclosed in parentheses. If embedded
blanks are desired in the input for a string
variable, the console input must be enclosed in
quotation marks. A READ statement will result
WEST COAST COMPUTER FAIRE
Interpreter Implementation. The ALGOL-M
pseudo machine, as shown in Figure 1, is a software simulation of a stack-oriented CPU with an
instruction set which is particularly well
suited for execution of ALGOL-M programs. The
ALGOL-M interpreter is loaded at address 100 hex
(as are all executable programs under the CP/M
operating systemfcind proc-eedst6- read the
ALr~L-M intermediate code from disk,
constructing the pseudo machine begining at the
first free memory location. The ALGOL-M intermediate code is read into a buffer in 128 byte
segments. The first two bytes of the
intermediate code represent an integer value
equal to the number of bytes to be used for the
program reference table (PRT).
The remaining intermediate code is
manipulated in accordance with the algorithm
shown in Figure 2 in order to construct the
pseudo machine code area.
The ALGOL-M interpreter uses the pseudo
machine code area as input data. Each pseudo
machine operator is equated to an integer value
which is evaluated in order to provide the
correct entry into a large case statement in the
interpreter. Each entry in the case statement
contains the necessary code to cause proper
run-time execution of the specific ALGOL-M
pseudo instruction. The case statement is
executed continually until the ALGOL-M program
has been completed, at which time control is
passed back to the operating system. A run-time
470
BOX 1579, PALO ALTO CA 94302
RA
STACK
RB
CODE AREA
RC
0004
PROGRAM REFERENCE
TABLE (PRT)
0002
0000
lOOH
ALGOL-M MACHIN!:.:
MEMORY ORGANIZATION
F1GURl
WEST COAST COMPUTER FA10RE
1
471
BOX 1579, PALO ALTO CA 94302
S'I'ORE BYTE PLUS NEXT BYTE
IN ALGOL-t-1 PSEUDO MACHINE
CODE AREA
STORE BYTE IN COPE AREA,
READ IN ASCII NUMBERS UNTIL
BINARY ZERO, CONVERT TO TWO
BYTE INTERNAL FORM, STORE IN
-, AREA
STORE BYTE IN COPE AREA; READ,
IN ASCII CHARACTERS UNTIL BINAR
ZERO,
TO INTERNAL FORM,
STO
IN ASCII DIGITS AND DECIMAL
POINT UNTIL BINAR¥ ZERO, CONVE
TO INTERNAL FORM, STORE IN CODE
REA
VALUE OF THESE TO COD~ BASE,
STORE IN CODE AREA
READ IN NEXT BYTE, STORE IN
CODE AREA
READ IN NEXT TWO BYTES,
STORE IN CODE AREA
FIGURE
WEST COAST COMPUTER FAIRE
2
472
BOX 1579. PALO ALTO CA 94302
stack is used to facilitate the execution of
ALGOL-M pseudo instructions and for run-time
storage allocation. Figure 3 illustrates how
the stack is used in allocating decimal and
string variables(integers are stored directly in
the PRT). Each time a new block is entered the
block level pointer is set to the top of the
stack. When a block is departed the top of
stack pointer(RA) is decremented to the address
of the previous block level. Therefore the
storage allocated for variables within a given
block is automatically de-allocated when the
block is departed.
Peck, C.H.A. Koster, "Report on the
Algorithmic Language ALGOL-68", Numer. Math. Vol
14, 1969.
6. IfJirth, N., C. A. R. Hoare, "A contribution to
the Developments of ALGOL", CASM, Vol.9, No.5,
June 1966, pp. 413-432.
7. Feldman, P. and Rugg, T., "BASIC Timing
Comparisons", Kilobaud, Issue #6, p. 66-69, June
1977.
Conclusions
This project has resulted in the construction of a high-level, block-structured,
applications oriented compiler for micro
computers with 20k bytes of memory or more.
When compared to a fully dynamic scheme, the
stack storage allocation and retrieval scheme
presented here appears to enhance program
execution speed, reduce memory requirements, and
simplify compiler implementation.
Included in
appendix A are benchmark programs 4, 5, 6, and
7 obtained from REF [7]. These benchmark
programs illustrate the structure of ALGOL-M
as compared to BASIC.
Acknowledgements
ALGOL-M is an outgrowth of a thesis
completed at the Naval Postgraduate School by
the author and LCDR John P. Flynn.
LCDR Flynn's
contribution to the completion of this project
cannot be over emphasized.
Professor Gary Kildall was our thesis
advisor and I wish to express my appreciation
for his assistance and direction throughout
this project.
Thanks also goes to the W.R. Church
Computer Center Staff for their technical
support.
List of References
1. Intel Corporation, 8008 and 8080 PL/M
programming Manual, 1975, 3065 Bowers Ave,
Santa Clara, CK., 95051.
2. Naur, P. (ed.), "Report on the Algorithmic
Language ALGOL-60", Comm. ACM, Vol. 3, No.5,
May 1960, pp.299-314.
3. Strukynski, Kathryn B. Information on the
CP/M Interface Simulator, internally
distributed technical note.
4. University of Toronto, Computer Systems
Research Group Technical Report CSRG-2, " an
Efficient LALR Parser Generator," by W.R.
Lalonge, April 1971.
5. van Wijngaarden, A., B. J. Mallioux, J. E.
~WEST COAST COMPUTER FAIRE
L~
473
BOX 1579, PALO ALTO CA 9430~
BEGIN
DeCIMAL A,B,C;
BEGIN
STRING X,Y,~;
BEGIN
DECIMAL C,D,!::;
END;
END;
END;
BLOCK LEVEL 0
BLOCK LEVEL 1
BLOCK LEVEL 2
END BLOCK LEVEL 2
END BLOCK LEVEL 1
~ND BLOCK LEVEL 0
-
2
1
-~
o
LEVEL
h
ADDRESS
-
STACK
~
tRB
STORAGE }:o'OR
BLOCK LEVEL 2
--... ----_.
'-+
STORAGE FOR
BLOCK LEVEL 1
~
STORAGE FOR
BLOCK LEVEL 0
'---'
BLOCK LEVEl.S
AND
STACK
STORAG!::
FIGURE 3
WEST COAST COMPUTER FAIRE
474
BOX 1579, PALO ALTO CA 94302
Be"ch~ark
300
400
500
510
bOO
700
800
Proqra~
4
BEGIN
INTF.GER A,K;
PRINT "START"
K=O
K=Ktl
A-K/2*3t4-5
IF K<1000 THEN 500
PRIr..T "END"
END
~RITE("START");
K:=O;
wHILE K<1000 DO
BEGIN
K:=Ktl;
A:=K/2*3tl.l-5;
END;
wRITE("ENO");
END
Benchmark ProQram 5
300
400
1500
1510
520
bOO
700
800
BEGIN
INTEGER A,K;
PROCEOURE OONOTHING;
A:=O;
wRITE("START");
K:=O;
wHILE K<1000 00
BEGIN
K:=l
in addition to CALL
.
This makes it easier to call assembly
language ~rccedures.
Typically the
in the erammar.
Since DO groups can be nested, it
first stacks two of its variables
which allows the procedure to
be
called recursively. It then calls the
procedure GRP$HEAD which will parse
out either a plain DO group or else a
DO-~HILE.
GRP$HEAD also calls a
procedure to increment the nesting
level.
On return from GRP$HEAD, if there
have beer: nc syntax errors so far
(E=O) then zero or more statements are
parsed out (rrocedure STNT) until an
END is encountered.
At the end of
GnOVP, a call is made to EXIT$BLK to
decrement the nestin[ level and delete
the symbol table block if one was
allocated.
WEST COAST COMPUTER FAIRE
0210
Code generation. Since the 6800
has a--limlted number of reeisters,
code generation is not complicated by
having to perform elaborate register
allocation as it would be with the
8080 microprocessor.
Accumulator A is used for all
byte expressions, with accumulator B
used only for address operations. (In
the latter case BA is treated as a 16
bit accumulator.) If there is a value
in either accumulator that must be
saved temporarily, it is pushed onto
the
run-time
stack.
Later
the
temporary is accessed via the index
register. For example,
PSHA
.
(code
.
TSX
(save temp value)
which reloads ACCA)
ANDA O,X (X points to temp)
INS
479
BOX 1579 . PALO ALTO CA 94302
. l'he index register is primarily
used however
to
address
arrays.
Subscripted addresses are built up in
BA and then transfered to the
X
register via a subroutine. (The lack
of a instruction to do
this
is
probably the single greatest weakness
in the 6800 instruction set.) Tbe
orily other subroutine calls generated
by the compiler are for multiplication
and division. The compiler does not
have to generate the the above three
subroutines
since
they
are
all
available in my system ROM.
Most
compilers
translate the
entire source
program
into
so~e
internal form, such as a tree or a
list of quadruples. Additional passes
translate the internal form into the
object code in addition to performing
optimizations.
Since
SPL/M
is
a
one-pass
compiler, this technique is hot used.
Instead code is generated as
the
parsing
takes place.
For example
. (again referring to Figure A-4) , at
address 1517 a jump (7EH) is generated
back to the beginning of the the DO
WHILE following the
'F~D'.
(The
address to jump to had been previously
saved
in
GH$ADDR
by
procedure
GRP$F.EAD) •
Code generation in a one-pass
compiler is complicated by not knowing
what is coming next in the source. In
.. _~l'l_ IF o:rP(L \'mILEsta temen t, a jump is
required to go to .the end·· or- thestatement if the
evaluates
false, bu t the end of the s ta temen t
isn't known yet. So the
compiler
generates a jump to 0 instead (see
address 1567), and later a Iffixup" is
performed to patch up the jump to the
proper address.
Code generated for
fixups is listed in parentheses on the
printout
(e.g. see code following
address 156D).
Ini tially I tried to handle code
generation fer expressions in the same
manner; i.e. in the same routines that
were
p3.rsing
out the expression.
However because of the hierarchy of
operators I found it difficult to
generate the proper code at the right
,time.
I therefore separated the code
_·e~neration
for
expressions
into
individual
routines
for
each
operator. Commurica tion between the
p~rser
and the c~]e generator is via
two stacks: erie for operands and the
other fer operators.
Entrie~ on the operator stack are
all one byte long, and consist of p.n
inteFer representine ~he p<'3.rticvla.T
WEST COAST COMPUTER FAIRE
480
operator.
The
operand stack has
variable lenrth en tries fror.; one to
three bytes- in length.
Fach entry
describes the operand type and where
it is currently located (at ~-time):
Code Lerl£th
2
0
1
2
~
..,I
1
1
1
1
3
4
5
6
37,
7
..,I
1
8
a
1
1
1
1
1
~
p.
B
C
D
A
BA
TOS
X
l";eaning
Eyte constant
A_ddress cons tan t
Byte value in A
Address value in BA
Byte value on TOS
Address value on TOS
Byte variable
Address variable
Byte variable, addr in
Addr variable, addr in
Byte variable, addr on
Addr variable, addr on
Byte variable, addr in
Addr variable, addr in
Bp-
BA
TOS
TOS
X
X
- Accumulator A
- Accumulators EA
- Top of stack
- Index register
As an example, the statement:
X = 500 + Y * 31H ;
is represented internally as:
Opera.!l~
Stack
OJ:era tor Stack
o (byte const)
31
7 (addr var)
HIGH(. Y)
LOW(.Y)
o (addr const)
01
~4(addr
var)
HIGE(.X)
LO\J( .X)
~B ~~~:
~~~ :~
code for assign =)
0
beg of stmt)
where HICH(.Y) and 1O\·;(.Y) refer to
the high and low bytes of the address
of variable Y.
As each operand in an expression
is parsed out, it is pushed onto the
operand
stack.
However as each
operator is parsed out, a pair of
vectors (called F and G functions in
Gries [3J) are u~ed to see if the code
for the cr€rator already at the top of
the operator stack should be generated
first.
This is donE: b;y comraring the F
value corresyonding to the orerator at
BOX 1579, PALO ALTO CA 94302
the top of the stack with the G value
for the new cperator just parsed.
If
the F value is greater, then a code
generation routine is called for the
operator at the top of the stack. It
will remove one or two operands from
the operand stack, delete the operator
from the top of the operator stack,
and push a descriptor of the result
onto the operand stack.
If instead the F value is less
then the G value, the new operator is
just pushed onto the operator stack.
The
values for the F and G
vectors
reflect
the
operator
precedence for the language. I wrote
a BASIC program
to
compute
the
vectors, based on an algorithm on page
116
of Gries.
The input to the
program
consisted
of
strings
representing
the
BNF for SPL/M
expressions.
the pattern would not be recognized
and
no
optimization
would
be
performed. However the second form is
much less likely to be written.
vJrther
=
BCS 3+*
(to end of IF)
(code for true part)
However if the expression is a
of the form:
the code R"enerated
inefficient:
o
o
6
HIGH( .var)
LOvJ( • var)
BRA 2+*
LDAA =OF}~
1=1 + I ;
WEST COAST COMPUTER FAIRE
rather
(true)
* (end of code for = <> (not equal)
Procedures:
Defined wi thin a PROCEOORF-END pair and called via a
CALL statement
Built-in functions:
Ty~ conversion (LOW, HIGH, DOUBLE)
Direct memory access (MEM, l-1EMA)
Niscellaneous:
Identifiers may be any length
Decimal, hexadecimal, and string cons tan ts
Integer arithmetic only
Figure A-l.
WEST COAST COMPUTER FAIRE
SPL/M Language Features (Vl.C)
483
BOX 1579. PALO ALTO CA 94302
NIL
::= ::= IF THEN
::= :: = 00 ;
: 00 WHILE ;
::= END
::= : PROCEDURE
: : PROC ;
: ::= CALL : CALL
::= DECLARE
: DCL
i ,
1 _t!llt>
::=
: ( )
: LITERALLY ''
< LIT ''
::= BYTE
ADDRESS: ADDR
::= )
::= DATA (
: ,
::= :
(assignment> ::= =
Figure A-2.
-......WEST COAST COMPUTER FAIRE
SPL/M Grammar
484
BOX 1579, PALO ALTO CA 9430~
.. --
:
::= ~D ::=
: NOT ::= : <= : )=
::=
:
:
:: = * / ::=
: -
::=
:
: . )
: ( )
::=
:
: ::= A : B : C ••• : Z
:
: ::=
: $
::= 0 : 1 : 2 •••
9
::= ::= ::=
LENGTH &: LAST
functions
:• use au! ti ple
:ESc tored DCL' s
: DCL'S .
•
INITIAL attribute'• use DATA
planned for V2.0
planned for V2. 0
DCL LIT
use hemdeciE.l
Binary &: oc tal
constants
Inte~rupt
access
and 6BOO flags
Figure A-3.
WEST COAST COMPUTER FAIRE
write in
assembly
PL/M Features Not in SPL/M Vl.O
486
BOX 1579, PALO ALTO CA 94302
0012
0013
0014
0015
0016
0017
0018
0019
0020
152CH:
GROUP: PROCEDURE;
DCL GPI BYTE;
400H: DCL GP$STK f20H~ ADm,
GH$STK 20H' ADDR;
GP$STK{GPI)
= GP$ADDR;
0021
GH$STK{GPI)
= GH$ADDR;
0022
GPI
0023
0024
/* PARSE OUT DO OR DO-WHILE
CALL GRP$HEAD;
0025
IF E
152C: 96 7A
152E: 5F
152F:·48
1530: 59
1531: 8B 00
1533: C9 04
1535: BD FE 29
1538: 96 66
153A: D6 65
153C: E7 00
153E: A7 01
1540:
1542:
1543:
1544:
1545:
1547:
1549:
154C:
154E:
1550:
1552:
96
5F
48
59
8.B
C9
ED
96
D6
7A
40
04
FE 29
68
67
E7 00
A7 01
1554: 7C 00 7A
= GPI
1557: ED 16· FA
=0
+ 1;
THEN 00;
155A: 96 5B
155C: 27 03
155E: 7E 00 00
0026
*/
00 WHILE N
<>
END$TOKEN;
1561: 965A
1563: 80 86
1565: 26 03
CALL STMT;
0027
1567: 7E 00 00
156A: ED 18 1C
0028
END;
0029
IF GH$ADDR
156D: 7E 15 61
(1567: 7E 15 70)
<>
0 THEN DO;
1570: DE 67
1572: 26 03
1574: 7E 00 00
Figure A-4.
~ WEST
COAST COMPUTER FAIRE
Example Compiler Printout
487
BOX 1579, PALO ALTO CA 9430~
1577: ~ 7E
1579: 97 70
157B:
157D:
157F:
1580:
96 68
D6 67
17
97 71
1582: 96 68
1584: D6 67
1586: 97 72
1588: ED OC 43
158B: DE 65
158D: DF 69
158F: ED 1A BB
(1574: 7E 15 92)
( 155E : 7E 15 92)
1592: 7A 00 7A
1595: 96
1597: 5F
1598: 48
1599: 59
159A: BE
159C: c9
159E: BD
15A1: E6
15A3-:-A6
15A5: 97
15A7: D7
15A9:
15AB:
15AC:
15AD:
15AE:
1500:
15£2:
15£5:
15B7:
15B9:
15BB:
96
5F
48
59
8B
cg
ED
E6
A6
S7
D7
7A
00
04
FE 29
00
01
66
65
7A
40
04
FE 29
00
01
68
67
1500: ED 15 AD
1500: 39
0030
0031
0032
CA(1)
= HIGH(GH$ADDR);
0033
CA(2)
= LOW(GH$ADDR);
0034
CALL GEN3;
/* FIXUP JUMP TO END */
PAT$ADDR = GP$ADDR;
0035
0036
CAIL FIXUP;
0037
0038
0039
END;
0040
GPI
0041
GP$ADDR
= GP$STK(GPI);
0042
GH$ADDR
= GH$STK(GPI);
0043
CALL EXIT$BLK;
0044
END; /* GROUP */
Figure A-4 Continued.
WEST COAST COMPUTER FAIRE
/* GEN JUMP TO BEG OF DO * /
CA(O) = 7EH;
END;
= GPI
- 1;
Example Compiler Output
488
BOX 1579, PALO ALTO CA 94302
AN EXPERIMENTAL PASCAL-LIKE LANGUAGE FOR MICROPROCESSORS
H. Marc Lewis, Information Systems Manager
Regional Information Systems, Eugene, OR 97401
Introduction
ly plenty of languages and variants of languages now, so why another?
This paper describes an experimental PASCALWell, to start with, there currently does
like high level language oriented to microprocnot seem to be any suitable Systems Implemenessor implementation and use. The design critation Language (Illl abbreviate with SIL from
teria include modest memory requirements, se1fnow on) available for microprocessors. Sure I
compilation, simplicity, reasonable access to
know that there is at least one good PASCAL
hardware features, and ease of extensibility.
implementation available for the Z-80, and .~
Program structure, data declarations, and contthere are 8080 and 6800 versions also in the
rol structures are described and examples given. works or on the street. But PASCAL is not
Novel features of the language are discussed. An
really a candidate for a SIL, Dr. Wirth even
appendix gives a formal description of the lanadmits that the language wasnlt designed for
guage via syntax graphs.
that {however, his newest language, MODULA, is}
even though it contains an excellent assortBackground
ment of data and control structures which
allow straightforward and well-structured
As a computer scientist I have always been
program design. And I hope we all agree that
disappointed with the plethora of articles about BASIC, FORTRAN, PILOT, etc. are not even worth
the BASIC programming language which have appconsidering as SILls.
eared in the various computer hobbyist publiSo, where does that leave us? How about in
cations. That is not to say I donlt like BASIC
a place where some new language, incorporating
itself, in fact I think itls an excellent lansome of the better features of more general and
guage for introducing someone to the programmambitious high level languages, and which was
ing game. But it has its limitations, as do
very modest in its requirements for memory,
all languages, and is not well suited to the de- could fit? The language live designed, which
sign and implementation of systems software. I
incorporates features of PASCAL, MODULA, and C,
am not a hardware type, and I donlt particularly is just such a language. Incidently, I havenlt
yet named the language so please forgive the
get off on tracking down electronic problems
awkward references to simply liThe/This Lanwith my microcomputer. I am very interested
guage".
however in systems software design, i.e. device
drivers, operating systems, monitors, compilers,
Basic Design C~iteria
and even some end-user applications like realtime and process control stuff.
The following criteria were considered in
You may think I should be coding in Assemthe design of this SIL:
bler, but I disagree. The debate on the merits
1. Small memory requirements (less than 16K
and disadvantages of writing systems software
if poss i b1e) .
in Assembler versus some higher level language
has been going on for many many years among com- 2. Self-compiling: The language would first
be developed for one particular machine and
put~r scientists, and the scales, though still
not stabilized, have tipped towards high level
then the compiler would be written in its own
language. Thus by simply modifying the codelanguages. Burroughs Corp., always in the foregenerating portions of the compiler it could
front of computer architecture in my mind, has
built several machines designed to be programmed be adapted for any target machine.
3. Simplicity: The language, and its compiler
at the lowest level by a high level language.
implementation, should be as simple and straiAnd even companies producing more conventional
ghtforward as possible to allow novices in
hardware architectures are now specifying that
compiler construction to modify it to their
all systems software will be written in a high
level language. Texas Instruments, for example, particular requirements.
4. Versatility: The language should allow
has chosen PASCAL for all development on their
access to as much of the hardware as possible,
computers, from the micros to their super-comincluding the stack, I/O registers, the accumputer, the ASC.
But enough rhetoric, the purpose of this
ulator{s), etc.
5. Extensibility: This is an experimental
talk is to explain why I felt justified is delanguage, therefore it should be easy for somesigning yet another language, and in particular
why it looks the way it does. There are certain- one to experiment with it, for example includ~ WEST
COAST COMPUTER FAIRE
489
BOX 1579, PALO ALTO CA 9430~
structures. Statements are separated by semicolons as in PASCAL, rather than using semicolons to terminate all statements as in PL/M.
In this language assignment is denoted by
the familiar two-character symbol ":=" of
The Language Itself
PASCAL, C, and MODULA. This symbol (which I
read as "gets") has the advantage of having a
A program consists of zero or more data
single meaning, unlike the "=" operator of
definitions, followed by zero or more PROCEDURE
PL/M which indicates either assignment or a
definitions, followed by one or more executable
test for equality, depending upon the context.
statements, in the form of a BLOCK. The lanExamples of assignments are:
guage is "block-structured" in the manner of
ALGOL, PL/l, and PASCAL.
A:=B
A:=SIZE MOD 2
Data Declarations. The simple data types
CELL[I]:=SIZE*8
supported are INTEGERs, CHARs, and STRINGs. A
A
novel
feature of this language is that
DECIMAL type may be added later if it seems
expressions are restricted to the form of a
necessary. Constants of either type may be
single (possibly signed) constant or variable,
defined.
or a pair of constants and/or variables separSingly dimensioned arrays may be defined
ated by an operator. Operators are arithmetic
for INTEGERs and CHARs by appending the integer
(+,-,/,*,MOD), boolean (AND, OR, XOR), relaarray size enclosed in brackets to the definitional (>,<,>=. <», or shifting «<,»).
tion statement. An array of size "n" will have
An unary "address of" operator (the argyle)
"n+l" elements, the first element being the zeroth element, which in the case of character arrays and an increment/decrement operator (++,--)
are also provided. For example, A:=@B; puts
contains the current length of the string.
the address of variable "B" into variable A" ,
Arrays of strings are implemented as a vector
++A; increments variable "A" by one, and
of pointers to the individual character arrays.
A:=A«3; shifts variable "A" left 3 bits.
The maximum length of a character array is 255
The justification for limiting the comcharacters due to the 8-bit character size of
plexity of expressions comes, again, from the
most machines.
design goal of keeping the compiler small, and
Strings are actually pre-defined character
from the desire to see if such a restriction
arrays. The size of the strings for any given
places undue constraints on the programmer.
program is specified once, in the data declaraIn a study of a large number of student-written
tion section, by appending the integer string
FORTRAN programs by Knuth, it was found that 9
size (between 0 and 256) enclosed in brackets
out of 10 assignment statements had only one
to the STRING keyword. Examples of data decor two terms on the right of the equals sign.
larations:
The IF statement and the CASE statement
INTEGERA-,B-,-£;
comprise-lneseTifcli 0'; c-6htr6Istructure-s ~
CHAR LINE[80], NEXTCHAR, EOFBYTE;
The IF statement has the forms:
STRING[64] PAGE[32], HEADER;
IF condition THEN statements END
There is no static initialization of varIF condition THEN statements
iables as in PL/l. Initialization must be perELSE statements END
formed explicitly (and dynamically) via an
IF condition THEN statements
assignment statement a la PASCAL and MODULA.
ELSIF condition THEN ... END
This requirement arises out of the necessity
and
the
CASE
statement
has the form:
for recursion in PROCEDURE calls.
To simplify the compiling process CONSTants,
CASE expression OF
which may not be dimensioned, must be declared
caselabel: BEGIN statements END;
first, then any INTEGERs, CHARacters, or STRINGs.
The syntax charts in appendix A-l depict this
graphically.
caselabel: BEGIN statements END
Comments. Comments may appear anywhere in
END
a program and are enclosed by a familiar "slashstar" and "star-s 1ash" of PL/l and PL/M. PASCAL These are fairly common forms for these constructs and are borrowed directly from MODULA.
type comments, delimited by (* and *) are also
valid. Comments within comments are not recogRepetition is handled by the LOOP construct
nized.
of MODULA. This single type of statement is
Control Sturctures. For control structures, sufficient to express all repetitions. Thus,
in striving to keep the language and its comthe language contains the standard sequencing
piler small, no WHILE, REPEAT, FOR, or DO
structure of sequential execution of statements
statements are included.
unless modified by selection or repetition
ing some desirable feature or extending the
language to make it more suitable for a particular application.
II
WEST COAST COMPUTER FAIRE
490
BOX 1579. PALO ALTO CA 94302
The general form is:
LOOP statements
statements
statements
statements
ciated with it a data segment called an "activation record" which contains 1) the return
address of the caller, 2) a dynamic 1inkpointer to the activation record of the calling
PROCEDURE, and a static link pointer to the
activation record of the PROCEDURE in which
the called PROCEDURE is declared, and 4) the
storage for locally declared variables .
WHEN condition DO
EXIT
WHEN condition DO
EXIT
.
statements WHEN condition DO
statements EXIT
statements
Built-In Functions
END
However, more simple forms of the LOOP statement
are also valid:
Example of an infinite LOOP
LOOP GETCH{CELL[I]; ++1 END
Exa!!J?le of a 10-Iteration LOOP
1:=0; (* initialize loop counter *)
LOOP GETCH (A);
++1; CELL[I] :=A
WHEN 1=10 EXIT
END
Example of a "WHILE" LOOP
LOOP WHEN CH=I;I EXIT
GETCH(CH)
END
Example of a "REPEAT" LOOP
LOOP GETCH(CH)
WHEN CH=I;I EXIT
END
Notice that there is no LABEL definition
as in PASCAL. This is because there is currently no GOTO statement, thus labels (excluding
CASE labels, which are constants) are unnecessary. As with MODULA, the omission of the GOTO
statement is an experiment only, and if it fails
the GOTO (and labels) will be included in the
language.
Procedures
PROCEDURE calls are subroutine calls in the
PL/M sense. No function calls are defined (except predefined or external PROCEDURES 1ike
GETCH, ORO, etc.). All PROCEDURES are declared
immediately after the data declarations and before the first executable statement of the main
program. Parameters are passed by reference,
not by value. This allows parameters to be modified by the called PROCEDURE. Examples of
PROCEDURE calls are:
OOIT(A,B,l00*8)
SWITCH(CELL[I],CELL[J])
READLN
PROCEDUREs may be called recursively, therefore the allocation of storage for local variables must take place at execution time rather
than at compile time. Each PROCEDURE has asso~ WEST
COAST COMPUTER FAIRE
491
Built-in functions include:
CHR(n) -returns a character whose
numerical value in the
collating sequence is given
by Un".
ORD(lal) - returns the integer value
of the ASCII character la l •
GETCH{A) -gets the next character
from the input stream (probably the terminal) and places
it in character variable "A".
PUTCH(A) -prints or displays upon the
standard output device the
character contained in vari- able "A".
READ(A,B, ... ) -performs formatted
input. Character variables
are filled to their current
length with the next Inl
characters from the input
stream, and integers are conver.ted from ASCII to binary
and placed into their corresponding INTEGER variables. .
WRITE(a,b, ..• ) -performs formatted
output. The ~'verse of READ.
READLN( ... ) -like READ but will
position the input stream to
the first character of the
next line before returning.
WRITELN( ••. ) -like WRITE but terminates the current line with
appropriate new line characteres).
PUSH(A) -pushes variable "A" onto the
stack
POP (A) -removes the top element of the
stack and places it into "A".
If no variable is specified it
simply decrements the stack
pointer by one.
STACK(n) -places the value Inl in the
stack pointer register.
Formal Language Definition
I have chosen to describe the language via
syntax graphs, rather than the more common BNF
form. I did this for two reasons, first because syntax graphs are easier for humans to
read and understand, and second because the
compiler will be written with a technique
called recursive descent (a top-down or goa1BOX 1579, PALO ALTO CA 94302~
directed approach) which can be directly derived
from the syntax graphs. Most PASCAL compilers
use this technique. There are superior compiler
construction schemes, my own favorite is called
SLR(k), a table driven technique, but given the
design criteria the recursive descent method
was the best choice.
The graphs are read from left to right, and
generally, from top to bottom. The arrows show
the flow of the parser. Symbols enclosed in
circles or oblongs correspond to terminal symbols, i.e. variables, reserved words, operators,
constants. Symbols enclosed in boxes or rectangles correspond to a recognizer for that particular non-terminal, i.e. a CASE statement in
its entirety, a BLOCK, etc. Such recognizers
are implemented as PROCEDUREs to recognize the
desired construct. Where the arrows branch
either path may be taken, thus in the example
which follows, an "Integer Dec1aration" consists
of the reserved word INTEGER foll owed by an
identifier name, optionally followed by a left
bracket, optionai1y followed by a comma, another
identifier name, etc.
~
~
. ,
~~
II
II
Integer Declaration
Example Program
& largest number in
a given list */
CONST N=10;
INTEGER I,X,Z,MIN,MAX,A[10];
/* assume that array A has been
initialized with the values
/* find the smallest
12, -6, 98, 7, 47, -1, -50,
0, -72, 33
*/
BEGIN
MIN:=A[l]; MAX:=MIN; 1:=2;
LOOP
X:=A[I]; Z:=A[++I];
IF X>Z THEN IF X>MAX THEN MAX:=X END;
IF ZMAX THEN MAX:=Z END;
IF XN EXIT
END
WRITELN(' Max. value is ',~~X);
WRITELN(' Min. value is ',MIN)
END.
WEST COAST COMPUTER FAIRE
492
BOX 1579, PALO ALTO CA 94302
f0~l"~I
lL___-W
---I~p--~----..30..l~;).
r-l
"
CONSTA..~T
characters
HEX CONSTANT
STATEMENTS
)
ARGLIST
PARMLIST
WEST COAST COMPUTER FAIRE
493
BOX 1579, PALO ALTO CA 94302
AN INTRODUCTION TO PROGRAMMING IN PASCAL
Chip Weems
Graduate Teaching Assistant
Department of Computer Science
Oregon State University
Corvallis, Oregon 97331
Abstract:
most compilers are not introduced
until three to five years after their
initial specification.
(for example,
APL was initially spacified in 1962.)
This paper will concentrate heavily
on the use of the Pascal language at
the beginner's level. A minimal knowledge of some other programming language such as fORTRAN, BASIC or ALGOL
is assumed.
The areas which will be covered are
simple and structured statements in
Pascal, simple and structured data
types, plus procedures and functions.
Emphasis will be placed on using Pascal
statements, although some discussinn of
the power of user defined data types
will also be included.
A list of machine models for which
implementations of Pascal are known to
exist, is provided as an appendix.
Part One:
Language
fORTRAN
COBOL
ALGOL
LISP
SNOBOL
BASIC
PL/1
APL
Pascal
After two years of experience, the
language was revised and re-released
in 1973. This version of the language
is now generally referred to as standar-dPascal. The important thing to
note here is that Pascal was the first
major new language to be developed
after the concept of structured programming was introduced.
What is Pascal?
Historical Introduction:
Pascal is not an acror,ym, unlike
many languages the letters which make
up its name do not stand for anything.
This is perhaps a first indication that
Pascal is something different and a
little special.
Pascal was named after the famous
mathematician Blaise Pascal (1623 1662) who, among other things, invented
an eight digit calculating machine
which could perform addition and subtraction. Multiplication and division
were performed by repeated addition or
subtraction, respectively. He completed the first operating model at the
age of 19, and built 50 more during the
next 10 years.
The Pascal language was originally
specified in 1968 by Niklaus Wirth at
the Institut fur Informatik, Zurich.
This makes it a relative newcomer to
world of programming languages. The
first Pascal compiler became operational in 1970 and was published in 1971.
The following table shows just how
new Pascal really is. Remember that
WEST COAST COMPUTER FAIRE
Introduction Date
1957
1960
1960
1961
1962
1965
1965
1967
1971
Structured Programming and Pascal:
There exists no exact definition
of structured programming, although it
has been termed "A collection of all
good and wonderful programming practices." One fact becomes obvious in
discussing it with groups of programmers: Some people love it, and some
people hate it. However, those who
hate structured programming are now
finding themselves more often in the
minority.
Some features to be found in a
structured program are that it is generally more readable and more easily
shown to be correct. The design of a
structured program usually involves
stepwise refinement, or top-down programming. Languages designed with
494
BOX 1579, PALO ALTO CA 94302
structured programming in mind will
usually include a large group of program-flow control structures, which are
entered at only one point and from
which there is only one exit. Another
notable point about such languages is
that they often require explicit defi'nition of all variables and data structures in the code. What does all of
this mean? How does it relate to
Pascal?
Readability:
One of the outstanding features of
Pascal is that well written Pascal code
is very readable; more so than most
other programming languages. Probaply
the greatest single factor which makes
this language so easy to follow, is the
construction of data names. In Pascal
there is no limit to the acceptable
length of names. Generally, the compiler only uses the first eight characters of a name to distinguish it from
all others, with the remainder of the
name simply being ignored.
This lack
of constraints usually leads to very
meaningful names in Pascal. Note that
1 have specifically avoided writing
'variable names'. Pascal permits not
only variables to be named, but also
constants, files, records, complex data
structures, procedures and functions;
all with the same naming conventions in
effect. Compare this to ather languages such as BASIC or FORTRAN!
Pascal's readability is also en.hanced by the wording of its statements. When meaningful names are used,
al~ost always the coded statements will
make sense as english phrases. This
would almost seem to take the place of
program comments, but even so, Pascal
provides one of the most flexible commenting schemes possible. Comments may
appear anywhere in a Pascal program
except in the middle of words!
Stepwise
Refineme~t:
In writing a Pascal program it becomes very easy to use top-down programming style. This is mainly due to
the flexibility and ease of writing
procedures and functions •. It is not
unusual to see incredibly complex
Pascal programs, several hundred lines
long, in which the main program accounts for less than one hundred lines.
Such a main program will usually consist of the overall program flow-logic
with dozens of calls to well-named procedures and functions.
WEST COAST COMPUTER FAIRE
495
Procedures and functions correspond
roughly to subroutines and functions
in FORTRAN, but are actually part of
the' Pascal program. This means that
procedures and functions inherit all
variables defined in the main program,
similar to subroutines in BASIC, but
they can also include declarations of
variables and constants which are only
valid within themselves.
It should also be noted that procedures and functions are fully recursive in Pascal, that is they may in
turn call themselves.
Simply using the name of a procedure or function will invoke it;
thus it becomes very easy to write
code with procedure names and worry
about all of the messy details at a
later date. This is, of course, the
basis of top-down programming.
Explicit Definitions:
Another level of stepwise refinement is careful pre-planning of a program~
Usually, Pascal programs are
most easily planned-out by using a
form of loose, english-like pidgin
ALGOL.
One thing should be noted here:
Pascal is probably best classified as
a descendant of ALGOL. People who
know ALGOL seldom have any difficulty
in learning Pascal. In fact, ALGOL-60
is generally considered to be a subset
of Pascal.
Careful pre-planning is encouraged
by the fact that Pascal has very rigid
rules requiring virtually all data
structures to be defined at the start
of a program. Unlike many languages,
you can't just throw in an extra ~ar
iable, in the code, when you discover
that you need it. Because Pascal also
requires such things to be defined,
careless pre-planning often becomes
quite self-evident just by looking at
the declarations. This feature is
something which BASIC programmers typically have a hard time getting used
to, but it often makes Assembly Language hackers feel right at home.
Probably the greatest single new
idea to come out of Pascal is the user
defineable data type. This construct,
which appears in the declarations, permits the programmer to specify new
types of data beyond the standard Real,
Integer, Character and Boolean types.
Data types of arbitrary complexity may
be constructed; in fact adding complex
numbers to a Pascal program is generally considered to be a trivial case!
BOX 1579, PALO ALTO CA 94302
Not only is such convoluted logic
difficult to follow and understand,
but it is also a major chore to get
all of the bugs out of it; and you can
never be sure that all of them ARE out.
As if that isn't enough, just try to
make a major change to such a piece of
code -- it would probably be easier to
discard the whole thing, rather than
try to patch it.
Now that we've raked the GO TO
statement over the coals, what is there
which will take its place? The answer
is: single-entry / single-exit control
structures. Flow of control, in a program, always enters the top of such a
structure, and will only exit out
through the bottom.
This means that,
i f the program unit inside of the
structure is correct, we can trace an
effective straight line through the
whole thing.
A familiar example of
a single-entry / single-exit structure
is the FOR-NEXT loop in BASIC, but
without any GOTO's which enter or
or leave the middle: Flow will enter
at the top, looping will occur, but
eventually flow will continue through
the bottom of the FOR-NEXT.
As it turns out, there are only
three structures required to replace
the GOTO statement. They are: The
WHILE statement, the IF-THEN statement,
and Compound statements.
In Pascal,
anyplace a statement can go, may be
placed a Compound statement. Compound
statements consist of the word BEGIN,
followed by any group of statements
{Whic-h may inc-l-ude more Compound- statements.), followed by the word END.
Pascal also includes WHILE and IF-THEN
statements, plus several other singleentry / single-exit structures which
add to the convenience of GOTO-less
programming.
The following is a list of all of
the structured statements in Pascal
along with flowchart segments to indicate how they function:
Users may define data types as outrageously complex as say, a five dimensional array of records of arrays, scalars, records with variant parts,
pointers and complex numbers. The
programming power added by this concept
is almost difficult to imagin~; it
provides us with the ability to create
structured data as well as structured
processes.
Single-Entry / Single-Exit Control
Structures:
One of the requisites for being
able to show that a program will work
correctly is that it must be possible
to trace out all of the possible execution paths, through the program, for
given sets of inputs.
Usually, this
is done by first breaking the program
down into small units, showing that
each unit works correctly, and then
showing that combinations of units
work correctly and so on.
This all sounds very simple,
except for one item -- the GOTO statement throws a monkey wrench into the
whole thing.
The problem is that it
doesn't take too many GOTO's combined
with conditional branches, before an
almost infinite number of possible
execution paths appear in a program.
How can you prove that a block of code
will perform correctly, when you can't
even be sure where it will be entered
from, or where control will exit to,
-one-e---lt -tras --c-omp-teted-?------As an example, consider a section
of a BASIC program, possibly a scoring
routine for a game, which is invoked
by GOTO's from 20 different locations.
In addition, these GOTO statements
jump into the scoring routine code at
six different points, depending on
flags set by previous passes through
the routine, and upon other outside
event$. Depending on the data present
and the entry point, the routine may
branch to several places in itself,
loop in two places, or fall straight
through. Also, when it completes,
depending on outside conditions and
also upon previous passes through it,
the routine may branch to anyone of
eight other program sections. stop
and think about how much effort it
would take to trace all possible paths
through such a mess! This code might
be clever and efficient, but is it
worth all of the headaches which it
will cause in the long run?
~ WEST COAST COMPUTER FAIRE
This is, of course, the well known
IF-THEN statement:
IF
CONDITJON
THEN
FALSE
TRUE"
r
ANY
STATEMENT
I
,~
496
BOX 1579, PALO ALTO CA 9430~
since most digital computers can not
exactly represent fractional numbers.
If other increments were permitted, it
might be possible for the increment to
not exactly match the terminator when
it reached the desired value, and so
perhaps the loop would continue for an
extra pass.
This is a ,very frustrating
problem, because it is usually highly
machine dependent, and will typically
only show up in a very few specific
instances. All of this is eliminated
by Pascal's restriction of the increment value to 1. One positive side
effect which results from this is that
the speed of the statement is often
greatly increased, since many machines
have single instructions for incrementing and testing memory locations,
or registers.
The FOR-DOWN TO statement is identical to this, except that the index
is decremented by one, each time
through the loop:
A convenient form of the IF-THEN
statement is the IF-THEN-ELSE:
The WHILE statement has the form:
This next one is the REPEAT-UNTIL
statement. There is an important
difference between this and the WHILE
statement which should be noted:
If
the condition is false, when a WHILE
statement is entered, no action takes
place -- control skips around the ANY
StATEMENT part. In a REPEAT-UNTIL
however, the ANY STATEMENT part always
gets executed at least once, regardless
of the conditional part.
ANY
STATEMENT
INDEX:=INDEX+1
This last one is the CASE statement, which is somewhat like the ONGOTO statement in BASIC:
REPEAT ANY
STATEMENTS
LABEL LIST 1
FALSE
LABEL LIST 2
The FOR-UPTO statement is very
similar to the FOR-NEXT statement in
BASIC,"except that it is restricted to
an increment of 1. This is intended to
add to the reliability of the construct,
WEST COAST COMPUTER FAIRE
LABEL LIST n
497
BOX 1579, PALO ALTO CA 94302
have them, curly brackets{ } are used
instead.
All of this should not be taken to
imply that Pascal is a GO TO-less language; it does have labels and GOTO's.
The important point is that the experienced Pascal programmer will almost
never use them, since they are never
needed and only rarely of any value.
Part Two:
Operations:
Integer operations
Multiplication
Division (Integer part only,
remainder discarded.)
Addition
+
Subtraction
MOD
Modulo (A MOD B =
A-((A DIV B)*B))
Real operations
*
DIV
A summary of Pascal statements, with examples.
Character Set:
The standard Pascal character set
includes: Letters A - Z (and depending
on the implementation, a - z), numbers
o - 9, special characters + - * / = <
> ( ) [ ] • , ; : ' f (and the space or
blank character).
*
/
+
Multiplication
Division
Addition
Subtraction
Boolean operations
Names:
~ames in Pascal consist of letters
AND
OR
NOT
and/or digits, and may be any number of
characters in length.
The first character must be a letter, and the first 8
characters must be different than the
first 8 characters of any other name.
Logical AND
Logical OR
Logical NOT
Relational Operations (give boolean
results)
Examples:
<
>
ENDOFDATA TYPES AVERAGE SN7473A
TOTAL SCORtS PAYRATE CARDCOUNT
=
<
=
)=
<)
Numbers:
Numbers in Pascal are either real
They may be signed or
or integer.
unsigned.
Integers are a string of digits.
IN
Less than
Greater than
Equal to
Less than or equal to
Greater than or equal to
Not equal to
Used with data type SET, to
determine membership of an
element
t- -
----Txam j:fl e s:
+7
43
365
-18
8388607
4092
o
A * B
X DIV Y
TOP (= BOTTOM
ABOVE AND BEYOND
Reals have three forms:
digits.digits
digits.digitsEscale factor
digitsEscale factor
A times B
X divided by Y
Numerical comparison
True i f both (ABOVE
and BEYOND) are true
boolean variables.
Functions:
The E notation indicates multiplication by 10 raised to the scale factor
power.
Examples:
3.1415
6.02E23
9.11E-31
-1E9
Note that the scale factor is always
an integer.
Comments:
Anything typed between the symbols
(* and *) will be ignored by the compiler as comments. On systems which
~ WEST COAST COMPUTER FAIRE
498
Name
Action
ABS
Absolute value
SQR
Square
TRUNC
Truncate to integer part
ROUND
Rounded-up integer form
Next highest (Integer or Char)
SUCC
Next lowest (Integer or Char)
PRED
SIN
Trigonom~tric sine
COS
Trigonometric cosine
ARCTAN Trigonometric arctangent
LN
Natural (Base e) logarithm
EXP
e raised to the power
SQRT
Square root
ORD
Numeric value associated with
the character
BOX 1579. PALO ALTO CA 94302~
Name
5iR
ODD
EOLN
EOF
Action
Character associated with the
numeric value
True if the integer argument
is odd
True when end-of-line is reached
True when end-of-file is reached
Name
ABS
SQR
TRUNC
ROUND
SUCC
PRED
SIN
COS
ARCTAN
IN
EXP
SQRT
ORD
CHR
ODD
EOlN
EOF
Result type for argument of type
Integer
Real
Character
Integer
Real
Integer
Real
Integer
Integer
Character
Integer
Character
Integer
Real
Real
Real
Real
Real
Real
Real
Real
Real
Real
Real
Real
Integer
Character
Boolean
Argument is always a file name,
result is always boolean.
Argument is always a file name,
result is always boolean.
Statements:
Variable Definition:
VAR varname, varname, ••• :type;
varname, varname, ••• :type; •••
Example:
VAR SCORE,MAX,MIN,TOTAl: INTEGER;
RADIUS,DIAMETER,CIRCUMFERENCE:
REAL;
FOUND,DONE,FLAG,OK:BOOLEAN;
Note that the declarations may
continue on several lines, but only
one VAR is required.
Procedure Definition:
PROCEDURE procname (value
parameters; VAR variable
parameters);
body of procedure
Example:
PROCEDURE INCREMENTBY (INCREMENT:REAl;
VAR VARIABLETOBEINCREMENTED:REAl);
BEGIN
VARIABlETOBEINCREMENTED :=
VARIABLETOBEINCREMENTED +
INCREMENT
END;
Program Heading:
PROGRAM programname (filename,
filename, ••• );
Function Definition~
FUN CTION fun c t n a iiI ( val u e
parameters): result-type;
body of function
Exmaple:
Example:
PROGRAM TESTSCORES (INPUT,OUTPUT);
FUNCTION RADIUS (CIRCUMFERENCE:REAl):
REAL;
CONST TWOPI = 6.2831;
BEGIN
RADIUS:=CIRCUMFERENCE/TWOPI
END;
Constant Definition:
CONST constname = value; constname
= value; •••
Example:
Assignment Statements:
varname := expression
CONST ENDOFDATA = -1.0; PI=3.141592;
MAXSCORE = 100; MINSCORE = 0;
Examples:
Note that the constant definitions
can continue onto more than one card,
but the CONST is only typed once.
There are some predefined values
which do not need to be declared as
constants in Pascal programs. These
are:
TRUE
FALSE
MAXINT
NIL
WEEKSPAY := PAYRATE * HOURSWORKED;
VOLTS:=AMPS*OHMS;
CONEVOlUME:= (PI*SQR(RADIUS)*HEIGHT)
/3.0;
ARRAYLOCATION :=ARRAYLOCATION + 1;
Boolean true value
Boolean false value
largest integer the computer
can work with
Null pointer
..... WEST COAST COMPUTER FAIRE
499
Note that the assignment statement
is very free-form: Spaces may be
inserted as needed, the assignment may
continue onto more than one line, etc.
The only restriction is that words
can not be broken in the middle.
B~X 1579. PALO ALTO CA 94302~
The Compound statement:
In Pascal, any place where a statement can be used, a compound statement
may also be used. A compound statement
is formed by the word BEGIN, a group of
any statements, followed by the word
END.
Example: (* Determine command grour
from a command number *)
CASE COMMANDNUMBER OF
0,1,3
GROUP:=1;
2,4
GROUP:=2;
5,9,11
GROUP:=3;
6,7,8
GROUP:=4;
10
GROUP:=5
END
Examples:
BEGIN
SCORESUM:=SCORESUM+SCORE;
SCORECOUNT:=SCORECOUNT+1
Repetitive Statements:
END
The WHILE-DO Statement:
WHILE expression DO statement
BEGIN
X:=(Y+Z)/100;
BEGIN
T:=(Q/75)+15;
F:=N-18
END
Example:
WHILE NOT EOF(INPUT) DO
BEGIN
READ(SCORE);
SCORESUM:=SCORESUM+SCORE;
SCORECOUNT:=SCORECOUNT+1
END
END
Placement of Semicolons:
The simplest rule for the placement of semicolons, in a Pascal program, is: Place·oa semicolon between
any two Pascal statements.
Note: BEGIN a~d END are not Pascal
statements, they are simply delimiters.
A compound statement is a statement, and
must be separated from other statements.
Also note one exception in the rule -, The ELSE in the IF-THEN-ELSE takes the
place of a semicolon in separating the
two statements.
The REPEAT-UNTIL Statement:
REPEAT group-of-statements UNTIL
expression
Example:
REPEAT
X:=X-1;
Y:=Y+1
UNTIL (X
0) OR (Y
<
> 0)
The IF-THEN Statement:
IF expression THEN statement
The FOR statement:
(Two forms.)
FOR can t r a 1 - v ar i at) i e-: -=- i nit i a 1 value TO final-value DO statement
FOR control-variable ._ initialvalue DOWNTO final-value DO statement
Example:
Examples:
Criridilional Statements:
IF MAXSCORE
SCORE
< SCORE
THEN MAXSCORE:=
FOR INDEX := 1 TO ARRAyrOp DO
ARRAY[INDEX] := 0
FOR INDEX := 100 DOWNTO ARRAYBOTTOM
DO IF ARRAY[INDEX]
0 THEN
ARRAY[INDEX]:= 0
<
The IF-THEN-ELSE Statement:
IF expression THEN statement ELSE
statement
Transfer of Control Statements:
Example:
IF TIME ( 0 THEN TIME:=O ELSE TIME:=1
The CASE statement:
CASE expression OF
case-label-list:statement;
case-label-Iist:statement;
case-label-Iist:statement
END
'-.....WEST COAST COMPUTER FAIRE
The conditional and repetitive
statements previously described are
sufficient control structures to
perform any required computation.
Remember that although labels and
GOTO's are provided in Pascal, they
are unnecessary and will often only
create confusion in program logic.
Therefore it is recommended that the\
be avoided except in t~iose rare ex·
treme cases where they actually have
some value.
500
BOX 1579, PALO ALTO CA 9430~
Label Definition:
The label definition is placed
after the CONST declarations in the
program.
LABEL integer, integer, •.• ;
The result of this ~ould be A=O.O,
B=1.0, C=2.0, D=3.0.
Example:
Would result in A=O.O, B=1.0, C=3.0,
D=4.0.
READLN(A.B):
READLN(C~D) .
LABEL 10, 20, 25, 100, 9999;
Example:
Output Procedures:
WRITE(expression-list)
WRITELN(expression-list)
WRITE(filename, expression-list)
. WRITELN(filename, expression-list)
GOTO 9999
Examples:
Input and Output in Pascal:
WRITE(A,B,C)
WRITELN(X*Y/Z,MAX,SQRT(Q),'*****')
WRITE(NEWFILE,NAME,ADDRESS,PHONE,
AMT+1.0)
WRITELN(PLOTFILE,XCOORD,YCOORD,PENPOS,
MARK)
GOTO Statement:
GOTO label
Pascal I/O statements are not
really statements, but are actually
calls to predefined procedures. None
the less, they are often referred to as
statements.
Successive WRITE statements cause
the values to be written~ all as one
record. Each time a WRITELN is executed, however, a new record is output.
Input Procedures:
READ(variable-list)
READLN(variable-list)
READ(filename, variable-list)
READLN(filename, variable-list)
Examples:
Examples:
WRITE('A','B');
WRITE( 'c I, 'D')
READ(X,Y,Z,MAXVAL)
READLN(HIGHSCORE,LOWSCORE,AYGSCORE)
READ(WEATHERFILE,TEMP,HUMIDITY,PRESSURE)
READLN(CUSTOMERFILE,NAME,NUMBER,BALANCE)
Would output ABCD.
WRITELN( 'A', 'B');
WRITELN( 'C', 'D')
Would output AB
CD.
The filename must have been declared in the program heading.
The differ~nce between READ and
READLN is that successive READ statements will continue to input successive
values from the same record, only
going to a new record when all values
~n the current one have been exhausted.
A READLN, on the other hand, will skip
any additional values on the current
record, and go to the next record to
begin reading values.
Example:
Two records:
0.01.02.01
3.0 4.0 5.0
I
READ(A,B);
READ(C,D)
-...WEST COAST COMPUTER FAIRE
501
Formatting numeric output is very
easy in Pascal. Each expression in a
WRITE or WRITELN can actually have one
of the following three forms:
expression
expression:width-expression
expression:width-expression:fractionwidth-expression
The expression gives the value
which is to be output. The widthexpression gives the minimum number of
rharacter positions to be included in
'e output. If the expression value
~sn't require all of the positions,
extras will be filled with blanks.
1, the number is too big to fit in the
area, the area size is expanded to
accommodate the number.
The fraction-width-expression specifies how many digits will be printed
to the right of the decimal point for
a real number.
~x
1579. PALO ALTO CA 94302~
Examples:
Examples:
A=100, B=1.5,
0=128.34152
C=137875~3217,
WRITE(A:5,B:5,C:5,D:9:3)
100
1.5137875.3217
WRITE(A:3,B:5:2,C:9:1)
would output
128.341
would output
100 1.50 137875.3
Carriage Control:
Although this is machine and implementation dependent, most Pascal
systems will destroy the first character of each record output to a
printing device. Thus, an extra character must be provided at the start of
each output line, usually a space.
In reality, this character acts as
a carriage control command, which is
either directly implemented in the
hardware of the printer, or which is
simulated by the monitor or operating
system, in software.
The following are the standard
carriage control command characters
used in Pascal:
Character
Space
o (Zero)
1
Action
Normal, single spacing
Double space, skip 1 line
Page eject
Depending upon how the carriage
control is implemented, using other
characters may have different effects,
which may, or may not be desireable.
Data Types:
All data type definitions are
placed between the CONST and VAR
. declarations at the start of the
program.
Scalar Types:
TYPE typename = (identifier,
identifier, ••• ) ;
Example:
TYPE MONTH = (JAN,FEB,MAR,APR,MAY,JUN,
JUL,AUG,SEP,OCT,NOV,DEC);
Sub range Types:
TYPE typename = constant •. constant;
VAR varname-list : constant •• constant;
TYPE LETTER = A•• Z;
TYPE WINTERTERM = JAN •• MAR;
VAR SCORE:0 •• 100;
Array Types:
TYPE typename = ARRAY[index-type]
OF element-type;
VAR varname-list : ARRAY[indextype] OF element-type;
Examples:
TYPE COEFFICIENTS = ARRAY[0 •• 4] Of REAL
VAR SAMPLELIST = ARRAY[0 •• 100] OF REAL;
Note: INTEGER and REAL are not
permitted as index types.
Multidimensional arrays are defined
by specifying multiple index-types.
TYPE typename = ARRAY[index-type,
index-type, ••• ] OF element-type;
VAR varname-list : ARRAY[indextype,index-type, ••• ] Of element-type;
Examples:
TYPE SIMLINEQS = ARRAY[0 •• 5,0 •• 6] Of
REAL;
VAR FOURSPACE : ARRAY[0 •• 10,0 •• 10,
O•• 10,0 •• 10] OF INTEGER;
VAR NAMELIST
ARRAV[1 •• 100,1 •• 30] Of
CHAR;
Pfici
Source Exif Data:
File Type : PDF
File Type Extension : pdf
MIME Type : application/pdf
PDF Version : 1.6
Linearized : No
Create Date : 2004:04:15 20:47:01-07:00
Modify Date : 2013:10:26 20:20:38-07:00
XMP Toolkit : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37
Metadata Date : 2013:10:26 20:20:38-07:00
Producer : Adobe Acrobat 9.55 Paper Capture Plug-in
Format : application/pdf
Document ID : uuid:5db302da-f009-ab49-b62d-812b8055c416
Instance ID : uuid:f2fbbf76-b709-6342-92ca-9167ce8181d9
Page Layout : SinglePage
Page Mode : UseOutlines
Page Count : 516
EXIF Metadata provided by EXIF.tools