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

Full text of "Byte Magazine Volume 06 Number 08 - Smalltalk"

AUGUST 198 ! Vol. 6, No. 
$2.50 in USA/$2.95 in Canada 

A McGraw-Hill Publication 




Circle 357 on inquiry card. 







SOUTHWEST TECHNICAL PRODUCTS CORPORATION 

219 W. RHAPSODY 

SAN ANTONIO, TEXAS 78216 (512) 344-0241 






CROMIX FILE SYSTEM 

/(root ill ioc I my) 





CROMIX* — Cromemco's outstanding 
UNIX ' — like operating system 



cromix is just the kind of major 
development you've come to expect 
from Cromemco. After all, we're 
already well-known for the most 
respected software in the microcom- 
puter field. 

And now we've come up with the in- 
dustry's first UNix-lookalike for 
microcomputers. It's a tried and proven 
operating system. It's available on both 
5" and 8" diskettes for Cromemco 
systems with 128K or more of memory. 

Here are just some of the features you 
get in this powerful Cromemco system: 

• Multi-user and multi-tasking 
capability 

• Hierarchical directories 

• Completely compatible file, 
device, and interprocess I/O 

• Extensive subsystem support 

FILE SYSTEM 

One of the important features of our 
cromix is its file system comprised of 
hierarchical directories. It's a tree struc- 
ture of three types of files: data files, 

•CROMIX is a trademark of Cromemco, Inc. 
tUNIX is a trademark of Bell Telephone Laboratories 



directories, and device files. File, 
device, and interprocess I/O are com- 
patible among these file types (input and 
output may be redirected inter- 
changeably from and to any source or 
destination). 

The tree structure allows different 
directories to be maintained for different 
users or functions with no chance of 
conflict. 

PROTECTED FILES 

Because of the hierarchical structure 
of the file system, cromix maintains 
separate ownership of every file and 
directory. All files can thus be protected 
from access by other users of the 
system. In fact, each file is protected by 
four separate access privileges in each 
of the three user categories. 

TREMENDOUS ADDRESS SPACE, 

FAST ACCESS 

The flexible file system and general- 
ized disk structure of cromix give a disk 
address space in excess of one gigabyte 
per volume — file size is limited only by 
available disk capacity. 



Speed of access to disk files has also 
been optimized. Average access speeds 
far surpass any yet implemented on 
microcomputers. 

'C COMPILER AVAILABLE, TOO 

Cromemco offers a wide range of 
languages that operate under cromix. 
These include a high-level command 
process language and extensive sub- 
system support such as cobol, Fortran 

IV, RATFOR, LISP, and 32K and 16K BASICS. 

There is even our highly-acclaimed 
'C compiler which allows a program- 
mer fingertip access to cromix system 
calls. 

THE STANDARD OS 
FOR THE FUTURE 

The power and breadth of its features 
make cromix the standard for the next 
generation of microcomputer operating 
systems. 

And yet it is available for a surprisingly 
low $595. 

The thing to do is to get all this 
capability working for you now. Get in 
touch with your Cromemco rep today. 



a 



Circle 96 on Inquiry card. 



Cromemco ™ 

incorporated 

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

Tomorrow's computers today 




CROMEMCO process control 


■I 

1 

1 , 








1 






u» 


■■■ 


valve » 






♦ , . • 




*i.«l 



Management Information Display 



Ultrasonic heart sector scan 



Process Control 



Get the professional color 

display that has 
BASIC/FORTRAN simplicity 






LOW-PRICED, TOO 

Here's a color display that has 
everything: professional-level resolution, 
enormous color range, easy software, 
NTSC conformance, and low price. 

Basically, this new Cromemco Model 
SDI* is a two-board interface that plugs 
into any Cromemco computer. 

The SDI then maps computer display 
memory content onto a convenient color 
monitor to give high-quality, high- 
resolution displays (756 H x 482 V pixels). 

When we say the SDI results in a high- 
quality professional display, we mean you 
can't get higher resolution than this 
system offers in an NTSC-conforming 
display. 

The resolution surpasses that of a color 
TV picture. 

BASIC/FORTRAN programming 

Besides its high resolution and low 
price, the new SDI lets you control with 
optional Cromemco software packages 
that use simple BASIC- and FORTRAN- 
like commands. 

Pick any of 16 colors (from a 
4096-color palette) with instructions like 
DEFCLR (c, R, G, B). Or obtain a circle of 
specified size, location, and color with 
XCIRC (x, y, r, c). 



•U.S. Pat. No. 4121283 




Model SDI High-Resolution Color 
Graphics Interface 



HIGH RESOLUTION 

The SDI's high resolution gives a 
professional-quality display that strictly 
meets NTSC requirements. You get 756 
pixels on every visible line of the NTSC 
standard display of 482 image lines. Ver- 
tical line spacing is 1 pixel. 

To achieve the high-quality display, a 
separate output signal is produced for 
each of the three component colors (red, 
green, blue). This yields a sharper image 
than is possible using an NTSC-composite 
video signal and color TV set. Full image 
quality is readily realized with our high- 
quality RGB Monitor or any conventional 
red/green/blue monitor common in TV 
work. 




Model SDI plugs into Z-2H 11 -mega byte 

hard disk computer or any Cromemco 

computer 

DISPLAY MEMORY 

Along with the SDI we also offer an 
optional fast and novel two-port memory 
that gives independent high-speed access 
to the computer memory. The two-port 
memory stores one full display, permit- 
ting fast computer operation even during 
display. 

CONTACT YOUR REP NOW 

The Model SDI has been used in scien- 
tific work, engineering, business, TV, 
color graphics, and other areas. It's a 
good example of how Cromemco keeps 
computers in the field up to date, since it 
turns any Cromemco computer into an 
up-to-date color display computer. 

The SDI has still more features that 
you should be informed about. So contact 
your Cromemco representative now and 
see all that the SDI will do for you. 



Q 



Cromemco 

Incorporated 
280 BERNARDO AVE., MOUNTAIN VIEW, CA 94040 

Tomorrow's computers today 



(415)964-7400 



Circle 96 on inquiry card. 



H 



■I 



In The Queue 



Volume 6, Number 8 



August 1981 



Features 

1 *T Introducing the Smalltalk-80 System by 

Adele Goldberg / A readers' guide to the Smalltalk articles in 
this issue. 

3 O The Smalltalk-80 System by the Xerox Learning 
Research Group / How message-sending objects are used in the 
Smalltalk-80 system. 

50 Build a Z8-Based Control Computer with 
BASIC, Part 2 by Steve Ciarcia / Steve continues his 
description of the Z8-BASIC Microcomputer and suggests two ap- 
plications. 

# *W Object-Oriented Software Systems by 

David Robson / Object-oriented software systems provide the 
underlying design of Smalltalk. 

"U The Smalltalk Environment by Larry 

Tesler / Programming and debugging in Smalltalk are always in- 
teractive activities. 

%*TM User-Oriented Descriptions of Smalltalk 

Systems by Trygve M H Reenskaug / A Smalltalk applica- 
tion program will limit the user's access to the language. 

1 68 The Smalltalk Graphics Kernel by Daniel H 
H Ingalls / The Graphics Kernel provides the interface through 
which all text and graphics are displayed. 

&UO The Japanese Computer Invasion by Stan 

Miastkowski / Like it or not, the Japanese small computers are 
on their way. 



230 



Building Data Structures In the 
Smalltalk-80 System by James C Althoff Jr / 

Many kinds of data structures can be added easily to the 
Smalltalk-80 system. 



286 



Design Principles Behind Smalltalk by 

Daniel H H Ingalls / The design principles of a language 
strongly affect its power and usability. 



300 



The Smalltalk-80 Virtual Machine by Glenn 

Krasner / The use of a Smalltalk-80 Virtual Machine allows the 
system to be transported easily among different 1 6-bit 
microprocessors. 



Building Control Structures In the 
Smalltalk-80 System by L Peter Deutsch / 

Design of complicated control structures is easy in the 
Smalltalk-80 language. 



348 



Is the Smalltalk-80 System for Children? by 

Adele Goldberg and Joan Ross / Although Smalltalk-80 is 
not meant to be used by children, application programs can be 
written that will allow them to be creative and, at the same 
time, learn about programming. 



369 



ToolBox: A Smalltalk Illustration System by 

William Bowman and Bob Flegal / The versatile 
Smalltalk-80 language can create an environment for graphics 
design that can be used by non technically oriented people. 



378 



Virtual Memory for an Object-Oriented 
Language by Ted Kaehler / Virtual memory techniques must 
be used when the active memory space needed by a language 
is much larger than the amount of available memory. 



Reviews 

398 Microsoft Editor/Assembler Plus by Keith Carlson 

40 1 BOSS: A Debugging Utility for the TRS-80 
Model I by Scott Mitchell 



Nucleus 



6 

30 
197 
224 
392 
388 
391 
391 
392 
394 
402, 

404, 



421 
478 
479 

480 



Editorial: Smalltalk: A Language for the 1980s 
Letters 
BYTE's Bits 
BYTELINES 
BYTE's Bugs 
Ask BYTE 
Books Received 
Software Received 
Clubs and Newsletters 
Event Queue 

41 3 System Notes: Indirect I/O Addressing on the 8080; 
Aim-65 16-bit Hexadecimal to Decimal Conversion 
408, 414, 417, 418 Programming Quickies: A Disk 
Catalog for the Eighties; Alpha-Beta Tree Search Con- 
verted to Assembler; Fast Line-Drawing Techniques; 
Word Ujbnmarle; Binary-to-BCD Converter Program for 
the 8080 
What's New? 
Unclassified Ads 
Reader Service 
BOMB, BOMB Results 



KITE 




Page 14 



Page 50 



Page 90 



Page 168 



June 1961 © BYTE Publications Inc 3 



M 



Editor in Chief 
Christopher Morgan 

Managing Editor 

Mark Haas 

Technical Editors 

Gregg Williams, Senior Editor; 
Richard S Shuford; Curtis P Feigel; 
George Stewart; Stan Miastkowski; 
Charles Freiberg, New Products Editor; 
Steve Garcia, Mark Dahmke, 
Consulting Editors; 
Jon Swanson. Draftsman 

Copy Editors 

Beverly Cronin, Chief; Faith Hanson; 
Warren Williamson; Anthony J Lockwood; 
Ann Graves 

Assistants 



Faith Ferry; Debe Wheeler; 
Karen A Cilley 



Production 

Nancy Estle, Director; Christine Destrempes, 
Asst Director; Wai Chiu Li; 
Deborah Porter; Jonathan M Graves; 
Patrice Scribner; Sherry McCarthy, 
Chief Typographer; Debi Fredericks; 
Donna Sweeney; Valerie Horn 

Advertising 

Thomas Harvey, Director; 
Marion Gagnon; Rob Hannings; 
Marilyn Williams; Jacqueline Earnshaw, 
Reader Service Coordinator 

Circulation 

Gregory Spitzfaden, Manager; 
Andrew Jackson, Asst Manager; 
Agnes E Perry; Barbara Varnum; 
Louise Menegus; Bill Watson; 
James Bingham, Dealer Sales 



Controller's Office 

Daniel Rodngues, Controller; 

Mary E Fluhr. Acer & DIP Mgr; Karen Burgess; 

Jeanne Cilley; Mary Beth Ireland; Linda Fluhr 

Traffic 

N Scott Gagnon 

Receptionist 

Joanne Colburn 

Publishers 

Virginia Londoner; Gordon R Williamson; 
John E Hayes, Associate Publisher; 
Cheryl A Hurd, Publisher's Assistant 



Officers of McGraw-Hill Publications Com- 
pany; Paul F McPherson, President; Executive 
Vice Presidents: James E Boddorf, Gene W 
Simpson; Group Vice President: Daniel A 
McMillan; Senior Vice President-Editorial: Ralph 
R Schulz; Vice Presidents: Kemp Anderson, 
Business Systems Development: Robert B Doll, 
Circulation; James E Hackett, Controller; Eric B 
Herr, Planning and Development; H John 
Sweger, Marketing. 

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




In This Issue 

Smalltalk isn't small talk any more. Three years ago, the cover of BYTE 
depicted the island kingdom of Smalltalk as a place where great and magical 
things happen, though its "craggy aloofness" kept it out of the mainstream of 
the computer programming community. During the past three years the Xerox 
Learning Research Group has continued developing Smalltalk, and this month 
we present the culmination of its work — the debut of the Smalltalk-80 
system. 

Because of the special nature of this issue, we have added a special in- 
troduction by Adele Goldberg, manager of the Xerox Learning Research 
Group based in Palo Alto, California. Adele guides you gently through the ar- 
ray of articles-describing the Smalltalk-80 system and related topics. 

In addition to our regular features, we also have the concluding part of 
Steve Ciarcia's article, "Build a Z8-Based Control Computer with BASIC." And 
Stan Miastkowski presents an in-depth report on what we can expect from 
Japan in his article, "The Japanese Computer Invasion." 



BYTE is published monthly by BYTE Publications Inc. 70 Main St. Peterborough NH 03458. phone |603) 
924-928 1 . a wholly-owned subsidiary of McGraw-Hill, Inc. Address subscriptions, change of address, USPS Form 
3579, and fulfillment questions to BYTE Subscriptions, POB 590. Martinsville NJ 08836. Controlled circulation 
postage paid at Waseca, Minnesota 56093 - USPS Publication No. 528890 (ISSN 0360-5280). Canadian second 
class registration number 9321 . Subscriptions are S 19 for one year, S34 for two years, and S49 for three years in 
the USA and its possessions. In Canada and Mexico, S2I for one year, S 38 for two years, S55 for three years. S43 
for one year air delivery to Europe. S35 surface delivery elsewhere. Air delivery to selected areas at additional 
rates upon request. Single copy price is S2.50 in the USA and its possessions, S2.95 in Canada and Mexico. S4.00 
in Europe, and S4.50 elsewhere. Foreign subscriptions and sales should be remitted in United States funds drawn 
on a US bank. Printed in United States of America. 

Address all editorial correspondence to the editor at BYTE, POB 372, Hancock NH 03449. Unacceptable 
manuscripts will be returned if accompanied by sufficient first class postage. Not responsible for lost manuscripts or 
photos. Opinions expressed by the authors are not necessarily those of BYTE. Entire contents copyright © 1981 
by BYTE Publications Inc. All rights reserved. Where necessary, permission is granted by the copyright owner for 
libraries and others registered with the Copyright Clearance Center (CCC) to photocopy any article herein for the 
base fee of S 1 .00 per copy of the article or item plus 25 cents per page. Payment should be sent directly to the 
CCC, 2 1 Congress St, Salem MA 01 970. Copying done for other than personal or internal reference use without 
the permission of McGraw-Hill is prohibited. Requests for special permission or bulk orders should be addressed to 
the publisher. 

BYTE® is available in microform from University Microfilms International. 300 N Zeeb Rd, Dept PR, Ann 
Arbor Ml 48106 USA or 18 Bedford Row. Dept PR, London WCIR 4EJ England. 

Subscription WATS Line: (800) 258-5485 

Office hours; Mon-Thur 8:30 AM - 4:30 PM, Friday 8:30 AM - Noon, Eastern Time 



NATIONAL ADVERTISING SALES REPRESENTATIVES: 



NORTHEAST (617) 444-3946 

Hajar Associates 
280 Hillside Ave 
Needham Heights MA 02 1 94 

NORTHWEST (41 5| 964-0706 

Hajar Associates 
lOOOEIwellCt, Suite 227 
Palo Alto CA 94303 



MIDWEST (312) 966-0160 

Hajar Associates 
5225 Old Orchard Dr 
Skokie IL 60076 

SOUTHWEST (714) 540-3554 

Hajar Associates 
3303 Harbor Blvd 
Suite K-4 
Costa Mesa CA 92626 



MID ATLANTIC (212) 682-5844 

Hajar Associates 

52 1 Fifth Ave 

New York NY 10017 

SOUTHEAST (305) 886-7210 

Hajar Associates 
1220 Prairie Lane 
Apopka FL 32703 



August 1981 © BYTE Publications lnc 




". . .stands well above 
other S-100 graphics dis- 
plays in its price and per- 
formance range." 

BYTE, Product Review 



. . better monochromatic 
. . . display . 



ELECTRONIC DESIGN, 
1981 Technology Forecast 



MICROANGELO 

HIGH RESOLUTION GRAPHICS SINGLE BOARD COMPUTER 

512 x 480 resolution black and white and vivid color displays 



RS-170 com- 
posite or direct 
drive output 

Local or external 
sync generation 

4MhzZ80 
microprocessor 

60 hertz real- 
time clock 

8 level interrupt 
tie-in 

IEEE SI 00 bus 
compatible 




Light pen 
interlace 

Time multi- 
plexed refresh 

4K resident 

Screenware™ 

Pak I operating 

system 

32KRAM 

isolated from 

host address 

space 

High speed 

communications 

over parallel 

bus ports 



Screenware™ Pak I 

A 4K byte operating system resident in PROM on 
MicroAngelo™. Pak I emulates an 85 character 
by 40 line graphics terminal and provides over 
40 graphics commands. Provisions exist for user 
defined character sets and directly callable user 
extensions to Screenware™ Pak I. 

Screenware™ Pak II 

An optional software superset of Pak I which 
adds circle generation, polygon flood, program- 
mable split screen for separate graphics and ter- 
minal I/O, relative coordinates, faster vector and 
character plotting, a macro facility, full UCSD 
Pascal compatibility, and more. 

8455-D Tyco Road • Vienna, Virginia 22180 • TWX: 710-831-9087 • (703) 827-0888 

Circle 339 on inquiry card. 



And now. ..COLOR!! 

The new MicroAngelo™ Palette board treats from 
2 to 8 Micro Angelos as "bit planes" at a full 
512 x 480 resolution. Up to 256 colors may be 
chosen from 16.8 million through the program- 
mable color lookup table. Overlays, bit plane 
precedence, fade-in, fade-out, gray levels, blink- 
ing bit plane, and a highly visual color editor are 
standard. 



Circle 114 on inquiry card. 



TM 



PLAN8Q 

A financial modeling sys- 
tem that runs on a desk top 
computer, is easy to use yet 
powerful enough to re- 
place most timesharing ap- 
plications. 



PLAN80 Is a financial modeling 
system that runs on a desk top 
computer. It's easy to use yet 
powerful enough to replace most 
timesharing applications. 

PLAN80 lets you tackle any 
numeric problem that can be de- 
fined in worksheet format. It per- 
forms complex calculations quickly 
and precisely and lets you exam- 
ine "What If?" questions so you 
can evaluate more planning alter- 
natives In greater detail. 

With PLANSO you get more than 
your calculated results . . . You 
know how you get them, because 
you define rows and columns with 
familiar names such as UNITS, 
PRICE and JANUARY and express 
calculations in terms such as 
SALES= UNITS' PRICE. It's easy to 
review your assumptions and 
methods with people who have 
never seen PLANSO. 

At any point In the PLANSO model 
you may display or print results on 
your screen, printer or disk, save all 
or part of the results for use by 
another model, or play "What If?" 
by imputting new values, recalcu- 
lating and displaying or printing 
results. 

Best of all, you can incorporate 
PLANSO results Into any report 
that requires a financial model 
-using your word processor to cre- 
ate professional results. 

Anyone can use PLANSO to cre- 
ate budgets, project sales or ana- 
lyze costs - or even build a com- 
plex system of interrelated plans. 

PLANSO requires 56K RAM and 
CP/M. Also available for CP/M-86. 
Specify Z8C 8080/85, CDOS or 
8O86. Formats: 8" single density 
IBM soft-sectored, Cromemco 
CDOS, 5'/4" NorthStar DD, Microp- 
olis Mod II, Superbrain 3.O. Price is 
$295. Manual alone - S30. Add 
S7.00 for shipping and handling. 
Dealer inquiries invited. 

SOFW/4RE 
SOFTWARE 
DIGIML AMRKETING 

DIGITAL /W4RKETING 

2670 CHERRY LANE 

WALNUT CREEK • CA 94596 

(415) 938-28SO 

traden id ■ irfol Research 



Editorial 



Smalltalk: A Language 
for the 1980s 

by Chris Morgan, Editor in Chief 

Welcome to the fifth annual BYTE language issue. Over the past four years 
we have devoted our August issues to discussions of APL, Pascal, LISP, and 
FORTH, respectively. This year we are pleased to present the Smalltalk-80 
language, the culmination of ten years of research by the Xerox Learning 
Research Group located at the Xerox Palo Alto Research Center (PARC) in 
California. 

During the past few months the BYTE staff has been acquainting itself with 
Smalltalk. I spent some time this spring working with the Smalltalk systems at 
Xerox PARC and being briefed by Adele Goldberg and Dave Robson. I came 
away excited by this revolutionary language. I hope the articles in this issue 
convey some of that excitement. 

Smalltalk is an object-oriented language, as opposed to procedure-oriented 
languages such as BASIC, Pascal, and FORTRAN. Because of this, program- 
ming in Smalltalk is similar to the process of human interaction. An analogy 
might help to clarify this point. Suppose a person wishes to invest in a good 
mutual fund. He sends a telegram to his broker. The broker analyzes the cur- 
rent state of the market and picks what he considers to be the best mutual fund 
for his client. That in a very small nutshell describes the basic activity inherent 
in all Smalltalk programs: a message is sent to a receiver to invoke some 
response. In our analogy, the telegram is the message and the broker is the 
receiver. The telegram has two parts, called the selector and the argument. 
Here the selector is "buy" and the argument is "best mutual fund." The broker 
belongs to a class which contains the description of the method he uses to pick 
the best mutual fund. Because of this, the client does not have to tell the broker 
how to do his job. 

Of course, my analogy skims only the thinnest surface of the deep waters of 
the Smalltalk-80 system, as you'll see when you read the articles in this issue. 

When I first worked at a Smalltalk-80 computer terminal, I noticed an 
interesting phenomenon: I did very little typing, although a full keyboard was 
available to me. This is because of the window menu format and the presence 
of the "mouse," a small mechanical box with wheels that lets you quickly 
move the cursor around the screen. (Stoney Ballard of Digital Equipment Cor- 
poration, who has been doing research work lately with the Smalltalk-80 
system, points out that he was able to do a significant amount of programming 
with his experimental system over several weeks even though his keyboard 
was not working.) Choosing a particular item in a list from a window causes 
another window to appear on the screen. Additional levels of nested windows 
can be accessed by continuing to reposition the cursor and pressing the 
appropriate key on the mouse. 

This makes for fast programming. Those who saw the remarkable 
demonstration of the Xerox Star terminal (Xerox's new $16,000 office ter- 
minal) at the National Computer Conference (NCC) this past spring got a taste 
of what a programming environment can do for productivity. 

Smalltalk allows the user to solve more problems without becoming a com- 
puter expert. Larry Tesler from Apple (who wrote 'The Smalltalk Environ- 

Smalltalk-80 is a trademark of Xerox Corporation. 



August 1981 © BYTE Publications Inc 



Percom Mini-Disk Drive Systems for TRS-80* Computers . . 

Now! Add-On and Add-In Mini-Disk 

Storage for your Model III. 




New for the TRS-80* Model HI 

Patterned after our fast-selling TFD Model I drives. And 
subjected to the same reliability controls. These new 
TFD mini-disk systems for the Model III provide more 
features than Tandy drives, yet cost far less. 

• Flippy Capability: Both internal (add-in) and 
external (add-on) drives permit recording on either 
side of a diskette. 

• Greater Storage Capacity: Available with either 40- 
or 80-track drive mechanisms, Percom TFD mini-disk 
systems store more. A 40-track drive stores up to 180 
Kbytes — formatted — on one side of a 5-inch 
diskette. An 80-track drive stores a whopping 364 
Kbytes. 

• 1.5 Mbyte On-line: The Percom drive controller 
(included with the initial drive) handles up to four 
drives. With four 80-track mini-disk drives you can 
access over 1.5 million bytes of on-line file data. 

Moreover, the initial drive may be either an 
internal add-in drive or an external add-on drive. And 
whichever configuration you get, the initial drive kit 
comes complete with our advanced 4-drive 
controller, interconnecting cables, power supplies, 
installation hardware, a DOS and of course the drive 
mechanism itself. 

• First Drive Includes DOS: OS-80™, Percom's fast 
extendable BASIC-language disk operating system, is 
included on diskette when you purchase an initial 
drive kit. Originally called MicroDOS, OS-80 was 
favorably reviewed in the June 1980 issue of Creative 
Computing magazine. 

• Works with Model III TRSDOS: Besides being fully 
hardware compatible, Percom's Model III 40-track 
drive systems may be operated with Tandy's Model III 
TRSDOS — without any modifications whatsoever. 
And, TRSDOS may be easily upgraded with simple 
software patches for operating 80-track drives. 



The industry leader in microcomputer peripherals, 
Percom not only gives you better design, better 
quality and first-rate service, but you pay less 
to boor. 

Still #1 for Model I 

As if greater storage capacities, exceptional quality 
control measures and lower prices aren't reasons 
enough to make Percom your first choice for Model I 
add-on drives, all Percom Model I drives are also rated 
for double-density operation. 

Add our innovative DOUBLER™ adapter to your 
Model I Expansion Interface, and with Percom drive 
systems you can enjoy the same double-density storage 
capability as Model III owners. 

The DOUBLER includes a TRSDOS*-like 
double-density disk operating system called DBLDOS™ 

We also offer a double-density Model I version of 
OS-80 as well as DOUBLEZAP programs for modifying 
NEWDOS/80 and VTOS 4.0t for DOUBLER 
compatibility. 

Of course you don't have to upgrade your computer 
for double-density operation to use Percom mini-disk 
drive systems. In single-density operation, our TRS-80* 
Model I compatible 40-track drives store 102 Kbytes of 
formatted data on one side of a diskette, and our 
80-track drives store 205 Kbytes. By comparison, 
Tandy's standard drive for the Model I stores just 86 
Kbytes. 

And like our Model III drives, Model I add-on drives 
are optionally available with "flippy" storage capability. 

System Requirements: 

Model III: 16-Kbyte system (min) and Model III BASIC. 
The second internal drive may be installed after the first 
internal drive kit is installed, and external drives #2, #3 
and #4 may be added if either an internal or external 
first-drive kit has been installed. External drives #3 and 
#4 require an optional interconnecting cable. 
Model I: 16-Kbyte system (min), Level II BASIC, 
Expansion Interface, disk operating system and an 
interconnecting cable. For double-density storage, a 
Percom DOUBLER must be installed in the Expansion 
Interface and DBLDOS (comes with the DOUBLER) or 
other double-density DOS must be used. For 
single-density operation, a Percom SEPARATOR™ 
adapter, installed in the Expansion Interface, will 
virtually eliminate "CRC ERROR — TRACK LOCKED 

OU 1 read errors. Prices and specifications subject to change without notice. 



Percom TFD add-on drives start at only $399. Model 
III Drive kits start at only $749.95. 

Quality Percom products are available at 
authorized dealers. Call toll free 1-800-527-1592 
for the address of your nearest dealer or to order 
direct from Percom. 




PERCOM DATA COMPANY, INC. 

211 N. KIHBY GARLAND, TEXAS 75042 

(214) 272-3421 



•Trademark of Tandy Radio Shack Corporation which has no relationship to Percom Data Company. 
™DOUBLER. DBLDOS. OS-80 and SEPARATOR are trademarks of Percom Data Company, Inc. 
tTrademark of Virtual Technology Corporation. 



Circle 305 on inquiry card. 



BYTE August 1981 




FOR ANY € 
THERE ISA 8* 

WHnETONE MAINFRAME DEFINE 



OUR WEll-DIFFERENTIATED 

AREGUCuWED 

SYSTEMS INTEGRATION 



• 



A simple algorithm 

We work with the serious systems integrator ... on terms 
that make sense to you. That means giving you a set of 
products which expand your limits, not reduce them. 

We manufacture the most complete family of high quality 
IEEE/696 S-100 mainframes on the market. Choices in- 
clude three mainframes in rack-mount or table-top pack- 
ages with complete board sets, to serve as the building 
blocks for your 8 or 1 6 bit system. We also provide other 
options ranging from complete floppy disk systems right 
up to our proven Pascal development system. 

The S factor: one source. 

No matter which option you choose, you get the benefit 
of working with completely integrated products... fully 
assembled and tested ... under one warranty and one 
price structure ... leaving you free to concentrate on 
value-added application development and sales. 



Choose from mainframe options ... 

Select from three packaging options: Rack-mount, table- 
top or front panel models. All three feature our 20 slot 
S-1 00 motherboard with 25 amp power supply and are 
delivered fully assembled and tested with our Series II™ 
board sets. Any board configuration you choose works 
with any DPS-1 version, allowing you to vary your pack- 
age offering, or develop on one version and market 
another. 

♦ Front Panel model — a powerful development and 
diagnostic tool for Z-80 f systems, which can be used for 
prototyping, servicing, debugging, and software or 
hardware development. Use its features to set break- 
points, trigger scopes, single step, slow step and more. 

♦ Front Panelless desk top model— a lower cost option for 
OEM or other turnkey operations which do not require 
the extra capability of our Front Panel. 

♦ Rack Mount version — features a heavy gauge frame 
designed to fit into standard 1 9" racks. CVT power supply 
for brown out immunity is standard. 



*ln Calculus, a fundamental statement in the definition of limit; interpreted 
here to imply: "For your integration problem, Intersystems has a solution." 



t Registered trademark of Zitog, Inc. 









I 



Board level options . . . 

Intersystems mainframe packages, 
equipped with Series II boards, are opera- 
tional in both 8 and 16 bit settings and 
support extended addressing in both I/O 
and memory space, recognizing 16 bit 
I/O addresses and 24 bit memory 
addresses. Just look at 
these individual 

features; 
flfiWfc 




♦ MPU-80 — uses a Z-80, 8 vectored in- 
terrupt lines and two 4K windows to ad- 
dress up to 1 Megabyte of RAM without 
bank select. 

♦ 64KDR— sophisticated refresh circuitry 
allows unlimited DMA and absolutely re- 
liable operation without wait states. 



♦ 6 Sl/O — six individually software- 
controllable serial I/O ports with op- 
tional interrupts. Each can runRS 232 at 
up to 19,200 BAUD, as can our Vl/O 
board. 

♦ Vl/O — has two serial ports; two 8-bit 
parallel output and two 8-bit parallel 
input ports plus 8 individually controlla- 
ble command lines and 1 6 levels of vec- 
tored interrupts. 

♦ FDC II— can DMA up to a full track into 
16 Megabytes of memory. Optionally 
generates interrupts and handles up to 
four 8" floppies. 

♦ MPU-8000 — available with the non- 
segmented 1-8002*, which directly ad- 
dresses 64K, or the segmented 2-8001*, 
which can directly address 8 Megabytes. 

Extended systems options . . . 





Interfacing disk drives is not a trivial mat- 
ter, so when your objectives and re- 
sources dictate you spend your energy 
elsewhere, use our resources to perform 
the service for you. We can add our disk 
drive package to any Z-80 or Z-8000 con- 
figuration we provide . . . again, fully as- 
sembled and tested and covered under 
one warranty. 

Or our complete 

Pascal Development System. 

We use it for our own hardware and 
software development. It includes either 
table-top mainframe, two 8"floppydisks, 
128K RAM, CP/M*, and Intersystems 
Pascal/Z™ compiler and Cache BIOS™. 

THIS SYSTEM IS FAST! Why? Because 
our ultra-fast Cache BIOS automatically 
buffers whole tracks, eliminating most 
disk accesses. This delivers up to three 
times the throughput of any other 
floppy-based system we know and is 
equal to many small hard disk systems. 



The system is versatile, too. SET program 
allows you to change many BIOS 
parameters and specify control charac- 
ters to enable special features such as 
diagnostic output to trace program execu- 
tion. It can also provide remote I/O to 
link your system to almost any 
other computer, 
large or small. 




And it's reliable. The Cache BIOS System 
runs continuous memory tests when idle, 
and verifies with a Read after Write and 
Read after Read. 

And the system also includes our 
Pascal/Z, a true native compiler pro- 
ducing ROMable and Re-entrant code. It 
features a minimum of extensions chosen 
for the development of your scientific and 
business applications. And it's compati- 
ble with our native code Pascal for 
Z-8000, providing a graceful upward 
path to 16 bit applications. So what you 
write now is right later. 

One choice you won't have to make... 

We don't believe you should ever have to 
sacrifice good technical support to find a 
good product. We'll back you to the hilt 
with services like free technical consulta- 
tion, board-swapping, diagnostic pack- 
ages, and documentation that gives you 
all you need to integrate, operate and 
maintain your system ... right down to 
schematics of the boards. 

Your solution should be clear. 

Whether you're integrating for scientific, 
governmental or commercial applica- 
tions, Intersystems can provide a Delta for 
your Epsilon. 
Talk to us today. 

Ithaca Intersystems Inc., 

Dept. B 

1650 Hanshaw Road, 

P.O. Box 91 

Ithaca, NY 14850 

Phone 

(607) 257-0190 




DDitofestkHiDDsr 

V^ Ithaca Intersystems Inc. 

Micros for bigger ideas. 

Circle 180 on Inquiry card. 



#Registered trademark of Digital Research 



'"Trademark of Ithaca intersystems, Inc. 



Circle 158 on inquiry card. 



High 
Technology 

We make our 

competition 

obsolete 

with Information Master,™ 
Data Master,™ and Transit.™ 

Information Master is clearly the 
best information management 
software available for your Apple II * 
and it's the easiest to use. 
Here are two very useful 
companions that add even more 
power to Information Master. 

• Data Master - Alter the file 
layout of existing Information 
Master files without re-entering 
data. Add, omit, change fields, 
subdivide and append files 
selectively. 

• Transit - Convert VisiCalc* files 
(and almost any other files you 
may have) into Information 
Master files. 

See your computer dealer today 
for all the details. 

* VisiCalc is a trademark of Personal Software Inc. 

Apple II is a 



trademark of 
Apple 

Computer 

Inc. 




High 
Technology, Inc. 

Software Products Division 
P.O. Box B-14665 
8001 N. Classen Blvd. 
Oklahoma City, Okla. 73113 
405 840-9900 



•Apple II is a trade name ol 
Apple Computer, Inc 



Editorial, 



ment" on page 90) spoke about the efficiency of the 
language at the NCC. For example, suppose a user is run- 
ning a complex program that churns away for nearly an 
hour — then a bug appears in the output routine. All is not 
lost. Since the Small talk-80 language is "modeless" (a 
concept Tesler discusses in his article), the user can debug 
the output routine and continue with the main routine 
without having to start from the beginning. This is only 
one of the advantages of the Smalltalk-80 system. 

Where to Start 

The order in which you read the Smalltalk-80 articles 
in this issue makes a difference. The first stopping point 
should be Adele Goldberg's article "Introducing the 
Smalltalk-80 System" on page 14, in which she provides a 
guided tour of the issue. I also recommend Dave 
Robson's "Object-Oriented Software Systems" on page 
74 as a good overview of the Smalltalk-80 philosophy. 
The glossary on page 48 will be helpful as you begin to 
absorb the rather extensive (and sometimes overwhelm- 
ing) vocabulary used to describe the language. 1 found 
that, once the terms become familiar, the concepts begin 
to make elegant sense. 

When Can I Buy It? 

There are currently no personal computer implementa- 
tions of the Smalltalk-80 language. Because of this, I'm 
sure we'll be criticized by some for introducing the 
language too early and frustrating our readers. Never- 
theless, I feel that the time to begin exposing people to 
object-oriented language is now. Only by challenging 
and enticing the personal computer community can we 
stimulate the industry to create the machines we all 
dream of. 

As far as future hardware hopes are concerned, it is 
interesting to note that four of the speakers at the recent 
NCC Smalltalk-80 symposium were from Digital Equip- 
ment Corporation, Apple Computer Company, 
Tektronix, and Hewlett-Packard. All four research repre- 
sentatives were quick to point out that their companies 
are not necessarily working on Smalltalk products, but 
are rather exploring the language's potential. Despite the 
disclaimers, though, I would be very surprised if we do 
not see a computer with the Smalltalk-80 system built in 
sometime in the next few years — perhaps sooner. I hope 
this issue brings that dream closer. ■ 



Acknowledgments 

/ wish to express my appreciation to Adele Goldberg and Dave Rob- 
son at Xerox PARC for their invaluable help in preparing this special 
issue— and especially to Adele for coordinating the many authors who 
contributed their expertise. I'd also like to thank Gregg Williams for his 
editorial skills in preparing this issue .... CM 



10 August 1981 © BYTE Publications Inc 



Circle 359 on inquiry card. 



Make the Apple II* a powerful 
IEEE -488 Controller In a snap. 



Just plug the SSM A488 board into any Apple II* expansion slot for a low-cost, 

full-featured instrumentation interface. SSM gives the Apple II the power and 
versatility of a $9,000 IEEE-488 controller. At a fraction of the price. 
Our board converts the Apple II into a truly sophisticated controller that 
programs and controls up to 15 different instruments connected together 
on the 488 bus. 

We make programming easy. The 68488 chip, designed by Motorola, forms the 
heart of our A488. We back this chip with powerful on-board firmware to 
give you system control via simple string commands. The only software 
you need is easy-to-program Applesoft* Basic. To develop special purpose 
firmware, simply replace our PROM with a RAM. With the A488, bus com- 
munications operate at top speed — without depending on software loops for 
timing. And like the more expensive IEEE-488 controllers, this system interfaces 
with more than 1200 instruments and peripherals. 

Suitable for OEMs as well as end users. Whether you make test/measurement systems for re- 
sale, or simply for yourself, the SSM/Apple combo gives you top performance. As it cuts 
your costs. Call your local dealer or SSM today for complete details. 



IEEE-488 bus cable 

(6 ft. with stackable connectors) 



Industrial grade circuit board 

PROM firmware for powerful user interface 
68488 IEEE-488 controller chip- 






Slot-independent connection to Apple H- 



SSM's A488 board expands the Apple II to 
a high-performance IEEE-488 controller. 



* Registered trademarks of Apple Computer Inc. 




SSM Microcomputer Products, Inc. 

2190 Paragon Drive 
San Jose, CA 95131 
(408)946-7400 Telex: 171171 
TWX: 910-338-2077 



Reddy Chirra improves his vision 
with an Apple. 

Reddy is an optical engineer who's 
used to working for big companies and using 
big mainframes. 

But when he started his own consulting 
business, he soon learned how costly main- 
frame time can be. So he bought himself a 
48K Apple II Personal Computer. 

And, like thousands of other engineers 



iy: v 




& 




,&. 



T '" 



■1 



■ ■ 




and scientists, quickly learned the pleasures 
of cutting down on shared time ^^ and hav- 
ing his own tamper- proof data (r!T base. 

His Apple can handle 
formulas with up to 80 vari- 
ables and test parameters on 
250 different optical glasses. 

He can even use BASIC, 
FORTRAN, Pascal and Assembly languages. 

And Apple's HI-RES graphics come in 
handy for design. 

Reddy looked at other microcomputers, 
but chose Apple for its in-depth documenta- 
tion, reliability and expandability. 

You can get up to 64K RAM in an 
Apple ILUp tol28KRAMinour new Apple III. 
And there's a whole family of compatible 
peripherals, including an IEEE-488 bus for 
laboratory instrument control. 

Visit your authorized Apple dealer to 
find out how far an Apple can go with 
scientific/technical applications. 

It'll change the way you see things. 

The personal computer. ■HCIPPKZ 



for the dealer nearest you, call (800) 538-9696. In California, call (800) 662-9238. Or write: Apple Computer Inc., 10260 Bandley Dr., Cupertino, CA 95014. 
Circle no. 22 for more information or Circle no. 416 for special OEM information 



Introducing the Smalltalk-80 System 



It is rare when one can 
indulge in one's prejudices 
with relative impunity, 
poking a bit of good 
humored fun to make a 
point. 

With this statement, 
Carl Helmers 
opened his remarks in the 
"About the Cover" section 
of the August 1978 issue of 
BYTE. The issue was a 
special on the language 
Pascal, so Helmers took 
the opportunity to present 
Pascal's triangle as drawn 
by artist Robert Tinney. 
The primary allegory of 
the cover was the inver- 
sion of the Bermuda 
Triangle myth to show 
smooth waters within the 
area labeled "Pascal's 
Triangle." In explaining 
the allegory, Helmers 
guided the traveler 
through the FORTRAN 
Ocean, the BASIC Sea, 
around the Isle of BAL, and up to the Land of Smalltalk. 

Traveling upward (in the picture) through heavy seas 
we come to the pinnacle, a snow white island rising like 
an ivory tower out of the surrounding shark infested 
waters. Here we find the fantastic kingdom of Smalltalk, 
where great and magical things happen. But alas . . . the 
craggy aloofness of the kingdom of Smalltalk keeps it out 
of the mainstream of things. 

It is rare when one can indulge in one's fantasies to re- 
spond to so pointed a remark as that provided by the 




then editor of 
BYTE. This month's 
cover design presents 
Njust such an opportuni- 
ty. It depicts the clouds 
clearing from around 
the kingdom of Smalltalk, 
and, with banners stream- 
ing, the Smalltalk system 
is taking flight into the 
mainstream of the com- 
puter programming com- 
munity. This cover was 
also executed by Robert 
Tinney, to the delight of 
the Learning Research Group (LRG) of the Xerox Palo 
Alto Research Center. LRG is the group that has de- 
signed, implemented, and evaluated several generations 
of Smalltalk over the past ten years. 

The balloon on the cover symbolizes the Small talk-80 
system that is being released this year for more general 
access. The release is in the form of publications and a file 
containing the Smalltalk-80 programming system. 
Twelve articles describing the system appear in this issue 
of BYTE. Through such publication, LRG's research will 
become generally accessible, dispelling the clouds. 

Smalltalk is the name LRG assigned to the software 



14 August 1981 © BYTE Publications Inc 



TRS-80* COMPUTING EDITION 






©1981 Percom Data Co., Inc. 



Ql\)t percom peripteral 



35 cents 



Percom's DOUBLER II™ tolerates wide variations in media, drives 



GARLAND, TEXAS — May 22, 1981 
Harold Mauch, president of Percom Data 
Company, announced here today that an im- 
proved version of the Company's innovative 
DOUBLER' adapter, a double-density plug-in 
module for TRS-80* Model I computers, is 
now available. 

Reflecting design refinements based on both 
theoretical analyses and field testing, the 
DOUBLER II , so named, permits even great- 
er tolerance in variations among media and 
drives than the previous design. 

Like the original DOUBLER, the DOU- 
BLER II plugs into the drive controller IC 
socket of a TRS-80 Model I Expansion Inter- 
face and permits a user to run either single- or 
double-density diskettes on a Model I. 

With a DOUBLER II installed, over four 
times more formatted data — as much as 364 
Kbytes — can be stored on one side of a five- 
inch diskette than can be stored using a stan- 
dard Tandy Model I drive system. 

Moreover, a DOUBLER II equips a Model I 
with the hardware required to run Model III 
diskettes. 

(Ed. Note: See "OSSO*: Bridging the TRS- 
80' software compatibility gap" elsewhere on 
this page.) 

The critical clock-data separation circuitry 
of the DOUBLER II is a proprietary design 
called a ROM-programmed digital phase-lock 
loop data separator. 

According to Mauch, this design is more 
tolerant of differences from diskette to diskette 
and drive to drive, and also provides immunity 
to performance degradation caused by circuit 
component aging. 




Owners of original DOUBLERs may pur- 
chase a DOUBLER II upgrade kit, without the 
disk controller IC, for $30.00. Proof of put- 
chase of an original DOUBLER is required, 
and each DOUBLER owner may purchase only 
one DOUBLER II at the $30.00 price. 

The Percom DOUBLER II is available from 
authorized Percom retailers, or may be ordered 
direct from the factory. The factory toll-free 
order number is 1-800-527-1592. 

Ed. note: Opening the TRS-80 Expansion In- 
terface may void the Tandy limited 90-day 
warranty. Circle 306 on inquiry card. 



Percom DOUBtER 



Mauch said "A DOUBLER II will operate 
just as reliably two years after it is installed as it 
will two days after installation." 

The digital phase-lock loop also eliminates 
the need for trimmer adjustments typical of 
analog phase-lock loop circuits. 

"You plug in a Percom DOUBLER II and 
then forget it," he said. 

The DOUBLER II also features a refined 
Write Precompensation circuit that more 
effectively minimizes the phenomena of bit- 
and peak-shifting, a reliability-impairing char- 
acteristic of magnetic data recording. 

The DOUBLER II, which is fully software 
compatible with the previous DOUBLER, is 
supplied with DBLDOS", a TRSDOS"- 
compatible disk operating system. 

The DOUBLER II sells for $ZJ>^5, includ- 






ing the DBLDOS diskette 






e H*w*lH 



**l 



Circuit misapplication causes diskette read, format problems. 

High resolution key to reliable data separation 






GARLAND, TEXAS — The Percom 
SEPARATOR" does very well for the Radio 
Shack TRS-80' Model I computer what the 
Tandy disk controller does poorly at best: reli- 
ably separates clock and data signals during 
disk-read operations. 

Unreliable data-clock separation causes for- 
mat verification failures and repeated read 
retries. 



CRC ERROR -TRACK LOCKED OUT 



The problem is most severe on high-number 
(high-density) inner file tracks. 

As reported earlier, the clock-data separa- 
tion problem was traced by Percom to misap- 
plication of the internal separator of the 1771 
drive controller IC used in the Model 1. 

The Percom Separator substitutes a high- 
resolutitm digital data separator circuit, one 
which operates at 16 megahertz, for the low- 
resolution one-megahertz circuit of the Tandy 
design. 

Separator circuits that operate at lower 
frequencies — for example, two- or four- 



megahertz — were found by Percom to provide 
only marginally improved performance over 
the original Tandy circuit. 

The' Percom solution is a simple adapter that 
plugs into the drive controller of the Expansion 
Interface (EI). 

Not a kit — some vendors supply an un- 
tested separator kit of resistors, ICs and other 
paraphernalia that may be installed by mod- 
ifying the computer — the Percom 
SEPARATOR is a fully assembled, fully tested 
plug-in module. 

Installation involves merely plugging the 
SEPARATOR into the Model I El disk con- 
troller chip socket, and plugging the controller 
chip into a socket on the SEPARATOR. 

The SEPARATOR, which sells for only 
$29.95, may be purchased from authorized Per- 
com retailers or ordered directly from the fac- 
tory. The factory toll-free order number is 
1-800-527-1592. 

Ed. note: Opening the TRS-80 Expansion In- 
terface may void the Tandy limited 90-day 
warranty. Circle 307 on Inquiry card. 



All that glitters is not gold 

OS-80™ Bridging the TRS-80* 

software compatibility gap 

Compatibility between TRS-80" Model I diskettes and 
the new Model III is about as genuine as a gold-plated lead 
Krugerrand. 

True, Model ! TRSDOS ' diskettes can be read on a Model 
111. But first they must lie converted and re-recorded lor 
Model III operation. 

And you cannot write to a Model I TRSDOS'diskettc. 
Not with a Model III. You cannot add a file. Delete a file. Or 
in any way modify a Mode] I TRSDOS diskette with a Mode! 
Ill computer. 

Futthetmore, yout converted TRSDOS diskettes cannot 
be converted buck fot Model I operation. 

TRSDOS is a one-way street. And there's no retreating, 
A point to consider before switching the company's payroll 
to your new Model III. 

Real software compatibility should allow the direa, im- 
mediate interchangeability of Model 1 and Model III disket- 
tes. No read-only limitations, no conversion/rc-recording 
steps and no chance to be left high and dty with Model 111 
diskettes that can't be run on a Model 1. 

What's the answer? The answer is Percom's OS-80 3 * 
family of TRS-80 disk operating systems. 

OS-80 programs allow direct, immediate interchangeability 
of Model I and Model III diskettes. 

You can run Model I single-density diskettes on a Model 
111; install Percom's plug-in DOUBLER® adaptet in yout 
Model !, and you can run double-density Model III diskettes 
on a Model I. 

There's no conversion, no re-recording. 

Slip an OS-80 diskette out of your Model I and insert it 
directly in a Model III. 

And vice-versa. 

Just have the correct OS-80 disk operating system — 
OS-80, OS-80D or OS-80/I1I — in each computer. 

Moreover, with OS-80 systems, you can add, delete, and 
update files. You can read and lerire diskettes regardless ol the 
system of origin. 

OS-80 is the original Percom TRS-80 DOS for BASIC 
programmers. 

Even OS-80 utilities are written in BASIC. 

OS-80 is the Percom system about which a user wrote, in 
Creative Computing magazine, ". . . the best $30.00 you 
will ever spend. "t 

Requiring only seven Kbytes of memory, OS-80 disk oper- 
ating systems reside Completely in RAM. There's no need to 
dedicate a drive exclusively tor a system diskette. 

And, unlike TRSDOS, you can work at the track sector 
level, defining and controlling data formats — in BASIC — 
to create simple or complex «feta structures that execute 
more quickly than TRSDOS files. 

The Percom OS-80 DOS supports single-density opera- 
tion of the Model I computer — price is $29. 95; the OS-30D 
supports double-density opetation of Model I computers 
equipped with a DOUBLER or DOUBLER II; and, OS-80/ 
III — for the Model 111 of course — supports both single- and 
double-density operation. OS-80D and OS-80/11I each 
sell for $49.95. 



PRICES ANDSPECIFICATIONS SUBJECT TO CHANGE WITHOUT NOTICE. 



PRICES DO NOT INCLUDE HANDLING AND SHIPPING. 



PERCOM DATA COMPANY, IMC. 211 M. Kirby Street Garland, Texas 75042 (214) 272-3421 

Trademark of Percom Dara Company, Inc. 'TRS-80 and TRSDOS are trademarks of Tandy Corporation which has no relationship to Percom Data Company. +Creative Computing Magazine, June. 1 980, page 26. 



TWELVE STRONG 
HEATH/ZENITH YOUR 



Pick a strong partner 

A computer purchase is the beginning of a long term 
partnership between you and the people you buy from. 
Your ongoing need for software and accessories re- 
quires a partner who will stand by you with a growing 
line of products. And nowhere will you find a more com- 
plete line of hardware, software and accessories than 
at your Heathkit Electronic Center. Here are twelve 
strong reasons to make Heath/Zenith your partner. 

1. The All-ln-One Computer 

The heart of the Heath/Zenith line is the stand-alone 
89 Computer. It's a complete system with built-in 5 1 /4-inch 
floppy disk drive, professional keyboard and keypad, 
smart video terminal, two Z80 microprocessors, and 
two RS-232C serial I/O ports. It comes with 16K RAM, 
expandable to 64K. 

2. Peripherals 

These include the popular Heath /Zenith 
19 Smart Video Terminal, loaded with 
professional features. And the 14 Line 
Printer, priced as low as $495. Other 
printer brands are on display, 
including high- 
speed, typewriter-^^ 
quality printers. .^^ 





3. Software 

Word processing, includes reliable, easy-to-use 

Zenith ElectronicTyping and powerful, full-featured 

WORDSTAR. 

Small Business Programs, feature General Ledger and 

Inventory Control. 

HUG, Heath Users' Group, offers members a library of 
over 500 low-cost programs for home, work or play. 

4. Programming Languages 

For your own custom programs, 
Microsoft languages are 
available in BASIC (compiler 
and interpreter), FORTRAN 
and COBOL. 

5. Operating Systems 

Three versatile systems give you the capability to per- 
form your specific tasks. 

CPIM by Digital Research makes your system com- 
patible with thousands of popular CP/M programs. 
UCSD P-System with Pascal is a complete program 
development and execution environment. 
HDOS, Heath Disk Operating System gives you a 
sophisticated, flexible environment for program 
construction, storage and editing. 





6. Utility Software 

Expand the performance range of your computer with 
a broad selection of utility tools, including the best of 
Digital Research and the complete line of innovative 
Softstuff products. 

7. Disk Systems 

The 8-inch Heath /Zenith 47 
Dual Disk System adds over 2 
megabytes of storage to your 

89 Computer. Diskettes are 

standard IBM 3740 format, double-sided, 

I-~iilTTi ; il douDie " densit y- 
The 5V4-inch 87 Dual Disk System adds 
200K bytes of storage to your 89. Both 
disk systems feature read/write protec- 
^^^ tion and easy plug-in adaptability. 



8. Self-Study Courses 

Learn at your own pace 
with Programming 
Courses that teach you 
to write and run your own 
programs in Assembly, 
BASIC, Pascal or 
COBOL. 

A course on Computer Concepts 
for Small Business gives you 
the understanding to eval- 
uate the ways a computer 
can benefit your business. 
Personal Computing is a 
complete introduction to 
the fundamentals for the 
novice. Every Heathkit/ 
Zenith course is pro- 
fessionally designed 
for easy, step-by- 
step learning. 




All Heath /Zenith 
Computer Products 
are available completely 
assembled and tested for 
commercial use. Or in easy- 
to-build, money-saving kits 




REASONS TO MAKE 
COMPUTER PARTNER 





9. Expansion Options 

Communicate with the outside world through a Three- 
port EIA RS-232C Serial Interface. 
Expand RAM to 64K with easy-to-install expansion 
chips. 

Accessories 

Your Heathkit Electronic Center has the 

latest in modems, black-and-white and 
color video monitors, computer furniture 
and a full line of supplies, accessories, books 
and parts. 

11. Service 

No one stands by you like Heath/Zenith 
We help you get your system up and 
running smoothly. Service is avail- 
able from trained technicians, 
over the phone or at one of 56 
Heathkit Electronic Centers. 

12. Value 

Your money buys you more because 
Heath/Zenith prices are among the industry's most 
competitive. Make your own comparison and find out 
how much you can save. 

Complete, integrated computer hardware and soft- 
ware, designed to serve you and to grow with you 
- that's what to look for in a strong partner. And 
with Heath/Zenith you get it all under 
one roof. 



All at your 
Heathkit Electronic 
Center 

Pick the store nearest you 
from the list at right. And 
stop in today for a demon- 
stration of the Heath/Zenith 
89 Computer System. If you 
can't get to a store, send 
$1.00 for the latest Heathkit® 
Catalog and the new Zenith 
Data Systems Catalog of 
assembled commercial 
computers. Write to 
Heath Co., Dept. 334-804, 
Benton Harbor, Ml 49022. 




Visit Your Heathkit Electronic Center* 

where Heath /Zenith Products are displayed, sold and serviced. 



PHOENIX, AZ 

2727 W. Indian School Rd. 
602-279-6247 

ANAHEIM, CA 

330 E. Ball Rd. 
714-776-9420 

CAMPBELL, CA 

2350 S. BascomAve. 
408-377-8920 

ELCERRIT0.CA 
6000 Potrero Ave. 
415-236-8870 

LA MESA, CA 

8363 Center Dr. 
714-461-0110 

LOS ANGELES, CA 

2309 S. Flower St. 
213-749-0261 

POMONA, CA 

1555 N.Orange Grove Ave. 
714-623-3543 

REDWOOD CITY, CA 
2001 Middlefield Rd. 

415-365-8155 
SACRAMENTO, CA 

1860 Fulton Ave. 
916-486-1575 

WOODLAND HILLS, CA 

22504 Ventura Blvd. 
213-883-0531 

DENVER, CO 

5940 W. 38th Ave. 
303-422-3408 

AV0N.CT 

395 W. Main St, (Rt. 44) 
203-678-0323 
HIALEAH, FL 
4705 W. 16th Ave. 
305-823-2280 

PLANTATION, FL 

7173 W.Broward Blvd. 
305-791-7300 

TAMPA, FL 

4019 W. Hillsborough Ave. 

813-886-2541 

ATLANTA, GA 

5285RoswellRd. 

404-252-4341 

CHICAGO.IL 

3462-66 W. Devon Ave. 

312-583-3920 

DOWNERSGROVE.IL 

224 0gdenAve. 

312-852-1304 

INDIANAPOLIS, IN 

2112 E. 62nd St. 

317-257-4321 



MISSION, KS 

5960 Lamar Ave. 
913-362-4486 

LOUISVILLE, KY 

12401 ShelbyvilleRd. 

502-245-7811 

KENNER.LA 

1900 Veterans 

Memorial Hwy. 

504-467-6321 

BALTIMORE, MD 

1713 E. Joppa Rd. 

301-661-4446 

R0CKVILLE.MD 

5542 Nicholson Lane 

301-881-5420 

PEABOOY, MA 

242AndoverSt. 

617-531-9330 

WELLESLEY, MA 

165 WorcesterAve. 

617-237-1510 

DETROIT, Ml 

18645 W. Eight Mile Rd. 

313-535-6480 

E. DETROIT, Ml 

18149 E. Eight Mile Rd. 

313-772-0416 

HOPKINS, MN 

101 Shady Oak Rd. 

612-938-6371 

ST. PAUL, MN 

1645 White Bear Ave. 

612-778-1211 

BRIDGETON.MO 

3794McKelveyRd. 

314-291-1850 

OMAHA, NE 

9207 Maple St. 

402-391-2071 

ASBURYPARK.NJ 

1013 State Hwy. 35 
201-775-1231 
FAIR LAWN, NJ 
35-07 Broadway (Rt. 4) 
201-791-6935 
AMHERST, NY 
3476 Sheridan Dr. 
716-835-3090 
JERICHO, L.I. NY 
15 Jericho Turnpike 
516-334-8181 
ROCHESTER, NY 
937 Jefferson Rd. 
716-424-2560 
N.WHITE PLAINS, NY 
7 Reservoir Rd. 
914-761-7690 



CLEVELAND, OH 

28100 Chagrin Blvd. 

216-292-7553 

COLUMBUS, OH 

2500 Morse Rd. 

614-475-7200 

TOLEDO, OH 

48 S. Byrne Rd. 

419-537-1887 

WOODLAWN.OH 

10133 Springfield Pike 

513-771-8850 

OKLAHOMA CITY, OK 

2727 Northwest 

Expressway 

405-848-7593 

FRAZER, PA 

630 Lancaster Pike 

(Rt. 30) 

215-647-5555 

PHILADELPHIA, PA 

6318 Roosevelt Blvd. 

215-288-0180 

PITTSBURGH, PA 

3482 Wm.Penn Hwy. 

412-824-3564 

WARWICK, Rl 

558 Greenwich Ave. 

401-738-5150 

DALLAS, TX 

2715 Ross Ave. 

214-826-4053 

HOUSTON, TX 

1704 W. Loop N. 

713-869-5263 

SAN ANTONIO, TX 

7111 Blanco Road 

512-341-8876 

MIDVALE.UT 

58 East 7200 South 

801-566-4626 

ALEXANDRIA, VA 

6201 Richmond Hwy. 

703-765-5515 

VIRGINIA BEACH, VA 

1055 Independence Blvd. 

804-460-0997 

SEATTLE, WA 

505 8th Ave. N. 

206-682-2172 

TUKWILA.WA 

15439 53rd Ave. S. 

206-246-5358 

MILWAUKEE, Wl 

5215 W. Fond du Lac 

414-873-8250 

•Units of Vehtechnology 
Electronics Corporation in 
the U.S. 



Prices and specifications subject to change without notice. 



HEATH/ZENITH 



Your strong partner 




Figure 1 



Figure 2 



part of Alan Kay's personal computing vision, the Dyna- 
book. The vision is a hand-held, high-performance com- 
puter with a high-resolution display, input and output 
devices supporting visual and audio communication 
paths, and network connections to shared information 
resources. LRG's goal is to support an individual's ability 
to use the Dynabook creatively. This requires an 
understanding of the interactions among language, 
knowledge, and communication. To this end, LRG does 
research on the design and implementation of program- 
ming languages, programming systems, data bases, vir- 
tual memories, and user interfaces. 

The ivory tower on the island of Smalltalk is an excit- 
ing, creative place in which to work on these ideas. A 



sense of LRG's long-range goals is aptly portrayed in the 
illustrations designed by Ted Kaehler. 

In figure 1, we see a view of the conventional software 
development environment: a wizard sitting on his own 
computational cloud creating his notion of a Taj Mahal 
in which programmers can indulge in building applica- 
tions for nonprogramming users. The Taj Mahal repre- 
sents a complete programming environment, which in- 
cludes the tools for developing programs as well as the 
language in which the programs are written. The users 
must walk whatever bridge the programmer builds. 

A goal in the design of the Smalltalk system was to 
create the Taj Mahal so that programmers can modify it 
by building application kits, which are specialized exten- 



18 August 1981 © BYTE Publications Inc 




Three cards in one! The Mountain Computer CPS MultiFunction Card provides all the capabilities of a serial Interface, parallel 
output interface and real-time clock/calendar— all on one card— occupying only one slot in your Apple II®. Serial and Parallel 
output may be used simultaneously from CPS. CPS is configured from a set-up program on diskette which sets the parameters 
(such as baud rate, etc.) for all functions contained on the card and is stored in CMOS; RAM on the card. Once you have 
configured your card, you need never set it up again. You may also change parameters from the keyboard with control 
commands. All function set-ups stored on-board are battery powered for up to two years. "Phantom slot" capability permits 
assigning each of the functions of CPS to different slots in your Apple without the card actually being in those slots! For 
example, insert CPS in slot #4 and set it up so that is simulates a parallel interface in slot #1 and a clock in slot #7 and leave the 
serial port assigned to slot #4. CPS's on-board intelligence lets it function in a wide variety of configurations, thereby providing 
software compatibility with most existing programs. "We've put it all together for you" — for these reasons and many more! 
Drop by your Apple dealer and see for yourself how our CPS MultiFunction Card can expand the capabilities of your Apple and 
save you a great deal of money as well! 



great dea 
...... 



Calendar/Clock 



One second to 99 years 
Battery backed-up 1 2 years) 
Two AA standard alkaline batteries 
for back-up i provided) 
Compatible with MCI Apple 
Clock'" time access programs 



K Mountain C 

I N CORPOR 






Parallel Output 

» Features auto-line feed, Apple 

tabbing, line length, delay after 

carriage return, lower to upper 

case conversion 

Centronics standard— 

reconfigurable to other standar 



300 El Pueblo Scotts 
1 408 1 438-6650 TWX 
Circle 255 on inquiry card 

'"Apple Clock was the trademark of Mountain Comput 







Serial Interface 

Features auto-line feed, trans- 
parent terminal mode, Apple 
tabbing, line length, delay after 
carriage return, local echo of 
output characters, simultaneous 
serial/parallel output, lower to 
upper case conversion, discarding 
of extraneous LFs from serial input 
Uses the powerful 2651 serial 
PCI chip 

16 selectable internal baud rates 
50to19.2Kbaud 

Half/Full duplex terminal operatior 
I/O interface conforms to RS-232C 
Asynchronous/Synchronous 



operation 



rademarks of Apple Computer Inc 






Circle 45 on inquiry card. 





Figure 3 



sions and/or subsets of the system whose parts can be 
used by a nonprogrammer to build a customized version 
of the application. Applications that can be created from 
a kit are related in a fundamental way: the programmer 
may, for example, create it for building bridges, but it is 
the user who pieces together the parts to create a cus- 
tomized bridge (see figure 2). 

One of LRG's current research goals is to provide sys- 
tem parts to aid the programmer in creating kits. Al- 
though Smalltalk itself is conceptually sufficient for this 
task, it needs better support to help the programmer piece 
together the graphical display and the control for an in- 
teractive user interface. This is the "kit maker," as shown 
in figure 3. 



20 August 1981 © BYTE Publications Inc 




Sy»t«m 200 



IUMJ 



CCS. MAKING MINIS OUT OF MICROS. 



Here's the CCS line of board-level 
computers for system builders on the 
move. Push in the CCS board. And 
push on with your application. CCS 
board-level systems go together 
easily, come up quickly, and run 
reliably, with a proven return rate of 
less than 1%. 

CCS board-level computers 
offer systems builders the optimal 
combination of low development 
cost, low manufacturing cost, and 
high reliability from proven, tested 
modules. 

A headstart on reliability. CCS 
modules are designed to industrial 
performance standards, manufac- 
tured to industrial quality standards, 
fully burned in and tested. You spend 
more time and energy on your 
application when you rely on CCS 
modules instead of reinventing (and 
rebuilding) standard computer 
functions. 

A full selection of S-100 board- 
level computers. Whether you want 
to add capability to another S-100 
based system, or build a system from 
scratch, chances are you'll find solu- 

Circle 46 on inquiry card. 





,.__ 


dules 
ules. 




Static RAM Memory Mod 




Dynamic RAM Memory Mo 




^H 




Serial and Parallel I/O Mod 




^^■W^ffiffWSPfPJfjff 






Hard Disk Contro.ler. 


. 






'••■!!■••♦ 







* Available Quarter 2. 1981. 

♦ For use with CCS System Models 200, 300, t 



ons for all your system needs in the 
CCS product line. CCS manufactures 
a comprehensive selection, so you 
can tailor a system to your needs with 
a minimum of components. You buy 
exactly what you need. But you can 
easily expand later. 

We'd like to tell you more about 
the CCS line of board-level com- 
puters, OEM systems, and computer 
systems. There's a lot more to tell. 
Send in the coupon for more 
information, contact your local 
computer dealer, or call. 

| O Please have a sales representative 
call me. I 

O Please send more information on 
CCS Board-Level Computer 
Modules. 

Name . 

Company 

Address 

City/State/Zip . 
Phone ( 



I 



'5 



1 I 

California Computer Systems) 
250 Caribbean Drive 
Sunnyvale, California 94086 I 
(408)734-58111 



Circle 260 on inquiry card. 




DATA CORPORATION 

TAKE A STEP 
TOWARD TOMORROW 

At MSI our small company environment en- 
courages big ideas. If you've been thinking about 
a high technology career in micro-computers that 
offers high visibility , then why not think about 
MSI, the leader in Hand-Held Source Data Entry 
Systems. For Software Professionals, the follow- 
ing positions are now available. 

PROJECT GROUP LEADERS 

Needed to direct a small team of technical profes- 
sionals in: 

High Level Languages 
Background in HLL, i.e., PASCAL, ALGOL, etc., 
needed for development of Automatic Program 
Generator Systems using BASIC compiler and 
other languages. Assembly language required. 

Operating Systems 
Assembly language and/or interpreter experience 
required. Hardware interface experience 
desirable. Must have strong documentation and 
design skills. Knowledge of FORTH and PASCAL 
preferred. 

SENIOR ENGINEERING PROGRAMMERS 
Test and Integration 

Background in test planning and evaluation. Will 
be responsible for forming new group of 
specialists to develop test programs, implement 
test procedures and integrate software products. 

Communications Development 
Requires extensive experience in systems and 
programming. Knowledge of BSC protocols 
desirable and Hardware interface background in 
assembly language required. Familiarity with 
FORTH or PASCAL preferred. 

Operating Systems Development 
Senior and Intermediate Engineering Program- 
mers. Assembly language programming ex- 
perience on micro and mini-computers needed to 
create application solution systems for our new 
Route Accounting, Program Management Group. 
Experience in HIGH LEVEL LANGUAGE and 
FORTH would be a plus. 

SOFTWARE TECHNICAL WRITER 

Responsible for development and design of soft- 
ware documentation manuals, including writing 
maintenance documents, operating instructions 
and design specifications. Degree plus 3 years' 
software documentation experience in Assembly 
and HIGH LEVEL LANGUAGE. Background in 
FORTH would be a plus. 

We offer a complete benefits portfolio including 
paid medical, dental and life insurance, 100% tui- 
tion reimbursement, and retirement benefits. 
Please contact or call collect: 

Joan Ramstedt 

MSI Data Corporation 

340 Fischer Avenue, Costa Mesa, CA 92626 

(714) 549-6125 

An Equal Opportunity Employer M/F/H 




■HKtt 




As part of the Dynabook vision, the system should 
help the programmer build a personal computational 
cloud (see figure 4). Two research projects, ThingLab by 
Alan Borning and PIE by Ira Goldstein and Danny 
Bobrow, took advantage of Smalltalk's support for creat- 
ing new metaphors. 

We are often asked: "What makes Smalltalk different 
from other languages?" The articles in this issue attempt 
to answer that question. Look for an emphasis on interac- 
tive graphics, on modular development of programs, and 
on integrated approaches to accessing program develop- 
ment tools. Also, look for the distinction between a pro- 
gramming language and a programming system, and con- 
sider the difference in providing a system in which the 
user can feel individual mastery over complexity. Al- 
though each article can be read independently of the 

Text continued on page 26 



22 August 1981 © BYTE Publications Inc 



Hake a look at our EPROW blaster 
for your Apple" or TRS-80; 







Apparat announces the most 
versatile EPROM burner available 
today for your TRS-80 model I and 
III or Apple computer . . . the 
Apparat PROM Blasting system 
(A.P.B.). Most EPROM burners will 
program only one type of EPROM. 
The A.P.B. system will program all 
commonly used 24 pin EPROMs by 
using special personality modules 
that adapt the unit to the EPROM. 
The following EPROMs are 
programmable: 2704, 2708, 2716, 
(3-volt) & (5-volt), 2732, 2508, 2516 
and 2532. 

The versatility and power of the 
A.P.B. system means you're getting a 
PROM burning package with 
extensive capabilities. The price, 
$149.00, insures you're getting the 
most cost-effective PROM burner on 
the market today. 

With a unique combination of 
personality modules and 



sophisticated software, A.P.B. 
will perform many operations 
impossible with conventional 
PROM burners. Here's a brief 
list of some of A.P.B. 's capabilities: 

• Verify ROM is erased 

• Read ROM 

• Copy ROM 

• Copy between different ROM types 
■ Program ROM 

• Partial programming and copies 

• Verify programming 

• Read or save ROM data on disk or 
cassette (Apple only) 

• Program directly from computer 
memory 

• Examine and/or modify working 
memory 

• Preset working memory 

The A.P.B. system is the most 
flexible PROM burner available. The 
A.P.B. system package consists of an 
interface card that plugs directly into 
an expansion slot*, a complete set 



of personality modules, software on 
disk and a detailed instruction 
manual. The software will run under 
PiEWDOS/80, or TRSDOS™ for the 
TRS-80, and APPLE DOS™ or APEX 
for the Apple. 

If you're looking for a powerful, 
versatile and cost efficient EPROM 
burner, call APPARAT today. Dealer 
inquiries welcome. 

(303) 741-1778 

*TRS-80 version requires the TRS-80 bus 
extender (Cat. # 1-025) or a separate 
user provided power supply and cable. 

TRS-80, and Apple are trademarks of Tandy Corp. 
and Apple Computer. 




Apparat, Inc. 

440 1 So. Tamarac Parkway, Denver, CO 80237 (303) 74 1 - 1 778 

T>N GOING SUPPORT FOR MICROCOMPUTERS' 

Circle 21 on Inquiry card. 



— H 




Figure 5 



24 August 1981 © BYTE Publications Inc 



Circle 231 on inquiry card. 



B& 



MICRO-SCI SQUEEZES 
MOKE OUT OF YOUR COMT 
NOT YOUR POCKET 



If you own an Apple II* or plan 
to buy one, consider this: 

The Disk II* subsystem made 
for your Apple II provides only 35 
tracks of storage. But Micro-Sci 
subsystems made for your Apple II 
provide up to 70 tracks, without 
reduced versatility or compatibility. 

MORE CAPACITY 
FOR LESS MONEY 

Our A40 system features 40 



COMPATIBILITY TO SPARE 

Micro-Sci has achieved this 
extra storage while maintaining 
compatibility with your existing 
Apple formated diskettes. 

Our subsystems operate with;: 
DOS 3.2 and 3.3, Pascal, and the 
Z80 SoftCard. 

VERSATILITY PLUS 




byte capacity of Disk II. 

With either Micro-Sci system, you 
pay a lot less per byte. And with 
the A40, you could even end up 
paying considerably less per drive. 



A70's or one of each. 

Single or dual A40 drive sub- 
systems give you more capacity 
(20,000 to 40,000 bytes) than 
Disk II drives, for less money. 



fj-sa 



Micro-Sci's A40/A70 subsystem ' 
combines the diskette: level com- , ! 
patibility and interchangeability of | 
the A40 with the superior storage 
capacity of the A70, 

Dual A70's provide over half- :'| 
a-megabyte of storage, at 5Vi" 
floppy prices! • 

No matter which Micro-Sci 



more money in your pocket. 



mation and the name of your 
nearest Micro-Sci Dealer. 

•■"Disk H"'ls a registered trademark of Apple Computer. Inc.. 
Cupertino, Cfl 1 

■"SoftCard Is a registered trademark of Micro- Soft Consumer* 
Products. 



MICRO-SCI 
17742 Irvine Boulevard, Suite 205, Tustin, California 92680 / Phone: 714/731-9461 /Telex: 910-346-6739, 



MICRO- SCI IS A DIVISION OF STANDUN CONTROLS. INC. 



Text continued from page 22: 

others, knowledge of the Smalltalk-80 system and its de- 
sign philosophy is a prerequisite to understanding many 
of them. The map in figure 5 is presented to help the 
reader find a course through this hitherto uncharted 
ivory tower. 

You can begin at the drawbridge by reading Dave Rob- 
son's introduction to object-oriented programming (page 
74) and then proceed by reading the description of the 
Smalltalk-80 language (page 36). The two examples of 
programming in Smalltalk-80 are likely next steps: one, 
by Jim Althoff, tells you how to build data structures 
(page 230); the other, by Peter Deutsch, describes how to 
build control structures (page 322). Or, you can follow a 
hallway to the user interface window and read Larry 
Tesler's description of the Smalltalk programming envir- 
onment (page 90). Trygve Reenskaug offers further per- 
spectives on providing a programming interface to a 
Smalltalk system (page 147). 

At any time, you can take the side stairs to read Dan 
Ingalls' presentation of the design principles behind 
Smalltalk (page 286). Those readers who are interested in 
implementation details can head for the cellar and read 
Glenn Krasner's article on the Smalltalk virtual machine 
(page 300), or Ted Kaehler's article on a Smalltalk virtual 
memory (page 378). 



The walls of the tower are covered with visual images 
that will please any graphics enthusiast. Many were 
created by the ToolBox painting component of Smalltalk, 
as described in Bill Bowman and Bob Flegal's article (page 
369). Greater detail about the Smalltalk graphics kernel is 
provided by Dan Ingalls (page 168). 

Ivory towers are often associated with educational 
enterprises. So it is not surprising that field studies of the 
various versions of Smalltalk have been carried out most- 
ly in educational settings; elementary, junior, and senior 
high school students as well as university students have 
helped us test our ideas. Joan Ross and I provide some of 
the history in an article exploring whether the Small- 
talk-80 system is for children (page 348). 

Many people have helped to build our ivory tower, to 
surround it with protective clouds, and then to blow 
some of the clouds away. All the people, past and pre- 
sent, of the Xerox Palo Alto Research Center contributed 
a brick or two. George Pake, vice president of Corporate 
Research, assembled the bricklayers. We especially 
herald the person who is responsible for laying the foun- 
dation, Alan Kay, and current members of LRG not 
named as article scribes: Peggy Asprey, Alan Borning, 
Laura Gould, Bruce Horn, Neil Jacobstein, Kim McCall, 
Diana Merry, Steve Putz, and Steve Weyer. Special 
thanks to Bert Sutherland who did the "preflight 
check. "■ 



BARCODE FOR YOUR 
SMALL COMPUTER. 




/// '/■ 
//// //// 
' / •■/ •-// 

'/WW/////!, 

7///W//M '■ 
'////////// 

wma 

wm/t/m 

'WW/f, 
WW//// 

mm 

'W/i 

m 



«Si# 



New in-depth report tells 
you how-at savings 
of up to $40,000 

"Contemporary Applications of Optical 
Bar Code Technology" is a new, compre- 
hensive report from North American 
Technology that can save you thousands 
of dollars in research and development 



time when programming and equipping 
your small computer for bar code. 
Written by the originators of Byte 
Magazine's experiments with publication 
of software in printed form, Walter Banks 
and Carl Helmers, this report is the only 
complete presentation of materials on 
keyless data entry using modern bar code 
technology. It will enable you to: 

• Read HP-41C calculator formats into 
your Apple, or other suitable computer. 

• Prepare and deliver machine 
readable printed software to your 
customers. 

• Read a UPC code into your personal 
computer. 

• Print Code 39 manufacturing inven- 
tory tags with your formed character 
or dot matrix printer. 

Here, in clear, concise, understandable 
language is all you need to know about 
bar code history, software engineering 
requirements, complete machine inde- 
pendent Pascal software in source lis- 
ting and machine-readable bar code 



forms. There is also description of soft- 
ware to generate and read all major 
formats from Code 39 to HP-41C, and 
UPC to the new NATI text software pub- 
lication format You get information you 
can use to program your small computer 
for bar code without detail processing by 
a human operator. This method speeds 
the operation, eliminates translation and 
entry errors and, where desirable, permits 
the use of unskilled personnel for the 
entry function. You save thousands of 
dollars as a result The $500 purchase 
price of the report includes license for 
the commercial modification and use of 
all software contained therein. 
For detailed information, send for our 
brochure. There is no cost or obligation. 
Mail the coupon today. 



in 



1«* 



Q> 



NORTH AMERICAN 
TECHNOLOGY, INC. 

Strand Building 
174 Concord St.. 
Peterborough, NH 03458 
(603) 924-6048 

Please send me your FREE brochure on 
"Contemporary Applications of Optical Bar 
Code Technology." 

NAME 

ADDRESS 

CITY 

STATE 



ZIP- 



26 August 1981 © BYTE Publications Ire 



Circle 407 on Inquiry card. 



ietting "STATIC" from our competition? . . if so, you're paying too much! 



Try Ours 

*179 



64K Static $895 
assembled 



16K Static $179 
assembled 






tie* " 




«^ 




• STATIC RAMS • FULLY ASSEMBLED • FULLY TESTED • BURNED-IN • FULLY SOCKETED • INCREDIBLE VERSATILITY • BANK SELECTABLE 

• EXTENDED ADDRESSING • DELIVERY FROM STOCK • SAVE HUNDREDS OF DOLLARS • INTRODUCTORY PRICE - ORDER TODAY 



The Memory Merchant Story 

Why hasn't memory come down in price like it should? Here's 
what is being done tor you. 

High Performance and Low Price 16K Static Board 

You want the most cost-effective, high performance memory 
boards that technology will allow. With that in mind we commis- 
sioned one of the top memory designers in the country. We told him 
to design the board with the user in mind. It had to sell for less than 
$200. It had to run cool and have low-power consumption. It had to 
have both extended addressing capabilities and bank seleci 
capabilities at no additional cost. You had to be able to de-select IK 
blocks so the memory could accommodate memory-mapped video 
displays or controller cards. The board had to be fast so a user could 
run his processor at full speed. Finally, the board had to be reliable 
and easy to install. He came up with all this and more. Here's a high 



16K Ram, Model MM16K14 Specifications: 

• Four independent 4KX8 byte segments 

• One 4K segment equipped with IK windows 

• Compatible with both existing bank select type 
hardware and IEEE 696/S100 extended address protocol 

• Operation guaranteed to 4 MHz with Z-80 and to 
5 MHz with 8085 processors 

• Low power consumption, typically 1.3 amps 

• Uses low power 300 ns 2114 (IK X 4) 

64K Ram, Model MM65K16S Specifications: 

• Operation guaranteed to 8 MHz 

• Compatible with both existing bank select type 
hardware and IEEE 696 extended address protocol 

• Fully loaded board (64K) draws 400ma. while max. 
current is 550 ma. 

• Four independently addressable 16K submodules on one 
board organized as 2 pair of independent 32K banks or 
as 1 64K extended address page. Each 32K bank re- 
sponds independently to phantom. Bank select logic is 
compatible with either Cromemco Cromix* or standard 
bank select software. 

• 2716 (5V) EPROM compatibility: 

Programmed 2716 EPROMs may replace any or all of the 
Ram components on the board. 

• New 16K (2KX8) Static Rams which combine extreme 
low power (40ma. ON; 5ma. OFF) with high speed 
(200ns max. access time). 

• Also available partially populated to 48K or 32K. 
"Cromlx Is a trademark of Cromemco. 




Circle 215 on inquiry card. 



performance, fully assembled, tested and burned-in, guaranteed 
16K board that we are introducing for only $179. Runs on any S-100 
8080, 4 MHz Z-80, or 5 MHz 8085 system. 

The Most Advanced 64K Static Board 

The end user wants State-of-the Art when he buys a 64K board. 
So we had our super designer put together the 64K board of the 
future with tomorrow's high speed processors in mind. This board 
had to work with all S-100 systems, with current processors and 
future (up to 8 MHz) processors. It had to be ultra-low power. It had 
to be designed so the advanced user could populate the board with 
programmed EPROMs for special applications. This board, too, had 
to have both bank seleci and extended addressing at no extra cost. 
The board was also designed to be used as a 32K or 48K board and 
we are selling it that way, too. Put in additional chips when you 
want to increase the capacity! 
OEM and dealer inquiries invited. 

No Risk Free Trial 

After you purchase one of our boards you may return 
it (intact) for any reason within 15 days after shipment 
and receive a full refund. 

Free Six Months Memory Insurance 

We will replace any board purchased from Memory 
Merchant that becomes defective through normal use 
for up to six months. 



Yesl Please tend me the items listed below. I understand that if I'm not 
fully satisfied with the product, I can get a full refund within 1 5 days 
after shipment. (Send check, money order, or use your credit card.) 
Note to credit card buyers: For extra fast service phone (415) 483-1008 



SEND TO: 

MEMORY MERCHANT (Bl) 
14666 Doolittle Dr. 
San Leandro, CA 94577 

(NO C.O.D.'s) 

D CHECK 

D MONEY ORDER 

a visa 

*D MASTERCHARGE 
(Must olio hove ICAU) 



J4666 DOOLITTLE DR. 
SAN LEANDRO, 
CA 94577 
(415) 483-1008 



m 



I (VI 

memory 
merchant 



QUANTITY 


DESCRIPTION 


UNIT PRICE 


TOTAL 




64K 


$895.00 






48K 


749.00 






32K 


569.00 






16K 


179.00 




SHIPPING & HANDLING SS.OO/Boord 




California Residents 


TOTAL 




Add 6% Tax 







CARD NO. 
' ICAN0. 
NAME 



ADDRESS 



Strom City Shite Zip 

Prices, terms, specifications subject to change without notice. 



I 







■•&p#|$ 



A Major Breakthrough 



i '''A' f| Ski * 

■ ■ v,.*V I 



£' 








The System 2800 is the next logical step in the 
continuing line of innovative products from the 
Systems Group. 

Unbeatable S-100 Memory Boards 

First was the development of the DMB6400 
series of S-100 Memory boards featuring the 

innovative Bank 
Select switching 
technique. This 
enables users to 
software select 
up to four totally 
independent 
memory banks 
per board. 

The 2nd Generation 

Then came the 2nd Generation of IEEE S-100 
COMPATIBLE Z80 PROCESSORS, FLOPPY DISK 
CONTROLLERS and SERIAL I/O BOARDS. Each 
has been designed for single user, multi-user or 





network operating systems 
such as CP/M®, 
MP/M™, CP/Net™ 
and OASIS™. 

The Next 
Logical Step ... 

We challenged our design team to create an 
innovative yet competitive system utilizing our 
existing line of field proven, dependable S-100 
boards. The result: a highly reliable, quality built, 
state of the art microcomputer that gives you 
the cost/performance edge you need to be a 
leader in your field. 

The System 2800 comes with a choice of 
operating systems: CP/M with an enhanced 
CBIOS for single user systems and either MP/M 
or OASIS for multi-user, multi-tasking systems. 
MP/M is available with either a standard or 

CP/M MP/M and CP/Net are trademarks of Digital Research 
OASIS is a trademark of Phase One Systems 




1 1 [~] Essa 



Croup 



enhanced XIOS. The CP/M based System 2800 
provides improved diagnostic reporting capability 
and increased sector sizes of 1024 bytes, yielding 
disk performance throughput increases up to 
400% over standard unblocked systems. 

The enhanced multi-user, multi-tasking MP/M 
based System 2800 provides the same advanced 
features as CP/M. In addition, this interrupt 
driven implementation can offer performance 
throughput increases up to 2000% thru 
extensive disk buffering for applications 
requiring a large number of disk accesses. 

Also available is the OASIS operating system 
with ISAM files, automatic record locking and 
multiple-user print spooling. 

All operating systems are available in either 
floppy or hard disk configurations. The disk 
drive selection includes single or double sided, 
double density 8-inch floppies with up to 2.52 
megabytes of formatted storage per system, 
expandable to 5.04 megabytes, and an 8-inch 10 
megabyte Winchester hard disk. 



Cost Effective Reliability 

Dealers, OEM's and System Integrators share 
many common needs. Not the least of these is 
dependable products. That's why we back our 
System 2800 with our established reputation for 
high quality products, superior support, prompt 
and courteous service, and a one-year warranty. 

Take the next logical step. See your nearest 
computer dealer, or contact us for the complete 
story on our S-100 family of board products and 
enhanced systems. 



Systems 



Group 



a Division of MEASUREMENT systems &. controls 

incorporated 

1601 Orangewood Ave. 

Orange, Calif. USA 92668 

(714) 633-4460 TWX/TELEX: 678 401 TAB IRIN 



For International Sales Inquiries contact: SIGMA INTERNATIONAL, INC., P.O. 
Box 1118, Scottsdale, AZ 85252 USA (602) 994-3435 / Telex 165 745 Sigma 



Circle 213 on inquiry card. 



Letters 



Advertisements, Etc 

An advertisement in the May 1981 
BYTE could cause readers to mistakenly 
conclude that certain products of Com- 
puter Corporation of America are avail- 
able through Computers, Etc. 

Computer Corporation of America's 
products and services are available only 
through the Computer Corporation of 
America. Additionally, the name "Com- 
puter Corporation of America" is the ex- 
clusive property of Computer Corpora- 
tion of America, a corporation organized 
under the laws of the Commonwealth of 
Massachusetts. 

Thank you, BYTE, for this opportunity 
to eliminate any confusion concerning the 
use of our name or availability of our 
products and services. 

Joseph Jarzembowski 

General Counsel 

Computer Corporation of America 

575 Technology Sq 

Cambridge MA 02139 



Noise from the Past 

I was pleased to see BYTE's ongoing re- 
porting of new semiconductor devices 
with April's "What's New7" mention of 
LOUD Electronics's 3N120DB NED 
(noise-emitting diode). 

BYTE seems to be in error, however, 
when it says that the device is a "new de- 
velopment in indiscreet electronics." As I 
remember, BYTE reported the develop- 
ment of an earlier version of this device 
five years ago, in 1976. At that time, the 
device was only available in high-voltage 
versions and had a much shorter lifetime 
than the current component has. 

In the 1976, BYTE said: 

When connected across a +1000 V 
supply, it makes a loud noise (once). 
The NED was discovered by Igor 
Pravaganda, whom, you'll recall, 
worked many years trying to filter AC 
with polarized electrolytic capacitors. 
He'll always be remembered as the 
father of the confetti generator. 




System 3 $7053 

This 16-bit Multibus™ computer 
system includes: 

• Z8001 CPU and 256K RAM 

• 8 serial I/O ports 

• 15-slot backplane 

• Dual floppy disk drives 

• Multiuser Operating System 

Field upgrade to 16MB RAM, 
268MB of hard disk, 32 users. 
Pascal, BASIC, C, COBOL and 
FORTRAN languages. 

(312) 684 



Dialogi 



AMPEX Terminal $1045 

• Full ASCII detached keyboard 

• Separate edit/numeric keypads 

• 25th status line 

• 20 programmable function keys 

• 2 pages memory (4 optional) 

• 1 1 line drawing graphics characters 

• 10 modes: block, protect, program. . 

• Monitor mode displays control codes 



COMPUTEX 

MICROCOMPUTER SYSTEMS \ 
5710 Drexel, Chicago, IL 6063 





At that time, the schematic diagram of 
the device was also slightly different. I as- 
sume the drawing of the NED has been 
standardized to the current version in the 
past five years. 



1976 NED 



1981 NED 





While I am pleased to learn of the con- 
tinued development of this device, I do 
feel that, in the future, BYTE should be 
more careful in reporting of "new" semi- 
conductors. 

David J Lindbergh 
49 Beechmont St 
Worcester MA 01609 

We have been following the develop- 
ment of the NED (which appeared for the 
first time on page 41 of the February 1976 
BYTE) very closely. Also at that time, we 
reported on the invention of two other de- 
vices: the Shiftless Register and the Fuzz- 
Locked Loop. We believe that these three 
devices will form the basis for data-com- 
munications systems in the future. Watch 
upcoming issues for a report on the Fast- 
Fourier Stepdown Transformer. . . . CPF 



April's Foolers 

The hasty printing of data concerning 
our Black-Hole Diode is not only an inva- 
sion of our corporate security, but is not 
in the national interest. (See the April 
1981 BYTE, page 363.) 

Our device, which is covered by US 
patents and is classified by the National 
Security Council as "Top Secret," should 
not be pandered about in a general-circu- 
lation magazine for all to see, especially 
when those not friendly to our nation may 
learn details of this device. 

Furthermore, how BYTE learned of the 
existence of our device is unknown to us, 
but be advised that stricter security has 
been imposed to forestall any further 
lapses. 

Be also advised that the company BYTE 
lists as being responsible for creating the 



30 August 1981 © BYTE Publications Inc 



Circle 84 on inquiry card. 



Circle 108 on inquiry card. 






»&\ /A\ 




The next scncration 
of business software 



WHAT'S IN A NAME? 

We've changed the name of our product line. Originally, we called our 
products "Phoenix" because we saw the phoenix as an appropriate 
symbol of quality. Unfortunately, a lot of other companies chose Phoenix 
os well, and there was some concern that the market place would 
become confused. 

Our new name, PALANTIR" (pronounced pal'anreer), is not a new name 
for us since it's our corporate name. It comes from J.R.R. Tolkien's The 
Lord of the Rings and describes a block crystal ball, a "seeing stone", 
used to see things at a distance. 

Whatever the name on the package, the software in the package hasn't 
changed. It is still the highest quality business software you can buy for 
your microcomputer. 

WORD PROCESSING 
We know word processing. A year-and-a-half ago the owners of 
Designer Software'" wrote a well-known word processor for another 
company. In the last 1 8 months we've learned about other features you 
want in a word processing package. PALANTIR™ Word Processing 
reflects our experience. It is more powerful than other word processing 
packages you can buy and can compete, feature for feature, with ex- 
pensive dedicated word processors. 

Many people have remarked that the user's manual we wrote earlier was 
the best ever for microcomputer software. Even so, we fell that we could 
have made it more accessible to the non-technical user. With PALANTIR™ 



Word Processing we have a separate Training Manual with beginning, 
intermediate and advanced levels. By allowing you to work at your own 
level, we have made the learning process easier and less intimidating. 

ACCOUNTING 

All five PALANTIR™ general accounting packages (General Ledger, Ac- 
counts Receivable and Payable, Payroll and Inventory) were designed by 
CPA's based on similar packages from mini and mainframe computers. 
The programs are COBOL with an integral assembly-language data 
base. They are integrated to allow automated posting to the General 
Ledger. An internal screen handler permits full-screen data entry for 
speed and ease of use. Although we made cosmetic enhancements prior 
to distribution, the basic programs have been user-tested for at least 
eighteen months. 

PALANTIR™ Accounting also includes a growing number of specific 
application packages. We have completed or scheduled for completion 
Fixed Assets, Tenant Processing, Mail Management, Financial Projec- 
tions and Time/Billing. Each package stands alone, but many also work in 
conjunction with other PALANTIR™ packages. For example, Mail 
Management will work very well by itself, but we also designed it to fit in 
easily with the merging capabilities of Word Processing. 

With all PALANTIR™ Accounting we have given special attention to 
documentation. Not being content to describe which buttons to push, we 
have taken the time to explain the accounting principles behind the pro- 
grams and how each package helps to automate your office. 



Designer Software 

HOUSTON 



// you wont to know what PALANTIR™ Word Processing and accounting can do for your 
business, call, write, telex or use The Source to request more Information, 



3400 Montrose Blvd • Suite 718 • Houston, Texas 77006 
(713)520-8221 • Telex 790510 • Source TCU671 



Circle 303 on inquiry card. 




Tomorrow's 
Software . . . 
Today! 



UCSD 

P-SYSTEM 



(FORTRAN) 



Pascal 



BASIC 



LISP 



portable 
Powerful 
Professional 

FOR PROGRAMMERS 

•Operating syslfcm with interpreter, 
screen and character editors, filer, 
assemblers, Utilities and compilers. 

• PFASITMI -Keyed - ISAM in 6K user 
memory 

FOR ENGINEER^, CONTRACTORS 

•Milestone!™) -Organic Software's 
answer to PERT. Critical path 
modeling. 

•FORTRAN --ANSI 77 Subset 

FOR DOCTORS, CLINICS 

•MEDOFF[CE<™)_The complete 
office system tor the professional. 

•DATE BOOKW- Appointment 
scheduling for your micro. 

FOR SMALL BUSINESS 

•GL, AR, AP, Payroll Packages 
•Word Processing 

FOR EDUCATORS, RESEARCHERS 

• INTELLECT-UU™> _ A full range 
LISP interpreter for A. I. applications 

•mINDEXf™!— itext database system 
for bibliographies, contracts, 
abstracts, ete.: 

And Much More — 

READY TO RUN ON 

DECLSI-11t 
TRS-80 Model ll§ 

PCD SYSTEMS 
P. 0. Box 143 
Penn Yan, NY 14527 
315-536-3734 



ITM Digital Equipment 
STM of Tandy Corp. 
*tmu. of California 



Letters , 




Black-Hole Device, Spatial Regression 
Ltd, will shortly receive summons from 
our legal department. 

Any repetition or further disregard for 
national security regarding this device or 
its uses in particle-beam research will 
bring about swift and final action. 

J W Kelty 

Chief Executive Officer 

Code-7 Electronics 

POB 1505 

Modesto CA 95353 

Each year, the BYTE staff enjoys slip- 
ping a few joke items into the April issue 
for our readers to find; some are subtle, 
some are outrageous. Response to this 
year's foolishness was greater than in any 
year past. In case you missed it, look for 

"Lost Dutchman's Bug" (photo), 

page 302 
"Black-Hole Diode" (new product), 

page 363 
"Noise-Emitting Diode" (new product), 

page 364 
"Slightly Used Cray-1" (unclassified 

ad), page 414 

So you see, there's no need for "swift 
and final action" (gulp!) — we were just 
kidding! By the way, where should we 
return the sample device that was in- 
cluded with your letter? . . . CPF 



Unpublished Apple Logo 

With some hesitation, I'm writing this 
letter to inform BYTE readers of an unfor- 
tunate situation concerning the distribu- 
tion of the MIT Apple Logo programming 
language. I've been writing Apple Logo at 
the Logo laboratory for the last two years 
as an undergraduate project. I've labored 
under the understanding that Apple Logo 
was to be placed in the public domain or 
licensed to software-development com- 
panies or dealers for distribution. How- 
ever, for the past eight months, MIT has 
withheld the language from the public. 

I would like to explain why. The origin- 
al intent of my project was to implement a 
small subset of the Logo interpreter on the 
Apple computer. The final product actu- 
ally evolved into a full-scale implementa- 
tion, with features surpassing the Texas 
Instruments (TI) version, which also was 
developed at the Logo laboratory. When 
TI heard about this and the Apple Logo 
project, it reacted angrily; it fears that a 



August 1981 © BYTE Publications Inc 



Logo for the Apple would adversely affect 
sales of its Logo system. In fact, TI may be 
quite justified in its fears, for there are 
many people who think that Apple Logo 
is superior to TI Logo as an educational 
tool. It's rumored that Texas Instruments 
is depending on TI Logo to redeem the 
TI-99/4 home computer, which is not sell- 
ing as well as expected. 

Texas Instruments is a very generous 
friend of MIT, and some people here are 
embarrassed about a situation that might 
threaten one of its sales programs. So, in 
an effort to appease its corporate friend, 
MIT has been stalling the distribution of 
Apple Logo. There was a version ready 
for distribution at the end of last year with 
many improvements over the version re- 
viewed in the June BYTE (see "Logo for 
Personal Computers," page 36), and since 
then it has been expanded and improved. 
But I'm extremely frustrated that MIT 
chooses to avoid angering Texas Instru- 
ments by compromising the efforts of one 
of its undergraduate students. This 
frustration is compounded by the fact that 
I feel, as do many here at the lab, that the 
TI-99/4 has many serious deficiencies and 
that the public will be cheated if forced to 
buy it because it is the only machine on 
which Logo is available. 

Apple Logo is one of the finest pro- 
grams that can be used on the Apple, and 
I would like to see it widely distributed as 
early as possible. Two years of my efforts 
went into it, as well as those of several 
others, and it's sad that MIT does not re- 
cognize the injustice that it is doing to 
myself, the Logo laboratory, and the 
many Apple users who would benefit 
from Apple Logo. If TI is afraid that its 
sales will be hurt, then it should fix the 
deficiencies in its machine and stop trying 
to suppress this program. I urge BYTE 
readers to write the Office of the Provost 
at MIT and request that Apple Logo be 
made public or licensed for distribution 
without delay. Thank you. 

Stephen Hain 
MIT Logo Laboratory 
545 Technology Sq 
Cambridge MA 02139 

Love's Labors Lost 

Whilst enjoying very much the 
Shakespearean research endeavours of 
Andrew Kalnik, ft is oWious that he has 
missed the point. (See "Micro- 
Shakespeare," April 1980 BYTE, page 104 
and "MicroShakespeare Revisited, " April 

Circle 287 on inquiry card. — — ► 



\ 




The guy on the left 
^esn't stand a chance. 

uy on the left has two file folders, a news maga- transmission couplers mean you need never work without 



I I 



The guy on the left has two file folders, a news maga 
zine, and a sandwich 

The guy on the right has the OSBORNE 1®, a fully 
functional computer system in a portable package the size 
of a briefcase. Also in the case are the equivalent of over 
1600 typed pages, stored on floppy diskettes. 

The owner of the OSBORNE 1 is going to get more 
work done — and better work done — in less time, and with 
less effort. 

Unfold it, plug it in, and go to work 
like you've never worked before. . . . 

Goto work with WORDSTAR® word processing, so 
your correspondence, reports, and memos take less time 
to produce, and say more of what you wanted to say. And 
with MAILMERGE® — the mailing system that turns out 
personalized mass mailings in the time you'd spend on a 
rough draft. 

Go to work with SUPERCALC®, the electronic 
spreadsheet package that handles complex projections, 
financial planning, statistics, and "what if" questions in- 
stantly. For the more technically minded, SUPERCALC will 
process scientific data and calculate results. 

Go to work with powerful BASIC language tools — 
the CBASIC-2® business BASIC, or the Microsoft BASIC® 
interpreter. 

That's standard equipment. 

Options include about a thousand different software 
packages from a host of vendors designed to run on the 
CP/M® computer system. 
Go to work at the office, at home, or in the field. 

Or anywhere. Optional battery packs and telephone 



transmission couplers mean you need never work without 
the capabilities of the OSBORNE 1 . That's good, because 
you won't want to work again without it. 
All for $1795. It's inevitable. 

The OSBORNE 1 is the productivity machine that's 
changing the way people work. Put simply, the machine 
delivers a significant productivity edge — day in and day 
out — to virtually anyone who deals with words or num- 
bers. Or both. 

Since the entire system is only $1795, it won't be too 
long before the guy on the left has an OSBORNE 1 of his 
own. The same probably goes for the person reading 
this ad. In fact, we think it's inevitable. 

The OSBORNE 1 includes a Z80A*CPU. 64K 
bytes of RAM memory, two 100 kilobyte 
{loppy disk drives, a business keyboard, 
built-in monitor, IEEE 488 and RS232 inter- 
faces for printers and other things that 
get connected to computers, plus 
CP/M, CBASIC-2, Microsoft BASIC, 
WORDSTAR, and SUPERCALC. The 
system is available from com- 
puter retailers nationally. 



$1795. It's 
inevitable. 




COMPUTER CORPORATION 

26500 Corporate Avenue Hayward, California 94545 
Phone (415) 887-8080 TWX (910) 383-2021 



Letters ■ 



1981 BYTE, page 98.) 

Careful scrutiny of the works of the 
Bard of Programmers reveals that some 
discarded program segments have become 
garbled into the text, probably as the 
result of bad file merges. 

Take, for example, the statement 

If it were done when 'tis done then 'twere 
well it were done quickly 

or, parsing 

IF I(T) WERE D(ONE) WHEN T IS 



D(ONE) THEN T WERE W(L) I(T) 
WERE D(ONE) QUICKLY 

which, written as we understand it, and 
using X for ', gives 

IF l(T) =D(1) 

WHILE T(X) = D(1) 
T(X) = W(L) 
l(T) = D(1) 

QUICKLY 

The WEND statement is missing, but it 
may be that QUICKLY denotes a ma- 
chine-code subroutine that could have 
some terminating function. (Mistress 



Waiting On Delivery 
ofADECLA120? 



A 



Avoid the hassle by upgrading your LA36 for 1200 
baud operation with a DS120 Terminal Controller. 

The Datasouth DS120 gives your DECwriter® II the high speed 
printing and versatile performance features of the DECwriter® III 
at only a fraction of the cost. The DS120 is a plug compatible 
replacement for your LA36 logic board which can be installed in 
minutes. Standard features include: 

•165 cps bidirectional printing «RS232 interface 

•Horizontal & Vertical Tabs «20 mA Current Loop interface 

•Page Length Selection «Top of Form 

•110-4800 baud operation 'Adjustable Margins 

•1000 character print buffer 'Double wide characters 

•X-on. X-off protocol 'Parity selection 

•Self Test 'Optional APL character set 

Over 4000 DS120 units are now being used by customers ranging 
from the Fortune 500 to personal computing enthusiasts. In 
numerous installations, entire networks of terminals have been 
upgraded to take advantage of to- 
day's higher speed data com- 
munications services. LSI 
microprocessor electronics 
and strict quality control 
ensure dependable per- 
formance for years to 
come. When service is 
required, we will respond 
promptly and effectively. 
Best of all, we can deliver 
immediately through our 
nationwide network of 
distributors. Just give us a 
call for all the details. 

DATASOUTH COMPUTER CORPORATION 

4740 Dwight Evans Road • Charlotte, North Carolina 28210 • 704(523-6500 




J^jJP"* ""i ssswtao > i iii i iii ,i " i, 'iui 



IBP'- 



Quickly is a comical character in The 
Merry Wives of Windsor — an example, 
perhaps, of a subroutine label being con- 
fused with a file name?) 

Further research has revealed, hidden in 
the depths of the surviving listings, an in- 
complete command syntax of a lost high- 
level language. 

Typical examples of this are 

Lost Modern 

Language Parlance 

Armour Chain 

Billet Log 

Breach Input 

Burden Load 

Count Cont 

Curtail Edit 

Espy Peek 

Fellow Cos 

Folio Print 

Hail , Call 

Inquisition Exam 

Buffet Poke 

Missives Data 

Near Close 

Peasant Common 

Scotch Erase 

Scribe Write 

Set Put 

Tally List 

Unbesmirch Clear 

There are some commands still in use 
today: GOTO, END, EXIT, ERROR, RE- 
STORE, RUN are typical, whilst the use 
of functions such as SIN, HEX, DIM, and 
FIX show the arithmetical properties of 
the language. It can safely be assumed 
that commands such as READ and AUTO 
were not generally implemented at this 
time. 

Research continues, but so far it looks 
as if Sir Francis Drake made the first re- 
corded visit to Silicon Valley, during 
which, presumably, the natives acquired 
the principles of his on-board naviga- 
tional computer. 

Ross Henderson 
Systems Manager 
Digital Devices Ltd 
134 London Rd 
Southborough, Kent, 
TN4 0PL, England 

It is obvious that, despite improve- 
ments in hardware, some aspects of pro- 
gramming never change — Shakespeare, in 
his time, may have suffered the "slings 
and arrows of outrageous fortune" just as 
modem programmers do. What personal- 
computer user has not, after seeing an 
advertisement for software, purchased 
same from The Software Merchant of 
Letters continued on page 282 



34 August 1981 © BYTE Publications Inc 



Circle 103 on inquiry card. 



spipsiuijik 




Here's the white collar crime of 1981: Let 
your people labor away for hours at jobs a 
properly trained computer can do in seconds. 

You pay for all those wasted hours. 

And you're missing opportunities, 
because the hours could be spent on new, pro- 
ductive, profitable projects. 

We can help you. 

If you have a CP/M®-based microcomputer, 
SSG's Business Productivity Packages will scoop 
up all those hours you're losing and give you back 
more productivity, more time, more information, 
and more success. 

ANALYST. $250. An information storage 
and retrieval (data base) system that will replace 
piles of files with information you can USE. 

MAGIC WORKSHEET. $250. SSG's answer 
to the world's demand for electronic spreadsheet 
calculation and "what-if" capabilities on CP/M 
systems. (Available quarter two 1981.) 

NAD Name and Address. $100. A mailing 



and addressing system to do all the typing and 
clerical work on lists — from ten names to ten 
thousand. 

LETTERIGHT. $200. A correspondence 
processing package that speeds letter writing AND 
merges your letters with names selected from your 
NAD list. 

It takes very few hours at today's salary 
levels to repay the cost of any of these systems. 
They'll do you far better than that. SSG's 
Productivity Software Packages will contribute 
immediately to the growth and success of 
your business. 

Please act now. Tear out this page. This 
coupon or a phone call will get you immediate 
relief from the white collar crime of , 
1981. We'll send you complete 
information. Or better 
still, answer your ques- 
tions immediately. 

Time's a-wasting. 
That's a crime. 



i \ 



□ Please rush me 
information on the SSG 
Business Productivity 
Packages for CP/ M-based 
computers. 

□ Please call me right away. 
Name 



Company . 

Address 

City State Zip 
Telephone ( 




L 



J 



CP/M is a registered trademark of Digital Research. NAD, Magic Worksheet are trademarks of SSG. 



Structured Systems Group 

5204 Claremont. Oakland /California 94R1A f41fil.S471fifi7 INCORPORATED! 



5204 Claremont, Oakland, 'California 9461 8 (415)5471567 



Circle 362 on inquiry card. 



BYTE August 1981 35 



The Smalltalk-80 System 



The Xerox Learning Research Group 

Xerox Palo Alto Research Center 

3333 Coyote Hill Rd 

Palo Alto CA 94304 



The Smalltalk-80 system represents the current state of 
the object-oriented point of view as it has been reduced to 
practice by the Xerox Learning Research Group. The 
Smalltalk-80 system is composed of objects that interact 
only by sending and receiving messages. The program- 
mer implements a system by describing messages to be 
sent and describing what happens when messages are 
received. 



The Smalltalk-80 system is the latest in a series of 
programming environments that have applied the 
object-oriented point of view more and more uniform- 
ly to the design and production of software systems. 
The fundamental ideas of objects, messages, and 
classes came from SIMULA. (See reference 1.) 
SIMULA allows users to create object-oriented sys- 
tems, but uses the standard data/ procedure-oriented 
ALGOL language to provide numbers, booleans, basic 
data structures, and control structures. The Flex 
system, the Smalltalk-72, Smalltalk-74, and 
Smalltalk-76 (see references 5, 2, and 4, respectively) 
systems extended the object-oriented point of view to 
an increasing number of the elements of a program- 
ming environment. For example, in Smalltalk-72, 
arithmetic, list structures, and control structures were 
represented as objects and messages, but classes were 
not. In Smalltalk-74, class descriptions as objects were 
introduced. The Smalltalk-76 system added the 
capability to express relationships between classes, 
and extended the object-oriented point of view to the 
programmer's interface. 

This article presents the central semantic features 
and most of the syntactic features of the Smalltalk-80 
system. It was prepared by Dave Robson and Adele 
Goldberg as scribes for the group effort of designing 
and implementing the system. Two forthcoming books 
(see reference 3) provide the full specification of the 
Smalltalk-80 system; in particular, the books describe 
the implementation of the interpreter and storage 
manager, and the graphical user interface. 



Sending Messages — Expressions 

Messages are described by expressions, which are se- 
quences of characters that conform to the syntax of the 
Smalltalk-80 programming language. A message-sending 
expression describes the receiver, selector, and arguments 
of the message. When an expression is evaluated, the 
message it describes is transmitted to its receiver. Here 
are several examples of expressions describing a message 
to an object. (Note: color has been added to help identify 
the receivers, selectors, and arguments in the following 
examples.) 



Key: □ Receiver 



1. 


frame 


center 






2. 


origin 


+ 


offset 



3. frame moveTo: newLocation 
4. 



list 


at: 


index 


put: 


element 



□ Selector 



□ Argument 



Each expression begins with a description of the 
receiver of the message. The receivers in these examples 
are described by variable names: frame, origin, frame, 
and list, respectively. Generally, at least one space must 
separate the parts of an expression. 

Messages without arguments are called unary 
messages. A unary message consists of a single identifier 
called a unary selector. The first example is a unary 
message whose selector is center. 

A binary message has a single argument and a selector 
that is one of a set of special single or double characters 
called binary selectors. For example, the common 
arithmetic symbols ( + , - , *, and /) are binary selectors; 
some comparison operations are represented as double 
characters (eg: = = for equivalence, ~ = for not 
equal). The second example is a binary message whose 
argument is offset. 

A keyword message has one or more arguments and a 
selector that is made up of a series of keywords, one 
preceding each argument. A keyword is an identifier with 



36 August 1981 © BYTE Publications Inc 



a trailing colon. The third example is a single-argument 
keyword message whose selector is moveTo: and whose 
argument is newLocation. The fourth example is a two- 
argument keyword message whose selector is made up of 
the keywords at: and put: and whose arguments are index 
and element. To talk about the selector of a multiple- 
argument keyword message, the keywords are con- 
catenated. So, the selector of the fourth example is 
at:put:. 

The message receivers and arguments in the examples 
are described by variable names. In addition, they can 
also be described with literals. The two most common 
kinds of literals are integers and strings. An integer literal 
is a sequence of digits that may be preceded by a minus 
sign (eg: 0, I, 156, —3, or 1 3772). A string literal is a se- 
quence of characters between single quotes (eg: 'hi', 
'John', or 'the Smalltalk-80 system'). A binary message 
with an integer literal as its receiver is 

45 + count 

A keyword message with a string literal as its argument is 

printer display: 'Monthly Payroll' 

When a message is sent, it invokes a method deter- 
mined by the class of the receiver. The invoked method 
will always return a result (an object). The result of a 
message can be used as a receiver or argument for 
another message. An example of a unary message 
describing the receiver of another unary message is 

window frame center 

Unary messages are parsed left to right. The first 
message in this example is the unary selector frame sent to 
the object named window. The unary message center is 
then sent to the result of the expression window frame 
(ie: the object returned from window's response to 
frame). 

Binary messages are also parsed left to right. An exam- 
ple of a binary message describing the receiver of another 
binary message is 

index + offset * 2 

The result of sending the binary message + offset to 
the object named index is the receiver for the binary 
message *2. All binary selectors have the same 
precedence; only the order in which they are written mat- 
ters. Parentheses can be used to change the order of 
evaluation. A message within parentheses is sent before 
any messages outside the parentheses. If the previous ex- 
ample were written 

index + (offset * 2) 

the result of the binary message * 2 to offset would be 



used as the argument of a binary message with receiver 
index and selector + . 

Unary messages take precedence over binary messages. 
If unary messages and binary messages appear together, 
the unary messages will be sent first. In the example 

frame center + window offset — index 

the result of the unary message center to frame is the 
receiver of the binary message whose selector is + and 
whose argument is the result of the unary message offset 
to window. The result of the + message is, in turn, the 
receiver of the binary message - index. Parentheses can 
be used to explicitly show the order of evaluation, eg: 
((frame center) + (window offset)) - index. Parentheses 
can also be used to alter the order of evaluation. In the 
example 

(center + offset) x 

the binary message + offset would be sent before the 
unary message x. 

Whenever keywords appear in an unparenthesized 
message, they compose a single selector. The example 

window showText: Title' inFont: helvetica 
indented: 15 

is a single message whose selector is showText: inFont. in- 
dented:. Because of this concatenation, there is no left-to- 
right parsing rule for keyword messages. If a keyword 
message is to be used as a receiver or argument of another 
keyword message, it must be parenthesized. The expres- 
sion 

frame scale: (factor max: 5) 

describes two keyword messages. The result of the ex- 
pression factor max: 5 is the argument for the scale: 
message to frame. 

Binary messages take precedence over keyword 
messages. When unary, binary, and keyword messages 
appear in the same expression without parentheses, the 
unary messages are sent first, the binary messages next, 
and the keyword messages last. The example 

bigFrame height: smallFrame height * 2 

is evaluated as if it were parenthesized as follows: 

bigFrame height: ((smallFrame height) * 2) 

A cascaded message expression describes a sequence of 
messages to be sent to the same object. A simple message 
expression is a description of the receiver (ie: a variable 
name, literal, or expression) followed by a message (ie: a 
unary selector, a binary selector and argument, or a set of 
keywords and arguments). A cascaded message expres- 



August 1981 © BYTE Publications Inc 37 



digits 



digit 




Figure 1: Syntax diagrams for the SmaUtalk-80 language. 



sion is a single description of a receiver followed by 
several messages separated by semicolons. For example, 
in the expression 

printer newLine; print: reportTitle; space; 
print: Date today. 

four messages are sent to the object named printer. The 
selectors of the four messages are newLine, print:, space, 
and print:. In the expression 

window frame center: pointer location; 
width: border + contents; clear 

three messages are sent to the object returned from the 
frame message to window. The selectors of the three 
messages are center:, width:, and clear. Without 
cascading, this would have been three expressions 

window frame center: pointer location, 
window frame width: border + contents, 
window frame clear 

Assigning Variables 

The value of a variable can be used as the receiver or 



argument of a message by including its name in an ex- 
pression. The value of a variable can be changed with an 
assignment expression. An assignment expression con- 
sists of a variable name followed by a left arrow (— ) 
followed by the description of an object. When an assign- 
ment expression is evaluated, the variable named to the 
left of the arrow assumes the value of the object described 
to the right of the arrow. The new value can be described 
by a variable name, a literal, or a message-sending ex- 
pression. Examples of assignments are 

center — origin 

index — 

index — index + 1 

index — index + 1 max: limit 

In the last example, the message + I is sent to the 
value of the variable index, the message max: limit is sent 
to the result of the -I- 1 message, and the result of the 
max: limit message becomes the new value of the variable 
index. 

A number of variables can be assigned in the same ex- 
pression by including several variable names with left ar- 
rows. The expression 

start — index — 

makes the value of both start and index be 0. 



38 August 1981 © BYTE Publications Inc 




symbol 



identifier 



binary selector 



keyword 



symbol constant 



symbol 



character 

constant 



<§> 






string 



o 



— 



o 




<<> 



r^-^Q-^ 



symbol 



string 



character constant 



array constant 



-(#> 



literal 






number 












* 












symbol constant 








1 ' 












character constant 


















string 


















array constant 













variable name 



identifier 



unary selector 



binary 
selector 



<E> 



7 >- 



special character 



special character 



keyw 



identifier 



o- 



Figure 1 continued on page 40 



The syntax table in figure 1 is a diagram for parsing 
well-formed Smalltalk-80 expressions. This table does 
not specify how spaces are treated. Spaces must not ap- 
pear between digits and characters that make up a single 
token, nor within the specification of a number. Spaces 
must appear 

• between a sequence of identifiers used as variables or 
unary selectors 

• between the elements of an array in an array constant 

• on either side of a keyword in a keyword expression 

Spaces may optionally be included between any other 
elements in an expression. A carriage return or tab has 
the same syntactic function as a space. 

Receiving Messages — Classes 

A class describes a set of objects called its instances. 
Each instance has a set of instance variables. The class 
provides a set of names that are used to refer to these 
variables. A class also provides a set of methods that 
describe what happens when its instances receive mes- 



sages. A method describes a sequence of actions to be 
taken when a message with a particular selector is re- 
ceived by an instance of a particular class. These actions 
consist of sending other messages, assigning variables, 
and returning a value to the original message. 

To create a new application, modify an existing ap- 
plication, or to modify the Smalltalk-80 system itself, a 
programmer creates and modifies classes that describe 
objects. The most profitable way to manipulate a class is 
with an interactive system. Much of the development of 
the Smalltalk-80 system has been the creation of ap- 
propriate software-development tools. (See Larry Tesler's 
article "The Smalltalk Environment," on page 90.) Unfor- 
tunately, to describe a system on paper, a noninteractive 
linear mode of presentation is needed. To this end, a 
basic class template is provided as a simple textual 
representation of a class. The basic class template in table 
1 shows the name of the class, the names of the instance 
variables, and the set of methods used for responding to 
messages. 

In table 1, the italicized elements will be replaced by 
the specific identifiers or methods appropriate to the 



August 1981 © BYTE Publications Inc 39 



Figure 1 continued: 



1 <i> 



variable name 



<D J 



unary object description 



unary expression 



binary object description 



unary object description 



binary expression 



unary expression 



unary object description 



unary selector 



binary expression 



binary object description 



binary selector 



unary object description 



keyword expression 



binary object description 



rr 



keyword 



binary object description 



] — * 



simple message expression 



unary expression 



binary expression 



keyword expression 



cascaded message expression 



simple message 



<^ 



unary selector 



binary selector 



keyword 



unary object description 



binary object description 



block 



temporaries 



expression 




















primary 












L 




.(7) 


r 






, 




* 
















variable name 






simple message expression 












.l~-j 


* 














: *- 










L 



























<£> 



<D- 



<!> 



O 




variable name 



variable name 



Z^ 



T~~ 



Q ^ ■ 



<]> 



J~ 



0- 



message pattern 



unary selector 



binary selector 



rz 



keyword 



variable name 



variable name 



r 



method 



message pattern 



temporaries 



statements 



I 



40 August 1981 © BYTE Publications Inc 



class name 


identifier 


instance variable names 


identifier identifier identifier 


methods 




method 
method 
method 

Table 1: The basic class template. 



class. Names of classes begin with an uppercase letter, 
and names of variables begin with a lowercase letter. As 
an example, figure 2 shows the basic template form of a 
class named Point whose instances represent points in a 
two-dimensional coordinate system. Each instance has an 
instance variable named x that represents its horizontal 
coordinate and an instance variable named y that 
represents its vertical coordinate. Each instance can res- 
pond to messages that initialize its two instance variables, 
request the value of either variable, and perform simple 



arithmetic. The details of methods (in particular, the use 
of '|', '.' and T) are the subject of our next discussion. 

Methods 

A method has three parts: 

• a message pattern 

• some temporary variable names 

• some expressions 

The three parts of a method are separated by vertical 
bars (|). The message pattern consists of a selector and 
names for the arguments. The expressions are separated 
by periods (.) and the last one may be preceded by an up 
arrow (t). In the method for selector + in figure 2, the 
message pattern is + aPoint, the temporary variable 
names are sumX and sumY, and there are three expres- 
sions, the last one preceded by an t . 

Line breaks have no significance in methods; format- 
ting is used only for purposes of aesthetics. The vertical 
bars and periods are delimiters of significance. 

As stated earlier, each message pattern contains a selec- 
tor. When a message is received by an instance, the 
method whose message pattern contains the same selector 
will be executed. For example, suppose that offset were an 




class name 



instance variable names 



methods 



Point 



x: xCoordfnate y: yCoordinate 

x — xCoordinate 
y — yCoordinate 

x| I 
Ix 



'y 

+ aPolntl l [sumX sumY 



sumX 


- x + 


a Point x. 




sumY 


- y + 


aPointy. 




t Point newX: 


sumX Y: 


sumY 



- aPoint | differenceX differenceY 
differenceX — x — aPoint x. 
differenceY — y - aPoint y. 
(Point newX: differenceX Y: differenceY 

* scale-Factor |scaledX scaledY 
scaledX — x * scaleFactor. 
scaledY — y * scaleFactor. 
t Point newX: scaledX Y: scaledY 



Figure 2: Illustrated class template for the class Point 




August 1981 © BYTE Publications Inc 41 



class name 


DepositRecord 


superclass 


Object 


instance variable names 


date amount 


methods 




of: depositAmount on: depositDate 


date — depositDate. 
amount — depositAmount 


amount | 

t amount 


balanceChange | 

\ amount 


Table 2: Class template for class DepositRecord. 



class name 


CheckRecord 


superclass 


DepositRecord 


instance variable names 


number 


methods 




number: checklNJumber for: checkAmount on: 
checkDate 

number — checkNumber. 
date — checkDate. 
amount — checkAmount 


of: anAmount on: aDate 

self error: 

'Check records are initialized with 
number.for.on:' 


balanceChange | | t — amount 


Table 3: Class template for class CheckRecord. 



instance of Point in the expression 

offset + frame center 

The method whose message pattern is + a Point would 
be executed in response. For selectors that take 
arguments, the message pattern also contains argument 
names wherever arguments would appear in a message. 
When a method is invoked by a message, the argument 
names in the method are used to refer to the actual 
arguments of that message. In the above example, aPoint 
would refer to the result of frame center. 



class name 


identifier 


superclass 


identifier 


instance variable names 


identifier identifier identifier 


class variable names 


identifier identifier identifier 


class messages and methods 




method 
method 
method 




instance messages and methods 




method 
method 
method 

Table 4: The ft 


ill class template. 



Following the message pattern, a method can contain 
some temporary variable names between vertical bars. 
When a method is executed, a set of variables is created 
that can be accessed by the temporary variable names. 
These temporary variables exist only while the method is 
in the process of execution. 

Following the second vertical bar, a method contains a 
sequence of expressions separated by periods. When a 
method is executed, these expressions are evaluated se- 
quentially. 

So, there are three steps in receiving a message, cor- 
responding to the three parts of the method. Smalltalk 
will 

1. Find the method whose message pattern has the same 
selector as the message and create a set of variables for 
the argument values. 

2. Create a set of temporary variables corresponding to 
the names between the vertical bars. 

3. Evaluate the expressions in the method sequentially. 

Six kinds of variables can be used in a method's expres- 
sions: 

• the instance variables of the receiver 

• the pseudo-variable self 

• the message arguments 

• temporary variables 

• class variables 

• global variables 

The instance variables are named in the message 
receiver's class. In the example, x and y refer to the values 
of the instance variables of offset. 

There is an important pseudo-variable available in 
every method, which is named self, self refers to the 



42 August 1981 © BYTE Publications Inc 



receiver of the message that invoked the method. It is 
called a pseudo-variable because its value can be accessed 
like a variable, but its value cannot be changed using an 
assignment expression. In the example, self refers to the 
same object as offset during the execution of the method 
associated with + . 

Arguments and temporary variables are similar, in that 
the names for both are declared in the method itself and 
they both exist only during the method's execution. 
However, unlike arguments, temporary variables are not 
automatically initialized. The values of temporary 
variables can be changed with an assignment expression. 

Class variables are shared by all instances and the class 
itself. Names for the class variables are shown in the full 
class template in an entry called "class variable names" 
(see table 4). Although they are variables and their values 
can be changed, they are typically treated as constants, 
initialized when the class is created, and then simply used 
by the instances. For example, if the class of floating- 
point numbers wanted to provide trigonometric func- 
tions, it might want to define a variable called pi to be 
used in any of its methods. 

Global variables are shared by all objects. A global dic- 
tionary, called Smalltalk, holds the names and values of 
these variables. The classes in the system, for example, 
are the values of global variables whose names are the 
class names. With the exception of variables used to 
reference system resources, few global variables exist in 
the Smalltalk-80 system. Programming style that depends 
on user-defined globals is generally discouraged. 

If the last expression in a method is preceded by an t , 
the message that invoked the method takes on the value 
of this expression. If an t does not precede the last ex- 
pression, the value of the message is simply the receiver 
of the message. For example, the x:y: message to a Point 
(see figure 2) behaves as if it had been written 

x: xCoordlnate y: yCoordlnate | | 

x — xCoordinate. 
y — yCoordinate. 
t self 

Methods can contain comments anywhere. A comment 
is a sequence of characters delimited by double quotes. 
Two consecutive double quotes are used to embed a 
double quote within a comment. The methods in class 
Point were purposely written in a verbose style to provide 
examples. The messages for + could have been written 

+ aPoint | | 

t Point newX: x + aPoint x Y: y + aPoint y 

The basic class template presents only the most important 
attributes of a class. The complete description of a class is 
provided by the full class template, described in the next 
section. 

Inheritance 

The basic template allows a class to be described in- 



dependently of other classes. It ignores inheritance 
among classes. The full class template, however, takes in- 
heritance into account. (See table 4.) With it, a class can 
be described as a modification of another class called its 
superclass . All classes that modify a particular class are 
called its subclasses. A subclass inherits the instance 
variable names and methods of its superclass. A subclass 
can also add instance variable names and methods to 
those it inherits. The instance variable names added by 
the subclass must differ from the instance variable names 
of the superclass. The subclass can override a method in 
the superclass by adding a message with the same selec- 
tor. Instances of the subclass will execute the method 
found in the subclass rather than the method inherited 
from the superclass. 

To assemble the complete description of a class, it is 
necessary to look at its superclass, its superclass's 
superclass, and so on, until a class with no superclass is 
encountered. There is only one such class in the system 
(ie: without a superclass), and its class name is Object. 
All classes ultimately inherit methods from Object. Ob- 
ject has no instance variables. The set of classes linked 
through the superclass relation is called a superclass 
chain. The full class template has an entry called 
"superclass" that specifies the initial link on the class's 
superclass chain. 

As an example, we might describe a class, 
DepositRecord, whose instances are records of bank ac- 
count deposits. Each instance has two instance variables 
representing the date and amount of the deposit. The 
class template is shown in table 2. 



class name 



superclass 



instance variable names 



class messages and methods 



CheckRecord 



DepositRecord 



number 



number: checkNumber for: checkAmount on: 
checkDate | | 

t self new number: checkNumber 
for: checkAmount 
on: checkDate 



instance messages and methods 



number: checkNumber for: checkAmount on: 
checkDate | | 

super of: checkAmount on: checkDate. 
number — checkNumber 

of: anAmount on: aDate | | 

self error: 'Check records are initialized with 
number:for:on:' 

balanceChange [ | T — amount 
Table 5: Full class template for class CheckRecord. 



August 1981 © BYTE Publications Inc 43 



A class, CheckRecord, whose instances are records of 
checks written on an account is a subclass of 
DepositRecord; this new class adds an instance variable 
that represents the check number. The class template is 
shown in table 3. 

An instance of CheckRecord has three instance 
variables. It inherits the amount message, adds the 
number.for.on: message, and overrides the 
balanceChange and of:on: messages. The of.on: method 
contains a single expression in which the message error: 
'Check records are initialized with number:for:on:' is sent 
to the pseudo-variable self. The method for error: is found 
in the superclass of DepositRecord, which is the class Ob- 
ject; the response is to stop execution and to display the 
string literal argument to the user. 

An additional pseudo-variable available in a method's 



class name 



superclass 



instance variable names 



class variable names 



class messages and methods 



Point 



Object 



xy 



P' 



instance creation 

newX: xValue Y: yValue | | 

t self new x: xValue 
y: yValue 
newRadius: radius Angle: angle 

t self new x: radius * angle sin 
y: radius * angle cos 

class initialization 
setPI | | pi - 3.14159 



instance messages and methods 



accessing 

x: xCoordlnate y: yCoordlnate | | 

x — xCoordinate. 
y — yCoordinate 
xj | tx 

y I I ty 

radius | | t((x * x) + (y * y)) squareRoot 

angle | | t(x/y) arctan 

arithmetic 

+ aPoInt | | t Point newX: x + aPoint x 

Y:y + aPointy 
- aPoint | | t Point newX: x - aPoint x 

Y: y — aPoint y 
* scaleFactor | | t Point newX: x * scaleFactor 

Y: y * scaleFactor 
clrcleArea | r | 
r — self radius, 
t pi * r * r 

Table 6: Full class template for class Point. 



expressions is super. It allows a subclass to access the 
methods in its superclass that have been overridden in the 
subclass description. The use of super as the receiver of a 
message has the same effect as the use of self, except that 
the search for the appropriate message starts in the 
superclass, not the class, of the receiver. 

For example, the method associated with 
number:for:on in CheckRecord might have been defined 
as 

number: checklMumber for: checkAmount on: 
checkDate | | 

super of: checkAmount on: checkDate. 

number — checkNumber 

Metaclasses 

Since a class is an object, there is a different class that 
describes it. A class that describes a class is called a 
metaclass. Thus, a class has its own instance variables 
that represent the description of its instances; it responds 
to messages that provide for the initialization and 
modification of this description. In particular, a class 
responds to a message that creates a new instance. The 
unary message new creates a new instance whose in- 
stance variables are uninitialized. The object nil indicates 
an uninitialized value. 

The classes in the system might all be instances of the 
same class. However, each class typically uses a slightly 
different message protocol to create initialized instances. 
For example, the last expression in the method associated 
with + in class Point (see figure 2) was 

Point newX: sumX Y: sumY 

newX.Y: is a message to Point, asking it to create a new 
instance with sumX and sumY as the values of the new in- 
stance's instance variables. The newX:Y: message would 
not mean anything to another class, such as 
DepositRecord or CheckRecord. So, these three classes 
can't be instances of the same class. All classes have a lot 
in common, so their classes are all subclasses of the same 
class. This class is named Class. The subclasses of Class 
are called metaclasses. 

The newX.Y: message in Point's metaclass might be im- 
plemented as 

newX: xValue Y: yValue | | 

t self new x: xValue y: yValue 

The new message was inherited by Point's metaclass from 
Class. One reason for having metaclasses is to have a 
special set of methods for each class, primarily messages 
for initializing class variables and new instances. These 
methods are displayed in the full class-template form 
shown in table 4; they are distinguished from the 
methods for messages to the instances of the class. The 
two categories are "class messages and methods" and "in- 
stance messages and methods," respectively. Methods in 



44 August 1981 © BYTE Publications Inc 



the category "class messages and methods" are associated 
with the metaclass; those in "instance messages and 
methods" are associated with the class. 

If there are no class variables for the class, the "class 
variable name" entry is omitted. So, CheckRecord might 
be described as shown in table 5. 

It is often desirable to create subcategories within the 
categories "class messages and methods" and "instance 
messages and methods." Moreover, the order in which 
the categories or subcategories are listed is of no 
significance. (The notion of categories is simply a pretty 
printing" technique; it has no semantic significance.) 

Returning to the example of class Point, if the instance 
methods of class Point include subcategories accessing 
and arithmetic , the template for Point might appear as 
shown in table 6. 

When the class Point is defined, the expression 

Point setPi 

should be evaluated in order to set the value of the single 
class variable. 

A Point might be created and given a name by 
evaluating the expression 

testPoint - Point newX: 420 Y: 26 



Another example of a message with a primitive 
response is a message with the selector + sent to a 

Smalllnteger 

+ aNumber | | < primitive > 

self error: 'Smalllnteger addition has failed' 

One reason this primitive might fail to produce a result 
is that the argument is not a Smalllnteger. In the example, 
this would produce an error report. In the actual 
Smalltalk-80 system, an attempt is made to check and see 
if the argument were another kind of number for which a 
result could be produced. 

Indexed Instance Variables 

An object's instance variables are usually given names 
by its class. The names are used in methods of the class to 
refer to the values of the instance variables. Some objects 
also have a set of instance variables that have no names 
and can only be accessed by messages. The instance vari- 
ables are referred to by an integral index. Indexable ob- 
jects are used to implement the classes in the system that 
represent collections of other objects, such as arrays and 
strings. 

The messages to access indexed instance variables have 



The new Point, testPoint, can then be sent the message 
circleArea: 

testPoint circleArea 

or used in a more complex expression: 

(testPoint * 2) circleArea 

Primitive Routines 

The response to some messages in the system may be 
performed by a primitive routine (written in the im- 
plementation language of the machine) rather than by 
evaluating the expressions in a method. The methods for 
these messages indicate the presence of such a primitive 
routine by including < primitive > before the first expres- 
sion in the method. A major use of primitive methods is 
to interact with the machine's input/output devices. 

An example of a primitive method is the new message 
to classes, which returns a new instance of the receiver. 

new | | < primitive > 

This particular primitive routine always produces a 
result. If there are situations in which a primitive routine 
cannot produce a result, the method will also contain 
some expressions. If the primitive routine is successful in 
responding to the message, it will return a value and the 
expressions in the method will not be evaluated. If the 
primitive routine encounters difficulty, the expressions 
will be evaluated as though the primitive routine had not 
been specified. 



class name 


Array 


superclass 


IndexedCollection 


indexable instance variables 




class messages and methods 


instance creation 
with: anElement | | 

t (self new: 1) at: 1 put: anElement 
with: firstElement with: secondElement 

an Array | 
anArray — self new: 2. 
anArray at: 1 put: firstElement. 
anArray at: 2 put: secondElement. 
t anArray 


instance messages and methods 




accessing 

at: anlnteger | 

< primitive > 

self error: 'index ou 

at: anlnteger put: ai 

< primitive > 

self error: 'index ou 

funny stuff 
embed 

t Array with: self 

Table 7: Full class tem\ 


: of range' 
lEIement | | 

r of range' 

ilate for class Array. 



August 1981 © BYTE Publications Inc 45 



selectors at: and at:put:. For example 

list at: 1 

returns the first indexed instance variable of list. The ex- 
ample 

list at: 4 put: element 

stores element as the value of the fourth indexed instance 
variable of list. The at: and at.put: messages invoke 
primitive routines to load or store the value of the in- 
dicated variable. The legal indices run from one to the 
number of indexable variables in the instance. The at: and 
at: put: messages are defined in class Object and, 
therefore, can be understood by all objects; however, on- 
ly certain classes will create instances with indexable in- 
stance variables. These classes will have an additional 
line in the class template indicating that the instances con- 
tain indexable instance variables. As an example, we 
show a part of the template for class Array in table 7. 

Each instance of a class that allows indexable instance 
variables may have a different number of them; such in- 
stances are created using the new: message to a class, 
whose argument tells the number of indexable variables. 
The number of indexable instance variables an instance 
has can be found by sending it the message size. A class 
whose instances have indexable instance variables can 
also have named instance variables. All instances of any 
class will have the same number of named instance 
variables. 

Control Structures and Blocks 

The two control structures in the Smalltalk-80 system 
described so far are 

• the sequential execution of expressions in a method 

• the sending of messages that invoke other methods that 
eventually return values 

All other control structures are based on objects called 
blocks. Like a method, a block is a sequence of expres- 
sions, the last of which can be preceded by an up arrow 
(f). The expressions are delimited by periods; they may 
be preceded by one or more identifiers with leading co- 
lons. These identifiers are the block arguments. Block 
arguments are separated from expressions by a vertical 
bar. 

Whenever square brackets are encountered in a 
method, a block is created. Evaluation of the expressions 
inside the square brackets is deferred until the block is 
sent the message value or a message whose selector is a 
concatenation of one or more occurrences of the keyword 
value:. Control structures are implemented as messages 
with receivers or arguments that are blocks. The methods 
for carrying out these control-structure messages involve 
sending the blocks patterns of value messages. 

In the Smalltalk-80 system, there are two types of 



primitive control messages: conditional selection of 
blocks, ifTrue:ifFalse:, and conditional iteration of blocks, 
whileTrue: and whileFalse:. 

The representation of conditions in the Smalltalk-80 
system uses distinguished boolean objects named false 
and true. The first type of primitive control message pro- 
vides for conditional selection of a block to be executed. 
This is similar to the IF . . . THEN . . . ELSE of ALGOL- 
like languages. The expression 

queue isEmpty ifTrue: [index — 0] 

ifFalse: [index — queue next] 

evaluates the expressions in the first block if the receiver 
is true and evaluates the expressions in the second block if 
the receiver is false. Two other forms of conditional selec- 
tion provide only one alternative 

queue isEmpty ifTrue: [index — 0]. 

queue isEmpty ifFalse: [index — queue next]. 

When ifTrue: is sent to false, it returns immediately 
without executing the block. When ifFalse: is sent to true, 
the block is not executed. 

The second type of primitive control message repeated- 
ly evaluates the expressions in a block as long as some 
condition holds. This is similar to the WHILE and UNTIL 
statements in ALGOL-like languages. This type of con- 
trol message is a message to a block; the receiver, the 
block, evaluates the expressions it contains and deter- 
mines whether or not to continue on the basis of the value 
of the last expression. The first form of this control 
message has selector whileTrue:. The method for 
whileTrue: repeatedly executes the argument block as 
long as the receiver's value is true. For example, 

[index < = limit] whileTrue: [self process: list at: index. 

index — index + 1 ] 

The binary message < = is understood by objects 
representing magnitudes. The value returned is the result 
of comparing whether the receiver is less than or equal to 
(< =) the argument. 

The second conditional iteration message has selector 
whileFalse:. The method for whileFalse: repeatedly ex- 
ecutes the argument block as long as the receiver's value 
is false. For example, 

[queue isEmpty] whileFalse: [self process: queue next] 

The messages whileTrue and whileFalse to a block pro- 
vide a shorthand notation for messages of the form 
whileTrue: aBlock and whileFalse: aBlock, if the argument 
aBlock is an empty block. 

Block arguments allow one or more of the variables in- 
side the block to be given new values each time the block 
is executed. Instead of sending the block the message 
value, messages with selectors value: or value:value:, and 



46 August 1981 © BYTE Publications Inc 



so on, are sent to the block. The arguments of the value: 
messages are assigned to the block arguments (in order) 
before the block expressions are evaluated. 

As an example, classes with indexed instance variables 
could implement a message with selector do: that takes a 
block as an argument and executes it once for every in- 
dexed variable. The block has a single block argument; 
the value of the appropriate indexed variable is passed to 
it for each execution. An example of the use of such a 
message is 

list do: [ .element | self process: element] 

The message might be implemented as 

do: aBlock | index | 
index — I . 

[index < = self size] whileTrue: 
[aBlock value: (self at: index), 
index — index + 1] 

Similar control messages can be implemented for any 
class. As an example, a simple repetition could be pro- 
vided by a timesRepeat: aBlock message to instances of 
class Integer 

timesRepeat: aBlock | index | 
index — I . 

[index < = self] whileTrue: 
[aBlock value, 
index — index + 1] 

Examples of implementing other control messages are 
given in L Peter Deutsch's article "Building Control Struc- 
tures in the Smalltalk-80 System," on page 322. 

The Smalltalk-80 System: Basic Classes 

The Smalltalk-80 language provides a uniform syntax 
for retrieving objects, sending messages, and defining 
classes. The Smalltalk-80 system is a complete pro- 
gramming environment that includes many actual classes 
and instances. In support of the uniform syntax, this 
system includes class descriptions for Object, Class, 
Message, CompiledMethod, and Context, whose 
subclasses are BlockContext and MethodContext. Multi- 
ple independent processes are provided by classes Pro- 
cessorScheduler, Process, and Semaphore. The special 
object nil is the only instance of class UndefinedObject. 
These classes comprise the kernel Smalltalk-80 system. 

The system also includes class descriptions to support 
basic data structures; these are numerical and collection 
classes. The class Number specifies the protocol ap- 
propriate for all numerical objects. Its subclasses provide 
specific representations of numbers. The subclasses are 
Float, Fraction, and Integer. For a variety of reasons, 
there are both Smalllntegers and Largelntegers; of these, 
there are LargePositivelntegers and LargeNega- 
tivelntegers. 



Class Collection specifies protocol appropriate to ob- 
jects representing collections of objects. These include 
Bag, Set, OrderedCollection, LinkedList, MappedCollec- 
tion, SortedCollection, and IndexedCollection. The latter 
provides protocol for objects with indexable instance 
variables. It has subclasses String and Array. Elements of a 
string are instances of class Character; bytes are stored in 
instances of ByteArray. A subclass of String is Symbol; a 
subclass of Set is Dictionary (a set of Associations). 

Interval is a subclass of Collection with elements 
representing an arithmetic progression. Intervals can be 
created by sending the message to: or to:by: to Integer. 
So, the expressions 1 to: 5 by: 1 and 1 to: 5 each create a 
new Interval representing 1 , 2, 3, 4, 5. As a Collection, In- 
terval responds to the enumeration message do:. For ex- 
ample, in 

(1 to: 5) do: [:index | anArray at: index put: index * 2] 

the block argument index takes on successive values 1 , 2, 
3, 4, 5. 

For programmer convenience, an Integer also responds 
to the messages to.do: and to.by.do:, allowing the paren- 
theses in interval enumeration expressions to be omitted. 

The ability to stream over indexed or ordered collec- 
tions is provided by a hierarchy based on class Stream, in- 
cluding ReadStream, WriteStream, and ReadAnd- 
WriteStream. A file system, local or remote, is then im- 
plementable as a subclass of these kinds of Streams. 

Since instances of the system classes described above 
are used in the implementation of all applications, an 
understanding of their message protocol is as necessary to 
understanding an implementation as an understanding of 
the language syntax. These system classes are fully 
described in the forthcoming Smalltalk books. 

In addition to the basic data-structure classes, the 
Smalltalk-80 system includes class descriptions to sup- 
port interactive graphics (forms and images and image 
editors, text and text editors), networking, standard files, 
and hard-copy printing. A complete Smalltalk-80 system 
contains about sixty class definitions, not including a 
variety of windows or views, menus, scrollbars, and the 
metaclasses. Many of these are discussed in companion 
articles in this issue. (See Daniel H H Ingalls's 'The 
Design Principles Behind Smalltalk," page 286, and Larry 
Tesler's "The Smalltalk Environment," page 90.) 

The important thing to note is that each of these class 
descriptions is implemented in the Smalltalk-80 language 
itself. Each can be examined and modified by the pro- 
grammer. Some of the class descriptions contain methods 
that reference primitive methods; only these methods are 
implemented in the machine language of the implementa- 
tion machine. It is a fundamental part of the philosophy 
of the system design that the programmer have such com- 
plete access. In this way, system designers, such as 
members of the Xerox Learning Research Group, are able 
to build the next Smalltalk in the complete context of 
Smalltalk itself. ■ 



August 1981 © BYTE Publications lnc 47 



References 



Birtwistle, Graham; Ole-Johan Dahl; Bjorn Myhrhaug; and 
Kristen Nygaard. Simula Begin. Philadelphia: Auerbach, 1973. 
Goldberg, Adele and Alan Kay, editors. Smalltalk-72 Instruc- 
tional Manual. Xerox PARC technical report, March 1976 (out 
of print). 

Goldberg, Adele; David Robson; and Daniel H H Ingalls. 
Smalltalk-80: The Language and Its Implementation and 



Smalltalk-80: The Interactive Programming Environment, 1981 
(books forthcoming). 

Ingalls, Daniel H H. "The Smalltalk-76 Programming System: 
Design and Implementation." In Proceedings of the Principles 
of Programming Languages Symposium, January 1978. 
Kay, Alan, The Reactive Engine. Ph.D. Thesis, University of 
Utah, September, 1969 (University Microfilms). 



Glossary 

Editor's Note: This glossary provides concise definitions for many of the keywords and concepts related to 
Smalltalk-80. These definitions will be most useful if you first read the introductory Smalltalk articles. . . . GW 



General Terminology 

object a package of information and 

descriptions of its manipulation 

message a specification of one of an object's 

manipulations 

method a procedure-like entity; the descrip- 

tion of a sequence of actions to be 
taken when a message is received by 
an object 

class a description of one or more similar 

objects 

instance an object described by a particular 

class 

method die- a set of associations between 

tionary message selectors and methods; in- 

cluded in each class description 

metaclass a class whose (single) instance is 

itself a class 

subclass a class that is created by sharing the 

description of another class, often 
modifying some aspects of that 
description 



Syntax Terminology 

message re- the object to be manipulated, ac- 

ceiver cording to a message 

message sender the object requesting a manipulation 

message selector a symbolic name that describes a 
desired manipulation of an object 
one of the objects specified in a 
message that provides information 
needed so that a message receiver 
can be manipulated appropriately 
a message without arguments 
a message with a single argument 
and a selector that is one of a set of 
special single or double characters 
a message that has one or more 
arguments and a selector made up of 
a series of identifiers with trailing 
colons, one preceding each argu- 
ment 



message 
argument 



unary message 
binary message 



keyword mes- 
sage 



block 



instance vari- 
able 

class variable 

named variable 

indexed variable 



global or pool 
variable 



temporary vari- 
able 

pseudo-variable 



nil 



field 



bytecode 

object pointer 
reference count 



a literal method; an object repre- 
senting a sequence of actions to be 
taken at a later time, upon receiving 
an "evaluation" message (such as 
one with selector value or value:) 

Semantics 

a variable that is information used 
to distinguish an instance from 
other instances of the same class 
a variable shared by all instances of 
a class and the class itself 
an instance variable that is given a 
name in the class of the instance; the 
name is used in methods of the class 
an instance variable with no name, 
accessed by message only; referred 
to by an integer (an index) 
a variable shared by instances of 
several classes; a system example is 
Smalltalk, a dictionary that includes 
references to all the defined classes 
a variable that exists only while the 
method in which it is declared is in 
the process of execution 
a variable available in every method 
without special declaration, but 
whose value cannot be changed us- 
ing an assignment. System examples 
are self, super and thisContext. 
a special object, the only instance of 
class UndefinedObject 



Implementation Terminology 

the memory space in which the 
value of an object's variable is 
stored 

a machine instruction for the virtual 
machine 

a reference to an object 
of an object, is the number of ob- 
jects that point to it (ie: that contain 
its object pointer) 



48 August 1981 © BYTE Publications lnc 



Circle 336 on inquiry card. 



Robots: 

the future arrivt 




(t'^_ 




- *\ 



Rw V !■. 1 
%l IINMEY 



'An asteroid mining team of 
the 21st century. Not a human team, but 
a team of self-replicating intelligent robots. 



1961 Enter the first industrial robot— blind and unable 
to respond to its environment— capable only of 
unvarying, repetitive tasks. 

1975 Robots with touch sensing begin to do precision 
assembly. 

1981 Robots are no longer blind — silhouette vision 
arrives. 

1982 Robots feel with an artificial skin. 

1986 Robots adapt to the unstructured human envi- 
ronment. 

1987 Reasoning robots hear and speak human 
speech. 

The advances that make th 

Robotics Age Magazine, 



1990 Walking robots explore the surface of Mars. 
1996 Orbiting robot factories construct solar power 

stations. 
2000 and beyond: Self-replicating robots terraform 
the cosmos. 

This future is unfolding today exclusively in 
the pages of Robotics Age. Every two 
months we bring you the latest state-of- 
the-art robotic technology— from artificial 
intelligence, to automated robotic 
factories, to personal robots. 
Join us in the robotics age. 

is a picture of our future are happening today. 

Post Office Box 423, Tujunga, California 91042 




Ciarcia's Circuit Cellar 



Build a Z8-Based Control 
Computer with BASIC, Part 2 



The Z8-BASIC Microcomputer 
system described in this two-part 
article is unlike any computer pre- 
sently available for dedicated control 
applications. Based on a single-chip 
Zilog Z8 microcomputer with an on- 
board tiny-BASIC interpreter, this 
unit offers an extraordinary amount 
of power in a very small package. It is 
no longer necessary to use expensive 
program-development systems. Com- 
puter control can now be applied to 
many areas where it was not 
previously cost-effective. 

The Z8-BASIC Microcomputer is 
intended for use as an intelligent con- 
troller, easy to program and inexpen- 
sive enough to dedicate to specific 
control tasks. It can also serve as a 
low-cost tiny-BASIC computer for 
general interest. Technical specifica- 
tions for the unit are shown in the "At 
a Glance" box on page 52. 

Last month I described the design 
of the Z8-BASIC Microcomputer 
hardware and the architectures of the 
Z8671 microcomputer component 
and Z6132 32 K-bit Quasi-Static 
Memory. This month I'd like to con- 
tinue the description of the tiny- 
BASIC interpreter, discuss how the 
BASIC program is stored in memory, 
and demonstrate a few simple appli- 
cations. 

Process-Control BASIC 

The BASIC interpreter contained in 



Copyright © 1981 by Steven A Garcia. 
All rights reserved. 



Steve Garcia 

POB 582 

Glastonbury CT 06033 



ROM (read-only memory) within the 
Z8671 is officially called the Zilog 
BASIC/Debug monitor. It is essen- 
tially a 2 K-byte integer BASIC which 
has been optimized for speed and 
flexibility in process-control applica- 
tions. 



There are 15 keywords: GOTO, 
GO@, USR, GOSUB, IF... THEN, 
INPUT, IN, LET, LIST, NEW, REM, 
RUN, RETURN, STOP, PRINT (and 
PRINT HEX). Twenty-six numeric 
variables (A through Z) are sup- 
ported; and numbers can be ex- 




Photo 1: Z8-B ASIC Microcomputer. With the two "RAM" jumpers installed, it is 
configured to operate programs residing in the Z6132 Quasi-Static Memory. A 
four-position DIP (dual-inline pin) switch (at upper right) sets the serial data rate 
for communication with a user terminal connected to the DB-25S RS-232C con- 
nector on the top center. The reset button is on the top left. 



50 August 1981 © BYTE Publications Inc 



Circle 13 on inquiry card. 



NEVER UNDERSOLD. 



Thats right. If you can find a lower 
price in this magazine WE WILL BEAT IT! Period.* 



S-100 HARDWARE 



Versa Floppy I kit $259 

Versa Floppy II kit $349 

ExpandoRam II kit $249 

ITHICA INTERSYSTEMS . . . ,$CALL 

ALTOS $CALL 

NORTHSTAR $CALL 

SUPPLIES 

Verbatim Datalife Diskettes 

MD525-01,10,16 $26.50 

FD34-9000 $30.00 

FD34-8000 $44.00 

Avery Tabulables 

5,000 3 J* X 1 5/1 6 $1 8.75 

3,000 3^ X 1 5/1 6 $14.25 

1,000 3 1 / a X15/16 $8.15 

UARCO Paper [prices are FOB S.P.] 

9 1 /sX11,15or18Lb $25.95 

147/8X11, 15or18Lb. $35.00 

SOFTWARE 

Microsoft Basic-80 $299 

Microsoft Basic Compiler ... .$319 



Magic Wand $275 

Apple Visicalc $113 

Pickles and Trout CP/M® .... $1 75 



APPLE HARDWARE 

Microsoft Z-80 Softcard . $259 

Microsoft Ramcard $1 70 

SSMAIOAST $165 

SYMTEC Apple Light Pen $219 
MOUNTAIN HARDWARE: 

Super Talker $270 

ROMWRITER $157 

INTROL/X-10 $180 

R0MPLUS + $162 

MUSICSYSTEM $499 

Apple Clock $252 

Lobo Drive $CALL 

Videx 80x24 $299 

Andromeda $1 70 

M & R Sup-R-Term $299 

Enhancer $1 00 

NEC Green Monitor $240 

Sanyo Green Monitor .... $240 



D.C. Hayes Micromodem .$299 
CALIFORNIA COMPUTER 
SYSTEMS 

See our full page ad in this 
magazine. 



ALPHA 

BYTE 

STORE/ 



PRINTERS 

EPSON MX-80 CALL 

MX-80 Graphics ROM . . . CALL 
NEW EPSON MX-80 TF . . CALL 
Okidata Microline 80 . . . < $41 5 

Okidata Microline 82 $625 

Okidata Microline 83 $899 

IDS Paper Tiger 460G . $1050 
AnadexDP-9000,1 ... .$1195 
AnadexDP-9500,1 ... $1295 

Centronics 737 $689 

NEC Spinwriter $CALL 

NEC w/ Sellum Option . . . $CALL 
C. Itoh Starwriter 25 cps$1 440 
C. Itoh Starwriter 45 cps$1 770 

Diablo 630 $2195 

Malibu165 $1995 

Malibu200 $CALL 

MPI88G $495 



TRS-80 HARDWARE 

TRS-80's $CALL 

Micropolis 77 track ...... $399 

Percom Doubter $199 

Percom Separator $27 

Orchestra 80 $79 



5115 Douglas Fir Road • Suite B • Calabasas, CA 91302 

* Include IB. 00 shipping and handling on all orders. Vlaa and Master Card accaptad. Navar undaraold offar applies only to itama currently dalivarabla from othar 
retail vandora at advertised prica. All navar undaraold offara good aa aupply laata. Plaaaa add 18.00 for all COD ordara. Plaaaa call for Itama not ilatad. Wa glad- 
ly anawar any quaatlana on all of our hardwara, aoftwara, and aupply needs. Quanlttty dlacounta available. School purchase ordara accepted. Plaaaa remember 
to figure competitors shipping and handling chargaa whan arriving at navar undaraold price. 



[213) 883-8594 




pressed in either decimal or hexadeci- 
mal format. BASIC/Debug can 
directly address the Z8's internal 
registers and all external memory. 
Byte references, which use the "@" 
character followed by an address, 
may be used to modify a single 
register in the processor, an I/O port, 
or a memory location. For example, 
@4096 specifies decimal memory 
location 4096, and @%F6 specifies 
the port-2 mode-control register at 
decimal location 246. (The percent 
symbol indicates that the characters 
following it are to be interpreted as a 
hexadecimal numeral.) To place the 
value 45 in memory location 4096, 
the command is simply, @4096 = 45 
(or @%1000=%2D). 

Command abbreviations are stan- 
dard with most tiny-BASIC interpre- 
ters, but this interpreter allows some 
extremes if you want to limit program 
space. For example: 

IF 1>X THEN GOTO 1000 

can be abbreviated 
IF1>X 1000 

PRINT'THE VALUE IS ";S 



can be abbreviated 
"THE VALUE IS ";S 

IFX = YTHENIFY = Z 
THEN PRINT "X = Z" 

can be abbreviated 
IFX = YIF Y = Z"X = Z" 

One important difference between 
most versions of BASIC and Zilog's 
BASIC/Debug is that the latter 
allows variables to contain statement 
numbers for branching, and variable 
storage is not cleared before a pro- 
gram is run. Statements such as 
GOSUB X or GOTO A*E-Z are 
valid. It is also possible to pass values 
from one program to another. These 
variations serve to extend the capa- 
bilities of BASIC/Debug. 

In my opinion, the main feature 
that separates this BASIC from others 
is the extent of documentation sup- 
plied with the Z8671. Frequently, a 
computer user will ask me how he can 
obtain the source-code listing for the 
BASIC interpreter he is using. Most 
often, I have to reply that it is not 
available. Software manufacturers 
that have invested many man-years 



_At a Glance. 




Photo 2: The Z8/ Micromouth demonstrator. A Z8-BASIC Microcomputer is 
configured to run a ROM-resident program that exercises the Micromouth speech 
synthesizer presented in the June Circuit Cellar article. A Micromouth board 
similar to that shown on the left is mounted inside the enclosure. Six pushbutton 
switches, connected to a parallel input port on the Z8 board, select various 
speech-demonstration sequences. The Micromouth board is driven from a second 
parallel port on the Z8 board. 



Name 

Z8-BASIC Microcomputer 

Processor 

Zilog Z8-family Z8671 8-bit microcomput- 
er with programmable (read/write) 
memory, read-only memory, and I/O in a 
single package. The Z8671 includes a 
2 K-byte tiny-BASIC/Debug resident in- 
terpreter in ROM, 144 internal 8-bit 
registers, and 32 I/O lines. System uses 
7.3728 MHz crystal to establish clock 
rate. Two internal and four external inter- 
rupts. 

Memory 

Uses Z6132 4 K-byte Quasi-Static 
Memory (pin-compatible with 2716 and 
2732 EPROMs); 2 K-byte ROM in Z8671. 
Memory externally expandable to 62 K 
bytes of program memory and 62 K bytes 
of data memory. 

Input/Output 

Serial port: RS-232C-compatible and 
switch-selectable to 110, 150, 300, 1200, 
2400, 4800, and 9600 bps. 
Parallel I/O: two parallel ports; one 
dedicated to input, the other bit- 
programmable as input or output; pro- 
grammable interrupt and handshaking 
lines; LSTTL-compatible. 
External I/O: 16-bit address and 8-bit 
bidirectional data bus brought out to ex- 
pansion connector. 

BASIC Keywords 

GOTO, GO®, USR, GOSUB, 
IF... THEN, INPUT, LET, LIST, NEW, 
REM, RETURN, RUN, STOP, IN, 
PRINT, PRINT HEX. Integer 
arithmetic/logic operators: +, — , /, *, 
and AND; BASIC can call machine- 
language subroutines for increased execu- 
tion speed; allows complete memory and 
register interrogation and modification. 

Power-Supply Requirements 

+ 5 V ±5% at 250 mA 

+ 12 V ±10% at 30 mA 

-12 V ±10% at 30 mA 

(The 12 V supplies are required only for 

RS-232C operation.) 

Dimensions and Connections 

4- by 4Vi-inch board; dual 22-pin 
(0.156-inch) edge connector. 25-pin RS- 
232C female D-subminiature (DB-25S) 
connector; 4-pole DIP-switch data-rate 
selector. 

Operating Conditions 

Temperature: to 50 °C (32 to 122 °F) 
Humidity: 10 to 90% relative humidity 
(noncondensing) 



52 Augusl 1981 © BYTE Publications Inc 



Circle 170 on inquiry card. 




n Language 
lies The Future, 



Paul Lutus creates language. Language for the future. 

From him we have Apple Writer, Apple World and MusiComp. 
His software was used by the Viking Mars 
Lander team and other advanced 



space programs. 

For the past three years he has 
applied himself to the development 
of more efficient and powerful 
computer languages to 
help him with his work. 
These new languages \ 

of the future are now \ 

available for your use \ 

exclusively from Insoft. 



See the new world of 
programming from Insoft 



pie dealer. 



llil^ 



.tered trademark 
pple Computer, Inc. 



The languages of the future. The tools of today. 

259 Harriett Rd. / Unit 3 / Medford, Or 97501 / (503) 779-2465 



The fin 
brilliant e 

• Fully compiled 

• Floating point 

• Transcendental functions 

• Strings and arrays 

• Hires, Lores and Turtlegraphics 

• Music 

Far more compact and approachable than 
Pascal, TransFORTH II is both recursive and 
structured and easier to use than BASIC. 

Over three years in development, this high 
level language enables you to program in 
English with far greater speed and conven- 
ience than ever before possible. 

TransFORTH II. A transformation in 
computer programming. Available today. 



The Assembly Language Development 
System. Already the preferred assembler for 
professional software developers. 

• Object files to 18K 

• Source files to 37K 

• Cursor based screen editor 

• Upper and lower case text entry 

> Nested macro instructions 

• Local, global and universal labels 

> Comprehensive error trapping 

The enormous file capacity of ALD System 
II assures you of the ability to develop 
virtually any imaginable software system. 
And you can do so with ease since ALD 
System li edits with the simplicity of a word 
processor. 

ALD System II. Powerful yet convenient. 
The first choice of professionals. 

The best comes last. Both new 
programs are available for the 
Apple II or Apple III. 



Circle 137 on inquiry card. 



DISCOUNT 
LINE 

1-800-528-8960 



1-602-861-3181 Arizona 

TWX #910-950-1194 

ANADEX 

9500-$1275 9501 -$1275 

ATARI 

400-$435 800-$7*>0 

CENTRONICS 

730-$600 737-$750 

DATASOUTH 

DS1 20-$595 DS1 80-$1 375 

DIABLO 

630-$21 50 l640-$2575 

EPSON 
MX70-$395 MX80-$470 

HAZELTINE 
1 ^21 -$755 1520-$1 350 
1500-$995 Esprit-$650 
IDSI 
#60 Breakout "Blue Box"-$250 
LOBO 
Drive/Control ler-$ i t90 
Drive-$390 
MODEMS 
Cat-$155 Hays-$325 
MONITORS 

Leedex-$135 Sanyo-$l65 

MPI 

88G-$595 99G-$725 

NEC 

5510-$25 / t0 5520-$2900 

OKIDATE 

M80-$385 SL125-$3150 

M82-$550 SL160-$3150 

M83-$825 SL250-$4200 

TELEVIDEO 

912-$725 950-$995 

Tl 

810-$U75 820-$1 795 

SOROC 

IQJ20-$730 1 0.1 35- $800 

SSM 

AI0-$160 

ZENITH 

Z89-$2150 

Add - 3% Charge Cards 
2% Shipping 



EXPOTEK 

CORPORATION 

2231R W. Shangri La Rd. 
Phoenix, AZ 85029 



in a BASIC interpreter are not easily 
persuaded to give away its secrets. 

In most cases, however, a user 
merely wants to know the location of 
the GOSUB... RETURN address stack 
or the format and location of stored 
program variables. While the source 
code for BASIC/Debug is also not 
available (because the object code is 
mask-programmed into the ROM, 
you couldn't change it anyway), the 
locations of all variables, pointers, 
stacks, etc, are fixed, and their stor- 
age formats are defined and described 
in detail. The 60-page BASIC/Debug 
user's manual contains this informa- 
tion and is included in the 200 pages 



FFFF 




FFFD 


Data-rate switches 




Remainder 


C000 


undefined 



BFFF 



User-memory and l/O- 
expansion area 



8000 



7FFF 



2000 



undefined 



17FF 

On-board 4 K bytes of read/write 
memory or EPROM 



800 



7FF 



100 



BASIC/Debug ROM 



FF 



00 



Z8 registers 



Figure Is A simplified hexadecimal 
memory map of the Z8-BASIC Micro- 
computer. 



of documentation supplied with the 
Z8-BASIC Microcomputer board. 
(The documentation is also available 
separately.) 

Memory Allocation 

Z8-family microcomputers distin- 
guish between four kinds of memory: 
internal registers, internal ROM, ex- 
ternal ROM, and external read/write 
memory. (A slightly different dis- 
tinction can also be made between 
program memory and data memory, 
but in this project this distinction is 
unnecessary.) The register file resides 
in memory-address space in hexadeci- 
mal locations through FF (decimal 
through 255). The 144 registers in- 
clude four I/O- (input/output) port 
registers, 124 general-purpose regis- 
ters, and 16 status and control regis- 
ters. (No registers are implemented in 
hexadecimal addresses 80 through EF 
[decimal addresses 128 through 239]). 

The 2 K-byte ROM on the Z8671 
chip contains the BASIC/Debug in- 
terpreter, residing in address space 
from address to hexadecimal 7FF 
(decimal to 2047). External memory 
starts at hexadecimal address 800 
(decimal 2048). A memory map of the 
Z8-BASIC Microcomputer system is 
shown in figure 1. 

When the system is first turned on, 
BASIC/Debug determines how much 
external read/write memory is avail- 
able, initializes memory pointers, and 
checks for the existence of an auto- 
start-up program. In a system with 
external read/write memory, the top 
page is used for the line buffer, 
program-variable storage, and the 
GOSUB... RETURN address stack. 
Program execution begins at hexadec- 
imal location 800 (decimal 2048). 

When BASIC/Debug finds no ex- 
ternal read/write memory, the inter- 
nal registers are used to store the vari- 
ables, line buffer, and GOSUB... RE- 
TURN stack. This limits the depth of 
the stack and the number of variables 
that can be used simultaneously, but 
the restriction is not too severe in 
most control applications. In a sys- 
tem without external memory, auto- 
matic program execution begins at 
hexadecimal location 1020 (decimal 
4128). 



GUARANTEED RELIABLE 
FOR 2 FULL YEARS. 



Unprecedented product reliability deserves an 
unprecedented warranty. IMS International 
provides its dealers with both. 

Our commitment is real. 

We are so confident that our products are the 
industry standard in reliability, we stand behind 
them for two full years from date-of-sale to the 
end user. All IMS manufactured products are 
covered. 

The success of our dealers will insure our 
continued growth. That's why IMS International 



is committed to providing every IMS dealer with 
these distinct advantages in today's marketplace: 

• 2 year warranty 

• Low retail cost 

• Best margins in the industry 

• Protected territories 

• Full factory technical support 

• Complete system delivery in 30 days 

• Comprehensive advertising and promotional 
support 

For more information about IMS International's 
"Reliables" and our unique dealer plan, call 
714/978-6966 or write us: 

2800 Lockheed Way 
Carson City, NV 89701 
international Telex : 910-395-6051 





Circle 164 on Inquiry card. 



BYTE August 1981 55 



In a system that uses an external 
2 K-byte EPROM (type 2716), wrap- 
around addressing occurs, because 
the state of the twelfth address line on 
the address bus (All) is ignored. (A 
4 K-byte type-2732 EPROM device 
does use All.) A 2716 EPROM de- 
vice inserted in the Z6132's memory 
socket will read from the same mem- 



ory cells in response to accesses to 
both logical hexadecimal addresses 
800 and 1000. Similarly, hexadecimal 
addresses 820 and 1020 will be treated 
as equivalent by the 2716 EPROM. 
Therefore, when a 2 K-byte 2716 
EPROM is being used, the auto-start 
address, normally operating at hexa- 
decimal 1020, will begin execution of 



Listing 1: Simple illustration of BASIC program storage in the Z8-BAS1C Microcom- 
puter. 

100 PRINT T 

800 00 64 50 52 49 4E 54 20 22 54 

E S T 

80A 45 53 54 22 00 FF FF 



Listing 2: A multiple-line illustration of BASIC program storage. 



100 A = 5 
200 B = 6 
3005 "A*B = ";A*B 

100 A = 5 200 B 

00 64 41 3D 35 00 00 C8 42 3D 

6 3005 " A * B = " 

36 00 0B BD 22 41 2A 42 3D 22 

A * B 

3B 41 2A 42 00 FF FF 



800 
80A 

814 




GET YOUR SHARE OF THE MICRO MARKET! 
IF A NUDGE IS ALL YOU NEED, READ ON.... 

HARDWARE — Boards, systems and support at the right 

price, featuring CCS, Televideo and others. 

SOFTWARE — Many industry-standard packages and 
some unique surprises, such as: 

AUTOGEN — Interactively reconligure your CP/M* BIOS. 
Bring new peripherals on-line quickly. 

READER — Analyze your English prose. Measure how 
easy or hard it is to read. 

Ti. — Do discrete-event simulation on a micro. 

Write parallel programs, schedule resources, 
much more. 

INTERESTED? GET OUR CATALOG FOR THE FULL STORY! 
CALL OR WRITE NOW! 



Ill Ml 



MICROCOMPUTER APPLICATIONS, INC. 

11124 JOL.I.YVILLE ROAD, AUSTIN. TX 78759 

(512) 346-5264 



any program beginning at hexadeci- 
mal location 820. For the purposes of 
this discussion, you may assume that 
programs stored in EPROM use type- 
2716 devices and that references to 
hexadecimal address 820 also apply 
to hexadecimal address 1020. 

Program Storage 

The program-storage format for 
BASIC/Debug programs is the same 
in both types of memory. Each 
BASIC statement begins with a line 
number and ends with a delimiter. If 
you were to connect a video terminal 
or teletypewriter to the RS-232C 
serial port and type the following 
line: 

100 PRINT "TEST" 

it would be stored in memory begin- 
ning at hexadecimal location 800 as 
shown in listing 1. 

The first 2 bytes of any BASIC 
statement contain the binary equiva- 
lent of the line number (100 decimal 
equals 64 hexadecimal). Next are 
bytes containing the ASCII (Ameri- 
can Standard Code for Information 
Interchange) values of characters in 
the statement, followed by a delimiter 
byte (containing 00) which indicates 
the end of the line. The last statement 
in the program (in this case the only 
one) is followed by 2 bytes containing 
the hexadecimal value FFFF, which 
designates line number 65535. 

The multiple-line program in listing 
2 further illustrates this storage for- 
mat. 

One final example of this is il- 
lustrated in listing 3 on page 58. Here 
is a program written to examine itself. 
Essentially, it is a memory-dump 
routine which lists the contents of 
memory in hexadecimal. As shown, 
the 15-line program takes 355 bytes 
and occupies hexadecimal locations 
800 through 963 (decimal 2048 
through 2499). I have dumped the 
first and last lines of the program to 
further demonstrate the storage 
technique. 

I have a reason for explaining the 
internal program format. One of the 
useful features of this computer is its 
ability to function with programs re- 
siding solely in EPROM. However, 



56 August 1981 © BYTE Publications Inc 



Circle 235 on inquiry card. 




CIS COBOL™' software with FORMS-2™ 
for Apple II® computers is here. Now. 
From Micro Focus. 

Apple II users . . . the wait is over. And your pa- 
tience has paid off. Now you can create serious 
business programs with the world's most popular 
professional programming language— COBOL. 
And, run them on the industry standard operating 
system— CP/M™. 

COBOL — the only standard lan- 
guage designed exclusively for 
business programming. 
COBOL gives you programs 
that are easy to write, easy to 
read, easy to maintain and easy 
to learn. 

A complete program in 
20 minutes. 
FORMS-2, a COBOL 
source-code gen- 
erator, lets you 
begin with a 
blank screen . . . 
and end with a 
fully-operational 
program. 
FORMS-2 gener- 
ates standard 
COBOL code. 
You can use it as 
is. Or build on it 
to create even 
more sophisti- 
cated programs. 

Business computer 

compatibility. 

CIS COBOL on Apple II is standard COBOL. 

(ANSI X3.23-1974) With it, you have the broadest 

applications flexibility available today. And the 

most reliable. 

Powerful file handling. 

You can grow with CIS COBOL. It provides you 
with all the power of ANSI COBOL file handling. 
Underlying B-tree technology takes care of large 
ISAM files . . . fast. 

Circle 189 on inquiry card. 




Quick, convenient program development. 
With CIS COBOL and FORMS-2, you have your 
very own low-cost tools that allow you to get work 
done faster and less expensively than ever before. 
Features include interactive debug, fast compile- 
and-go, interactive screen creation and dynamic 
loading of modules. 

GSA approved. 

CIS COBOL is certified on Apple II by the Gen- 
eral Services Administration. Which means it's 
been tested, re-tested and tested again ... all un- 
der the most demanding conditions. No wonder 
it's been chosen for use by over 25 of the 
world's leading computer manufacturers. 

See your Apple dealer for a demonstration. 

Don't wait any longer. Get all the details about 

CIS COBOL and 
FORMS-2 today. 
For further informa- 
tion, visit your near- 
est Apple dealer. Or 
call us at (408) 248- 
3982 for a FREE 
fact-filled brochure. 



CIS COBOL and FORMS- 
2 are trademarks of Micro 
Focus, Inc. Apple II is a 
registered trademark of Apple 
Computer Inc. CP/M is a trade- 
mark of Digital Research. 



MICRO FOCUS 

The COBOL Company 



Micro Focus, Inc. 

1601 Civic Center Dr., Santa Clara, CA 95050 

Tel: (408) 248-3982 

Telex: 171135 MISSION SNTA 

Micro Focus LTD. 

58 Acacia Rd., London N.W. 8, ENGLAND 

Tel: (01) 722-8843/4/5/6/7 

Telex: 28536 MICROF G 



the EPROMs must be programmed 
externally. While I will explain how 
to serially transmit the contents of the 
program memory to an EPROM pro- 
grammer, some of you may have on- 
ly a manual EPROM programmer or 
one with no communication facility. 
But if you are willing to spend the 



time, it is easy to print out the con- 
tents of memory and manually load 
the program into an EPROM device. 

Dedicated-Controller Use 

The Z8-BASIC Microcomputer can 
be easily set up for use in intelligent 
control applications. After being 



Listing 3: A program (listing 3a) that examines itself by dumping the contents of mem- 
ory in printed hexadecimal form. Listing 3b shows the first and last lines of the program 
as dumped during execution. 



(3a) 

100 
102 
103 
105 
107 
110 
120 
130 
140 
150 
180 
200 
250 
300 
310 



(3b) 



PRINT "ENTER START 

PRINT "THE LIST IS 

PRINT SPRINT 

B-X+8 JA«X+C 

PRINT "ADDRESS 

PRINT HEX (X)» " " f 

G0SUB 300 

X--XT1 

IF" X=B THEN GOTO 180 

GOTO 120 

if x>=a then 250 

print: print *b=x+8: goto 110 

print: stop 

PRINT HEX <i?X)?: PRINT" "? 
RETURN 



ADDRESS EOR HEX DUMP 
HOW MANY BYTES LONG 



: INPUT X 
INPUT C 



DATA" t PRINT 



:RUN 

ENTER START ADDRESS FOR HEX DUMP ? 2048 

THE LIST IS HOW MANY BYTES LONG ? 30 



ADDRESS 






DATA 
















100 


P 


R 


I 


N 


T 


- 


800 





64 


50 


52 


49 


4E 


54 


22 




E 


N 


T 


E 


R 


Bp 


S 


T 


808 


45 


4E 


54 


45 


52 


20 


53 


54 




A 


R 


T 


op 


A 


D 


D 


R 


810 


41 


52 


54 


20 


41 


44 


44 


52 




E 


S 


S 


sp 


F 


O 


R 


sp 


818 


45 


53 


53 


20 


46 


4F 


52 


20 



:RUN 

ENTER START ADDRESS FOR HEX DUMP ? 2360 

THE LIST IS HOW MANY BYTES LONG ? 45 



ADDRESS 



DATA 



300 



938 


4F 


50 





1 


2C 


50 


52 


49 




N 


T 


sp 


H 


E 


X 


sp 


( 


940 


4E 


54 


20 


48 


45 


58 


20 


28 




@ 


X 


) 


; 




sp 


P 


R 


948 


40 


58 


29 


3B 


3A 


20 


50 


52 




I 


N 


T 




SP 


»P 


" 


; 


950 


49 


4E 


54 


22 


20 


20 


22 


3B 








310 


R 


E 


T 


U 


R 


958 





1 


36 


52 


45 


54 


55 


52 




N 




65535 










960 


4E 





FF 


FF 















tested and debugged using a terminal, 
the control program can be written 
into an EPROM. When power is ap- 
plied to the microcomputer, execu- 
tion of the program will begin auto- 
matically. 

The first application I had for the 
unit was as a demonstration driver 
for the Micromouth speech-processor 
board I presented two months ago in 
the June issue of BYTE. (See "Build a 
Low-Cost Speech-Synthesizer Inter- 
face," in the June 1981 BYTE, page 
46, for a description of this project, 
which uses National Semiconductor's 
Digitalker chip set.) It's hard to dis- 
cuss a synthesized-speech interface 
without demonstrating it, and I didn't 
want to carry around my big com- 
puter system to control the Micro- 
mouth board during the demonstra- 
tion. Instead, I quickly programmed 
a Z8-BASIC Microcomputer to per- 
form that task. While I was at it, I set 
it up to demonstrate itself as well. 

The result (see photo 2 on page 52) 
has three basic functional com- 
ponents. On top of the box is a 
Z8-BASIC Microcomputer (herein- 
after called the "Z8 board") with a 
2716 EPROM installed in the memory 
integrated-circuit socket, the 
Z8-board power supply (the wall- 
plug transformer module is out of 
view), and six pushbutton switches. 
Inside the box is a prototype version 
of the Micromouth speech-processor 
board (a final-version Micromouth 
board is shown on the left). 

The Micromouth board is jumper- 
programmed for parallel-port opera- 
tion (8 parallel bits of data and a 
data-ready strobe signal) and con- 
nected to I/O port 2 on the Z8 board. 
The Micromouth BUSY line and the 
six pushbuttons are attached to 7 in- 
put bits of the Z8 board's input port 
mapped into memory-address space 
at hexadecimal address FFFD 
(decimal 65533). 

The most significant 3 bits of port 
FFFD are normally reserved for the 
data-rate-selector switches, but with 
no serial communication required, 
the data rate is immaterial and the 
switches are left in the open position. 
This makes the 8 bits of port FFFD, 
which are brought out to the edge 



58 August 1981 © BYTE Publications Inc 



Circle 367 on inquiry card. 



SYBEX DOES PASCAL 




□ INTRODUCTION TO PASCAL 

by RodnayZaks is a simple yet comprehensive guide to 
standard and UCSD Pascals: step-by-step presentation 
with exercises for beginners, complex concepts and 
extensive appendices for experienced programmers. 
An indispensible book for everyone who wants to 
learn Pascal programming. 
320 pp., 100 illustr., Ref. P310, $14.95 

□ THE PASCAL HANDBOOK 

by Jacques Tiberghien is an easy-to-read, easy-to-use 
dictionary containing all the features for most existing 
versions of Pascal (Standard, Jensen-Wirth, OMSI, 
UCSD, HP1000, Pascal/Z). Over 180 entries, arranged 
alphabetically; each includes definition, description, 
syntax diagram, details of implementation, variations 
and examples. The perfect reference tool for any 
Pascal user. 
500 pp., 150 illustr., Ref. P320, $14.95 



□ PASCAL PROGRAMS FOR SCIENTISTS 
AND ENGINEERS 

by Alan Miller is a comprehensive collection of 
frequently used algorithms for scientific and technical 
applications programmed in PASCAL. This time saving 
book includes programs for curve fitting, approxima- 
tions, random number generation, integrals, statistical 
techniques and more. 
250 pp., 80 illustr., Ref. P340 D$1 6.95 paper, D$25.00cloth 



^p^^ MAIL TO: 

^^^ SYBEX DEPT. B81 

r cvDcy 2344 S|XTH street 

EA. BERKELEY, CA 94710 
PHONE ORDERS: 
INSIDE CA 415/848-8233 
TOLL FREE OUTSIDE CA 800-277-2346 



^^Jw II 



NAME 

ADDRESS 

CITY 

ADD 



. D SEND ME YOUR FREE CATALOG 



STATE 



ZIP 



□ $1.50/book UPS or D75<t/book 4th class mail or D$8/book overseas airmail 

(CA add tax) Total amt. Enclosed ORCHARGEMYDVISADMCDAMEX. 

CARD NO EXP. DATE 

SIGNATURE 



connector, available for external in- 
puts. In this case, pressing one of the 
six pushbuttons selects one of six 
canned speech sequences. 

Coherent sentences are created by 
properly timing the transmission of 
word codes to the speech-processor 
board. This requires nothing more 
than a single handshaking arrange- 



ment and a table-lookup routine (but 
try it without a computer sometime). 
The program is shown in listing 4a. 

The first thing to do is to configure 
the port-2 and port-3 mode-control 
registers (hexadecimal F6 and F7, or 
decimal 246 and 247). Port 2 is bit- 
programmable. For instance, to con- 
figure it for 4 bits input and 4 bits out- 



Listing 4: A program (listing 4a) that demonstrates the functions of the Micromouth 
speech synthesizer, operating from a type-2716 EPROM. The simple I/O-address 
decoding of the Z8 board allows use of the round-figure address of 65000. The program 
uses a table of vocabulary pointers that has been previously stored in the EPROM by 
hand. Listing 4b shows a dump of the memory region occupied by the program, prov- 
ing that storage of the BASIC source code starts at hexadecimal location 820. 
(4a) 

@246=0:@247=113 
X=@65000 :A=%1400 
IF X=254 THEN @2=0 

GOTO 500 

A=A+3 2 :GOTO 500 

A=A+64 :GOTO 500 

A=A+96 :GOTO 500 

A=A+128 :GOTO 500 



100 

110 

120 

130 

140 

150 

160 

170 

180 

200 

300 

310 

320 

500 

510 

520 

530 

1000 

1005 

1010 

1015 

1020 

1030 



IF 

IF 

IF 

IF 

IF 

IF 

GOTO 

@2=N 



X=253 
X=251 
X=247 
X=239 
X=223 
X=222 
110 
:N= 



THEN 
THEN 
THEN 
THEN 
THEN 
THEN 



N=0 :GOTO 300 



N+l :IP N=143 THEN 110 



IF @65000<129 THEN 310 

GOTO 300 

@2=@A :A=A+1 

IF @65000<129 THEN 510 

IF @A=255 THEN GOTO 110 

GOTO 500 
Q=2048 
W=0 

PRINT HEX(@Q) , :Q=Q+1 
W=W+1 :IF W=8 THEN PRINT" 
IF Q=4095 THEN STOP 
GOTO 1010 ■■■■§ 



:GOTO 1005 



(4b) 






:goto 


1000 


FF 




FF 


FF 




FF 


FF 




FF 


FF 




FF 







64 


3A 




40 


33 







35 




30 


25 




31 


49 




46 


20 




54 


0! 


AT 


1015 



FF 

FF 

FF 

FF 

40 

32 



30 

34 

20 

48 



FF 
FF 
FF 
FF 
32 
34 
6E 
30 
30 
58 
45 



FF 
FF 
FF 
FF 
34 
37 
58 
20 
30 
3D 
4E 



FF 

FF 

FF 

FF 

36 

3D 

3D 

3A 



32 

20 



put, you would load FO into register 
F6 (246). In this case, I wanted it con- 
figured as 8 output bits, so I typed in 
the BASIC/Debug command @246 = 
(set decimal location 246 to 0). 

The data-ready strobe is produced 
using one of the options on the Z8's 
port 3. A Z8 microcomputer has 
data-available and input-ready hand- 
shaking on each of its 4 ports. To set 
the proper handshaking protocol and 
use port 2 as I have described, a code 
of hexadecimal 71 (decimal 113) is 
placed into the port-2 mode-control 
register. The BASIC/Debug com- 
mand is @247= 113. The RDY2 and 
DAV2 lines on the Z8671 are con- 
nected together to produce the data- 
available strobe signal. 

Lines 1000 through 1030 in listing 
4a have nothing to do with demon- 
strating the Micromouth board. They 
form a memory-dump routine that il- 
lustrates how the program is stored in 
memory. You notice from the mem- 
ory dump of listing 4b that the first 
byte of the program, as stored in the 
ROM, begins at hexadecimal location 
820 (actually at 1020, you remember) 
rather than 800 as usual. This is to 
help automatic start-up. The program 
could actually begin anyplace, but 
you would have to change the pro- 
gram-pointer registers (registers 8 and 
9) to reflect the new address. The 32 
bytes between 800 and 820 are re- 
served for vectored addresses to op- 
tional user-supplied I/O drivers and 
interrupt routines. 

Programming the EPROM 

The first EPROM-based program I 
ran on the Z8-BASIC Microcomputer 
manually loaded. I simply 



was 

FF 

FF 

FF 

FF 

3D 

31 

40 

41 



35 



FF 
FF 
FF 
FF 
30 
31 
36 
3D 
78 
34 



60 August 1981 © BYTE Publications Inc 



Circle 380 on inquiry card. 



w 



m 



System/48 



1 

1 

: 











i ■ 





The System/48 is the outstanding office automation com- 
puting system for the 80's it's so productive we call it 
MAGIC <£| . Look at these features: 

• One to eight interactive users per node 

• Data management system 

• Report generator 

• Query processor 

• Screen format generator 

• Automatic interface code generator 

• Up to '' 2 Mbytes of user memory 

• Winchester disk with 1 8-million bytes (formatted 
capacity) 

• 1 5-minute mean-time-to-repair 

• Built-in protection from line-voltage spikes, noise, and 
brownouts 

And, it features MAGIC 61 , the Operating System that gets 
things done faster than you can say abracadabra because 
of its multi-keyed Indexed-Sequential Access Method and 
flexible file-organization. MAGIC' also offers high security, 
with password protection. MAGIC supports global or local 
printers for as many users as desired. 



MAGIC also includes DataMagic II — TEl's red-hot data- 
base manager. DataMagic II has even more tricks up its 
sleeve — like automatic or manual record-lock protection 
and automatic transaction backout to protect the database. 
And it runs application software written for CP/M 2.X. 

Take a MAGIC leap into the future! 

Arrange to attend one of our regularly scheduled System/ 
48 workshops (RSVP). 

OEM and Dealer Inquiries Invited 




5075 S. LOOP EAST. HOUSTON. TX. 77033 
(713) 738-2300 TWX. 910-881-3639 



Circle 408 on inquiry card. 




If you have anything 
to do with small 
computers, you 
should be reading 
the Carl Helmers 

PERSONAL 

COMPUTER 

l£TT£R 

every month! 

You won't want to miss a single issue of 
the new Personal Computer Letter. . . 
a monthly publication of comprehen- 
sive studies on issues affecting design, 
implementation, and applications of 
small computer systems. The Personal 
Computer Letter is a journal compiled 
and edited by Carl Helmers, co-founder 
and first editor of Byte Magazine. Here 
is valuable information in professionally 
prepared format about small com- 
puters, software, peripherals, trends in 
the industry, and new ideas. We accept 
no advertising and the information 
provided is available nowhere else. 
Written for executives, decision-makers, 
market strategists, product designers 
and authors in the small computer field, 
each 12 to 16-page issue contains 
analysis and design studies by many 
of the personal computer industry's 
foremost experts. For example, the 
current issue covers: Intelligent Serial 
Line Filters: Exploring a family of 
application oriented product ideas. 

Subscribe today. Mail the coupon with 
your check for $200 for the next 12 
monthly issues. Sample issues at 
$25 per copy, applicable to a full 
year's subscription. 



■ MB 
■■■ 



eft 



; '■.■; 



NORTH AMERICAN 
TECHNOLOGY, INC. 

Strand Building 
174 Concord St., 
Peterborough, NH 03458 
(603) 924-6048 

□ Enclosed is my $200 check or 
money order for the next 12 issues 
of the Personal Computer Letter. 

□ Enclosed is my $25 check or money 
order for a sample issue, applicable 
to subscription price. 

NAME 

ADDRESS 

CITY 

STATE ZIP 



I 
I 

i 
I 
i 
I 

D 
I 
I 

J! 




Photo 3: Type-2716 EPROM programmer, adapted from "Program Your Next 
EROM in BASIC" (March 1978 BYTE, page 84). The circuit, which is driven 
through parallel ports, programs a 2716 in about 2Vi minutes and is controlled by 
a BASIC program. 



printed out the contents of the Z6132 
memory using the program of listing 
3 and entered the values by hand into 
the EPROM programmer. This is fine 
once or twice, but you certainly 
wouldn't want to make a habit of it. 
Fortunately, there are better alterna- 
tives if you have the equipment. 

Many EPROM programmers are 
peripheral devices on larger computer 
systems. In such cases, it is possible to 
take advantage of the systems' capa- 
bilities by downloading the Z8 pro- 
gram directly to the programmer. 

The programmer shown in photo 3 
is a revised version of the unit I 
described in a previous article, "Pro- 
gram Your Next EROM in BASIC" 
(March 1978 BYTE, page 84). It was 
designed for type-2708 EPROMs, but 
I have since modified it to program 
2716s instead. All I had to do was 
lengthen the programming pulse to 
50 ms and redefine the connections to 
four pins on the EPROM socket. It 
still is controlled by a BASIC pro- 
gram and takes less than 2Vi minutes 
to program a type-2716 EPROM de- 
vice. Refer to the original article for 
the basic design. 

Normally, the LIST function or 
memory-dump routine cannot be 



62 August 1981 © BYTE Publications Inc 



used to transmit data to the EPROM 
programmer because the listing is 
filled with extraneous spaces and car- 
riage returns. It is necessary to write a 
program that transmits the contents 
of memory without the extra charac- 
ters required for display formatting. 
The only data received by the 
EPROM programmer should be the 
object code to load into the EPROM. 
In writing this program we can take 
advantage of the Z8's capability of 
executing machine-language pro- 
grams directly through the USR and 
GO@ commands. The serial-input 
and serial-output subroutines in the 
BASIC/Debug ROM can be executed 
independently using these com- 
mands. The serial-input driver starts 
at hexadecimal location 54, and the 
serial-output driver starts at hexadec- 
imal location 61. Transmitting a sin- 
gle character is simply done by the 
BASIC statement 

GO@ %61,C 

where C contains the value to be 
transmitted. A serial character can be 
received by 

C = USR (%54) 

Circle 278 on inquiry card. — ► 




Model I 
Model III 



Products that set Precedents. 



T 




i 



j$& 






W'-' 







***** 




■i 



aet 



!R CP/M Adapt' 

CBASIC II" CP/M 



THE 
BEST 



WORD PROCESS 



$1000.00 VALUE 
ONLY 



$ 299 



I 



IKUHM \KKS 

•IRS HI) K«dio sh«ck/ Uiuly ( orp. 
••I I' \l, Oigilil KneMch 
"Mlisu II ( ompikr SyHtr 
••••PMlll MV 1'ilinlir Inc. 



rocessin 



v^ i 



^ 



^ 








v\' 



offici 



itflFtCi 




Well, to begin with, color graphics. 

RCA's VP-3301 has unique color-locking circuitry that gives 
you sharp, jitter-free color graphics and rainbow-free characters. 

Plus much more: Microprocessor control. Resident and 
programmable character set. Reverse video. State-of-the-art 
LSI video control. 20 and 40 character formats. RS232C and 
20 mA current loop. Six baud rates. Eight data formats. ASCII 
encoding. Light-touch flexible-membrane key switches for 
reliability and long life. CMOS circuitry and a spill-proof, dust- 
proof keyboard for hostile environments. 

The VP-3301 can be used with a 525-line color or monochrome 

monitor or a standard TV set through an RF modulator." It 

serves a wide variety of industrial, educational, business and 

individual applications including communication with time 

sharing and data base networks such as those provided by 

Dow Jones News/Retrieval Service, CompuServe and Source. 

All this— for the low price of $369. And it's made by RCA. So 

get the whole story about the surprising VP-3301 today. Write 

RCA Microcomputer Marketing, New Holland Avenue, 

Lancaster, PA 17604. Order toll-free: 800-233-0094. 



"Model VP-3303 with built-in RF modulator-S389. 

"Suggested user price. Monitor and modem not included. 




Listing 5: BASIC statements that print out 
the entire contents of the 4 K bytes of user 
memory, for use with a communicating 
EPROM programmer. 

1000 X = %800 :REM BEGINNING OF 

USER MEMORY 
1010 GO® %61,@X :REM TRANSMIT 

CONTENTS OF LOCATION X 
1020X = X + 1 :IFX = °/o 1801 THEN 

STOP 
1030 GOTO 1010 



Listing 6: A simple BASIC program seg- 
ment to demonstrate the concept of the 
"black box" method of modifying data be- 
ing transmitted through the Z8-BAS1C 
Microcomputer. 

100 @246 = 0:@247=113 :REM SET PORT 

2 TO BE OUTPUT 
110 @2 = X :REM X EQUALS THE DATA 

TO BE TRANSMITTED 



where the variable C returns the 
value of the received data. 

To dump the entire contents of the 
Z6132 memory to the programmer, 
the statements in listing 5 should be 
included at the end of your program. 

Execution begins when you type 
GOTO 1000 as an immediate-mode 
command and ends when all 4 K 
bytes have been dumped. The trans- 
mission rate (110 to 9600 bps) is that 
selected on the data-rate-selector 
switches. 

Conceivably, this technique could 
also be used to create a cassette-stor- 
age capability for the Z8 board. In 
theory, a 3- or 4-line BASIC program 
can be entered in high memory (you 
can set the pointer to put the program 
there) to read in serial data and load it 
in lower memory. Changing the pro- 
gram pointer back to hexadecimal 
800 allows the newly loaded program 
to be executed. Since the Z8-BASIC 
Microcomputer already has a serial 
I/O port, any FSK (frequency-shift 
keyed) modem and cassette-tape re- 
corder can be used for cassette data 
storage. 

I/O for Data Acquisition 

Data acquisition for process con- 
trol is the most likely application for 
the Z8-BASIC Microcomputer. Low- 



Circle 334 on inquiry card. 



Customizable 

The Unique Difference that Sets 
VEDIT Apart in Full Screen Editors 



Total user customizability is a predominate reason that 
over a thousand users find VEDIT the easiest to use full screen 
editor. It makes VEDIT the only editing package which allows 
you to determine your own keyboard layout and use the cursor 
and special function keys on any terminal having them. And 
only VEDIT fully supports all of the newly available terminals. It 
may come as a surprise to you, that with any other editor or word 
processor, you will have to memorize obscure control 
characters or multi-character sequences, while your terminal's 
extra keys and editing functions go unused. The customization 
extends to setting the default tab positions, scrolling methods 
and much more. It's almost like designing your own editor for 
your system, applications and preferences. And all of this is 
easily done with the setup program which requires no 
programming knowledge or 'patches', but simply prompts you 
to press a key or enter a parameter. 

Unequaled Hardware Support 

The CRT version supports all terminals by allowing you to 
select during setup which terminal VEDIT will run on. Features 
such as line insert and delete, reverse scroll, status line and 
reverse video are used on 'smart' terminals. All screen sizes are 
supported, including large ones such as the 60 X 80 format on 
the Ann Arbor Ambassador terminal. Special function keys on 
terminals such as the Heath H19, Televideo 920C and IBM 
3101 , and keyboards producing 8 bit codes are all supported. 
The memory mapped version is extremely flexible and supports 
bank select and hardware cursors such as on the SSM VB3. 
With this level of customizability and hardware support, you will 
feel for the first time that the software was optimally designed for 
your system. 

Fully Compatible Replacement for Ed 

Since VEDIT creates and edits standard text files of up to 
one diskette in length, it serves as a replacement for the CP/M 



standard editor ED. Of course, you benefit from the fastest and 
easiest to use 'What you see is what you get' type full screen 
editing available, fast disk access and an editor which takes up 
only 1 2K of your valuable memory space. With VEDIT you will 
never again need or want to use the slow and tedious ED. 

Special Features 

VEDIT is more than just a full screen editing replacement 
for ED, it gives you many new editing capabilities, such as a 
scratchpad buffer for moving and rearranging sections of text, 
complete file handling on multiple drives and iteration macros. 
Amoung its special features you will find automatic indenting for 
use with structured programming languages such as Pascal 
and PL/1, and other special facilities for Assembler and COBOL. 
A real time saver is the ability to insert a specified line range of 
another file anywhere in the text. Unlike most software, VEDIT 
will even tolerate your mistakes. For example, one key will 
'Undo' the changes you mistakenly made to a screen line, and 
the disk write error recovery lets you delete files or insert another 
disk should you run out of disk space. 

Ordering 

Many dealers carry VEDIT, or you may contact us for fast 
delivery. Specify the CRT version, your video board or 
microcomputer, the 8080, Z80 or 8086 code version, and disk 
format required. 

VEDIT for 8080 or Z80: Disk and manual $130 

VEDIT for CP/M-86: Disk and manual . (NEW) $ 1 85 

Manual: Price refunded with software purchase $15 

VISA or MASTERCARD Welcomed 

CP/M and MP/M are registered trademarks of Digital Research. 
Inc. Apple II is a registered trademark of Apple Computer. Inc. 
SoftCard is a trademark of Microsoft. TRS-80 is a trademark of 
Tandy Corp. 



North Star * Cromemco • Heath H8/H89 • SuperBrain • Apple II Softcard * TRS-80 Model II & Model 
Most other CP/M Systems with CRT or Memory Mapped Displays * MP/M ■ CP/M-86 




CompuView Products Inc. 

618 Louise, Ann Arbor, Michigan 48103 • Telephone (313) 996-1299 



Circle 85 on inquiry card. 



INPUT CHANNELS 




D7 O 



Number 


Type 


+ 5V 


GND +12V 


IC1 


74LS04 


14 


7 


IC2 


74LS30 


14 


7 


IC3 


74LS02 


14 


7 


IC4 


74LS373 


20 


10 


IC5 


ADC0808 


see sc 


nematic diagram 


IC6 


LM301 




4 7 


IC7 


74LS00 


14 


7 



Figure 2: Schematic diagram of an A/D 
converter. This 8-bit, eight-channel unit 
has a unipolar input range of to +5 V, 
with the eight output channels addressed 
as I/O ports mapped into memory- 
address space at hexadecimal addresses 
BF00 through BF07. 



cost distributed control is practical, 
substituting for central control per- 
formed by a large computer system. 
Analog and digital sensors can be 
read by a Z8-BASIC Microcomputer, 
which then can digest the data and re- 
duce the amount of information (ex- 
periment results or control param- 
eters) stored or transmitted to a cen- 
tral point. Control decisions can be 



made by the Z8-BASIC Microcom- 
puter at the process locality. 

The Z8 board can be used for 
analog data acquisition, perhaps us- 
ing an A/D (analog-to-digital) con- 
verter such as that shown in figure 2. 
This 8-bit, eight-channel A/D con- 
verter has a unipolar input range of 
to +5 V (although the A/D in- 
tegrated circuit can be wired for 



bipolar operation), with the eight 
output channels addressed as I/O 
ports mapped into memory-address 
space at hexadecimal addresses BF00 
through BF07 (decimal 48896 through 
48903). When the Z8671 performs an 
output operation to the chara\el ad- 
dress, the channel is initialized for ac- 
quiring data, while data is read from 
the channel when the Z8671 performs 



66 August 1981 © BYTE Publications Inc 



DAV2< 



P3 6 [i0>^ 



P2 \TT>- 

P2lEl>- 

P2 2 (U>- 
P2 3 (15^ 

P2 4(H>- 
P2 5 Q7>- 
P2 6 [H>- 



P2 7 \T£ > - 



23 



IC1 

COM2017 

UART 



TD1 
TD2 
TD3 
TD4 
TD5 
TD6 
TD7 
TD8 



CS 
NP 
TSB 
NB2 
NB1 
EPS 
XR 
GMD 



21 



Number 



Type 



+5V GND 



IC1 COM2017 1 3 

IC2 COM5016 2 11 

IC3 COM 1488 7 



12V +12V 
2 



1 



9 
14 



I C 3 
MC1488 



+ 5V 




+ 5V 
A 



12 



STR STT 
P-A 



IC2 
COM5016 



1 B 



XTAL1 



P-D 
XTAL2 



4.7K- 



CRYSTAL 
5.0688MHz 



DB-25 
CONNECTOR 



I 
I 

{£> 

i 



RS-232C 
OUTPUT 



SWl 



^o- 



SW2 



*SJ 



DATA-RATE 
GENERATOR 



m 



Figure 3: Schematic diagram of an RS-232C serial output port for the "black box" communication application of the Z8-BASIC 
Microcomputer. The Z8671 must be configured by software to provide the proper signals: one such signal, 
DAV2, is derived from two bits of I/O port 3 on the 2.8671. The pin numbers shown in the schematic diagram for P3, and P3 6 are 
pins on the 7,8671 device itself, not pins or sections on the card-edge connector, as are P2 through P2 7 . 



an input operation on the channel's 
address. 

Intelligent Communication 

Another possible use for the 
Z8-BASIC Microcomputer is as an in- 
telligent "black box" for performing 
predetermined modification on data 
being transmitted over a serial com- 



munication line. The black box has 
two DB-25 RS-232C connectors, one 
for receiving data and the other for 
retransmitting it. The intelligence of 
the Z8-BASIC Microcomputer, acting 
as the black box, can perform prac- 
tically any type of filtering, condens- 
ing, or translating of the data going 
through. 



Perhaps you have an application 
where continuous raw data is trans- 
mitted, but you would rather just 
keep a running average or flag devia- 
tions from preset limits at the central 
monitoring point rather than contend 
with everything. The Z8 board can be 
programmed to digest all the raw 
data coming down the line and pass 




THE 




IEEE 488 TO S'lOO INTERFACE 



< ^IEEE-488^ > 




S-100 



■Handles all IEEE-488 1975/78 functions 
■IEEE 696 (S-100) compatible 
■MBASIC subroutines supplied; no BIOS 

mods required 
■3 parallel ports (8255A-5) 
■Industrial quality; burned in and tested 

(Dealer inquiries invitedl 

D&W DIGITAL 

1524 REDWOOD DRIVE 

LOS ALTOS, CA 95030 1415) 966-1460 



Circle 98 on inquiry card. 



August 1981 © BYTE Publications Inc 67 



^ 




Circle 370 on inquiry card. 



DISCOUNT 
HARDWARE 

IEEE 696/S-1 00 Standard Boards 
Assembled, tested, warranted 

(SmpuPro 



from 



STATE OF THE ART CPU BOARDS 

DUAL CPU 8/16 bit $349 

Z-80 CPU $249 

FAST RELIABLE STATIC MEMORY 

16K $299 32K $549 

48K $799 64K $999 

SYSTEM AUGMENTATION 
BOARDS 

I/O- 1 2 RS232 Serial Ports $199 

l/0-ll 3 Parallel, 1 Serial Ports $199 

l/O-lll 8-Port $549 

DISK-1 DMA Disk Cont $399 

MPX Multiplex Channel $399 

SUPPORT-1 Multifunction $299 

Port, clock, interrupts 

timers, battery back-up 

7 Boards in one 

DISCOUNT HARDWARE 

Division of System Interface Consultants, Inc. 
1 7440 Revello Drive 
Pacific Palisades, CA 90272 

Enclosed is $ 



Please express the following assembled, 
tested, and warranted IEEE 696/S-100 
boards: 



Name _ 
Address. 



Phone i 



Add S25 to each order for express shipping, handling 
and insurance. California residents add 6% tax. Allow 
2 weeks for personal checks. Prices subject to change 
without notice. 

CALL FOR INFORMATION AND PRICES ON 

Mainframes, terminals, printers, and complete 
integrated and tested systems to meet 
YOUR UNIQUE REQUIREMENTS. 

(213) 454-2100 

DISCOUNT HARDWARE 

Division of System Interface Consultants, Inc. 
Computer Specialists Established 1969 

70 August 1981 © BYTE Publications Inc 




Photo 4: A three-integrated-circuit hardwired serial output port for the 
Z8-BASIC Microcomputer. Connected to port 2, any program data sent to 
register 2 will be transmitted serially at the data rate selected on the four-position 
DIP switch (between 50 to 19200 bps). The Z8 board, configured with two serial 
ports, is used to process raw data moving through it. Data is received on one 
side, digested, and retransmitted in some more meaningful form from the other 
port. Such a configuration could also be used to connect two peripheral devices 
that have radically different data rates. 



on only what's pertinent. 

Another such black-box applica- 
tion is to use the Z8 board as a printer 
buffer. Photo 4 shows the interface 
hardware of one specific application, 
which I used to attach a high-speed 
computer to a very slow printer. The 
host computer transmitted data to the 
Z8 board at 4800 bps. Since the re- 
ceiving serial port used had to be bidi- 
rectional to handshake with the host 
computer, I added another serial out- 
put to the Z8 board for transmitting 
characters to the printer. Only three 
integrated circuits were required to 
add a serial output port. A schematic 
diagram is shown in figure 3 on page 
67. The UART (universal asynchro- 
nous receiver/ transmitter, shown as 
IC1) is driven directly from port 2 on 
the Z8 board (port 2 could also be 
used to directly drive a parallel-inter- 
face printer), and IC2 supplies the 
clock signal for the desired data rate. 
Of course, the UART could have 
been attached to the data and address 



buses directly, but this was easier. 

Transmitting a character out of this 
serial port requires setting the port-2 
and port-3 mode-control registers as 
before. After that, any character sent 
to port 2 will be serially transmitted. 
The minimum program to perform 
this is shown in listing 6 on page 64. 
This circuit can also be used for 
downloading programs to the 
EPROM programmer. 

In Conclusion 

It is impossible to describe the full 
potential of the Z8-BASIC Micro- 
computer in so few pages. For this 
reason, considerable effort has been 
taken to fully document its character- 
istics. I have merely tried to given an 
introduction here. 

I intend to use the Z8-BASIC 
Microcomputer in future projects. I 
am interested in any applications you 
might have, so let me know about 
them, and we can gain experience 
together. 






We know just how 
good G&L 
Microcomputers are. 

Because we use them 
in our own 
PC's and CNC's. 

And now we can fill all your 
needs with reliable industrial 
grade modules. 



GL 868 MODULES 

• CPU-FPA PROCESSOR 

• RAM-CMOS-EPROM 

• ANALOG MODULES 

• VIDEO MODULES 

• SERVO MODULES 




NESTS-POWER SUPPLIES 

• HALF NEST 

• FULL NEST 

• MASTER RACK 

• POWER SUPPLIES 



PERIPHERALS 



SOFTWARE PACKAGES 



DEVELOPMENT SYSTEMS 



RELIABILITY 

• 130°F AMBIENT RATED 

• 95% RELATIVE HUMIDITY 

• PRE-TESTED CHIPS WITH 125°C, 
168 HOUR BURN-IN 

• MODULE BURN-IN AND TEST AT 130°F 
FOR 40 HOURS 



GET THE FACTS 

Ask for the fact-packed GL868 booklet. 
Giddings & Lewis Electronics Co., 
P.O. Box 1658, 666 S. Military Road, 
Fond du Lac, Wl 54935, U.S.A. Telephone 
(414)921-9400. 



Electronics Division 

Giddings & Lewis 





Circle 144 on inquiry card. 



BYTE August 1981 71 




Photo 5: When the Z8-BASIC Microcomputer is used with a ROM-resident pro- 
gram, the two jumpers used with the 2,6132 are removed, and the EPROM 
jumper is installed instead. When using a type-2716 16 K-bit (2 K-byte) EPROM 
device, the "16 K" jumper is installed. If a type-2732 32 K-bit (4 K-byte) EPROM 
is used instead, the "32 K" jumper is installed. The EPROM is inserted in the 
lower 24 pins of the 28-pin Z6132 socket (IC2) as shown. 



Next Month: Build a phonetic 
voice synthesizer based on the Votrax 
SC-01 synthesizer chip. ■ 



Special thanks to Steve Walters and Peter 
Brown of Zilog Inc for their aid in producing 
these articles. 



BASIC/Debug is a trademark of Zilog Inc. 



Editor's Note: Steve often refers to previous 
Circuit Cellar articles as reference material for 
the articles he presents each month. These 
articles are available in reprint books from 
BYTE Books. 70 Main St. Peterborough NH 
03458. Ciarcia's Circuit Cellar covers articles 
appearing in BYTE from September 1977 
through November 1978. Ciarcia's Circuit 
Cellar, Volume II presents articles from 
December 1978 through June 1980. 



receive a complete list of Garcia Cir- 
:ellar kits available from The Micro- 
be 100 on the inquiry card. 



The following items are available 


Z8-BAS1C Microcomputer Z8-BASIC Microcomputer power supply 


postpaid in the United States from: 


(Documentation includes: (Size: 2Y B by 4V 2 inches) 


The MicroMint Inc 


Z8 Technical Manual Provides: +5 V, 300 mA 


917 Midway 


Z8 Product Specification + 12 V, 50 mA 


Woodmere NY 11598 


Z6132 Product Specification -12 V. 50 mA 


Telephone: 


BASIC/Debug Manual Assembled and tested.... $35 


(800) 645-3479 (for orders) 


Z8-BASIC Microcomputer Construc- 


(516) 374-6793 (for technical information) 


tion/Operator's Manual) 




Assembled and tested.... $170 




Kit.... $140 


These prices are in effect until September 15 


1981; call for prices after that date. 


All printed-circuit boards are solder-masked 


and silk-screened. The documentation supplied with the Z8 board includes approximately 200 


pages of materials. It is available separately foi 


$25. This charge will be credited toward any subsequent purchase of the Z8 board. 


Please include $2 for shipping and handling. 


New York residents please include 7% sales tax. 



TRS-80®Computers 

Now Available with 5 Megabytes fixed and 5 Megabytes 
removable storage. 

Complete Hardware System including, 64K TRS-80 

Model ii. $10,935.00 

220V Systems available for our European customers, in- 
cluding 64K TRS-80 Model II $1 2,995.00 

ALL 2000 COMPUTER SYSTEMS 

Via-Dell'Alloro,22R.A. 

50123 Firenze, Italy 

Telephone 28 37 72 

Telex 572507 

TRS-80 is a Trademark of Tandy Corp. 



PAN AMERICAN ELECTRONICS 

Dept. 200 • 1117 Conway Avenue 
Mission, Texas 78572 U.S.A. 
TOLL FREE ORDER 800/531-7466 

Texas & Principal No. 512/581-2766 
Telex 767339 



V 




Circle 298 on inquiry card. 



COMPUSTAR 

INTERTEC'S INCREDIBLE 255 USER SMALL BUSINESS COMPUTER 



At last, there's a multi-user micro- 
computer system designed and built the 
way it should be. The CompuStar™. Our 
new, low-cost "shared-disk" multi-user 
system with mainframe performance. 

Unlike any other system, our new 
CompuStar offers what we believe to be the 
most practical approach to almost any 
multi-user application. Data entry. Distrib- 
uted processing. Small business. Scientific. 
Whatever! And never before has such 
powerful performance been available at 
such modest cost. Here's how we did it . . . 

The system architecture of the 
CompuStar is based on four types of video 
display terminals, each of which can be 
connected into an auxiliary hard disk stor- 
age system. Up to 255 terminals can be 
connected into a single network! Each ter- 
minal (called a Video Processing Unit) con- 
tains its own microprocessor and 64K of 
dynamic RAM. The result? Lightning fast 
program execution! Even when all users 
are on-line performing different tasks! A 
special "multiplexor" in the CompuStar 
Disk Storage System ties all exter- 
nal users together to "share" the 
system's disk resources. So, no 
single user ever need wait on an 
other. An exciting concept . . . 
with some awesome application 
possibilities! 

CompuStar™ user 
stations can be configured in 
almost as many ways as you 
can imagine. The wide variety 
of terminals offered gives you 
the flexibility and versatility 
you've always wanted (but 
never had) in a multi-user 
system. The CompuStar 
Model 10 is a program- 
mable, intelligent terminal 
with 64K of RAM. It's a 
real workhorse if your re- 
quirement is a data entry 



or inquiry/response application. And if your 
terminal needs are more sophisticated, 
select either the CompuStar Model 20, 30 
or 40. Each can be used as either a stand- 
alone workstation or tied into a multi-user 
network. The Model 20 incorporates all of 
the features of the Model 10 with the 
addition of two, double-density mini-flop- 
pies built right in. And it boasts over 
350,000 bytes of local, off-line user stor- 
age. The Model 30 also features a dual 
drive system but offers over 700,000 bytes 
of disk storage. And, the Model 40 boasts 
nearly 1 1 / 2 million bytes of dual disk stor- 
age. But no matter which model you 
select, you'll enjoy unparalleled versatility 
in configuring your multi-user network. 




Add as many terminals as you like 
- at prices starting at less than $2500. 
Now that's truly incredible! 

No matter what your application, 
the CompuStar can handle it! Three disk 
storage options are available. A tabletop 
10 megabyte 8" winchester-type drive 
complete with power supply and our spe- 
cial controller and multiplexor costs just 
$4995. Or, if your disk storage needs are 
more demanding, select either a 32 or 96 
megabyte Control Data CMD drive with a 
16 megabyte removable, top loading car- 
tridge. Plus, there's no fuss in getting a 
CompuStar system up and running. Just 
plug in a Video Processing Unit and you're 
ready to go . . . with up to 254 more ter- 
minals in the network by simply connect- 
ing them together in a "daisy-chain" 
fashion. CompuStar's special parallel 
interface allows for system cable lengths 
of up to one mile . . . with data transfer 
rates of 1.6 million BPS! 

Software costs are low, too. 
CompuStar's disk operating system is the 
industry standard CP/M* With an 
impressive array of application soft- 
ware already available and several 
communication packages offered, 
the CompuStar can tackle even your 
most difficult programming tasks. 
Compare for yourself. Of all 
the microcomputer-based multi- 
user systems available today, 
we know of only one which 
offers exactly what you need 
and should expect. Excep- 
tional value and upward 
growth capability. The 
CompuStar™. A true price 
and performance leader! 

sinte3tec 

Fdata 

ssystems* 



2300 Broad Rivet Rd. Columoia SC 29210 
(803) 798-9100 TWX- 810-666-2115 

Circle 177 on Inquiry card. 



•neijstaiu ifMnmaiii of [Muti! Rcsea'ch Inc ^^ 



Object-Oriented 
Software Systems 



David Robson 

Learning Research Group 

Xerox Palo Alto Research Center 

3333 Coyote Hill Rd 

Palo Alto CA 94304 



This article describes a general class of tools for 
manipulating information called object-oriented software 
systems. It defines a series of terms, including software 
system and object-oriented. The description is greatly 
influenced by a series of object-oriented programming 
environments developed in the last ten years by the Learning 
Research Group of Xerox's Palo Alto Research Center, the 
latest being the Smalltalk-80 system. The article describes 
object-oriented software systems in general, instead of the 
Smalltalk-80 system in particular, in order to focus attention 
on the fundamental property that sets the Smalltalk-80 
system apart from most other programming environments. 
The words "object-oriented" mean different things to 
different people. Although the definition given in this article 
may exclude systems that should rightfully be called object- 
oriented, it is a useful abstraction of the idea behind many 
software systems. 



Many people who have no idea how a computer works 
find the idea of object-oriented systems quite natural. In 
contrast, many people who have experience with com- 
puters initially think there is something strange about 
object-oriented systems. (I don't mean to imply that 
computer-naive users can create complex systems in an 
object-oriented environment more easily than experi- 
enced programmers can. Creating complex systems in- 
volves many techniques more familiar to the programmer 
than the novice, regardless of whether or not an object- 
oriented environment is used. But the basic idea about 
how to create a software system in an object-oriented 
fashion comes more naturally to those without a 
preconception about the nature of software systems.) I 
had had some programming experience when I first en- 
countered an object-oriented system and the idea cer- 
tainly seemed strange to me. I am assuming that most of 
you also have some experience with software systems and 
their creation. So instead of introducing the object- 
oriented point of view as if it were completely natural, I'll 
try to explain what makes it seem strange compared to 
the point of view found in other programming systems. 

Software Systems 

A software system is a tool for manipulating informa- 



tion. For the purposes of this article, I'm using a very 
broad definition of information. 

Information: A representation or description of 
something. 

There are many types of information that describe dif- 
ferent things in different ways. One of the great insights 
in computer science was the fact that information can 
(among other things) describe the manipulation of infor- 
mation. This type of information is called software. 

Software: Information describing the manipula- 
tion of information. 

Software has the interesting recursive property of 
describing how to manipulate things like itself. Software 
is used to describe a particular type of information- 
manipulation tool called a software system. 

Software system: An information-manipulation 
tool in which the manipulation is described by 
software. 

A distinction is made in information-manipulation 
tools between hardware systems and software systems. A 
hardware system is a physical device like a typewriter, 
pen, copier, or television set. The type of manipulation 
performed by a hardware system is built in and can only 
be changed by physical modification. The type of 
manipulation performed by a software system is not built 
in — it is determined by information, which can be 
manipulated. 

The virtue of software systems is that the mechanism 
developed for manipulating information can be used to 
manipulate the mechanism itself. Software systems that 
actually manipulate other software systems are called 
programming environments. 

Programming environment: A software system 
that manipulates software systems. An environ- 
ment for the design, production, and use of soft- 
ware systems. 



74 August 1981 © BYTE Publications Inc 



Circle 78 on inquiry card. 



"Our goal at The Denver Software Company is to translate the 
advances in high technology — symbolized by the Space Shuttle 
triumph — into practical, problem-solving microcomputer 
programs for small business and home use." 




,o 



W^ 



cr 







Microcomputers Are 
The Door To The Future. 



TT 




^xliw73ti 



Finally, there's an accounting package available for most 
microcomputers — from the least expensive to the top-of-the- 
line — that works the moment the machine is switched on. 
Language, programs, everything needed for accurate 
bookkeeping is built into the software, eliminating the need for 
programming skills or expensive equipment add-ons. 



The FINANCIAL PARTNER™ 

is a comprehensive financial pack- 
age that takes the headache out of 
bookkeeping. With general ledger, 
cash receipts, accounts payable, 
and check- printing capability, this 
system also provides standard fi- 
nancial reports. In addition, the 
FINANCIAL PARTNER™ comes 
with a detailed user's manual con- 
taining basic bookkeeping instruc- 
tion. By automatically sorting and 
posting accounts, the FINANCIAL 
PARTNER™ saves you valuable 
time and is a complete guide to 
money management for your home 
or very small business. At $175, it's 
worth its weight in gold. 



Also from The Denver Software Company: 
The PASCAL TUTOR™ , a computer assisted course in UCSD 
Pascal*. This complete software package uses the microcom- 
puter to teach this powerful new programming language. $125 
for this fast, easy way to learn versatile UCSD Pascal*. 

*UCSD Pascal is a trademark of the Regents 
of the University of California. 



Products available from your local dealer. 

THE DENVER SOFTWARE COMPANY 

MANUFACTURERS OF MICROCOMPUTER SOFTWARE 









RNANCIAlHOTNffl 

fete' 


■■ 




lw# 





The PA 

those kng 
ulos dra 
debu 
money as ' 




PROGRAM 

igeable about 
ly shorten the 
ograms — by ai 
as time. 







Fa software breakthrough for 
DSD Pascal*. Pre-tested mod- 
ne spent coding, testing,' jflff 
uch as 70%. For $125^^H 



00 E. Jewell Ave 
aler inquiries wejp 




Thus, a programming environment is also recursive: it 
is what it manipulates. The fact that software systems can 
be manipulated is both good news and bad news. Since a 
text editor is a software system, it is not "cast in concrete" 
and you can change it to conform to your style of 
interacting with text more closely than it does now (using 
a programming environment). However, you also may 
reduce it to the proverbial "pile of bits" (not a text editor 
at all). 

Data/Procedure-Oriented Software 

The traditional view of software systems is that they 
are composed of a collection of data that represents some 
information and a set of procedures that manipulates the 
data. 

Data: The information manipulated by software. 
Procedure: A unit of software. 

Things happen in the system by invoking a procedure 
and giving it some data to manipulate. 

As an example of a software system, consider a system 
for managing windows that occupy rectangular areas on 
a display screen. The windows contain text and have 
titles. They can be moved around the screen, sometimes 
overlapping each other. (The details of this system are 



m 



COPY SERVICE 



Information 

Outside California Call 

(800) 854-1 51 5 or (800) 854-1 516 

In California Call Collect (714)436-4351 





not important. Its main purpose is to point out the dif- 
ferences between the structure of a data /procedure 
system and an object-oriented system.) 

A window-management system implemented as a 
data /procedure system would include data representing 
the location, size, text contents, and title of each window 
on the screen. It would also include procedures that move 
a window, create a window, tell whether a window 
overlaps another window, replace the text or title of a 
window, and perform other manipulations of windows 
on a display. To move a window, a programmer would 
call the procedure that moves windows and pass to it the 
data representing the window and its new location. 

A problem with the data/procedure point of view is 
that data and procedures are treated as if they were in- 
dependent when, in fact, they are not. All procedures 
make assumptions about the form of the data they 
manipulate. The procedure to move a window should be 
presented with data representing a window to be moved 
and its new location. If the procedure were presented 
with data representing the text contents of a window, the 
system would behave strangely. 

In a properly functioning system, the appropriate 
choice of procedure and data is always made. However, 
in an improperly functioning system (eg: one in the pro- 
cess of being developed or encountering an untested 
situation), the data being manipulated by a procedure 
may be of an entirely different form from that expected. 
Even in a properly functioning system, the choice of the 
appropriate procedure and data must always be made by 
the programmer. 

These two problems have been addressed in the context 
of the data/procedure point of view by adding several 
features to programming systems. Data typing has been 
added to languages to let the programmer know that the 
appropriate choice of data has been made for a particular 
procedure. In a typed system, the programmer is notified 
when a procedure call is written using the wrong type of 
data. Variant records allow the system to choose the 
appropriate procedure and data in some situations. 



Object-Oriented Software 

Instead of two types of entity that represent informa- 
tion and its manipulation independently, an object- 
oriented system has a single type of entity, the object, 
that represents both. Like pieces of data, objects can be 
manipulated. However, like procedures, objects describe 
manipulation as well. Information is manipulated by 
sending a message to the object representing the informa- 
tion. 

Object: A package of information and descrip- 
tions of its manipulation. 

Message: A specification of one of an object's 
manipulations. 

When an object receives a message, it determines how 



76 August 1981 © BYTE Publications Inc 



Circle 11 on inquiry card. 



MORROW DESIGNS 

Cost effective answers to 
floppy disk problems. 



DMA answers. Standard, 
accumulator transfer floppy 
disk controllers can stall your 
microcomputer system's 
CPU for as long as 160 mil- 
liseconds. Just to access and 
transfer a sector of data to 
main memory. If CPU pro- 
cessing speed and system per- 
formance are critical, you need 
something better. That's 
where Morrow Designs' new 
intelligent Disk Jockey DMA™ 
controller comes in. This new 
breed of perpherial handles 
both 5V4" and 8" drives and 
can read almost any format 
in existence. Speed? Your 
CPU runs at full tilt while the 
DMA controller seeks and 
gathers a sector of data. 
How? Information transfers 
to and from main memory 
occur as "cycle steals" from 
the system bus. And the 
missing memory cycles are 
transparent to the CPU total- 
ling only two milliseconds 
instead of the usual 80. 
Build a buffer. Give the Disk 
Jockey DMA a little extra memory and your system's per- 
formance gets even better. The extra storage is used as a 
track buffer. So, whenever a sector on a new track is read 
the track buffer is automatically filled with the other sec- 




tors on the track. The result? 
Additional data on the track 
is immediately available. 
Without the 80 millisecond 
rotational latency normally 
encountered. And similar 
efficiencies occur with disk 
writes. Sectors in the track 
buffer are conditionally writ- 
ten on the disk only if a new 
track is accessed. And only 
one revolution of the disk 
is required. 

Now, prices* All systems 
listed are supplied with a 
floppy disk drive, Disk Jockey 
Direct Memory Access Con- 
troller, CP/M" 2.2 operating 
system, power supply, fan, 
cables, cabinet and Microsoft 
5.2 BASIC. 

Even lower prices. Morrow 
Designs' floppy disk systems 
with Disk Jockey'" 2D control- 
lers offer the same high qual- 
ity at even lower prices. Now 
without memory mapping! 
Fast answers. See Morrow 
Designs' family of cost effec- 
tive floppy disk systems at 
your computer dealer. For a somewhat more leisurely 
answer, circle the reader service number below. For imme- 
diate answers, phone us at (415) 524-2101. 
LOOK TO MORROW FOR ANSWERS. 



5 1 /4 Inch Systems (formatted data) 

400,000 Bytes (1) Dual Sided 48 TPI Drive 

800,000 Bytes (2) Dual Sided 48 TPI Drive 

800,000 Bytes (1) Dual Sided 96 TPI Drive 

1,600,000 Bytes (2) Dual Sided 96 TPI Drive 



$1110 
$1899 
$1499 
$2599 

OEM pricing available 



•Prices subject to change without notice. 
Disk Jockey DMA and Disk Jockey 2D 
are trademarks of Morrow Designs 
•CP/M is a trademark of Digital Research. 



8 Inch Systems (formatted data) 

500,000 Bytes (1) Single Sided Drive 
1,000,000 Bytes (2) Single Sided Drive 
1,000,000 Bytes (l)Dual Sided Drive 
2,200,000 Bytes (2) Dual Sided Drive 



$1199 
$1975 
$1595 
$2675 

OEM pricing available 



MORROW OE5IGN5 

5221 Central Avenue, Richmond, CA 94804 
(415) 524-2101 



Circle 252 on Inquiry card. 



BYTE August 1981 77 



to manipulate itself. The object to be manipulated is 
called the receiver of the message. A message includes a 
symbolic name that describes the type of manipulation 
desired. This name is called the message selector. The 
crucial feature of messages is that the selector is only a 
name for the desired manipulation; it describes what the 
programmer wants to happen, not how it should happen. 
The message receiver contains the description of how the 
actual manipulation should be performed. The program- 
mer of an object-oriented system sends a message to in- 
voke a manipulation, instead of calling a procedure. A 
message names the manipulation; a procedure describes 
the details of the manipulation. 

Of course, procedures have names as well, and their 
names are used in procedure calls. However, there is only 
one procedure for a name, so a procedure name specifies 
the exact procedure to be called and exactly what should 
happen. A message, however, may be interpreted in dif- 



ferent ways by different receivers. So, a message does not 
determine exactly what will happen; the receiver of the 
message does. 

If the earlier example of the window-management 
system were implemented as an object-oriented system, it 
would contain a set of objects representing windows. 
Each object would describe a window on the screen. Each 
object would also describe the manipulations of the win- 
dow it represents — for example, how to move it, how to 
determine whether it overlaps another window, or how 
to display it. Each of these manipulations would corre- 
spond to a selector of a message. The selectors could in- 
clude move, overlap, display, delete, width, or height. (In 
this article, an alternate typeface is used for words that 
refer to specific elements in example systems.) 

In addition to a selector, a message may contain other 
objects that take part in the manipulation. These are 
called the message arguments. For example, to move a 



Circle 354 on inquiry card. 




The 

Powerful 
New Alternative 
To VisiCalc™ 



For CP/M based microcomputers, 
SuperCalc is the superior new "electronic 
worksheet'' for businessmen. Complex calcu- 
lations, alternative recalculations, and 
numerical forecasting are easy. Just type in 
your numbers - SuperCalc does the rest. 
SuperCalc pays for itself almost immediately, 
and eventually it will save enough in time and 
money to pay for your computer as well! 
Dealer and distributor inquiries welcome. 
SORCIM Corporation, 405 Aldo Ave., 
Santa Clara, CA 95050, (408) 727-7636 



"What was needed for the OSBORNE 1 was 
an easy-to-understand CP/M based alterna- 
tive to VisiCalc from a qualified, reliable 
company. SuperCalc by SORCIM is all that. . . 
and more. " 

Adam Osborne 

Developer of the OSBORNE 1 






Powerful Software Tools 



SuperCalc: SORCIM 



VisiCalc Is a trademark ol Personal Software Inc., SuperCalc Is a trademark of SORCIM Corp. 



MORROW DESIGNS 

Leading edge technology 
in hard disk systems. 



Complete systems. Morrow 
Designs hard disk subsystems 
are delivered complete with hard 
disk, controller, cabinet, power 
supply, fan, cables and CP/M" 
2.2 operating system. 
Widest range. Morrow Designs 
offers the widest range of hard 
disk systems available from a sin- 
gle supplier. 5%," 8," 14." Five to 
over 100 megabytes of formatted 
hard disk storage. $2,995 to 
$19,980. Cost effective systems 
that work. And keep working. 
S-100 and more. Morrow Designs 
hard disk systems are designed 
for use with the CP/M operating 
system. Available soft- 
ware packages allow our 
systems to run on any 
IEEE696/S-100 Standard 
system with no hard- 
ware modification. 
Plus, Cromemco/ North 
Star,** Vector Graphics, 
Godbout, Dynabyte, 
Exidy," IMSAI, Micro- 
mation, Processor Tech- 
nology and California 
Computer Systems. 

Reliable systems. Morrow Designs is com- 
mitted to hard disk system reliability Not 
simply with a 90-day warranty, but with a money 
back guarantee. If our system fails to perform to 
specification, send it back. We'll send back 
your money. 



•CP/M is a trademark of Digital Research. 
"Northstat is a trademark of North Star Computers, Inc. 

tCromemco is a trademark of Cromemco, Inc. 
ttExidy is a trademark of Exidy Corporation. 




Experience. As of April, 1981, 
there were over fifteen hun- 
dred Morrow Designs hard disk 
systems successfully installed. 
In fact, over 200 independent 
systems integrators now use 
our hard disks to solve their 
mass storage problems. 
Performance answers. Morrow 
Designs hard disk systems have 
been benchmarked against all 
other systems. None is faster 
under CP/M. Morrow Designs 
hard disks operate at 10 times 
the speed of a floppy disk 
drive. Transfer rates range from 
590,000 bytes to 900,000 bytes 
per second. That kind of perfor- 
mance can become addictive. 
Cost effective answers. Compare 
Morrow prices and performance 
to anything presently available 
for S-100 systems. You'll find 
Morrow's price/megabyte/ 
performance ratio to be 
unmatched. Leadership in 
disk systems technology 
earned us leadership in 
price/performance. And 
that may have earned us 
a call from you. Circle the 
Reader Service Number 
for our full line data sheets. 
Can't wait? Call us at 
(415) 524-2101. And yes, OEM quantity prices are 
available. LOOK TO MORROW FOR ANSWERS. 

MORROW DESIGNS 



5221 Central Avenue, Richmond, CA 94804 
(415) 524-2101 



n 



Circle 253 on inquiry card. 



BYTE August 1981 79 



window, the programmer might send the object repre- 
senting the window a message with the selector move. 
The message would also contain an argument represent- 
ing the new location. Since this is an object-oriented 
system, the selector and argument are objects: the selec- 
tor representing a symbolic name and the argument 
representing a location or point. 

The description of a single type of manipulation of an 
object's information (the response to a single type of 
message) is a procedure-like entity called a method. A 
method, like a procedure, is the description of a sequence 
of actions to be performed by a processor. However, 
unlike a procedure, a method cannot directly call another 
method. Instead, it must send a message. The important 
thing is that methods cannot be separated from objects. 
When a message is sent, the receiver determines the 
method to execute on the basis of the message selector. A 
different kind of window could be added to the system 



with a different representation and different methods to 
respond to the messages move, overlap, display, delete, 
width, and height. Places where messages are sent to 
windows do not have to be changed in order to refer to 
the new kind of window; whichever window receives the 
message will use the method appropriate to its represen- 
tation. 

Objects look different from the outside than they do 
from the inside. By the outside of an object, I mean what 
it looks like to other objects with which it interacts (eg: 
what rectangles look like to other rectangles or to win- 
dows). From the outside, you can only ask an object to 
do something (send it a message). By the inside of an ob- 
ject, I mean what it looks like to the programmer im- 
plementing its behavior. From the inside, you can tell an 
object how to do something (in a method). For example, 
a window can respond to messages having the selectors 
move, overlap, display, delete, width, or height. 



IMPORTS 




EPSON MX-80 

Price Breakthrough • Coll! 

OkidatoM-80 $399' 

Okidata M-82 $549 

OkidoroM-83 $849 

PAPER TIGERS! 




445G $749 

460G $1119 

560G $1395 



HIGH SPEED 




Anadex 

9500/9501 $1274.00 

Dotosoulh 

D5-180 $1349.00 

Tl 810 Bosk $1499.00 



COMPUTERS 



ADDS 




NORTHSTAR 



Burned and rested - backed by fast warranty 
service. Find our why our prices, availability 
and service make us the #1 source for the #1 
S-100 system. Free gomes disk. 

Horizon II 64K DD $2895.00 

Horizon II 64K Qd $3295.00 




ATAR 



Atari 800 w/32K 

$775 

while they last 

plus 410 $59- Stat RS27 

Joysticks $14- 810 5449 




ALTOS 

NOW MORE FOR LESS 

ACS-8000- 1 5 has 208K RAM. 1 Mg. on tloppys. 
6 serial and 2 parallel pons. Upgrade w/Win- 
Chester hard-disk drives and rope bock-up. 
Multi-user at single user prices. 




ACS8000-15 



$4795 



ZENITH 

The oll-ln-one computer That's bached by 
your local Zenirh/Hearh service center. Green 
Phosphor screen and CP/M included. 

Z69 w/4SK 2 SIO's $2249 



We participate In arbitration 
Jl for business and customers \ 

sm ithrough the Better Business ,^ 
Bureau of Maricopa County. 



Scottsdale Systems^ 

6730 E. McDowell Road, Suite 1 1 0, Scottsdale, Arizona 85257 



S (602)941-5856 



MaitwCaid] 



Coll 8-5 Mon.-Fri. 
(We Export) TWX 910-950-0082 (IMEC SCOT) 




The new leader! Detachable keyboard, 
extra port, (unction keys, numeric 
keypad. 24x80. RS-232, buiJr ond becked 
by ADDS. 

ADDS Viewpoinr $569 



TELEVIDEO 




910 


Coll 


912 


$729 


920 


$759 


950 


$969 






^terminals] 








ILh H ' 







Zenith Z- 19 
Soroc IQ 120 
Soroc IQ 135 
Hozelrine 1421 



$789 
$729 
$799 

$779 



MORE PRINTERS 



ORDERING 



Centronics 737 $719.00 

DECLA34AA $1049.00 

MPI 88G .... $619.00 

MPI99G $719.00 



NEC 5510 $2689.00 

Diablo 630 $2295.00 

C. Ifoh Sfarwrifer .... $1495.00 

NEC 5520 $3089.00 

•Tractors included in price 



MAIL ORDER ONLY 

2% cosh discount included / charge cords odd 2%. Prices subject to 
change, product subject to availability. Arizona residents odd 5%. 
F.O.D. point of shipment Scottsdale. 0-20% restocking fee for 
returned merchandise. Warranties included on all products. 




I'll probably 

come down 

the hall to 

see yoo. 

"I like to tell anyone who has done a good job that I know 

it and appreciate it. As far as I'm concerned, being the 

President doesn't mean a big office with a closed door. 

It's not private dining rooms and splendid isolation. 

"You see, I know success at ITT DCD is its people. Our most 
important asset is our people; the computers, the facilities- 
whatever else we have or buy-nothing works right without the 
right people. And when you find them you have to challenge 
them, then reward them when they meet the challenges. 

"People work for recognition. OK, I know what you're going to 

say. It's the money they're after and the praise is only icing on 

the cake. But believe me, you can't buy loyalty. You can pay 

people for their talent . . . but you can't buy them. 

"I really appreciate a special effort. And if you do something 

innovative, notable, different-I'm going to get up, go and see 

you, tell you what I feel. We've put millions into independent 

research this year, because we believe you should back 

original thought. As far as I'm concerned, today's bright idea 

is tomorrow's profit. You can't get any simpler than that! 

Corporate success is a collective success, 

and it's my job to build a better team. 

"For me it was alway ITT. It was my first significant exposure 

to industry. I guess I'm a good example of the fact that staying 

can work for you. From a Project Engineer to President in 

14 years. Yes, you're looking for a long term commitment 

and what it can do for you. 

"And it looks like I'm here to stay-who would leave a life like 

this. I've got a wonderful house in Morris County, NJ. There 

I am, just 1 hour from Broadway, and I still have wild deer 

wandering across my lawn. A great place to bring up children- 

that wonderful mix of rural fantasy and Big Apple culture. 

"Success? You could call it that. 

But success is setting a goal and reaching it. 

Satisfaction is finding yourself exactly where you want to be." 

If you want to align your career with a company that looks for 

ideas and backs them all the way to reality, consider ITT DCD. 

We have openings for degreed engineering /scientific 

professionals at all levels of experience in the following areas: 

COMMAND & CONTROL COMMUNICATIONS 
MESSAGE / CIRCUIT SWITCHING 
VOICE / SIGNAL PROCESSING 

• Hardware Systems Design 

• Software Systems Design 

• Systems Analysis • Programming 

ITT DCD offers excellent salaries and a comprehensive benefits package that would be difficult to duplicate. 

Beyond medical, dental and life, we offer a superior system of educational support which encourages acquisition 

of credits and advanced degrees on our time at our expense. Relocation is another area of extraordinary effort on 

ITT DCD's part. We ease your move by coordinating all phases through our in-house relocation specialist. 

Please call or send resume to our Director of Professional Placement. 



Where engineers never stop learning 



ITT 



DEFENSE 

COMMUNICATIONS 

DIVISION 



An equal opportunity employer M/F 



(800) 526-6292,(201) 284-2551 



492 River Road, Nutley, New Jersey 071 10 



MH1 



Software/Hardware Professionals: 

WHY KEEP YOUR 
CAREER WAITING? 

Timing is key to successful career change. But to make 
sure you're prepared to seize the right opportunity at the 
right time, you need professional assistance. Over the 
past twelve years, R.M. Norton and Company has 
offered the research and planning necessary for 
successful career change. 

Drawing on more than a decade's resources, our 
consultants provide expert resume preparation and 
knowledgeable career path advice. And since we 
represent some of the country's premier companies, we 
enjoy access to the choicest openings in a broad range of positions. 

Current New England openings for the professional with state-of-the-art experience include: 
Software Design and Development, Computer Sciences, Assembly or Higher Level 
Language Programming, Data Base Design, Compiler and/or Operating Systems 
Design, Digital Logic Design, Interface Design, Microprocessor Utilization, Computer 
Architecture, Logic/ Circuit Design, Power Supplies, Terminals Development and 
Distributed Systems Firmware. 

If you can't keep your career waiting, contact us. At R.M. Norton, you'll find the expertise 
that comes with twelve years of experience and service. And as you'd expect, client 
companies assume all fees. 

(617) 861-7800 
271 Lincoln Street, Lexington, MA 02173 




m 




(L ei .mmm % mmsm. m, 



Professional Placement Consultants 



HARDWARE 

SOFTWARE 
professionals 

Signal Process'g Engrs to40k 

Project Engineers to 30k 

Analog Design Engrs to45k 

Digital Design Engrs to45k 

Test Eqpmnt Designers t 35k 

Test Engineers io32k 

Software Engineers to30k 

Diagnostic Engineers io37k 

Sftwr Systems Analysts to38k 

Search & Recruitment by: 
David Barros 

Call or send resume 

C areer _Ar55ociatei, inc. 

P O BOX 86, NO DARTMOUTH. AAA 02747 
617-997-3311 



COVERING NEW ENGLAND 
AND THE U.S. SINCE 

1964 

We'v been placing engineers in challenging 
more rewarding positions since 1964. We 
know the market and the people to contact 
here in New England. And through the Na- 
tional Personnel Consultants Network we are 
on top of openings in every area of the coun- 
try. When you deal with E.P. Reardon you'll 
save yourself time and money and you'll be 
represented by a staff of experienced place- 
ment consultants that can do it all for you. 
We have openings in all of the areas listed 
below from entry level to management. 
Salaries range from 22-55K per year. 

Telecommunica- 
tions 

Command, Control 
and Communica- 
tions 

Automatic Test 
Equipment 
Microwave 
Devices & 
Systems 
Radar Systems 
CAD/CAM 
Instrumentation 
Optics & Electro 
Optics 



Circuit and Logic 
Design 
Robotics/ 
Automation 
Guidance and 
Control 
Navigation 
Systems 
RF Design 
Data Communica- 
tions 

Mechanical 
Packaging 
Process Control 
Mechanism Design 
Reliability 



If you are qualified by education and ex- 
perience in any of these or related fields put 
Bob McNamara to work for you today. Call 
him collect al (617) 329-2660 or contact him at 
the address below. 



£P%ha/doh Assoatifea 

Washington Street. P.O.Box 228, 
Dedham, MA 02026 Clients are EOE. 




If you read 
a lot of 
computer 
printouts- 
Rest your tired 
eyes on us. 

Today's high technology engi- 
neers and technical manage- 
ment people — qualified 
professionals just like yourself 
— must work closely with com- 
puters to stay on the leading 
edge of the state-of-the-art. 

However, this also means that 
you must read many computer 
printout sheets, each contain- 
ing wide lines of characters 
and/or numbers. 

GRADUATING ENGINEER, 
McGraw-Hill's magazine for 
senior-level engineering stu- 
dents, understands this 
because its readers and their 
professors are confronted with 
the same problem in the 
classroom. 

To help ease their eyestrain we 
have made available to the 
professors a 15 inch (or 38 
centimeters on the other edge) 
clear plastic ruler. 

It features a yellow highlight 
bar down the center which can 
be used to zero in on that im- 
portant, and always elusive, 
line of information. 

Because we realize that indus- 
try also burns the midnight oil, 
GRADUATING ENGINEER is 
pleased to extend this offer to 
high technology professionals 
too. 

So, why don't you rest your 
tired eyes on us? To request 
your free computer printout 
reading guide, just write to us 
on your company or personal 
letterhead to the address 
below. 

Willie Williams, 
Editorial Associate 
GRADUATING ENGINEER 

McGraw-Hill Publications 
1221 Avenue of the 
Americas/Room 345 
New York, New York 10020 



m 



MH2 




Our Systems 
Speak for themselves. 



At Codex, we produce high-speed 
state-of-the-art data communications 
equipment. And our systems are 
known as the best in the industry. 

If you know where the future in elec- 
tronics is, those facts should speak for 
themselves. 

Being the leader in data communica- 
tions means we're part of one of the 
fastest-growing fields today. Our clients are Fortune 1000 
firms. And we're shaping tomorrow's information networks to 
make them more efficient, and more productive. 

What's in it for you? Just this. That kind of growth means 
you can go places with us. We promote extensively from 
within. And we make a conscious effort to enable our people 



code^ 



A Subsidiary ot (A^) MOTOROLA INC. 

An Equal Opportunity/Affirmative Action Employer M/F 



to do more — technically and profes- 
sionally — than they ever thought 
possible. 

Our technology helps the world com- 
municate. Maybe it's saying something 
to you. 

Codex offers competitive salaries 
and a comprehensive benefits package 
including dental insurance and profit 
sharing. 



Interested candidates should forward a resume including 
salary history, in confidence, to J.T. Dombrowski, CODEX 
CORPORATION, 20 Cabot Boulevard, Mansfield, MA 02048. 



Senior Systems 
Engineer 

Will be responsible for the design of 
custom software interfaces, product 
enhancements and product support for 
data communications systems. Re- 
quires a BS or MS in electrical engineer- 
ing or computer science and a minimum 
of 4 years software design with some 
exposure to telecommunications and 
Assembly language programming. 



Senior Software 
Engineer 

Responsibility will be for the definition 
and implementation of operating 
systems in multi-microprocessor en- 
vironment for data communications 
systems. Requires a BS or MS in Com- 
puter Science or a related field and a 
minimum of 4 years of software develop- 
ment including implementation of 
operating systems software. Will utilize 
the knowledge of a variety of operating 
systems approaches in real-time 
multiprocessing environment e.g. UNIX. 



Senior Hardware 
Engineer 

This position involves designing hard- 
ware to customer specifications for data 
communications systems. A BSEE is re- 
quired plus a minimum of 4 years ex- 
perience in digital design of 
microprocessor-based systems. 
Knowledge of data communication 
systems and some analog experience 
is a plus. 



MH3 



WHAT 

DOES IT ALL 

MEAN? 




You can call anybody a programmer analyst, given a few basic 
elements. At Keane, our titles mean more than an impressive 
name on your business card. 



Keane Pro-gram-mer An-a-lyst: 

1. (n.) One who is responsible for working under minimal supervision for a 
leading computer consulting firm. May be called on to perform technical tasks 
ranging from business s y stems design to p ro gram devel op ment. 2. (v. ) Interacts 
with clients, works on varie ty of challen ging assignments. Plans, organizes and 
leads others. 3. (adj.) Highly motivated. Aggressive, stro ng in inter p ersonal 
skills. Interested in getting ahead. 4. {adj.) Experienced. Minimum of 2 or more 



gears Commercial/COBOL. Knowledge of CICS, DB/DC, DL/1, IMS/TP, IDS or 



IDMS is a plus. 5. (Synonym) None. There is no one quite like a Keane Pro- 
grammer Analyst. 

In addition to Programmer Anal ysts, we are also looking for P roject Manage rs 
s for our nine branch offices throughout New England. We of- 
fer competitive salaries and benefits that include health, dental, bonuses, merit 
raises and much more. 

Call Dick Pippin, New England Recruiting Manager, at (617) 482-3321, 
or send your resume to him at Keane, Inc., 30 Federal Street, Boston, 
MA 02110. We are an equal opportunity employer, M/F. 



One of the key elements of our 
success in the marketplace is the 
total commitment of our Research 
& Development organization to 
keep us on the leading edge of com- 
puter technology. This commitment 
manifests itself through highly visi- 
ble engineering opportunities where 
achievement is recognized and 
rewarded. If you agree that the 
challenge of technical excellence 
should be enhanced by growth in- 
stead of being frustrated by it, the 
Prime difference might be right for 
you. Listed below is a brief synop- 
sis of our major disciplines with a 
list of positions we are currently 
staffing. 

HARDWARE 

Principal activities in this area 
include the design and development 
of fully compatible 32 bit pro- 
cessors and associated peripherals. 
We are also engaged in a major 
new emphasis on in-house LSI 
technology and sophisticated CAD 
tools for both electrical and 
mechanical applications. 

Processor Development 

Memory Systems 
Power Systems 
Hardware Programs and 

Planning 
Special Systems/Hardware 
Microelectronics 

• Design Engineering 

• Process Engineering 

• Application Programming 
Peripheral Development 

• Disc Controller and Subsystems 

• I/O Subsystems 

• Terminal Development 
Mechanical Design 

• Sr. Technical Contributors/ 
Advanced Packaging 

• Sr. Mechanical Engineers 
Computer-Aided Design 
Mechanical CAD/CAM 

• Manager/Mechanical CAD 
Systems 

• Software Engineers 
Electrical CAD Systems 

• Software Engineers 

• CAD Instructor 
Communications 



For the above areas, 
contact Martha Polachi 
at 879-2960, Ext. 3266. 



SOFTWARE 

Our "Software First" 
philosophy combined with our 
diverse product offerings provide 
constant challenges for our soft- 
ware engineers. Continued ex- 
cellence is dependent upon filling 
key future development positions 
now. If you have untapped talents 
in the following areas, we invite 
you to see what well managed in- 
novation can offer. 

Translator and Compiler 
Development 

• COBOL 

• Microprocessors 

• Translators 

Software System Performance 

Evaluation 
Office Automation 
Data Management 



For the above areas, 
contact Glenn Tines 
at 879-2960, Ext. 4019. 



PRIME 

Computer 



RESEARCH & 
ADVANCED SYSTEMS 

Expanded and innovative ef- 
forts in the areas of Reliability, 
Availability and Serviceability, 
combined with state-of-the-art 
systems architecture and network- 
ing, put this group on the leading 
edge of Prime's Advanced Develop- 
ment effort. 

Advanced Development Manager 
Reliability, Availability, 

Serviceability 
Human Factors Research 
Database Research 



For the above areas, 
contact Charlie Cohen 
at 879-2960, Ext. 3288. 

To learn more about a career 
with PRIME, contact the ap- 
propriate recruiter named above 
or forward your resume to 
their attention at PRIME COM- / 
PUTER, Dept. MH6, 500 Old 
Connecticut Path, Framingham, 
MA 01760. (617) 879-2960. Prime 
is an Affirmative Action 
Employer, seeking outstan 
ding individuals. 




MH5 




UNABASHED 
SUCCESS AND 
WE'RE READY 
TO SHARE IT! 

We've entered a crowded market and pushed, 
the competition aside. Today, HARRIS 
COMPUTER SYSTEMS DIVISION is 
growing at a compound annual rate of nearly 
30%. This expansion will continue to 
accelerate as emphasis on CAD/CAM, 
energy and systems create a greater demand 
for the Harris supermini-computer. 

Now we're developing improved 
architecture, even greater performance and 
an expanded range of applications. These 
developments will lead to opportunity for the 
skilled SOFTWARE or HARDWARE 
ENGINEER looking for a place to step out of 
the crowd. If you have a BSCSor BSEE, 3-5 
years of experience and a great deal of 
promise, let's talk about unabashed success! 

A high salary, great benefits and fine 
working environment are only part of what 
awaits you when you join Florida's largest 
industrial employer. We're offering you a 
way of life in the sunny, income tax free state 
where off hours can be spent at almost every 
conceivable form of recreation and relaxing. 
But find out why high performance on the 
job can lead to better performance all 
around. For details, call Jan Kelley. toll free, 
at 1-800-327-4986 or send your resume 
including salary history to: HARRIS 
COMPUTER SYSTEMS DIVISION, 2101 
West Cypress Creek Road, Ft. Lauderdale, 
Florida 33309. 




^L/L/U 



COMMUNICATION AND 
INFORMATION PROCESSING 



An Equal Opportunity Employer M/F 




THE TIME IS NOW. 
THE COMPANY IS 
DRC. 

At DRC you'll find an environment 
that encourages personal growth 
through high visibility, project mobil- 
ity and technical recognition, both in- 
ternally and through direct customer 
contact. You'll be part of a small 
team of highly skilled technical pro- 
fessionals performing Systems 
Analysis and Engineering Studies for 
DOD program managers. With the in- 
creased emphasis on Defense 
Systems, the time is now to grow 
with a leader in the industry. 

We are specifically interested in 
people with a BSEE, MS preferred, 
with 5 to 10 plus years systems level 
experience in these topical areas. 

• Automatic Test Equipment 
for use on military avionic 
systems 

• Military Aircraft Displays and 
Instruments 

• Fire Control Systems and 
Airborne Computers 

• State-of-the-art Radar and 
ECM Systems 

• IMU Component Reliability 
Analysis 

• Military Digital Computers 
and associated Automatic 
Test Equipment 

• Inertial Component Test 

• Creative Design 
(Analog/Digital) of laboratory 
test equipment 

• F-16 Avionics Intermediate 
Shop Management— Manage- 
ment Information Systems 

• Signal Processing for Elec- 
tronic Warfare, ECM, ECCM 

• Life Cycle Cost Analysis 

• Operations Research for air- 
borne and ground based 
electronic systems 

• Logistics Support Analysis 
for weapons systems 
applications 

To learn more about these ex- 
citing opportunities, please forward 
your resume, including salary infor- 
mation, to Don Shanley, Dept. MH6 
Dynamics Research Corporation, 60 
Concord Street, Wilmington, MA 
01887. 

An equal opportunity employer, M/F. 

DYNAMICS RESEARCH CORPORATION i 



MH6 




ELECTRONIC 
ENGINEERS 



If you're the kind of engineer who enjoys the challenge of new technological problems, investigate the 
professional positions available with The Aerospace Corporation. We seek scientists and engineers with 
I'h.D or M.S. in EE or Physics with background in one of these areas: 



Laser Communication Engineer 

Perform analysis, design and development of laser 
communications systems for a variety of space 
programs, as well as other applications. In addition to a 
background in communications systems, you should be 
knowledgeable in the various laser transmitter 
technologies including solid state and gas, as well as 
laser receiver and optical components. 

RF Systems Design 

Antenna design studies, RF link calculations for 
communications satellites, propagation studies to 
determine link margins. A broad RF background, and 
the ability to perform systems trade analysis for 
terrestrial communications networks involving large 
antenna and microwave subsystems are desirable. 

Communications Systems Analysis 

Statistical analysis of communications systems. The 
ability to perform coding systems studies, link 
calculations for communications satellites, modulation 
and spread spectrum studies and systems trade analysis 
for communications networks is desirable. 



Optical and Electro-Optical 
Systems Analysis 

Analysis and laboratory evaluation of optical and 
electro-optical components and systems such as CCD 
imaging and signal processing devices, lasers, laser 
modulators, fiber and integrated optics, and coherent 
optical processing. Image analysis, diffraction effects, 
optical systems design and specifications. 

Space Power Systems 

Analysis of the design, processing, assembly and testing 
of solar cells and arrays, procurement and testing of 
batteries, and electrical integration of solar arrays and 
batteries into power systems. 

For a more rewarding career please forward your 
resume to: 

The AerosDace Corporation 
Professional Placement Dept. KK 

2350 E. El Segundo Blvd. 
El Segundo, CA 90245 




The Aerospace Corporation 

Where There's Space R>r\bur Ideas 

An Affirmative Action Employer • U.S. Citizenship Required 



MH7 



The Challenge 
of a Thought 



MITRE accepts that challenge every 
day. Throughout the projects we under- 
take as General Systems Engineer to 
the U.S. Air Force's Electronic Systems 
Division, we have the same goal in 
mind: turning a good idea into an 
operational reality. 

This is a great simplification of our 
work in C 3 (Command, Control and 
Communications), but essentially it 
comes down to these basics: 

Isolate the need. Figure out what we 
think might work. Try it out and make 
sure it will work. And finally — bring 
it to fruition as a real capability in 
the field. 

Our elite group of systems engineers 
has an unusual opportunity to provide 
technical leadership in concept 
development, design, demonstration 
and evaluation — and the satisfac- 
tion of seeing their thoughts come to 
tangible completion. And with the 
project-to-project mobility that is intrin- 
sic in MITRE's structure, they know 
there will be another challenge waiting 
after this one. 




Is to 
Make 14 
a Reality. 

If you have a degree and background in 
any of the following aspects of C 3 , you 
should consider the challenge of 
MITRE. This is a thought that could 
make your career an entirely differ- 
ent reality. 

COMPUTER SYSTEMS 
RADAR SYSTEMS 



MAKE YOUR COMMITMENT TO EXCELLENCE. 



rf 



FOR THOSE WITH THE 
TECHNICAL "MIDAS TOUCH 

The next two decades may be 

the most challenging — the most rewarding! 

IT DEPENDS ON WHERE YOU ARE! 

Grumman Aerospace is dedicated people combining their skills and re- 
sources to find realistic solutions to many of today's most urgent problems. 
It takes the best talents and efforts of many kinds of people, working 
together, to produce the high-performance systems and vehicles demand- 
ed of today's aerospace industry. Grumman pursues excellence in the de- 
sign and development of a wide range of advanced aerospace products as 
well as other exciting projects. 

We will need more of the best and most innovative minds to continue 
meeting these challenges of the future. 

Immediate openings now exist in the following areas for degreed engin- 
eers (or equivalent experience) 

• Systems design, analysis and integration (EW, 
ECM) 

• Guidance and control • Software development 
Field representatives 

(U.S. Navy aircraft carrier deployment) 



If you would like to apply your talents to forward-looking 
programs send a comprehensive resume and salary 
requirements in strictest confidence to Kaye B. Perry, 
Manager, Employment Development, Grumman Aero- 
space Corporation, Plant 28, South Oyster Bay Road, 
Bethpage, NY 11714. 

U.S. Citizenship Required/An Equal Opportunity Em- 
ployer 



GRUMMAN 




SYSTEM SOFTWARE 
COMMUNICATIONS 
COMMAND AND CONTROL 
SYSTEMS ARCHITECTURE 

Send your resume including current or 
required salary to David L. Finnegan, 
4506 Middlesex Turnpike, Bedford, MA 
01730. U.S. Citizenship or resident alien 
registration required. 

MITRE is an equal opportunity 
employer actively seeking applications 
under its affirmative action program. 



MITRE 





STAFF DESIGN 
ENGINEERING 
PROFESSIONALS 

$25,000 to $60,000 



Large Scale Computer 
System Development 

Our client, a prestigious leader in the computer 
industry, has outstanding opportunities to work 
and live in the scenic rural environment of New 
York State's beautiful Hudson Valley. Positions 
are presently available in the following disci- 
plines: 
Digital Logic Designers 

You will be involved in digital logic design utiliz- 
ing state-of-the-art devices and technologies. 
Advanced Semiconductor 
Device Engineers 

You will be involved in designing high speed 
microprocessor and memory products. 
Software Architects 

You will be designing and integrating high level 
languages with large scale systems. 

All of these positions require a B.S./M.S. Elec- 
trical or Computer Science Engineering Degree 
and a minimum of 18 months work experience in 
one of the above disciplines. An ability to con- 
ceive and develop innovative ideas is also neces- 
sary. 

You will enjoy an excellent starting salary and 
an outstanding comprehensive benefits package. 
For confidential consideration, send your re- 
sume, a letter of interest, or call: (914)471-9700. 



THE 



Mr. Eugene Olan 
59 Academy Street 
Poughkeepsie, N.Y. 12601 
Our client is an equal 
opportunity employer 
and assumes all fees. 

Technical Division of Ethan Allen Personnel 



HUDSON 



GROUP 



MH8 




^Y£} 





Our 

products 

range in 

size from 

devices to supersystems. Our technological range 
invites more striking comparisons — mini- and micro- 
computers, distributed processing, high density 
packaging, electro-optics, automation, and C 3 I systems 
to cite a few. 

We employ about 300 
engineers and are the only RCA 
plant in New England. This 
means individual achievers get 
high visibility in our informal structure, yet we can call 
upon RCA's worldwide corporate resources. Last year, 
we upgraded or promoted over 25% of our engineers. 

We have openings for engineers 
who can design software, test 
systems, high density packages, 
maintainability and reliability 
programs, and complex computer-based systems. 

Our sales have tripled and our employment doubled in 
the past five years. Our growth plan for the next five years 

shows even brighter prospects 
for the future. Become a part of 
this Tradition on the Move, 
contact Roger Bishop, 
Employment Manager, 
RCA Automated Systems, P.O. Box 588, Burlington, MA 
01803,(617)272-4000. 




r\ 




ItCJI 




ATRADITION ON THE MOVE 1 



MH9 




DON'T WAIT FOR 
TOMORROW... 

CREATE IT. 



When creative ideas are needed for 
new and unprecedented software 
systems, the people to see are at 
Sof Tech. We take new techniques and 
old approaches and combine them to 
find the best possible solution to any 
given problem. 

At SofTech, you will have the opportunity to 
apply your abilities to exciting, real-world 
problems in such diverse areas as: 

• Language design and compiler 
development 

• Communications 

• Software engineering facilities 

• Data base systems 

• Requirements analysis 

• Signal processing applications 

• Operating systems and executives 

• Computer-aided design and computer- 
aided manufacturing. 

• Sale and enhancement of microprocessor 
software products — sole world-wide 
distributor of the UCSD p-System 

If you have the talent and vision to add to our 
international reputation for excellence in the 
development and application of new 
systems and software technology, your best 
position is waiting at SofTech. 

We offer opportunities for professional 
growth inherent in a 300 person 
environment, coupled with excellent starting 
salaries and outstanding benefits. Please 
send your resume and salary requirements 
to Judith M. Forsythe, Dept. 525, SofTech, Inc., 
460 Totten Pond Road, Waltham, MA 02 154; 
or call toll-free 1-800-225-8854. 

an affirmative action/equal opportunity employer 




THE SOFTUJRRE TECHnOLOGV COrTIPRnv 



Move Up To STC . . . 
And COLORADO! 

Storage Technology Corporation is 
the world's largest manufacturer of 
high performance tape and disk 
storage equipment and a major 
producer of high speed line printers. 
A Fortune 500 company, we're locat- 
ed at the base of the magnificent 
Rocky Mountains and just minutes 
away from Denver. We offer you ex- 
citing career opportunities and the 
kinds of challenges that stimulate 
the most innovative of minds. Our 
current openings for qualified 
professionals include: 

Manufacturing 
Engineering Managers 

• 
Development Engineers 

Mechanical Engineers 

Test Engineers 

• 

Power Systems 

Engineers 

• 

Software Test Engineers 

• 

Test Design 

Engineers 

• 

VLSI Design Engineers 

• 

Senior Systems 

Programmers 

• 

Quality Engineers 

• 

Senior Product 

Specialist 

• 

Marketing Product 

Line Planner 

If you like to see your ideas impact 
the industry, we'd like to hear from 
you. We provide an excellent com- 
pensation package that includes 
health, dental and life insurance 
benefits, stock purchase plan, com- 
petitive relocation assistance and 
more. For consideration, please 
send your detailed resume in ab- 
solute confidence to STORAGE 
TECHNOLOGY CORPORATION, 

Dept. MID, 2270 South 88th St., MD 
#29, Louisville, CO 80027. We are an 
equal opportunity employer. 




MH10 



We'll Give Yju Something to 




About 



GTE Systems' Strategic Systems Divi- 
sion boasts the largest group of 
engineering professionals dedicated to 
C 3 in this part of the country. Profes- 
sionals dedicated to such projects as: a 
radio communications system that in- 
corporates over 600 VLF, MF, VHF, UHF 
and SHF radios; the world's largest fiber 
optics cable network, over 15,000 
kilometers; a hierarchy of over 5000 com- 
puters; and one of the largest software 
communications networks ever 
developed. 

In the past year alone, over 600 
engineers made Strategic Systems Divi- 
sion their first choice. 

They came from major high-technology 
centers all over the United States. ..from 
England and Canada. Engineering pro- 
fessionals at all levels of experience. 
Over 600 of them chose to make their 
move to GTE Systems' Strategic 
Systems Division (SSD). All with the 
realization that our tremendous success 
and the incredible sophistication of our 
technology make SSD the best place to 
be for C 3 (command, control and com- 
munications). 

Our proven C 3 expertise has been 
dramatically illustrated in such state-of- 
the-art, long-term programs as the MX 
and Minuteman. In addition, our Power 
Systems Organization is recognized as a 
leader in the design, development and 
manufacture of high energy Lithium Bat- 
tery power sources. Right now, we're 
continuing our successful mode as we 
actively pursue new and more advanced 
programs in the C 3 and power systems 
industries. 

Perhaps another consideration that has 
given SSD an edge is our advantageous 
location. Here, in Eastern Massa- 
chusetts, GTE professionals enjoy the 
cultural and educational riches of this 
prized New England environment, the in- 
tellectual stimulation of our famed 
Route 128 electronics belt and the 
recreational advantages of our distinc- 
tive seasons so enhanced by easy ac- 
cess to winters in New Hampshire and 
Vermont and spectacular summers on 
the sandy beaches of Cape Cod. All this 
in an area that claims the extraordinary 
benefits of easily affordable homes, 
both in suburban and rural areas. 



Hardware 
Engineering 



D 



Distributed Processing 

Modems 

Data and Voice 

Multiplexing 

Switching 

Microprocessor 

Hardware and 

Firmware Design 

Power Supply Design 

(High-Efficiency, 

Switching) 

Analog Design 

Frequency Synthesizers 

Digital Radio 

Digital Signal 

Processing 

Fiber Optics Interfaces 

Electronic Surge 

Arrestors 

Display and Control 

Telephone Switching 

I/O Controller Design 

Antenna Design: 

VLFSHF 

Equipment Integration 

COMSEC Interface 

Servo Design 

C 3 Simulator Design 

EMC/Tempest Design 



Software 
Engineering 



Real-Time Command 

and Control 

Telecommunications/ 

Computer Networking 

Real-Time Simulation 

Diagnostics/ATE 

Operating Systems and 

Compilers 

Microprocessor 

Development 

Data Base Management 

Telephony 

Systems Programming 

Support Software 



Test 
Engineering 

□ Test Planning 
and Analysis 

□ Unit Test 

□ Subsystems Test 

□ Systems Test 

□ Site Test 



□ 
□ 

D 



□ 



□ 
□ 
□ 
□ 
□ 

Systems 
Engineering 

U Communications Systems 

□ COMSEC Systems 

□ Systems Software 
Operability 

□ Maintenance Systems 

We will contact you. 

Simply check off the area(s) of interest, complete the 
following information and forward this page to Bill U. 
Ahalt, GTE's Sylvania Systems Group, Strategic Systems 
Division, 189 "B" Street, Needham, MA 02194. 

Name 

Phone 

Address 

State _ 
Degree 



Power Systems 

□ Research and 
Development 
Engineering 

□ Chemical Engineering 

□ Process/Production 
Engineering 

□ Program Management 

□ Quality Control 

D Mechanical Packaging 

Engineering 
D Industrial Engineering 



(HT3 



Systems 



Zip 

. Yrs. of Exp. 



an equal opportunity employer M/F 



MH11 



Reach 
for Excellence 



Share in the excite- 
ment of our outstand- 
ing achievements. Be 
part of Honeywell's 
Small Systems and 
Terminals Division 
(SS&TD) at our Billerica 
facility. And gain satisfying 
rewards in an environment 
governed by no less than 
excellence. 



Positions are available 
at most levels in: 



Since 1969, Billerica has been one 
of Honeywell's foremost engineering 
organizations with a history of significant 
technical accomplishments. 

As headquarters for SS&TD, Billerica continues 
in this vein. Most recently, with the acclaimed 
introduction of Honeywell's DPS-6 family of 
small computers. ..and the WP-6 word process- 
ing system, just the first of many advanced 
products to be announced for Honeywell's new 
office automation line. 

Throughout the coming year, and in years to 
come, our Billerica operation will continue to 
advance Honeywell's state of the art. Our 
engineers will continuously strive to find 
innovative answers in the field of LSI and VLSI, 
Terminals, Design Automation, Office Automa- 
tion, Networking and Communications, 
Distributed Data Processing and more. 

Join us in our quest for excellence. In computer 
technologies. In communications technologies. 
And in each and every thing we do. 



Honeywell 

Small Systems and Terminals Division 

300 Concord Road 

Billerica, MA 01821 

An Equal Opportunity Employer M/F/H 



Terminals Software 

Development 
Product Planning & 
Specification 
Product Test 
Programming & 
Systems Analysis 
New Terminal Products 
Development 
CAD/CAM Design 
Systems Design 
Custom Software Development 
Terminals Hardware Development 
Firmware & Maintainability Systems 

Engineering 
Analog Design 

Custom Terminals Hardware Engineering 
Mechanical Design & Engineering Support 
Design Automation 
Semiconductor Design 
VLSI & LSI Design 
Disk Controller Design 
Components & Materials Engineering 
Maintainability & Systems Design 
Hardware & Systems Test 
Peripheral Subsystem Design 
Hardware & Software Technical Writers & 
Editors 

To investigate the above positions, please 
forward your resume to Don B. Bats ford. 



inljomputers 
2gyearsin 
Massachusetts 



Honeywell 



People, 



X)ur C ompetitive 
— tdge 



MH12 



The Landlord 



TM 




Apartment Management Software 



Keeping track of apartment availabilities, rent 
payments, security deposits, leases, and other 
administrative functions consumes a great deal of time 
and attention for apartment owners and managers. You 
and your staff proPably spend countless hours dealing 
with the paperwork necessary to manage your property. 

With the Landlord'" apartment management 
software and an Apple II* computer, file cabinets full of 
paperwork and the frustrations of cumbersome 
bookkeeping procedures can be eliminated. The 
clerical work for your apartments can be accomplished 
with greater accuracy in a fraction of the time you 
presently spend. The Landlord™ will keep up-to-date files 
on apartments and residents as well as detailed records 
of property income and expenses. 

You'll be able to enter, change, or delete information 
by following the simple English instructions that appear 
on the screen of the Apple II". The Landlord™ will 
automatically organize and store your data and make 
it available for your review at any time. With the 
Landlord™, your resident manager can instantly 
determine where apartment vacancies exist and when 
additional units will become available for rental. The 
Landlord™ also keeps track of resiaent payments, letting 

"Apple II is a registered trademark of Apple Computer, Inc. 

The Landlord is a trademark of MIN Microcomputer Software. Inc. 



you see at a glance who is behind on rent or other 
payments. Property and tax analysis reports are printed 
automatically each month and allow you to monitor 
the profitability of your apartments. 

The Landlord™ apartment management software 
and the necessary Apple II" equipment are available for 
less than the cost of a new sub-compact car. If you own 
or manage an apartment property with no more than 
400 units, visit your nearest computer dealer for a 
demonstration. 

""bY88T" 

Please return this coupon for more information about 
the Landlord™ and the name of the dealer nearest 
you. 

Name 



Company 
Address _ 



City/State 



Zip. 



MIN MICROCOMPUTER SOFTWARE. 

5835-A Peachtree Corners East 
Norcross, Ga 30092 



INC 



Circle 251 on inquiry card. 



BYTE August 1981 



81 



However, nothing is known outside the window about 
how it responds to these messages. (It is known that a 
window will move when asked to, but it is not known 
how it accomplishes the move.) 

The set of messages an object can respond to is called 
its protocol. The external view of an object is nothing 
more than its protocol; the internal view of an object is 
something like a data/procedure system. An object has a 
set of variables that refers to other objects. These are 
called its private variables. It also has a set of methods 
that describes what to do when a message is received. The 
values of the private variables play the role of data and 
the methods play the role of procedures. This distinction 
between data and procedures is strictly localized to the 
inside of the object. 

Methods, like other procedures, must know about the 
form of the data they directly manipulate. Part of the 
data a method can manipulate are the values of its 
object's private variables. For example, we might imagine 
three ways that a window represents its location and size 
(internally). The private variables might contain: 

• four numbers representing the x and y location of the 
center, the width, and the height 

• two points representing opposite corners of the window 

• a single rectangle whose location and size are the same 
as the window's 

The method that moves a window (the response to 



Some things are just 
naturally right. 



tin 



W 



tiny-c is a structured programming language designed to 
allow you to focus attention on the problems you want to 
solve — rather than the language you're using to solve it. With 
tiny-c you can expand your horizons far beyond the limits of 
BASIC, tiny-c ONE (interpreter), $100- includes Owner's Manual 
plus wide choice of media, source code. It's still the best struc- 
tured programming trainer. Tiny-c TWO (compiler), $250 - 
includes Owner's Manual, CP/M® disk, source code. This 
version puts UNIX® pleasure into your CP/M. 

tiny c associates, P.O. Box 269, Holmdel, NJ 07733 
(201) 671-2296 

* g , . You'll quickly discover tiny-c is 

1^^/ naturally right for your language 



<y 



needs. 

New Jersey residents include 5% sales tax. Visa or Master 
Charge accepted. Include charge plate number with order. 
• CP/M is a trademark of Digital Research. Inc. 
- UNIX is a trademark of Bell Labs, Inc. 
® tiny-c is a trademark of tiny c associates. 



messages with the selector move) assumes that a par- 
ticular representation is used. If the representation were 
changed, the method would also have to be changed. 
Only the methods in the object whose representation 
changed need be changed. All other methods must 
manipulate the window by sending it messages. 

A message must be sent to an object to find out 
anything about it (ie: our concept of manipulation in- 
cludes inquiring about information, as well as changing 
information). This is needed because we don't want the 
form of an object's inside known outside of it. The 
response to a message may return a value. For example, a 
window's response to the message width returns an object 
that represents its width on the display (a number). The 
method for determining what to return depends on the 
form of the window's private variables. If they are 
represented as the first alternative listed above (four 
numbers), the response would simply return the value of 
the appropriate private variable. If the second alternative 
is used (two points), the method would have to determine 
the width from the x coordinates of the two corners. If 
the third alternative is used (one rectangle), the width 
message would simply be passed on to the rectangle and 
the rectangle's response would become the window's 
response. 



Classes and Instances 

Most object-oriented systems make a distinction be- 
tween the description of an object and the object itself. 
Many similar objects can be described by the same 
general description. The description of an object is called 
a class since the class can describe a whole set of related 
objects. Each object described by a class is called an in- 
stance of that class. 

Class: A description of one or more similar 
objects. 

Instance: An object described by a particular 
class. 

Every object is an instance of a class. The class 
describes all the similarities of its instances. Each instance 
contains the information that distinguishes it from the 
other instances. This information is a subset of its private 
variables called instance variables. All instances of a class 
have the same number of instance variables. The values 
of the instance variables are different from instance to in- 
stance. An object's software (ie: the methods that 
describe its response to messages) is found in its class. All 
instances of a class use the same method to respond to a 
particular type of message (ie: a message with a particular 
selector). The difference in response by two different in- 
stances is a result of their different instance variables. The 
methods in a class use a set of names to refer to the set of 
instance variables. When a message is sent, those names 
in the invoked method refer to the instance variables of 
the message receiver. Some of an object's private 



82 August 1981 © BYTE Publications Inc 



Circle 385 on inquiry card. 



SuperSoft's 

Gallery of CP/M Masterwork§ 




Programming Languages 
"C" 

FORTH 

FORTRAN IV 

RATFOR 

BASIC 

TINY' PASCAL 


Disk/Manual Only 

$200/20 

$200/25 

$250/25 

$100/NA 

$200/25 

$ 85/10 


System Maintenance 

Diagnostics II 
Diagnostics 1 
DISK DOCTOR 


$100/15 
$ 75/15 
$100/15 


Utilities 

Utility Pack#1 
Utility Pack #2 


$ 60/NA 
$ 60/NA 


Text Processing 

TFS 

Super-M-List 


$ 85/15 
$ 75/10 


Software Security 

Encode/Decode II 
Encode/Decode I 


$100/20 
$ 50/20 


Intercommunications 

TERM 
TERM II 


$150/15 
$200/15 


Entertainment 

ANALIZA 
NEMESIS 
Dungeon Master 
(For use with Nemesis) 


$ 35/NA 
$ 40/NA 
$ 35/NA 


Miscellaneous 

Z8000 Cross-Assembler 
"C" Cross-Compiler 
(Z8000 Target) 


$500/25 
$500/25 






TERM 



A Complete Networking/Intercommunications Package 

TERM allows the CP/M user to communicate with 
other CP/M based systems or with remote timesharing 
computers. TERM supports file transfers between both 
timesharing systems and between CP/M systems. 

TERM equals or exceeds comparable programs in 
power and flexibility, but costs less, delivers more and 
source code is provided on discette! 

With TERM you can send and receive ASCII, HEX 
and COM files. You also have a conversational mode, 
and a timesharing terminal emulator. Below is a partial 
list of features: 

• Engage/disengage printer • terminal emulator 

• auto error checking with re-try 

• conversational mode 

• send files • receive files 



requires 32K CP/M and a minimal knowledge of assembly language 
programming. 

TERM is supplied with source and user manual: $150.00 
Manual only: $15.00 



^ ■ ♦"♦"♦"♦"♦"< 



TERM 



i"*"*"»"*"*" fl 



Many programs include SuperSoft's online "HELP" system! 



fe 



W^ 



TfiHhrfnrfirfirfii'f-irfirfirfvfirfirTirT-irfTff- 



S3H 



SUPERDI5KS FOR SALE! 

SuperSoft Has Great Prices on Blank Discettes 

SuperSoft sought out and found a discette that 
met our high standards. In the software distribution 
business we needed a discette that was reliable, 
sturdy, durable, and inexpensive We wanted no data 
errors on any discette that we shipped 

• Guaranteed 

• Data density in excess of 3200 b.p.i. 

• Approved by Shugart, Persci, Qume, Remex, others 

• Operating temperature: 50-120 degrees Fahrenheit 
Discette type [ price per box 

Single Sided Single Density: 

Soft sectored IBM compatible 8": $30.00 

1 hard sectors 5%': $30.00 

16 hard sectors 5% ": $30.00 

Single Sided Double Density: 

Soft sectored IBM compatible 8": $35.00 

10 hard sector 5% ": $35.00 

16 hard sector 5JC: $35.00 

'Add $15.00 for Double Sided Discettes 
Illinois residents add 5% 
Add $1 .00 shipping per box 

All SUPERDISKS are sold only in lots of 10 Each comes with jackets and box All orders musl be ore- 
paid or C O D Generally we ship trom stock with arrival times running about 8- 10 days 



h 



U^L i M4M^iL^L iJV g IKff Sf SCfiL^i t ^^kl*kȴ^r 



3E*( 



For complete information on these and all other 
SuperSoft products, please write for our free catalogue. 

All software can be supplied on the following media: 
CP/M formats ... 8" sft sectored, 5" Northstar, 
5" Micropolis Mod II, Vector MZ, Superbrain DD/QD, 
Apple 11 + 



All Orders and General Information: 
SUPERSOFT ASSOCIATES 
P.O. BOX 1628 
CHAMPAIGN, IL 61820 
(217) 359-2112 
Technical Hot Line: (217) 359-2691 
(answered only when technician is available) 

■CP/M REGISTERED TRADEMARK DIGITAL 
RESEARCH 

SSS FORTRAN is the copyright of 
Smalt Systems Services, Urbana. Illinois 



24 hour express service available! 

SuperSoft 

First in Software Technology 



Prices suD/ecf to cnange without notice 



Epson Printers 




PRINTERS, 

MONITORS 

DISKS 



Amdek Color Monitor $?. . -V/\]l 369 

Amdek Green Screen : . . .\1 159 

Amdek/Leedex B/W 12" Monitor 129 

Centronics 737 737 

Daisey Wheel Printer 1750 

Epson MX70 CALL 

Epson MX80 FT CALL 

Epson MX80 CALL 

NEC Spinwriter #5510 2590 

Paper Tiger 445G 725 

Paper Tiger 460G 1 175 

Paper Tiger 560 1495 

Silentype w/interface 529 

Sanyo 9" B/W Monitor 169 

Sanyo 12" B/W Monitor 255 

Sanyo Green Screen 309 

NEC Green Screen 239 

Televideo 912C 669 

Televideo 920C 749 

Dysan Disks (pkg. 10) 50 

Memorex Disks (pkg. 10) 40 

Opus Disks (pkg. 10) 30 

Verbatim "Gold" (pkg. 10) 35 




^ ATARI" 

C 7QQ MAKES 

J> f Ow IT . WE 

SELL IT 

Assembler/Editor 45 

Atari 800 789 

Atari 400 8K 419 

Atari 820 Printer 429 

Atari 810 Disk Drive 499 

Atari 410 Program Recorder 69 

Atari 825 Printer 695 

Atari 850 Interface 169 

Atari Joystick 18 

Atari Paddles 18 

Le Stick 35 

16k RAM Microtek 99 

Microtek 32K RAM 189 

Visicalc 180 

Basketball 30 

Video Easel 30 

Super Breakout 30 

Music Composer 45 

Computer Chess 30 

Star Raiders 45 

3-D Tic-Tac-Toe 30 

Invitation to Programing 17 



LEEDEX VIDEO 1 00 jfe MONTHLY jfc 

12" Black & White $139 ^ SPECIALS ^ 



CENTRONICS 737 

cable sxlra I O f 




AVAILABLE FOR IMMEDIATE SHIPMENT 

oSrVx^ l+fS> *+/• Pinr speed 
Y^/ VL"*//' 25 CP5 

Paper width 

381mm (15") max. 
flacked by C. Iroh's 1 yr. 
limired warranty 



Interface — standard parallel or 'tej&te- 
KS232-C compatible ^fl^,, 

Ready-to-use, requiring no changes * "^ : -S s :-.^5 

in hardware or software 
Compatible with sheet feeders G . Excellent letter-quality 

uses industry standard ribbon printing on 3 sharp copie 

cartridges 





TO ORDER: Phone orders invited using Visa. Mastercard or 
bank wire transfers. Visa and MC service charge of 2%. Mail 
orders may send charge card number (include expiration date), 
cashiers check, money order or personal check (allow ten 
business days for personal or company checks to clear). Include 
3% ($5 minimum) for UPS shipping, handling, and insurance, 
Calif, residents add 6% sales tax. Please include phone number. 



No COD or PO accepted. APO and FPO include 5% for postage 
FOREIGN ORDERS include 1% handling— shipped air FREIGHT 
COLLECT only. Credit cards not accepted on foreign orders. 
All equipment is in factory cartons with manufacturers warranty. 
Opened products not returnable. Restocking tee for returned 
merchandise. Equipment subject to price change and avail- 
ability. Retail store prices differ from mail order prices. WE 
SHIP THE SAME DAY ON MOST ORDERS! 




(714) 579-0330 • MAIL TO: 1251 Broadway, el cajon, ca. 92021 




^aaaamyaigs 



div or 

COMPUTER 

METRICS 

INC 



Circle 76 on inquiry card. 



DISK with CONTROLLER 
NEW DOS 3.3 $529 
without . . . $445 
Nearly Everything 
for Apple 




fcipple ][ 
i6K computer 




APPLE II 48K 

$1095 



^- WE WILL MEET OR BEAT 
ANY ADVERTISED PRICES 
ON MOST ITEMS IF MERCHANDISE 
IN STOCK 

APPLE SOFTWARE 



Adventure by Microsoft 27 

ABM by Muse 22 

Alien Rain by Broderbund 22 

Applebug Debugger 29 

Apple PIE 129 

Apple Pilot 129 

Apple Plot System 59 

Applepost Mailing List System 44 

Applesoft Cassette Demos 29 

Apple Game Paddles 26 

Applesoft Utility Programs 29 

Applewnter Word Processor 65 

Ascii Express 65 

Asteroid Field by Cabalier 19 

Autostart ROM Pkg 59 

Controller Bus. Pkg 514 

Cosmos Mission/Space Invaders. ... 24 

CCA Data Mgmt 84 

3-D Animation Pack 55 

Data Factory by Microlab 129 

Desktop Plan II 169 

DB Master by Stoneware 209 

DOS Tool Kit 65 

DOS 3 3 Upgrade 49 

Dow Jones Portfolio Evaluator 45 

Forth II by Softape 45 

Fortran for Language Sys 159 

Galaxian by Broderbund 23 



Hi Res Football 33 

Head-on 25 

Integer Basic Cassette Demos 29 

Pascal Language System 459 

Peachtree Bus Pkgs CALL 

Personal Filing System 84 

Phantoms Five 39 

Raster Blaster by Budge Cc 24 

Sargon II Chess Game disk 32 

Single Disk Copy Routines 35 

Space Game Album by B Budges ... 39 

Space Eggs 25 

Star Cruiser 24 

Stellar Trek 23 

Sub-Logic FS-1 Fit Sim disk 34 

Supertext II by Muse 129 

3-D Graphics Tool by B Budges 39 

Tranquility Base 24 

Trilogy by Bill Budge 24 

Visicalc II 169 

Visihst CALL 

Wizard and the Princess 32 

Zork 34 

LARGE SELECTION OF 

SOFTWARE IN STOCK — 

CALL FOR FREE BROCHURE — 




CALL 
PHONE 
MON. - 

Circle 76 on inquiry card. 



1-800-854-2833 

ORDERS 
SAT. 8 to 6 P.S.T. 



APPLE COMPUTER 
INTERFACE CARDS 

ALS Smartterm 324 

Apple Clock/Calendar Card 

by Mtn. Comp 225 

Applesoft II Firmware Cd 149 

CCS Asynchronous 7710A 145 

CCS Parallel Print Cd. 7720A 155 

Centronics Interface Cd 179 

Comm. Cd. & DB25 Cable 179 

CPS Multifunction by Mtn. Comp. . . 259 
Expansion Chassis by Mtn. Comp. . . 649 

HiSpeed Serial Int. Cd 155 

Integer Basic Firmware Cd 149 

ROMPLUS (keyboard filter extra) ... 135 

Serial Interface Card 139 

SSM AIO Serial/Parallel I/O 

Assembled & Tested 189 

ACCESSORIES 

A/D D/A Board by Mtn. Comp 319 

Andromeda 16k Ramcard 179 

Arith. Processor 781 1 A or B 339 

COPYROM by Mtn. Comp 51 

Dan Paymar L.C. Kit 1 or 2 55 

Extender Board 27 

GPIB by CCS model 7490A 259 

Graphics Input Tablet 649 

Hayes Micromodem' 319 

Introl X-10 Remote Control Sys 239 

K & D Joystick for the Apple 47 

Keyboard Filter ROM chip 49 

M & R Sup-R-Term 80 column board 319 

Music System by Mtn. Comp 479 

Programmable Timer CCS 7440A . . . 159 

Prototyping Hobby Card 22 

ROMWRITER by Mtn. Comp 149 

SuperTalker Speech Synthesizer. . . . 239 

Symtec Light Pen 214 

Versa-Writer Digitizer 

Drawing System 209 

Videx Keyboard Enhancer 115 

Videx Videoterm 319 

Z-80 Soft Card Microsoft 295 

MEMBER, CHAMBER OF COMMERCE 



AUTHORIZFD 
APPLE 
SALES & 
SERVICE 



(^TinT°X u M^ > 




a^ar-ibsis 



DIV OF 

COMPUTER 

METRICS 

INC 



variables are shared by all other instances of its class. 
These variables are called class variables and are part of 
the class. 

The programmer developing a new system creates the 
classes that describe the objects that make up the system. 
The programmer of the window-management system 
would create a class that contained methods correspond- 
ing to the message selectors move, display, delete, width, 
and height. This class would also include the names of 
the instance variables referred to in those methods. These 
names might be frame, text, and title, where: 

frame is a rectangle defining the area on the 

screen, 

text is the string of characters displayed in the 

window, and 

title is the string of characters representing the 

window's name 

The classes representing rectangles and strings of 
characters are included in most systems, so they don't 
need to be defined. 

In a system that is uniformly object-oriented, a class is 
an object itself. A class serves several purposes. In a run- 
ning system, it provides the description of how objects 
behave in response to messages. The processor running 
an object-oriented system looks at the receiver's class 
when a message is sent to determine the appropriate 



refqrmaTTer 




GETS FILES ACROSS! 



With REFORMATTER disk utilities you can read and write 
IBM 3740 and DEC RT-11 single density formatted diskettes on your 
CP/M" system. 

REFORMATTER enables you to access large system databases, 
improve data exchange with other organizations, increase program 
development capabilities, and use your micro in distributed processing. 

REFORMATTER programs feature bi-directional data transfer 
and full directory manipulation. ASCII/EBCDIC conversion provided 
with CP/M <-»IBM. MPIM is now fully supported. 

Program Data Sheets, Application Guides, and Machine Compati- 
bility (iuides available. 

Each program $195.00 from stock. Specify CP/M <— IBM or 
CP/M •* DEC. Order from MicroTech Exports, Inc., 467 Hamilton 
Ave., Suite 2, Palo Alto, CA 94301 □ Tel: 415/324-9114 □ TWX: 
910-370-7457 MUH-AIJOS □ Dealer and OEM discounts available. 

hh CP/M* is a reRistercd trademark of Digital Research. Wm 



method to execute. For this use of classes, it is not 
necessary that they be represented as objects since the 
processor does not interact with them through messages 
(preventing a nasty recursion). In a system under 
development, a class provides an interface for the pro- 
grammer to interact with the definition of objects. For 
this use of classes, it is extremely useful for them to be ob- 
jects, so they can be manipulated in the same way as all 
other descriptions. Classes also are the source of new ob- 
jects in a running system. Here again, it is useful for the 
class to be an object, so object creation can be 
accomplished with a simple message. For example, the 
message new might be sent to a class to create a new in- 
stance. 

Inheritance 

Another mechanism used for implicit sharing in object- 
oriented systems is called inheritance . One object inherits 
the attributes of another object, changing any attributes 
that distinguish the two. Some object-oriented systems 
provide for inheritance between all objects, but most pro- 
vide it only between classes. A class may be modified to 
create another class. In such a relationship, the first class 
is called the superclass and the second is called the 
subclass. A subclass inherits everything about its 
superclass. The following modifications can be made to a 
subclass: 

• adding instance variables 

• providing new methods for some of the messages 
understood by the superclass 

• providing methods for new messages (messages not 
understood by the superclass) 

• adding class variables 

As an example, the window-management system might 
contain windows that have a minimum size. These would 
be instances of a subclass of the ordinary class of win- 
dows that added an instance variable to represent the 
minimum size and provided a new method for the 
message that changes a window's size. 

Conclusion 

The realization that information can describe the 
manipulation of information is largely responsible for the 
great utility of computers today. However, that 
discovery is also partially responsible for the failure of 
computers to reach the utility of some predictions made 
in earlier times. On the one hand, it can be seen as a 
unification between the manipulator and the 
manipulated. However, in practice, it has been seen as a 
distinction between software and the information it 
manipulates. For small systems, this distinction is 
harmless. But for large systems, the distinction becomes a 
major source of complexity. The object-oriented point of 
view is a way to reduce the complexity of large systems 
without placing additional overhead on the construction 
of small systems. ■ 



86 August 1981 © BYTE Publications Inc 



Circle 241 on inquiry card. 



f his time in iwif chers 



Long the recognized leader In quality open-frame linears, 
Power-One is now setting the pace in switching power supplies. 

Our fast growing line of efficient high-performance switchers 
offer a combination of features not found in others at these low 
prices. Features such as fully regulated outputs, 115/230 VAC 
input capabilities, superior hold-up time, and totally enclosed 
packaging for enhanced safety. Additionally, these models 
incorporate many other innovative ideas that set our switchers 
apart... while reflecting the same simplicity 
of design that has kept our open-frame lin- 
ears the most cost-effective in the industry. 

Best of all, Power-One switchers are 100% 
American built by Power-One personnel, at 



Power-One facilities, and under tough Power-One quality 
control standards. Adding up to total dependability at typical 
Power-One low prices. 

So check us out. See why we're leading the way again. This 
time in switchers. 

Send for our new '81 Catalog. Better yet, contact your local 
Power-One representative for immediate action. 





VOLTS 


AMPS 


MODEL 


5V 


40A 


SK5-40 


12V 


16.8A 


SK12-16.8 


15V 


13. 4A 


SK15-13.4 


24V 


8.4A 


SK24-8.4 


28V 


7.2A 


SK28-7.2 


SIZE: 2"H X 4.88" W X 13"L 



\ 



$250 

200 WATTS 










OUTPUT 


VOLTS 


AMPS 




*1 


5V 


20A 




#2 


12V 


5A 




*3 


-12V 


3A 




*4 


5V. 12V, 
15V. or 24V. 

USER 
SELECTABLE 


3.5A 




SIZE: 2"H X 4.88"W X 14"L 




MAX OUTPUT POWER: 150 WATTS 
CONTINUOUS. SUM OF ALL OUTPUTS 


r 


150 WATTS - 4 OUTPUTS 
THE UNIVERSAL SHQ-150W 


1 








m 



— 





^^^ii^ 



J VOLTS 


AMPS 


MODEL 


5V 


10A 


SD5-10 


12V 


4.2A 


SD12-4.2 


15V 


3.4A 


SD15-3.4 


24V 


2.1A 


SD24-2.1 


28V 


1.8A 


SD28-1.8 


SIZE: 2"H X 4.88"W X 6.25T, 





VOLTS 


AMPS 


MODEL 


5V 


20A 


SF5-20 


12V 


8.4A 


SF12-8.4 


15V 


6.7A 


SF15-6.7 


24V 


4.2A 


SF24-4.2 


28V 


3.6A 


SF28-3.6 


SIZE:2"HX4.88"WX10"L J< 



FREE! 



WIBMW-. 



NEW 1981 CATALOG 
AND POWER-ONE 
TOUR GUIDE 



d.c. power supplies 



POWER-ONE INC. • POWER ONE DRIVE • CAMARILLO, CA 93010 
PHONE: (805) 484-2806 • (805)987-3891 • TWX: 910-336-1297 




Circle 312 on Inquiry card. 



SEE EE M OR GOLDBOOK FOR OUR COMPLETE PRODUCT LISTING 
AND LOCATION OF YOUR NEAREST POWER-ONE REPRESENTATIVE. 



BUMPER CROP 

8-inch Winchester Multi-User Systems. Now In Volume- $8,500. 



Altos is delivering the cream of the 
crop with their new 8-inch multi-user 
Winchester disk systems. They're 
freshly packed with the quality 
features you expect from Altos, and 
at a price you expect from Altos, 
too-just $8,500. 

Pick from two fully integrated 
systems, each packaged in our new 
compact, stylish cabinet suitable for 
either rack mount or table top 
applications. You get 10 MBytes of 
reliable on-line storage in our 8-inch 
Winchester drives. Then for system 
back-up storage, you can select from 



4 Users 




SYSTEMS PICTURED: 

ACS8000-10 (10Mb HD + 1 floppy) $ 8.S00 

ACS8000-10/MTU (10Mb HD + DEI Mag Tape) $10,990 



either 8-inch, single or double-sided 
floppy drives (ACS8000-10 and -10D) 
or a V4-inch magnetic tape drive 
(ACS8000-10/MTU). And for powerful 
performance, all of these Z80A*based 
systems come complete with 208K 
of RAM and 6 programmable serial 
ports, ready to support four users. 

Here's the most bountiful 
selection of systems and capacities in 
the field from the company that 
knows how to deliver quality systems 
in the volumes that OEMs need to 
stay competitive. 

And Altos supports these 
systems with a broad software 
selection including the three industry 
standard operating systems— CP/M, 
multi-user MP/M** and OASIS*. 
These operating systems support 
seven high level programming 
languages: BASIC, FORTRAN, COBOL, 
PASCAL, APL, PL/1 and C. Also 
available are comprehensive 
communications packages: ASYNC— 
Altos-to-Altos, BISYNC-Altos-to- 
mainframe and full networking with 
CP/NET. All are designed to run on a 
high speed 800 Kilobaud networking 
channel— standard with every 
system. 

The ACS8000-10 Winchester 
systems join our growing family of 
field-proven products. In just three 
years, more than 8,000 systems 
have been shipped to an OEM 
customer-base. 

Get to market fast. Harvest 
your 8-inch Winchester system direct 
from the heart of Silicon Valley. Call 
or write today for specific product 
information and OEM pricing. Altos 
Computer Systems. 2360 Bering 
Drive, San Jose, CA 95131, (408) 
946-6700, Telex 171562 ALTOS SNJ. 




Packed with 
Fresh Ideas 




COMPUTER SYSTEMS 



'Z80A is a registered trademark of Zilog. Inc. 
**CP/M and MP/M are registered trademarks of Digital Research. Vnc 

fOASIS is a registered trademark of Phase One Systems. Inc. 

Jdatapro is a registered trademark of Datapro Research Corp. 
© 1981 Altos Computer Systems 



Circle 15 on inquiry card. 



BYTE August 1981 



89 



The Smalltalk Environment 



Larry Tesler 
Apple Computer Inc 

10260 Bandley Dr 
Cupertino CA 95014 



As I write this article, I am wearing a T-shirt (photo 1) 
given to me by a friend. Emblazoned across the chest is 
the loud plea: 

DON'T 
MODE 

ME IN 

Surrounding the caption is a ring of barbed wire that 
symbolizes the trapped feeling I often experience when 
my computer is "in a mode." 

In small print around the shirt are the names of some 
modes I have known and deplored since the early 1960s 
when I came out of the darkness of punched cards into 
the dawn of interactive terminals. My rogues' gallery of 
inhuman factors includes command modes like INSERT, 
REPLACE, DELETE, and SEARCH, as well as that in- 
escapable prompt, "FILE NAME?" The color of the silk 
screen is, appropriately enough, very blue. 

My friend gave me the shirt to make fun of a near- 
fanatical campaign I have waged for several years, a cam- 
paign to eliminate modes from the face of the earth — or 
at least from the face of my computer's display screen. It 
started in 1973 when I began work at the Xerox Palo Alto 
Research Center (PARC) on the design of interactive 
systems to be used by office workers for document 
preparation. My observations of secretaries learning to 
use the text editors of that era soon convinced me that my 
beloved computers were, in fact, unfriendly monsters, 
and that their sharpest fangs were the ever-present 
modes. The most common question asked by new users, 




> 



36V 



".»[,« slH*' 



Photo 1: The "DON'T MODE ME IN" T-shirt. 

90 August 1981 © BYTE Publications Inc 




at least as often as "How do I do this?," was "How do I 
get out of this mode?" Other researchers have also con- 
demned the prevalence of modes in interactive systems 
for novice users (reference 1). 

Novices are not the only victims of modes. Experts 
often type commands used in one mode when they are in 
another, leading to undesired and distressing conse- 
quences. In many systems, typing the letter "D" can have 
meanings as diverse as "replace the selected character by 
D," "insert a D before the selected character," or "delete 
the selected character." How many times have you heard 
or said, "Oops, I was in the wrong mode"? 

Preemption 

Even when you remember what mode you are in, you 
can still fall into a trap. If you are running a data-plotting 
program, the only commands you can use are the ones 
provided in that program. You can't use any of the useful 
capabilities of your computer that the author of the pro- 
gram didn't consider, such as obtaining a list of the files 
on the disk. On the other hand, if you're using a program 
that lets you list files, you probably can't use the text 
editor to change their names. Also, if you are using a text 
editor, you probably can't plot a graph from the numbers 
that appear in the document. 

If you stop any program and start another, data 
displayed by the first program is probably erased from 
the screen and irretrievably lost from view. In general, 
"running a program" in most systems puts you into a 
mode where the facilities of other programs are 
unavailable to you. Dan Swinehart calls this the dilemma 
of preemption (reference 2). 

Many systems feature hierarchies of modes. A portion 
of a typical mode hierarchy is shown in figure 1. If you 
are in the editor and want to copy text from a file, you 
issue the copy-from command and it gives the prompt 
"from what file?" You then type a file name. What if you 
can't remember the spelling? No problem. Leave from- 
what-file mode, leave copy-from mode, save the edited 
text, exit from the editor to the executive, call up file 
management from the executive, issue the list-files com- 
mand, look for the name you want (Hey, that went by 
too fast. Sorry, you can't scroll backwards in that 
mode.), terminate the list command, exit from file 
management to the executive, reenter the editor, issue the 
copy-from command, and when it prompts you with 
"from-what-file?," simply type the name (you haven't 



Circle 269 on inquiry card. 



EEE33S 



DYNABYTE 
SYSTEMS+ 

NORSEA offers the most professional, cost effective and high 
performance microcomputer systems and peripherals for USA, 
Canada and the World. Quantity discounts start at quantity 2 level 




COMPLETE SYSTEMS 

(including software) 
Professional Word 
Processing System 

Dynabyte 5200 -Dual 5/4" 

Televideo 950 

Starwriter I 

WordStar 

List $9,7 10 Net $6,312 



Full Business 
Accounting System 

Dynabyte 5300 - Dual 8" 
Televideo 950 
DataSouth 180 
Business Manager 
List $12,520 



Net $8,130 



Net $15,650 



11 MB Hard Disk Full 
Business Accounting and 
Word Processing System 

Dynabyte5615-11MB 
2-Televideo 950 
Starwriter I 
DataSouth 180 
Business Manager 
WordStar 
List $24,075 

45 MB Hard Disk 
High Performance Business 
Accounting and Word 
Processing System 

Dynabyte 5700 - 45 MB 

4-Televideo 950 

Starwriter II 

Dataproducts 340CPS 

Business Manager 

WordStar 

List $35,930 Net $23,360 

Many other configurations 
available, with or without 
software. 

REMEXFLOPPY 
DISKDRIVES 

The highest quality in 1MB 

8" floppy drives 

RFD4000 $699 

Other REMEX products available. 



PERIPHERALS 

Volker-CraigVC414H 

(Hazeltine 1510 compatible - 
amber screen) 
Televideo 950 
Starwriter I 
Starwriter II 
DataSouth DS-180 
Tally T-1705 
Dataproducts M-200 

HARD DISK 
SUBSYSTEMS 

(Can be daisy chained for 

up to 1 04 MB of storage) 

Formatted with S-100 Controller, 

PSU and Cabinet 

M10-10MB-8" 

M20-20M-8" 

M26-26MB-14" 

Subsystems also available in OEM 
stripped down versions. 



$ 899 



$ 999 
$1,599 
$1,799 
$1,399 
$1,799 
$2,099 



$2,995 
$3,830 
$3,995 



DYNABYTE 
MICROCOMPUTERS 

This fast growing and truly professional 
range of microcomputers is now 
available at best prices through NORSEA, 
with a wide choice of quality peripherals 
and software. 




EXPORTS 

NORSEA specializes in the export of 
Dynabyte microcomputers and a selected 
range of high quality peripherals. 
We are experienced in international 
trading and we pride ourselves on fast 
and courteous service at the 
lowest prices possible. 

FOREIGN SYSTEMS 
MANUFACTURERS 

NORSEA offers you a unique purchasing 
service, procuring U.S., Canadian, and 
Japanese made computer subsystems and 
peripherals for your requirement at the 
most attractive prices and deliveries. 
Send us your shopping list including 
quantity and delivery requirements. 

TRADEMARKS 

Business Manager by Dynabyte 
Starwriter by C. Itoh 
WordStar by MicroPro 

To Order: Call (203) 775-0438 

(203)775-4465 

Telex 969638 



NORSEA 

DATA CORPORATION 

U.S. Route 7, Brookfield 
Connecticut 06804 U.S.A. 



Prices subject to change without notice. 



TO ORDER CALL (212) 687-5000 



SUPR 



INTE3TEC 

DATA 

SY5TEMS 
64K 
ONLY 

$2995 




anus 



More lhan an intelligent terminal, the SuperBrain outperforms many other 
systems costing three to five times as much. Endowed with a hefty amount of 
available software (BASIC, FORTRAN, COBOL), the SuperBrain is ready to 
take on your toughest assignment. You name it! General Ledger, Accounts 
Receivable, Payroll, Inventory or Word Processing. . the SuperBrain handles 
all of them with ease FEATURES INCLUDE: 

• 2 dual-density mimfloppies with 360K bytes of disk storage • A CP'M Disk 
Operaling System with a high-powered lex! editor, assembler and debugger. 



NEW96K 

80 Column 

Commodore 
CBM 

Basic 4.0 
Operating 
System 

• 80 column by 25 line display 

• 12" CRT 

• New screen editor 

• Split screen processing 

• Super fast string handling 

• 15 additional basic commands 

• Supports relative record processing 




Model B032 

32K memory 

$1495 



NEW! 
Model 8096 

$1795 



8050 DUAL DISK $1795 

1 million bytes on-line storage 

and DOS 2.0 operating system 

NEW 2031 SINGLE DISK $695 



Commodore Computer 

These low cost Commodore PET Business 
Computers have virtually unlimited business 
capabilities. Accounts Receivable, Inventory 
Records, Payroll, and , 
other accounting J *v s* 

functions. / & $* #& 

PET 16N & 32N/ I 

COMPUTERS I 

• Full size keyboard 
16 or 32,000 
Bytes Memory 
Level III 
Operating 
System 

- Full Screen ~ 
Editor 

• Upper lower case & 64 graphic characters 
. PET DUAL 

FLOPPY DISK 

• Stores 360,000 
Bytes on-line 

• Microprocessor 
1^— — ""* controlled 

• Uses single or 
dual sided floppies 

HI-SPEED PRINTER 
• 150 cnaracters per 
second • Up to 4 
copies 8" wide 
j • Microprocessor 
Controlled • Prints 
All Graphics • Full 
Formatting Capability 



% 



APPLE II PLUS' or P r/ce 



A complete self-contained computer system with APPLESOFT floating point 
BASIC m ROM. lull ASC 1 1 keyboard in a light weight molded carrying case. 



Features Include: 



• auto-start ROM • Hi-Res graphics and 15 color video output. 

• Expandable to 48K 

Supertalker $279 Micromodem $379 

Disk 645 Superterm (24 x 80) 395 

Add-on Disk 525 Speechlab 229 

Pascal Card 495 Communication Card ... . 225 

Business Software 625 Modem 200 

Monitor 159 Graphics Printer 595 



PRI 

EPSON 

MX-70 
MX-80 
MX-80FT 
MX-100FT 
Call for Prices 



CENTRONICS 
700-9 




RS- 



Printer Card 180 Graphics Tablet 



[apple/// 

IS FINALLY HERE 
128K RAM!! 



795 





l 



cps Bi-Directional • Up to 15 
Paper Width • 9 „ 9 Main 
Upper/Lower Case 

• Trartor Feed 

• RS-232 
Serial Interface 



Qume 

.^ SPRINT 9 
* Only $ 2295 

• 45 Cps 



MONITORS 

SANYO 12" GREEN $325 

BMC 12" GREEN 295 

LEEDEX 13" COLOR 449 

ZENITH 13" COLOR 395 

LEEDEX 12" GREEN 179 



704 

$1695 

• 60 cps • Up to 15" paper width 

• Tractor Feed • Parallel Interface 
(or Apple & TRS-80 • 2 channel 
vertical forms! • Top ot Form 1 

737 Parallel $895 



ANDERSON JAC0BS0N 

841 I/O Terminal Ideal tor 
word processing and 
small businesses. $ 

ASCII Code 
15 CPS Printout 
High Quality Selectric Printing 
Reliable heavy duty mechanism 
Completely Refurbished by A.J. 
Delivered FREE to nearest service center 




Serial 

; 895 



HAZELTINE ESPIRIT 

NEW! 



■ 24 x 80 

■ Green Screen 

■ 7x11 Matrix 

■ Full Format 
Editing 
Controls 

■ Bi-Directional 



DIABLO 

630 Special $2495 

On Site Warranty List $2755 



./^^wvl-v^V 



•«2S2K£~ 

COREST WU*Jgj 896-0700 
Oppose 



TO ORDER CALL (212) 687-5000 Mo ° p F e ; i06 Sat ^ 

Tl»^ fVMkJIDI ITCD CAf^TTMJV 485 L «5*'ngton Ave., New York, NY .10017 (461h St: Lobby) 

i ne lAJiviru I en rtw* i v^n t® Rorelgn orde , de8k _,. Telex 640055 




INCREDIBLY 
ONLY $695 



DEALER INQUIRIES 
INVITED ON DIABLO. 
CENTRONICS. 
SUPERBRAIN 




V/SA 



Min. Credit Card Order $75 

NY residenis and 8"o sales lax 

• Same day shipment on prepaid and 

ciedit card orders 




ONYX 

COMES EAST 

THE COMPUTER FACTORY NOW STOCKS 

THE MOST POWERFUL AND COST-EFFECTIVE 

COMPUTER ON THE MARKET! 

WINCHESTER DISK & TAPE BACK-UP— FLOPPIES ARE NOW OBSOLETE! 



By using extremely advanced Winchester 
Disk Technology the ONYX system can now 
support up to 8 users simultaneously! 

i Disk capacities available in increments of 6.1 , 
10, 20, 40 megabytes— up to 4 disks per 
system (160 megabyte total!) 

i Choice of 2 systems: 
Z80A/OASIS® Z8002/UNIX® 

i Memory from 64K to 1 megabyte! 



■ Languages available include: 
COBOL, BASIC, PASCAL, & FORTRAN 

■ A choice of very sophisticated software that 
formerly was only available to larger machine 
users! (ACCOUNTING, relational databases, 

WORD PROCESSING, INSURANCE, CONSTRUCTION, ETC.] 

■ Systems start at under $ 9500 

Come to the Computer Factory and our experts 
will demonstrate the ONYX system which best 
suits your business needs. 



DEALER INQUIRIES INVITED 



TO ORDER CALL (212) 687-5000 ^^ s „ „., 

The COMPUTER FACTORY. ""-tr^^SLr" lM " 



forgotten it, have you?). 

You don't have to be a user-sympathizer to join the 
campaign against modes. The most coldhearted program- 
mer is a victim as well. Say you have programmed a new 
video game for your personal computer and have en- 
countered a bug. An obscure error message appears on 
the screen mixed in with spacecraft and alien forms. To 
see the latest version of the program on the screen, you 
have to wipe out the very evidence you need to solve the 
problem. Why? Because the system forces you to choose 
between edit mode and execute mode. You can't have 
both. 

Enter the Integrated Environment 

Soon after I began battling the mode monster, I became 
associated with Alan Kay, who had just founded the 
Learning Research Group (LRG) at the Xerox PARC. Kay 
shared my disdain for modes and had devised a user- 
interface paradigm (reference 3) that eliminated one kind 
of mode, the kind causing the preemption dilemma. The 
paradigm he advocated was called "overlapping win- 
dows." 

Most people who have used computer displays are 
familiar with windows. They are rectangular divisions of 
the screen, each displaying a different information set. In 
some windowing systems, you can have several tasks in 
progress, each represented in a different window, and can 
switch freely between tasks by switching between win- 
dows. 



What is a 



CLOCALPEEP? 

Another name for 
the CCB-II, which is: 

• a clock 

hour, minute, second 

• a calendar 

day, day of week, 
month, year 

• an audio alarm 

All on one board for your 

TRS-80 Model II 

It includes a pacemaker battery which will 
give over 8 years of continuous timekeeping. 

From the folks who brought you the best 
CP/M 8 forthe Model II. 

S175 plus shipping 
Prepaid, COD, Mastercharge or Visa orders 
accepted. California residents add 6% 
sales tax. 

TRS-80 is a trademark of Tandy Corp. 
CP/M is a registered trademark of Digital Research Inc. 





TrouT 



PICKLES & TROUT 

P.O. BOX 1206, GOLETA, CA 93116, (805) 967-9563 

Warning: Installation requires opening the Model II, which may void its 
warranty. We suggest that you wait until the warranty period has expired 
before installing Ihe CCB-II. 



The trouble with most windowing systems is that the 
windows compete with each other for screen space — if 
you make one window bigger, another window gets 
smaller. Kay's idea was to allow the windows to overlap. 
The screen is portrayed as the surface of a desk, and the 
windows as overlapping sheets of paper (photo 2). Partly 
covered sheets peek out from behind sheets that obscure 
them. With the aid of a pointing device that moves a cur- 
sor around the screen, you can move the cursor over a 
partly covered sheet and press a button on the pointing 
device to uncover that sheet. 

The advantages of the overlapping-window paradigm 
are: 

• the displays associated with several user tasks can be 
viewed simultaneously 

• switching between tasks is done with the press of a but- 
ton 

• no information is lost switching between tasks 

• screen space is used economically 

Of course, windows are, in a sense, modes in sheep's 
clothing. They are more friendly than modes because you 
can't slip into a window unknowingly when you are not 
looking at the screen, and because you can get in and out 
of any window at any time you choose by the push of a 
button. 

Kay saw his paradigm as the basis for what he called an 
"integrated environment." When you have an integrated 
environment, the distinction between operating system 
and application fades. Every capability of your personal 
computer is always available to you to apply to any in- 
formation you want. With minimal effort, you can move 
among such diverse activities as debugging programs, 
editing prose, drawing pictures, playing music, and run- 
ning simulations. Information generated by one activity 
can be fed to other activities, either by direct user interac- 
tion or under program control. 

When Kay invented the Smalltalk language in 1972, he 
designed it with the ability to support an integrated en- 



File manager 



Copy from Insert 



from what file? 



List files Delete files 



on directory? file name? 



Figure 1: A portion of a typical mode hierarchy. 



94 August 1981 © BYTE Publications Inc 



Circle 310 on inquiry card. 




35SSSSSS5SS3SSSSSSSSSSSSSSSSS5SSSSSSSSSSSSSSSS: 



HOOK 3 
WINNERS 



$139.00 

WINNER #1 ^ 



r 

DOLPHIN 



$179.00 

WINNER #3^ 



$159.00 

WINNER #2 »* 



80 COLUMN 

BLACK & WHITE 

15 MHz 



EN 
IOSPHOR 
15 MHz 




• • * 


_ -^* 


mm 


i 
• 


^M 



WATCH 
THIS SPACE 
FOR 
COLOR 
WINNER 



ESOLUTIiON 
000+ LINES' 



I 


MMJD | 1 
HT*TC i 1 






*•'«! 




iS 



By 



A 




DEMAND THESE 
UNITS FROM YOUR 

DEALER! 



Data-Ed 

18 Bridge Street 
Salem, NH 03079 
603-893-2047 (collect) 



Name. 



TM-12GX Monitors at S179.00 plus 2.75 shipping 
TM-12G Monitors at S159.00 plus 2.75 shipping 
TM-12 Monitors at S139.00 plus 2.75 shipping 




Address. 



Q Please send OEM information 

about your low cost custom fit smart 

printers. 

D Check or Money Order enclosed 

d COD. Orders Accepted 

□ Bill my-n VISA-n Mastercharge 

Card No 



City, State, Zip 



Exp. Date 
Signature 



Bank No 



SSSSSSSSSS5SSSSSSSSSTO5S^£S^^ 



Circle 101 on inquiry card. 




BYTE August 1981 



vironment. The implementations of Smalltalk produced 
by Dan Ingalls and the other members of the Learning 
Research Group have achieved ever-increasing integra- 
tion. The file system, process-management system, 
graphics capability, and compiler are implemented 
almost entirely in Smalltalk. They are accessible from 
any program, as well as by direct user interaction. 

In recent years, the idea of an integrated environment 
has spread outside the Learning Research Group and even 
to non-Smalltalk systems. The window -per-program 
paradigm is now commonplace, and many system 
designers have adopted the overlapping-sheet model of 
the screen. 

In summary, the term environment is used to refer to 
everything in a computer that a person can directly access 
and utilize in a unified and coordinated manner. In an in- 
tegrated environment , a person can interweave activities 
without losing accumulated information and without giv- 
ing up capabilities. 

Strengths of Smalltalk 

Before delving further into the nature of the Smalltalk 
environment, we should first discuss its purpose. 

Many general-purpose programming languages are 
more suitable for certain jobs than others. BASIC is easy 
to learn and is ideal for small dialogue-oriented pro- 
grams. FORTRAN is well suited to numerical applica- 
tions. COBOL is tailored to business data processing. 
Pascal is good for teaching structured programming. 




LINE VOLTAGE 
TRANSIENT CLIPPING 



Features Parallel Operation 

PROTECTS: 

•Computers 

• Micro-Computer Systems 
•Word Processors 
•Cash Registers 

• Power Supplies 



5000 Hits/Second 

PROTECTS AGAINST: 

• High Energy Voltage 
Transients 

•On-Off Switching 

• Lightning Induced Transients 
•Inrush of On/Off Power 



dVmar 

INDUSTRIES, 



c 

INC. 

Dealer 

7133 Rutherford Rd 
(301)298-3130 



TRANSIENT VOLTAGE 

SURGE SUPPRESSOR LISTED 



® 



Inquiries Invited. 

Baltimore, Md. 21207 
800 63&9098 ^ 



LISP is wonderful for processing symbolic information. 
APL excels at manipulating vectors and matrices. C is 
great for systems programming. SIMULA shines at 
discrete simulations. FORTH lets people quickly develop 
efficient modular programs on very small computers. 

All these languages have been used for numerous pur- 
poses in addition to those mentioned. You can write 
almost any program better in a language you know well 
than in one you know poorly. But if languages are com- 
pared from a viewpoint broader than that of a narrow 
expert, each language stands out above the others when 
used for the purpose for which it was designed. 

Although Smalltalk has been used for many different 
applications, it excels at a certain style of software 
development on a certain type of machine. The machine 
that best matches Smalltalk's strengths is a personal com- 
puter with a high-resolution display, a keyboard, and a 
pointing device such as a mouse or graphics tablet (photo 
3a). A cursor on the screen tracks mouse movements on 
the table so you can point to objects on the screen. The 
mouse (reference 4) has one or more buttons on its top 
side (photo 3b). One button is used as a selection button. 
If there are more buttons, they are normally used as 
menu buttons. 

If the machine has a high-performance disk drive, you 
can use a virtual-memory version of Smalltalk and have 
as little as 80 K bytes of main memory, not counting 
display-refresh memory. Otherwise, you should have at 
least 256 K bytes of memory. This much memory is re- 
quired because the whole integrated environment lives in 
one address space. It includes not only the usual run-time 
language support, but window-oriented graphics, the 




Photo 2: A typical Smalltalk display. The various "windows' 
look and behave like overlapping sheets of paper. 



96 August 1981 © BYTE Publications Inc 



Circle 123 on inquiry card. 



STATCOM 



wages 



1 



•J7FI" 



witn 



CRTFORM 



CRTFORM,™ a software package, 
creates bug-free forms. Insurance 
forms, order Forms, inventory 
forms — CRTFORM makes all types 
of forms for all kinds of people. 

CRTFORM is a programmer 
productivity aid which makes it 
easy to create, test, modify, and 
use forms. The forms provide art 
interface between programmers 
and end-users, such as secretaries, 
executives, and CPAs. CRTForm 
assures that the programmer will 
receive correct information while 
providing end-users information 
on how to enter data. If end-users' 
make a mistake, they receive a 
message in plain English which 
tells them what went wrong and 
how to fix it. 

The CRTFORM system consists 
of a form file manager, an inpul- 
field-oriented screen editor, and 



precompiled run-time modules. 
The system contains a code gen- 
eration section which is available 
to interface the program to the 
Pascal, FORTRAN, BASIC, and 
COBOL languages. In addition, 
the system can be configured 
without modification to run on 
over 95% of the terminals cur- 
rently on the market. CRTFoRM 
is currently available to run under 
the CP/M*. UCSD*, and Apple* 
Pascal systems. 

Statcom 1 " is a corporation spe- 
cializing in software development 
tools and techniques. In addition 
to CRTForm, Statcom will soon 



be releasing a business report 
generation, file management, 
and data entry system which elim- 
inate the need for a programmer. 

For the name and address of 
your nearest CRTForm dealer, 
call (512) 451-0221, or write- to 
Statcom, 5766 Balcories, Suite 
202, Austin, Texas 787IU. 






Programs that write programs. 




576B BALCONEE 



CORPORATION 

rE 20S AUSTIN TEXAS ~7BV3-} 



illmvti CP/M— Digitu! IV 



. Inc.lXSU— Regents I.e. San Ulvgii 



Computer 

Forms 

Catalog 



with 32 pages of 
continuous 
business forms for 
small computer 
systems 

Send today for our NEW full color 32 
page catalog with programming guides, 
prices and order forms for continuous 
checks, invoices, statements, envelopes, 
stock paper and labels. 

• Quality products at low prices 

• Available in small quantities 

• Fast Service 

• Money Back Guarantee 

• Convenient TOLL-FREE ordering 



Fast Service by mail or. . .PHONE TOLL FREE 
1 + 800-225-9550 

Mass. residents 1+800-922-8560 
8:30 a.m. to 5:00 p.m. Eastern Time Monday — Friday 



Please rush a new computer forms catalog to: 



Name 



CODE 20460 



Company 



Street 



City, State and Zip 



Phone 



Computer make & model 



■ Computer Forms — ■ 

78 Hollis Street, Groton, Mass. 01471 

A division of New England Business Service, Inc. 



editor, the compiler, and other software-development 
aids. The programs you write tend to be small because 
they can build on existing facilities; no system facilities 
are hidden from the user. Users of LISP and FORTH will 
be familiar with this idea. 

Smalltalk supports its preferred hardware by incor- 
porating software packages that provide: 

• output to the user through overlapping windows 

• input from a keyboard, a pointing device, and menus 

• uniform treatment of textual, graphical, symbolic, and 
numeric information 

These interactive facilities are utilized heavily by the 
built-in programming aids and are available to all user- 
written applications. 

The style of software development to which Smalltalk 
is oriented is exploratory . In exploratory development, it 
should be fast to create and test prototypes, and it should 
be easy to change them without costly repercussions. 
Smalltalk is helpful because: 

• The language is more concise than most, so less time is 
spent at the keyboard. 




Photo 3: A typical Smalltalk system (photo 3a) and a close-up of 
the "mouse" (photo 3b), a device that allows you to move an 
on-screen cursor and select certain options. 



98 August 1981 © BYTE Publications Inc 



Circle 266 on inquiry card. 




comwreR WAREHOUSE 



CALL TOLL FREE 1-800~S28-10S4 

International Dealer & Personal Inquiries Invited, Prices May Vary. Tlx (0)668382 (MCB) 



ATARI 

Special 32K 800 System 

800 w/32K, recorder 

star raiders, joysticks $860 

Above w/48K S925 

800 (32K) $744 

810 Disk Drive $440 

825 Printer $575 

850 Interface $155 

410 Recorder $70 

830 Modem $140 

16K Memory S 75 

32K Memory $150 

DISK DRIVES 

Lobo 

Apple 1st Drive $490 

Apple 2nd Drive $410 

MODEMS 

Novation 

CAT $155 

D-CAT $155 

AppleCatll Call 

AutoCat Call 

VIDEO TERMINALS 

Adds 
Viewpoint Call 

Soroc 

IQ120 Call 

iq 130 Call 

IQ 135 Call 

iq 140 Call 

Televideo 

912 c $699 

920 C $749 

950 Call 

Zenith -Z- 19 Call 

PRINTERS 

C.ltoh 

Starwnter $1380 

Datasouth 

DS180 $1299 

Diablo Call 

Epson 

mx-80 Call 

MX-80 F/T Call 

MX-ioo Call 

Fric Feed Opt. for MX-80 $50 

nec Call 

Okidata 

Microline80 $399 

Microline82 $515 

Microline 83 $755 

Oume Call 

Qantex 

Serial $1198 

Parallel $1160 

Texas Instruments 

810 Basic $1480 

810 Loaded $1739 



COMPUTERS 

Aitos Call 

Northstar Call 

Zenith 

Z-89 48K Call 



SOFTWARE 

CBASIC 

CP/M 

MP/M for NorthStar 



Call 
Call 
Call 



DISKETTES 

Scotch 

5'/4-0, 10. 16 Sector (Qty100)$250 
8"-0. 32 Sector (Qty100)$260 



MONITORS 

Sanyo - 9" Monitor 



We Buy and Sell Used Equipment 

Experienced Equipment 



Diablo, NEC, Oume Call 



Centronics 779 $450 

Hazeltine1420 $600 

Atari 820 printer $250 

Soroc IQ 120 $475 

Tl 810 Basic $1100 



$165 



Novation 




^NorthStaf^ 

^^y TECHNOLOGY INC ^^ XClCVlClCO 

Texas Instruments 



EPSON 

EPSON AMERICA. INC. 

OKIDATA 





MICROTEK PERIPHERALS CORP. 



1 



COniPU I fcR 2222 E. Indian School Rd. Phoenix, Arizona 85016 
UJfiREHOUSE (6 ° 2) 954 " 61 ° 9 1-800-528-1054 






Store Hours: Tues.- Friday 10-5 MST Saturday 10-4 MST 



Personal checks will delay shipping two weeks Prices & availability subject to change without notice 



Prices reflect 3% cash discount. Product shipped in factory cartons with manufactures warranty. Add 2%, a minimum of $5, 
for shipping and handling. 



• The text editor is simple, modeless, and requires a 
minimum of keystrokes. 

• The user can move among programming, compiling, 
testing, and debugging activities with the push of a 
button. 

• Any desired information about the program or its 
execution is accessible in seconds with minimal effort. 

• The compiler can translate and relink a single change 
into the environment in a few seconds, so the time usual- 
ly wasted waiting for recompilation after a small pro- 
gram modification is avoided. 

• Smalltalk programs grow gracefully. In most en- 
vironments, a system gets more difficult to change as it 
grows. If you add 2 megabytes of virtual memory to the 
Smalltalk environment, you can fill the second megabyte 
with useful capabilities as fast as you can fill the first. 

• The class structure of the language prevents objects 
from making too many assumptions about the internal 
behavior of other objects (see David Robson's article, 
"Object-Oriented Software Systems," on page 74 of this 
issue). The programmer can augment or change the 
methods used in one part of a program without having to 
reprogram other parts. 

The Anatomy of a Window 

Over the years, members of the Learning Research 
Group have embellished Kay's original window concept. 
Let us look at a Smalltalk window in more detail (figure 
2). 



The window is shown as a framed rectangular area 
with a title tab attached to its top edge. The program 
associated with the window must confine its output to the 
framed area. 

Every window has a window menu (photo 4a). The 
window menu includes commands to reframe the win- 
dow in a new size and location, to close the window, to 
print the contents of the window on a hard-copy device, 
and to retrieve windows hidden under it. 

A window is tiled by one or more panes, each with its 
own pane menu (photo 4b). The pane menu includes 
commands appropriate to the contents of that pane. In 





Title 
















Scroll 
Bar 










Scrol 

Bar 


1 
i 

1 
1 
1 




Pane 




Pane 

pop-up 

menu 


Pane 


Pane 

pop-up 
menu 








Window 
pop-up 

menu 




Scroll 

Bar 




3 ane 












Pane 

pop-up 

menu 

















Figure 2: Anatomy of a window. 



FULL COLOR 
GRAPHICS 

Complete line of color imaging systems with high 

resolution real time video FRAME GRABBER 

for the 8-100 bus. 

Capture and digitize a video frame in l/60th of a second. Store 
up to 2 million bits of image data in on-board buffer. By software, 
select the best resolution for your application from 256 to 1280 | 
pixels per TV line. Display your digitized image or your computer 1. 
processed image! with up to 256 gray levels or 65,536 L 
simultaneous 
monitors. 






%0 Cv,"- >%m 

240x256 Digitized image, 16 levels 



». 




Features: 

• Highest quality 480x512x8 digital video image 

• Input capability from TV cameras or other sources 

• Variety of synchronization choices 

• 2 selectable video A/D conversion circuits 

• Choice of 1 , 2, 4, 8, 16 or 24 bits per pixel 

• 32K-byte image memory on the basic system 

• 64K, 1 28K, 1 92K and 256K-byte system capacity 

• High resolution lightpen input 

• Photographic trigger control input 

• Software selectable system parameters 

• Stand-alone intelligent graphics unit with universal interface 
Accessories: 

• RGB color monitor • Hard copy printer/ plotter 

• High performance lightpen • Software packages available 



480x512 Computer-generated 

ROBOTICS AUTOMATED COUNTING ArtDMEASURING-QUALn-YCONTROLMONITORING- 
PATTERN RECOGNITION-IMAGE PROCESSING-MEDICAL AND SCIENTIFIC RESEARCH 



I 



^DIGITAL 
^GRAPHIC 
^SYSTEMS 



935 Industrial Avenue 
Palo Alto, CA 94303 
(415) 856-2500 



100 August 1981 © BYTE Publications Inc 



Circle 113 on inquiry card. 



MDBS . . . 

true data base management 

for small systems! 



Harvey M. Weiss, 

an independent 

software reviewer, 

has this to say 
about our system: 



"MDBS is truly a data base management system. . ., not a file management system." 

"MDBS. . . offers the data manipulation, query, and report-writer capabilities of a DBMS 
found on much larger and more complex computer systems." 

"MDBS has come to the rescue with. . .products whose ability to reduce development time 
and implement processes not available elsewhere make them invaluable to integrators and 
developers of /xc-based systems." 

For the complete Weiss review, see "Downscaling DBMS to the Microworld," Mini-Micro 
Systems, April, 1981, pp. 187-195. 



Check these Flexible, powerful data structuring capabilities: network and hierarchical data structures, 



advanced features 
for yourself: 



Is MDBS right 
for your system? 



To learn more 



including many-to-many relationships (not available elsewhere). 

Genuine data base management capabilities: far surpasses file management in data 
independence, automatic maintenance of relationships, and complete lack of data 
redundancy. 

English-like, nonprocedural query language interface: ad hoc queries result in the automatic 
generation of desired reports, tables, files, and relations. 

Host language interfaces, including various BASICS, COBOLS, PASCALS, FORTRAN, PL/I, 
C, and several assemblers. 

Extensive built-in data access security (256 levels). 

Automatic transaction logging and data base recovery. 

Dynamic data base restructuring. 

Plus many other advanced data base management features. 

MDBS is written in Z-80, 6502, 8080 and 8086 machine language and run under CP/M (and 
similar derivatives) with CBASIC2, PL/1, PASCAL Z, PASCAL M, PASCAL MT+, BDS C, CIS 
COBOL, and Microsoft COBOL, FORTRAN, or BASIC; under North Star DOS and North Star 
BASIC; under TRSDOS or NEWDOS with TRS DISK BASIC; with Apple DOS and Applesoft 
BASIC; and with 86-DOS. 

MDBS requires only 18K to 20K bytes for the Z-80 version, 22K for the 8080, and 30K for the 
6502. 

MDBS is independent of the types and sizes of disk drives. 

• For free literature about serious data base management on a microcomputer, please fill out 
and mail the coupon. 

• For a practical introduction to true data base management for small computers, please send 
$20 (Indiana residents, add 80<t tax) for PRIMER/GUIDE manuals. 

• For a comprehensive DOCUMENTATION PACKAGE consisting of THE PRIMER plus user 
manuals covering the MDBS, QRS, RTL, and DRS, please forward $60 (+ $2.40 Ind. tax). 



Setting standards of excellence for data base 
software. . .worldwide. 



Micro 
Data Base 
Systems, inc. 

Box 248 

Lafayette, Indiana 47902 

31 7-448-1 61 6m/VX 810-342-1881 

Dealer/distributor/OEM inquiries invited. 




YES, please send me more information on the 
remarkably flexible MDBS Data Base System. 



Name 



(Please print) 



Title 



Company 
Address _ 
City 



(State) 



(Zip) 



Phone 



MAIL TO: Micro Data Base Systems, Inc. 
P.O. Box 248-Y 
Lafayette, IN 47902 



Circle 225 on inquiry card. 



BYTE August 1981 



101 



addition, a pane has a scroll bar on its left side used to 
scroll the contents of the pane when more information ex- 
ists than fits in the frame at one time. 

Although you can see many windows and panes at 
once, you can interact with only one pane at a time. That 
pane and its window are said to be awake or active. To 
awaken a different pane of the same window, move the 
cursor over the new pane (photo 4c). To awaken a dif- 
ferent window, move the cursor over the new window 
and press the selection button on the pointing device 
(photo 4d). When a window wakes up, its title tab and all 

(4a) 





:,: M 


1 


A two paned window j 






This rexr ts in rlu' naMr-hand 
pane of a two-panM window, 
the window has a wiMaw 


■■'■If 


: 'frame' 


1 collapsed 1 


mmu and each pane has a pwu 


'rule para 1 


nMttM. 


'growing' 




'exuftaa 1 


Note that lines of text break ar 


'panes' 


u'ord spaces automancallu. 


'templates' 






'rauat'ki' 


unlet 

frame 
close 






print 


\ 




prvrubits 









(4b) 



A two pamd 



self 

'frame' 

'collapsed' 

'rule para' 

'growing' 

'exitflag 1 

'panes'' 

'templates' 

'title' 

'rartaWes' 



.J ^ ..J„J■ ' J ^ ■ ■ gr ??' J ?7 . ^^ ! ■■ ■ . l """ 

window ll 

T 



l lus rexr ts m the riant . 
pane, of a two-paned window 
The window has a window 
mmu and each pane has a pwtrw 

Note that lines of te xt break ar 



word spac 



again 

cbpu 

cur 

paste 

doit 

."ompile 
undo 

cancel 



aticaltu. 



\ 



(4c) 




TttS I 

windc 
pane 



When 
redisp 

a use 

Sizes ' Mm ii 



'tulepara' 
'growing' 
'exttflaa 
'panes' 

'templates' 
'title' k 
'i-anablcs* 



U LIU Hi U| U'lllH 



Note that lines of text break at 
word spaces automatically. 



its panes are displayed, and it is no longer covered up by 
other windows. 

The scroll bar of the active pane is called the actiue 
scroll bar. Its menu and the menu of its window are called 
the active menus. In order to reduce screen clutter and 
maximize utilization of precious screen space, no inactive 
scroll bars or menus are displayed. On machines that use 
a pointing device with three buttons, some versions of 
Smalltalk even hide the active menus until one of two 
menu buttons is pressed, at which time the associated 
menu pops up and stays up until the button is released. If 
the button is released when the cursor is over a command 
in the menu, that command is executed (photo 4e). 

Modeless Editing 

The overlapping-window paradigm helps eliminate 
preemption. It can also reduce the need for certain 
prompts and their associated modes. For example, you 
never have to type the name of a procedure you want to 
examine. At worst, you point to its name in a list; at best, 
the desired procedure is already in a window on the 
screen, and you activate that window. 

Unfortunately, overlapping windows do not eliminate 
command modes like "insert" and "replace" by 
themselves. Between 1973 and 1975, I worked at PARC 
with various collaborators, including Dan Swinehart and 
Timothy Mott, to banish command modes from interac- 

(4d) 




A two parted 



This text 

pane of a two-paned window. 



A.m.- |W n- W »n«H>| |Ttu: wnulriw has a unndnu, 

Tlas tc«c is in the onlij pane of a one -parted .as a 



window. A window mat) have any number of 
panes, but between one and six arc typical. 

a pane can contain both text and graphics. 

When a window is uncovered, all us panes 
redisplay their contents. 

a usei can arrange the desktop tui changing the' 
sizes and locations of windows. 



Week at 
ally. 



<4e) 



A iwit paned window I 

TT7! i. x[ r in id. im'i! ' .- ' 



-*-?" — - — I piii. of a two-paned uandoH 

A 55 paned window] [I,, ^ U , WH , | * ,■,■■■„■, u 



, ■ I 111'. WUUUilt ;..:., I 

th. ntiln pan. of a one -pane d 



uitndou 1 . A window may haw any numbei o| 
I ,>., , t ui between om and ;u an typical. 

■■ ; iru an i ontotn both u «t and graphics. 

us panes 



:-. it- 



• , ■. , Hindi w is iineo 
:. :• : lay thi ii contents. 

■•■,.• u in .'.■;■ th< • 
.- ■ .••. n of '■■■ i 




past< 
otni •..• 



i chanavna the' 



Photo 4: Windows and their behavior. 



102 August 1981 © BYTE Publications Inc 



Circle 165 on inquiry card. 



54 dB. 
Put up or shut up. 



The Gauntlet Is Down 

Can any dot matrix computer printer match the 
INFOSCRIBE 1000? Its sound level in normal, continuous 
operation is only 54 dBA. By independent sound laboratory 
test.* 

That's right, 54 dBA. Like a group office where paper 
shuffling and throat clearing are making most of the noise. 

As far as we're concerned, INFOSCRIBE 1000 is the 
quietest serial matrix impact printer on the market. 

Compare with the typical matrix printer that can sound 
like a blender full of ball bearings, and you have the Number 
One reason why your next printer will be an INFOSCRIBE 1000 

Even printers advertised at 56dB are a full 2 dB higher 
than ours. (Remember, every 3 dB up doubles the noise.) 

A New Generation Printer 

If INFOSCRIBE 1000's purr were its only benefit, you 
should still buy it for the sanity of your office staff. But it 
happens that INFOSCRIBE 1000 is also the most feature- 
packed, the most beautiful, and the most economical printer 
in its class. 

Graphics Galore 

INFOSCRIBE 1000 doesn't print characters only. Under 
software control it produces charts, diagrams, graphs, signs, 
anything within a vertical and horizontal resolution of 70 dots 
per inch. Now we're talking about a capability that can 
enhance management presentations, sales reports, even 
technical documents. 

Format Flexibility 

INFOSCRIBE 1000 can produce data processing 
quality characters at 10, 12, or 16.5 characters per inch, or 
correspondence quality characters at 10. You also get 
subscripts and superscripts in any selected pitch, double- 
wide printing, true lower case descenders, and true 
underlining. 



In addition to two different character sets stored in the 
printer, a third character set can be downloaded from the 
host computer. This offers a total of 288 different characters 
that can be selected on a character-by-character basis. 



Gratifying Throughput 



There's more to INFOSCRIBE 1000's speed than a 
nominal 180 characters per second. High-speed paper 
movement with vertical and horizontal tabbing, plus 
bidirectional printing with logic seeking in both directions 
gets a lot of work out of the machine. And that's equivalent 
to having a faster computer. 

Unmatched Elegance 

It's almost unfair that INFOSCRIBE 1000 is also the 
industry's best looking matrix printer, Slim, sleek, graceful, 
it makes those machines with the visible viscera look like 
remnants of early experimental days at Menlo Park. 
INFOSCRIBE 1000 is completely enclosed, sealing dirt out 
while sealing noise in. Its controls use membrane switches, 
so not even knobs or buttons break its sculptured exterior. 

Demand the INFOSCRIBE 1000 

Is there a single reason why you should have any 
printer but the INFOSCRIBE 1000? At $1,825 in singletons 
(substantially less in OEM quantities), INFOSCRIBE 1000 
becomes mandatory for your system. 

Insist on it from your system specialists. And if you are 
buying a first-time computer, no matter what make, ask for 
the printer that is setting a new standard: INFOSCRIBE 1000. 

Get full details from your nearest Infoscribe 
distributor/representative. Or talk to your computer dealer. 
If he doesn't handle Infoscribe yet, he will. 

'Contact Infoscribe for an abstract of the independent 
testing laboratory report. 




INFOSCRIBE 

QUIETLY AUTHORITATIVE 



Corporate Headquarters and Factory: Infoscribe, Inc., 2720 S. Croddy Way, Santa Ana, California 92704. Distributor/Representatives: ga, hi (714) 964-4722 or 

(415) 948-8961, CO, LIT, WY (303) 371-4140 or (801) 292-8145, WA, OR, MT, ID, AK (206) 455-4922; IA, IL, IN, Wl (312) 298-4830 or (414) 351-6123; TX, OK, AR, LA (214) 661-9633, (713) 681-0200, 

(918) 252-9646 or (512) 454-3579; MA, VT, ME, CT, Rl, NH (617) 729-5770, (413) 737-6624 or (203) 624-7800; MN, ND, SD (612) 922-7011; DC, VA, MD (301) 424-1416; NY (315) 699-2651, 

(716) 223-4490; Ranee 334-30-20; United Kingdom (063-33) 69162; Australia (61-2) 29-3763. 

Overseas Distributor Inquiries Welcome 



tive systems. Despite initial skepticism, nearly all users of 
our prototypes grew to appreciate the absence of modes. 
The following techniques were devised by us to eliminate 
modes from text editing. They are analogous to the 
techniques used to keep Polish-notation calculators 
relatively mode-free. Similar techniques can be applied to 
page layout, graphics creation, and other interactive 
tasks. 

Selection precedes command: 

• Every command is executed immediately when you 
issue it. You are not asked to confirm it. You can issue an 
undo command to reverse the effects of the last issued 
command. Although the main purpose of "undo" is to 
compensate for the lack of command confirmation, it can 
also be used to change your mind after issuing a com- 
mand. 

• For a command like "close the active window" that re- 
quires no additional parameters, you simply issue the 
command. 

• For a command like "delete text" that requires one 
parameter, you first select the parameter using the point- 
ing device and then issue the command. Until you issue 
the command, you can change your mind and make a dif- 
ferent selection, or even choose a different command. 

• For a command like "send electronic mail" that requires 
several parameters (recipient, subject, content), you first 
fill the parameters into a form using modeless text editing 



and then issue the command. You are not in a mode while 
filling out the form. If you want to copy something into 
the form from another place, you can. If you want to do 
something else instead, just do it; you may even return to 
the form later and finish filling it out. 

Typing text always replaces the selected characters: 

• Pressing a text key on the keyboard never issues a com- 
mand. It always replaces the current selection by the 
typed character and automatically selects the gap follow- 
ing that character. 

• To replace a passage of text, first select it (photo 5a) 
and then type the replacement. The first keystroke deletes 
the original text (photo 5b). 

• To insert between characters, you first select the gap 
between those characters (photo 6a) and then type the in- 
sertion (photo 6b). Essentially, you are replacing nothing 
with something. 

• The destructive backspace function always deletes the 
character preceding the selection, even if that character 
was there before the selection was made. 

• The "undo" command (photos 6c and 6d) can be used 
to reverse the effects of all your typing and backspacing 
since you last made a selection with the pointing device. 

Thus, the usual insert, append, and replace modes are 
folded into one mode — replace mode — and one mode is 
no mode at all. 




Building Blocks for 
Microcomputer Systems, 
Dedicated Controllers 
and Test Equipment. 



R 2 l/0 

S-100 ROM, 

RAM & I/O 

BOARD 




ECT's R 2 l/0 is an S-100 Bus I/O Board with 3 Serial 
I/O Ports (UART's), 1 Parallel I/O Port, 4 Status Ports, 
2K of ROM with the 8080 Apple Monitor Program and 
2K of Static RAM. 

$295.00 




RM-10 
S-100 

RACK MOUNT 
CARD CAGE 



ECT's RM-10 is a rack mount 10 slot Card Cage with 
Power Supply, consisting of an ECT-100 rack mount 
Card Cage (19"W x 12.25"H x 8"D), the MB-10 Mother 
Board (with ground plane and termination) all 10 
connectors and guides and the PS-15A Power Supply 
(15A@8V, 1.5A@ ± 16V). $295 00 



Specializing in Quality Microcomputer Hardware 

Industrial • Educational • Small Business • Personal 

Card Cages, Power Supplies, Mainframes, CPU's, Memory, HO, OEM Variations 



ELECTRONIC CONTROL TECHNOLOGY 



763 Ramsey Ave., Hillside, NJ 07205 



(201) 686-8080 



104 August 1981 © BYTE Publications Inc 



Circle 129 on inquiry card. 



Circle 388 on inquiry card. 



Tiny BASIC MICROCOMPUTER 

K-8073 

The Engineer's Product Development Board Level Computer 

LOW COST 

POWERFUL/VERSATILE 

ENGLISH-LIKE PROGRAMMING 



m 



IK Byte Local RAM 
Ext. Expandable To 9K 



ART/RC Master, For Single 
Wire Data I/O Of 128 Slave Units 



Real Time Clock 

W/Exl. Battery Backup 

Yr, Mo, Wk, Day, Hour, Sec 



RS-232ForCRT 
110-4800 Baud 




K-8073 



SINGLE UNIT 



THIS IS AN ENGINEER'S COMPUTER. 

Simply attach a CRT, connect 5 volts, and 
you have yourself one each powerful, versa- 
tile microcomputer that YOU can program. 
If you're fed-up with board level compu- 
ters that require expensive development sys- 
tems plus the skills of an Assembly language 
programmer, then you need the K-8073. With 
an on-chip microinterpreter and the extra 
control devices we designed into the board, 
you can do your own programming in the 
most simple English-like language available- 
Tiny BASIC. Sophisticated application de- 
signs can be implemented in hours instead of 
days or weeks because you have eliminated 
expensive and time consuming hardware and 
software costs. 

IN ADDITION TO ALL THIS, the K-8073 
offers advantages unheard of in other board 
level computers. Among these are an on- 
board EPROM Programmer, A Real Time 
Clock, Autostart, IK Byte local RAM for 
variables, 8K Byte EPROM, ART/RC and 
PPI W/24 line I/O. 




STD (MOD) BUS 4.5 x 6.5 in. 
5 Volt Only — Cassette 
Tape In/Out— 2 Sense— 

3 Flags 

INS8073 Microinterpreter 
Tiny BASIC Processor 



Autostart EPROM 2K Byte 



Utilities Firm ware. For 
Software Dev., EPROM 2K 



EPROM -2K Byte 



EPROM Programmer, 2K 
Byte Prm. Decoded— Req. 
Ext. 25V Only 



PPI. Programmable 1/0, 
24 Lines 



PPI Interface Ribbon 
Connector 



THE K-8073 IS FOR OEM'S AS WELL AS 
END USERS. 

Whether you manufacture Industrial Process 
Control, Environmental or Test/Measurement 
systems, or simply for your own use, you can 
count on top quality performance. The K-8073 
comes complete with all socketed devices 
including the powerful F-2 Utilities Firmware 
and a Hardware/Software manual. 

In Industry, Education, or New Product 
Development, the K-8073 provides you with 
State-of-the-Art technology for micropro- 
cessor efficiency and ease. With a full line of 
support products, the TransWave line takes 
care of your every need at the most reason- 
able prices. 

To order your K-8073 or for further infor- 
mation, write or call TRANSWAVE COR- 
PORATION,Cedar Valley Building, Vanderbilt, 
PA 15486, (412)628-6370. 



II 



1WMMMW ■■ 



Development Station S195.00 



COMPUTER DIVISION OF UTSC 



(5a) 

ttam Dotn text: ana grapn 



(5b) 



V IS 



ir\ctmr$t 



I all its pc 

mm x\\c desktop by char 



j mam nam text aria gmj 
ow is exposed^ all its par 

range the desktop by ch<: 

Of li'iruiriu'*. ' 



(6a) 

;ontam Dotn text ana grci 



Photo 5: Replacing text in Smalltalk. 
(6b) 



ontatn Dotn text ana gra 



low is| exposed, all its pq ^ow is ei>er| exposed, all i 

r contents. 

trange x\\e desktop by ch 

n f u iir. , 1 Q] j to 



k 



trange the desktop by ch 

: Of uiindnujc 



(6c) 



(6d) 



j paste 
tain both text doit 

com 
> is eperjexpo 
ontents. car 

align 
nae th£ d££knIE OB n\hnl 




main Dotn text ana grap 
)w is| exposed, all its pan 

m\qe the desktop by c\\a 



Photo 6: Inserting text in Smalltalk. 




[L 



Creamio Cream 12 TimesRomans TimesRoman 10 
TimesRoman 12 FixedP1tchl9 

Helvetica 1 8 

HeXXttcrlfl 

N«-®'vn^roHx^a«=»iiiL|JH»© N — *-i« 

j.*.0DAO<»e«Z*«OT*/<>-»|=t7,oo<^^ 

A-<>Q±Kt;i;;s3Ri^Ucj2rocX/iivs;7!t;cc:D 

2>D§°>XCVf6j<>6 



Photo 7: Multiple typefaces can be used in any window. 

106 August 1981 © BYTE Publications Inc 



The "shift lock" key and analogous commands like 
"bold shift" and "underline shift" cause modes for the in- 
terpretation of subsequently typed characters. However, 
shifts are familiar to people and are relatively harmless. 
The worst they do is change a "d" to a "D," "d," or "d"— 
never to a Delete command. 

The bit-map display can show boldface characters, as 
well as italics, underlining, and a variety of styles and 
sizes of printer's type (photo 7). Thus, as you enter text in 
bold shift, the screen shows what the text will look like 
when it is printed. A command like bold shift can also be 
applied to existing text to change it to boldface. 

In 1976, Dan Ingalls devised a user interface for 
Smalltalk that incorporated most of the mode-avoidance 
techniques discussed earlier. Consequently, it is rare in 



Westico Software... 

What good hardware deserves. 



The professional wants good soft- 
ware, wants it fast and backed by 
expert service — There's one answer 
— Westico, the Software Express 
Service that really delivers. . . 




Call (203) 853-6880 tor overnight delivery or. 
when you need expert service. 



Westico constantly improves its 
quality software in a wide range of 
categories including: Accounting, 
Professional Time Accounting, Text 
Processing, Planning and Analysis, 
Telecommunications, Data Man- 
agement, Development Tools, Lan- 
guage Processors. 

Westico knows that the speed in 
which you receive a program is 
often a key consideration in your 
selection. That's why Westico is the 
only software company to offer 
overnight delivery. 



For detailed program information 
or for quick access ordering, just 
dial-up the Westico computer (300 
baud) (203) 853-0816. 



for a wide 
1 and other 
iputer systems: 



TRS-80 Model II, Apple, Vector 
Graphic, iCom, Cromemco, North 
Star, Micropolis, Ohio Scientific, 
Altos, Dynabyte, SuperBrain and 
more. 



Westico is staffed by experts who 
understand your software and the 
equipment on which it runs. It's 
nice to know when you need serv- 
ice or advice, a Westico expert is 
standing by. 

Send for our NEW FREE Catalog. 



Current Westico products with new 
prices for complete systems and 
documentation alone: 

ACCOUNTS PAYABLE 
495/60 • ACCOUNTS RECEIVABLE 
495/60 • CLIENT WRITE-UP 895/60 

• GENERAL LEDGER 495/60 • INVEN- 
TORY CONTROL 595/60 • PAS-3 
DENTAL 990/40 • PAS-3 MEDICAL 
990/40 • PAYROLL 495/60 • PROP- 
ERTY MANAGEMENT 895/60. 

DATEBOOK™ II 295/25* ESQ-1 Legal 
1495/50 • ESQ-1 Legal Demo 75/50 

• PTA 595/40 • PTA Demo 75/40. 

MAIL-MERGE™ 
125/25 • MINCE 175/25 • SPELL- 
GUARD™ 295/25 • TEXTWRITER 
125/20 • WORDMASTER™ 145/40 

• WORDSEARCH™ 195/40 • WORD- 
STAR™ 450/60. 

MILESTONE™ 
295/25 • MINIMODEL 495/50 • STAT- 
PAK 500/40 • TARGET 195/25. 



175/20 




ASCOM 



. . . Dial-up our 24-hour Computer Hotline (300 
baud) (203) 853-0816 tor program information or 
orders. 

CBS 395/50 • 
CBS Demo 75/50 • CBS LABEL 
OPTION 80/10 • HDBS 300/35 • 
MAILING ADDRESS 395/60 • MAG- 
SAM III 145/25 • MAGSAM IV 295/25 

• MDBS 900/35 • MDBS DRS 300/5.* 
MDBS RTL 300/5 • MDBS QRS 300/5 

• PRISM/ADS 795/55 • PRISM/IMS 
495/55 • SELECTOR IV 550/35 • 
DATA STAR™ 350/60. 

GENERAL SUB- 
ROUTINE PAK 295/30 • APPLICATION 
UTILITIES 495/30 • STRING BIT™ 65/15 

• STRING/80™ 95/15 • STRING/80 
SOURCE 295/-. 



LYNX Over- 
lay loader 250/25 • BASIC COM- 
PILER 395/25 • BASIC-80 350/25 • 
CBASIC-2 120/15 • NEVADA COBOL 
150/25 • PASCAL/M 225/25 • PAS- 
CAL/MT • 425/30 • PL/l-80™ 475/35 

• S-BASIC™ 295/35. 

SUPERSORT 1 225/40 

• SURVEYOR 550/60 • ULTRA- 
SORT II™ 165/15. 

from Westico 

MILESTONE: Tough Planning Jobs 
Made Easy 

MILESTONE is a powerful new tool for 
managers and planners, which orga- 
nizes complex projects and identifies 
job schedules essential to on-time 
completion. 

MILESTONEflndsthecritical path through 
hundreds of interrelated tasks and 
determines where slack time can be 
eliminated. 

Equally significant. MILESTONE computes 
manpower requirements and costs, allo- 
cating them to proper schedule periods 
and up to nine manpower skill/cost 
levels can be allocated to each task. 
With MILESTONE, projects can be meas- 
ured in hours, days, weeks, months, 
quarters or fiscal quarters; with provision 
to specify working hours, holidays, vaca- 
tions and other non-productive time 
periods for up to 8,196 years. 
Reschedule or complete tasks, revise 
prerequisites, play "What If" games. 
MILESTONE immediately displays the 
results on your screen or printer — either 
as a table or graphl 
MILESTONE is easy to use and requires 
no programming! 

System with full documentation — S295. 
Documentation alone — S25. 
Versions for CP/M, APPLE PASC/ 
CDOS. 



WES-31 

• Write Westico, Inc. 25 Van Zant Street, 
Norwalk. CT 06855. 

• CgJL (203) 853-6880. 

• Telex 643-788. 

• Dial-up our 24-hour computer (300 baud) 
(203) 853-0816 

MasterCard and VISA accepted. 
Prices do not Include shipping and are subject 
to change. In CT add 7V4% sales tax. 
Manual price may be credited toward pur- 
chase of software. 
Dealer Inquiries invited. Copyright ■ 1981 Westico. Inc 

WESTICO 

The Software Express Service 

25 Van Zant Street • Norwalk, Connecticut 06855 
(203) 853-6880 • Telex 643788 



the present Smalltalk environment to encounter a mode. 

Making a Selection 

In the Smalltalk-76 user interface, text is selected using 
the pointing device and a single button. First, the cursor 
is moved to one end of the passage to be selected (photo 
8a). The selection button is pressed and held down while 
the cursor is moved to the other end of the passage. This 
operation is called "draw-through," though it is not 
necessary to traverse intermediate characters en route to 
the destination. When the cursor reaches the other end of 
the passage, the button is released. The selected passage is 
then shown in inverse video (photo 8d). 

The feedback given to the user during selection is as 
follows. When the button is depressed, a vertical bar ap- 
pears in the nearest intercharacter gap (photo 8b). (At the 

(8a) 

| A one-paned window 




This text is in the only pai^e 
one-paned, window. A window 
may hape.ani) number of panes, 
but between one and six are 
typical. 

A pan* can contain both, text and 
graphics. 



(8b) 



| A one-paned window 

This text is in the only pane of a 
one-paned window. A window 
may hapel^raj number of panes, 
but betwe^L one and six are 
typical.. 

A yam can contain both text and 
graphics. 



(8c) 



a 



A one -paned window I 

This text is m the only pane 
one-paned window. A window 

may haw-HJBHBHB! er °f panes, 
but between one ani( six are 
typical. 



A pane can contain both text and 
graphics. 



left end of a line of text, the bar appears to the left of the 
first character. At the right end of a line, the bar appears 
to the left of the final space character.) 

If the button is released without moving the cursor, the 
bar remains, indicating that a zero-width selection has 
been made. This method — clicking once between 
characters — is the one to use before you insert new text. 

If the button is held down while the cursor is moved, 
the system supplies continuous feedback by highlighting 
in inverse video all characters between the initial bar and 
the gap nearest to the cursor (photo 8c). When the button 
is released, the selected characters remain highlighted 
(photo 8d). This method — drawing through a passage — is 
the one to use before you copy, move, delete, or replace 
text, or before you change it to boldface or otherwise 
alter its appearance. 

Clicking the button twice with the cursor in the same 
spot within a word selects that whole word and highlights 
it (photo 8e). This special mechanism is provided because 
it is very common to select a word. Informal experiments 
lead us to believe that double clicking is much easier than 
drawing through a word for beginners and experts alike. 
It is also faster. It takes the average user about 2.6 
seconds to select a word anywhere on the screen using 
draw-through, but it takes only 1.5 seconds using the 
double click (reference 5). 

There is only one selection in the active pane. It is 
called the active selection. 

(8d) 



| A one-paned window | 



This text is m the" onlu pane of a 
one-pane d window. A window 
may ]vwel tv.wtw jffi Si 

f±\\4c*wi£i E2 Li! Ax arc 
typical. ^ 



A pan/ can contain both text 
graphics. 



and 



(8e) 



n 



A one paned wu\daw\ 



■ m ■ i ■ ' t * r ' ■■—■■■■■»■■* 

This text is iti rru: only pane" of a 
one-paned u'm4ijM\ A window 
may hai>K any number of panes, 
but be ween one and six arc 
typical. 



m wmo.iW. borh r« <r 
graphics. t 

\Vhen a wvtvtow is exposed, all tts 
I iru's redisplay tneir contents. 



Photo 8: Selecting text using the mouse and the cursor. 



108 August 1981 © BYTE Publications Inc 




THE NEW 

FLIP/FLOPPYDISK 

with twice the byte 

OMNI is pleased to bring you a reversible 
5V4" mini diskette.. .the FLIP/FLOPPY DISK. 
Now you can record on both sides for twice 
the storage capacity of a single sided 
disk. And you'll be able to do it far 
more economically, too! 
Each OMNI FLIP/FLOPPY DISK incorporates 
all of the quality features you'd expect 
from the very best single sided disk. 



• Two recording surfaces 

• Two sets of WRITE ENABLE notches 

• Two index holes 

• Reinforced Hub Rings 

• Certified error-free operation at 
more than twice the error threshold 
of disk dFives 

• Over 12 million rated passes without 
disk related errors or significant wear, 
for extra long life operation 
Compatible with most 5V4" disk drives 
including APPLE, TRS-80, PET, OHIO 
SCIENTIFIC, and many more. 

OMNI Resources 

4 Oak Pond Avenue Millbury, MA 01527 • 617-799-0197 

Call TOLL-FREE: In Mass. 1-800-252-8770 

Nationwide 1-800-343-7620 



INTRODUCTORY OFFER 

Order the OMNI FLIP/FLOPPY DISK at this 
special introductory price: 

Five Pack...$21.00 

Equivalent to ten single-sided disks. 

Ten Pack.. ..$40.00 

Equivalent to twenty single-sided disks. 



OFFER EXPIRES OCTOBER 15, 1981 



Please send me the following OMNI FLIP/FLOPPY DISK(s) 

Five Packs(s) @ $21.00 each = $ 

Ten Pack(s) @ $40.00 each = 



Shipping and handling 

Massachusetts residents add 5% sales tax 

TOTAL 



□ Check made payable to OMNI RESOURCES 
D Mastercard 

Account Number 

□ VISA/BankAmericard 
Account Number _-_ 

Credit Card Expiration Date / 

Copyrights 1981 by OMNI Resources 
Circle 279 on inquiry card. 



1.50 



□ COD. 



Name 



Address 

City 

State 



Zip 



Phone Number t L 

Authorized Signature 



(Please allow approximately three weeks for delivery) 
Money back guarantee if not completely satisfied 



BYTE August 1981 109 



SOFTWARE 

for the ATARI 800 

and ATARI 400* 

from aibiLrry software 



STARBASE 
HYPERION" 

By Don Ursem 

Become absorbed in this intri- 
guing, original space simulation 
of war in the tar future. Use 
strategy to defend a front line 
Star Fortress against invasion 
forces of an alien empire. You 
create, deploy, and command a 
fleet of various classes of space 
ships, while managing limited 
resources including power 
generators, shields and probes 
r-m-j * 1 y j ■« v "^v\ Real ,ime responses are 

M /M I I J 1 1 A \VY^\ sometimes required to take 

f L J J ■ ■ \ \ %\v\ advantage of special tactical 
J £ JB | 1 \ ^^ i\\ opportunities. Use of color. 

sound, and special graphics 
add to the enioyment of this program. At least 24K of RAM is required. 
On Cassette — $19.95 On Diskette — $22.95 




NAME THAT SONG 

By Jerry White 

Here is great entertainment lor everyone! 

Two players listen while the Atari starts 

playing a tune. As soon asa player thinks 

he knows the name of the song, he 

presses his assigned key or joystick 

button. There are two ways to play The 

first way requires you lo type in the name 

of the song. Optionally, you can play 

multiple choice, where the computer 

asks you to select the title from four possibilities. The standard version requires24K of 

RAM (32K on diskette) and has over 150 songs on it. You also get a 16K version that has 

more than 85 songs. The instructions explain how you can add songs to the program, if 

you wish. Written in BASIC. 

On Cassette — $14.95 On Diskette — $17.95 




QS FORTH 

By James Albanese 

Want to go beyond BASIC? The remarkably efficient FORTH programming language may 
be |ust lor you. We have taken the popular fig-FORTH model Irom the FORTH Interest 
Group and expanded it lor use with the Alan Personal Computer. Best of all we have 
written substantial documentation, packaged in a three ring binder, that includes a 
tutorial introduction to FORTH and numerous examples. QS FORTH is a disk based 
system that requires at least 24K of RAM and at least one disk drive. Five modules that 
may be loaded separately from disk are the fig-FORTH kernel, extensions to standard 
fig-FORTH. an on-screen editor, an I/O module that accesses Atari's operating system, 
and a FORTH assembler. 

Diskette and Manual — $79.95 Manual Only — $39.95 



FOR OUR COMPLETE LINE OF ATARI SOFTWARE 
PLEASE WRITE FOR OUR CATALOG 




QUTILny SOFTW71R6 

6660 Reseda Blvd.. Suite 105. Reseda, CA 91335 
(213) 344-6599 



ASK FOR QUALITY SOFTWARE products at your favorite computer store. If necessary 
you may order directly from us. MasterCard and Visa cardholders may place orders by 
calling us at (213) 344-6599. Or mail your check or bankcard number to the address 
above. California residents add 6% sales tax. Shipping Charges: Within North America 
orders must include $1.50 for shipping and handling. Outside North America the 
charge for airmail shipping and handling is $5.00. Pay in U.S. currency. 

indicates trademarks of Atari. 



Issuing a Command 

When you issue a command in Smalltalk, you are 
sending a message to an object. There are two ways to 
send a message from Ingalls's user interface. You can send 
certain commonly sent messages to the active pane or 
window by choosing them from menus; you can send any 
message to any object by direct execution of a Smalltalk 

statement. 

(9a) 



ro 



(9b) 



(9c) 



A ora: paned window I 



■pi i ■■■ i » » 

Trus i> xt is m m> only pane of a 

oru -{"Hint window. A window 

man turn any numlv r of para sfl 



ut oetween one ana six are 



a pane can a 
graphics. 

■'■■.- n a wind 
panes redisptc 




ch text and 

\ 

•osed, au its 
ontents. 






A on* paned window 



flu , i. xt i . m rh<" onln pan* of a 
)m pan. i! window. A window 
iuiq nai>i any number of pan. sB 



>ut Detween one ana six are 



wjaw 

A pan." can < \ ,;-,: h |th u. «.t and 

""pastel 
Ww n a wind ctoit 
panes r* dispUicompil! 
undo 
incel 



rased, aU u 
ontents. 



a 



A on* paned window [ 



Hus t» xr i ■-, m th» onhi pan*, of a 
one-paned window. A window 
man have arm number of partes, 

A pan. can contain both text and 
graphics. 

v'/fun a window is exposed, all its 
pan.:-: redisplay their contents. 

A user ran arranat rfv; desktop by 



Photo 9: "Cutting" text in Smalltalk. 



110 August 1981 © BYTE Publications Inc 



Circle 322 on inquiry card. 




HI' 






cir>r>i<zic 



Turn your Apple into the world's 
most versatile personal computer. 



The SoftCard™ Solution. SoftCard 
turns your Apple into two computers. 
A Z-80 and a 6502. By adding a Z-80 
microprocessor and CP/M to your 
Apple, SoftCard turns your Apple into 
a CP/M based machine. That means 
you can access the single largest body 
of microcomputer software in exist- 
ence. Two computers in one. And, the 
advantages of both. 

Plug and go. The SoftCard system 
starts with a Z-80 based circuit card. 
Just plug it into any slot (except 0) of 
your Apple. No modifications required. 
SoftCard supports most of your Apple 
peripherals, and, in 6502-mode, your 
Apple is still your Apple. 

CP/M for your Apple. You get CP/M 
on disk with the SoftCard package. It's 
a powerful and simple-to-use operating 
system. It supports more software 
than any other microcomputer operat- 
ing system. And that's the key to the 
versatility of the SoftCard/Apple. 

Circle 240 on inquiry card. 



BASIC included. A powerful tool, 
BASIC-80 is included in the SoftCard 
package. Running under CP/M, ANSI 
Standard BASIC-80 is the most 
powerful microcomputer BASIC 
available. It includes extensive disk I/O 
statements, error trapping, integer 
variables, 16-digit precision, exten- 
sive EDIT commands and string func- 
tions, high and low-res Apple graphics, 
PRINT USING, CHAIN and COM- 
MON, plus many additional com- 
mands. And, it's a BASIC you can 
compile with Microsoft's BASIC 
Compiler. 

More languages. With SoftCard and 
CP/M, you can add Microsoft's ANSI 
Standard COBOL, and FORTRAN, or 



Basic Compiler and Assembly Lan- 
guage Development System. All, more 
powerful tools for your Apple. 
Seeing is believing. See the SoftCard 
in operation at your Microsoft or Apple 
dealer. We think you'll agree that the 
SoftCard turns your Apple into the 
world's most versatile personal 
computer. 

Complete information? It's at your 
dealer's now. Or, we'll send it to you 
and include a dealer list. Write us. Call 
us. Or, circle the reader service card 
number below. 

SoftCard is a trademark of Microsoft. Apple II and 
Apple II Plus are registered trademarks of Apple 
Computer. Z-80 is a registered trademark of Zilog, 
Inc. CP/M is a registered trademark of Digital 
Research, Inc. 




CONSUMER^ PRODUCTS 



Microsoft Consumer Products, 400 108th Ave. N.E., 
Bellevue, WA 98004. (206) 454-1315 



6809 
SOFTWARE 



sTilvi i : ■ I»I»] 



BY MICROWARE* 



OS-9™ MULTIPROGRAMMING 
OPERATING SYSTEM 

/» true multitasking, real time operating system for 
/ % timesharing, software development, database, 

A m process control, and other general applications. 

This versatile OS runs on almost any 6809-based computer. 

■ UNIX'" -like file system with hierarchical directories, 
byte-addressable random-access files, and full file security. 
Versatile, easy-to-use input/output system is hardware in- 
dependent and expandable. 

■ Powerful "shell" command interpreter features: I/O 
redirection, multiple job stream processing, and more. In- 
cludes a complete set of utility commands. 

■ OS-9 Level Two uses hardware memory management 
and can address over one megabyte of memory. Also 
includes pipes and filters for inter-process data transfers. 

■ OS-9 Level One runs on systems without memory 
management hardware having up to 56K memory. 

□ OS-9 Level Two $495* □ Level One $195 

BASIC09" PROGRAMMING 
LANGUAGE SYSTEM 

Extended BASIC language compiler/interpreter with 
integrated text editor and debug package. Runs 
standard BASIC programs or minimally-modified 
PASCAL programs. 

■ Permits multiple named program modules having local 
variables and identifiers. Modules are reentrant, position 
independent and ROMable. 

■ Additional control statements for structured 
programming: IF . . . THEN . . . ELSE, FOR . . . NEXT, 
REPEAT . . . UNTIL, WHILE ... DO, LOOP . . . ENDLOOP, 
EX1TIP . . . ENDEX1T. 

■ Allows user-defined data types and complex data 
structures. Five built-in data types: byte, integer, 

9 digit floating-point, string and boolean. 

■ Runs under OS-9'" Level One or Level Two. D$195* 

OTHER OS-9™ FAMILY SOFTWARE 

■ Stylograph" Screen-Oriented Word Processor 

■ Interactive Assembler ■ Macro Text Editor 

■ Interactive Debugger 

BASIC09 and OS-9 are trademarks of Microware'" and Motorola. UNIX is 
a trademark of Bell Laboratories." Most software is available on ROM or 
diskette in versions for many popular 6809 computers. Contact 
Microware® for specific availability. 

For compatible hardware see GIMIX ad page 128. 

MICROWARE ,,, 

Microware Systems Corp., Dept. B2 
pi 5835 Grand Avenue, Des Moines, Iowa 50304 
(515) 279-8844 • TWX 910-520-2535 




Smalltalk-76 provides pop-up menus for the most com- 
monly used commands, like "cut," which deletes the 
selected text. To issue the "cut" command, you pop up 
the active-pane menu with one of the menu buttons on 
the mouse (photo 9a), keep that button down while mov- 
ing the cursor to the command name (photo 9b), and then 
release the button (photo 9c). A command in the pane 
menu can have only one parameter, the active selection. 
A command in the window menu can have no 
parameters. 

To issue a command that is not available in a menu, 
you select any place you can insert text, and type the 
whole command as a statement in the Smalltalk language 
(photo 10a). Then you select that statement and issue the 



(10a) 



A one paned window 




A user can arrange the acsfctop tnj 
changing fhe sizes anA locations of 
windows. 

4 max: 5 



(10b) 



W 



"f^yi id window 



again 
copy 

air 

oasie 



I 



arrange cne aesRtop im 

le sizes and locations of 




COTTWU0 

undo 

cancel 

alian 



max: 5 



(10c) 



A an* paned window] 



A usi t can arrange tne desktop U\ 
changing the sizes and locations of 
windows. 



4 max: 5 



* 



112 August 1981 © BYTE Publications Inc 



Circle 242 on inquiry card. 



Photo 10: Executing text using the "doit" message. 

Circle 335 on Inquiry card. 



Price breakthrough: $499. 

For a CMOS microprocessor development system. 



Our new CDP18S693 costs less 
than any other 1802 microprocessor 
development system on the market. 
And the development system can even 
become your final target system. 

The incredibly low $499* 
price includes: 

• CDP18S601 computer Microboard. 

• ROM/audio cassette controller 
Microboard. 

• Five-card chassis and case. 

• Detachable 5-volt power supply. 

• Audio cassette tape I /O drive for 
mass storage. 

You get these capabilities: 

• Extended BASIC resident in ROM 
with full floating-point arithmetic. 

• 2K-byte monitor program with 

' U.S. optional distributor resale, single unit price. 



extensive memory manipulation. 

• RS232C or 20 mA terminal interface, 
up to 1200 baud. 

Or, for $799* you can get the 
CDP18S694. It has all the capabil- 
ity of the 693, plus: 

• ROM-based 1802 Assembler/Editor. 

• PROM Programmer board. 

• A second cassette tape I /O drive. 

System expansion: 

• Expand your Microboard system 
capability, choosing from over 40 
expansion boards and hardware 
accessories. 

• Memory expandable to full 65K bytes. 

• Virtually unlimited I/O expansion 
capability using any combination of 
analog and digital I/O boards. 



• Run-time BASIC 3 firmware for final 
system configuration. 
Develop software for any 
1802-based component design, 

or for any Microboard system in BASIC 
or assembly language. 

At these prices you can't afford not 
to get into CMOS. 

For more information, contact any 
RCA Solid State sales office, sales 
representative or distributor. 

Or contact RCA Solid State 
headquarters in Somerville, N.J. 
Brussels, Belgium. Sao Paulo, Brazil. 
Hong Kong. 

Or call Microsystems 
Marketing toll-free (800) 526-3862. 




single-parameter command "do it" (photo 10b) to obtain 
the result (photo 10c). The "do it" command provides im- 
mediate execution of any Smalltalk statement or group of 
statements. This method of command issuance uses the 
previous method: you are sending the message doit to the 
pane, with the Smalltalk statement as its parameter. 

It is standard practice to keep a "work-space" window 
around the screen in which to type your nonmenu com- 
mands. When you want to reissue a nonmenu command 
issued earlier, simply select the command in the work- 
space window and "do it." You may, of course, edit some 
of the parameters of the old command before you select it 
and "do it." In a sense, you are filling out a form when 
you edit parameters of an immediate statement. 

Unfortunately, the common commands "move text 
from here to there" and "copy text from here to there" 
cannot be issued by a single menu command because they 
require two parameters, the source selection and the 
destination selection. Sometimes, they even involve 
messages to more than one pane, the source pane and the 
destination pane. In a modeless system, a move or copy 
command is done in two steps: 
(11a) 




m ii 



menmt 



wed 



\r\& of a nt'u-partfil window 
'np has a windaw m 

)ane has a pane mt 



cut 



past>;\ 
<toit 

i.'ompu. 
uivto 



n/s of text break a 

m 



automatic 



(He) 



• A move is done by cut and paste. First, you select the 
source text and issue the "cut" command (photo 11a). 
The "cut" command deletes the selected text (photo lib), 
but leaves it in a special place where it can be retrieved by 
"paste." Then you select the destination and issue the 
"paste" command (photo lie) to complete the move 
(photo lid). 

• A copy is done by copy and paste, which is completely 
analogous to cut and paste, but does not delete the 
original text. 

Remember the "copy-from-file" example (the one 
where you had to go in and out of many layers of 
modes)? In the Smalltalk-76 user interface, you can ac- 
complish this with six pushed buttons, no mode exits, 
and no typing: (1) activate the source window that 
displays the file you are copying from; (2) select the 
desired text; (3) issue the "copy" command in the menu; 
(4) activate the destination window; (5) select the destina- 
tion point, and (6) issue the "paste" command in the 
menu. The job requires little more effort than copying 
within the same document. If the window is not already 
(lib) 






text is m me rhju-mnd 
of a nm-pama window, 
vindow has a wmdow m$m 
>,ach pane has a pan$ m$nu, 

that lints of c^xt break at 
spaces^ 



■ 



mmmmmmmmnm 



(lid) 




fus"i 



~>ane of a tu£ 
[he window 
\nd each pa 



Jote that Li 
iwd spaces; 




dOttfc 

compil^ 
unao 



'nrir 



window. 
indow me 

pane men 

break| at 



pane of a two -parted, window. 
The widow has a window menu 
arid each pane has a pom menu. 

Note that lines of text t>reak|_ 
at word spaces. 



xutomaru 




Photo 11: Moving text in Smalltalk. 



114 August 1981 © BYTE Publications Inc 



The perfect marriage of 
Superbrain™ and Winchester? 




00 K or 350 K 
floppy storage 




5 Megabytes 
hard disk storage 



Finally, a price-performance breakthrough for mass storage in a one-piece, 

handsomely styled desk-top computer. 




a 




™ 



A product of CMC International 



5 IV Micro-Winchester 5 Mbyte (formatted) hard disk 
700K or 350K floppy disk back up 
Dual Z-80 processors with 64K RAM 
Dual RS232 ports 



,TM 



• Complete and ready to run with CP/M 2.2 

• Also available 10 Mbyte hard disk, 5 MB removable 



10 Mbyte hard disk SuperTen 



TM 



DEALER & OEM INQUIRIES INVITED 
Telephone (206) 453-9777 



CMC 



bfiNA 



Circle 56 on inquiry card. 



A Division of Computer Marketing Corporation 
11058 Main. Suite 125, Bellevue. WA 98004 



on the screen and you can't remember the file name, you 
can go to another window and scroll through a list of files 
without having to exit any modes, invoke any programs, 
save any edits, lose sight of the destination file, or lose 
any time. 

The Smalltalk-76 text-editing facilities not only relieve 
you of the burden of modes, they also require very few 
keystrokes and are easy to learn. 

Software-Development Aids 

One of my summer projects in 1977 was to increase the 
speed and friendliness of the Smalltalk software- 
development environment by adding inspect windows, 
browse windows, and notify windows to the user inter- 
face. These and other enhancements made by the Learn- 
ing Research Group are described below. In recent 
months, the team has further enhanced the Smalltalk-80 
environment. Although it conforms to the same prin- 
ciples as before, its details are different from what is 
described in this article. 

Inspecting Data Structures 

Suppose someone has given you a Smalltalk program 
to implement a "regular polygon" class (table 1) and you 
want to learn more about it. It would be helpful to see an 
actual instance of a regular polygon. 

If the variable triangle refers to a regular polygon, you 
type the following statement into your work-space 
window: 

triangle inspect 

and then issue the "do it" command in the pane menu 
(photo 12a). In a few seconds, a two-paned "inspect win- 
dow" appears on the screen. Its title tab tells you the class 
of the inspected object, in this case, RegularPolygon. The 
window is divided into two panes. The left or variable 
pane lists the parts of a regular polygon, sides, center, 
radius, and plotter. The right or value pane is blank. 

You point to the word sides in the variable pane and 
click the selection button on the mouse. The word sides is 
highlighted, and in the value pane, the value of the 
variable sides appears (photo 12b), in this case, 3. You 
point to the word center and click. In the value pane 
appears the value of center (photo 12c), in this case, the 
point 526@302. The value pane is dependent on the 
variable pane because its contents are determined by 
what you select in the variable pane. The arrow in figure 
3 symbolizes this dependency. 

Let's inspect the value of center. In the variable pane, 
where center is selected, pop up the pane menu and issue 




Figure 3: Principal dependencies among panes of an inspect 
window. 



116 August 1981 © BYTE Publications Inc 



Circle 282 on Inquiry card. 



EPSON 

PRODUCTS 



MX80/70 FRICTION FEED 

KIT by Orange Micro 



HERE AT LAST! A friction feed kit 
for your EPSON MX80/70. The kit 
allows the user to convert his 
Epson printer to a friction feed and 
pin feed mechanism. 

The friction feed will accept single 
sheets of your letterhead, or mul- 
tiple copy forms such as invoices 
with up to 4 part carbon copies. 

The pin feed replaces the adjust- 
able sprocket mechanism. It allows 
use of 9 1 /2" wide continuous fan- 
fold paper which is an industry 
standard size. 

No drilling required. Installation 
takes about 15 minutes. All parts 
are included with easy to follow 
instructions. 




75. 



00 



DEALER INQUIRIES 
INVITED 



EPSON 
MX80 



• 9 x 9 dot matrix • Lower case 
descenders • 80 CPS • Bidirec- 
tional, Logic seeking • 40, 66, 80, 
132 columns per line • 64 special 
graphic characters: TRS-80 Com- 
patible • Forms handling • Multi- 
pass printing • Adjustable tractors. 

MX80 (List $645) $ CALL 

MX80 Dot Graphics Upgrade (List $100) $ CALL 




EPSON 
MX70 



• Super low-priced dot resolution 

graphics • 5 x 7 dot matrix • User 

replaceable printhead • Top of 

Form. 

MX70 




.(List $495) SCALL 




EPSON 
MX80 FT 



• Same basic features as the MX80 

• PLUS friction feed for single 
sheets • and adjustable tractors. 

MX80 F/T (List $745) $ CALL 



^ 




APPLE INTERFACE 

For Epson 



The Grappler interface card is 
the first to provide on-board firm- 
ware for Apple high resolution dot 
graphics. No longer does the user 
need to load clumsy software 
routines to dump screen graphics 
— it's all in a chip. Actually, it's our 
E-PROM, and it is replaceable to 
accommodate the Anadex, Epson 
MX80 & MX70, IDS Paper Tigers, 
Contronics 739, and future graphics 
printers. The Grappler™ accepts 
17 software commands including 
Hi-Res inverse, 90° rotation, double 
size, and much more. 




165 



00 



Includes Cable 

DEALER INQUIRIES 

INVITED 



Orange micro 



UP TO 25% DISCOUNTS! 



"THE COMPUTER PRINTER 
SPECIALISTS" 

SAME DAY SHIPMENT! 



RADIO SHACK \ 
LINE PRINTER IV ) 



£3) CENTRONICS 739 ( 

With Graphics and 

i Word Processing Prin t Quality 



VISTA — C. ITOH 




• 18 x 9 dot matrix; suitable for word 
processing • Underlining • proportional 
spacing • right margin justification • serif 
typeface • 80/100 CPS • 9V2" Pin 
Feed/Friction feed • Reverse Platen • 
80/132 columns • Top of form 



CENTRONICS 739-1 (Parallel) (List $995) 

CENTRONICS 739-3 (Serial) (List $1045) 



{Call 
SCall 



ANADEX 




Dot Graphics, Wide Carriage 



ft • 11 x 9 dot matrix; lower case descen- 
/ ders • Dot resolution graphics • Bi- 
directional, logic seeking • Up to 200 
CPS • RS 232 Serial & Parallel • Forms 
control • X-ON/X-OFF • Up to 6 part 
copy. 



ANADEX 9501 



.(List $1650) $1350 



AXIOM 




AXIOM GP-80M . 



Dot Graphics, Low Price 



• Dot addressable graphics • 70 CPS 

• 12 characters per inch • 80 columns 

• adjustable tractors • 3 part copies 

• Manufactured by Sieko • Parallel, 
RS232 serial, IEEE-488 interfaces 
available. 



.(List $399) $349 




IDS PAPER TIGERS 

Dot Resolution Graphics, quality print, speed 



• 7 wire printhead (445); 9 wire printhead 
(460) with lower case descenders • Over 
150 CPS • bl-dlrectlonal, logic seeking 
(460) • 8 character sizes; 80-132 columns 

• Adjustable tractors • High-resolution dot 
graphics • Proportional spacing & text 
justification (460). 

IDS 445G 7 wire printhead, graphics (List $895) $ 750 

IDS 460G 9 wire printhead, graphics (List $1394) $1150 

IDS 560G 9 wire, wide carriage, graphics (List $1794) $1590 



CALL FOR FREE CATALOG 

(800) 854-8275 

CA,AK, HI (714) 630-3322 

At Orange Micro, we try to fit the right printer to your application. 
Call our printer specialists for free consultation. 



Daisy Wheel Letter Quality 

• 25 CPS (Optional 45 CPS) • Typewriter 
quality • Centronics parallel • RS 232 
Serial (Optional) • Proportional spacing • 
Bidirectional • Programmable VFU • Self 
test • Diablo compatible • Friction feed 
(Optional tractors) • 136 printable 
columns. • Manufactured by C. ITOH. 



VISTA V300(C. ITOH) (List $1895) SCall 




ANACOM 

Low Cost, High Speed, Wide Carriage 

• 9 x 9 dot matrix • Lower case descenders • Wide carriage • 
Adjustable tractors to 16" • 150 CPS, Bidirectional, Logic Seeking 

ANACOM 150 (List$1350) SCall 



MALIBU165 

The Small Business Printer; 
Letter Quality & Speed. 
10x9 dot matrix • Letter quality print; Lower case descenders 
High speed; 165 CPS, Bidirectional, Logic seeking • Wide car- 
riage • Vertical forms control • User programmable character set 
■ Dot Resolution Graphics. 

NEC SPINWRITER 

High Speed Letter Quality 

• 55 CPS • Typewriter quality • Bidirectional • Plotting • pro- 
portional spacing. 

5510-5 RO, Serial, w/tractors (List $2995) $2650 

5530-5 RO, Parallel, w/tractors (List $2970) $2625 



mmk TELEVIDEO CRT'S 




AT DISCOUNT PRICES! 



QUANTITY PRICING AVAILABLE 



TVI912C 
TVI 920C 
TV I 950 



} 



Please Call Toll Free 
Prices are too low to 
advertise 



PRINTERS 

MALIBU 165 wide carriage, graphics, letter quality .. (List $2495) $1975 
QUME 5/45 typewriter quality (List $2905) $ 2559 

INTERFACE EQUIPMENT 

CCS APPLE PARALLEL Interlace & cable $ 150 

ORANGE INTERFACE for Apple II 

parallel interface board & cable $ 110 

MICROTRONICSAtari parallel interface $ 69 

ATARI 850 Interface module, serial/parallel $ 199 

TRS-BO CABLES to keyboard or Exp. interface * Cal1 

NOVATION D-CAT direct connect modem $ Call 



TELEPHONE ORDERS: Mon.Fri. 8:30 - 5:00 

The Orange Micro Printer Store (Retail): 

Mon.-Fri. 10:00 - 6:00, Sat. til 4:00 



-S 



Phone orders WELCOME; same 
day shipment. Free use of VISA & 
MASTERCARD. Personal checks 
require 2 weeks to clear. Manu- 
facturer's warranty included on all 
equipment. Prices subject to 
revision. 



Oronge 

fTlfCrO, Inc.' 

3150 E. La Pal ma, Suite I 
Anaheim, CA 92806 



The following template contains a description of a regular polygon with the following attributes: 
sides Number of sides (3 for a triangle, 5 for a pentagon, etc.). 

center If the regular polygon were inscribed in a circle, this would be its center point, 

radius If the regular polygon were inscribed in a circle, this would be its radius, 

plotter A pen that can draw an image of the polygon on the screen or on paper. 

The following expressions provide an example of creating and using an instance of RegularPolygon. 

triangle — RegularPolygon sides: 3 radius: 50. 



triangle translateBy: -90 @ 60. 
triangle plot: black. 

triangle translateBy: 165 @ 20. 

triangle scale: 0.6. 

triangle plot: gray. "where gray denotes an ink color" 



spow I <»,.m,)i, | 'in* 



:lass name 



superclass 



instance variable names 



class messages and methods 



RegularPolygon 



Object 



sides center radius plotter 



i.;m,i> ir.iri^l.u*-£u: 
i-l-i.ll. I'lor: l>i.Kk: 



1- 



™^ 



fSSfSpSSi | in-itui: | V.n 



trtflngU ~ fe-iiihirPMnvji, Ml 



rrmrt.il. tf.inslAi.Bii: -c«i w fig 
rn.lti.TU itot: Uiu'fc; 





m.:n.il.- tr.vmtat.f. 
rrto»0s scot*; 0.6. 
mongJ v-tor: gray. 



initialization 
sides: s radius: r | | 

"Create an instance of RegularPolygon whose center is located at the center of the currently active window on the display screen Screen is a 
global variable that refers to the hardware display screen." 

I self new sides: s radius: r center: (Screen activeWindow frame center) 



instance messages and methods 



initialization 
sides: s radius: r center: c | 

"Initialize all attributes. Class Pen is provided in the system as one way of side effecting the display screen ." 
sides — s. 
center — c. 
radius — r, 

plotter — Pen width: 2 
analysis 

center | | "Answer the center coordinate of the polygon.' 

(center 

Sides | ; "Answer the polygon's number of sides." 

t sides 
display 



'Draw an image of the polygon using the specified ink color.' 

'lift the pen to disable drawing" 

'position the pen at the center" 

face the top of the screen" 

'position at a corner" 

'turn to face along a side" 

'select the ink color" 

'lower the pen to enable drawing" 

'for each side of the polygon:" 

'plot that side" 

'turn to face along the next side" 



plot: Ink | | 

plotter penup. 

plotter goto: self center. 

plotter up. 

plotter go: radius. 

plotter turn: 180 - (self comerAngle/2). 

plotter color: ink. 

plotter pendn. 

I to: sides do: 
[:i | plotter go: self sideLength. 
plotter turn: 180-self cornerAngle] 
transformation 
scale: factor | | 

"Scale the polygon radius by the specified factor." 

radius — radius * factor 
translateBy: deltaXY | | 

"Change the polygon's location by the specified amount (a Point) "' 

center — center + deltaXY 
private instance methods 

cornerAngle 1 | | "Answer the interior angle of any vertex, in degrees." 

I 180 - (360/ sides) 
SideLength | | "Answer the length of any one ol the equal sides " 

12 * radius * (self cornerAngle 12) degreesToRadians cos 

Table 1: Description and class template for class RegularPolygon. 



118 August 1981 © BYTE Publications Inc 



Circle 397 on inquiry card. 




Take Your Cue From Vista . . 



When it comes to Apples, take your cue 
from Vista's A800 Eight-Inch Floppy Disk 
Controller. The A800 offers a cost-efficient 
approach to software compatible disk 
memory expansion for your Apple 11^ computer. 
The A800 Controller enables Apple II users to 
access up to five megabytes of online storage 
through conventional disk operating (DOS) 
commands. 

The Control and DMA Logic provides high speed 
(1 microsecond per byte) transfer of data from 
the disk drive directly to the Apple II memory 
without processor intervention. Plus, the Phase- 
Locked Loop Data Separator provides the 
ultimate in data reliability. 

AND THERE'S MORE. 

The controller is compatible with the most 
popular disk operating 
systems for the 



. ' * ■ *IA« 



Apple II computer. It also interfaces to all 
Shugart/ANSI Standard Eight-Inch Floppy Disk 
Drives. The A800 provides complete IBM for- 

n™** *\ mat compatibility in both single and double- 
9 ۥ density modes. 



Sure 



THE HOT SHOT AT A COOL PRICE. 

The A800 is reasonably priced at $595. A 
price you can't beat when you compare its 
quality and performance. 



Cfcl«4%f' quality and performance. 

CALL YOUR SHOTS. 

Vista offers you a complete line of peripheral 
equipment to maximize the capabilities of 
your Apple system including: High capacity Mini- 
floppy Disk Drives, the Vista Music Machine 9 
and the Vista Model 150 Type Ahead Buffer. In 
addition, Vista offers a line of advanced 
components fully compatible with the 
— - TRS-80 " and S-l OO based 

computers. 



„n\Jli 



%#icf--k Computer 
llslll Company 
1 31 7 E. Edinger Avenue 
Santa Ana, CA92705 
(714)953-0523 

Call Toll Free 800-854-801 7 



© Apple II is a registered trademark of Apple Computers, Inc. 
• TRS-80 is a trademark o( Radio Shack, A Tandy Co. 



the "inspect" command (photo 12d). On the screen 
appears another inspect window showing that center is 

an instance of class Point (photo 12e). You can now ex- 

(12a) 



irvcmqie tran slate By: t 65 
tnan$e scoUT 
triangle plot: 




natvU inspect 



copy 
cut 

>aste 




(12b) 



(12c) 



trtan$e inspect. 




Re^ularPoU^on 



self 
'sides' 



Jeraef 



ramus* 

1 plotter' ^ 



526la'»302 



i riarui 

^ 


le inspect. 


- 


1 




ReguIarPoUjgon 








* ~T 




V center' 
'n lams' 
'plotter 1 








■,.,■,■ mmmmi 







amine that point's variables, x and y, reactivate the 
original inspect window, close either or both windows, 
or work in any other window. You are not in a mode. 

Browsing Through Existing Definitions 

Now that you have inspected a sample regular 
polygon, you might want to find out what methods have 
been defined in its class. One way to do this is to activate 
a window called a "browse window" or "browser." Most 
Smalltalk programmers leave a browser or two on the 
screen at all times with the work-space window. 

The title tab of the browser (photo 13a) says "Classes" 
because the standard browser lets you examine and 
change the definitions of all Smalltalk classes — classes 
supplied by the system, as well as classes supplied by 
yourself. It is easy to create a more restricted browser 
that protects the system from ill-conceived modification. 
But on a personal computer, you are just going to hurt 
yourself. 

The browser has five panes. The principal dependen- 

(12d) 



irianqie inspect. 




\ 


ReguiorPoUgon 


A 


^v «* ««■ *** i egg ^ 3Q2 




IMU 




aiwoi, 






X center 




'radius' 
'plotter' 




■-..■'." •: 







(12e) 



RegularPolt^on 



self 

'sides' 

'radius 1 
'plotter 1 



>Zb!a«oU2 



Point 




#11 

u 



Jfc 



Photo 12: Inspecting data structures in Smalltalk. 



120 August 1981 © BYTE Publications Inc 




"Together we're working 
to better serve mankind? 

"Speaking on behalf of Vector computers, I'm pleased 
to announce that TRW Customer Service Division will 
provide a nationwide, nine-month on-site service warranty 
that you, the end-user, will receive absolutely free* 

"I'd also like to add that this is a unique program. It's 
actually the first time a microcomputer has had this kind 
of comprehensive nationwide on-site service — especially 
from a company of experts like TRW. 

"Now you have even more security when you buy a 
Vector. In addition to increasing your personal productivity, 
helping you make faster decisions, and improving your 
business, we offer a network that will service us right in 
your office if we ever need it. At no expense to you. 

"Right now, you can get quick, dependable service in 
Los Angeles, New York City, Denver, Dallas, Chicago, San 
Francisco, Northern New Jersey, Philadelphia, Atlanta, 
and Boston. With more cities on the way. 

For more information and your nearest Dealer, call us 
at 800-423-5857. In California, call 800-382-3367. Or write 
to us at 31364 Via Colinas, Westlake Village, CA 91362. 

"TRW and Vector. Now that we're helping each other, 
there's no telling how much we can accomplish for you'.' 



Vector Graphic Inc. 
COMPUTERS FOR THE ADVANCEMENT OF SOCIETY. 



Circle 393 on inquiry card. 



'Within 50 mile radius of a TRW service center. 



ADD EXCITING MUSIC 
TO YOUR APPLE 8 ! 



j i r f JiJ i g 



E£ 



a 



^i^ff 



j* 



¥ 



P^ 



J J J 1 ANA , tt b i 



SUB 



<" INS DEL TIE -* 

■ 

9474 FREE 



MEASURE 3 

END 

SAUE« 

A L F's 9-voice Music Card MCI 
is only $195. 

Here's what our customers have said: 

(Excerpts from unsolicited letters. Copies of original letters available on request.) 

About the A L F system: 

It's a rare enough occurrence when hardware/software lives up to one's 
expectations. For something to exceed one's wildest hopes — as the ALF 
synthesizer certainly does — is a real treat. My congratulations to all 
concerned. 

— Dhahran, Saudi Arabia 

I myself have told several people that next to a disk, I consider the [ALF] 
synthesizer to be the most important peripheral they could purchase for their 
system. Very excellent job! Keep up the good work. 
— Oak Ridge, Tennessee 

I recently purchased 2 of your Apple music boards. Out of the peripherals I 
have for my Apple, I enjoy them the most. It has to be the most enjoyable 
thing that has ever been invented. I hope you continue to develop products as 
clever and enjoyable as this one. The Entry program has to be one of the most 
sophisticated programs I have ever seen. It proves that a hardware manufac- 
turer DOES have the ability to also produce quality software. It is almost 
worth the price of the boards just for the Entry program. 
— Burbank, California 

About ease of use: 

I have had my Music Card MC1 for a little more than a week now and I have 
almost completed entering "The Maple Leaf Rag". I found it to be a lot 
simpler than I thought and so I am very, very pleased. My family isn't because 
I sit up to all ends of the night playing with the blasted thing! 

— Cypress, Texas 
ALF has opened up my head and ears and enabled me to do things musically 
which I would like to be able to do on [conventional] instruments. As much as 
I love the instruments I try to play, I just don't have the talent and technique to 
play what is in my head. By golly, the ALF board doesn't know about my 
limitations, though. I can play hell out of that thing, playing notes and tempos 
which previously have existed only in my head. Many thanks from a frustrated 
musician and satisfied ALF "player". 

— Demopolis, Alabama 

About documentation: 

I don't know much about hardware, but I have been a programmer for 15 
years and I have never seen a better piece of software documentation than 
your user manual. It is a joy to study! 
— Lancaster, California 

About the competition: 

Recently, I purchased an [ALF] 9-voice board and a couple of music al- 
bums .... all I can say is that I wish I had listened and played with it before I 
purchased the Mtn. Hardware board. It sounds about the same and is vastly 
superior in software, ease of use, and price. The Entry program is a joy to use 
and it's easier than Mtn. Hardware's, but then, I guess you guys know that 
already. (Oh yes. you wouldn't happen to know of anyone that wants to buy a 
Mtn. Hardware system? $450 or best offer?) 
— Kirkland, Washington 

I would like to tell you that after having used the system ONLY ONE DAY, that 
I am absolutely delighted with it. In addition, I purchased the three boards 
although I ALREADY own Mountain Hardware's music system. Now that I 
have seen and own your system, I am putting my "old" one up for sale. I think 
that your software makes it far easier to enter music, and that the software 
routines allow for far greater flexibility. Again, I extend my compliments lo 
you. As I said. I have owned another music system, and consider myself 
therefore, qualified to make a judgement between the use ot the two. Yours is 
the clear choice! 

— Levittown. New York 




See your local Apple® 
or write: 



dealer 



ALF Products Inc. 



122 



1448 Estes Denver, CO 80215 

Apple > ,i trademark >>i Apple Cumputer Inc 

August 1981 © BYTE Publications Inc 



cies between panes are symbolized by arrows in figure 4. 
The top row has four panes called the class-category 
pane, class pane, method-category pane, and method 
pane. The large lower pane is called the editing pane. 
(After you have used the system for a few minutes, the 
significance of each pane becomes apparent, and it is not 
necessary to memorize their technical names.) 

In photo 13a, the browser shows a method definition in 
the editing pane. You can tell that the method is class 
RegularPolygon's version of scale: because Regular- 
Polygon is highlighted in the class pane and scale: is 
highlighted in the method pane. 

The method-category pane lists several groups of 
methods within class RegularPolygon: initialization, 
analysis, display, transformation, testing, and private 
methods. You can tell that scale: is a transformation 
message in class RegularPolygon because that category is 
highlighted. 

The class-category pane lists several groups of classes, 
including numbers, files, and graphical objects. You can 
tell that class RegularPolygon is in the graphical objects 
group because that category is highlighted. 

Suppose you want to look at a different method, 
translateBy:. Click its name in the method pane and its 
definition is immediately displayed in that pane's depen- 
dent, the editing pane (photo 13b). If the method you 
want to see is in the method category analysis, first click 
that category name. Immediately after you do that, its 
dependent, the method pane, lists the methods in that 
category. Now you can click the name of the desired 
method (photo 13c). 

If you want to know things about the class as a whole, 
like its superclass and field names, click "Class 
Definition" in the method-category pane and the defini- 
tion appears in the editing pane (photo 13d). 

Suppose you want to look at a different class, say 
IrregularPolygon. Click its name in the class pane and its 
method categories are immediately displayed in the next 
pane (photo 13e). If the class you want to see is in the 
class category windows, first click that category name. 
Immediately after you do that, the class pane lists the 
classes in that category. Now you can click the name of 



Class Category 
Pane 



Class 
Pane 



Method Category 
Pane 



Method 
Pane 



* 



Editing 
Pane 



Figure 4: Principal dependencies among panes of a browse 
window. 



IF YOU CAN RECOGNIZE VALUE 
YOU CAN SAVE 



*500 



TRS-80® 
MOD "'* 



FIRST . . . 

We lowered the prices of 

the Model III from $2499* to 

*1998 

*We have taken rhe basic 1 6K Model III expanded 
rhe memory ro 48K and added our MTI Double 
Density, Dual Disk Drive system. System is fully 
compatible with Radio Shack DOS and peripherals. 

MOD HI/EXPANDED 

Same as above but has double storage capacity 
(708K storage). Your choice of 2 dual headed 40 
track drives or 2 single headed 80 track disk drives. 
Includes Microsystems DOS plus 3.0. 

$ 2499 




MOD 111/280 

Our largest MOD III, approximately 1 .5 mega bytes 
of sfotage, utilizes 2 dual headed 80 track, double 
density disk drives. Complete with manuals and 
professional operating system, Microsystems DOS 
plus 3.0 (40 & 80 track capability). 

$ 2799 



MTI has a complete line of COMPUTER add ons: 
INTERNAL DISK KIT 40 OR 80 TRACK EXTERNAL DISK KIT 40 OR 80 TRACK 



Drive Kir #1 from $ 699 
Drive Kir #2 from J 279 



Drive Kir #3 from s 379 
Drive Kir #4 from $ 359 



TRS DOS & Manual *21.95 

DOS PLUS from *99 



MTI MOD III SALES, PARTS & SERVICE CENTERS - INDEPENDENT DEALERS 



ARIZONA (602) 839-0546 

SAN JOSE (408) 427-0836 

MIDWEST (618) 345-5068 



NEW YORK (212) 728-5252 

CALL NORTH TIER .. (701) 594-5674 



SAN DIEGO (714) 261-0285 

TEXAS (214)247-6679 

GEORGIA (404) 449-8982 



EA 



MICROCOMPUTER TECHNOLOGY INC. 

3304 W. MACAPJHUK SANTA ANA, CA 92704 
• (714)979-9923 • TELEX 6780401 TABIPJN • 

• TR5-80 15 A P,EG TRADEMARK OF TANDY CORP 'Uses MTI Memory Disk Drives & Component 




PRICES 
F.O.D. SANTA ANA 



Circle 234 on Inquiry card. 



the desired class (photo 13f). 

Categorization is used at both the class and method 
level to help the programmer organize his or her program 
and to provide fewer choices in each pane. If a list is 
longer than what can fit in a pane, it can be scrolled by 
pressing a mouse button with the cursor in the scroll bar. 

If you just want to browse around reading class and 
method definitions, you can do so by lazily clicking the 
selection button with the cursor over each name, never 
touching the keyboard. That is why the window is called 
a browser. Browsers are further discussed in references 6 
and 7. 

Astute readers may have noticed that the class 
template (see "The Smalltalk-80 System" by the Learning 
Research Group on page 36 of this issue) presents the 
methods of a class apart from the methods of its in- 



stances, while the browser does not. This discrepancy 
stems from differences between the Smalltalk-80 and 
Smalltalk-76 languages. 

Revising Definitions 

If you are looking at a method definition or class 
definition in the editing pane, you can revise it using the 
standard text-editing facilities (select, type, cut, paste, 
copy). 

If you like, you can copy information into the defini- 
tion from other windows — including other browse win- 
dows — because you are not in any mode while browsing. 
You can even interrupt your editing to run another pro- 
gram, list your disk files, draw a picture, or do whatever 
you like. You can later reactivate the browser and con- 
tinue editing. 



(13a) 



(13b) 



fttUS 



DtsptcuiForrri 

Form 

HoUTOTW 

Half Tot y r 

IrteaularPuhMon 

Point 

Rectatial. 



Oass Definition 
Class Graardzatis 

'initialization' 
'analysis' 
' UstJtou' 



resting 
pm-ate ins 




Seal.- the pohiacm radius by the specified factor" 
radius * factor 



(13c 



i» "■'■'.'■> 



Rma classes 
numbers' 

collections' 
text' 



reenter 



text display 
windows' 

vanes and menus' 
files' 



OisplfliiForm 

Form 

Halftone 

Half toner 

IrreaularPolif. 

Point 

ftectanqie 




CtassDcfimtion 
Class Oraamsation 
'tnuiaUzatum' 



display 

'transformatwn 

'testing' 

'private- instance met 



Ansiivr the center coordinate of me polygon. 



(13e) 



[lasses |1 



rTie'i etas 
numbers' 

ollecnons' 

f.'xf' 



re iff display 
windows' 
panes and men 



□ 



uspTatfFonri 
Form 

Half Tone 

Half T oner 

<Esm 




•-cum k 

Rectangle ' 

RvgularPoluaon 



OossDefi 
OassOras 

'initial i3i 

'analysis' 

'display' 

'resting' 

'fransforr 




IS' 



isplayForm 
Form 

Half Ton* 

HalfToner 

IrreyularPolyijon 

Point 
Rectanalc 



Class Definition 
Class Orcjanizatu 
'initialization' 
'analysts* 
Mtsplai 




testing 
pupate wstancj 



"*" 



»XY f "Change the location by the< specified amount 

ter + delta XY 



(13d) 




en us' 



Form 

Half Ton*? 
Half toner 
IrreauiarPGlMgon 
Potrir 
Rectangle 



Ciassuraamzation 

'initial tidnon' 

'analysis' 

'display' 

'transformation' 

'testing' 

'private instance met 



•s: 'ReguiarPoiygon' 

,es center radius plorter' 



graphical objects' 

*'A regular polygon has (sides) vertices, 

each ar a distance of (radius) from (center). 

It is drawn on the" screen t»ii the pen (plotter), 



(13f) 



Classes 



kernel classes' 
numbers' 
collections' 
text' 

graphical objects' 
texx dispiau 



Browse Window 
Code Window . 
Font Window 




OossDefi 

Class Orac 
'Initialled 
'Private' 



essageserwir 
NottfnWindou' 
Panea Window 

PrajectWirtdow 



Photo 13: Browsing through existing definitions in Smalltalk. 



124 August 1981 © BYTE Publications Inc 



*»K _ 




PERT/CPM TIMESAVER 




I 




\ 



As a project manager, you know the 
value of careful planning. Oversights 
and miscalculations can cost you 
crucial time and money. 

MILESTONE is a powerful "Critical Path" 
Program that can be used for planning 
and analyzing virtually any project, from 
the opening of a retail store, to charting 
the progress of a police investigation; 
from drawing up a cost estimate for a 
construction project to scheduling the 
development (and involved expenses) of 
a new computer; from keeping track of 
rental equipment to allowing a winery 
to chart the evolution of a vintage 
Chardonnay from harvest to bottling. 
The applications are endless. 

What's more, MILESTONE is one of the 
easiest software packages to use. Once 




MILESTONE. 

WHEN 
TIME 

IS 
MONEY. 



the working days, skill categories, 
wages or salaries and time increments 
are defined, then MILESTONE is ready 
to do the work for you. Change, for 
instance, the estimated completion 
date of a particular time-critical task, 
and you'll instantly see it's effect on 
the entire project. All scheduling, man- 
power costs, associated reports, etc. 
are immediately re-tabulated. A calendar 
display allows you to visually follow 
the activities (200 per project with 64K 
RAM, 100 with 56K RAM). Examples 
are included on the disk. 

TIME IS MONEY. SAVE BOTH WITH 
MILESTONE. 

Price is $295. Manual alone— $30. 

SOFTWARE 
SOFTWARE 
DIGITAL /M4RKETING 

DIGITA/VMRKETING 



A PROJECT MANAGEMENT 

AND TIME SCHEDULING 

PROGRAM. 



Circle 115 on Inquiry card. 



2670 Cherry Lane 
(415) 938-2880 



Walnut Creek, CA 94596 



Dealer inquiries invited. 

Dealers outside California call (501)442-0864. 

Inside California call (415) 938-2883. 



Milestone Is a trademark of Organic Software. 
CP/M is a trademark of Digital Research. 

MILESTONE requires 56K RAM and 
CP/M. Also available for CP/M-86, Apple 
Pascal and UCSD Pascal. Specify 8080, 
Z80, CDOS, 8086. UCSD Pascal or Apple 
Pascal. Formats: 8" single density IBM 
soft-sectored, 5V<" NorthStar DD, 
Micropolis Mod II. Superbrain 3.0. Apple II. 



The following template contains a description of an irregular polygon with the following attributes: 
vertices An OrderedCollection of Points, 

plotter A pen that can draw an image of the polygon on the screen or on paper. 

The following expressions provide an example of creating and using an instance of IrregularPolygon . 



triangle — IrregularPolygon vertices: 

(OrderedCollection with 
with 
with 

triangle translateBy: -90 @ 60. 

triangle plot: black. 



2 @2! 
-25 ® -35 
52® -7). 



triangle translateBy: 165 @ 20. 

triangle scale: 0.6. 

triangle plot: gray, "where gray denotes an ink color" 



:lass name 



IrregularPolygon 



superclass 



Object 



instance variable names 



vertices plotter 



class messages and methods 



initialization 
vertices: aCollectlon | | 

"Create an instance of IrregularPolygon whose center is located at the center of the currently active window on the display screen 
Screen is a global variable that refers to the hardware display screen." 

I self new vertices: aCollection center: (Screen activeWindow frame center) 



instance messages and methods 



initialization 
vertices: aCollectlon center: c | | 

"Initialize alt attributes. Class Pen is provided in the system as one way of side effecting the display screen." 

vertices — aCollection. 
plotter — Pen width: 2. 
self translateBy: c - self center 
analysis 

Center | sum | "Answei the cenier coordinate of the polygon ' 

sum — 0@0. 

vertices do: [ :pt | sum — sum + pt]. 
I sum / self sides 

Sides | | "Answei [he polygon's number of sides." 

I vertices size 
display 



plot: Ink | | 

plotter penup. 

plotter goto: vertices last. 

plotter color: ink. 

plotter pendn 

vertices do: 
[:pt | plotter goto: pt] 
transformation 

scale: factor | center | 

"Scale the polygon by the specified factor " 

center — self center. 

vertices — vertices collect: 

[ :pt | (pt - center) *factor + center] 
translateBy: deltaXY | | 

"Change the polygon's location by the specified amount (a Point] " 

vertices — vertices collect: [.vertex | vertex + deltaXY] 



"Draw an image of the polygon using the specified ink color.' 

"lift the pen to disable drawing" 

"position the pen at one vertex" 

"select the ink color" 

"lowei [he pen to enable drawing" 

"for each vertex" 

"tfiaw a straiyhi line to it" 



the center of expansion" 

geneiate new vertex list from old If st ' 



Table 2: Description and class template for class IrregularPolygon. 



126 August 1981 © BYTE Publications Inc 



Circle 4 on inquiry card. 






AND STILL THE LEADING EDGE . 
IN SYSTEM PERFORMANCE 








Hard Disk and Streaming Tape 

reliability and versatility that can't be beat 



OEM CONTROLLERS 

Multibus 
General Purpose 




IflDES 




31 or62 MByte formatted • 10.5 or 32 MByte formatted 

• Lowest cost/MByte from any manufacturer 
i CP/M* compatible "drop in" BIOS 

• Single S100 card controller 

• Fully expandable up to fourdrives, 8" or 14" 

• Reliable high performance Priam Winchester Disks 
1 Immediate delivery 



SYSTEM 8 

8" Winchester 10 or 32 MByte formatted 
Integrated streaming cartridge backup 
Streaming backup at 5 MB/min 
Selective file backup under CP/M 
Versatile parallel I/O or DMA interface 



HDES 



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



ADAPTIVE DATA & ENERGY SYSTEMS 
2627 Pomona Boulevard • Pomona, CA 91768 
Phone: (714) 694-6858 






When you are done editing, pop up the active-pane 
menu and issue the "compile" command (photo 14a). 
Compilation takes a few seconds or less because it is in- 
cremental—that is, you can compile one method at a 
time. The compiler reports a syntax error to you by 
inserting a message at the point where the error was 

(14a) 



r*:?ti>;: cuis 

numbers' 

•coUtfetions' 

'tY«r iltspuiM 

tt'indmus 1 

panes arid menus 1 

cornerAn^TT 

! 180 - (/Sides) 



LHSpiai^onri 
Form 
Half Ton»: 
Half Toner 

InviiHlarPoi'Mon 
Poim 

RvaaruiU: ' 



'- it t :• b U 

CtossC 
'inuial 
'analy< 
'dtspla* 
'transf 
'test in 



again 
copy 
cut 

paste 

401 1 

uridit 
aiiiitt 



rlu' inferior aruiu 



(14c) 




ay 

ut menus' 



ImquiarPolMnon 
Poim; 



W 



t 



F ogam 
copy 

GUI 

£j pas re 

doit 
compile 

undo 



e intern 

2£LJ 




detected and automatically selecting that error message 
(photo 14b). You can then cut out or overtype the 
message, make the correction, and immediately reissue 
the "compile" command. 

If you start to revise a definition and change your mind 
about it, you can pop up the pane menu and issue the 



(14b) 



rumus' 



ty£ q ular Polygon 

Point 

Rccramil*? - 



Mi- 
'in 
're 
I 




LT 



"Answer x\\e interior ( 

a/sule' 



xpresston exvecia 



(14d) 




pUtr 

JH'S' 

a Tut menus' 



HiUf i nrut 

'rTY«iuiarPolniion 

Point 

RccrarmU" 




An^e ""Answer mKrii 

180 - (360/Slites) 



Photo 14: Options during method compilation. 



6809 SYSTEMS (& 6809 SYSTEMS (^ 6809 SYSTEMS (^ 6809 SYSTEMS 



Featuring the GIMIX mainframe with 30 amp C.V. terro-resonant power supply; fifteen 50 pin and eight 30 pin slot Mother Board: 

2 Mhz CPU with time of day clock & battery back-up, 1K RAM, 6840 programmable timer, provisions for 951 1A or 9512 F ° r lurlher information, pricing and brochures, contact: 

Arithmetic processors, anc 4 PROM/ROM/RAM sockets that can hold up to 32KB of monitor or user software. ^_^ ^^■■^^■■'^. m 

VARIETY: you can have 32KB, 56KB. 128KB and up of static RAM You can use 5" and/or 8" disk drives, single or double /77\ ^^^l^^iM jfL lt~IC. 

density, single or double sided, and single or double tracking with GIMIX disk controllers. You have a wide choice ol serial or I J ■■§■! I ll^^^k 

parallel I/O cards. ^vT \ Th ' Com i""v ""' d, "™ ra 

EXPANDABILITY: You can add memory, l/Os, Video or Graphics cards, Arithmetic processors, additional drive capacity, and other ^""^- Ouaiiti Electronic products since 1975. 

hardware now or in the future to this SS50 bus structured system from GIMIX or other SS50 bus compatible manufacturers. 1337 WEST 37th PLACE, CHICAGO, IL 60609 

SOFTWARE VERSATILITY: GIMIX systems can use TSC's FLEX or UNIFLEX and MICROWARE'S OS-9 operating systems. A wide (312) 927-5510 • TWX 910-221-4055 

variety of software and languages is available for these systems. 

QUALITY: All boards are assembled, burned-in, and tested and feature GOLD PLATED BUS CONNECTORS. Only top quality com- GIMIX " and SH0 * ^ *J [«9 |slere[i trademarks 

ponents are used and all boards are fully buffered for maximum system expansion. All boards come complete with bus connectors 

and all necessary instruction and documentation. Flex and Unillex are trademarks ol Technical Systems 

GIMIX designs, manufactures and tests, in-house, their complete line of products. Complete systems are available to fit your Consultants Inc. 0S9 is a irademark of Microware inc. See 

needs. Please contact the factory if you have any special requirements. Ineir ads ,or 01her GIMIX compatible software. 



For GIMIX compatible software see Technical Systems Consultants ad page 183 and Microware ad page 112. 



128 August 19B1 © BYTE Publications Inc 



Circle 145 on inquiry card. 



MULTIUSER 




I 



COMPUTER 
DIM S- TOO BUS 

DESIGNED TO 

' A WIDE 



APPLICATIONS. 



STANDARD FEATURES 



INCLUDE: l_. I — f I VI _ 
OPERATING SYSTEM, B4K 
EXPANDABLE, BANKSE- 
E MEMORY.4MHZ 
Z80A CPU WITH 4 SERIAL 
AND 3 PARALLEL PORTS, 
RELIABLE B" FLOPPY DISK 
DRIVES IN A STURDY ALL 
METAL CABINET. 




$49DD 



MP/M OPTIONAL. 



7343-J RONSON RD.SAN DIEGO, CA. 
C7 141 57 1-637 1 



We're 1 to the world 



. H- 




m 



# 




Por t 








\BKt 



\ \ 
\ \ 

\ * 

\ 



■ 




■ > 



For two good reasons. 



More people fly on Pan Am from America to places 
overseas than on any other airline. 

Because Pan Am provides more of what demanding 
travelers demand. 

Comfort and convenience. 

For example, take comfort. To the Pan Am passenger, 
that may mean the unabashed luxury of First Class. 
With its spacious cabin and Sleeperette seats. 
(A Pan Am first, we might add.) 

Or comfort could be Clipper® Class. Our separate 
section especially for business travelers. In Clipper Class, 
no one sits in the middle. No matter where in the world 
one is flying. 

Sleeperette service® and Clipper Class are available 
on most of our widebodies. And we've got more wide- 
bodies than any other airline. 

But offering more widebodies is just the beginning 
of our convenience story. For another chapter, consider 
this: 

Pan Am can take passengers from more of the 
U.S. to more of the world than any other airline. From 
25 U.S. cities to 47 cities around the world. 

All with one ticket. One baggage check-in. On one 
airline. 

If all this isn't reason enough to get you to fly us, 
we've got more coming. More ways to make your trip 
even more comfortable. Even more convenient. 

Because at Pan Am, we intend to keep on ±{\ 
giving you reasons for making us uiJftflW 

your number one choice. 



*q#S- 



United States 

Detroit 

Ft. Lauderdale/ 

Hollywood 
Fort Myers 
Honolulu 
Houston 
Jacksonville 
Las Vegas 
Los Angeles 
Melbourne 
Miami 
Mobile 
Newark 
New Orleans 
New York 
Norfolk 
Orlando 
Pensacola 
Phoenix 
San Diego 
San Francisco 
Sarasota / Bradenton 
Seattle / Tacoma 
Tampa/ St. Pete 
Washington, DC. 
West Palm Beach 
Caribbean 
San Juan 
Central and South 
America 
Buenos Aires 
Caracas 
Guatemala City 
Maracaibo 
Mexico City 
Montevideo 
Panama City 
Rio de Janeiro 
San Jose 

Santiago de Chile* 
Sao Paulo 
Euro pe 
Berlin 
Frankfurt 
Hamburg 
London 
Munich 
Nuremberg 
Paris 
Rome 
Stuttgart 
Warsaw 

The Middle East 
and Africa 
Abidjan 
Accra 
Ankara 
Bahrain 
Dakar 
Dhahran 
Istanbul 
Lagos 
Monrovia 
Nairobi 
The Far East 
and Pacific 
Auckland 
Bangkok 
Beijing (Peking) 
Bombay 
Delhi 
Guam 
Hong Kong 
Karachi 
Manila 
Melbourne 
Osaka 
Shanghai ^ 

Singapore fL 

Sydney ^ 

Tokyo (h 

* Subject to government 
approval 



"cancel" command (photo 14c). The "cancel" command 
redisplays the last successfully compiled version of the 
method (photo 14d). If you cancel by accident, just issue 
the "undo" command to return the revised version. 

Adding New Definitions 

To add a new method definition, select a method 
category. In the editing pane, a template appears for 
defining a new method (photo 15a). The template 
reminds you of the required syntax of a method. 



(15a) 




\_ IW_» ■_■» IL'V J IT I 1 1 li_' I V 

Class Organization 

'initialization 1 



anaiusu 



Form 
Half Tone 
HalfToner 

Irregular Polygon, J 'display' 

Point I ' transformation 

Rectangle I' testing' 

'private instance m 




ime and Arguments Temporary variables 

intent about the method" 

Ok 

cnts fc 



(15b) 



p fc< xr\£\ classes' 


utspuyi-arm 


lui: :4j- rmui 


'numbers' 


Form 


QassOrtjarus 


'collections' 


Half i on*: 


'inuialtzatiori 


't». »r ! 


HalfToner 

Inv'iuliiTPolM.irni 


£jHi£33MH 


Point 


'transformati 


'uanOouJS' 


RectangU 


'testing' 


'panes <xr\A menus' 


xzt&wiMsmwm 


'prtwiK insr< 


ms> 






perimeter 


again 




"the sum of my side lengths" 


copy 
cut 




T suits + self side-Length 






paste 






dott 






ffiuETJ 






urfl(o 






i iiitJ 1 1 

■ llMIi 













(15c) 



O oss*s| 

mm classes' 
numbers' 
collections' 
text' 




textatspwy 
wVnaaws' 

panes and menus' 
fees' 



orm 
Form 
Half Tone- 
HalfToner 

IrreaularPoUMon 
Point 

Rictan* 



lispwu' 

trarisfbnruition 
testing' 
private instana 



pmnwit | | 

"me sum of mu side lengths" 
T sides ♦ self stdeLenam 



Use standard editing facilities to supply the message 
pattern, variable list, and body of the method. When the 
definition is ready, issue the "compile" command (photo 
15b). 

Once compilation succeeds, the selector of the new 
method is automatically added to the alphabetized list in 
the method pane, and the message pattern is automati- 
cally changed to boldface in the editing pane (photo 15c). 

A new class definition is added in an analogous 
manner. Start by selecting a class category (photo 15d), 
then fill in a template for defining a new class and com- 
pile it (photo 15e). New categories can be added and old 
categories can be renamed and reorganized. 

Program Testing 

Let us purposely add a bug to a method and see how it 
can be tracked down and fixed. 

Browse to the method cornerAngle in class Regular- 
Polygon, cut out the characters "180 — " (photo 16a), 
and recompile it. In the RegularPolygon work-space win- 
dow, select the test program and issue the "do it" com- 
mand (photo 16b). Instead of the desired triangle, an 
open three-sided figure is drawn because of the bug in- 
troduced into the angle calculation. 

(15d) 



'keffU'i classes* 
'numbers' 
'cottecr, ions' 
■ text' 

K n aispUiii' 

'U'lTulOU'S' 

'pones and menus 

ties' 



I 



uibTjiayt-urm 

Form 

Half Tone 

HalfToner 

iTregutorPolygon 

Point 

Rectangle 

ReflularPouMon 



fjL'Kcr subclass: 'Name Of Class' 

fields: 'instVarWame I insrVarName2 
declare: ' class V'arNamel class V'arNar 
sharma: " 

care >ionj : ' tjrapntcal ob j ects ' 
comment: "'uivtaU a>:scri.pnon of itu 



(15e) 




'kernel classes 
numbers' 
collections' 
text' 



text display 

ii'irulou's' 

partes and menus' 

flics' 



i|Form 
Form 
Half Tone 
HalfToner 
IrregulnrPolygori 
Point 
Rectangle 
Regular'Polyaon 



Object subclass: 'Circle 

fields: 'center radius plotter 
declare: " 
sharing: " 

category: 'graphical objects' 

comment: 'A circle is described by us (center) and (radtu< 
It is drawn by (plotter), a pen' 



Photo 15: Adding new definitions in Smalltalk. 



132 August 1981 © BYTE Publications Inc 



C#Pkscal 

Efficiency^rortability 
Flexibility»Strong Typing 

Now you don't have to compromise! 

Whitesmiths Ltd. now offers portable language development systems for four 
families of computers. Approximately one thousand installations use our 
software. 

We support complete versions of both C and Pascal, as compilers and cross- 
compilers. You get C automatically when you license Pascal, and you get 
native support with each cross-compiler. Test the software on your VAX 
before burning PROMs for your 68000 or 8080. 

Whitesmiths Ltd. offers a variety of licensing arrangements, the simplest 
being a binary license for use on a single CPU. The full source code is avail- 
able with internal documentation. Maintenance, training and sublicensing 
rights may also be obtained. 

Call or write for more information. 



Source 

Operating 

Systems 


8080 /Z80 


Target It 
LSI-11 /PDP-11 


lachines 

VAX-11 


M68000 




B080/Z80 

CP/M 


C: $750 
Pascal: $950 


* 


* 


# 


LSI-11/ PDP-11: 
Idris, Unix, RT11, 
RSX-ll/M, 
RSTS/E, IAS 


C: $1350 
Pascal: $1550 


C: $750 
Pascal: $950 


* 


C: $1350 
Pascal: $1550 


VAX-11 

Unix/V32 

VMS 


C: $1350 
Pascal: $1550 


* 


C: $750 
Pascal: $950 


C: $1350 
Pascal: $1550 


M68000 

VERSAdos 


# 


* 


* 


C: $750 
Pascal: $950 


^ |^ 



Idris is a trademark of Whitesmiths, Ltd. ■ Unix is a trademark of Bell Laboratories ■ CP/M is a trademark of Digital Research Company ■ VMS, 
RSX-ll/M, RSTS/E, LSI-11, VAX, are trademarks of Digital Equipment Corporation ■ VERSAdos is a trademark of Motorola Corporation 

Protect .your software * Special ° rder 

-\\r r1 investment ♦ j j 1 

W mtesmiths, Ltd 

EO. Box 1132 Ansonia Station New York, N.Y. 10023 (212) 799-1200 Telex 645 592 
Distributors: Australia Japan United Kingdom 

Fawnray Pty Ltd. Advance Industries Real Time Systems 
Brighton-Le-Sands Chiyoda-ku.Tokvo Newcastle upon Tyne 
522 5574 03-258-0839 0632 733131 



Breakpoints 

To track down the bug, let us set a breakpoint in the 
method cornerAngle. Using standard editing facilities, 
add the statement: 

self notify: 'about to calculate angle'. 

before the return statement (photo 16c). Now rerun the 

(16a) 



rfeemei classed 
•numbers' 
I' collections ' 

'text 1 



rexr display 
•windows' 
'panes and menus 
■fugs' 



comerA 

T 




uispiuyruTin 
Form 
Half Tone 

Half Toner 
IrregtuarPolygon 
Potnr 
Recta ngle 



'Answer me inter 
(360/sides) 




(16b) 



Re gularPoUjoo n 
fTlwDtfespawB 



23. 

•tubular triangle" i 



triangle «■ RequtarPoUjoon sides: 3 radius: so. 



triangle trajnstateBtj: -90 (a) 60. 
mangle pioj: Dtacfe." 



triangle translateBy: 16S (a> 20. 
triangle seal*: 0.6. ' 
mancte plot: arau. 



;• 






(16c) 



dosses 



o 



icnu'i .."liases 1 
rvumtoers' 
collections' 
text' 

text cusptay 1 

Vt'UlitOH'S' 

panes ana" menus' 



■WW— ^ IIII J WW^W^WWWW 

p | m m i i i i " l ' ' 

DlSpUMrOTTTi 



nfnSn s 5Ef& 



Wmug* \ 

self notify : 'a 



Form 
Halftone 

Half Ton.; r 

iTTecjularPolygon 

Ponit 

Rectanate 

____J_g 

Ansu'i'i" the wuenora 



3assDef initio 



ClasbOraatiiza 

'initialization 

'an alysis ' 

MlSp 
'tra 



if notific 'about to calculate angle' 
T (360/SlOes) 




test case. When the computer encounters the breakpoint, 
a new window appears in midscreen. It is called a "notify 
window" (photo 16d). The title tab of the notify window 
says "about to calculate angle". 

The notify window has one pane, the stack pane. It 
shows RegularPolygon>> cornerAngle (ie: the class and 
method in which the breakpoint was encountered). The 
pop-up menu of that pane offers several commands, in- 
cluding "stack" and "proceed" (photo 16e). 

The "proceed" command closes the notify window and 
continues execution from the breakpoint. If we issue a 
"proceed" in our example, the same breakpoint will be 
encountered again immediately because the cornerAngle 
method is used several times during the execution of the 
test program. 

What a Notify Window Can Display 

The "stack" command expands the contents of the pane 
to include messages that have been sent, but have not yet 
received replies (photo 17a). It reveals that the sender of 
the message cornerAngle was RegularPolygon>>plot:. 

The pop-up menu of the notify window offers the usual 
repertoire, including the "close" and "frame" commands 
(photo 17b). If "close" were issued, the notify window 
would disappear from the screen and execution of the 

Text continued on page 138 



(16d) 




tms oass 
umbers' 
jUecttons' 

r»t' 

mptiwai. obi#cfS' 
»t ili-pliiM 1 
'initou'i' 

hi.-: and menus' 
lies' 



about to calculate anale I 



RegutarPolygon come rAngU 



iifi otwr 
iTTOHiUrPohHon 
Point 
Rectangle 
Pt^ularMtiawi 



ii!\i1i.1)5tc.' 

AlSpWM' 

transformation' 

testing' 

prtttfwe instant tm\ 



mer Angle f ~ "ftnsivei trie interioi angle of ant| vtfu 
self notify: 'about to calculate angle'. 
t 060/ sides) 



eotrv. 



(16e) 



about do calculate awfe 



ReauiarPolugon ; >com gf'Ang|e 

jtacE! 



Fom 

Half 

Half 

Inv,- 

Poira 

Rectangle 

RcaiilafPolij^on. 




rmrrmmn 



Tttsparg 

'transforrnattrm' 
'testing 1 

'private install** mw 



_ 



cm&r 

si4t"U"i 



" * ,:.-, i , ■«■ <>-..- iv.f.-n.-.f ,1V, ll.- ,-,»' ,1V, 11 i,-tf, i 1) 



Photo 16: Creating a faulty method for purposes of illustration. 



134 August 1981 © BYTE Publications Inc 



Circle 154 on inquiry card. 



With the Hayes direct-connect 



warranty. That's another reason 



Micromodem II™ your Apple II can why it's the largest selling direct- 
communicate by phone with the connect modem for Apple 1 1 



outside world. You can access in- 
formation networks like 

The Source for a variety 
of business and personal 
applications, exchange 
programs with friends mic 
anywhere in North ^^t^ssF 
America, and 
even use your 



you re away 
from your home 
Or office. 

Dependable. The 

Micromodem II is so dependable 
it comes with a two-year limited 



ssin- computers. 
Programmable. 

Automatic dialing 
and answering? 
. j Of course! We in- 
nn prPj^~ Upler elude programs on 
— qH-boqi. ( diskthatdial phone 
i numbers for you, 
messages while you're 
away, and much more! 
Complete. You 
f get everything 
you need to com- 
municate with other Bell 
dable 1 03 compatible modems at 1 1 
nited or 300 baud. The serial interface 



is built-in, and we even include our 
FCC-approved Microcoupler™ 
that plugs directly into any modu- 
lar telephone jack in the U.S. - 
you don't even need the phone! 

S-100, too. The Hayes 
Micromodem 100 gives S-100 
microcomputers all the advan- 
tages of our Micromodem II! 

Put the outside world inside 
your computer with a data com- 
munications system from Hayes. 
Available at computer stores na- 
tionwide—call 
or write for the 
location near- 
est you. And 
don't settle for anything less 
than Hayes. 



The Hayes Micromodem II 
opens up your Apple Ilto tl 



iMiiliWW 





Hayes Microcomputer Products Inc. 



5835 Peachtree Corners East, Norcross. Georgia 30092 (404) 449-8791 



Micromodem II, Micromodem 100 and Microcoupler are trademarks ol Hayes Microcomputer Products Inc. 

* TM Apple Computer Inc. Micromodem II can also be used with the Bell & Howell computer, (g 1 981 Hayes Microcomputer Products Inc. 






& 



f%> 



m 



EPSON MX-80 
Now in stock! 

TheMX-SO dot matrix printer. 
Unequalled Epson reliability. Has 
all the features ot the MX-70 plus 
more power and extra functions. 
CALL US 

C-ITOH STARWRITER: LETTER 
QUALITY PRINTING FOR UNDER 

$2000!/This daisywheel printer 
gives high quality at a low price. 
25 cps. Parallel and serial inter- 
faces available. CALL 



NEC SPINWRITER FROM THE 
FIRST NAME IN LETTER QUALITY 

PRINTERS/Compumart offers 
beautiful print quality with NEC 
Spinwriter Terminals. We carry all 
models from RO THRU KSR WITH 
NUMERIC KEYPAD-5510-5530. All 
versions give unsurpassed hard 
copy output! CALL FOR PRICES 



NEW INTEGRAL DATA'S 560 
PRINTER/ All the exciting features 
of the 400 series plus 141/2" paper 
capacity. 132 col. graphics printer. 
IDS 445. Priced lower than the 440 
and equipped with a better print 
head. With & w/o graphics. 
IDS 460. Features include corre- 
spondence quality printing, high 
resolution graphics. 

CALL FOR PRICES 



/ 

cjV 



4&? 




CENTRONICS PRINTERS 
3 SERIAL MODEL 737 

The closest thing to letter quality 

print for under S1000. 

List S1045 SPECIAL $795. 

737-1 Parallel Interface 

List S995 SALE PRICE $695. 

PLUS EXCITING REBATE OFFER 
ON CENTRONICS PRINTERS. 

OMNI 810 PRINTER FROM TEXAS 
INSTRUMENTS CALLUS 

The 820 RO PACKAGE includes 
machine mounted paper tray and 
cable. A compressed print option 
and device forms control are 
standard features. 
THE 820 KSR PACKAGE includes 
fully ASCII Keyboard plus all of the 
features of the RO. 

CALL FOR PRICES 



CLEARANCE ZENITH COLOR 
VIDEO MONITOR $349. 



SUPER SELLING TERMINALS FROM 
LEAR SIGLER/We have the follow- 
ing Lear Siegler terminals in stock 
at prices too low to print! Call for 
quotes. 

ADM-3 A/Industry's favorite dumb 
terminal for some very smart 
reasons/ 

ADM-3A + NEW from Lear Siegler. 
CALL! 

IT IS HERE! It is the new Intermedi- 
ate Terminal from Lear Siegler. 

CALL FOR DETAILS 



SANYO MONITORS AT LOW COM- 
PUMART PRICES/Sanyo's new line 
of CRT data display monitors are 
designed for the display of alpha- 
numeric or graphic data. 
9"SANYOB/W $169. 

12" SANYO B/W CALL 

12" SANYO W/ 

GREEN SCREEN CALL 

1 3" SANYO COLOR CALL 




NEC COLOR MONITOR/RECEIVER 
HIGH RESOLUTION/ 

Composite video using BNC con- 
nectors, 8-Pin connector for VCR/ 
VTR video loop In/ Out and 
television reception. CALLUS! 



Visit our giant 

ANN ARBOR STORE 

1250 North Main Street 
Ann Arbor, Michigan 



FREE CATALOGS 



MICRO 

Our complete 
line of micro- 
computers, 
accessories 
and 
peripherals. 



DEC LSI-H 

Systems config- 
ured and 
integrated 
with other 
manufacturers 
compatibles. 



HP-41C CALCULATORS 
MEMORY MODULES for storing 
programs of up to 2000 lines of 
program memory. 
"EXTRA SMART" CARD READER. 
Records programs and data back 
onto blank magcards. 
THE PRINTER. Upper and lower 
case. High resolution plotting. Port- 
able thermal operation. 
APPLICATION MODULES 

CALL FOR PRICES ON ALL 



NEW SUPER 41-CV SYSTEMS with 

Quad RAMS built-in. Maximum 

memory on-board leaves slots 

open for Application Pacs and 

peripherals. 

+ CARD READER 

+ CARD READER -I- PRINTER 

QUAD RAMS equivalent to four 

Memory Modules all packed 

into one. CALL ON ALL 

MATROX PRODUCTS/Compumart 

stocks the complete line. 

CALL ON SPECS 

DEC LSl-11/Compumart now 
offers the entire product line. 
CALL FOR PRICES AND DELIVERY 

NOVATION CAT ACOUSTIC 

MODEM Answer Originate. CALL 

NEW! D-CAT Direct Connect 
Modem from Novation. CALL 




NEW! GILTRONIX RS 232 SWITCH/ 

The ultimate in flexibility. You can 
connect three peripherals to one 
computer or three computers to 
one peripheral. Switches the eigh! 
most important RS 232 signals. 

CALL ON PRICE 



DYSAN DISKETTES/Single side, 
single density. Hard or Soft Sector 

$5. ea. 
MEMOREX 3401's/51/4 disks $3.25. 
/with hub ring for Apple $3.50. 
MEMORY INTEGRATED CIRCUITS/ 
Call for quantity discounts when 
ordering over 50 units. CALL 

MOTOROLA 4116 (200 Nano- 
second Plastic) $4.50 



RM EXPANSION ACCESSORIES 
FOR AIM - 

CALL SPECS AND PRICES 



APPLE m IS IN STOCK/Applo HI 

Information Analyst Package— 
128K Apple III, Black and White 
Monitor 12", and information ana- 
lyst software. CALL 



TOP SOFTWARE PACKAGES FROM 
COMPUMART 



VISICALC/FOR APPLE/FOR HP/ 
FOR COMMODORE/FOR ATARI 



SOFTWARE FROM APPLE/ Apple 

Plot (the perfect graphic comple- 
ment for Visicalc/Dow Jones News 
8( Quotes/ Apple Fortrom/ Apple 
Writer/Pascal Language System/ 
Controller Business System CALL 



PERSONAL SOFTWARE/Visidex/ 
VisiTrend/VisiPlot/VisiTerm CALL 
MUSE/Super Text CALL 




MOUNTAIN COMPUTER/ 

Expansion accessories for Apple/ 
Super Talker/The Music System/ 
ROM plus board with Keyboard 
filter/ROM Writer/Clock Calen- 
dar/ AtoD and D to A Converter/ 
Clock for Apple/ CPS Multifunction 
Board CALL 



VIDEX/Video Term (80 col. x 24 
line, 7x9 Matrix plug in compati- 
ble board for Apple II) w/wo 
graphics EPROM/SSM Serial & 
Parallel, Apple Interface/ ABT's 
Numeric Key Plan/California 
Microcomputer Keyboard CALL 



*t* v 



VIC 2 PERSONAL COMPUTER 
FROM COMMODORE 

$299. 



Send for them! 



IMPORTANT ORDERING INFORMATION 

CALL 8CO 343-5504, in Massachusetts: (617) 491-2700, phones open 
from 830 am. lo 7CO p.m. Mon-Fh 1LOO a.m. to 4:CO p.m. Sat. 
PO's, Accepted from Dun & Bradstreet rated companies— shipment 



contingent upon receipts of signed purchase order. 
SALE PRICES, Valid for month of magazine date only— all prices sub 
jecl to change without notice. Our Ann Arbor retail store is open 
llOO a.m. to 7QO p.m. Tues-Fri, lOOO a.m. to &00 p.m. on Saturdays 



* 



$1895. $4695. $4249. 



$795. 



f3* 



SAVE OVER $200 ON OUR BEST 
SELLING APPLE SYSTEM/ System 
includes a 48K Apple II, Apple 
Disk. DOS 3.3 and Controller and a 
Sup R MOD RF Modulator. 

List S2209. 
EXCLUSIVE FOR THE APPLE: 
Magic Wand, Videx, Z-80 sottcard 
(Requires 48K Apple and disk). 

COMPLETE SYSTEM $925. 



APPLE ACCESSORIES 

CHOOSE FROM: Silentype Printer 

w/x (ace/Light Pen/Easy Writer 

(80 col. need a Videx )/C lock for 

Apple. 

FROM MICROSOFT: 16K RAM 

Board/FORTRAN. 

FROM COMPUTER STATION: 

Hi-Res Dump for 460 Printer. 






CRISP LETTER QUALITY OUTPUT 
UNSURPASSED EASE OF 
OPERATION 

This Compumart/Commodore 
system includes a COMMODORE. 
8032 32K CPU, a 4040 DUAL DISK, 
a C-ITOH PRINTER and x/iace and 
WOEDCRAFT80 (all cables in- 
cluded). List $5385. 
CALL FOR DETAILS AND 
LOW PRICES 

A COMPLETE SYSTEM: includes 
a DUAL DISK DRIVE/TRACTOR 
PRINTER and an 80 COLUMN 

32K CPU. No interfaces needed, 
Cables included. List $3685. 

COMPUMART $3335. 
SAVE $200 ON COMMODORE 
ACCESSORIES WITH PURCHASE 
OFA32K PET-SAVE $100 WITH A 
16K PET. 

CHOOSE FROM: 

Visicalc/Word Pro 4/Wordcralt 80/ | 
Ozz the Information Wizzard/ 
Dow Jones Portfolio Mgmt System/ 
Assembler Development Package. 



This Basic System from Hewlett- 
Packard includes HP-83/ROM 
DRAWER/MASS STORAGE ROM/ 
51/4" SINGLE MASTER FLEXIBLE 
DISK DRIVE/HP-IB INTERFACE 
MODULE/2 METER HP-IB CABLE. 
SAVE $400 ON HP-85 SERIES AC- 
CESSORIES WITH THE PURCHASE 
OF AN HP-85. 

CHOOSE FROM: PERIPHERALS; 
Disk Drives to Graphics Plotters 
ENHANCEMENTS; Basic Training/ 
General Statistics/Financial Deci- 
sion/Math/Linear Programming 
(SV5 EA.) ACCESSORIES; Enhance- 
ment ROM's/ ROM drawer/Over- 
head Transparency Kit SUPPLIES; 
Plotter Pens/Tape Cartridges 
INTERFACE MODULES; HP- IB Inter- 
connect Cables/Serial (RS-232C) 
Interface Module. 



FROM ROCKWELL 

Our AIM Starter System for Educa- 
tional 8c Laboratory use includes 
4K AIM/BASIC 8c ROM/ASSEMBLER 
8c ROM/POWER SUPPLY EG1 EN- 
CLOSURE/CRAIG TAPE RECORDER. 

ACCESSORIES FOR AIM STARTER: 

PL 65 High Level Language/Paper 
for the Aim ( roll)/ Rockwell's 4 slot 
Motherboard/ 

CALL 







WE ALSO CARRY RM EXPANSION 
ACCESSORIES FOR THE AIM-65. 
CALL FOR SPECS AND PRICES 



OUR APPLE INVENTORY IS COM- 
PLETE. WE'VE GOT IT ALL- 
CALL US FOR PRICES 



■ 



WE CARRY EVERY PERIPHERAL 
MADE FOR THE HP-85. 
CALL US FOR PRICES 



800-343-5504 




Systems 



IN MASS CALL 617-491-2700 




COMPUMART 

65 Bent Street, Dept 108 

PO Box 568, Cambridge, MA 02139 



From THE LEADER . . . 

We just might be the largest independent small systems dealer in the country. Here's why: 

COMPUMART has been serving the computer needs ot industry since 1971. 

We stock, tor immediate shipment, only those products from the finest micro-computer 
manufacturers. 

And any product, except software, can be returned within 10 days for a full refund— even 
if you just change your mind. We also honor all manufacturers' warranties. Our expert 
technicians will service any product we sell 

Call us for more information on products, product configuration and service. Our phones 
are open Monday thru Friday, 8:30 a.m. to 7:00 p.m. and Saturday UOO am to 400 p.m. 

We have a staff of highly knowledgeable sales people waiting to hear from you, and 
to help. Because service is what we're all about. 



Circle 62 on Inquiry card. 



Slack 
Pane 



Method ^^ 

Variable 

Pane 



Nk Instance 
Variable 
Pane 



-> 



Editing 

Pane 



Method 
Value 

Pane 



-> 



Instance 

Value 

Pane 



Figure 5: Principal dependencies among panes of a notify 
window. 



Text continued from page 134: 

program under test would be aborted. Let us issue the 
"frame" command instead. The notify window grows 
larger and acquires a total of six panes (photo 17c). Their 
interdependencies are diagrammed in figure 5. 

The upper left pane is the stack pane retained from 
before. The upper right pane is an editing pane. If you 
select RegularPolygon >> plot: in the stack pane, its 
method definition appears in the editing pane. You can 
scroll through the definition and even edit it there and 
recompile as in the browser. 

The middle two panes are the "context variable" and 



"context value" panes. They are analogous to the two 
panes of an inspect window, but, in this case, the 
variables you can examine are the arguments and local 
variables of the method selected in the stack pane. Click 
ink in the variable pane to see its value in the value pane. 

The bottom two panes are the "instance variable" and 
"instance value" panes. They also are analogous to the 
panes of an inspect window. They let you examine the in- 
stance variables of the receiver of the message selected in 
the stack pane. Click center to see its value appear in the 
value pane. 

You can type statements into the value panes and 
execute them using "do it" (photo 17d). They will be 
executed in the context of the method selected in the stack 
pane — that is, they may refer to arguments and local 
variables of the method and to instance variables. 

Debugging 

You could step through the execution of the method in 
the editing pane. You would select one statement at a 
time in the editing pane and issue the "do it" command. 
To close in on the planted bug, we can evaluate self 
comerAngle, an expression on the last line of the method. 
Select that expression and issue the "do it" command 
(photo 18a). The answer, 1 20, appears to the right of the 
question (photo 18b). Since the interior angle of a regular 



(17a) 



(17b) 



about to calculate anale 



ReaularPolugon ►comerAnale^^^ 

RoiularPoliVion plot: ES5B 
im'4>:jtn>;.lut"'Ka DOIT pa^'n 
L A D c ompile t .: palliated proo; ed | 
CodePane execute :truto restart 



m 

Forr 

half 
Half 
I'-TV.fiU/lTH.lUHlJ'. 

Potnt 
Recta ngU 



•nv-^vm 

'transformation' 

'testing' 

'ptlvw trtstsfflig? m*-! 



smart 

jiaeLeri 



Ah-;.U'.:T ili> mi' mot aug. of arm why«. v\ (£q 



(17c) 



r~ 


1 about to caicul&U <Hl£*£ 




H 


PequIarPoltjqoR> >corner Angte 

Una3trLeaODject>>DOTr^ 
L A DCompiier> >e wUuate :in:t 
Code Pane > >execute :tn:to : 
Code Pane > >execwe :f or: 
CodeParu>>>dott 
Coi'tePane>>yellou't>ug it 
Code-Patie>>eacrii:vnv; * 


spwifiM ink ccior,* 

plotter penup. *lifr rti 
plotter goto: self center 
plotter up. "fa™ t 
plotter go: radius, "pi 
plotter turn: 180 - (self 
Tut 
plotter color: ink. "»* 
plotter pendn. "Ion 




litis Context 


a HalfTon/?| 


self 

'Slit>;i' 

■t-.i-liiic' ^^^^^ 


205 (a' 34 S| 



about to calculate axuje 



R.: i.qi UarPoii >aon > ; corneiT mder 
ReauiarPoUwon -plot: 
1 1 nil left m (t ub j >.' c t > > D O I 
l a d l ompiU" r e paiuat 
CoaePane execute nn: 



m 

Forr 

Half 
Half 

iTT.;.iru7rrFonTprr 
Point 

P.vtan.iU' 
RfauiarPoitjfjoii 




mspsg 

transformation' 
testing' 

1 priviw immrvct- m<M 



"Ansu'ir it'u" interior anal.; of arm verw?, in 3e< 



(17d) 



pujiu.! uuii: it>u 



plotter colo 
plotter peru 



>enier*radvAk 




a 1 34 8 



comppu 
unao 

cancel 
align 



Photo 17: Use of the "notify" window. 



138 August 1981 © BYTE Publications Inc 



MEMORY 



Blackout! 

A PROBLEM FOR YOUR PRESENT RAM? 



isuu i vui9C uic ucii micss. Get Olir 

non-volatile memory and watch 
elephants turn green with envy! 

Are you looking for a reliable non-volatile memory on a rugged industrial- 
standard IEEE-696 S-100card?Yoursearch is over. Our CMOS memory modules 
have a battery backup that is guaranteed to keep programs and data intact 
for a year. We didn't sacrifice performance ^m 

for non-volatility in the design of our GVIEM .^R 

module, so you get all the card you're 
looking for . . . we even supply the battery. 

□ 32K on a single board. 8 or 16-bit cpu compatible. 

□ Switch selectable addressing on 4K boundaries. 

□ Extended memory addressing through 24-bit lines. 





□ 250 nanosec access time, no wait states required. 

□ Runs at 4 MHz for both 8 and 16-bit S-IOO systems. 
Q Programs developed 8. stored w/out disks or tapes. 
D Power fail interrupts. 

□ Software programmable write-protect window. 

□ 8K bytes-$695, 16K bytes-$895, 32K bytes-$l095. 



The DUAL 77 Data Acquisition and Control System 

is a turnkey system built to industrial standards 
and it comes ready to perform. As with all our 
systems and modules, our computer was designed 
with the wicked environment of the real world in mind. 
BASIC language makes programming easy and the 
built-in interface simplifies access to hundreds of 
sensors. The enormous expandability of the system 
allows its growth to meet your increasing needs, 
even if you enjoy learning new languages. The DUAL 
77 is economical; $9995 or higher with options. 




DUAL SYSTEMS CONTROL CORPORATION 

1825 Eastshore Highway, Berkeley, CA 94710 
Phone (415) 549-3854 or (415) 549-3890 




A/D CONVERTER 

This S-100 based module is designed to withstand the rugged 
environment of the laboratory or in industry for general use 
in converting analog signals to digital information. 

□ 32-channel single-ended, 16-channel differential. 

□ 12-bit resolution and accuracy. 

□ 30-microsecond conversion time. 

□ Instrumentation amplifier on board. 
D BASIC program for use provided. 

□ $695 or $785 w/1-1000 gain transducer amplifier. 



D/A CONVERTER 

The AOM-12 analog output module is an industrial level 
digital-to-analog (D/A) converter which converts digital 
commands from the computer into analog voltages. 

□ 12-bit ±'/i L.S.B accuracy over full 0-70°C temperature range. 
D Voltage outputs of 0-10 volts, ±5 volts, or ±10 volts. 

□ Short circuit protection on all voltage outputs. 

□ Switch-programmable port base address for multiple boards. 
D$575 




NON-STOP CLOCK 

Now you can keep time even with the main power off. Our 
industrial level clock module utilizes a backup battery 
circuit for a full year. 

□ Day, date, hours, minutes and seconds. 
□ Features new LSI CMOS chip. 

□ Vectored interrupt capability. 

□ Dip switch selectable port address. 

□ Simple BASIC or Assembly language program. 

□ Precision quartz crystal clock. □ $250 

Dual Systems Control Corporation 

Department B, 1825 Eastshore Highway 
Berkeley, CA 94710 • (415) 549-3854 

□ Please send your brochure with complete details on modules. 

□ Please provide information on the DUAL 77 System. 



Name 


Title 




Company 


Street 


City 


State 


Zip 



DEALER AND OEM INQUIRIES INVITED 

Circle 122 on inquiry card. 



(18a) 



^S 



Jffljffl an image of me p of r, 



aqam hfor/ 



ten copti "tf/r *fap «?n ra iftatfte 

cer cut f center. ''pasjntfn rto p* 

ter p aste " /to? fft£ Top of The sen 

'"- rjHB&B m^' " pC'f-ff k"'.u i^f i? kT'.rTu 
" TUffi- TO f\JCv \kGVuf & 



ten 
ter 



undo 

cancel 
align 



SeteCT To*'- //j« t-LUtir 
x U$W£f The pen TO I'Tii 



aaius 



10250® 17400 



(lsbT 



■ Draw iwi. ijrrj4?*^ of me prt r^on. ms 
ik color" 

ap. •Wi/r rfit? pen to d^iitie drawiru 
: self center, ''position, The pen. cenu 

" face the top Of The screen* 
radius, "position aT a come r* 
i: ISO - (self coTTierAn4eH3S/2). 

" Turn to face along*} suit" 
r: ink. "selecT The ink colon- 
ctn. "lower The pen to enat4e 



10250® 17400 



(18c) 



to cagmag atiqw i 




uaon»f„. 
lndeftnedobjea>>DOIT \ 

D ' . omptU r> Hvaluaa an :t f. 
:o u Pane > ■•*." xecutenhrto: 
;ocU P.in»: ■->:«>:aiK:for: 

1». Patu »ctoit 
:o..t>: Pan* > >yeUou4m«) 
xU P'iTu; >eachtime 
:4>: Pan.; ! Object > startup 



Icomer An^e | f "An?..u'.: t 
i>erax, in degrees" 

self notify: 'about to cab 

T (360/sides) 



^.>luliirPol'>.iort com* t Aruil.; 



(18d) 

about to calculate angle 



►; guiarPCMgpn > >ptor:_ 
U ndef ine a Ob j c c t > : D 1 7 
LADCompUer>>ei>alua« 
Code Parte > >c ace \ ire anxc 
Code Pane > > e* e cut*: :f or 
CodePane) ►doit 
Code Pane > yeUowbug 
Code Pane >eacntime 



__ _ 



i .I, 




comer, 



.-, ' ';v"t «. in degrees" 

a 5 ai ? M80 -1360/S 



:opu 

«:ur 

paste 

doit 




Photo 18: Debugging a faulty method. 

140 August 1981 © BYTE Publications Inc 



triangle is 60 degrees, we have found the planted bug. 

Now select RegularPolygon>>comerAngle in the stack 
pane. Its method definition, including the breakpoint we 
set, appears in the editing pane (photo 18c). Use standard 
editing to remove the breakpoint, correct the error, and 
recompile the editing pane (photo 18d). 

You can randomly access any level in the stack by 
clicking it in the stack pane. 

Resumption 

After recompiling a method, you can resume execution 
from the beginning of any method on the stack using the 
"restart" command in the stack-pane menu (photo 19a). 
This lets the test proceed (photo 19b) without having to 
start over from the work-space window. Resumption of 
execution after a correction is a handy capability when a 
program that has been running well encounters a minor 
bug. 

The entire stack of the process under test was saved in 
the notify window. When a notify window appears, the 
rest of the system is not preempted. You are not required 
to deal with the notify window when it appears. You can 
(19a) 

aDoux to calculate angun 



tor: 



eguiarr , oiyqon>>p 
ltodeftned£»je<tf> >DuiT 
LADLompUjCT". HvcAxuaejxxi 
CodePane »executi 
CodePane >>execu» 
CodePane>>doit 
Code Pane : tKliou't 
CodePane»eacntii i 



stack 
spawn 



QtXX 




vertex, m degrees" 

t 180-peo/sv 



iiuiarPolq.ion Ton 



(19b) 



F"nf|wMitspqct 




Photo 19: Compilation of a faulty method can be continued 
without restarting, once the error has been corrected. 

Circle 284 on inquiry card. » 



New Products From Orange Micro 

Mix APPLES and ORANGES? 

... And you get GRAPHICS! 



\0* 



THE GRAPPLER™ 

FROM ORANGE MICRO 



Apple Interface 
and Cable 



The Grappler™ Interface is the first universal parallel interface card to 
provide on-board firmware for Apple high resolution dot graphics. No 
longer does the user need to load clumsy software routines to dump 
screen graphic - it's all in a chip. Actually, it's our E-PROM, and there are 
versions to accommodate the Anadex, Epson MX80 & MX70, IDS Paper 
Tigers, Centronics 739, and future graphics printers. The Grappler™ 
accepts 18 software commands including Hi-Res inverse, 90 ° rotation, 
double size, and much more. 

GRAPPLER INTERFACE FEATURES 



TEXT FEATURES: 

Printer Bell on/off 

High Bit on/off 

Left Margin 

Right Margin 

Var. Line Length 

Var. Page Length (skip over perf.) 

Video on/off 

Alternate Command Chars. 



Text Screen Dump 

Hi-RES GRAPHICS FEATURES: 

Print Hi-Res Page 1 or 2 
Print Inverse 
Rotate Picture 90 ° 
Single/Double Size 
Variable Left Margin 
Chart Recorder Mode 




$ 165.°° 



Includes Cable 



Dealer/Distributor 
Inquiries Invited 




MX80/MX70 FRICTION FEED 



FROM ORANGE MICRO 

HERE AT LAST! A friction feed kit for your EPSON MX80/70. The kit 

allows the user to convert his Epson printer to a friction feed and pin 

feed mechanism. 

The friction feed will accept single sheets of your letterhead, or 

multiple copy forms such as invoices with up to 4 part carbon 

copies. 

The pin feed replaces the adjustable sprocket mechanism. It allows 

use of 9V2" wide continuous fanfold paper which is an industry 

standard size. 

No drilling required. Installation takes about 15 minutes. All parts are 
included with easy to follow instructions. 




S 75i OO 

Dealer/ Distributor 
Inquiries Invited 



CALL FOR FREE CATALOG 

(800) 854-8275 

CA,AK, HI (714) 630-3322 

1981 Orange Micro, Inc. 



RETAIL PRINTER STORES: 

3150 E. La Palma. #l, Anaheim, CA. 

13604 Ventura Bl., Sherman Oaks, CA. 

Store Hours: M-F 10-6 Sat. 10-4 



^S 



Phone orders WELCOME; same 
day shipment. Free use ol VISA & 
MASTERCARD. Personal checks 
require 2 weeks to clear. Manu- 
facturer's warranty included on all 
equipment. Prices subject to 
revision. 



Oronge 

fllfCfO, Inc. 

3150 E. La Palma, Suite I 
Anaheim, CA 92806 



work in other windows and come back to it later, cause 
other notify windows to be created, or work a little in the 
notify window and then do something else. There are no 
modes. 

Error Notifications 

Error messages are no different from breakpoints, ex- 

(20a) 




•• instance met 



.••V /»".-MV ^W/'if /MV 



I one of tin equal sitfe; 
sToRaaians 



(20b) 



Uization 1 

au' 

^formation' 

rw 1 



ite instance met 



322EjEEflBII 



paste 
m one o : mi equal si doit 



ees 



s To Radians cosine 



urul^t 

cancel 

aUan 



(20c) 



Message not understood: cosine | 



• MW ^MVW 



Float ( Ob j ect ) > >does Nor Understand 



V*VW JVrtV .WW rtVW AW AWV rtWV 



nu/iTPuivj.jUfr 



'fmncfht-r riiirinri' 



Photo 20: Displaying an error in a faulty method. 

142 August 1981 © BYTE Publications Inc 



cept that if they are supposed to be "unrecoverable" they 
are programmed as: 

self error: 'error whatever'. 

If the user "proceeds" out of the notify window after an 
error, the process under test is terminated. 

The most frequently encountered Smalltalk error is 
"Message not understood." It occurs when a method is 
sent to an object and neither that object's class nor any of 
its superclasses defines a method to receive that message. 
Let us edit the method sideLength (photo 20a) to send the 
message cosine instead of cos. After recompiling that 
method (photo 20b) and reexecuting the test program, a 
notify window appears (photo 20c) to announce that 
class Real and its superclasses do not define cosine. 

In most programming systems, equivalent error condi- 
tions such as "undeclared procedure" and "wrong 
number of arguments" are issued at compile time. 
Smalltalk cannot detect these conditions until run time 
because variables are not declared as to type. At run 
time, the object sent the message cosine could be an in- 
stance of a class that did define a method of that name. 

Type Checking 

When we program in languages like Pascal, we depend 
on type checking to catch procedure-call errors early in 
the software-development process. In return, we have to 
take extra time maintaining type declarations, and we 
lose the very powerful ability to define "generic" or 
"polymorphic" procedures with the same name but with 
parameters of varying types. 

Type checking is important in most systems for four 
reasons, none of which is very important in Smalltalk: 

• Without type checking, a program in most languages 
can "crash" in mysterious ways at run time. Even with 
type checking, most programming systems can crash due 
to uninitialized variables, dangling references, etc. 
Languages with this feature are sometimes called 
"unsafe." Examples of unsafe languages are Pascal, PL/1, 
and C. Examples of fairly safe languages are BASIC and 
LISP. Smalltalk is a safe language. It cannot be wiped out 
by normal programming. In particular, it never crashes 
when there are "type mismatches." It just reports a 
"Message not understood" error and helps the program- 
mer quickly find and fix the problem through the notify 
window. 

• In most systems, the edit-compile-debug cycle is so 
tedious that early error detection is indispensable. In 
Smalltalk, type errors are found early in testing, along 
with value-range errors and other bugs. 

• Type declarations help to document programs. This is 
true, but well-chosen variable names and pertinent com- 
ments provide more specific information than do type 
declarations. A poor documenter can convey as little in- 
formation in a strongly typed program as in an untyped 
program. 



This 
Single 
Boar ' 



m. 






::tS£y§ir;; : ; 




■ 

m' 



..is the Heart 
of the 
roprocessor 
World's 
est Multi-User 
System... 



mmem/mr/ 



w \i=,ir\ 



MULTIPROCESSOR 



,*'.:.# 



!_-■■■ 



'./'>• 







E DISCOVERY MULTIPROCESSOR 



The dedicated power of this complete single board computer is provided to 
each user, making the DISCOVERY MULTIPROCESSOR unique among 
multi- user systems. With the power and expandability of distributed process- 
ing • With the economy of shared peripherals • With the flexibility of shared 
and public files • And all of this with full CP/M* and S-100 compatibility. 

Multiprocessing Software Multiprocessing Hardware 






Our Distributed Processing Oper- 
ating System, dpc/os®, resides in 
the Service Processor, establishing a 
CP/M environment for each user 
and managing access to the shared 
system resources. Multiuser facilities 
are provided for print spooling, for 
interprocessor communication and 
for private, public and shared- update 
files. Several processors can be em- 
ployed concurrently by a single user 
via the enhanced batch submit facil- 
ities. And with DISCOVERY all 
CP/M compatible programs will 
execute without modification, thus 
protecting your software investment 



The ACE 64 K Distributed Process- 
ing Single Board Computer, the 
dpc-180 gives the DISCOVERY 

MULTIPROCESSOR its own unique 
architecture. One DPC is dedicated 
to each user providing exclusive use 
of the onboard Z-80. 64Kram and 
serial I/O. Access to the shared 
resources is provided by an ex- 
panded DPC used as a Service 
Processor. Additional users can be 
added at any time by simply inserting 
additional DPCs.into the standard 
S-100 bus — up to a total of sixteen 
user processors in a single chassis ! 

CP/M is a registered TM of Digital Research, Inc. 



DISCOVERY has been proven in installations throughout the World. 
If you need the Power of Multiprocessing... it's time you discovered us! 




The ACE DISCOVERY MULTIPROCESSOR dedi- 
cates a complete 64K Z-80 Distributed Processing single 
board Computer, the dpc-180 to each user. An ex- 
panded DPC coordinates all of the system activities. 



Multiuser mainframes with 192K ram start at 
under $6000. The 64K dpc-180" is priced at 
$1395. Immediate delivery. A complete line of 
standard peripherals including a 26M byte hard 
disk subsystem can be supplied on request 
Dealer and OEM inquiries are invited. 



Action Computer Enterprise, Inc. 

The Multiprocessing Company 

55 West Del Mar Boulevard, Pasadena, California 91105 USA • Cable ACEPAS Pasadena • (213) 793-2440 



1 



".imukuumr 



r 



Ideas I 

l In'iCir--- 



n i inini i i i r ii » 



"1 



Boott Drafts] 



EEJJJ 






Photo 21: Project windows in Smalltalk. Each window, when 
selected, makes available all the windows associated with that 
project. 



(22a) 



exit to overview 



lapsnot 



quit ^ 

open a subvtew 

open a browser 

open a workspace' 

turtle ite mo 



(22b) 



1 



i. lasses 






irul men 



Message run un 



FioanOt'ica) «1 



LnsplatjForm 
Form 



Uout 



ffipUw 




FvaariiiU; 



a 
a 

'in 

'a? 

Ml 
'tr 
'« 

pt 



Photo 22: Recording results in Smalltalk. The current state of 
the Smalltalk system can be saved with "snapshot." Smalltalk 
code can be saved to a text file by using "filout" and restored by 
using "filin. " 



• Most compilers can generate more efficient object code 
if types are declared. Existing implementations of 
Smalltalk cannot take advantage of type declarations. 
We expect that future versions will have that ability. At 
that time, type declarations may be added to the 
language. They probably will be supplied by the system 
rather than the user, using a program-analysis technique 
called "type inference." 

Project Windows 

Although overlapping windows enable you to keep the 
state of several tasks on the screen at the same time, you 
may sometimes be working on several entirely different 
projects, each involving several tasks. Smalltalk lets you 
have a different "desk top" for each project. On each desk 
top are windows for the tasks involved in that project. To 
help you travel from one desk top to another, a desk top 
can have one or more project windows that show you 
other available desk tops and let you switch to one of 
them (photo 21). 

Saving Programs 

In unintegrated systems, you create a program using 
standard text-editing facilities. Then, using standard utili- 
ty programs, you can obtain a program listing on paper, 
back up the program on other media, and transmit the 
program to other people. In an integrated system, 
equivalent capabilities must be provided within the 
system itself. Some of the program-saving capabilities of 
Smalltalk are described briefly below. 

One important facility is the snapshot (photo 22a). The 
entire state of the Smalltalk environment — including 
class and method definitions, data objects, suspended 
processes, windows on the screen, and project desk 
tops — can be momentarily frozen and saved on second- 
ary storage. The snapshot can be restored later and 
resumed. People familiar with the sysout in InterLISP or 
the workspace concept in APL will understand the 
benefit of this facility. 

Another facility allows definitions of one or more 
methods or classes to be listed on a printer. A related 
facility is filin/filout. The filout message (photo 22b) 
writes an ASCII representation of one or more definitions 
onto a conventional text file. The definitions can then be 
transfused into another Smalltalk environment by using 
the filin message in that environment. 

Often, during a programming session, the user changes 
a number of method definitions that are scattered 
throughout many classes and cannot recall which ones 
were changed. The changes facility automatically keeps a 
record of what definitions changed in each project, and 
makes it easy for the user to filout those definitions at the 
end of the session. 

Implementation of the Environment 

Because Smalltalk is an integrated environment, all the 
facilities described in this article are implemented in the 

Text continued on page 147 



144 August 1981 © BYTE Publications Inc 



Meet t he Tig er with 
a bigger bite 



Introducing the remarkable 132-column 
Paper Tiger™ 560. The first full-width matrix 
printer to give you fully formed characters 
for a low $1695.* 

The new 560 features a staggered nine- 
wire ballistic type print head that overlaps 
dots in both horizontal and vertical planes. 
It bi-directionally prints up to 150 dense, text 
quality characters per second. 

The 560 also features a reliable cartridge 
ribbon that lasts up to four times as long 



presents a breakthrough in matriK printini 
Bring the user excellent print quality wit] 
ce of a matrix printer. Employing a uniq 
red column" head manufactured by Integr 
creates high quality printouts by overla 



Paper Tiger 560 Print Sample 

as spool and cassette ribbons, separate 
heavy-duty stepper motors to drive the print 
head and advance the paper, plus true 
tractor feed. 

And famous Paper Tiger performance 
comes with every new 560. Like fixed or 
proportionately spaced text, programmable 
tabbing and business forms control, auto- 
matic text justification, print formats to 220 



columns, parallel and serial interfaces, self- 
diagnostics, and more. All inside the most 
compact printer of its kind. 

Need more stripes? Dotplot,™ our high- 
resolution raster graphics package, is stan- 
dard on every 560. 

For data processing, word processing 
and small business applications, this is your 
Tiger. The business-sized Paper Tiger™ 560. 

It's a Tiger you can count on. 

Call TOLL FREE 800-258-1386 (In New 
Hampshire, Alaska and Hawaii, call 
603-673-9100.) Or write: Integral Data 
Systems, Inc., Milford, NH 03055. 




Tiger 560 

■S) llntegral Data Systems, Inc. 



Circle 172 on Inquiry card. 



"Suggested U.S. retail price. 



BYTE August 1981 145 



See us at Comdex '81 in Las Vegas, Booth §774. 







TVP e 



«0" P° sv 




:■— »•— r 



»\i'*- • 



: ! ! 1 t, 



*'* l » 




The BOS M System: 
The Universal Donor 



The BOS M Card is the heart of the M System. It is designed to 
be IEEE S-100 bus compatible for universal system use. Virtually 
all elements of a computer mainframe now reside on one S-100 
card — Z-80A CPU, 64k of 200ns RAM (no wait states), 4k 250ns 
EPROM, Winchester Disk I/O port, two RS-232 serial ports, system 
port, floating point processor, and parallel I/O. The same M Card 
can be used in single-user, multi-user, or even multi-processor 
systems. 

Second Generation Multi-Processor. With the BOS M Card, 
multi-processing is finally free of the Master/Slave and hand- 
shaking parameters so prevalent in first generation multiprocessors 
Inter-system communications are FIFO buffered; the old "Master" 
is now a. slave to the user, and the system functions without "S-100 
bus overrun" or system generated wait states. 

The Universal Processor is now a reality! As a single-user system, 
the BOS M is unmatched in performance (up to ten times the speed 
of other microcomputers). As a multi-user system, this power can 
be translated into a low cost multi-terminal capability. As a multi- 
processor, the system leaves the realm of "microcomputer" and 
competes in performance with a minicomputer! You can start with a 
single-user computer and expand to a multi- user/multi-processor 
computer system when needed. 



ird 




•Reglsteiad Trademark 
of Digital Research. 
TURBQDOS is 
a product ol 
Software 2000. 





The Universal Product. BOS has what you need — anything 
from a single M Card to a complete turnkey computer system. 
Diskette, rigid disk, tape and telecommunications sub-systems 
are all available. Compatible software includes CP/M*, MP/M* 
CP/NET\ BOS/TURBODOS, complete monitor, languages, 
application packages, and more! 

Dealer and OEM Inquiries Welcome 

^^^^^^^ Business Operating Systems, Inc. 

2835 East Platte Avenue 
Colorado Springs, Colorado 80909 
n Colorado Call: (303) 634-1541 






The BOS M System does what a Universal Donor must do — it provides high performance for all 
system types; single-user, multi-user, and multi-processor. M Systems start at less than $5,000.00 for 
a single-user computer with dual 8" double density diskette drives. 



Text continued from page 144: 

high-level language, including modeless editing, win- 
dows, the compiler, and the notify mechanism. This was 
possible because Smalltalk represents everything, in- 
cluding the dynamic state of its own processes, as objects 
that remember their own state and that can be sent 
messages by other objects. Using the browser, you can 
examine and (carefully) change the definitions of the 
software-development aids. 

In the implementation of Smalltalk-76, classes Inspect- 
W/indow, BrowseWindow, and NotifyWindow are all 
tiny subclasses of class PanedWindow, which defines 
their common behavior. Similarly, classes StackPane, 
VariablePane, ValuePane, and so on, are all tiny 
subclasses of class ListPane. The superclass defines com- 
mon behavior such as scrolling and selecting entries. 

If someone shows you a system claimed to be 
"Smalltalk," find out whether the software-development 
aids exist and whether they are programmed as class 
definitions in the high-level language. If not, the system is 
not bona fide. 

Conclusions 

The Smalltalk programming environment is reactive. 
That is, the user tells it what to do and it reacts, instead of 
the other way around. To enable the user to switch be- 
tween tasks, the state of the tasks is preserved in instantly 
accessible windows that overlap on desk tops. To give 
the user the maximum freedom of choice at every mo- 
ment, modes rarely occur in the user interface. The result 
of this organization is that tasks, including software- 
development tasks, can be accomplished with greater 
speed and less frustration than is usually encountered in 
computer systems. ■ 

References 

1 . Sneeringer, J. "User-Interface Design for Text Editing: A Case 
Study." Software— Practice and Experience 8, pages 543 thru 
557, 1978. 

2. Swinehart, D C (thesis). "Copilot: A Multiple Process 
Approach to Interactive Programming Systems." Stanford 
Artificial Intelligence Laboratory Memo AIM-230, Stanford 
University, July 1974. 

3. Kay, A and A Goldberg. "Personal Dynamic Media." Com- 
puter, March 1977 (originally published as Xerox PARC 
Technical Report SSL-76-1, March 1976, out of print). 

4. English, W, D Engelbart, and M Berman. "Display-Selection 
Techniques for Text Manipulation." IEEE Transactions on 
Human Factors in Electronics, volume 8, number 1, pages 21 
thru 31, 1977. 

5. Card, S, T Moran, and A Newell. "The Keystroke-Level Model 
for User Performance Time with Interactive Systems." Com- 
munications of the ACM, volume 23, number 7, July 1980. 

6. Goldberg, A and D Robson. "A Metaphor for User-Interface 
Design." Proceedings of the Twelfth Hawaii International Con- 
ference on System Sciences, volume 6, number 1 , pages 148 
thru 157, 1979. 

7. Borning, A. "ThingLab — A Constraint-Oriented Simulation 
Laboratory." To appear in ACM Transactions on Programming 
Languages and Systems (originally published as Stanford 
Computer Science Report STAN-CS-79-746 and Xerox PARC 
Technical Report SSL-79-3, July 1979, out of print). 



L >\ • » 



COMPLETE CATALOG OF COMPUTER 
EQUIPMENT AT DISCOUNT PRICES. 



65K S-100 DYNAMIC MEMORY 

BY FAMOUS NAME MANUFACTURER 



unbelievable price 



$299 



FEATURES: Fully Compatible with IEEE-696. Assembled, tested 
and fully populated with 65K of 200 ns. brand name memory. 
Bank selectable. 4Mhz. operation, extended addressing, invisible 
refresh 8/16 bit operation (per IEEE-696) and many other features. 
One year warranty, manual included... Hurry, limited quantities! 



TELEV1DEO TERMINALS: 

Model 91 2C 695 00 

Model 920C 720.00 

New! Model 950 995 00 



EPSON PRINTERS: 

Model MX-70 SCALL 

Model MX-80 SCALL 



Q.T. COMPUTER SYSTEMS: 

MODEL DESCRIPTION (ALL ASSFMBLt D 8. TFSTEDl PRICE 

MFiDD12A ...25A Mainframe: 12 Slot. Si 00. Dual 8" Drive .$62500 

MF+ 1 8A 25 A Tabletop Mainframe, 1 8 Slot. S1 00 450 00 

MF+12A 25 A Mainframe: 12 Slot. S1 00. Dual 5" Drive ..450 00 

Z+80A Single Board. Z-80 Computer 2/4 Mhz . S- 1 00 .. 185 00 

Z+80A/2.2 Monitor Program for Z+80A & Tarbell or VF-1 3000 

RAM 32 32K Static RAM Board. Low Power, S-100 499 00 

QTCIOA 2 Serial & 4 Parallel Port I/O. S-100 339 00 

QTCCCSA Clock Calendar Board. S-100 125 00 

OTCCCAA Clock Calendar Board, for Apple 1 25,00 

QTCCCTRS80 Clock Calendar Module for TRS-80 125 00 

VISTA COMPUTER COMPANY: 

MODEL DESCRIPTION (ALL ASSI MBLED & TEST FDl PRICE 

V300/25 . . Letter Quality Printer, 25 CPS S1 895 00 

V30CV45 ..Letter Quality Printer. 45 CPS 2195 00 

V-DRI VE . . Dual 8" Disk Cabinet, Power Supply, Rack Mountable ... 375 00 

COMPUTER SYSTEM RESOURCES: 

MODEL DESCRIPTION .ALL ASSEMBLED S, TFSTFD PRICE 

RAM 16 . . . 16K Static RAM, S-100 S189 00 

RAM 16C . Low Power (CMOS) Version of RAM 16 13 Watt .... 259.00 

RAM 65 . . . 16K Static RAM. I/O Port Bank Select. S-100 199 00 

RAM 65C . Low Power (CMOS) Version of RAM 65. 1 4 Watt ... 279 00 
RAM 32 . ..32K Low Power 8/16 Bit Static RAM, Fully IEEE 696 499 00 

RAM 256 . . 256K 8/ 1 6 Bit Dynamic RAM. Fully IEEE 696 1 295 00 

1. 0-8 8 Port Serial I/O. Fully IEEE, up to 200K BAUD 395 00 



ORDERING INFORMATION: 

Minimum Order is $15.00. Prices quoted do not include shipping 
and handling. Foreign orders require prepayment by MICR or 
Money Order in U.S. funds. Purchase Orders accepted from U S 
Government & firms with published A1 Rating from Dunn & 
Bradstreet. All other orders require prepayment, charge card. 
or COD shipment. 

TOLL-FREE PHONE NUM BER: 

Call Toll-Free: 1 -800-555-1 21 2, and ask the operator for our New. 
Toll-Free (800) Number. In Alaska. California, and hlawaii. call us 
collect at (213) 883-3244 

TO RECIEVE OUR FREE CATALOG: 

Call our Toll-Free (800) number, or circle Reader Service tt. 



7131 OWENSMOUTH AVE. / #21 D 
CANOGA PARK, CALIFORNIA 91303 
213 / 883-3244 , 



Circle 38 on Inquiry card. 



Circle 168 on inquiry card. 



August 1981 © BYTE Publications Inc 147 



User-Oriented Descriptions 
of Smalltalk Systems 



Trygve M H Reenskaug 

Central Institute for Industrial Research 

Blindern, Oslo 3 

Norway 



For many people, the workings of a 
computer remain a mystery. Just 
exactly what the computer does and 
how it does it is locked within the 
code of a computer language. The 
computer and the user understand 
two completely different languages. It 
is well known that only a few systems 
are designed and written so that they 
can be understood by the user. More 
than twenty years of experience has 
shown that a bad system design can 
never be hidden from the user, even 
by a masterfully devised user inter- 
face. A quality system, therefore, 
must be based on sound design that 
can be described in terms with which 
the user is familiar. 

The Smalltalk system has been 
designed to handle a great variety of 
problems and solutions. It, therefore, 
provides the greatest possible flex- 
ibility for writing any kind of system 
a programmer may desire. While this 
flexibility is essential for experiment- 
ing, there is the potential for 
disastrous results if restrictions are 
not put on the system structures that 
are available to the application pro- 
grammer. 

This article shows how the basic 
metaphors of Smalltalk can be used 
to describe complex systems. Since 
this magazine is not yet distributed in 
a form readable by Smalltalk, we 
have to restrict ourselves to tradi- 
tional written documentation. (Let it 
be a challenge to Smalltalk ex- 



perimenters to convert this presenta- 
tion into a graphic and dynamic one.) 
The Smalltalk system user will 
most likely employ his system to 
organize the large amount of infor- 
mation that will be available to him, 

A/lore than twenty 

years of experience has 

shown us that a bad 

system design can 

never be hidden from 

the user, even by a 

masterfully devised 

user interface. 

such as reference materials in the 
form of market information, news 
services, and weather forecasts. Some 
data, such as travel information and 
bank transactions, may flow both to 
and from the owner. Other informa- 
tion, such as personal notes or 
material that is not yet ready for 
distribution, can remain private. 

An individual's total information 
needs are very large and complex. His 
Smalltalk system, therefore, is also 
likely to be large and complex. The 
challenge to the Smalltalk ex- 
perimenter is to find ways to struc- 
ture systems so the user will not only 
understand how to use them, but also 
get an intuitive feel for their inner 
workings. In this way, the user can 
really be the master and the systems 



his faithful slaves. 

An important part of any system is 
the software that controls the user's 
interaction with the information. 
Mastering the software is crucial to 
handling the information. With 
Smalltalk, software is just a special 
kind of information and is treated as 
any other information within the 
total system. It is available to the user 
in the usual manner. 

A traditional way of describing 
software is through written documen- 
tation. Smalltalk provides more 
dynamic interfaces through the use of 
two-dimensional graphics and anima- 
tion on the computer screen. Devising 
such interfaces is probably the 
greatest challenge in personal com- 
puting today, and it provides a rich 
field of endeavor for the interested ex- 
perimenter. 

System Descriptions 

We can describe any application 
system in three different ways: how it 
is used, its system structure, and its 
implementation: 

• How it is used — This is the least 
satisfactory type of description. The 
user operates the system through rote 
command sequences such as: switch 
on the machine, type your password, 
hit button A, listen to your system 
saluting you by playing "Hail to the 
Chief. " Since 80% of all user manuals 
for electronic data processing systems 



148 August 1981 © BYTE Publications Inc 



Circle 394 on inquiry card. 



are of this kind, we will not discuss 
them further here. 

This level of understanding has 
been likened to walking around in a 
strange city following directions such 
as: "Go outside, turn right, walk 
straight ahead for four blocks, turn 
left . ..." It is easy to get lost under 
such circumstances. 
• System structure — With this type of 
description, the user has an intuition 
about the kinds of building blocks 
that make up the system, how they 
behave, and how they interact to 
form the complete system. We show 
that the basic Smalltalk metaphors of 
objects and messages are well suited 
to function as building blocks. The 
metaphors are simple and easy to 
understand; yet they permit construc- 
tion of immensely powerful systems. 

A basic system will 

have several thousand 

objects, and typical 

applications would 

contain many more. 

Any Smalltalk system contains a 
large number of objects. A basic 
system will have several thousand ob- 
jects, and typical applications would 
contain many more. The common 
software engineering device of layer- 
ing becomes essential in making the 
whole thing manageable. In the 
description of a layer, essential func- 
tion on that level is highlighted and 
inconsequential detail is relegated to 
lower levels. There is one absolute re- 
quirement of these simplified descrip- 
tions appearing on the different 
layers: what is shown should be cor- 
rect and complete as far as it goes. 
This means that the structure of the 
description has to be a pure tree struc- 
ture: the function of each module has 
to be limited to that module with no 
hidden side effects upon the other 
modules. 

This level of understanding cor- 
responds to the user having a street 
map of the system. He knows the 
major landmarks and the most im- 
portant streets. This gives the user an 
intuition about the total structure and 
permits him tc find his way any- 



where. It is almost impossible to get 
totally lost under these cir- 
cumstances. 

• Implementation — Descriptions at 
this level of understanding explain to 
the user how each individual object is 
built so that it behaves in the manner 
prescribed on the system structure 
level. Here he will find the third basic 
metaphor of Smalltalk, the method. 
A method is similar to a subroutine in 
other languages; it prescribes the 
actions to be taken by an object when 
it receives a message. 

On all layers but the lowest, the 
behavior of an object is fairly com- 
plex, and we can think of it as com- 
posed of a number of sub-objects that 
are used to implement it. The purpose 
of the method is to enlist the aid of 
the sub-objects to implement the 
desired behavior. The user thus finds 
that the typical object is structured in 
much the same manner as his total 
system, and it consists of a number of 
sub-objects that send messages to 
each other. The description tool is 
recursive in that the same tool is used 
on all levels. This recursion descrip- 
tion is probably the most powerful 
feature of Smalltalk. Once the user 
masters the few very general con- 
cepts, he can learn more and more 
about his system by simply using 
these concepts to dig deeper and 
deeper into the system layers. In addi- 
tion, the user can modify and expand 
the system on any level by collecting 
new components out of the building 
blocks provided by the next level 
below it. 

The user at this level now has an in- 
tuition of the overall layout of the 
city. He also has sub-maps of all the 
details and he knows how to read 
them. Depending on his personality, 
he may use these maps only when ab- 
solutely necessary, or he may use 
them to explore unknown territory. 
In contrast to the tourist, the 
Smalltalk user can even make 
modifications and new extensions to 
the city. The tools are there. The user 
decides if, when, and how he wants 
to use them. 

Example of a System Description 

The problem: Consider a small 
manufacturing company that has two 



The Converter 
that transforms 
your electronic 
typewriter into a 
computer 
printer. 



£> No modifications to 
the typewriter 

$> Does not affect normal 
typewriter functions 

& All typewriter functions 
accessible by computer 

£> RS232C, IEEE and 
parallel interfaces 
available 

£> KSR version turns 
typewriter into a 
computer terminal 

^ Fully assembled, tested 
and burned in 



NEW! NOW AVAILABLE 



OLIVETTI PRAXIS 35 

TYPEWRITER 

■ + 

CONVERTER TP35 = 

DAISY WHEEL PRINTER 

FOR LESS THAN $1000. 



Prices start as low as $275. 

CONTACT YOUR LOCAL 

OFFICE EQUIPMENT DEALER 

OR 

VERTICAL DATA SYSTEMS INC. 

FOR FURTHER DETAILS. 



m Vertical Data Systems Inc. 
1215 Meyerside Dr., Unit 2A, 
IaU Mississauga, Ontario, 
VVV Canada L5T1H3 
(416)671-1752 

Dealer inquiries invited 



August 1981 © BYTE Publications Inc 149 



> 



Customer 3 



Figure 1: A job-shop manufacturing company with its customers. 



departments: sales and production. 
The responsibility of the sales depart- 
ment is to find customers for any pro- 
duct the company can make, to con- 
tact the production department to 
find out when the product can be 
delivered, and to sign a contract with 
the customer. The responsibility of 
the production department is to 
manufacture each product as cheaply 
as possible at a specified level of 
quality and to have it finished on the 
promised date. When the production 
department has manufactured the 
product, it is dispatched to the 
customer through the sales depart- 
ment. 

The system: A natural way to map 
this into a Smalltalk system would be 
to represent each department as an 
object. The function of the Sales ob- 
ject would be to keep track of the 
state of each sale in the following 
sequence: 

1. Fill in and send proposals 

2. Reserve the necessary resources in 
production for the product 

3. Send contracts and packing notes 
to the customer 

The function of the Production ob- 
ject would be to: 

1. Keep track of commitments 

2. Schedule the manufacture of pro- 
ducts 

3. Help keep the product quality 

4. Control the manufacturing pro- 
cess to get the products completed 
on time 

It also seems reasonable to include a 
third kind of object in our system: 
Customer objects. The purpose of 
these objects would be to act as a 

150 August 1981 © BYTE Publications Inc. 



receptacle for the messages being 
passed from the company to the 
customer and from the customer to 
the company. The various objects 
with a set of reasonable communica- 
tion channels is shown in figure 1. 

The overall processing of an order: 
The Smalltalk system would be pro- 
grammed to reflect everything of im- 
portance that takes place during the 
processing of an order and to support 
its user on every step. The process 
that takes place inside the Smalltalk 
system would, therefore, closely 
resemble the actual processing of an 
order. Let us assume the following 
real-life process, which is depicted in 
figure 2. A customer submits an in- 
tention to buy, a request for offer, to 
the company. The sales department 
books resources from the production 
department and returns an offer with 
the cost and delivery date to the 
customer. The customer answers with 
a purchase order. This is transcribed 
and passed from sales to production 
as a requisition. The product is 
manufactured in production, and a 
ready-note is sent to sales, which ar- 
ranges for transport and sends pack- 
ing notes to the customer. 

In the Smalltalk system, the Sales 
object would help the user of the 
system in corresponding with the 
customer, in keeping track of pro- 
gress, and in sending the required 
forms to the production department. 
The Production object would help the 
user in the planning and control of 
the manufacturing process. 

In order to highlight the principles, 
we have made this a very simple 
system. The reader will have no dif- 
ficulty in expanding it, for example, 
by adding an object for the account- 
ing department that takes care of bill- 



VISIT THE 

MkxoAQe 

STORE IN YOUR 

APEAI 



9530 Viscount 
El Paso, Texas 
(915) 591-3349 

611 Rockville Pike 
Rockville, Maryland 
(301) 762-7585 

5742 E. Broadway 
Tucson. Arizona 
(602) 790-8959 



2525 N. Scottsdale Road 
Scottsdale, Aiizona 
(602) 941-8794 

1490 W. Spring Valley Rd. 
Richardson, Texas 
(214) 234-5955 

83 South 10th Street 
Minneapolis, Minnesota 
(612)338-1777 



f i 



2760-S South Havana 4550-50 E. Cactus 

Aurora, Colorado Phoenix, Arizona 

(303) 6964950 (602) 996-2910 

1 707 Monroe Avenue 24 W. Camelback 

Rochester, New York Phoenix, Arizona 

(716) 244-9000 (602) 265-0065 

1220 Melbourne Drive 2591 Hamilton Road 

Hurst, Texas Columbus, Ohio 

(817)284-3413 (614)868-1550 

2675 Maytalr Road 8615 Allisonville Road 

Milwaukee, Wisconsin Indianapolis, Indiana 

(414)257-1100 (317)849-5161 

2065 El Camino Real West 1517N.E. 122ndAvenue. 

Mountain Vlew.Calitornia Portland, Oregon 

(415) 964-7063 (503) 256-4713 

79 Main Street 
Norwalk. Conneticut 
(203) 8460851 



COMING 
SOON TO: 

Salt Lake City, Utah 

St. Louis, Missouri 

San Diego, California 

Omaha, Nebraska 

Albuquerque, New Mexico 

Spokane, Washington 

Toronto, Canada 

Boston, Massachusetts 

Pompano Beach, Florida 

Palm Beach, Florida 

Houston, Texas 

Wilmington, Delaware 

Chicago, Illinois 

Walnut Creek, California 

Panama City, Panama 

Ancorage, Alaska 






FOR FRANCHISE 

OPPORTUNITY 

INFORMATION CALL 

(602) 968-3168 



■ 



CASH FLOW 
PROBLEMS? 




irS NICE TO KNOW SOMEONE 
WHO HAS THE SOLUTION. 



- 


' ^ 


1 1 



MicroAge is your Solution 
Store . . . that means at 
MicroAge Computer Stores 
we have a wide selection 
of time-saving computer- 
ized business systems 
designed specifically to 
solve the daily cash flow 
problems every business- 
man faces. 
— i 

MicroAge has computer- 
ized business systems that 
quickly and affordably allow you to regain con- 
trol of your critical accounts receivable ... at last 
making it possible for you to carry out effective 
collection procedures on a consistent basis. 
MicroAge has accounts receivable program 
packages to automatically display and update 
account information; prepare trial balance 
including a balance-due and delinquency aging 



report, and take care of dozens of other tasks 
that eat into your time and profit! 

Computerized business systems from the Micro- 
Age Computer Store are available in the $5,000 
to $15,000 range, to suit the individual budget of 
your small business or professional practice. 
MicroAge backs up every system with personal- 
ized service, warranty service and repair, instal- 
lation, systems consulting, even customer train- 
ing. Visit the MicroAge Computer Store in your 
area soon with your business problems, and let 
us help you with the solution. 

MicroAge 

co/MPUTer STpre 

"The Solution Store" SM 

Circle 219 on inquiry card. 



Big sale 
onK's! 

16K...S 149.95 
32K...S 199.95 
48K... $249.95 
64K... $299.95 




New JAWS-IB 

The Ultrabyte Memory Board 

Due to the tremendous success of our JAWS I, we 
were able to make a special purchase of first-quality 
components at below-cost prices for JAWS-IB. And 
we are sharing our cost saving with you. But don't be 
surprised if the next time you see this ad the prices 
have gone up substantially. Better yet, order now, 
and get the best memory on the market at the best 
price on the market. 
ONE CHIP DOES IT ALL 

laws-IB is the Rolls-Royce of all the S100 dynamic 
boards. Its heart is Inters single chip 64K dynamic 
RAM controller. Eliminates high-current logic parts 
. . delay lines . . . massive heat sinks . . . unreliable 
trick circuits. | AWS-IB solves all these problems. 
LOOK WHAT (AWS-IB OFFERS YOU 
Hidden refresh . . . fast performance . . . low power 
consumption . . . latched data outputs . . . 200 NS 
4116 RAM's . . . on-board crystal . . . RAM Jumper 
selectable on 8K boundaries . . . fully socketed . . . 
solder mask on both sides of board . . . phantom line 
. . . designed for 8080, 8085, and Z80 bus signals . . . 
works in Explorer, Sol, Horizon, as well as all other 
well-designed S100 computers. 



t 



I U- II AV M0N£YBACK TRIAL: Try a lull) wiled 
and lesled board lor 1 days — Ihen either keep 
II, ii'ium II lor kit. or simply return II In working 
condition. 



Continental U.S.A. Credit Card Buyers Oul.side Conneclicul: 
TO ORDER CALL TOLL FREE 800-243-7428 

From Conneclicul Or For Assislance: 
(203) 354-9375 

Please send the items checked below: 
JAWS-IB kit: 

□ 16K $149.95* 

D 32K $199.95* 

Q 48K $249.95* 

□ 64K $299.95* 

JAWS-IB Fully Assembled, Wired & Tested: 

D 16K $179.95* 

D 32K $239.95* 

□ 48K $299.95* 

□ 64K $359.95* 

D EXPANSION KIT, 1BK RAM Module, to expand 

JAWS-IB in 16K blocks up to 64K. $59.95 
'All prices plus $2 postage and insurance ($4.00 Canada). 
Connect/cul residents fidrjsnles tux. 

Total enclosed: $ 

Q Personal Check D Money Order or Cashier's Check 

ID VISA D Master Card (Bank No. ) 



. Exp. Dale . 



Signature 
Print 
Name 



Address _ 
City 



State . 



.Zip _ 



I^NETRONICSR&DLUI. 

■ fill 333 Litchfield Road, New Milford, CT <>l>77(> 



Customer 2 



requestFor Offer 



book Product ionFocililies: after: 



t plannedCompletionTime 



Sales 



purchaseOrder 



produclionRequisition 



I productReadyNote 



Sales 



packingNote: 



Record request 



Planning and reservation 



Prepare and send offer 



Evaluate offer 



Record purchase order 



Manufacture product 
according to plan 



Arrange for transport 



Receive product 



Figure 2: The processing of an order. The Smalltalk system supports this processing 
through interaction with its owner in real-time. 



ing, an object for the warehouse that 
may or may not have the required 
product in stock, and so on. Also, 
figure 2 could probably be better 
documented on a Smalltalk computer 
by animating figure 1. 

An Implementation Description 

Let us inspect the Production object 
of figure 1 and see how it processes 
the message bookProductionFacilities: 
after.. When this message is received 
by the Production object, it consults 
its message dictionary to find the cor- 
responding method. If the products 
were simple and the workshop small, 
the object could contain the current 
production plan directly and the 
method could go something like that 



shown in listing 1. 

One of the instance variables of the 
Production object is the table pro- 
ductDuration which contains the time 
it takes to manufacture various pro- 
ducts. Looking at this table, we find 
the duration for a product. In this 
simple example, there is only one re- 
source, and we find the first available 
time slot for the product by sending 
self the message findFreePeriod: 
after:. This corresponds to calling a 
local subroutine in other systems. We 
then reserve the resource for our pro- 
duct in that period. (These two steps 
could have been combined into one, 
but the separation gives us more flex- 
ibility in varying the planning 
algorithm if we wish to do so later.) 



152 August 1981 © BYTE Publications Inc 



TRANSFER YOUR DATA 

INTO 

HARDCACHE" 



THE HARDCACHE SUBSYSTEM : 
+ 30 Megabytes [Formatted] Winchester Disk 
Average access time 48 milliseconds 

♦ Cartridge tape drive provides : 
Complete backup in under 10 minutes 
File save/reload 
Software distribution 



+ S-1 00 Bus Intelligent Interface Card 

DMA or programmed I/O data transfer 
Disk throughput optimizer 

Bootstrap ROM - switch selectable 
Time of day clock - battery powered 

+ Compatible with 

CRDMEMCQ 
VECTOR GRAPHICS 

north star and other 

S-1 00 based computer systems 

+ Installs on any CP/M or 
MP/M system* 

•CP/M and MP/M are registered trademarks ol Digital Research. 




EXECUTIVE SYSTEMS, INC. 

15300 Ventura Boulevard 
Sherman Oaks, California 91403 
(213) 990-3457 



.-jTiSTATE-OF-THE-ART 
^>* SS16K/IEEE 
16K STATIC RAM BOARD 

ONLY $ 179 95 

Expand your system beyond 
64K — add universal bank 
select option for only $20. 00 




imriiTnritt(#lHtififfifffffiTmTfi'ifft 
New: SS16K/IEEE RAM 

It's everything you need in a 16K static RAM board 
— at the lowst price you've ever seen. The 
SS16K/IEEE comes with all the high performance 
features listed below: And unlike obsolete-design 
RAM's (without bank select) you can add-on our 
universal software bank-selector system anytime, 
now just $20.00. This makes the SS16K/IEEE capa- 
ble of addressing 2,048 different banks. You can add 
memory beyond the 64K limit. You can expand to a 
multi-terminal system. 
FEATURES OF SS16K/IEEE : 

• Low-power 2114's 

• All inputs and outputs meet the proposed IEEE 
standards for the S 100 bus. 

• 4.0 MHz operation. 

• Schmitt trigger buffer on all signals for maximum 
noise reduction. 

• Addressable on 16K boundaries, 0-64K, dip switch 
selectable. 

• Phantom option, dip switch selectable. 

• PWR/MWRITE option, dip switch selectable. 

• Glass epoxy PC board with gold-plated contacts 
and double-sided solder mask. 

• Fully socketed. 

• Four separate regulators, for maximum stability. 
WITH BANK SELECT OPTION (now just $20.00) 
YOU ADD THIS: 

• Software bank selector featuring a universal 
decoder works with Cromenco, Alpha Micro, 
Netronics, most other systems, or your design. 
On-board dip switches: Bank Select Enable, Reset 
Enable, Reset Disable, Port Address, Port Data. 

• LED Indicator to display status. 

10-DAY MONEY-BACK TRIAL: Try a fully wired 
and tested board for lOdays— then either keep 
it, return It for kit, or simply return It In working 
condition. 



Continental U.S.A. Credit Card Buyers Outside Connecticut: £ 

TO ORDER CALL TOLL FREE 800-243-7428; 

From Connecticut or For Assistance: ■ 

(203) 354-9375 I 

Please send ihe items checked below: '. 

SS16K/IEEE without bank select: I 

□ Kit $179.95*; 

Q Fully assembled, wire & tested $199.95" 

SS16K/IEEE with bank select: 

□ Kit $199.95*1 

D Fully assembled, wired & tested $229.95*; 

D SS16K/IEEE bank select option $20.00*; 

'Plus $2 postage fr insurance {$5.00 Canada). Connecticut resi-B 

dents add sales (ox. J 

■ 

Total enclosed: S J 

D Personal Check D Money Order or Cashier's Check" 

VISA □ Master Card (Bank No. )! 



. Exp. Date . 



Signature 
Print 
Name 



City . 
State . 



-Zip. 



fekNETRONICS R&IJ Ltd. ■ 

*K1»333 Litchfield Road, New Mllford.CT 06776; 

_*■■■*>■■■■■■*■■■«■■■■■■■■■■■■■■■■■■■■■!- 



Listing 1: Smalltalk method for the message bookProductionFacilities:after:. 
bookProductlonFacllltles: productType after: earllestStartTlme 

"Reserves production facilities for a new product of given type as soon as possible after the 
specified earliest starting time. Returns the planned completion time for the product." 

| duration plannedStartTime | 

duration — productDuration at: productType. 

plannedStartTime — self findFreePeriod: duration after: earliestStartTime. 

self reservePeriod: duration from: plannedStartTime. 

t (plannedStartTime + duration) 



Listing 2: Alternate Smalltalk method for the message bookProductionFacilities:after:. 
bookProductlonFacllltles: productType after: earllestStartTlme 

"Reserves production facilities for a new product of given type as soon as possible after the 

specified earliest starting time. Returns the planned completion time for the product." 
| productldentification | 

productldentification — jobManager defineProduct: productType. 
jobManager schedule: productldentification after: earliestStartTime. 
t (jobManager plannedCompletionTime: productldentification). 



Messages from the surrounding system 



Production 
Manager 



Jl 



^V 



Job 
Manager 



^ 



Resource 
Manager 



Resource A 



Job 3 



Resource C 



Figure 3: The internals of the Production object. 



The planned completion time is 
returned to the sender, in this case the 
Sales object. 

Lower-Level System Description 

If the user wants more advanced 
aids for production control, the Pro- 
duction object would call upon the 
services of a subsystem of intercon- 
nected objects. A possible subsystem 
is shown in figure 3. 

The entrance to the internals of the 
Production objects is through a Pro- 
duction Manager object; it is con- 



nected to a Job Manager object and a 
Resource Manager object. 

The manufacturing of a product is 
split into a number of jobs. The 
available production facilities (people 
and machines) are split into a number 
of resources. Each job is to be per- 
formed by a single resource. A 
natural way to map this into a 
Smalltalk system is to represent each 
job by a Job object and each resource 
by a Resource object. 

In this scheme, each Job object en- 
sures that the job is performed by its 



154 August 1981 © BYTE Publications Inc 



r 




Wild Hare Software Systems 
Multiply the Capabilities of 
Data General's 



RDOS 
INFOS 
ICOS 
DOS 



Wild Hare gives Data General 

users a choice when upgrading ^^ 

to a multi-user environment and - 

eliminates the need to use AOS. 

Wild Hare makes it easy for you. It creates 

a true multi-lingual, multi-user environment for 

your current system. No user software modifications 

are necessary. There is no need to install a new 

operating system. And, no expensive hardware upgrade is 

required. 

Features 

• Each user is totally independent of all other users. 

• Each user may run all standard Data General software. 

• Each user may independently edit, compile, execute and debug 
programs written in any language supported by RDOS, INFOS®, 
ICOS and DOS. 

• Standard languages supported include: Fortran IV, Fortran V, 
COBOL, ALGOL, RPG, DG/L™, BASIC, PASCAL, MAC, etc. 

• All NOVA's® and ECLIPSE'S® are supported. 

• Wild Hare guarantees its software systems on a money back basis. 

Wild Hares Software 
Gives Data General Users 
A Choice! 



[MD 
HARE 



NOVA ■ tCLIPSE ■ and INFOS ' are registered trademarks of Data General Corporation 



ox 

RO. Box 3581 .Boulder , Colorado 80307 
(303)494 0221 



Circle 401 on inquiry card. 



rCPU'S & SUPPORT CHIPS 



2.25 
3.60 
2.90 



8251 



RAM's 



2114L-3 

4116-3 

4116-2 

21L02-3 

2102-d 

MK4027-3 

MK4096-11 

TMS404525 

MS4050NL 

2101-1 

21076-5280 

MM5270 

MK4008P 

IM7001 



- 4.50 

- 5.50 

- 6.95 
B257IAM9517}- 7.95 
ZBOAS10 - 12.95 
8275 - 16.95 

- 34.95 

ROM's 



2708 

2716 

2716 I 5V 

2732 

82S23 

82S112 

825(15 

82S123 

82S129 

825130 

82S131 

AM9218C 

825181 

8256-5 17418* 



3.25 

3.45 

3.95 





4027 - 


.20 


402B - 


77 


4030 - 




4034 - 2 




4035 - 






Vfl 


4042 - 


w 


4043 - 




4044 - 


Ml 


4046 - 


Wi 


4047 - 


:*) 




.BO 


4050 - 


45 


4052 - 


M 


4053 - 


,H*> 


4066 - 


Hit 


4069 - 


71) 


4071 - 


«> 






4076 - 




4077 - 



74C74 

74C76 ■ 

74CS3 

74C85 

74C86 

74C90 

74C93 

74C151 

74C167 

74C160 

74C161 



74C02 
74C08 
74C10 
74CI4 
74C20 
74C32 
74C73 



UART's 



AY5-1013 - 3.75 M8868A - 8.95 

TR1602B - 3.95 COM2017 - 3.75 

PT1482B - 3.25 AV3-8500 - 1.95 

AY3-8700 - 2.25 

INTERFACE SHIFT 

& DRIVERS REGISTERS 



8130 
8830 
8833 
8834 
8837 

8T380 



,-*> MM1402 

*•" MM1403 

i^i MM1404 

\™ MM5013 

£•» MM5016 

S*™ MM 5055 

g'SH MM5056 

2-00 MM5057 

*- w MM5058 
MM5060 



2.50 
- 2.50 



14 PIN HEADERS 3/$1.00 

16PINHEADERS 40 

24 PIN HEADERS 75 

40 PIN HEADERS 1.10 

50 PIN EDGEBOARD CONN 3.95 

26 PIN EDGEBOARD CONN 2.50 

50 PIN RIGHT ANGLE CONN 3.95 

20 PIN RIGHT ANGLE CONN 2.25 



PRINTED CIRCUIT BOARD 

A" * 6" DOUBLE SIDED 

EPOXY BOARD ?«* THICK 

$.60 ea 5/$2.60 



EPOXY GLASS VECTOR BOARD 



1 /1 6" thick with 1 /1 0" spacing 

AVi"x6%" $1.95 



SPECIALS 

10% DISCOUNT ALL SCR'S & TRIACS 

4ea. 2716 ROM'S ( + 5V).. 28.00 

8ea. 4116-3 RAM'S 20.00 

MC68000L 125.00 

8164E64K x 1 RAM (150NS) 39.00 

15% Discount 

All 74LS and S Series 

20% Discount 

340T and 320T Regulators 

L14H4 IR & Visible Detector (TO-92) 
3/$1.00 

SPECIALS GOOD THRU AUG. 1981 



CRYSTALS $3.45 ea. 

6. I'M MHz 
8.000MH; 



DATEL'S DAC-08EQ 

8 bit DAC - $7.95 

INTERSIL DG1 IBP ANALOG SWITCH/ 

2 CHANNEL DRIVERS , $11.50 

INTERSIL ICL 7104-12 CPL 12 BIT 

AID CONVERTER $26.50 



REOICON SAD 1024 ANALOG SWITCH 



74S112 
74S133 
74S135 
74S138 
74S139 
74S140 
74S153 
74S151 



74S280 1.50. 



7 WATT LD 65 LASER 
DIODE IR $8.95 



25 watt Infra Red Pulse (SG 2006 equiv.) 
Laser Diode (Spec sheet included)) $24.95 



2N3820 P FET $ .45 

2N5457NFET $ .45 

2N2646UJT $ .45 

ER 900 TRIGGER DIODES 4/$ 1.00 

2N 6028 PROG. UJT $ .65 



DISC CAPACITORS 

.1UF16V 10/S1.00 100/58.00 

.01UF35V 16/51.00 100/S5.0Q 

CLOCK CHIPS 
MM5314 54.75 MM5316 54.95 



2.000 MHz 
4.000 MHz 

3.000 MHz 
3.57 MHz 
5.000 MHz 
6.000 MHz 



10.000 MHz 

18.000 MHz 

18.432 MHz 

I 20.00GMHz 



WE SHIP OVER 95% 

OFOURORDERS 

WITHIN 24 HOURS 

OF RECEIPT 



MINIATURE MULTI-TURN TRIM POTS 
50, 100. 5K, 10K, 250K $.75 each 3/$2.00 



NO. 30 WIRE WRAP WIRE SINGLE STRAND 

100' $1.40 



ALCO MINIATURE TOGGLE SWITCHES 

MTA 106DSPDT 51.20 

MTA 206 DPDT 51 .70 

MSD 206 P-DPDT CENTER OFF LEVER SWITCH .51.85 





S 

1.5A 


CR 

t!A 


's 

35A 


110A 


100 


.45 


.60 


1.40 




200 


.70 


.80 


I.3G 


9.00 


40(1 


1.70 


1.40 


7.R0 


12.00 


600 




1.80 


3.60 


15.00 



TRIAC's 



PRV 


1A 


10A 


25A 


" 100 


.45 


.80 


1.55 


200 


.84 


1.30 


2.10 


400 


1.30 


1.90 


3.10 


600 


2.00 


2.75 


4.30 



FP 100 PHOTO TRANS S .50 

RED. YELLOW, GREEN or AMBER LARGE LED's.2" 6/S1.00 

RED/GREEN BIPOLAR LED's $ .55 

MLED92 IR LED $ .75 

MRD14B PHOTO DARL.XTOR S .50 

TIL-118OPT0-IS0LAT0R .$ .45 

IL-5 OPTO ISOLATOR S .45 

1WATTZENERS: 3.3, 4,7, 5.1, 5.6, G.8, 8.2. 9.1. 10, 

12, 15. 18. or 22V 6/S1.00 



TANTALUM CAPACITORS 

.47UF35V 5/S1.00 10UF 10V - $ .40 



.68UF35V 5/51.00 
1UF20V 5/51.00 
I 2.2UF20V 5/$ 1.00 
3.3UF20V 4/S1.00 
1.7UF35V 4/S1.00 
6.8UF35V 3/$1.00 



22UF10V -$ .30 

15UF16V 3/$1.00 

30UF6V 5/31.00 

33UF20V $ .60 

47UF20V S .85 

120UF6V S .75 



SANKEN 

AUDIO POWER AMPS 

Si 1010 G 10 WATTS .$ 7.50 
Si 1020 6 20 WATTS .$12.50 
Si 1050 G 50 WATTS .$27.50 



200 PRV 1A LASCR .95 



RS232 
CONNECTORS 

DB25Pmale $3.25 

DB 25S female . . . $4.25 
HOODS $1.50 



PRV 


1A 


3A 


12A 


50A 


125A 


240A 


100 


.06 


.14 


.35 


.90 


4.25 


6.00 


200 


.07 


.20 


.40 


1.30 


5.25 


9.00 


4O0 


.09 


.26 


.65 


1.50 


6.50 


12.00 


600 


.11 


.30 


.80 


2.00 


8.50 


15.00 


800 


.15 


.35 


1.00 


2.50 


10.50 


18.00 



.45 1,25 3.00 12.50 26.00 



IN4148IIN914) 
15/$1.00 



.5V at 800ma SOLAR CELLS 
3" diameter $4.35 



7 SEGMENT DISPLAYS 



FSC8024-4 digit 

C.C.8"display $5.95 

FND503C.C..5"...$ .85 
FND510C.A. .5". ..$ .85 
DL-704.3"C.C $ .85 



DL-707C.A. .3"... 
DL747C.A. .6"... 
FND810.8"CA .. . 
FND803.8"CC ... 
MAN 5 C.C.Green 



$ .75 
$1.50 
$1.95 
$1.95 
$ .75 



TRANSISTOR SPECIALS 

2NI307 PNP GE TO-B 

2N404APNPGETO-5 3/ 

HEP 66014 -PNPGET0 3 

TIP 1 1 1 6 .50 TIP 141 . 

TIP 120 5 .55 TIP 145 

TIP 126 $ .60 TIP11G 

2NS233-NPN SWITCHING POWER . 

MRF-B0M a CB RF TRANSISTOR NPN 

2N3T72NPNSITO-3 

2N4308PNPSiTO-3 

2N3137NPNSiRF 

2N3919NPNSiT0-3RF 

2N142QNPNSiTO-5. . .31 

2N2222NPNS1T0-18 . .5/ 

2N2907PNPSITO-1B 5) 

2N3055 NPN 51 TO-3 

2N3904 NPN Si TO-92 6j 

2N3306 PNP Si TO-92 6, 

2N52S6NPNSiTO-220.. 

2NS109PNPSiTO-22Q . .. . 

2N530BNPNSiTO-3. ... 

TIP31BNPNS1TO-220 

HP32QPNPSiTO-220 . .. 

IIP34PNPSi 

TIP 121PNPSIU84 



SFC 3301 - 50 PRV 30A 
FAST RECOVERY DIODE t35ns) ..$2.25 
20KV250MA DIODE $1 .90 



SILICON POWER RECTIFIERS 



7402 - .17 

7403 - .17 

7404 - .24 

7405 - .24 

7406 - .33 

7407 - .35 

7408 - .27 

7409 - .24 

7410 - .17 

7411 - .22 

7413 - .42 

7414 - .50 

7416 - .33 

7417 - .37 
7420 - .17 

7425 - .30 

7426 - .33 

7427 - .30 
7430 - .17 
7432 - .27 

7437 - .27 

7438 - .27 
7440 - .17 



7447 
7448 
7450 
7472 



TTLIC 

7473 - 

,7474 - 

7475 - 

7476 - 
7480 - 
7483 - 



SERIES 



7491 - 

7492 - 
7493 

7494 - 

7495 - 

7496 - 
74107 - 

74121 - 

74122 - 

74123 - 

74125 - 

74126 - 
74145 - 

74150 - 1 

74151 - 
74153 - 
75154 - 
74155 - 
74157 - 

74160 - 

74161 - 

74162 - 

74163 - 

74164 - 



SB 


74165 - . 


40 


74166 - . 


40 


74170 - 1. 


40 


74173 - . 


45 


74174 - . 


50 


74175 - . 


fifi 


74176 - . 


4? 


74177 - 


4* 


74180 - . 


45 


74181 - 1. 


45 


74182 - 


46 


74130 - 


60 


74191 - 


HO 


74192 - 


.«1 


74193 - 


3fi 


74194 - 


35 


74195 - 


39 


74196 - 


.42 


74197 - 


.45 


74279 - 


45 


74365 - 


75 


74367 - 


in 


74368 - 


.50 


74390 - 


.40 


75324 - 2 


.10 


74325 - 1 


m 


75491 - 1 


Fin 


75492 - 1 


,R5 


8T98 - 


,65 


9312 - 


.60 


9601 - 


.60 


9602 - 


.60 





FULL WAVE BRIDGE 



PRV 


2A 


6A 


25A 


100 






1.40 


200 


.60 


1 .10 


220 


400 
500 


1.00 
1.30 


1.65 
1 90 


330 

4 40 



DIP SOCKETS 

SPIN .17 22 PIN 30 
14 PIN 20 24 PIN .35 
16 PIN .22 28 PIN 40 

18 PIN 25 40 FIN 60 



74LS SERIES 



74LS01 - 

74LS02 - 
74LSD3 

74LSM - 

74LSOS ■ 

74LS09 - 

74LS10 ■ 

74LS11 - 

74LS12 - 

74LS13 - 

74LS14 

74LS1B - 

74LS20 

74LS21 

74LS22 

74LS26 

74LS27 

74LS28 

74LS30 



74LS40 - 

74LS42 - 

74LS47 - 

74LE51 - 

74LS54 - 

74LS73 - 

74LS74 - 

74LS75 - 

74LS76 - 

74LS85 - 

74LS86 - 

74LS90 ■ 

74LS92 - 



18 


74LS33 - . 


2(1 


74LS109- . 


20 


74LS112- . 


7? 


74LS113 - . 


73 


74LS114- . 


20 


74LS123- . 


77 


74LS125- . 


20 


74LS126- . 


72 


74LS132- . 


73 


74LS136- . 


4S 


74LS138 - . 


40 


74LS139- . 


3ft 


74LS161 - . 


in 


74LS153- . 


in 


74LS156 - 1 . 


75 


74LS157- . 


35 


74LS158- , 


45 


74LS161 - . 


lfl 


74LS162- 1. 


35 


74L51G3- . 


srr 


74LS164 - . 


an 


74LS168- 1. 


4TI 


74LS16S - 1. 




74LS170- 1. 


fiS 


74LS173- . 


7(1 


74LS174- . 


20 


74LS175- . 


SB 


74LS1B1 -2. 


35 


74LS190- . 


ss 


74LS191 - . 


45 


74LS192- . 


75 


74LS193 - . 


Rfi 


74LS134- 1. 


45 


74LS195- . 



74LS196- 
74LS197 - 
74LS221 - 
74LS240 - 
74LS241 - 

74LS243 - 
74LS244-1. 
74LS245- 1 

74LS248 - 1 
74LS251 - 
74LS253 - 
74LS257- 
74LS2S8 - 
74LS259 - 1 
74LS256 - 
74LS273 - 1 
74LS279 - 
74LS2S0 - 1 
74LS283 - 
74LS290 - 
74LS293 - 
74LS365 - 

74LS367- 
74LS368- 
74LS373 - 1 
74LS374 - 1 
74LS377 - 1 
74LS386 - 
74LS390 - 1 
74LS393 - 1 



LINEAR CIRCUITS 



MAN 82 C. A. Yellow .$ .75 



LM301/7' 

741 CV - 
741C - .: 



LM307 - 
LM308 - 
LM324 - 

LM339 - 
LF355 - 
LF356 - 
LM311 - 
LM318 



LM348 - .' 
LM3GB - .! 
LM361 - 1 
LM377 - I, 
LM3B0- I. 
LM3S2 - .! 
LM3S3 - 2 
LM386 - .1 
LM387 - 1 
LM553 - 2 

LM55S - .1 



LM180B- 1.75 
LM1BE3 - 1.95 
CA75S - 1 .75 
CA3018 - 1 .95 
CA3046 - .85 
CA3073 - 1.50 
CA3080 - 95 
CA3086 - .95 
CA3094 - 2.25 
CA3140 - 1.25 
LM2901 - .95 
8038CC - 3.90 



REGULATORS 



LM317T 51.50 

LM337 S2.50 

323K-5V3A S4.50 

79HGKC-5Vat5A S6.95 



78L05 S .45 

LM305G S .75 

340K-12, 15or24VS1.50 
340T-5. 6, 8. 9. 12. 

15. 18o;24V,..S .85 
LAS1412t-12V3AS3.95 



POSTAGE ADD 10% FOR ORDERS UNDER $20.00 
RATES ADD 5% FOR ORDERS BETWEEN $20.00 AND $50.00 

ADD 3% FOR ORDERS ABOVE $50.00 



TEHMS:FOB CAMBRIDGE. MASS. SEND CHECK 
OR MONEY ORDER. MINIMUM TELEPHONE, 
C.O.D. PURCHASE ORDER OR CHARGE 520.00 
MINIMUM MAIL ORDER $5.00. 



SEND S.25 FOR OUR CATALOG 
FEATURING TRANSISTORS & 
RECTIFIERS. 145 HAMPSHIRE 
ST., CAMBRIDGE, MASS. 02139 



SOLID STATE SALES 

P.O. BOX74B 

SOMERVILLE, MASS. 02143 



TEL. (617)547-7053 

WE SHIP OVER 95% 

OF OUR ORDERS WITHIN 

24 HOURS OF RECEIPT 



TOLL FREE 1-800-343-5230 



resource within the available time. 
Similarly, each Resource object en- 
sures that its resource is used in an ef- 
ficient manner, that there is sufficient 
time available for preventive 
maintenance, and that there are no 
unacceptable overloads. The method 
in the Production object that handles 
the bookProductionFacilities:after: 
message could now be written as 
shown in listing 2. 

One of the instance variables of the 
Production Manager object is a 
pointer to the Job Manager object. By 
using that pointer as a communica- 
tion channel, the Production 
Manager object passes most of the 
work on to the Job Manager object. 
First, the Job Manager is asked to 
define the new product. The Job 
Manager creates the Job objects (see 
figure 3), links them to the proper 
Resource objects, and returns an 
identification that is to be used for 
future references to the product. The 
Job Manager is then asked to schedule 
the product for manufacturing as 
soon as possible after the given date. 
Finally, the Job Manager is asked 
when the product will be completed, 
and this value is returned to the out- 
side world (in this case, to the Sales 
object). The planning process in the 
Production subsystem that is shown 
in figure 4 is controlled by this 
method. 

Definition of New Objects 

The first task of the Job Manager 
object is to define the new object. It 
receives message defineProduct: when 
this is to be done. The corresponding 
method could be something like that 
shown in listing 3. We are referencing 
two instance variables of the Job 
Manager object in this method: pro- 
ductDescriptions and production- 
Manager. productDescriptions is an 
ordered collection with one member 
for each product type. Each of these 
members contains a sequence of small 
objects with the class, duration, and 
resource type for each of the jobs that 
go into the manufacture of such a 
product. productionManager con- 
tains a pointer to the Production 
Manager object. The result of the 
product creation is put into a third in- 
stance variable, the productDic- 



156 August 1981 © BYTE Publications Inc 



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

RELATIONAL QUERY SYSTEM FOR MANAGEMENT 




DATABASES: YOU'VE HEARD THE HYPE BEFORE . . . 
THE TRUTH IS . . . REQUEST DELIVERS! 



DATABASE MAINTENANCE — 

• Uses sophisticated screen formatting & data 
entry, like on IBM 3270's! 

• Generates it's own screens automatically! 

• Handles records up to 4K in length, using 
multiple screen "Pages"! 

• Automatic data compression for increased 
disk capacity 

• Uses Superkram (See below) access method 
for incredibly fast access, LESS THAN .2 
SECONDS FOR A RECORD! 

• Automatic index creation/maintenance 

• Automatic maintenance capabilities 

• "Goof-Proof" error handling 

• Input can come from VISICALC™ or 
SOURCE™ 



DATABASE SELECTION— 

• Uses screen masks to form query 

• Provides extensive search capabilities 

• Search arguments can include 
arithmetic/boolean functions, multi-field 
comparisons 

• Queries can generate input for automatic 
database maintenance 

• Queries can be stored in "Query Library" and 
executed from menu on demand 

• Any number of fields can be queried 
concurrently 

• Query output can be routed to disk, CRT 
report formatter, VISICALC" or SOURCE™ 

ONLY $225 



DATABASE REPORTING— 

• Automatic headlines 

• Automatic field editing 

• Report fields can be calculated, sub-totaled & 
cross-footed in any manner desired. 

• Optional counter breaks may be set 

• Automatic grand totals 

• Automatic statistics 

REQUIREMENTS 

Superkram (see below) and: Commodore Pet 
32K (40 or 80 col.) and 2040/4040/8050 disk OR 
Apple 1 1 48K with Applesoft or language system 
and 2 disk drives or CORVUS. 



SUPER KRAM 

Now With Multi-Key Capabilities For Apple & Pet 

Since KRAM™ was introduced in 1 979 it has fast become known as the quickest 
and most powerful access method for serious Apple and Pet users. Now, after 
hundreds of requests we have added MULTI-KEY, MULTI-INDEX, functions, 
as well as increasing processing speed. 



IBM/370 users have VSAM (Virtual Storage Access Method) to 
provide fast, flexible keyed-access to theirdata. NowSUPER KRAM 
(Keyed Random Access Method), from United Softwareof America, 
gives Apple and Pet users the same flexibility, substantially 
increasing Ihe processing power of the Apple and Pet. 

Until SUPER KRAM the only "random access" capability in the 
Apple and Pel consisted of a crude form of "relative record" 
processing. While this is usable for very simple applications, it falls 
far short of Ihe needs of today's business and analytical 
applications. Using SUPER KRAM records may be processed by 
any one of multiple "Key" values, which may consist of any kind of 
data: numbers, letters, special characters, etc. Even Apples's long- 
awaited DOS 3.3 doesn't have anything like this!! 




vith Corvus disk) 



KRAM™ 2.0 Only $99.95 
SUPER KRAM™ Only $175 



ATTENTION-EXISTING 
Send $15 with original d 



KRAM™ 2.0 Regular Features 

• Written in 6502 machine code 
Basic compatible 

• Create/Open a dataset 
■• Put record by key 

• Add & delete records by key 

• Get any record by Full/Partial key 

• Access by any key in as little as .2 sec. (.1 sec. 

• Supports multiple disks 

• Read next or previous record 

• Dynamic space allocation 

• Dynamic space reclamation 

• Dynamic index compression 

• Files never need reorganization 

• Compatible with language systems 



KRAM USERS, 

sk and ROM to United Software for improved version of Kram, 



SUPER KRAM'S™ Added Features 

• MULTIKEY SUPPORT — Allowing simultaneous access to a 
KRAM file by more than one key field. 

• HI-SPEED READ — This feature allows increased I/O speed up to 
60% faster during processing of SUPER KRAM read next, read 
previous, put and delete requests. 

• IMPROVED INDEX ARCHITECTURE — Allowing faster index 
searchers and more efficient disk space utilization. 

• INTEGRATED BASIC COMMANDS — Allowing SUPER KRAM'" 
commands to be coded in-line with Basic, providing easier usage 
of KRAM than ever before. 

• USER-SPECIFIABLE BUFFER POOL — Allowing the user to 
specify how many KRAM files are allowed open at one time; will 
support any number of KRAM files. 

• LOGICAL RECORDS {KEYS MAY BE NON-UNIQUE) — Records 
added to the KRAM files are immediately accessible by any of the 
defined keys for the file (Automatic Upgrade). 

• KRAM 2.0 files are totally compatible with SUPER KRAM 




,= UNITED 
S~ SOFTWARE 
^%OF 

750 3RD Avenue, AMERICA 

New York NY 10017 

(212) 682-0347 Telex 640055 

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



Look for the RED-WHITE-BLUE 
United Software Display at your local 
computer dealer, or send check or 
money order, plus $3.00 shipping to: 

DEALER INQUIRIES INVITED 

REQUEST & KRAM are trade marks of United Software of America 



Circle 245 on inquiry card. 



MMSFORTH VERSION 2.0: 

MORE FOR YOUR RADIO SHACK 
TRS-80 MODEL I OR MODEL III ! 

• MORE SPEED 

10-20 times faster than Level II BASIC. 

• MORE ROOM 

Very compact compiled code plus VIRTUAL 
MEMORY makes your RAM act larger. Variable 
number of block buffers. 31-char. -unique word- 
names use only 4 bytes in header! 

• MORE INSTRUCTIONS 

Add YOUR commands to its 79-STANDARD-plus 

Instruction set! 

Far more complete than most Forths: single & 

double precision, arrays, slring-handling, clock, 

more. 

• MORE EASE 

Excellent full-screen Editor, structured & 

modular programming 

Word search utility 

NOTEPADS Letter writer 

Optimized for your TRS-80 with keyboard 

repeats, upper/lower case display driver, full 

ASCII, single- & double-width graphics, etc. 

• MORE POWER 

Forth operating system 

Interpreter AND compiler 

8080 Assembler 

(Z8G Assembler also available) 

Intermix 35- to 80-track disk drives 

Model III System can read, write & run Model I 

diskettes! 

VIRTUAL I/O for video and printer, disk and tape 

(10-Megabyte hard disk available) 




FORTH 



THE PROFESSIONAL FORTH 
FOR TRS-80 

(Over 1,500 systems in use) 

Prices: 

MMSFORTH Disk System V2.0 (requires 1 disk drive & 

16K RAM, 32K lor Model III) $128.95* 

MMSFORTH Cassette System V2.0 (requires Level II 
BASIC & 16K RAM) I89.95 - 

AND MMS GIVES IT 
PROFESSIONAL SUPPORT 

Source code provided 

MMSFORTH Newsletter 

Many demo programs aboard 

MMSFORTH User Groups 

Inexpensive upgrades to latest version 

Programming staff can provide advice, modifications 

and custom programs, to fit YOUR needs. 

MMSFORTH UTILITIES DISKETTE: Includes FLOATING 
POINT MATH (L2 BASIC ROM routines plus Complex 
numbers, Rectangular-Polar coordinate conversions, 
Degrees mode, more), plus a full Forth-style Z80 ASSEM- 
BLER; plus a powerful CROSS-REFERENCER to list 
Forth words by block and line. All on one diskette 
(requires MMSFORTH V2.0, 1 drive & 32K RAM) . $39.95' 

FORTHCOM: communications package provides RS-232 
driver, dumb terminal mode, transfer of FORTH blocks, 
and host mode to operate a remote TRS-80 (requires 
MMSFORTH V2.0, 1 drive & 32K RAM) $39,95* 

THE DATAHANDLER V1.2: a very sophisticated data- 
base management system operable by non-pro- 
grammers (requires MMSFORTH V2.0, 1 drive & 32K 
RAM) $59.95* 

MMSFORTH GAMES DISKETTE: real-time graphics & 
board games w/source code. Includes BREAKFORTH, 
CRASHFORTH, FREEWAY, OTHELLO & TICTACFORTH 
(requires MMSFORTH V2.0, 1 drive & 32K RAM) . $39.95* 

Other MMSFORTH products under development 

FORTH BOOKS AVAILABLE 

MIcroFORTH PRIMER ■ comes with MMSFORTH; 

separately $15.00* 

USING FORTH - more detailed and advanced than 

above $25.00* 

INVITATION TO FORTH - detailed beginner book on 

figFORTH $17.50* 

THREADED INTERPRETIVE LANGUAGES - advanced, 
excellent analysis of MMSFORTH-like lan- 
guage, $18.95* 

PROGRAM DESIGN & CONSTRUCTION - Intro, to struc- 
tured program, good for Forth $8.95* 

FORTH -79 STANDARD MANUAL - official reference to 

79-STANDARD word set, etc $10.00* 

CALTECH FORTH MANUAL - good on Forth Internal 

structure, etc $10.00* 

FORTH SPECIAL ISSUE, BYTE Magazine (Aug. 1980) ■ 
we stock this collector's item for Forth users and begin- 
ners $4.00* 

* - ORDERING INFORMATION: Software prices include 
manuals and require signing of a single system, single- 
user license. SPECIFY for Model I or Model III! Add 
$2.00 S/H plus $1.00 per additional book; Mass. orders 
add 5% tax. Foreign orders add 20%. UPS COD, VISA & 
M/C accepted; no unpaid purchase orders, please. 

Send SASE tor tree MMSFORTH information 
Good dealers sought. 

Get MMSFORTH products from your 
computer dealer or 

MILLER MICROCOMPUTER 
SERVICES (B8) 

61 Lake Shore Road, Natlck, MA 01760 
(617)653*136 



158 August 1981 © BYTE Publications Inc 









bookProductionFacilities: after i 


Production 


Production 
Manager 




tplrjnnedCompletionTim'e 








defineProduct: 


Job 

Manager 


Create job objects 




toroductldentification 


Production 
Manager 


Schedule product 




schedule: after: 


Job 
Manager 


Schedules jobs in sequence 


/ 
\_ 




sche 


duleAfter •. 


a Job 


Schedules job as soon as 

possible after given date 




schedule : after: duration 


a Resource 


Reserves facilities for job 




t plannedSlartingTime 


a Job 


Records own start and 
completion times 


; 





Figure 4: A simple planning algorithm implemented in a Smalltalk system. 



Listing 3: Smalltalk method for the message defineProduct:. 
defineProduct: productType 

"To create a new product of given type. The corresponding Job objects are created and linked to 
their resource objects." 

| productldentification jobDescriptions jobjobList resourceObject | 
productldentification — self nextProductldentification. 
jobDescriptions — productDescriptions at: productType. 
jobList — jobDescriptions collect: 
[ description | 

job — (description class) new. 
job duration: (description duration). 

resourceObject — productionManager getResource: (description 
resourceType). 

job resource: resourceObject]. 
productDictionary at: productldentification put: jobList. 
t productldentification. 



tionary. In this dictionary, each key is 
a product identification; the cor- 
responding entry is the sequence of 
job objects for that product. 

The first line of code gets a new, 
unique identification for the new pro- 
duct. Next, the list of job descriptions 



is retrieved from the productSpecifica- 
tion collection. We then build the se- 
quence of Job objects by going 
systematically through the job 
descriptions. For each description, we 
create a new Job object of the given 
class, feed it its duration, and let it 

Circle 104 on inquiry card. > 




dotasouth announces. •• 

THE TOTAL PRINTER PACKAGE! 



n\\ 




T 



• • 



W 



With so many matrix printers on the market today, it may seem 
tough to find exactly the right one tor your application. Some 
models may offer the speed you need, others the communications 
flexibility and still others the forms handling capability. But no 
printer offers all the features you need... until now. 
The DS180 matrix printer provides the total package of perfor- 
mance features and reliability required for applications such as 
CRT slave copy, remote terminal networks and small to mid-range 
systems. Not a "hobby-grade" printer, the DS180 is a real work- 
horse designed to handle your most demanding printer require- 
ments. And pricing on the DS180 is hundreds of dollars below 
competitive units. 

High Speed Printing- Bidirectional, logic-seeking printing at 
180 cps offers throughput of over 200 Ipm on average text. A 
9-wire printhead life-tested at 650 million characters generates 
a 9x7 matrix with true lower case descenders and underlining. 

Non-volatile Format Retention -a unique programming keypad 
featuring a non-volatile memory allows the user to configure the 
DS180 for virtually any application. Top of form, horizontal and 
vertical tabs, perforation skipover, communications parameters 



and many other features may be programmed and stored from the 
keypad.When your system is powered down, the format is retained 
in memory. The DS180 even remembers the line where you stopped 
printing. There is no need to reset the top of form, margins, baud 
rate, etc.... it's all stored in the memory. If you need to recon- 
figure for another application, simply load a new format into the 
memory. 

Communications Versatility- The DS180 offers three interfaces 
including RS232, current loop and 8-bit parallel. Baud rates from 
110-9600 may be selected. A 1K buffer and X-on, X-off hand- 
shaking ensure optimum throughput. 

Forms Handling Flexibility-Adjustable tractors accommodate 
forms from 3"-15". The adjustable head can print 6-part forms 
crisply and clearly making the DS180 ideal for printing multipart 
invoices and shipping documents. Forms can be fed from the front 
or the bottom. 

If you would like more information on how the DS180's low-cost 
total printer package can fill your application, give us a call at 
Datasouth. The DS180 is available for 30-day delivery from our 
sales/service distributors throughout the U.S. 

data©®* 

computer corporation 



4740 Dwight Evans Road • Charlotte, North Carolina 28210 • 704/523-8500 



SOFTWARE 

DEUEIOPIDEIIT 

TOOLS FOR 

IRDUSTRV 

CP/M CROSS-ASSEMBLERS 

Fast, comprehensive cross-assemblers 
to run under CP/M.* Extensive pseudo- 
ops include full listing control, nested 
conditonals, mnemonic synonyms, and 
inclusion of external source files. Gen- 
erate object file, assembly listing, and 
symbol table from source code for nine 
popular microprocessor families. 

XASM05 6805 

XASM09 6809 

XASM18 1802 

XASM48 8048 

XASM51 8051 

XASM65 6502 

XASM68 6800/6801 

XASMF8 F8/3870 

XASM400 COPS400 

Assemblers .... $200.00 each 
Manual only $25.00 

8048 DEVELOPMENT PACKAGE 

Now you can use the 8048 family of 
single-chip microcomputers without 
buying expensive equipment. Develop 
8048 software with the XASM48 cross- 
assembler. Then plug our EPR-48 board 
into your S-100 system to program the 
8748 EPROM version. (Similar packages 
for 8051 and TMS9940E coming soon.) 

8048 Development Package . . . $574.00 
EPR-48 alone $449.00 



PROM EMULATOR BOARD 

Debug dedicated systems quickly. Our 
PSB-100 PROM Emulator is an S-100 
board with up to 8K of RAM. Cable with 
24-pin plug replaces PROM(s) in your 
target system for instant program test- 
ing. 



PSB-100 PROM Emulator 



$445.00 w/ 
2K RAM 




'Trademark ol Digital Research 



804 south state st. 

dover, dela ware/1 9901 /302-734-01 51 

Visa and Maslercharge accepted. We ship on 
B" single-density. Ask us about other formats. 
OEM AND DEALER INQUIRIES INVITED. 



Job Manager 
































/\ 








/ 










\ 






Class for new 
Job type A 




Class for new 
Job type B 




Class for new 
Job type C 

















Figure 5: Sub-objects in the ]ob Manager actually create the new ]ob objects. 



Object 



message 
received 



pointer . 
pointer - 



pointer to class 



communication 
channels to 
other objects 
Class 



-dictionary 



method 

method 

-method 

method 



Figure 6: All objects contain a pointer to a Class object that contains their message dic- 
tionary and methods. 



any Object 



any Object 



a Class object 



> 



any Object 



a Superclass object 



any Object 



a Class object 



any Object 



Figure 7: The superclass-subclass chains of pointers. The user does not meet them 
unless he wants to become a real Smalltalk expert. 



connect itself to its Resource object. 
From figure 3, we see that there is no 
direct connection between the Job 
Manager object and the resources. 
We therefore have to go via the Pro- 
duction Manager object to get the 
pointer to the Resource object that we 
give to the new Job object. 



We finally insert the new list of 
jobs into the productDictionary in the 
Production Manager object and 
return the product identification. 

The Job Manager is built so that 
Job objects may belong to several dif- 
ferent classes. The different Job ob- 
jects created would all understand the 



160 August 1981 © BYTE Publications Inc 



Circle 206 on inquiry card. 



The One Printer Solution 
for the Two Printer Problem. 




HIGH SPEED 
DATA PROCESSING 

The new Dual-Mode 200 brings speed and un- 
compromising print quality to business and pro-' 
fessional applications. 

Financial statements, inventory reports, la- 
bels and more are printed at data processing 
speeds from 165 cps to 250 cps. 

Fully adjustable tractors and a friction feed 
platen provide precise forms handling for pin- 
feed and single sheet paper. 

Complete "Dot Control" graphics is standard 
with resolution to 120 x 144 dots per inch. 

Interfacing is easy with both E.I. A. RS-232C 
serial and an ASCII parallel port. 



LETTER QUALITY 
WORD PROCESSING 

The Dual-Mode 200 also features letter per- 
fect print you will be proud to use for business 
letters and reports. Letter Mode speeds range 
from 42 cps to 60 cps. 

The standard Titan 10 pitch font is comple- 
mented by an array of optional fonts including 
Elite 12 pitch, italics, proportionally spaced, 
OCR-A, scientific and foreign character sets. 

Up to 12 font selections may be stored in the 
printer and interchanged while printing. 

The Dual-Mode 200 accepts standard daisy- 
wheel print commands for word processing sys- 
tem compatibility. 

It's the perfect solution for the two printer 
problem. 



The Dual-Mode 200 Printer 
for the one printer office. 



Call or write today for complete specifications 

2301 Townsgate Road, Westlake Village, CA 91361 , (805) 496-1990 



a subsidiary of 



Corr^oraoon 



malibu 

Electronics Corporation 



DOTS DO IT BETTER™ 



Thousands of SoftwareHows' u users agree — SoftwareHows 
products set a new standard of excellence for solution-oriented 
software. Instant installation for your system, powerful "word 
processing-like" editing facilities and consistentoperating 
features make this SolutionWare'" the only serious choice for 
your needs. 



Payroll 



Why settle for a piece 
when you can have 
the whole pie?! 



At last! An integrated system of business 
software ideal for you! 

How often have you purchased software 
on ly to be disappointed by its features or 
frustrated by the inability of the different 
programs to work together? Are you tired 
of entering the same data into your Pur- 
chase Ordering System when a part is or- 
dered , into Inventory when it arrives, Payables 
when it's invoiced and General Ledger when 
it's paid for? Can you easily link your Account- 
ing Data Base with your word processing software 
to create personalized letters, reports, notices and 
announcements?* Does your Point of Sale. Order 
Entry software also save a keyed file which may later 
be Sorted for over 60 customer characteristics and used 
to generate personalized sales literature? 
If you don't like your answers to these questions, your accounting 
software is costing you money! 

The Data Base Integration '"System from SoftwareHows " does all 
this and much morel This newest software product offers the 
perfect blend of performance, price and flexibility. Every single 
transaction feeds your master records. This common data base 
approach organizes all your business information so that every 
module is fully interactive. The result of this vast and easy to use 
data base is unique. You'll be amazed at how much better you'll 
understand the operation and cash flow of your business! And 
better understanding means better planning — and higher profits 
for you! 

The Data Base Integration System is built around the basic four 
accounting tools: General Ledger provides those all important 
balance sheets and income statements, Accounts Receivable and 
Payable take care of invoice control in a jiffy, while Payroll with 
Cost Accounting does your payroll and provides cost effective- 
ness data. All packages fully interact and are self-checking. The 
amazing Order-Right '"order entry system and MicroDaSys In- 
ventory, give you one of the most complete sales management 
and material requirements systems available. Output is processed 
with lightning speed and meticulous accuracy: invoices, shipping 
labels, charge slips and COD tags. Orders automatically interact 
with Inventory and Receivables. If your stock is too low, Inventory 
recommends the best source of supply and approximate prices to 
pay. Upon authorization, a purchase order is generated. The 
receiving department verifies receipt and the invoice is trans- 
ferred to Accounts Payable. 

The Data Base Integration Business System is $2500. And that's 
for all seven packages! Now there's a deal too good to pass up! 
It includes over 1500 pages of user documentation, and a supply 
of computer forms. With our unique DBI Installation Program, 
getting the complete package up and running on your system 
is a breeze. Best of all, complete CBASIC source code is included 
with every CBASIC package. Current disk formats include 8" soft- 
sectored, 5" hard- and soft-sectored. 

Call or Write for the SolutionWare " to meet 
your software needs — today! 




□ 
□ 



Ask your dealer why our 

business software is the best! 

A Complete 200 page Overview of all 
SoftwareHows SolutionWare is yours 
for just $75, refundable with purchase. 






^ 



a&f 



,TM 



a division of MicroDaSys 



PO Box 36275 Los Angeles, CA 90036 
(213)731-0876 TWX310-321-2378 



same message protocols, but they 
would differ in their implementation. 
For example, a job might be: wait for 
24 hours while a resin glue is curing. 
This does not need any resources, and 
the planning of such a job would be 
very simple — wait 24 hours. Another 
kind of job, such as pouring concrete, 
should not span a weekend, since 
joining old and new concrete could 
give weak spots in the product. 

As is the case with Job objects, we 
often find that several objects share 
the same message protocols and pro- 
cess the messages with the same 
methods. Their only difference is that 
they appear in different places in the 
total system and that their instance 

The Smalltalk user 

should be able to 

"open up" the 

application object on 

the screen to see Its 

component parts and 

to find out how they 

work together. 

variables point to different objects 
(their states are different). Such ob- 
jects are created by the same class ob- 
ject and are said to belong to the same 
class. 

It would be very inefficient if each 
object of a class stored a replica of the 
message dictionary and all methods, 
and it would be extremely tiresome if 
we actually had to program each ob- 
ject by itself. We, therefore, use the 
concept of layering to let each and 
every object enlist the services of its 
class object in order to decode an in- 
coming message and to select the pro- 
per method to process it. This 
mechanism is illustrated in figure 6. 
As in so many other parts of 
Smalltalk, we find a recursive argu- 
ment. 

Many classes are very similar; they 
differ only in the handling of a few 
messages. The different kinds of Job 
objects are a case in point. It seems 
reasonable to let a class object enlist 
the services of a superclass object 
whenever it is called upon to execute 
methods it shares with other classes. 




Program to Recover 
"Crashed" Discettes AUTOMATICALLY! 

Maybe it was a lightning storm, static from the rug, or just 
too late at night to be working. Whatever the cause, when a 
discette "crashes" and valuable data or programs are 
destroyed, the loss is enormous, both in time and money. 

DISK DOCTOR is a program which automatically recovers 
bad discettes. Best of all DISK DOCTOR does not require any 
knowledge of CP/M file structure! If you can operate CP/M, 
then you can use DISK DOCTOR. The entire system is menu 
driven with key information displayed. 

DISK DOCTOR is comprised of five "wards", each capable of 
performing a specific discette recovery operation. 

• Ward A: Verifies discettes and locks out bad sectors without touching the 

good files that remain. 

• Ward B: Copies whatever can be read from a "crashed" file and places it 

Into a good file under user control. 

• Ward C: Copies discettes without stopping for bad sectors. Bad sectors are 

replaced by spaces. 

• Ward D: "Un-erases" files. That is, Ward D will recover accidentally erased 

disk files. 

• Ward E: Displays directory of recoverable erased files. 

DISK DOCTOR will pay for itself the first time It is used. 

Best of all, DISK DOCTOR operates almost complete automatically. The 
small amount of user interaction is explained in the manual as well as 
prompted by DISK DOCTOR. 



Requires: 48K CP/M, two drives 
needed for complete operation. 

DISK DOCTOR: $100.00 

Manual Alone: $ 10.00 

CP/M Formats: 8" soft sectored, 5" 
Northstar, 5" Micropolis Mod II, 
Vector MZ, Superbrain DD/QD, Apple II + 

SuperScft 

First in Software Technology 



All Orders and General Information: 
SUPERSOFT ASSOCIATES 
P.O. BOX 1628 
CHAMPAIGN, IL 61820 
(217)359-2112 

Technical Hot Line: (217) 359-2691 
(answered only when technician is 
available) 



CP/M REGISTERED TRADEMARK DIGTAL RESEARCH 



Circle 351 on inquiry card. 



August 1981 © BYTE Publications Inc 163 



G®00gQQDu0®[7 
G®DDQ[°)DaO®[?g mail order 

This is just a sample of our everyday low prices. 



APPLE II PLUS 



16K 

for only 



$1025 




48K 

for only 



$1129 



Apple Disk II Drive w/controller 

Disk II Drive, Add-On 

5ilentype Printer 

Hayes Micromodem II 

Epson MX-80 w/apple card . . 



$519 
$439 
$349 
$299 
$599 



Videx 
Videoterm 

$269 



FREE! 

1982 Catalog 

In order to keep our phone lines clear for your orders, 
please mail this coupon to receive a free catalog 

rWIE 



ADDRE55 - 



CITY. 



.5TATE^ 



ZIP 



Microsoft 

Z-80 
Softcard 

$269 



TOLL FREE ORDER LINE 800*85 4—6654 

in California or outside 



the continental U.S. 



(714) 698-8088 



5ee pages 474-475 for more discount prices and order information. 



164 BYTE August 1981 



Circle 89 on inquiry card. 



INC A 





OF 





We're in the business of saving you money. 



Let's Face It. When you order anything 
through the mails you never really know who 
you are dealing with. We at Consumer Comput- 
ers realize this every time we talk to you or re- 
ceive a letter from you. We do our darndest to 
see that you not only get the information and 
help you need to intelligently place your order, 
but also that the price we give you is the best 
you can get anywhere. 

We've been around. Consumer Computers 
has been actively serving people's computer 
needs in the 5an Diego area for 5 years now. 
We will still be here tomorrow, and the next day, 
too. 5o when you deal with Consumer Comput- 



ers, you can rest assured that you're dealing 
with people that are thoroughly familiar with the 
business of selling computers. We pledge to 
see that any order placed with us is handled 
with the utmost efficiency and care, from the 
time the order is placed until it arrives at your 
doorstep. And if you have a problem, we think 
you will find that the expertise of our Service De- 
partment Is unmatched for the quality of their 
work, and the speed that they have your equip- 
ment back into your hands where it belongs. 



That's our promise. 
Computers. 



That's Consumer 



G®LjQ§DaODQ®[r 

oiinnii'o 




mail order 



5ee our advertisement on previous page 



Circle 89 on Inquiry card. 



BYTE August 1981 165 



Many classes will then share the same 
superclass; we get a tree-shaped class 
structure as shown in figure 7. Note 
that the purpose of this structure is 
convenience in programming and ef- 
ficiency in implementation; it belongs 
on the lowest levels of the system 
hierarchy and is not part of the struc- 
ture of the application system. 

Future Experiments 

When personal computing becomes 
sufficiently entertaining and in- 
teresting to become a widespread 



tool, the new user of a Smalltalk 
system is likely to begin by using its 
ready-made application systems for 
writing and illustrating documents, 
for designing aircraft wings, for doing 
homework, for searching through old 
court decisions, for composing music, 
or whatever. After a while, he may 
become curious as to how his system 
works. He should then be able to 
"open up" the application object on 
the screen to see its component parts 
and to find out how they work 
together. He could, for example, see 



And Tfiw, H6*wf6t tyu 

VccU't *%*vc A &UUCC 

Now you can provide your customers with another of those 

little extras that makes them feel good about the sale 




*f 



s»" 



... a complete packet of the most attractive 
stock forms on the market. From the people whose only business is 
you and your customer. 

• OVER 200 STOCK FORMS TO CHOOSE FROM 

• 7-WORK1NG DAY GUARANTEED RUSH SHIPMENT 

• PERSONALIZED SERVICE AND QUALITY YOU WILL 
LEARN TO COUNT ON 




CALL NOW TOLL FREE 
For free packets for the following systems: S • 



■ Systems Plus • TCS • Structured Systems Group 

• Vector • Peachtree • Radio Shack • Osborne • 

• Alpha Micro • Durango ■ Warex • Cado • 

VECTOR • BPI .'Iliiitejy/llaejilro 



& Many More 



NATIONWIDE 
800-854-2750 



Ch©CkS IN CALIFORNIA 

TO-GO 800-552-8817 



^U e/l ^** T &t4fo*twi4- 76a /i&en*taicvc 76&t "DeAviue 




something like figure 1 together with 
his usual user interface. By exercising 
the application commands, the com- 
puting process could be illustrated on 
the system diagram. Using Smalltalk 
to document itself in this manner 
should make it possible to make some 
novel and extremely powerful system 
description tools. 

The next thing the user might want 
to do is to build new systems similar 
to the one he has been using. A kit of 
graphical building blocks would let 
the user compose a new system by 
editing the system diagram on the 
screen. While the Trip system (as 
described in reference 2) is not a pro- 
per kit, it could be a good source of 
ideas to the experimenter on building 
such systems. 

Finally, the expert user would want 
to make his own kits. Even here, it is 
important that he sees only what he 
needs and that all unimportant details 
are suppressed. Since what is impor- 
tant in one context might be unimpor- 
tant in another, and vice versa, the 
concepts of filters (see reference 1) 
will be an essential ingredient for the 
experimenter when he develops tools 
for these expert users. 

Much experimenting needs to be 
done before we learn how to make 
systems that are self-documenting on 
any level and that provide a smooth 
and stumble-free transition from one 
level to the next. It is hoped that the 
availability of Smalltalk will lead to 
great activity in this field, to the 
benefit of all future computer users. ■ 



References 

1. Goldberg, Adele and David Robson. "A 
Metaphor for User Interface Design." Pro- 
ceedings of the University of Hawaii 
Systems Science Symposium, January 
1979, Honolulu. 

2. Gould, Laura and William Finzer. "A Study 
of TRIP: A Computer System for 
Animating Time-Rate-Distance 
Problems." Proceedings of the IFIP World 
Conference on Computers in Education 
(WCCE-81), Lausanne, Switzerland, July 
1981. 

3. Ingalls, Daniel H H. "The Smalltalk-76 Pro- 
gramming System. Design and Implemen- 
tation." Conference Record of the Fifth 
Annual ACM Symposium on Principles of 
Programming Languages, Tucson, 
Arizona, January 1978. 



166 August 1981 © BYTE Publications Inc 



Circle 52 on inquiry card. 




TYPE-W-TAL.K IS T.N.T. 

The exciting text-to-speech synthesizer 
that has every computer talking. 



• Unlimited vocabulary 

• Built-in text-to-speech 
algorithm 

• 70 to 100 blts-per-second 
speech synthesiser 

Type-'N-Talk] u an important technological 
advance from Votrax, enables your com- 
puter to talk to you simply and clearly — 
with an unlimited vocabulary. You can 
enjoy the many features of Type-'N-Talk," 
the new text-to-speech synthesizer, for 
just $375.00. 

You operate Type-'N-Talk" by simply typ- 
ing English text and a talk command. 
Your typewritten words are automatically 
translated into electronic speech by the 
system's microprocessor-based text-to- 
speech algorithm. 

The endless uses of 
speech synthesis. 

Type-'N-Talk'"adds a whole new world of 
speaking roles to your computer. You can 
program verbal reminders to prompt you 
through a complex routine and make your 
computer announce events. In teaching, 
the computer with Type-'N-Talk'"can 
actually tell students when they're right 
or wrong — even praise a correct answer. 
And of course, Type-'N-Talk'"is great fun 
for computer games. Your games come to 
life with spoken threats of danger, re- 
minders, and praise. Now all computers 
can speak. Make yours one of the first. 

Text-to-speech is easy. 

English text is automatically translated 
into electronically synthesized speech 
with Type-'N-Talk.'" ASCII code from 
your computer's keyboard is fed to 
Type-'N-Talk' u through an RS 232C inter- 
face to generate synthesized speech, 
lust enter English text and hear the verbal 



response (electronic speech) through your 
audio loud speaker. For example: simply 
type the ASCII characters representing 
"h-e-1-l-o" to generate the spoken 
word "hello." 

TYPE-'N-TALK "has its 
own memory. 

Type-'N-Talk' K 'has its own built-in micro- 
processor and a 750 character buffer to hold 
the words you've typed. Even the smallest 
computer can execute programs and speak 
simultaneously. Type-'N-Talk , "doesn't have 
to use your host computer's memory, or tie it 
up with time-consuming text translation. 

Data switching capability 
allows for ONLINE usage. 

Place Type-'N-Talk "between a computer 
or modem and a terminal. Type-'N-Talk" 
can speak all data sent to the terminal 
while online with a computer. Information 
randomly accessed from a data base can 
be verbalized. Using the Type-'N-Talk'" 
data switching capability, the unit can be 
"de-selected" while data is sent to the ter- 
minal and vice-versa — permitting speech 
and visual data to be independently sent 
on a single data channel. 

Selectable features make 
interfacing versatile. 

Type-'N-Talk'"can be interfaced in several 
ways using special control characters. 
Connect it directly to a computer's serial 
interface. Then a terminal, line printer, or 
additional Type-'N-Talk'"units can be 
connected to the first Type-'N-Talk)" 
eliminating the need for additional 
RS-232C ports on your computer. 
Using unit assignment codes, multiple 
Type-'N-Talk '"units can be daisy-chained. 
Unit addressing codes allow independent 
control of Type-'N-Talk'"units and 
your printer. 



Look what you get for $375.00. 
TYPE-'N-TALK' comes with: 

• Text-to-speech algorithm 

• A one-watt audio amplifier 

• SC-01 speech synthesizer chip (data 
rate: 70 to 100 bits per second) 

• 750 character buffer 

• Data switching capability 

• Selectable data modes for versatile 
interfacing 

• Baud rate (75-9600) 

• Data echo of ASCII characters 

• Phoneme access modes 

• RS 232C interface 

• Complete programming and installation 
instructions 

The Votrax Type-'N-Talk" is one of the 
easiest-to-program speech synthesizers on 
the market. It uses the least amount of 
memory and it gives you the most flexible 
vocabulary available anywhere. 

Order now. Toll free. 



| Call the toll-free number below to 
I order or request additional infor- 
mation. MasterCard or Visa 
I accepted. Charge to your credit 
I card or send a check for $375.00 

plus $4.00 delivery. Add 4% sales 
I tax in Michigan. 

1-800-521-1350. 

Dealer Inquiries Invited 



Circle 398 on Inquiry card. 



Distributed by Vodex 

A Votrax Company — Dept. RT 

500 Stephenson Highway, Troy, MI 48084 

(313) 588-0341 

Type-'N-Talk rw is covered by a limited warranty. 
Write Votrax for a free copy. 



The Smalltalk Graphics Kernel 



Daniel H H Ingalls 

Learning Research Group 

Xerox Palo Alto Research Center 

3333 Coyote Hill Rd 

Palo Alto CA 94304 



Graphics are essential to the 
quality of an interactive program- 
ming system and to the interactive 
applications that go along with such a 
system. Qualitatively, people think 
with images, and any system that is 
incapable of manipulating images is 
incapable of augmenting such 
thought. Quantitatively, a person can 
visually absorb information equiva- 
lent to millions of characters a se- 
cond, while the normal rate for 
reading text is less than 100 characters 
a second. 

For the graphical interaction cycle 
to be complete, a computer system 
must provide a channel for input in 
the visual domain as well. While the 
projection of images from the realm 
of thought into the space of electronic 
information seems an impossible 
task, a well-designed pointing device 
can effectively harness the computer's 
graphical output capability to express 
graphical input from the user. Given 
such a pointing device, the process of 
selecting from graphical objects, such 
as text displayed on the screen, is 
natural and rapid. By tracking the 
pointer with a program that simulates 
a pen or paintbrush, the visual input 
channel can be extended to include 
line drawing and freehand sketches. 

The purpose of graphics in the 
Smalltalk system is to support the 
reactive principle: 

Any object accessible to the user 
should be able to present itself in a 
meaningful way for observation and 
manipulation. 

Meaningful presentation of any ob- 
ject in the system demands maximum 
control over the display medium, and 



many technologies fall short in this 
respect. One approach that provides 
the necessary flexibility is to allow the 
brightness of every discernible point 
in the displayed image to be in- 
dependently controlled. The simplest 
implementation of this approach is a 
contiguous block of storage in which 
the setting of each bit (1 or 0) is 
mapped into dark or light illumina- 






■ *w *¥'^»'*; . 



■ 




*_ . I 






hzl 




XI h'OK ... 



Photo 1: An example of a Smalltalk-80 
video display. Note the multiple win- 
dows, the combinations of text and 
graphics, and the pointer in the window 
marked "UserView workspace. " 

tion of the corresponding picture ele- 
ment, or pixel, when displaying or 
combining with other images. The 
block of storage is thus referred to as 
a bitmap, and this type of display is 
called a bitmap display. The simplest 
form of bitmap allows only two 
brightness levels, white and black. 
The Smalltalk-80 graphics system is 
built around this model. 

Photo 1 shows a typical view of the 
Smalltalk-80 system, and it illustrates 
the wide range of graphical idiom 



implied by the reactive principle. Rec- 
tangular areas of arbitrary size are 
filled with white, black, and various 
halftone patterns. Text, in various 
typefaces, is placed on the screen 
from stored images of the individual 
characters. Halftone shades are 
"brushed" by the user to create 
freehand paintings. Moreover, 
although not shown on the printed 
page, images on the display may be 
moved or sequenced in time to pro- 
vide animation. 

Graphical Storage — Forms 

Simple images are represented by 
instances of class Form. A Form has 
height and width and a bitmap that 
indicates the white and black regions 
of the particular image being 
represented. Consider, for example, 
the arrow-shaped Form that appears 
in the lower-right window of the 
screen image in photo 1. The internal 
representation of this Form is 
depicted in figure 1. Its height is 16, 
its width is 8, and its appearance is 
described by the pattern of ones and 
zeros (shown as light and dark 
squares) in its bitmap. The height and 
width of the Form serve to impose the 





5 

10 



5 

J L-L 



Figure 1: A simple Form representing the 
cursor in photo 1. 



168 August 1981 © BYTE Publications Inc 




11 12 13 14 



The new Memorex® M Formula magnetic coating 
has been widely accepted by major OEM drive manufac- 
turers. Now M Formula is redefining performance and 
reliability standards for removable rigid disc products on 
all existing and new generation drives as well. M Formula, 
containing our exclusive Hi/Oxide™ formulation, 
offers the highest signal to noise ratio — 
up to 30 dB at 10,000 flux changes per 
inch — of any rigid media in the industry. 
With higher performance margins and 
protection against random errors, you're 
assured greater data integrity. 

Our revolutionary Hi/Oxide coating 
provides higher coercivity, which allows 




stronger and more consistent magnetic properties. Hi/Oxide 
coating also forms a uniformly smooth, hard surface that 
sets new standards for durability. 

It all adds up to virtually trouble-free data handling. 

But most importantly, the new M Formula helps ensure the 

highest levels of data integrity in disc packs or cartridges. 

To help you compare and evaluate 

rigid media, send for a free copy of the 

booklet, "Critical Factors in Purchasing 

Rigid Media'.' Write to Debi Garringer, 

Memorex Rigid Media and Components 

Division, 1 1 25 Memorex Drive, Santa Clara, 

CA 95052 or call (800) 538-8028; in 

California (408) 987-2064. 



MEMOREX 

For twenty years, the expression of excellence. 



1981 MEMOREX CORPORATION MEMOREX IS A REGISTERED TRADEMARK OF MEMOREX CORPORATION. 



Circle 214 on Inquiry card. 



fc 




RAM FOR ATARI 



Get the most from your ATARI 400. Memory 

expansion to a full 48K is now possible with our 

48K board. Expand your ATARI 800 with our 32K 

board. 

Available now - see your local 

computer dealer. 

48K Board 32K Board 
$299. 00 $199. 



00 



77/ tec 



3387 Del Rosa Avenue North Suite No. m 

San Bernardino, CA 92404 Telephone (714) 864-5269 

atari is the trademark of atari, inc. 
Circle 171 on Inquiry card. 






10 20 30 40 50 



destForm 



destX = 67 
destY = 10 



width = 7 
height = 13 



sourceForm: 

sourceX = 248 10 
sourceY = 




Figure 2: Copying a character of text from a source Form (bottom) to a destination Form (top). 



appropriate two-dimensional order- 
ing on the otherwise unstructured 
data in the bitmap. We will return to 
the representation of Forms in more 
detail later in this article. 

A complex image can be rep- 
resented in either of two ways: by a 
very large Form, or by a structure 
that includes many Forms and rules 
for combining and repeating them in 



order to produce the desired image. 
The freehand drawing in the center of 
photo 1 is an example of the former, 
and the text below it is an example of 
the latter. 

The large unstructured Form has an 
additional use of great importance: it 
can be presented to the display hard- 
ware as a buffer in memory of the 
actual data to be shown on the 



display terminal. We refer to the 
Form which is so used as the 
displayForm. Since the interface to the 
hardware is through a Form, there is 
no difference between combining 
images internally and displaying 
them on the screen. Animation can be 
done simply in this manner: one Form 
serves as the displayForm while the 
next image to be displayed is 




An Acoustic 
Coupler for $125. 



The Omnitec Model 715 (originate only) has the necessary 

features, needed to expand any business or home 

computer systems capability: 0-450 baud data rate, 

RS232 compatibility and carrier detect at a low c^^ 

factory-direct price of $125. Or, select the Model 770 < ^^w 

at $179.00 for originate or answer communications 

Both models carry a one year warranty. 



tfjjjN OMNITEC DATA ^/ 

V||liy 2405 South 20th Street • Phoenix. Arizona 05034 f 



PRICES INCLUDE SHIPPING & 
WHEN PRE-PAID 



"3 + c? 




Lmt-J 



Circle 280 on Inquiry card. 



August 1981 © BYTE Publications Inc 171 



Circle 319 on inquiry card. 



You can save buying whole- 
sale through our firm. As your 
agent we will buy computers 
on the wholesale market for 
you. Our fee is one fourth of 
what we save you off list price. 
Access to over 500 manufac- 
turers. Minimum fee of $75 per 
V order. Call for other prices. j 



COMPUTERS 

Alpha Micro 10MEG 

Altos 8000-10 

Altos 8000-1 5 

Archives 64K QD 

Compustar Model 30 

Cromemco System 3 

Dynabyte64K2MEG 

Calif. Comp. B4K 1 MEG 

Ithaca System 2A 

Televideo Sys. I 

DISK DRIVES 

Corvus 5 MEG Hard 

Con/us 20 MEG Hard 

Morrow 26 MEG Hard 

CRTS 

ADDS View Point 

DEC VT 100 

Hazeltine Esprit 

IBM 3101 Model 10 

Lear Siegler ADM 3A + 

Leedex 13 "Color Monitor 

NEC 12" Monitor 

Televideo TVI 910 

Televideo 950 

Visual 200 

PRINTERS 

Anadex9501 

Centronics 737 

Diablo 630 R/0 

Epson MX80 

IDS Paper Tiger 460 G 

IDS 5B0/g 

NEC 5510 w/Tractor 

C. Itoh 25 cps 

Tl 810 Basic 



Whse. 


Fee | 


511,204 $1,243 


5,695 


701 


4.014 


494 


4.450 


512 


3.595 


225 


5.357 


659 


5.929 


691 


3,987 


427 


2.520 


270 


2.600 


349 


2.588 


290 


4.450 


500 


3.596 


349 


505 


36 


1.305 


130 


565 


45 


1.140 


60 


710 


58 


350 


25 


190 


18 


545 


39 


835 


90 


765 


107 


1,150 


125 


650 


86 


1.795 


200 


410 


58 


1.020 


94 


1.220 


119 


2.360 


164 


1,200 


175 


1,355 


135 


249 


63 


200 


" J 




prepared in a second Form. As each 
image is completed, the two Forms 
exchange roles, causing the new 
image to be displayed and making the 
Form with the old image available for 
building the next image in sequence. 

Graphical Manipulation — BitBlt 

To support a wide range of 
graphical presentation, we have 
specified a kernel operation on Forms 
that we call BitBlt. All text and 
graphic objects in Smalltalk are 
displayed and modified using this 
single graphical primitive. The author 
wrote the original design in October 
1975 with the advice and support of 
Diana Merry. After five years' ex- 
perience, we have felt the need for 
only minor changes, and these im- 
provements are largely due to Bob 
Flegal and Bill Bowman. The re- 
mainder of this article describes the 
current BitBlt primitive in detail— its 
specification, examples of its use, 
and, finally, the details of its im- 
plementation. 

One of the first computers on 
which a Smalltalk system was im- 
plemented had an instruction called 
BLT for block transfer of 16-bit 
words. The name BitBlt derives from 
the generalization of data transfer to 
arbitrary bit locations, or pixels. 
BitBlt is intentionally a very general 
operation, although most applica- 
tions of it are graphically simple, such 
as "move this rectangle of pixels from 
here to there." 

A specific application of BitBlt is 
governed by a list of parameters that 
includes: 

• destForm — a Form into which pixels 
will be stored by BitBlt 

• sourceForm — a Form from which 
pixels may be copied 

• halftoneForm — a Form containing a 
spatial halftone pattern 

• combinationRule— an Integer speci- 
fying the rule for combining cor- 
responding pixels of the sourceForm 
and destForm 

• destX, destY, width, height- 
Integers specifying the rectangular 
subregion to be filled in the destina- 
tion 

• clipX, clipY, clipWidth, clipHeight — 
Integers specifying a rectangular 



boundary that further restricts the af- 
fected region of the destination 
• sourceX, sourceY — Integers specify- 
ing the location (top left) of the 
subregion to be copied from the 
source 

In the remainder of this section, we 
examine the effect of each of these 
parameters in greater detail. 

Source and Destination Forms 

Figure 2 illustrates the process of 
copying a character of text into a 
region on the display. This operation 
will serve to illustrate most of the 
characteristics of BitBlt. The copy 
operation involves two Forms, a 
source and a destination. The source 
in this example is a font containing a 
set of character glyphs depicted in 
some uniform style and scale and 
packed together horizontally. Pixels 
are copied out of the source (the font) 
and stored into the destination (the 
display). The width and height of the 
transfer correspond to the character 
size. The source x and y coordinates 
give the character's location in the 
font, and the destination coordinates 
specify the position on the display 
where its copy will appear. 

Clipping Rectangle 

In its specification, BitBlt includes a 
rectangle that limits the region of the 
destination that can be affected by its 
operation, independent of the other 
destination parameters. We call this 
rectangle the clipping rectangle. 
Often it is desirable to display a par- 
tial window onto larger scenes, and 
the clipping rectangle ensures that all 
picture elements fall inside the 
bounds of the window. By its inclu- 
sion in the BitBlt primitive, the clip- 
ping function can be done efficiently 
and in one place, rather than being 
replicated in all application pro- 
grams. Figure 3 illustrates the result 
of imposing a clipping rectangle on 
the example of figure 2. Pixels that 
would have been placed outside the 
clipping rectangle (the left edge of the 
"N" and half of the word "the") have 
not been transferred. If other 
characters had fallen above or below 
this rectangle, they would have been 
clipped similarly. 



172 August 1981 © BYTE Publications Inc 



Circle 369 on inquiry card. 






Uni versatility/ 
It's as easy as 1. 2. 3. 




'Universatility' can be found in three versions 
of Synertek Systems' SYM single board computer 
— the versatile, universal evaluation board. 

Over 20,000 SYM-1 boards have been used for 
learning about and evaluating 6502 microprocessors 
for specific applications. OEM SYM boards are used in 
hundreds of products. 

Now Synertek Systems presents the new SYM-1 /68 
for 6802 microprocessors, and the SYM-1 /69 for 6809 
microprocessors. These boards are designed to reliably 
perform the same functions as the SYM-1 board for 
these popular microprocessors. Each SYM board is 
complete and ready-to-use with its own version of 
the 4K byte ROM SUPERMON monitor firmware. 



Modification kits are also available to quickly and 
easily convert existing SYM-1 boards to SYM-1 /68 or 
SYM-1 /69 microcomputers. 

Build on your microprocessor knowledge with 
the 'universatility' of SYM microcomputer boards from 
Synertek Systems. 

Every SYM-1, SYM-1 /68, and SYM-1 /69 single 
board computer features: 

• 28 double-function keypad with audio response 

• 4K byte ROM resident SUPERMON with over 30 
standard monitor functions and expandable for 
individual requirements 

• Up to 24K bytes of available program memory 

• Expansion to 4K bytes of on-board static RAM 

• Expansion to 71 Input/Output lines 

• Single +5V power supply required 

• Standard interfaces for audio cassette with remote 
control, 185 bytes/second cassette format, TTY and 
RS-232-C, system expansion bus, four I/O buffers, 
and oscilloscope single-line display 



Synertek 
Systems 



RO. Box 552 Santa Clara, CA 95052 
Telephone: (408) 988-5689 
TWX: 910-338-0135 

Dealer inquiries invited. 



destForm: 



clipX = 6 
clipY = 4 
clipWidth = 58 
clipHeight = 23 



10 20 30 40 50 



H 



10 



20 



30 



40 —\ 



60 70 



80 



111 




■■I 



I! 



Figure 3: An example of using a clipping window on the illustration in figure 2. 



Halftone Form 

It is often desirable to fill areas with 
a regular pattern that gives the effect 
of gray shading or texture. To this 
end, BitBlt provides for reference to a 
third Form (halftoneForm) containing 
the desired pattern. This Form is 



restricted to a height and width of 16. 
When halftoning is specified, this pat- 
tern is effectively repeated every 16 
units horizontally and vertically over 
the entire destination. There are four 
"modes" of supplying pixels from the 
source and halftone controlled by 



eliding (supplying nil for) sourceForm 
or halftoneForm: 

• Mode — No source, no halftone 
(supplies solid black) 

• Mode 1 — Halftone only (supplies 
halftone pattern) 



Peachtree Software™ Announces- 



TM 

SALES TRACKER 



k3olved! The case of ineffective business 
control. Now Sales Tracker microcompu- 
ter software gives business managers 
unprecedented control over lifestream 
activities. 

You get ANSI COBOL, floppy and hard 
disk support, and a modular format that 
lets you install packages as you need them. 
And look at these outstanding features. 
Accounts Receivable: Multiple com- 
panies on one disk. Nine selectable re- 
ports including G/L sales and receivables, 
customer classes, and sales tax routines. 
Sales Analysis: Reports by salesman 
(with commission), product class, inventory item 
tomer, item by customer, and customer by item. 




Order Processing: Handles multiple 
shipping locations, automatic discount- 
ing, partial shipments, back orders, 
demand invoicing, full order status and 
maintenance. 

Inventory: Multiple companies on one 
disk; reports by class, warehouse, price 
level and quantity break; automatic 
price updating; maintains items option- 
ally by case, lot or serial number. 

Values to why Sales Tracker is so easy to 
use? Excellent documentation, sample 
data files, conversant menu-driven pro- 
grams, and standardized formats. For information call 
800-835-2245 ext. 35 (Kansas, 800-362-2421, ext. 35) 




PEACHTREE SOFTWARE, 3 Corporate- Square, Suite 700, Atlanta, Georgia 30329 (404) 325-8533 
Telex II: 810-751-0273 PEACHTREE ATI.. 



174 August 1981 © BYTE Publications Inc 



Peachtree Software and Sales Tracker are trademarks of Peachtree Software Incorporated. 

Circle 304 on Inquiry card. 



Circle 267 on Inquiry card. 



Easy on your eyes 

and your budget, 



■ ■ 



'•/.*. 



VK 



■" ** CMOS! FK t ,_ ' 

d « dkm« V UIEW,HC 

lH0O«Tti/ P "** 



IkMjAfcfr 




This high quality professional computer monitor 
provides sharp, clear display of up to 80 characters by 
25 lines of text, making it ideal for word processing as 
well as standard business applications. 

Lightweight industrial grade construction gives 
maximum portability with reliable operation. 

Color monitor also available for Apple,' Atari B and 
other popular computers. See your authorized NEC 
America Dealer. 



80 character display makes it ideal for word 
processing and scientific applications. 



SEC 



■■ -vv r Cc nputei 

Of AFJ 



NEC America, Inc. 

1401 Estes Avenue 

Elk Grove Village, IL 60007 



modeO 
all ones 



model 
halftone only 



mode 2 
source only 



Figure 4: BitBlt's four possible source modes. 



mode 3 
source AND halftone 



• Mode 2 — Source only (supplies 
source pixels) 

• Mode 3— Source AND halftone 
(supplies source bits masked by 
halftone pattern) 

Figure 4 illustrates the effect of these 
four modes with the same source and 



Source Before S 



destination and a regular gray 
halftone. 

Combination Rule 

The examples above have all stored 
their results directly into the destina- 
tion. There are actually many pos- 
sible rules for combining each source 

D Destination Before 



D' Destination After 

Figure 5: A BitBlt combination diagram. This diagram, when filled in, specifies the ef- 
fects of a given combination (or "rule") on all combinations of dark and light source and 
destination cells. Each combination is given a number equal to the sum of the cells that 
are darkened. See figure 6 for examples. 



element S with the corresponding 
destination element D to produce the 
new destination element D'. Such a 
rule must specify a white or black 
result for each of the four cases of 
source being white or black and 
destination being white or black. 

Figure 5 shows a box with four cells 
corresponding to the four cases en- 
countered when combining source (S) 
and destination (D). For instance, the 
cell numbered 2 corresponds to the 
case where the source was black and 
the destination was white. By ap- 
propriately filling the four cells with 
white or black, the box can be made 
to depict any combination rule (there 
are sixteen possible rules altogether). 
The numbers in the four cells relate 
the rule as depicted to the integer 
value that selects that rule. For in- 
stance, to specify that the result 



DISASTER INSURA 

PROTECT YOUR HARDWARE § 

FROM THE UNEXPECTED. 

Not to men ion the unavoidable pollutants in the air. 
Performance rot bing dust, grime, spills and static electricity. 

Cover Craft Dust Covers help extend the useful life of 
your computer equipment at a fraction of the cost. 

Perhaps that's why more people throughout the world 
rely on Cover Craft Dust Covers than a 
Visit your loc 



Oust Covers lor most terminals, disks, printers, modems, etc. y' 

$8.95-$15.95 

C Shipping extra. 

COVER CRAFTccrp 
PO Box 555, Amherst, NH 03031 • (603) 889-6811 



JTff 



I 



3 



*4i. 



-ft**" 



^*J 




176 August 1981 © BYTE Publications Inc 



Circle 92 on inquiry card. 



Pure Computing Power 




The MicroFrame® is Pure Power for comput- 
ing. It rs the industry standard for high quality, 
reliable S-100 mainframes. 

TEI manufactures each MicroFrame® with 
great care. They deliver pure regulated power 
at the proper level, improving the reliability of 
your computer. Typically, the output voltages 
remain virtually constant, even when the pow- 
er line voltage varies widely. The MicroFrame® 
will never notice a brown-out . . .and it provides 
100 db noise rejection, protecting your com- 
puterfrom power line voltagespikes and noise. 
Complies with l-EEE S-100. 

The combination of the lowest noise bus, a 
regulated power system and a rugged chassis 
produces a MicroFrame® without equal. 

Distributor and OEM Inquiries Invited 

For more information, call Rick Barnes at (713) 738-2300 




Circle 381 on inquiry card. 



5075 S. LOOP EAST, HOUSTON, TX. 77033 
(713)738-2300 TWX. 910-881-3639 




rule 3 
D" = S 



rule 7 
D" = SORD 



rule 1 
D' = SANDD 



should be black wherever the source 
or destination (or both) was black, 
we would blacken the cells numbered 
4, 2, and 1. The associated integer for 
specifying that rule is the sum of the 
blackened cell numbers, or 4 + 2 
+ 1 = 7. 

Figure 6 illustrates four common 
combination rules graphically. Each 
is described by a combination 
diagram, its integer rule number, and 
the actual logical function being ap- 
plied. The earlier case of ORing can 
be seen in left center of the figure. 
This case is often described as paint- 
ing "under" the destination because 
existing black areas remain black. 

Smalltalk Access to BitBlt 

In this section, we present the 
Smalltalk interface to BitBlt and take 
a detailed look at the application of 
BitBlt to text display and line draw- 
ing. In preparation, you will need 
some additional context, which we 
present here before describing class 
BitBlt. 

Besides class Form, two additional 
classes are used extensively in work- 
ing with stored images, Point and Rec- 
tangle. Points contain x and y coor- 
dinate values and are used for refer- 
ring to pixel locations relative to the 
top left corner of a Form (or other 
point of reference). By convention, x 
increases to the right and y down, 
consistent with the layout of text on a 
page and the direction of TV scan- 
ning. A Rectangle contains two 
Points: origin, which specifies the top 
left corner, and corner, which in- 



Figure 6: Four common combination rules. 

dicates the bottom right corner of the 
region described. Class Point pro- 
vides protocol for access to the coor- 
dinates and for various useful opera- 
tions such as translation and scaling. 
Class Rectangle provides protocol for 
access to all the coordinates involved 
and other operations such as intersec- 
tion with other rectangles. It may be 
useful to note the parallel between 
classes Point, Rectangle, Form and 
classes Number, Interval, Indexed- 
Collection. Numbers index Collec- 
tions and Points index Forms. Inter- 
vals select subCollections, and Rec- 
tangles select subForms. 

Figure 7 shows the complete 
representation of the Form shown in 
figure 1. The width and height are 
stored as Integers. The actual pixels 
are stored in a separate instance of 
class Bitmap. Bitmaps have almost no 
protocol, since their sole purpose is to 
provide storage for Forms. They also 
have no intrinsic dimensionality, 
apart from that projected by their 
own Form, although the figure retains 
this structure for clarity. It can be 
seen that space has been provided in 



Form 


bitmap 






width = 


8 


height = 


16 



rule 6 
D' = S XOR D 



the Bitmap for a width of 16; this is a 
manifestation of the hardware 
organization of storage and process- 
ing into 16-bit words. Bitmaps are 
allocated with an integral number of 
words for each row of pixels. The in- 
tegral constraint on row size 
facilitates movement from one row to 
the next during the operation of BitBlt 
and during scanning of the display 
screen by the hardware. While this 
division of memory into words is 
significant at the primitive level, it is 
encapsulated in such a way that none 
of the higher-level graphical com- 
ponents in the system need consider 
word size. 

Class BitBlt 

The most basic interface to BitBlt is 
through a class of the same name. 
Each instance of BitBlt contains the 
parameters necessary to specify a 
BitBlt operation. The BitBlt protocol 
includes messages for initializing the 
parameters and one message, 
copyBits, that causes the primitive 
operation to take place. The class 
template for BitBlt is given in table 1. 




10 — 



Figure 7: The complete representation of figure 1. 



178 August 1981 © BYTE Publications Inc 



Circle 254 on inquiry card. 



& 



STD-BUS 
BOARDS 



Announcing 
a major price 
reduction. 



MOSTEK, 



Mostek, the world's largest 
manufacturer of STD-Z80 BUS 
microcomputer boards, is cutting 
board prices by an average of 30%. 
How can we do it? High volume. 
Automated equipment. Advanced 
manufacturing techniques. 

Our price reduction is evidence 
that STD-Z80 BUS microcomputer 
boards are following traditional 
VLSI learning curve trends. And 
now, more than ever, these sys- 
tem level components are the 
cost-effective edge. For prototyp- 
ing. For new designs. For rede- 
signs. For volume applications. 



STD-Z80 BUS microcomputer 
boards give you faster turn- 
around. More flexibility. More 
options. More effective use of an 
engineer's time. And now a price 
reduction that puts all other sys- 
tems, and all other design op- 
tions, in the same category: 
over-priced. 

Send for our new price list. 
Call or write Mostek Micro Sys- 
tems, 1215 West Crosby Road, 
Carrollton, Tfexas 75006. Phone 
(214) 323-1829. In Europe, con- 
tact Mostek Brussels, phone 
762.18.80. 



STD-BUS 

BOARD PRICES 

REDUCED BY 30% 



1 1981 Mostek Corporation 



class name 


BitBIt 


superclass 


Object 


instance variable names 


destForm sourceForm halftoneForm 
combinationRule destX destY width height 
clipX clipY clipWidth clipHeight 
sourceX sourceY 


instance messages and methods 




setup 

destForm: forml sourceForm: form2 halftoneForm: form3 rule: 
rule destRectangle: destRectangle clipRectangle: cllpRectangle 
sourceOrlgln: sourceOrlgln | | 

destForm — form 1 . 
sourceForm — form2. 
halftoneForm — form3. 
combinationRule — rule. 

destX — destRectangle minX. 
destY — destRectangle minY. 
width — destRectangle width, 
height — destRectangle height. 

clipX — clipRectangle minX. 
clipY — clipRectangle minY. 
clipWidth — clipRectangle width. 
clipHeight — clipRectangle height. 

sourceForm = = nil ifFalse: 
[sourceX «- sourceOrigin x. 
sourceY — sourceOrigin y], 

self copyBits 

operations 

copyBits | | < primitive > 

Table 1: Class template for class BitBlt. 



operation to the next. This situation 
occurs frequently in the graphics 
kernel, as demonstrated in the follow- 
ing section. 

Image Synthesis of Text 

Much of the graphics in the 
Smalltalk system consists of text and 
lines. These high-level entities are 
synthesized by repeated invocation of 
BitBIt. In this section and the next, we 
examine these two important applica- 
tions more closely. 

One of the advantages derived 
from BitBIt is the ability to store fonts 
compactly and to display them using 
various combination rules. The com- 
pact storage arises from the possibili- 
ty of packing characters horizontally 
one next to another (as shown in 
figure 2), since BitBIt can extract the 
relevant bits if supplied with a table 
of left x coordinates of all the 
characters. This is called a strike for- 
mat, from the typographical term 
meaning a contiguous display of all 
the characters in a font. 

The scanning and display of text is 
performed in the Smalltalk-80 system 
by a subclass of BitBIt. This subclass 
inherits all the normal state, with 
destForm indicating the Form in 
which text is to be displayed and 
sourceForm indicating a Form con- 
taining all the character glyphs side 
by side (as in figure 2). In addition, 
this subclass defines further state in- 
formation, including: 



The state held in an instance of BitBIt 
allows multiple operations in a 
related context to be performed 
without the need to repeat all the 



setup. For example, when displaying 
a scene in a display window, the 
destination Form and clipping rec- 
tangle will not change from one 



• text— a String of Characters to be 
displayed 

• textPos— an Integer giving the cur- 
rent position in text 



Bower-StGwart S* Associates software and hardware design 

SGOLD DISKS CP/M® Compatible Z-80 Software 

Available for all 8-5" SS-SD IBM format systems including TRS-80®, Northstar, SD Systems. Also available on 5" double density Superbrain.® 



$175. 

ppd 



Un-can your canned software! 

Z-80 Disassembler Feel couped up with your 
canned software? Our Z-80 Disassembler 
recreates assembly language source files from 
absolute code enabling users to easily tailor 
programs to meet their specific needs. The 
Preconditioner works with the Disassembler to 
decode ASCII. 

Credit cards Immediate service, tree 24 hr phone - we will 
credit invoice Checks. M.O.*s: Ten workday hold CA res- Add tax 



$50. 

ppd 



^B ;^g 



Great looking letters & reports! 

E-Z Text A unique word processor organized 
around user-created text files, embellished 
with simple control commands, which supports 
such 'BIG GUYS' features as Automatic Foot- 
noting, Table Spacing, Heading, Paging, Left 
& Right Margins, Proportional Spacing and 
MORE, at a 'LITTLE GUYS' price tag. 

State system & controller Allow time for surface mail 
Trademarks Digital Research. Radio Shack. Intertec 



POST OFFICE BOX 1389 HAWTHORNE, CALIFORNIA 90250 213/676-5055 



180 August 1981 © BYTE Publications Inc 



Circle 37 on inquiry card. 



The Text Solution for APPLE II® 

Now APPLE II® Owners Can Solve Text Problems 

With VIDEOTERM 80 Column by 24 Line Video Display 

Utilizing 7 X 9 Dot Character Matrix 

Perhaps the most annoying shortcoming of the Apple II* is its limitation of displaying only 40 columns by 24 lines of 
text, all in uppercase. At last, Apple II® owners have a reliable, trouble-free answer to their text display problem. 
VIDEOTERM generates a full 80 columns by 24 lines of text, in upper and lower case. Twice the number of characters as 
the standard Apple II- display. And by utilizing a 7 by 9 character matrix, lower case letters have true descenders. But 
this is only the start. 



VIDEOTERM, MANUAL, 
SWITCHPLATE 




VIDEOTERM 



Other 
Boards 



I'llU'llH,-,/ 

B123456789. •;<•>? 
fflBCDEFGHIJKLMNO 
PORSTUVHXYZm*. 

'dbcdefghijk Inno 
p q r s t v v ii x y z { ! ) * I 



7X12 MATRIX 
18X80 OPTIONAL 



! 'Kit ' ( )!♦, -. / 
112345(789 : i < = > ? 
(ABCDEF6HIJKLHN0 
MISTIVIXTZtMt. 

'jbcdtfjhijklino 
pqrstuvuxyz{!)"| 



7X9 MATRIX 
24X80 STANDARD 



Advanced 
Hardware 
Design 



Available 
Options 



VIDEOTERM lists BASIC programs, both Integer and Applesoft, using the entire 80 

columns. Without splitting keywords. Full editing capabilities are offered using the 
ESCape key sequences for cursor movement. With provision for stop/start text 
scrolling utilizing the standard Control-S entry. And simultaneous on-screen display 
of text being printed. 

Installation of VIDEOTERM in slot 3 provides Pascal immediate control of the 
display since Pascal recognizes the board as a standard video display terminal and 
treats it as such. No changes are needed to Pascal's MISC. INFO or GOTOXY files, 
although customization directions are provided. All cursor control characters are 
identical to standard Pascal defaults. 

The new Microsoft Softcard' is supported. So is the popular D. C. Hayes Micro- 
modem II' , utilizing customized PROM firmware available from VIDEX. The power- 
ful EasyWriter" Professional Word Processing System and other word processors 
are now compatible with VIDEOTERM. Or use the Mountain Hardware ROMWriter' 
(or other PROM programmer) to generate your own custom character sets. Natural- 
ly, VIDEOTERM conforms to all Apple OEM guidelines, assurance that you will have 
no conflicts with currenl or future Apple II' expansion boards. 

VIDEOTERM's on-board asynchronous crystal clock ensures flicker-free character display. 
Only the size of the Pascal Language card, VIDEOTERM utilizes CMOS and low power con- 
sumption ICs, ensuring cool, reliable operation. All ICs are fully socketed for easy 
maintenance. Add to that 2K of on-board RAM, 50 or 60 Hz operation, and provision of power 
and input connectors for a light pen. Problems are designed out, not in. 

The entire display may be altered to inverse video, displaying black characters on a white 
field. PROMs containing alternate character sets and graphic symbols are available from 
Videx. A switchplate option allows you to use the same video monitor for either the 
VIDEOTERM or the standard Apple II* display, instantly changing displays by flipping a 
single toggle switch. The switchplate assembly inserts into one of the rear cut-outs in the 
Apple II" case so that the toggle switch is readily accessible. And the Videx KEYBOARD 
ENHANCER can be installed, allowing upper and lower case character entry directly from 
your Apple II" keyboard. 

1K of onboard ROM firmware controls all operation of the VIDEOTERM. No machine 
language patches are needed for normal VIDEOTERM use. 



Firmware Version 2.0 



Characters 
Options 



7x9 matrix 

7 x 12 malrix option; 

Alternate user definable 

character set option; 
Inverse video option. 



Display 



24 x 80 {full descenders) 

18 x 80 {7 x 12 matrix with full descenders) 



Want to know more? Contact your local Apple dealer today for a demonstration. VIDEOTERM is available 
through your local dealer or direct from Videx in Corvallis. Oregon. Or send for the VIDEOTERM Owners 
Reference Manual and deduct the amount if you decide to purchase. Upgrade your Apple II' to full terminal 
capabilities for half the cost of a terminal. VIDEOTERM. At last. 



Apple II" is a trademark of Apple Compuier Inc. 
ROMWriter' is a trademark ol Mountain Hardware Inc. 
Micromodem II' is a trademark ol D. C Hayes Associates Inc 

Softcard' is a Irademark of Microsoft 

EasyWrilef is a Irademark of Inlormalion Unlimited Software Inc 



• VIDEOTERM includes manual $345 

• SWITCHPLATE $ 19 

• MANUAL refund with purchase. . . .$ 19 
•7x12CHARACTERSET $ 39 

• MICROMODEM FIRMWARE $ 25 



APPLE II® OWNERS! 

introducing the 

KEYBOARD & DISPLAY 

ENHANCER 

'PUT THE SHIFT AND SHIFT LOCK BACK WHERE IT BELONGS 
■ SEE REAL UPPER AND lower CASE ON THE SCREEN 
•ACCESS ALL YOUR KEYBOARD ASCII CHARACTERS 



Videx has the perfect companion for your 
word processor software: the KEYBOARD 
AND DISPLAY ENHANCER Install the 
enhancer in your APPLE II and be typing in 
lower case just like a typewriter If you want an 
upper case character, use the SHIFT key or the 
CTRL key for shift lock Not only that, but you 
see upper and lower case on the screen as you 
type. Perfectly compatible with Apple Writer 
and other word processors like, for example, 
Super -Text. 

If you want to program in BASIC, just put it 
back into the alpha lock mode; and you have 
the original keyboard back with a few im- 



provements. Now you can enter those elusive 9 
characters directly from the keyboard, or re- 
quire the Control key to be pressed with the 
RESET to prevent accidental resets. 

KEYBOARD AND DISPLAY 

ENHANCER is recommended for use with all 
revisions of the APPLE II. It includes 6 ICs. and 
EPROM and dip-switches mounted on a PC 
board, and a jumper cable Easy installation. 
meaning no soldering or cutting traces Alter- 
nate default modes are dip-switch selectable 
You can even remap the keyboard, selecting an 
alternate character set. for custom applications. 




PRICE »KDE-700 (REV. 7 or greater) $129. 

• KDE-OOOfREV. 6 or less) $129. 

Apple If is a trademark of Apple Computer. Inc 



I! 



idex 



VIDEX 
897 N.W. Grant Avenue 
Corvallis, Oregon 97330 
Phone (503) 758-0521 



Circle 396 on inquiry card. 



BYTE August 1981 181 



Listing 1: The scanWord: method scans or prints text. 

scanWord: endRun 

| charlndex | 

< primitive > "May be implemented internally for speed" 

[charlndex > endRun] whileTrue: 
[charlndex — text at: textPos. 
(exceptions at: charlndex) > 

ifTrue: [t exceptions at: charlndex]. 
sourceX — xTable at: charlndex. 
width — (xTable at: charlndex + 1) - sourceX. 
printing ifTrue: [self copyBits]. 
destX — destX + width. 
destX > stopX ifTrue: [t stopXCode]. 



"pick character" 
"check exceptions" 



textPos — textPos 
textPos — textPos - 
t endRunCode 



+ 1]. 



"left x of character in font" 
"up to left of next char" 
"print the character" 
advance by width of character" 
"passed right boundary" 
"advance to next character' 



• xTable — an Array of Integers giving 
the left x location of each character in 
sourceForm 

• stopX— an Integer that sets a right 
boundary past which the inner loop 
should stop scanning 

• exceptions — an Array of Integers 
that, if non-zero, indicate that the 
corresponding characters must be 
specially handled 

Once an instance has been initialized 
with a given font and text location, 
the scanWord: loop given in listing 1 
will scan or print text until some 



horizontal position (stopX) is passed, 
a special character (determined from 
exceptions) is found, or the end of 
this range of text (endRun) is reached. 
The check on exceptions handles 
many possibilities in one operation. 
The space character may have to be 
handled exceptionally in the case of 
text that is padded to achieve a flush 
right margin. Tabs usually require a 
computation or table check to deter- 
mine their width. Carriage return is 
also identified in the check for excep- 
tions. Character codes beyond the 



range given in the font are detected 
similarly and are usually handled by 
showing an exceptional character, 
such as a little lightning bolt, so that 
they can be seen and corrected. The 
printing flag can be set false to allow 
the same code to measure a line 
(break at a word boundary) or to find 
where the cursor points. While this 
provision may seem over-general, 
two benefits (besides compactness) 
are derived from that generality. 
First, if one makes a change to the 
basic scanning algorithm, the parallel 
functions of measuring, printing, and 
cursor tracking are sure to be syn- 
chronized. Second, if a primitive im- 
plementation is provided for the 
loop, it exerts a threefold leverage on 
the system performance. The scan- 
Word: loop is designed to be 
amenable to such primitive im- 
plementation; that is, the interpreter 
may intercept it and execute primitive 
code instead of the Smalltalk code 
shown. In this way, much of the 
setup overhead for copyBits can be 
avoided at each character, and an en- 
tire word or more can be displayed 




182 August 1981 © BYTE Publications Inc 



Circle 271 on inquiry card. 




■ 



■ ■ 






^B 





State-of-thedrf hardware 
demands state-of-the-art software 

Operating Systems & Support Software from Technical Systems Consultants 




To perform to its fullest capabili- 
ties, your hardware demands 
software designed to meet the 
specialized requirements of 
today's microprocessors. State-of- 
the-art software from Technical 
Systems Consultants keeps pace 
with the rapid advancements in 
computer technology so your 
hardware can live up to its full 
potential. Our complete line of 
tate-of-the-art software includes: 

le UnlFLEX™ Operating System 

UnfFLEX, a true multi-user, multi- 
tasking system for the 6809 and 
68000 microprocessors, supports 
such features as: 

• hierarchical file systems 

• device independent I/O 

• four Gigabyte disk capacities 

• full file protection 

• Inter-task communication via 
pipes 

• I/O redirection 

• task swapping 

• full random-access files 

• comprehensive shell command 
language 



UniFLEX, structured for large-scale 
microprocessor systems, will not 
run with minimal systems and thus 
has avoided design compromise. 
(Off-the-shelf versions and OEM 
licenses are available.) 

The FLEX™ Operating System 

FLEX, a powerful, easy-to-use 
operating system designed for 
the 6800 and 6809 microproces- 
sors, includes: 

• dynamic filespace allocation 

• random files 

• batch job entry 

• automatic space compression 

• English error messages 

• user environment control 

• disk resident commands 

• flexible device I/O 

• printer spooling 

Plus, FLEX can accommodate 
hard disks as well as floppies. The 
System is available off-the-shelf 
for a variety of systems and In a 
field-adaptable version. (OEM 
licenses available.) 



FLEX and UnlFLEX are trademarks of 
Technical Systems Consultants, Inc. 



Support Software 

Technical Systems Consultants 
offers a full line of state-of-the-art 
support software compatible to 
FLEX and UniFLEX, some of which 
are: 

• native C and Pascal compilers 
for advanced programming 

• extended BASIC for business 
and educational applications 

• text editing and processing 
software 

• sort/merge package for busi- 
ness applications 

• variety of absolute and relocat- 
able assemblers 

• debug and diagnostic 
packages 

. . . and more. Write or call today 
for our brochures describing 
our complete product line. 



Box 2570, 1208 Kent Avenue 
West Lafayette, Indiana 47906 
(317) 463-2502 Telex: 27-6143 

Sculpture by Jocmn Chaney 



Circle 2 on inquiry card. 





SPECTACULAR 
OFFERS 



BASF "REXYDISK"... *ffi 
Superior Quality data «"" 
storage medium. 
Certified and guaranteed 
100% error free. 

SINGLE SIDED-SINGLE DENSITY 

5Vt" or 8" Diskettes 1 0/$24 

5Vt" or 8" Vinyl Storage Pages .10/$5 

MAXELL- DISKETTES 
The best quality 
diskette money can buy. 
Approved by Shugart 
and IBM. 
Sold only in boxes of 10 

5", 1 side $3.30 

8", 1-side $3.90. 

5", 2-side $4.25 

8", 2-side $5.60 

ALL MAXELL DISKETTES ARE DOUBLE DENSITY 

LIBRARY CASE... 

3-ring binder album. 

Protects your valuable 

programs on disks 

Fully enclosed and 

protected on all sides. 

Similar to Kas-sette storage box. 

Library 3-Ring Binder $6.50 

5Va" Mini Kas - sette/10 $2.49 

8" Kas-sette/10 $2.99 

DISKETTE DRIVE HEAD CLEANING KITS, 
Prevent head crashes and 
insure efficient, error- 
free operation. 

5V4* or 8" $19.50 

SFD CASSETTES 

C-10 Cassettes 1 0/$7 

(All cassettes include box & labels) 

Get 8 cassettes,C-10 sonic and 
Cassette/8 library album for 

only $8.00 

(As illustrated) 





HARDHOLE 
Reinforcing ring of 
tough mylar protects 
disk from damage 
5VV Applicator $3 
8" Applicator $4 




5Vt" Hardholes $6 
50/8" Hardholes $8 



VISA • MASTERCHARGE • MONEY ORDERS 
CERTIFIED CHECK • FOR PERSONAL CHECKS 
ALLOW TWO WEEKS • C.O.D. REQUIRES A 10% 

DEPOSIT • CAL. RES. ADD 6% SALES TAX 

MIN $2 SHIPPING & HANDLING • MINIMUM 

ORDER $10 • SATISFACTION GUARANTEED 

OR FULL REFUND 

Write for our free catalog 



PRODUCTS 

8868 Clairemont Mesa Blvd. 
San Diego, CA 92123 

Toll Free 

1-800-854-1555 

For Orders! Only 
For information or California orders 

(714) 268-3537 



Listing 2: The drawLoopX:Y: method draws lines. 

drawLoopX: xOelta Y: yDelta 

| dx dy px py p i | 
< primitive > 
dx — xDelta sign. 
dy — yDelta sign, 
px — yDelta abs. 
py — xDelta abs. 

Self COpyBitS. "first point" 

py > px 

ifTrue: "more horizontal" 

[p - py/ 12. 

1 to: py do: 
[:i | destx — destx + dx. 

(p — p - px) < ifTrue." [desty — desty + dy. p — p + py]. 
self copyBits]] 

ifFalse: "more vertical" 

[p - px/ 12. 
1 to: px do: 
[:i | desty — desty + dy. 

(p — p - py)<0 ifTrue: [destx — destx + dx. p — p + px]. 
self copyBits]] 



Listing 3: Methods for image magnification. @ is a shorthand message that returns a 
new Point whose x-value is the receiver (on the left) and whose y-value is the argument 
(on the right). Points respond to the + and * messages by distributing them over each 
of the coordinates. 

magnify: rect by: scale spacing: spacing 

| WideForm bigForm | "First expand horizontally" 

wideForm — Form extent: (rect width * scale x) @ rect height. 
wideForm spread: rect from: self by: scale x 

spacing: spacing x direction: 1 @ 0. 
bigForm — Form extent: rect extent * scale. "Then expand vertically" 

bigForm spread: wideForm asRectangle from: wideForm by: scale y 

spacing: spacing y direction: @ 1 . 
t bigForm 

spread: rect from: sourceForm by: scale spacing: spacing 
direction: dlr 

| slice sourcePt | 

slice — Rectangle origin: 0@0 extent: dir transpose * self extent + dir. 

SOUrcePt — rect origin. "transpose returns a Point with swapped coordinates" 

1 to: (rect extent dot: dir) do: "dot product selects direction of stretch" 

[:i I "slice up the original image" 

self copy: slice from: sourcePt in: sourceForm rule: STORing. 

sourcePt — sourcePt + dir. slice moveby: dir * scale]. 
1 to: scale - spacing - 1 do: 

[:i | "smear out the slices, leave some space" 

self copyAIITo: 1 @ in: self rule: ORing] 



directly. Conversely, the Smalltalk 
text and graphics system requires im- 
plementation of only the one 
primitive operation to provide full 
functionality. 

Line Drawings, Image Synthesis 

The same design principle applies 
in the support for, drawing lines. By 
using BitBIt, one algorithm can draw 
lines of varying widths, different 
halftone "color," and any combina- 



tion rule. To draw a line, an instance 
of BitBIt is initialized with the ap- 
propriate destination Form and clip- 
ping window, and with a source that 
can be any Form to be applied as a 
pen shape along the line. Starting 
from the stored destX and destY, the 
line-drawing loop, drawLoopX:Y: 
(listing 2), accepts x and y delta 
values and x and y step values as 
necessary, calling copyBits at each 
point along the line. The method used 



184 August 1981 © BYTE Publications Inc 



THE BACKBONE 
OF YOUR SYSTEM 



The Heath/Zenith 19 Smart Video Terminal gives 
you all the important professional features, all for under 
$700* You get the flexibility you need for high-speed 
data entry, editing, inquiry and transaction process- 
ing. It's designed to be the backbone of your system 
with heavy-duty features that withstand the rigors 
of daily use. 

Standard RS-232C interfacing makes the 19 com- 
patible with DEC VT-52 and most computer systems. 
And with the 19, you get the friendly advice and 
expert service that makes Heath/Zenith a strong 
partner for you. 



Pick the store nearest you from the list on page 00. And 
stop in today for a demonstration of the Heath/Zenith 
19 Smart Video Terminal. If you can't get to a store, 
send $1 .00 for the latest Heathkit® Catalog and the 
new Zenith Data Systems Catalog of assembled com- 
mercial computers. Write Heath Co., Dept. 334-806, 
Benton Harbor, Ml 49022. 

Your strong partner 



Completely ad- 
dressable blinking 
cursor lets you 
edit anywhere on 
screen. 



Reverse video by 
character lets you 
emphasize words, 
phrases or paragraphs. 



High resolution CRT 
gives you sharp, easy- 
to-read image, reduces 
eye-strain. 



Complete ASCII 
character set includ 
ing uppercase, 
lower case with 
descenders, and 
special graphic 
symbols. 



80 character by 24 
line format, plus 25th 
line for operator mes- 
sages and prompts. 



Professional 
quality keyboard, 
standard type- 
writer layout, 72 
keys, including 
12 special function 
keys. 



Z-80 microprocessor- 
control makes the Heath/ 
Zenith 19 capable of 
multitude of high-speed 
functions. It's the only 
terminal with ROM 
source code readily 
available. 




Insert and delete 
character or line plus 
erase to end of line 
and end of screen 
make the 19 ideal 
for sophisticated 
editors like WORD- 
STAR. 

Cursor and 
special functions 
are accessible 
by keyboard or 
computer, using 
either DEC VT-52 
or ANSI Standard 
protocols. 



Keypad in 
calculator format 
permits fast, 
easy entry of 
numeric data. 



* In kit form, F.O.B. Benton Harbor, Ml. Also available completely assembled 
at $995. Prices and specifications are subject to change without notice. 



CP-202B 
BYTE August 1981 185 



Circle 120 on inquiry card. 





tie SOFTWARE 



ULTIMATE SOFTWARE PLAN 
i/** (New items or new prices) 



We'll match any advertised price 
on any item that we cany. And if 
you find a lower price on what you 
bought within 30 days of buying 
it, just show us the ad and we'll 
refund the difference. 
It's that simple. 



Combine our price protection 
with the availability of full profes- 
sional support and our automatic 
update service and you have the 
Ultimate Software Plan. 

It's a convenient, uncomplicated, 
logical way to get your software. 




CP/M users: specify disk systems and formats. Most formats available. 



ARTIFICIAL INTELLIGENCE 

Medical! PAS-3) S849/S40 

Dental (PAS-3) $849/$40 

ASYST DESIGN 

Prof Time Billing S549/J40 

General Subroutine. . . $269/$30 
Application Utilities ... $439/$30 

COMPLETE BUS. SYSTEMS 

Creator $269/$25 

Reporter $169/$20 

Both $399/$45 

COMPUTER CONTROL 

Fabs(B-tree) $159/$20 

UltraSortll $159/$25 

COMPUTER PATHWAYS 

Pearl (level 1) S 99/$25 

Pearl (level 2) $299/$40 

^ Pearl (level 3) S549/$50 

DIGITAL RESEARCH 

CP/M 2.2 

NorthStar $149/$25 

TRS-80 Model II (P+T)$159/$35 

Micropolis $169/$25 

Cromemco $189/$25 

PL/l-80 S459/S35 

BT-80 S179/S25 

Mac $ 85/$ 15 

Sid $ 65/$15 

^Z-Sid $ 90/$ 15 

^Tex $ 90/$15 

DeSpool $ 50/$ 10 

D.M.A. 

Ascom $149/$15 

DMA-DOS $179/$35 

CSS $369/$45 

Formula $539/$45 

GRAHAM-DORIAN 

General Ledger $729/$40 

Acct Receivable $729/$40 

Acct Payable $729/$40 

Job Costing S729/S40 

Payroll II $729/$40 

Inventory II $729/$40 

Payroll $493/$40 

Inventory $493/$40 

Cash Register $493/$40 

Apartment Mgt $493/$40 

Surveying $729/$40 

Medical $729/$40 

Dental $729/$40 

MICRO-AP 

S-Basic $269/$25 

Selector IV $469/$35 

MICRO DATA BASE SYSTEMS 

HDBS $269/$35 

MDBS $795/$40 

DRS or QRS or RTL . S269/$35 
MDBS PKG $1295/$60 

MICROPRO 

WordStar $319/$60 

Customization Notes... $ 89/$na 

Mail-Merge $109/$25 

WordStar/Mail-Merge $419/$85 

DataStar $249/$60 

WordMaster S119/S40 

SuperSort I $199/$40 



MICROSOFT 

Basic-80 $289/$30 

Basic Compiler $329/$30 

Fortran-80 $349/$30 

Cobol-80 $574/$30 

M-Sort $124/$30 

Macro-80 $144/$20 

Edit-80 $ 84/$20 

MuSimp/MuMath $224/$25 

MuLisp-80 $174/$20 

ORGANIC SOFTWARE 

TextWriter III $111/$20 

DateBookll $269/$25 

Milestone $269/$25 

OSBORNE 

General Ledger $ 59/S20 

Acct Rec/Acct Pay. .. .$ 59/$20 

Payroll w/Cost $ 59/$20 

All 3 $129/$60 

All 3 +CBASIC-2 $199/$75 

PEACHTREE" 

General Ledger $399/$40 

Acct Receivable $399/$40 

Acct Payable $399/$40 

Payroll $399/$40 

Inventory $399/$40 

Surveyor $399/$40 

Property Mgt $799/$40 

CPA Client Write-up. . $799/$40 
Mailing Address $349/$40 

SOFTWARE WORKS 

Adapt (CDOS to CP/M). $ 69/$na 
Ratfor $ 86/$na 

SOHO GROUP 

MatchMaker $ 97/$20 

Worksheet $177/$20 

STRUCTURED SYSTEMS 

GLorARor APorPay $599/$40 
Inventory Control . $599/$40 
Magic Worksheet . . $219/$40 

Analyst $199/$25 

Letteright $179/$25 

OSort $ 89/$20 

SUPERSOFT 

Diagnostic I $ 49/$20 

Diagnostic II $ 84/$20 

Disk Doctor $ 84/$20 

Forth (8080 or Z80) $ 1 49/$25 

Fortran $219/$30 

Fortran w/Ratfor $289/$35 
Other. less 10% 

TCS 

GLorARor APorPay. $ 79/$25 
All 4 $269/$99 

UNICORN 

Mince $ 99/$25 

Scribble $ 99/S25 

Both $189/$50 

Amethyst $299/$75 

WHITESMITHS 

"C" Compiler $600/$30 

Pascal (incl "C") $850/$45 

DATA BASE 

FMS-80 $649/$45 

dBASE II $629/$50 

Condor $599/$30 

Condor II $899/$50 

Access/80 $749/$50 





PASCAL 




Pascal/MT+ 


$429/$3C 


Pascal/Z 


_$349/$3C 


v* Pascal/UCSD 


.$399/$5C 




$149/$?n 


WORD PROCESSING' 




.$179/$5C 




$229/$25 


VTS/80 


$259/$65 


Magic Wand 


.$289/$45 


Spell Binder 


.$349/$45 


OTHER GOODIES' 




The Last One 


.$549/$95 


SuperCalc 


.$269/$5C 


Target 


.$189/$3C 


BSTAM 


.$149/$15 


Tiny"C" 


.$ 89/$5C 


Tiny "C" Compiler. . . . 


.$229/$5C 


CBASIC-2 


$ 98/$2C 


Nevada Cobol 


$129/$25 


MicroStat 


$224/$2C 


Vedit 


.$105/$15 


ESQ-1 


$1349/$5C 


MiniModel 


.$449/$5C 


StatPak 


.$449/$4C 


Micro B+ 


$229/$2C 


Raid 


.$224/$35 


String/80 


.$ 84/$20 




String/80 (source) 


$279/$na 




APPLE II • 




NFO UNLIMITED 




EasyWriter 


$224 


Datadex 


.$349 


Other 


. less 15% 


MICROSOFT 




Softcard(Z-80CP/M) 


.$259 


Fortran 


.$179 


Cobol 


.$499 


MICROPRO 




Wordstar 


.$269 


MailMerge 


$ 99 


Wordstar/MailMerge . 


.$349 


SuperSort I 


.$159 


PERSONAL SOFTWARE 


Visicalc 


.$ 99 


Visicalcll 


.$159 


CCA Data Mgr 


.$ 84 


Desktop/Plan II... , 


.$159 




.$129 


Visidex 


.$159 


Visiplot 


.$149 


Visitrend/Visiplot. . . . 


.$229 


Zork 


.$ 34 


PEACHTREE" 




General Ledger. . . . 


.$224/$4C 


Acct Receivable- , - , 


$224/$4C 


Acct Payable 


.$224/$40 


Payroll 


.$224/$4C 


Inventory 


.$224/$40 


OTHER GOODIES 




^dBASE II 


$329/$5C 


VU #3(usew/Visicalc 


.$ 49 


Super-Text II 


.$127 


Data Factory 


.$129 


DB Master 


$184 


OEM (complete 




accting) 


.$399 


Charles Mann . . 


. less 1 5% 




STC 


. less 1 5% 



ORDERS ONLY-CALL TOLL FREE VISA • MASTERCHARGE 
1-800-854-2003 ext. 823 ■ Calif. 1-800-522-1500 ext. 823 

Overseas — add S10 plus additional postage • Add $2.50 postage and handling per each item • California 
residents add 6% sales tax • Allow 2 weeks on checks. C O.D. ok - Prices subject to change without notice 
All items subject to availability • !'■— Mfgs Trademark. 

THE DISCOUNT SOFTWARE GROUP 

6520 Selma Ave. Suite 309 • Los Angeles, Ca. 90028 • (213) 666-7677 

Irtt'l TELEX 499-0032 BVHL Attn: DiscSoft • USA TELEX 194-634 BVHL Attn: DiscSoft • 

TWX 910-321-3597 BVHL Attn: DiscSoft 



186 August 1981 © BYTE Publications Inc 



is the Bresenham plotting algorithm 
(IBM Systems Journal, Volume 4, 
Number 1, 1965). It chooses a prin- 
cipal direction and maintains a 
variable, p. When p's sign changes, it 
is time to move in the minor direction 
as well. This procedure is another 
natural unit to be implemented as a 
primitive, since the computation is 
trivial and the setup in copyBits is 
almost all constant from one invoca- 
tion to the next. 

Image Processing 

We have seen how BitBlt can copy 
shapes and, in the foregoing ex- 
amples, how repeated invocation can 
synthesize more complex images such 
as text and lines. BitBlt is also useful 
in the manipulation of existing 
images. For example, text can be 
made to look bold by ORing over 
itself, shifted right by one pixel. Just 
as complex images can be built from 
simple ones, complex processing can 
be achieved by repeated application 
of simple operations. Here, we pre- 
sent three examples of such structural 
manipulation: magnification, rota- 
tion, and the game of Life. These ex- 
amples were devised by the author in 
collaboration with Ted Kaehler. 

As we shall see in the next two sec- 
tions, many applications of BitBlt are 
very simple, such as filling a Form 
with white, or copying all of one 
Form to some location in another. 
Smalltalk provides for such casual 
use of BitBlt through a wide range of 
simple messages to class Form, such 
as: 

someForm fillAII: white. 
someForm copyAIITo: 
destLocation in: destForm. 

We will not list all such messages 
here. In the examples that follow, the 
reader should be able to infer the 
meaning from the message names and 
the accompanying explanations. 

Magnification 

It is often useful to magnify an 
image for closer scrutiny and 
especially to' allow convenient altera- 
tion of stored Forms. Photo 1 shows 
this function providing user control 
over the font used for display of text. 

Circle 289 on inquiry card. * 




6 Brand New Books from Osborne/McGraw Hill 



Interfacing to S-100 

(IEEE 696) Microcomputers 

by Sol Libes and Mark Garetz 

This book assists S-100 users in expanding the power 
and utility of their systems. It describes the S-100 bus 
with unmatched precision and detail. Various chapters 
describe its mechanical and functional design, 
logical and electrical relationships, bus intercon- 
nections, and bussing techniques. Both parallel and 
serial interfacing are described as well as interfacing 
to RAM, ROM, and the real world. Additional 
chapters discuss D/A and A/D conversion, inter- 
rupts, timers, and direct memory access. 

#37-3 $15 □ 

Microprocessors for 
Measurement and Control 

by D.M. Auslander and P. Sagues 
Learn to design mechanical and process equipment 
which use microprocessor based "real time" com- 
puter systems. This book shows you how, and, using 
case studies, builds and explores problems of in- 
creasing complexity. The book presents plans for 
prototype systems, allowing readers (even those 
unfamiliar with machine or assembly language) to 
initiate projects and carry them through to com- 
pletion. #57-8 $15.99 □ 



CBASIC" User's Guide 

by Gordon Eubanks, Adam Osborne, and Martin McNiff 
The CBASIC language may be the most advanced 
version of BASIC yet created. Like Pascal, CBASIC 
requires no line numbers and lends itself to highly 
organized, structured programs— programs that are 
readable, modular, and easier to change. CBASIC is 
as easy to learn as BASIC and contains convenient 
file handling facilities, making it very useful for many 
business applications. It may be the only computer 
language you'll ever need to learn. This guide was 
co-authored by Gordon Eubanks, the creator of 
CBASIC. It is not only a self-teaching textbook, it is 
the definitive reference on the CBASIC language. 

#61-6 $15 □ 

ATARI™ 

Some Common BASIC Programs 

TRS-80™ level II 

Some Common BASIC Programs 

Two new editions of Osborne's celebrated collection 
of 76 useful and informative programs in Math, 
Finance, and Statistics. These programs will trans- 
form your Atari 400 or 800 or your TRS-80 computer 
from a plaything into a real workhorse. The 
programs are clearly documented to serve as a 
valuable instructional aid in learning BASIC. 

ATARI version: #53-5 $14.99 □ 
TRS-80 level II version: #54-3 $14.99 a 



Science and Engineering BASIC Programs 

edited by John Heilborn 

50 programs with a wide range of scientific and engineering applications - Clearly documented and easily adapted for 
any popular microcomputer - This book is an indispensible tool for any scientist, engineer or student. Included are 
programs for interpolation, regression, data analysis, roots of polynomials, matrix operations, and linear equations. 
You'll also find programs for eigenvalues and eigenvectors, differential equations, Fourier analysis, Structural analysis, 
thermodynamics, and many others. #63-2 $15.99 □ 



CA 



Make check payable to: ^> ~ OSBORNE/McGraw-HIII 
630 Bancroft Way, Berkeley, CA 94710 Dept. B19 



TOLL FREE: 800 



Phone: (415) 548-2805 
■227-2895 Outside California 



"M 



Name 

Address. 



City/State/Zip . 



Plus D .75/item 4th class D $1.50/item UPS D $2.50/item Air Mail D $10.00/Overseas (California Residents add applicable tax.) 

□ Please send me your free catalog. 



Total amount enclosed $_ 
Signature 



. or charge my □ Visa □ Mastercharge Card #_ 



. Expiration Date_ 



Listing 4: The rotate method. This method rotates an image of size 2" by 2" one quarter- 
turn clockwise. 

rotate | mask temp quad | 
temp — Form extent: self extent. 

mask — Form extent: self extent. "set up the first mask" 

mask copy: mask asRectangle halftone: white rule: STORing. 
mask copy: mask asRectangle/2 halftone: black rule: STORing. 
quad — self width/2 . "the size of a quadrant" 
[quad > = 1] whileTrueDo: 

[ "First exchange left and right halves" 

mask copyAIITo: @ in: temp rule: STORing. 

mask copyAIITo: 0@ quad in: temp rule: ORing. 

self copyAIITo: 0@0 in: temp rule: ANDing. 

temp copyAIITo: 0@0 in: self rule: XORing. 

temp copyAIIFrom: quad @ in: self rule: XORing. 

self copyAIITo: (0 - quad) @ in: self rule: ORing. 

temp copyAIITo: quad @ in: self rule: XORing. 
"Then flip the diagonals" 

self copyAIITo: 0@0 in: temp rule: STORing. 

temp copyAIIFrom: quad @ quad in: 'self rule XORing. 

mask copyAIITo: @ in: temp rule: ANDing. 

temp copyAIITo: @ in: self rule: XORing. 

temp copyAIITo: quad @ quad in: self rule: XORing. 
"Compute the next fine mask" 

mask copyAIIFrom: (quad/2) @ (quad/2) in: mask rule: ANDing. 

mask copyAIITo: quad @ in: mask rule: ORing. 

mask copyAIITo: @ quad in: mask rule: ORing. 

quad — quad/2] 



The character for "7" has been 
presented magnified nine times. Using 
a pointing device, the user has 
blackened some cells to provide a 
European style "7," and the result can 
be seen in both the upper-left and 
lower-right windows on the screen. 

A simple way to magnify a stored 
Form would be to copy it to a larger 
Form, making a big dot for every 
little dot in the original. For a height h 
and width w, this would take h X w 



operations. The algorithm presented 
in listing 3 (as two messages to class 
Form) uses only a few more than 
h + w operations. 

The magnification proceeds in two 
steps. First, it slices up the image into 
vertical strips in wideForm separated 
by a space equal to the magnification 
factor. These are then smeared, using 
the ORing function, over the in- 
tervening area to achieve the horizon- 
tal magnification. The process is then 



self wideForm 

r^~ 



wideForm 
] I ==— I 



bigForm 



bigForm 




Figure 8: Magnification with BitBlt. See the text for more details. 



repeated from wideForm into 
bigForm, with horizontal slices 
separated and smeared in the vertical 
direction, achieving the desired 
magnification. Figure 8 illustrates the 
progress of the above algorithm in 
producing the magnified "7" shown 
in photo 1. 

Rotation 

Another useful operation on 
images is rotation by a multiple of 90 
degrees. Rotation is often thought to 
be a fundamentally different opera- 
tion from translation, and this point 
of view would dismiss the possibility 
of using BitBlt to rotate an image. 
However, the reader must consent 
that the first transformation shown in 
figure 9 is a step toward rotating the 
image shown: all that remains is to 
rotate the insides of the four cells that 
have been permuted. The remainder 
of the figure shows each of these cells 
being further subdivided, its cells 
being similarly permuted, and so on. 
Eventually each cell being considered 
contains only a single pixel. At this 
point, no further subdivision is re- 
quired, and the image has been 
faithfully rotated! 

Each transformation shown in 
figure 9 would appear to require suc- 
cessively greater amounts of com- 
putation, with the last one requiring 
several times more than h X w 
operations. The tricky aspect of the 
algorithm below is to permute the 
subparts of every subdivided cell at 
once, thus performing the entire rota- 
tion in a constant times log 2 (h) opera- 
tions. The parallel permutation of 
many cells is accomplished with the 
aid of two auxiliary Forms. The first, 
mask, carries a mask that selects the 
upper left quadrant of every cell; the 
second, temp, is used for temporary 
storage. A series of BitBlt operations 
exchanges the right and left halves of 
every cell, and then another series ex- 




Figure 9: Image rotation with BitBlt. See the text for more details. 



188 August 1981 © BYTE Publications Inc 



Sic* 0100 



prom slater 



iJcffjgSBI 


„, --» il 




\m 


■gSS 


i Jit;;: : 'i!§fl 


1 







PROGRAMS MOST 
FAMILIES OF EPROMS! 

• Accepts 1K/2K/4K 
or 8K EPROMS 

• Extended Device Option 

• Phantom Slave Option 

• All Programming 
Characteristics 
Software Controlled 

• Accepts Single or 
3 Supply Parts 

• Device Address Switch 
Selectable 

Kit Price $199.95 



6009 SINGLE BOARD COMPUTER 




2K ROM 

4K/8K/16K RAM 

20 Parallel I/O Lines 

RS 232 Interface 

Baud Rates from 110 to 9600 

All Memory/I.O. Relocatable 

on 4K Boundaries 

8080 I/O Instructions Memory Mapped 

(Gives 256 I/O Ports) 

Complete Documentation 

ADSMON Monitor Includes 

User Callable Functions, 

Autopatch and more 

Kit Price $299.95 (Includes Software) 




mO£HE=t 30A3D* 

THREE S-100 MOTHER 
BOARDS AVAILABLE; 

• 3 Slots for Stand-Alone 
Applications 

• 9 Slots for Small Systems 

• 18 Slots for Full Size 
Systems 

• Active Termination 

(9 & 18 Slot Boards Only) 

• Extensive Ground Shield 

• Breadboard Area 
(Write for complete 
information) 



The 

products 

shown Ihere 

are just an 

example of the 

quality products 

and service Ackerman Digital Systems offers. ADS is 

an engineering company dedicated to providing the 

micro computer industry with solid quality products 

to meet a variety of needs. 

All ADS products adhere to the I.E.E.E. 696/S-100 Bus 

standard, a bus noted for its widespread acceptance 

and versatility. 

For catalog containing 
complete hardware and 
software information, write 
Ackerman Digital Systems, Inc 
110 N. York Rd., Elmhurst, IL 
60126. TEL 312-530-8992 




ACKERMAN 

DIGITAL SYSTEMS, INC. 



Circle 3 on Inquiry card. 



self: 

Flip left 
and right 

temp: 
. . . then . . 

self: 

exchange 
diagonals. 

temp: 



A 


B 


D 


C 



M 



1 















B 


A 


C 


D 


s 


/ 


B 


A 


C 


D 



A 


B 


D 


C 



M 







B 


A 


C 


D 


X( 


)R 


BD 


7 


9 


? 



A 


B 


D 


C 


AND 


A 





D 






10 



B 


A 


C 


D 



M 

AN 



w 



BD 



4 





B 





C 


xor 


A 





D 





11 


D 


A 


C 


D 


XOR 


BD 
















AB 



CD 



B 



C 



X(DR 











12 


D 


A 


C 


B 


X(|)R 


BD 









_B_J3 
C C 

ab|o 

CD 



B 


A 


c 


D 


XOR 


AB 





CD 






M means 

the quadrant mask 

AB here 
means A XOR B 



Figure 10: Permuting four quadrants of a cell. 



changes the diagonal quadrants, 
achieving the desired permutation. 
The complete method for rotation is 
given in listing 4. 

Figure 10 traces the state of temp 
and self after successive operations. 
The offsets of each operation are not 
shown, though they are given in the 
program listing. After twelve opera- 
tions, the desired permutation has 
been achieved. At this point, the 
mask evolves to a finer grain, and the 
process is repeated for more, smaller 
cells. Figure 11 shows the evolution of 
the mask from the first to the second 
stage of refinement. The reader will 
note that the algorithm presented 
here for rotation is applicable only to 
square forms whose size is a power of 
two. The extension of this technique 
to arbitrary rectangles is more in- 
volved and is left as an exercise for 
the reader. A somewhat simpler exer- 
cise is to apply the above technique to 
horizontal and vertical reflections 
about the center of a rectangle. 

The Game of Life 

John Conway's game of Life is 



probably well known to readers of 
BYTE. It is a fairly simple rule for 
successive populations of a bitmap. 
The rule involves the neighbor count 
for each cell — how many of the eight 
adjacent cells are occupied? Each cell 
will be occupied in the next genera- 
tion if it has exactly three neighbors, 
or if it was occupied and has exactly 
two neighbors. This is explained as 
follows: three neighboring organisms 
can give birth in an empty cell, and 
an existing organism will die of ex- 
posure with less than two neighbors 
or from overpopulation with more 
than three neighbors. Since BitBlt 
cannot add, it would seem to be of no 
use in this application. However, 
BitBlt's combination rules do include 
the rules for partial sum (XOR) and 
carry (AND). With some ingenuity 
and a fair amount of extra storage, 
the next generation of any size of bit- 
map can be computed using a con- 
stant number of BitBlt operations. 

Listing 5 gives the method for next- 
LifeGeneration. As shown in figure 
12, the number of neighbors is rep- 
resented using three image planes for 



EH^EE 




Figure 11: Refinement of the quadrant mask. 



the Is bit, 2s bit, and 4s bit of the 
neighbor count in binary. The 8s bit 
can be ignored, since there are no sur- 
vivors in that case, which is equiva- 
lent to zero (the result of ignoring the 
8s bit). This Smalltalk method is 
somewhat wasteful, as it performs the 
full carry propagation for each new 
neighbor, even though nothing will 
propagate into the 4-plane until at 
least the fourth neighbor. Some 
readers may enjoy improving upon 
this algorithm. 

Many other image-processing tasks 
can be performed with BitBlt. The 
author has built a complete optical 
character-recognition system for San- 
skrit text using the various combina- 
tion rules and an operation that 
counts the number of black bits in 
any rectangle (how would you do 
it?). 

Bitmap processing is ideally suited 
to VLSI (very large scale integration) 
implementation. Readers who are in- 
terested in this direction should check 
the proceedings of the Design 
Automation Conference, June 1981, 
for "Parallel Bitmap Processor," by 
Tom Blank, Mark Stefik, and Willem 
vanCleemput. 

Efficiency Considerations 

Our original .specification for BitBlt 
has been published elsewhere 



190 August 1981 © BYTE Publications Inc 



Circle 59 on Inquiry card. 







YOUR SOFTWARE 
STRATEGY FOR THE 80's 

New Compiler and Support Team Brings 
Products to Market faster and Easier 

If your company's in the big game of small business 
systems, you'll want to know more about Compiler Sys- 
tems' support team and its new CB80. 

Everyone's talking about the ultimate microcom- 
puter winners and how software will be the driving force 
in the market. Enter the new CB80 BASIC compiler. 

CB80 is derived from the industry's standard 
CBASIC™and designed for 8-bit micros supporting 
CP/M®, MP/M™ and CP/NET™. It retains all of the 
characteristics that made CBASIC widely used in busi- 
ness applications, while providing substantial improve- 
ments in speed and performance. 

And advanced CSI design provides CB80 with 
enhancements for multi-user support further expanding 
your marketing opportunities. 

CSI's support team will assist in your development 
and marketing efforts — plus special assistance via a 
technical hotline for users. 

CB80 is sold throughout the U.S. and overseas by a 
network of distributors. Call today (213) 355-4211 for 
ordering information or write for technical details. 




CP/M® . MP/M'" and CP/NET'" are trademarks of Digital Research 




Circle 248 on inquiry card. 

SUPERBRAIIM 

Bv INTERTEC 



\ 




64K Double or Quad Density units available. Uses 
two Z-80 CPU's. Commercial-type terminal with 
12" monitor. Dual double density minifloppies. 
Over 350 kilobytes of storage (twice that with quad 
density drives). Two serial RS232 ports. I/O ports 
standard. Expandable with optional S-100 
interface. Comes with CP/MTM 2.2 operating sys- 
tem. MiniMicroMart can supply a wide range of 
CP/M development and application software. 

W/64K Double Density, List $3495 . . $2869 
W/64K Quad Density. List $3995 $3395 



Whp\ HEWLETT 
mL/iM PACKARD 

HP-41CV 

$259. 






data 
systems 

Z19 Video Terminal 



Limited 
Time 
$799 



List $995 



IHKEE5SHMBA 

- --X DeskTop 

Computer 

List 
$3250 
$2749 




HP- 83 
ust$225o Special $1749 

F.O.B. shipping point. All prices subject to change and all 

I offers subject to withdrawal without notice. Advertised prices 
are for prepaid orders. Credit card and C.O.D. 2% higher. 
C.O.D. may require deposit. 

- WRITE FOR FREE CATALOG - 

MiniMicroMart 

1618 James Street 
Syracuse, NY 13203 (315) 422-4467 

192 August 1981 © BYTE Publications Inc 



Listing 5: The nextLifeGeneration method. This method calculates the next Life genera- 
tion given the BitBlt bitmap of the current generation. See figure 12. 



"temp areas larger by 1 " 
"bit all around" 



nextLifeGeneration | nbrl nbr2 nbr4 carry2 carry4 
nbrl — Form new extent: self extent + (2 @ 2). 
nbr2 — Form new extent: self extent + (2 @ 2). 
nbr4 — Form new extent: self extent + (2 @ 2). 
carry2 — Form new extent: self extent + (2 @ 2). 
carry4 — Form new extent: self extent + (2 @ 2). 
(1 @ 1) eiqhtNeighbors do: 

[.'delta f "delta equals a different neighbor-offset each time through this loop 

carry2 copyAIIFrom: 0@0 in: nbrl rule: STORing 

carry2 copyAIIFrom: delta in: self rule: ANDing. 

nbrl copyAIIFrom: delta in: self rule: XORing. 

nbr2 copyAIITo: @ in: carry4 rule: STORing. 

carry2 copyAIITo: @ in: carry4 rule: ANDing. 

carry2 copyAIITo: 0@0 in: nbr2 rule: XORing. 

carry4 copyAIITo: @ in: nbr4 rule: XORing]. 
nbr2 copyAIITo: 1 @ 1 in: self rule: ANDing. "perform logic to determine the survivors' 
nbr2 copyAIITo: 0@0 in: nbrl rule: ANDing. "(2s and self) or (2s and is))' 
nbrl copyAIITo: 1 @ 1 in: self rule: ORing. ' "...aiiAND(NOT4s)" 
nbr4 copyAIITo: @ in: self rule: NOTANDing "store next generation" 

"over self" 



"carry into 2" 
"sum I " 

"carry into 4" 
"sum 2" 
"sum 4" 




self 



neighbor counts 



IHHI! 



:i 



4 
111 



J2I 

11 



l._ 



nbrl 




next self 

IS 




■ 







n 


or4 






















































1 



















































Figure 12: Counting neighbors in the game of Life. 



(Newman and Sproull, Principles of 
Interactive Computer Graphics, 2nd 
edition, McGraw-Hill, 1979) under 
the name RasterOp. The implementa- 
tion described in that reference can 
easily be extended to include the full 
set of combinations, and the addition 



of clipping is also straightforward. 
Here, we add a few notes on efficien- 
cy gathered from experience. 

BitBlt is so central to the user inter- 
face that any improvement in its per- 
formance has considerable effect on 
the interactive quality of the system 

Circle 135 on inquiry card. — ► 



& 




3*^ 





Frustrating isn't it! No matter how 
much you speed up your program 
it still seems to take forever to save 
data onto a cassette. Wouldn't it 
be great if someone could design a 
mass storage system with the speed 
of a disk, but at half the cost? 
Exatron did, the Exatron Stringy 
Floppy (ESF) . 

Totally self-contained, the ESF 
is an extremely fast, reliable, and 
economical alternative to cassette 
or disk storage of programs or 
data. All of the ESF's operations 
are under the computer's control, 
with no buttons, switches, knobs or 
levers to adjust or forget. 

The ESF uses a miniature tape 
cartridge, about the size of a busi- 
ness card, called a wafer. The 
transport mechanism uses a direct 
drive motor with only one moving 
part. Designed to read and write 



w» 



digital data only, the ESF suffers 
from none of the drawbacks of 
cassettes - without the expense of 
disks. 

Several versions of the ESF are 
available, for the TRS-80, Apple, 
PET, OSI and an RS 232 unit. 
Even the slowest of the units is 15 
times faster than a cassette, and all 
are as reliable as disk drives - in 
fact a lot of users say they are more 
reliable! 




excellence in electronics 

exatron 



To get further information about 
the ESF give Exatron a call on 
their Hot Line 800-538 8559 
(inside California 408-737 7111). 

If you can't wait any longer then 
take advantage of their 30 day 
money-back guarantee, you've 
nothing to lose but time! 

181 Commercial Street 
Sunnyvale, CA 94086 







TRS-80, Apple and PET are trademarks of Tandy, Apple and Commodore respectively. 




STD BUS '6809' 

The newest in Datricon's family of low-cost 4th engines. 

MEMORY capacity to 40k bytes, RS232/RS422 SERIAL PORT 

and the powerful 6809 CPU, all on one 4.5 x 6.5 inch 

STD Bus Card 




29500 in one's 
OEM pricing available 

These Specifications Tell You More! 

Every way you look at it, this powerful STD Bus Processor uses Industry- 
wide Standards. 

STD Bus interface (both STD-Z80 and STD-6800 compatible) offers 
unprecedented user support with Analog, Power Input/Output, 
Disk and advanced communications protocols. 

SERIAL PORT supports RS232C or RS422 with full modem controls 
including software baud rate, from 50 to 19.2Kbaud. User 
selectable standard since RCVR/DRVR's are factory installed. 

BYTE-WIDE MEMORY concept permits the use of 20 currently avail- 
able memory devices from 2k x 8, 4k x 8, and 8k x 8 RAM, 
ROM and EPROM. 

QUALITY AND RELIABILITY 

Backed by Datricon's standard one year parts and labor warranty, 200 hour 
burn-in and extensive factory testing, our customers are assured of receiving 
high quality product. 

D-FORTH SOFTWARE 

Datricon's popular D-FORTH software available on the Series 12 and 14 is 
also available on the Series 09. Optimized for control systems, D-FORTH is 
high-level and interactive, it is especially useful in interactive control applica- 
tions such as testing and process monitor/control. Efficient memory utiliza- 
tion and rapid execution provide exceptional Return On Investment. 

Contact Datricon's nationwide staff of highly qualified sales representatives 
or the factory for information. 

lintricon 

CORPORATION 

QUALITY WITHOUT COMPROMISE 
503 - 284-8277 791 1 NE 33RD Drive Portland, Or 9721 1 



as a whole. In normal use of the 
Smalltalk-80 system, most calls on 
BitBlt are either in the extreme 
microscopic or macroscopic range. 
Let us examine these more closely. 

In the macroscopic range, the 
width of transfer spans many words. 
The inner loop across a horizontal 
scan line gets executed many times, 
and the operations requested tend to 
be simple moves or constant stores. 
Examples of these are: 

• Clearing a line of text to white 

• Clearing an entire window to white 

• Scrolling a block of text up or down 

It is fortuitous that most processors 
provide a fast means for block moves 
and stores, and these can be made to 
serve the applications above. Sup- 
pose we structure the horizontal loop 
of BitBlt as the following sequence: 

1. Move left partial word 

2. Move many whole words (or 
none) 

3. Move right partial word (or none) 

Special cases can be provided for item 
2 if the operation is a simple store or 
if it is a simple copy with no skew 
(horizontal bit offset) from source to 
destination. In this way, most macro- 
scopic applications of BitBlt can be 
made fast, even on processors of 
modest power. 

The microscopic range of BitBlt is 
characterized by a zero count for the 
inner loop in item 2, so that the work 
on each scanline involves, at most, 
two words. Both overall setup and 
vertical loop overhead can be con- 
siderably reduced for this case. 
Because characters tend to be less 
than a word wide and lines tend to be 
less than a word thick, nearly all text 
and line drawing fall into this 
category. A convenient way to pro- 
vide such efficiency is to write a 
special case of BitBlt that assumes the 
microscopic parameters, but goes to 
the general BitBlt whenever these are 
not met. Because of the statistics 
(many small operations and a few 
very large ones), it does not hurt to 
pay the penalty of a false assumption 
on infrequent calls. ■ 



194 August 1981 © BYTE Publications Inc 



! <I' 



rMS-80 

Organizes your 
Organization 



MS-80, a data base management system, oilers 
the user a quick and easy way to organize and 

efficiently manipulate data so sound decisions . 

can be made on facts displayed. 

FMS-80 000 "I 

is the 

most power- 
ful stand 

alone DBM 

program 

available 

the micro 

compute 

industry. 

Complet* 
menu dr 
and writ 
in assem 
language 
it offers 
these features: 

• User definable 
File Definitions ., 
Screen Displays I 
Reports (with |f 
math and field 
break analysis) 
Selection Criteria 
(on any or all 
fields) 

Menus (that ap- 
plications programs 
can be selected from) 

• Instantaneous data query on 
indexed records. 

• Mathematical manipulation 
of numeric data fields using 
the report generator or the 
programming language EFM 
(Extended File Maintenance) 

• Easy to use video "how to" 
training tapes are available. 

• Manipulation of up to 19 differ- 
ent data files (using EFM) 
at one time and display-, 
ing this information 
on the screen, "«*>•">-. 



rating reports, generating other data files or on- 
line updating of input files that already exist 
FMS-80 is able to call other programs like sub- 
routines in EFM 

FMS-80 is able to read data files that other 
programs have- generated 
No restrictions to record .size other than avail- 
able RAM memory space 
Operates under CP/Mf MP/M" or CDOS 00 



FMS-80 allows the flexibility to quickly create 

programs that 
allow data to be 



A ^ ■ ■ ^ entered in a 

/ 'f^*iJH — 5* "* I form that 

fSfff, " flj? — '., a. secretary 

' e&>A f>" ! ' * \ih* recognizes 



a secretary 




. ' ▼ \* recognizes 

and 
' generates 

reports 
that the 
manager requires. 

If you're continuously asked to 

do applications programs and 

don't have time to do it in 

BASIC, consider FMS-80. 

For additional 

information contact 

Systems Plus, 

3975 East Bayshore, 

Palo Alto, CA 

s\ 94303. Phone 

415/969/7047 



Systems Plus 



Circle 371 on inquiry card. 



BYTE August 1981 195 



ALL THE 

PROGRAMS 

YOU'LL 





FOR 



Say goodbye to the costs and 
frustrations associated with writing software: 
The Last One® will be available very soon. 

More comprehensive and advanced 
than anything else in existence, 
The Last One® is a computer program that 
writes computer programs. Programs that 
work first time, every time. 

By asking you questions in genuinely 
plain English about what you want your 
program to do, The Last One® uses those 
answers to generate a totally bug-free 
program in BASIC, ready to put to 
immediate use. 

What's more, with The Last Onef 
you can change or modify your programs as 
often as you wish. Without effort, fuss or any 
additional cost. So as your requirements 
change, your programs can too. 




In fact, it's the end of programming 
as you know it. 

And if, because of the difficulties and 
costs of buying, writing and customising 
software, you've put off purchasing a 
computer system up to now, you need delay 
no longer. 

The Last One® will be available very 
soon from better computer outlets. To place 
your order, take this ad into your local 
dealer and ask him for further details. Or in 
case of difficulty, please write to us direct. 



® 



THEMSTONE 



YOU'LL NEVER NEED BUY ANOTHER PROGRAM. 

D.J. 'AT Systems Ltd., Ilminster, Somerset, TA19 9BQ- England 

Telephone: 04605-4117. Telex: 46338 ANYTYR G. 



196 BYTE August 1981 



Circle 188 on inquiry card. 



BYTE's Bits 




Apple Displaces 
Organ at Wedding 

The organ at St Bar- 
tholomew Church, Cincin- 
nati, Ohio, stood idle at the 
wedding of Curt Brookbank 
and Libby Nieman, but the 
traditional wedding music of 
Wagner and Mendelssohn 
sounded as if an organist 
were hard at work. The 



organist was an Apple II. Ms 
Nieman, a buyer in the 
calculator department of the 
21st Century Computer store 
in Cincinnati, decided on 
computerized wedding music 
after playing some com- 
puterized Christmas carols. 
The Apple II computer was 
equipped with ALF and 
Mountain music boards. 



Old Altalrs 
Never Die . . 



Five years ago, a computer 
built by students at Venice 
(California) High School 
began operation. Today that 
computer, and a duplicate 
built one semester later, are 
still operating. The com- 
puters, Altair 8800s, were 
built from kits for about 
$2000 each, which at the 
time was about a fourth of 
what an equivalent commer- 
cial computer would have 
cost. The school's principal at 
the time, Arnold Miller, 
agreed to buy the computer 
kits not only for the saving in 
cost but also for the educa- 
tional value to the students 
who would build them and 
those who would use them. 

The computers, running 
eight hours almost every day, 
have served hundreds of 
students in computer pro- 
gramming classes and in 
math classes. But the most 



enthusiastic users are those 
students who crowd the com- 
puter room before and after 
school and at other times to 
play computer games. 

The student-built com- 
puters have been very reli- 
able. They have never had a 
serious malfunction, re- 
quiring only the replacement 
of two integrated-circuit 
memory chips. The biggest 
maintenance problems have 
been mechanical, primarily 
the keyboards, which have 
taken a tremendous amount 
of pounding over their ap- 
proximately 8000 hours of 
operation. It is estimated that 
total maintenance costs over 
five years for both Altairs 
have been less than $50. 

It is estimated that each 
Altair represents an expen- 
diture of $3000 including in- 
itial cost and additions and 
improvements over the five- 
year period. This yields a 
student-hour cost of less than 
one-half dollar. ■ 



FORTRAN IV 



for CP/M 



"I needed a FORTRAN with 
COMPLEX as well as REAL and 
DOUBLE precision arithmetic, 
that would produce relocatable 
code and link in assembly lan- 
guage subroutines. It also had to 
be a FORTRAN that was easy to 
use as well as being a complete 
implementation. SuperSoft/SSS 
FORTRAN is the only microcom- 
puter FORTRAN that met my re- 
quirements." 

Supersott makes full WATFIV 
FORTRAN IV available to micro- 
computers. Supersoft/SSS FOR- 
TRAN meets and exceeds the 
ANSI 1966 standard. The com- 
piler supports many advanced 
features including: variable 
character strings and recursive 
subroutines with static variables. 
Fully compatible RATFOR is also 

available. 

FEATURES 

Code ROMable" COM" files or 

generation: intermediate code files 
(saves disk space). Ex- 
ternal routines may be 
called. Relocatable format. 

Data types: Byte, Integer, real, dou- 
ble precision, complex, 
logical, character and 
varying length strings. 

Operations: All standard operations 
plus string comparisons, 
assignments, and .XOR. 



Constants: Hexadecimal, decimal, 
and character literals 
with features to imbed 
control characters. 

Statements: ANSI 1966 standard with 
multiple statement lines. 

Controls: Map, List, and Symbol 
table output options. 

I/O: Read, Write, Append, Re- 

wind, Close, Delete, Re- 
name, Search, Sequen- 
tial and Random I/O on 
disk files. Supports all 
CP/M devices. 

System Requirements & Prices 

SSS FORTRAN requires a 32k CP/M 

system. Z80 only. 
SSS FORTRAN with RATFOR: $325 
SSS FORTRAN alone: $250 

Manual only: $ 25 

RATFOR alone: $100 

Macro Assembler: $ 80 



CP/M Formats: 8" soft sectored, 5" Nor- 
thstar, 5" Micropolis Mod II, Vector M2, 
Superbrain DD/QD Apple II + 

All Orders and General 

Information: 

SUPERSOFT ASSOCIATES 

P.O. BOX 1628 

CHAMPAIGN, IL 61820 

(217)359-2112 

Technical Hot Line: (217) 

359-2691 

(answered only when technician 

is available) 



At lost, Q FORTRAN that will 
run my large mainframe 
programs." 




SuperSoft 



First in Software Technology 



•CP'M REGISTERED TRADEMARK DIGITAL 
RESEARCH 



SSS FORTRAN is the copyright ol 
Small Systems Services. Urbana. Illinois 




McGraw-Hill helps you do business 
in the People's Republic of China. 



■ « ^ «o m i* * -at 

"I don t know who you art- 
1 don't know your company 
[ don't know vour company's product 

*^ wan* eft 4* w'ft«i <+ 2. 

l don't know what vour compan\ stands for 
I don't know vour company's customers 

« ^ « an* eu i* m';h-m<g.» 

I don't know your company's record 

w =^ *n on* e*i *i a] at) *■ » so ra- 

I don't know vour companv's reputation 
SB £. , <* SJ * * -ft 2. » * QB ? ' 
Now -what was it vu wanted to sell us?" 



You know how advertising in 
McGraw-Hill magazines helps your com- 
pany contact prospects, arouse interest in 
products, overcome sales resistance, and 
create preference when you're selling to 
businesses here in America. 

But you may not know that McGraw- 
Hill's American Industrial Report can do the 
very same things to help you sell to your 
toughest prospects in the People's Republic 
of China. And you also may not know that 
American Industrial Report, as the first U.S. 
technical magazine accepted into modern 
China, has more than five years of experi- 
ence and marketing expertise. 

During the early 1980's, the People's 
Republic of China will spend an estimated 
$30 billion-plus for foreign technology and 
capital goods. By 1985, they'll be buying a 
projected total of $12-15 billion worth from 
companies in the United States. 

Obviously, the People's Republic of 
China is an important new market for 
American manufacturers. 

But it's one thing to identify an impor- 
tant new market. And quite another to suc- 
cessfully capture a share of it. 

Selling industrial products in the RR.C. 
involves the same problems as selling them 
in the U.S. 

Plus the problems of a different lan- 
guage and culture. And a different political, 
economic and foreign trade system. 

There are almost 1 billion Chinese. 
McGraw-Hill's American Industrial 
Report reaches the .1%you need 
to do business with. 

Every month, American Industrial 
Report reaches 35,000 end-users, engineers, 
managers, Foreign TVade Corporation and 



ministry officials. With an estimated pass- 
along of 50 readers per copy, that gives you 
exposure to 1 million Chinese — the .1% of 
the population who, as key decision-makers, 
are your key prospects. 

American Industrial Report also helps 
you reach them in their own language. With 
free translation of your advertising copy 
into modern Chinese characters — the kind 
used in technical journals in the RR.C, not 
Hong Kong or Singapore. We also give you 
free, expert advice on how to avoid the kind 
of political and cultural errors that could 
alienate or confuse the very people you're 
trying to sell to. 

A free guide to selling in the P.R.C. 
and to the magazine that helps 
you do it. 

American Industrial Report would like 
to share what it's learned over more than 
five years of serving end-users in the People's 
Republic of China — and serving American 
advertisers who want to sell to them. 

We've put it all into a free 84- page 
guidebook, which you can get by writing 
American Industrial Report, 1221 Avenue of 
the Americas, New York, New York 10020. 
Or calling Robert Christie at 212-997-6730. 

Write or call for your copy today. 

Now that the People's Republic of China 
has opened the door, see how American 
Industrial Report can help you get a foot in it. 



frill r 

McGraw-Hill Magazines 



314 5th Ave. (32 ST) N.Y.C., N.Y. 10001 
Tel: (212) 279-9034 & ask for enquiries 



EPSOM 



MX70 
$379 



*fe 




The 150 cps Quality Printer 




MODEL 6000 $1299 



OKI 



Call for $ 



FRICTION / TRACTOR 
MODEL call for $ 



FRICTION CONVERSION 
KIT for your EPSON Tractor 
Printer only $ 69 



VIC SO 

"8 colors ■ built in "Sound generation 
- built in "Programmable function keys 
*5k memory expandable to 32k "Stan- 
dard PETBASIC in ROM "Full size 
keyboard "Graphics character set 

$ 299 4k inc. color * 



Atari 

MODEL 400 $349 
MODEL 800 $779 



TYMAC APPLE 
TO CENTRONICS 
INTERFACE CARD 
including CABLE $ 1 19.99 



198 August 1981 © BYTE Publications Inc 



Circle 417 on Inquiry card. 



Circle 155 on Inquiry card. 



At Hayes, we don't believe in sec- 
ond best. Or planned obsolescence. We 
believe in taking the state of the art to the 
limit. Our new Smartmodem, for exam- 
ple, is the most sophisticated 300-baud 
originate/answer modem you can buy. 
And yet, it is perhaps the easiest-to-use 
modem ever. 

RS-232C Compatible. Smartmodem 
lets any RS-232C compatible computer 
or terminal communicate by phone with 
other computers and time-sharing sys- 
tems located anywhere in North America. 
You get full and half-duplex operation 
with both Touch-Tone* and pulse dialing. 

Auto-Answer/ Dial /Repeat. 
Smartmodem can answer the phone, dial 
a number, receive and transmit data, and 
then hang up the phone- automatically! 
If desired, Smartmodem will even repeat 
the last command. You can depend on 
Smartmodem for completely unattended 
operation. 

Completely Programmable. 
Smartmodem can be controlled using 




Microcomputer Component Systems 

any programming language. Over 30 dif- 
ferent commands can be written into your 
programs or entered directly from your 
keyboard. 

Smartmodem also includes sever- 
al switch-selectable features that let you 
tailor performance to your exact needs. 
You can "set it and forget it" for the ulti- 
mate in convenience. 

Built-in Audio Monitor. Thanks 
to an internal speaker, you can actually 
listen to your connection being made. 
You'll know immediately if the line is busy 
or if you reached a wrong number - 



and you don t even need a phone! 

Status at a Glance. Seven LED s 
indicate Smartmodem's current operating 
mode: auto-answer, carrier detect, off 
hook, receive data, send data, terminal 
ready and modem ready. You're never 
left in the dark! 

Direct-Connect Design. 
Smartmodem is FCC registered for di- 
rect connection to any modular phone 
jack— there's no acoustic coupler to cause 
signal loss and distortion. 

Smartmodem, Smart Buy. Pro- 
fessional quality features. Versatile per- 
formance. A full two-year limited warranty. 
A suggested retail price of only $279. 

What more could you want? Per- 
haps the matching Hayes Stack Chrono- 
graph, an RS-232C compatible calendar/ 
clock system. 

Check out the Smartmodem wher- 
ever fine computer products are sold. 
And don't settle < ■> 
for anything less 111 L|o*«iO 
than Hayes. I" I ndyCo 



Smartmodem. 

The ultimate concept in modems 

is now a reality. 





1L > 

Hayes Mjefocdmp 



Corners East, Norcross, Georgia 30092 (404) 449-87|l (yj 

l/licrQcatwpuhfrPibiacteJnc- Sulci ijhiy in trie U S.A. ' TM American Telephone and Telegraph © 1981 Hayes Micraj^putej*Pfoducts. Inc. 










Illustration by Jonathan Graves 




The 

Japanese 

Computer Invasion 



Whenever computer-industry peo- 
ple get together these days the con- 
versation inevitably turns to the so- 
called "Japanese Computer 
Invasion." From conversations I've 
overheard, it sometimes seems that 
there is an invasion fleet of Japanese 
ships off the West Coast, waiting to 
establish a beachhead in Silicon 
Valley. 

Cutting through the paranoia, 
rumors, and just plain false informa- 
tion about the Japanese computer in- 
dustry is a time-consuming and 
frustrating undertaking. It is further 
complicated by the intense secrecy of 
the Japanese, who, unlike their 
American counterparts, never talk off 
the record. 

This article focuses on the Japanese 
companies who are (or soon will be) 
marketing personal computers in the 
United States. Make no mistake: 
Japanese computers are com- 
ing — with long-term implications for 
the American marketplace. 



The Japanese Computer Industry 

Contrary to popular belief, there is 
no such thing as "Japan 
Incorporated." Although many 



Stan Miastkowski, Technical Editor 

Americans view Japanese industry as 
one huge conglomerate working to 
take over foreign markets, the truth is 
that the Japanese computer industry 
is a group of fiercely competitive 
companies. It is that competition that 
fuels a rich variety of high-quality 
Japanese consumer electronic pro- 
ducts. 

Another strong reason for the 
quality of Japanese products is that in 
Japan a worker generally stays with 
one company throughout his or her 
working life. Unlike American in- 
dustry, where labor and management 
are often at odds, Japanese workers 
feel a strong loyalty toward their 
employers, who pay them back with 
virtually guaranteed lifetime employ- 
ment and carefully listen to their sug- 
gestions and complaints. This 
cooperation between management 
and labor produces a climate where 
each worker feels personally respon- 
sible for product quality. 

Finally, one of the strongest points 
working in favor of the Japanese 
computer industry is that almost 
without exception the companies are 
vertically integrated — they control all 
aspects of the product, from 
manufacturing the silicon integrated 



circuits to marketing the products. 
This integration allows the Japanese 
to closely control costs and ensure 
product quality. 



Fujitsu — the Company to Watch 

Fujitsu Limited is the largest com- 
puter company in Japan, taking that 
coveted position by racking up $1.55 
billion in computer sales during the 
year ending in April 1980. It edged 
past the Japanese subsidiary of 
IBM— which had sales of $1.54 
billion during the same period. 
Although the margin was small, it 
gave the Japanese an important 
psychological boost — it was the first 
time that a Japanese computer com- 
pany was number one in Japan. In the 
year ending this past April, Fujitsu 
pulled ahead even further. 

Unlike the other Japanese con- 
glomerates that have entered the 
computer market, Fujitsu's main 
business is computers. Although in- 
volved in a number of related fields, 
Fujitsu's interests do not seem to lie in 
the broad-ranging diversification of 
most of the other Japanese giants. 

It would be a mistake not to think 
that Fujitsu is serious about the 



200 August 1981 © BYTE Publications Inc 



Circle 237 on inquiry card. 




'JnOfc. 



WHY SETTLE FOR A 68000 BASED microCOMPUTER 
WHEN YOU CAN HAVE OUR 68K™ MINICOMPUTER ? 



FEATURES: 



8 MHz 68000 CPU 



Virtual memory to 4 billion bytes 



6809 peripheral processor 



Multi-user/multi-tasking memory management 
Each RAM board accomodates 2 megabytes 



-fe Attend the 

our experts will field your 68K questions and discuss: 
ccsr 68000 architecture 
ccsr 68K MiniFrame architecture 

ccsr 68K hardware interface 
<CSF MiniFrame programming 

ICW $85 registration fee includes all-day seminar, 
lunch, and take-home documentation 



High-speed DMA for universal hard disk interface 



6 RS-232 and 4 8-bit I/O ports standard 



Dual 8" quad-density floppys 



Extensive error checking and recovery 



from 



MicroDaSys 



Dept. 5B, P.O.Box 36051 
Los Angeles, CA. 90036 
(213)731-0876 



ICW in Los Angeles 

/Please call or write for 68K 
MiniFrame information and 
the complete 1981 
seminar schedule. 




K*<fy 



worldwide computer market. It owns 
27.6% of Amdahl— the California- 
based manufacturer of IBM- 
compatible mainframe computers. It 
is also making strong inroads into the 
European market with its business 
ties to the West German electronics 
company Siemens. In contrast to 
other Japanese computer makers, 
who spend 5 to 6% of their sales on 
research and development, Fujitsu 
consistently sinks 10 to 12% of its 
sales into R&D. The company has 
come a long way since the early 
1960s, when it approached IBM 
about a joint venture to design and 
build computers for the Japanese 
market. At that time IBM flatly 
turned them down. 

The TRW/Fujitsu Connection 

It's obvious that the United States 
will be the next target for Fujitsu. 
Early on, the company realized that it 
would have to have strong ties to US 
companies in order to compete in our 
market. One of the main reasons for 
this is that Fujitsu is an intensely 



Japanese company. Fujitsu's president 
rarely meets with foreigners and has 
broken off discussions in the past 
because of alleged breaches of Japan's 
strict business protocols. 

The purchase of a partial interest in 
Amdahl was one of its first steps in 
the United States designed to create 
competition in the large-systems 
business. Fujitsu has also set up a 
marketing-service organization for its 
line of Winchester-technology hard- 
disk drives designed for small and 
medium systems. In fact, a low-cost 
5Vi-inch Winchester disk designed 
expressly for personal computers is 
expected to be available by the time 
you read this. 

Last year, Fujitsu signed an agree- 
ment with another California-based 
company, TRW. Fujitsu agreed to 
supply computers, with TRW pro- 
viding software development and 
support as well as a nationwide sales 
and service network. 

The power of the TRW/Fujitsu 
connection cannot be overempha- 
sized. TRW/Fujitsu Vice-President 



ATTENTION GOVERNMENT D P 
USERS AND PURCHASERS 

We represent many fine micro products and manufacturers 
on the U.S. Government's GSA Schedule, including 

Apple, Cromemco, Micropolis 
and Seequa Computers 

Purchasing from the Schedule will save you the time 
consumed by the bid process. Products shipped throughout 
the United States and world-wide. Visit or write any of our 
stores for more information or to receive our catalogue of 
products represented. 



< 






the dependable store 



257 West Street, Annapolis, MD 21401 - (301) 268-6505 

13A Allegheny Avenue, Towson, MD 21204 - (301) 296-0520 

9330 Georgia Avenue, Silver Spring, MD 20910 - (301) 588-3748 

6671 Backlick Road, Springfield, VA 22150 - (703) 644-5500 

Plaza 38, 2442 Route 38, Cherry Hill, NJ 08002 - (609) 779-0023 

Callers outside metropolitan areas served by our stores 

Please call (301) 268-5801 

Career Opportunities Available * An Equal Opportunity Employer 



Garret Fitzgibbons told me the com- 
pany plans a complete line of com- 
puters and peripherals aimed square- 
ly at the personal and small-business 
markets. Late last year, the company 
displayed a prototype of a computer 
that was recently introduced. The 
Facom 9450, tentatively priced at 
$8000-plus, is an extremely powerful 
system with a custom-designed 16-bit 
microprocessor. Included in the price 
are an 80-column video display, two 
5V4-inch floppy-disk drives, and a 
letter-quality printer. 

The most revolutionary result of 
the TRW/Fujitsu connection is in its 
final development stage. Tentatively 
named the Bubcom 80, it is a machine 
that uses bubble memory, a 
technology that American companies 
have been reluctant to implement. 
(Bubble memory stores information 
in nonvolatile magnetic bubbles.) 

The Bubcom 80 uses 32 K-byte 
memory cartridges; 128 K-byte car- 
tridges are scheduled to be introduced 
in 1982. The computer is based 
around a Z80 microprocessor and 
comes with 64 K bytes of standard 
programmable memory. The Bubcom 
80 runs CP/M and comes complete 
with an updated version of Microsoft 
BASIC. 

Recently introduced in Japan, the 
Bubcom 80 sells for the equivalent of 
about $1200 with one bubble memory 
cartridge. Extra cartridges are about 
$130. 

But that's not all from the people at 
Fujitsu/TRW. Their real personal 
computer blockbuster, soon to be in- 
troduced in the United States, is the 
Micro-8. This machine uses twin 
Motorola 6809 microprocessors to 
greatly increase speed, and the 
package includes full-color 
graphics. The Micro-8 has Microsoft's 
Extended Color BASIC (now 
available in the TRS-80 Color Com- 
puter) and will sell for about $1000. 

In addition, a plug-in Z80 card will 
convert the Micro-8 into a CP/M 
machine. Also available are UCSD 
Pascal and the 32 K-byte bubble 
memory cartridges that will be stan- 
dard in the Bubcom 80. 

Early in March, a high-end 

Text continued on page 206 



202 August 1981 © BYTE Publications Inc 



Circle 79 on inquiry card. 



f Maker D: 

it not only does more than VisiCak, 

it does it on your computer. 



VisiCalc is a fine aid for the computation of numerical 
problems. But it does have two major limitations: it is 
available only for a small number of systems, and its use 
is limited strictly to numbers, not words. To overcome 
these substantial limitations, Lifeboat Associates intro- 
duces T/Maker II. 

Unlike VisiCalc, T/Maker II is designed to run on most 
small business computers with CP/M® or similar operat- 
ing systems and a video terminal with cursor addressing 
capabilities. And soon there will be T/Maker II versions 
available for UNIX,™ RT-11™ and other systems. 
Works with words as well as numbers. Like VisiCalc, 
T/Maker II reduces the manual tasks involved in comput- 
ing and calculating financial documents. But since most 
business problems and reports involve words as well as 
numbers, T/Maker II also functions as a full-screen text 
editor for word processing. 

T/Maker II is the most advanced aid for the analysis and 
presentation of numerical data and text material. In a 
matter of minutes, an entire document— including all 
edited text, all figures and all calculations— can be created, 
reviewed on your screen and reported in printed form. 

T/Maker II turns your small business computer into a 
powerful, sophisticated and convenient tool. A tool that 
will save you money, time and energy, and eliminate the 
need for costly time-sharing. 

With T/Maker II you can easily perform an unlimited 
number of analytical and reporting tasks which integrate 
numerical and text processing. You'll find T/Maker II per- 
fect for such things as: 



rows and columns, define the relationships and T/Maker II 
will do the rest: it will perform the computations and for- 
matting necessary to prepare your document. When 
you're finished you can analyze your report on your 
screen or store it on a diskette. Or, you can have the report 
printed with presentation quality. 

And when any changes have to be made, simply enter 
the new figure or relationship and tell T/Maker II to adjust 
and recalculate all the new results. 
Editing capabilities. As a full-screen editor for word 
processing, T/Maker II handles text up to 255 characters 
wide. It includes features like text formatting and justifica- 
tion, centered titles, a text buffer for block moves and 
repeated inserts, global search and replace commands 
for printing your letters, reports and documents. Wide 
documents are supported by horizontal scrolling. 
Low cost. The cost of T/Maker II is only $275 plus shipping 
and handling. Dollars well spent once you consider all the 
time, energy and money it can save. T/Maker II is brought 
to you exclusively and supported completely by Lifeboat 
Associates, world's largest computer software publisher. 
For more information send us the coupon below. 



r, 

i 
i 
i 



• Financial Statements 

• Statistics 

• Profitability Reports 

• Revenue and Expense 
Analyses 

• Portfolio Evaluations 



• Price Lists 

• Rate Structures 

• Expense Accounts 

• Cash Flow 
Projections 

• Checking Account 
Reconciliations 



Mail coupon to: Lifeboat Associates, 2005 

1651 Third Ave., NY, NY 10028. Or call (212) 860-0300. 

D Please send me more information on 
T/Maker II. 

D Please send me a free Lifeboat 
Catalog featuring over 200 programs, 
including integrated accounting 
and professional practice systems, 
office tools for bookkeepers and secre- 
taries and sophisticated tools for pro- 
grammers. 



Name_ 
Title 



Company- 
Street 

City 

State 



_Z,p_ 




T/Maker II is a trademark ol P. Roizen. 
CP/M is a trademark of Digital Re- 
search, Inc. VisiCalc is a trademark of 



Personal Soft ware, Inc. UNIXisatrclde- 
mark of Bell Laboratories. RT-11 is a 
trademark of Digital Equipment Corp. 



. . . and much, much more. 

Easy to learn and use. You don't have to be a program- 
mer to operate T/Maker II. Just follow T/Maker II s easily- 
understood and ordered instructions, set up your data in 
As an example of what T/Maker II can do, see the chart below. The operator entered only the data shown in boldface. 

T/Maker II calculated and reported all the other values. 







— Actual — 




Growth 




Total 




— Projected— 






1978 


1979 


1980 


Rate 


Average 


(000's) 


1981 


1982 


1985 


Item A 


42,323 


51,891 


65,123 


24.04 


53,112 


159.34 


80,782 


100,206 


191,262 


ItemB 


45,671 


46,128 


49,088 


3.67 


46,962 


140.89 


50,891 


52,761 


58,791 


Total 


87,994 


98,019 


114,211 


13.93 


100,075 


300.22 


131,673 


152,966 


250,053 


% Item 


48.10 


52.94 


57.02 


8.88 


52.69 


158.1 


61.35 


65.51 


76.49 


% Item 


51.90 


47.06 


42.98 


-9.00 


47.31 


141.9 


38.65 


34.49 


23.51 


Total 


100.00 


100.00 


100.00 


~ 


100.00 


300.0 


100.00 


100.00 


100.00 



LIFEBOAT WORLDWIDE offers you the world's largest library of software. Contact your nearest dealer or Lifeboat: 

Lifeboat Associates Lifeboat Inc. Lifeboat Associates. Ltd. Lifeboat Associates GmbH Intersoff GmbH 

1651 Third Ave OK Bids.. 5F P0 Box 125 P0 Box 168. Aegeristrasse 35 Schlossgartenweg 5 

New York. NY, 10028 1-2-8. Shiba-Daimon London WC2H 9LU. England CH 6340 Baar, Switzerland D-80451smaning, W. Germany 

Tel- (212) 860-0300 Miriato-ku. Tokyo, 105 Japan Tel: 01-836-9028 Tel: D42-3I-2931 Tel: 089-966-444 

Telex: 640693 (LBS0FT NYK) Tel: 03-437-3901 Telex: 893709 (LBS0FTG1 Telex: 865265 (MIC0 CH) Telex: 5213643 (IS0FD) 

TWX: 710-581-2524 Telex: 2422723 (ASRTY0J) m mm m /UK » 

lifeboat Associates 



Circle 197 on Inquiry card. 



Software with full support 



Lifeboat Associates, SARL 

10. Grande Rue Charles de Gaulle 

92600 Asnieres, France 

Tel: 1-733-08-04 

Telex: 250303 (PUBLIC X PARIS) 



BYTE August 1981 203 



DYNACOMP 

Quality software for*: 

ATARI TRS-80 (Level II)** 

PET NORTH STAR 

APPLE II Plus CP/M Disks/Diskettes 



CARD GAMES 



BRIDGE 2.0 (Available for -II computers) Price: $17.95 CRsselte/$21.95 Diskette 

An all-inclusive version of this most popular of card games. This program both BIDS and PLAYS 
either contract or duplicate bridge. Depending on the contract, your computer opponents will either 
play the offense OR defense. If you bid too high, the computer will double your contract! BRIDGE 2.0 
provides challenging entertainment for advanced players and is an excellent learning tool for the bridge 
novice. See the software review in 80 Software Critique. 

HEARTS 1.5 (Available for all computers) Price: $15.95 Cass«tte/Sl9.95 Diskette 

An exciting and entertaining computer version of this popular card game. Hearts is a trick-oriented 
game in which (he purpose is not to take any hearts or the queen of spades. Play against two computer 
opponents who are armed with hard-to-beat playing strategies. HEARTS 1.5 is an ideal game for in- 
troducing the uninitiated (your spouse) to computers. See the software review in 80 Software Critique. 

STUD POKER (Atari only) Price: $11.95 Cassette/$15.95 Diskette 

This is the classic gambler's card game. The computer deals the cards one at a time and you (and the 
computer) be! on what you see. The computer does not cheat and usually bets the odds. However, it 
sometimes bluffs! Also included is a five card draw poker betting practice program. This package will 
run on a 16K ATARI. Color, graphics, sound. 

POKER PARTY (Available for all computers) Price: $17.95 Cassette/$21.95 Diskette 

POKER PARTY is a draw poker simulation based on the book, POKER, by Oswald Jacoby. This is 
the most comprehensive version available for microcomputers. The party consists of yourself and six 
other (computer) players. Each of these players (you will get to know them) has a different personality 
in the form of a varying propensity to bluff or fold under pressure. Practice with POKER PARTY 
before going to that expensive game tonight! Apple Cassette and diskette versions require a 32 K (or 
larger) Apple 11. 

CR1BBAGE 2.0 (TRS-80 only) Price: $14.95 Casselle/$18.95 Diskette 

This is simply the best cribbage game available. It is an excellent program for (he cribbage player in 
search of a worthy opponent as well as for the novice wishing to improve his game. The graphics are 
superb and assembly language routines provide rapid execution. See the software review in 80 Software 
Critique. 



THOUGHT PROVOKERS 

MANAGEMENT SIMULATOR (Atari, North Star and CP/M only) Price: $19.95 Cassette 

$23.95 Diskette 
This program is both an excellent teaching tool as well as a stimulating intellectual game. Based upon 
similar games played at graduate business schools, each player or team controls a company which man- 
ufacturers three products. Each player attempts to outperform his competitors by setting selling prices, 
production volumes, marketing and design expenditures etc. The most successful firm is the one with 
the highest stock price when the simulation ends. 

FLIGHT SIMULATOR (Available for all computers) Price: $17.95 Cassette/$21.95 Diskette 

A realistic and extensive mathematical simulation of take-off, flight and landing. The program utilizes 
aerodynamic equations and the characteristics of a real airfoil. You can practice instrument approaches 
and navigation using radials and compass headings. The more advanced flyer can also perform loops, 
half-rolls and similar aerobatic maneuvers. Although this program does not employ graphics, it is ex- 
citing and very addictive. See the software review in COMPUTRONICS. 

V ALDEZ (Available for all computers) Price: $15.95 Cas*«tte/$ 19.95 Diskette 

VALDEZ is a computer simulation of supertanker navigation in the Prince William Sound/Valdez 
Narrows region of Alaska. Included in this simulation is a realistic and extensive 256 x 256 element 
map, portions of which may be viewed using the ship's alphanumeric radar display. The motion of the 
ship itself is accurately modelled mathematically. The simulation also contains a model for the tidal 
patterns in the region, as well a; other traffic (outgoing tankers and drifting icebergs). Chart your 
course from the Gulf of Alaska to Valdez Harbor! See the software review in 80 Software Criiique. 

BACKGAMMON 2.0 (Atari, North Star and CP/M only) Price: $14.95 CasMtte/SlS.95 Diskette 

This program tests your backgammon skills and will also improve your game. A human can compete 
against a computer or against another human. The computer can even play itself, Either the human or 
(he computer can double or generate dice rolls. Board positions can be created or saved for replay. 
BACKGAMMON 2.0 is played in accordance with the official rules of backgammon and is sure to pro- 
vide many fascinating sessions of backgammon play. 

CHECKERS 3.0 (PET only) Price: $16.95 Casseiie/$20.95 Diskette 

This is one of the most challenging checkers programs available. It has 10 levels of play and allows the 
user to change skill levels ai any time. Though providing a very tough game at level 4-8, CHECKERS 
3.0 is practically unbeatable at levels 9 and 10. 

CHESS MASTER (North Star and TRS-80 only) Price: $19.95 Qusette/$23.95 Diskette 

This complete and very powerful program provides five levels of play. It includes castling, en passant 
captures and (he promotion of pawns. Additionally, the board may be preset before the start of play, 
permitting the examination of "book" plays, To maximize execution speed, the program is written in 
assembly language (by SOFTWARE SPECIALISTS of California), Full graphics are employed in the 
TRS-80 version, and two widths of alphanumeric display are provided to accommodate North Star 
users. 

NOMINOES JIGSAW (Atari, Apple and TRS-80 only) Price: $16.95 Cassette/$20.95 Diskette 
A jigsaw puzzle on your computer! Complete the puzzle by selecting your pieces from a table consisting 
of 60 different shapes. NOMINOES JIGSAW is a virtuoso programming effort. The graphics are 
superlative and the puzzle will challenge you with its three levels of difficulty. Scoring is based upon the 
number of guesses taken and by the difficulty of the board set-up. 

MONARCH (Atari only) Price: $1 1 .95 Cassette/$15.95 Diskette 

MONARCH is a fascinating economic simulation requiring you to survive an 8-year term as your na- 
tion's leader. You determine the amount of acreage devoted to industrial and agricultural use, how 
much food to distribute to the populace and how much should be spent on pollution control. You will 
find that all decisions involve a compromise and that it is not easy to make everyone happy. 

CHOMP-OTHELLO (Atari only) Price: $1 1.95 CuHlte/$15.95 Diskette 

CHOMP-OTHELLO? It's really two challenging games in one. CHOMP is similar in concept to NIM; 
you must bite off part of a cookie, but avoid taking the poisoned portion. OTHELLO is the popular 
board game set to fully utilize the Atari's graphics capability. It is also very hard to beat! This package 
will run on a I6K system. 



DYNACOMP OFFERS THE FOLLOWING 

• Widest variety 

• Guaranteed quality 

• Fastest delivery 

• Friendly customer service 

• Free catalog 

• 24 hour order phone 



AND MORE... 

STARTREK 3.2 (Available for all computers) Price: $11.95 Cassette/$I5.95 Diskette 

This is the classic Starlrek simulation, but with several new features. For example, the Klingons now 
shoot at the Enterprise without warning while also attacking starbases in other quadrants. The 
Klingons also attack with both light and heavy cruisers and move when shot at! The situation is hectic 
when the Enterprise is besieged by three heavy cruisers and a starbase S.O.S. is received! The Klingons 
get even! Sec the software reviews in A.N.A.L.O.G., 80 Software Critique and Game Merchandising. 

BLACK HOLE (Apple only) Price: $14.95 Cassette $18 .95 Diskette 

This is an exciting graphical simulation of the problems involved in closely observing a black hole with 
a space probe. The object is to enter and maintain, for a prescribed time, an orbit close to a small black 
hole . This is to be achieved without coming so near the anomaly that the tidal stress destroys the probe. 
Control of the craft is realistically simulated using side jets for rotation and main thrusters for accelera- 
tion. This program employs Hi-Res graphics and is educational as well as challenging. 

SPACE TILT (Apple and Atari only) Price: $10.95 Casselle/SU.95 Diskette 

Use the game paddles to tilt the plane of the TV screen to "roll" a ball into a hole in the screen. Sound 
simple? Not when the hole gets smaller and smaller! A built-in timer allows you to measure your skill 
against others in this habit-forming action game. 

MOVING MAZE (Apple only) Price: $10.95 Cassette. $14.95 Diskette 

MOVING MAZE employs the games paddles to direct a puck from one side of a maze to the other. 
However, the maze is dynamically (and randomly) built and is continually being modified. The objec- 
tive is to cross the maze without touching (or being hit by) a wall. Scoring is by an elapsed time in- 
dicator, and three levels of play are provided. 

ALPHA FIGHTER (Atari only) Price: $14.95 Cuselte/SIB.95 Diskette 

Two excellent graphics and action programs in one! ALPHA FIGHTER requires you to destroy the 
alien starships passing through your sector of the galaxy. ALPHA BASE is in the path of an alien UFO 
invasion; let five UFO's get by and the game ends. Both games require the joystick and get progressive- 
ly more difficult the higher you score! ALPHA FIGHTER will run on 16K systems. 

INTRUDER ALERT (Atari only) Price: $16.95 Cassette /$20. 95 Diskette 

This is a fast paced graphics game which places you in the middle of the "Dreadstar" having just stolen 
its plans. The droids have been alerted and are directed to destroy you at all costs. You must find and 
enter your ship to escape with the plans. Five levels of difficulty are provided. INTRUDER ALERT re- 
quires a joystick and will run on 16K systems. 

GIANT SLALOM (Atari only) Price: $14.95 Cass* tte/$ 18.95 Diskette 

This real-time action game is guaranteed addictive! Use the joystick to control your path through 
slalom courses consisting of both open and closed gates. Choose from different levels of difficulty, race 
against other players or simply take practice runs against the clock. GIANT SLALOM will run on 16K 

systems. 

TRIPLE BLOCKADE (Atari only) Price: $14.95 Cusetle/$18.95 Diskette 

TRIPLE BLOCKADE is a two-to-thrce player graphics and sound action game. It is based on (he 
classic video arcade game which millions have enjoyed. Using the Atari joysticks, the object is to direct 
your blockading line around the screen without running into your opponent(s). Although the concept is 
simple, the combined graphics and sound effect lead to "high anxiety". 

GAMES PACK I (Available for all computers) Price: $10.95 Cusctte/$14.95 Diskette 

GAMES PACK 1 contains the classic computer games of BLACKJACK. LUNAR LANDER, CRAPS. 
HORSERACE, SWITCH and more. These games have been combined into one large program for ease 
in loading. They are individually accessed by a convenient menu. This collection is worth the price just 
for the DYNACOMP version of BLACKJACK. 

GAMES PACK II (Available for all computers) Price: $10.95 Cassctte/$14.95 Diskette 

GAMES PACK II includes the games CRAZY EIGHTS, JOTTO. ACEY-DUCEY, LIFE, WUMPUS 
and others. As with GAMES PACK I, all the games are loaded as one program and are called from a 
menu. You will particularly enjoy DYNACOMP's version of CRAZY EIGHTS. 

Why pay $7.95 or more per program when you can buy a DYNACOMP collection for just $10.95? 

MOON PROBE (Atari only) Price: SI ! .95 Casse(te/$15.95 Diskette 

This is an extremely challenging "lunar lander" program. The user must drop from orbit to land at a 
predetermined target on the moon's surface. You control the thrust and orientation of your craft plus 
direct the rate of descent and approach angle. 



ADVENTURE 



CRANSTON MANOR ADVENTURE (North Star and CP/M only) Price: $21.95 Diskette 

At lastl A comprehensive Adventure game for North Star and CP/M systems. CRANSTON MANOR 
ADVENTURE takes you into mysterious CRANSTON MANOR where you attempt to gather 
fabulous treasures. Lurking in the manor are wild animals and robots who will not give up the treasures 
without a fight. The number of rooms is greater and the associated descriptions are much more 
elaborate than the current popular series of Adventure programs, making this game the top in its class. 
Play can be stopped at any time and the status stored on diskette. 



ABOUT DYNACOMP 

DYNACOMP is a leading distributor of small system software with sales spanning the world 
(currently in excess of 40 countries). During the past two years we have greatly enlarged the 
DYNACOMP product line, but have maintained and improved our high level of quality and 
customer support. The achievement in quality is apparent from our many repeal customers 
and the software reviews in such publications as COMPUTRONICS, 80 Software Critique 
and A.N.A.L.O.G. Our customer support is as close as your phone. It is always friendly. 
The staff is highly trained and always willing to discuss products or give advice. 



'ATARI. PET, TRS-80, NORTHSTaR, CP/M and IBM are registered tradenames and/or trademarks. "TRS-80 diskettes are not supplied with DOS or BASIC. 

Circle 125 on inquiry card. 



BUSINESS and UTILITIES 

SPELLGUARD™ (CP/M only) Price: SM9.95 Disk 

SPELLGUARD u a revolutionary new product which increases the value of your current word processing system (WORD- 
STAR, MAGIC WAND, ELECTRIC PENCIL. TEXTED EDITOR II and others). Written entirely in assembly language. 
SPELLGt \a I ; ! '' rapidly assists the user in eliminating spelling and typographical errors by comparing each word of the 
textagains: a dictionary (expandable) of over 20,000 of the most common English words. Words appealing in the text bui not 
found in the dictionary are "flagged" for easy identification and correction. Most administrative staff familiar with word pro- 
cessing equipmeni will be able to use SPELLGUARD™ in only a few minutes. 

MAIL LIST 2.2 (Apple, Atari and North Star dbkelle only) Price: S34.9S 

This program is unmatched in inability to store a maximum number oT addresses on one diskette (minimum of II 00 per disk- 
ette, moreihan 2200 for "double density" systems!). Its many features include alphabetic and zip code sorting, label printing, 
merging of files and a unique keyword seeking routine which retrieves entries by a virtually limitless selection of user defined 
codes. Mail List 2.2 will even find and delete duplicate entries. A very valuable program! 

FORM LETTER SYSTEM (FLS) (Apple and North Star diskette only) Price: S21.95 

Use FLS to create and edit form letters and address lists Form letters are produced by automatically inserting each address in- 
to a predetermined portion of your letter. FLS is completely compatible with MAIL LIST 2.2, which may be used to manage 
your iddreis files. 

FLS and MAIL LIST 2.2 are available as a combined package for $49.93. 

SORTIT (North Star onto Price: $29.95 Diskette 

SORTIT is a general purpose sort program written in 8080 assembly language. This program will sort sequential data files 
generated by NORTH STAR BASIC. Primary and optional secondary keys may be numeric or one to nine character strings, 
SORTIT is easily used with files generated by DYNACOMP's MAIL LIST program and is very versatile in its capabilities for 
all other BASIC data file sorting. 

PERSONAL FINANCE SYSTEM (Atari and North Star only) Price: $34.95 Diikeite 

PFS is a single diskette, menu-oriented system composed of ten different programs. Besides recording your expenses and tax 
deductible items. PFS will sort and summarize expenses by payee, and display information on expenditures by any of 26 user 
defined codes by month or by payee. PFS will even produce monthly bar graphs of your expenses by category! This powerful 
package requires only one disk drive, minimal memory (24K Atari, 32K North Sut) and will store up to 600 records per disk 
(and over 1000 record* per disk by making a few simple changes to the programs). You can record checks plus cash expenses so 
thai you can finally see where your money goes and eliminate guesswork and tedious hand calculations. 

FAMILY BUDGET (Apple only) Price: £34.95 Diskette 

The FAMILY BUDGET is a very convenient financial record-keeping program. You will be able to keep track of cash and 
credit expenditures as well as income on a daily basis. You can record tax deductible items and charitable donations. The 
FAMILY BUDGET also provides a continuous record of all credit transactions. You can make daily cash and charge entries to 
any of 21 different expense accounts as well as to 5 payroll and lax accounts. Data is easily retrieved giving the user complete 
control over an otherwise complicated (and unorganized!) subject. 

THE COMMUNICATOR (Atari only) Price: $49.95 Dtskeite 

This software package contains a menu-driven collection of programs for facilitating efficient two-way communications 
through a full duplex modem (required for use). In or.c mode of operation you may connect to a data service (e.g., The 
SOURCE or MicroNet) and quickly load data such as stock quotations onto your diskette for later viewing. This greatly re- 
duces "conneci rime" and thus the service charge. You may also record the complete contents of a communications session. 
Additionally, programs written in BASIC, FORTRAN, etc. may be built off-line using the support text editor and later "up- 
loaded" to another computer, making the Atari a very imart terminal. Even Atari BASIC programs may be uploaded. Fur- 
ther, a command file may be built off-line and used later as controlling input for a time-share system. That is. you can set up 
your sequence of time-share commands and programs, and the Atari will transmit them as needed; batch processing. All this 
adds up to saving both connect time and your time. 



DYNACOMP also supplies THE COMMUNICATOR » 
it available separaicly for $189.95. 



iih an Atari 830 modem for a combined price of $219.95. The modem 



TEXT EDITOR II (CP/M) 

This is the second release ntti 
EDITOR II you may build te: 
deleted. Files may be ss 



Price: $29.95 Dlskene/S33.45 Dtik 
on of DYNACOMP's popular TEXT EDITOR I and contains many new features. With TEXT 

files in chunks and assemble them for later display. Blocks of text may be appended, inserted or 
disk/diskette in right justified /centered format lo be later printed by cither TEXT EDITOR II 



it the CP/M ED facility. Futher, ASCII CP/M files (including BASIC and assembly language programs) may be read by the 
editor and processed. In fact, text files can be built using ED and later formatted using TEXT EDITOR II. All in all. TEXT 
EDITOR II is an inexpensive, easy to use, but very flexible editing system. 



Price; $19.95 

a specialized data base of all files and programs in the stack of disks 
□ set up and use. It will organize your disks (o provide efficient locating of the 



DFILE (North Star only) 

This handy program allows North Star u 
which invariably accumulates. DFILE is 
desired file or program. 

FINDIT (North Star only) Price: $19.95 

This is a ihree-in-one program which maintains information accessible by keywords of three types: Personal (eg; last name), 
Commercial (eg; plumbers) and Reference (eg: magazine articles, record albums, etc). In addition to keyword searches, there 
are birthday, anniversary and appointment searches for the personal records and appointment searches for the commercial re- 
cords. Reference records are accessed by a single keyword or by cross-referencing two or three keywords. 

GRAFIX (TRS-80 only) Price: $14.95 Casaetle/$1l.95 Diskette 

This unique program allows you to easily create graphics directly from the keyboard. You "draw" your figure using the pro- 
gram's extensive cursor controls. Once the figure is made, it is automatically appended to your BASIC program as a string var- 
iable. Draw a "happy face", call it HS and then print it from your program using PRINT HS! This is a very easy way to create 
and save graphics. 



EDUCATION 



HODGE PODGE (Apple only, 48K Applesoft or Integer BASIC) Price: $19.95 Cauciie/$2J.95 Diikeite 

Let HODGE PODGE be your child's baby sitter. Pressing any key on your Apple will result in a different and intriguing "hap- 
pening" related to the letter or number of the chosen key. The program's graphics, color and sound are a delight for children 
from ages 1 14 to 9. HODGE PODGE is a non-intimidating teaching device which brings a new dimension to the use of com- 
puters in education. 

TEACHER'S PET I (Available for all computers) Price: S11.95 Caaaelte/$15.95 Diskette 

This is the first of DYNACOMP's educational packages. Primarily intended for prc-school lo grade 3. TEACHER'S PET 
provides the young student with counting practice, letter-word recognition and three levels of math skill exercises. 

MORSE CODE TRAINER (TRS40 only) Price: $12.95 Cassette /SI 6. 95 Diskette 

MORSE CODE TRAINER is designed to develop and improve your speed and accuracy in deciphering Morse Code. As such. 
MCT is an ideal software package for FCC test practice. The code sound is obtained through the earphone jack of any stan- 
dard cassette recorder. You may choose the pitch of the tones as well as the word rate. Also, various modes of operation are 
available including number, punctuation and alphabet tests, as well as the keying of your own message. A very effective way to 



MISCELLANEOUS 



CRYSTALS (Atari Only) Price: S 9.95 Caaaelte/S 13.95 Diskette 

A unique algorithm randomly produces fascinating graphics displays accompanied with tones which vary as the patterns arc 
built. No two patterns are the same, and the combined effect of the sound and graphics are mesmerizing. CRYSTALS has been 
used in local stores lo demonstrate the sound and color features of the Atari. 

NORTH STAR SOFTWARE EXCHANGE (NSSE) LIBRARY 

DYNACOMP now distributes the 23 volume NSSE library. These diskettes each c< 

standing value Tor the purchase price. They should be pan of every North Star user 

for details regarding the contents of the NSSE collection. 

Price: $9.91 each/$7.9J each (4 or more) 

The complete collection may be purchased for $149.95 



AVAILABILITY 



DYNACOMP software is supplied with complete documcnla:ion containing clear explanations and examples. Unless othe 
specified, all programs wilt run within I6K program memory space (ATARI requires 24K). Except where noted, programs are: 
able on ATARI. PET. TRS-80 (Level II) and Apple (Applesoft) cassette and diskette as well as North Star single density (di 
density compatible) diskette. Additionally, most programs can be obtained on standard (IBM formal) 8" CP/M floppy disks fo 
systems tunning under MBAS1C. 



ble 



STATISTICS and ENGINEERING 

DIGITAL FILTER (Available for ill computers) Price: $29.95 Casseile/S3J.95 Diskette 

DIGITAL FILTER is a comprehensive data processing program which permits the user lo design his own filter function ot 
choose from a menu of filter forms. The filler forms are subsequently converted into non-recursive convolution coefficients 
which permit rapid data processing. In (he explicit design mode the shape of the frequency transfer function is specified b) 
directly entering points along the desired filler curve. In the menu mode, ideal low pass, high pass and bandpass fillers may be 
approximaiedio varying degrees according to the number of points used in Ihc calculation. These fillers may optionally also be 
smoothed with a Hanning function. In addition, multi-stage Butlerworlh filters may be selected. Features of DIGITAL 
FILTER include plotting of the data before and after filtering, as well as display of ihe chosen filler functions. Also included 
arc convenient data storage, retrieval and editing procedures. 

DATA SMOOTHER (Not available for Atari) Price: $14.95 Cassette /$ 18, 95 Diskette 

This special data smoothing program may be used to rapidly derive useful information from noisy business and engineering 
data which are equally spaced. The software features choice in degree and range of fit, as well as smoothed first and second 
derivative calculation. Also included is automatic plotting of the input data and smoothed results. 

FOURIER ANALYZER (Available for all computers) Price: $16.95 Cassette/ $10 .9 5 Diskette 

Use this program to examine the frequency spectra of limited duration signals. The program features automatic scaling and 
plotting of the input data and results. Practical applications include the analysis of complicated patterns in such fields as elec- 
tronics, communications and business. 

TFA (Transfer Function Analyzer) Price: S19.93 Caascltc/S23.95 Diskette 

This is a special software package which may be used to evaluate the transfer functions of systems such as hi-fi amplifiers and 
filters by examining their response to pulsed inputs. TFA is a major modification of FOURIER ANALYZER and contains an 
engineering-oriented decibel versus log-frequency plot as well as data editing features. Whereas FOURIER ANALYZER is de- 
signed for educational and scientific use, TFA is an engineering tool. Available for ail computers. 

HARMONIC ANALYZER (Available for all computers) Price: S24.95 Cassette /SU. 9 5 Diskette 

HARMONIC ANALYZER was designed for the spectrum analysis of repetitive wave] or ins Features include data file genera- 
tion, editing and storage/ retrieval as well as data and spectrum plotting. One particularly unique facility is thai the inpul data 
need not be equally spaced or in order. The original data is sorted and a cubic spline inlcrpolalion is used lo create ihe data file 
required by the FFT algorithm. 



REGRESSION I (Available for all computers) Price: $19.95 Cassette/ $23 .95 Diskette 

REGRESSION I is a unique and exceptionally versatile one-dimensional least squares "polynomial" curve fitting program. 
Features include very high accuracy; an automatic degree determination option; an extensive internal library of fitting func- 
tions; data editing; automatic data and curve plotting; a statistical analysis (eg: standard deviation, correlation coefficient, 
etc.) and much more. In addition, new fits may be tried without reentering the data. REGRESSION I is certainly the corner- 
stone program in any data analysis software library. 

REGRESSION II (PARAFTT) (Available for all computers) Price: S19.95 Casselte/S23.95 Dlsketle 

PARAFIT is designed lo handle those cases in which the parameters are imbedded (possibly nonlinearlyj in ihe fining func- 
tion. The user simply inserts the functional form, including the parameters (A(l ), A(2), etc.) as one or more BASIC statement 
lines. Data and results may be manipulated and plotted as with REGRESSION I. Use REGRESSION I for polynomial fitting, 
and PARAFIT for those complicated functions. 

MULTILINEAR REGRESSION (MLR) (Available for all computers) Price: S24.9S Caaselle/S28.95 Dlsketle 

MLR is a professional software package for analyzing data sets containing two or more linearly independent variables. Besides 
performing the basic regression calculation, this program also provides easy to use data entry, siorage, retrieval and editing 
functions. In addition, the user may interrogate the solution by supplying values for ihe independent variables. The number of 
variables and dau size is limited only by the available memory. 

REGRESSION I, II and MULTILINEAR REGRESSION may be purchased logelher for $51.95 (three cassettes) or $63.95 
(three diskettes). 

ANOV A (Available for all computers) Price: $39.95 Casseiie/S43.95 Diskette 

In the past the ANOVA (analysis of variance) procedure has been limited lo the large mainframe computers. Now 
DYNACOMP has brought ihe power of ihis method 10 small systems. For those conversant with ANOVA. the DYNACOMP 
software package includes the 1-way, 2-way and N-way procedures. Also provided are the Yates 2*-P factorial designs. For 
those unfamiliar with ANOVA, do not worry. The accompanying documentation was written in a luiorial fashion (by a pro- 
fessor in the subject) and serves as an excellent introduction to the subject. Accompanying ANOVA is a support program for 
building the data base. Included arc several convenient features including data editing, deleting and appending. 

BASIC SCIENTIFIC SUBROUTINES, Volume I (Not available for Atari) 

DYNACOMP is the exclusive distributor for the software keyed to the popular text BASIC Scientific Subroutines, Volume I 
by F. Ruckdeschel (see the BYTE/McGraw-Hill advertisement in BYTE magazine, January 1981). These subroutines have 
been assembled according to chapter. Included with each collection is a menu program which selects and demonstrates each 

Collection #1: Chapters 2 and 3: Data and function plotting, complex variables 
Collection fl: Chapter 4: Matrix and vector operations 

Collection Hi: Chapters 5 and 6: Random number generators, series approximations 
Price per collection; SI4.95 Cassette/Si 8.95 Diskette 

All three collections are available for $39.95 (three cassettes) and $49.95 (three diskettes). 

Because the text is a vital pan of the documentation, BASIC Scientific Subroutines, Volume 1 is available from DYNACOMP 

for $19.95 plus 75< postage and handling. 

ROOTS (Available Tor all computers) Price $10.95 Cassette /$ 14. 95 Diskette 

In a nutshell, ROOTS simultaneously determines all the zeroes of a polynomial having real coefficients. There is no limit on 
the degree of the polynomial, and because the procedure is iterative, the accuracy is generally very good. No initial guesses arc 
required as input, and the calculated roots are substituied back into the polynomial and ihe residuals displayed. 

ACTIVE CIRCUIT ANALYSIS (ACAP) (UK Apple only) Price: S25.95/S29.95 Diskette 

ACAP is Hie analog circuit designer's answer to LOGIC SIMULATOR. With ACAP you may analyze the response of an ac- 
tive or passive component circuii (e.g , a transistor amplifier, bandpass filter, etc.). The circuit may be probed at equal steps in 
frequency, and the resulting complex (i.e., real and imaginary) voltages at each component juncture examined. By plotting the 
magnitude of these voltages, the frequency response of a filter or amplifier may be completely determined with respect to boih 
amplitude and phase. In addition, ACAP prints a statistical analysis of the range of voltage responses which result from 
tolerance variations in the components. 

ACAP is easy to learn and use. Simply describe the circuit in terms of the elements and their placement, and execute. Circuit 
descriptions may be saved onto cassette or diskette to be recalled at a later lime for execution or editing. ACAP should be part 
of every circuit designer's program library. 

LOGIC SIMULATOR (Apple only; 48K RAM) Price: S24.95 Casselte/SM.95 Diskette 

With LOGIC SIMULATOR you may easily lest your complicated digital logic design with respect to given set of inpuis to 
determine how well Ihe circuit will operate. The elements which may be simulated include multiple input AND, OR. NOR, 
EXOR. EXNOR and NAND gales, as well as inverters, J-K and D flip-flops, and one-shots. The response of the system is 
available every clock cycle. Inputs may be clocked in with varying clock cycle lengths/displacements and delays may be intro- 
duced lo probe for glitches and race conditions. At the user's option, a timing diagram for any given set of nodes may be plot- 
ted using HIRES graphics. Save your breadboarding until ihe circuii is checked by LOGIC SIMULATOR. 

LOGIC DESIGNER (North Star and CP/M only) Price: S34.95 Diskette 

LOGIC DESIGNER is an exceptional Computer Aided Design (CAD) program. With it you may convert a large and compli- 
cated digiiial truth table ((he functional specification) into an optimized Boolean logic equation. This equation may then be 
easily converted into a circuii design using either NAND or AND/OR gales. Ope rati onally. LOGIC DESIGNER is composed 
of a BASIC program which calls in a machine language routine to reduce execution lime. Example: For a 7 variable by 127 line 
table, the processing lime is only two minutes. LOGIC DESIGNER is clearly a fast and powerful tool for building digital cir- 



ORDERING INFORMATION 



d include the appropriate computer ir 



All orders are processed and shipped within 48 hours. Please enclose payment with order 1 
formation. If paying by VISA or Master Card, include all numbers on card. 

Shlpplog and Handling Charie* 

Within North America: Add 51.50 

Outside North America: Add lOTo (Air Mail) 

e programs. Dealer discoum schedules are available upon request. 

ft" CP/M Disks 

Add S2.50 to the listed diskette price for each 8" floppy disk (IBM soft sectored CP/M format). Programs run under 
Microsoft MBASIC or BAS1C-80. 



DYNACOMP, Inc. 

1427 Monroe Avenue 

Rochester, New York 14618 

24 hour order phone: (716)586-7579 recording 

Office phone (9AM-5PM EST): (716)442-8960 



New Yo* Stale reildenli pkHC *dd 1% NYS llkl III. 



Circle 125 on Inquiry card. 






Text continued from page 202: 
business microcomputer was an- 
nounced by TRW/Fujitsu. The 
TFC-8500 system starts at $25,000 
and goes upward to $200,000. In ad- 
dition, the company will market a 
line of point-of-sale computer cash 
registers/terminals. This market is 
very competitive at the present time. 
It's obvious that there is a large 
amount of activity going on behind 
the scenes at both TRW and 
Fujitsu — two companies to watch 
carefully. 

Sharp Electronics 

Although not in the multibillion- 
dollar league of many of the com- 
panies we're discussing here, Sharp is 
one of the most well known in the 
United States. Its wide-ranging line of 
calculators and other consumer elec- 
tronics products is sold by approx- 
imately 1400 dealers in the States. 
Consequently, the company has a 
great deal of marketing experience 
here as well as an extremely strong 
sales and service network. 



Over the past few years, Sharp's 
calculator products have become 
more and more sophisticated; 
therefore, it's not surprising that its 
first personal computer resembled a 
calculator. It's interesting that instead 
of marketing the product itself, Sharp 
sold initial marketing rights to the 
company with one of the largest sales 
and service networks in the 
world — Radio Shack. 

The Sharp PC-1211 Pocket Com- 
puter became the TRS-80 Pocket 
Computer, introduced in August 
1980 by Radio Shack. By using the 
immense marketing power of Radio 
Shack, Sharp was "testing the 
waters.", A source at Sharp told me 
the company had doubts about how 
the product would be received. 

To say the reception was good is an 
understatement. Sales of the TRS-80 
Pocket Computer during its first six 
months were estimated at 40,000 
units — four times the Radio Shack 
sales projections. The company in- 
itially purchased approximately 
10,000 units, creating supply prob- 



HIPAD DIGITIZERS 



Inexpensive Graphic Input 
To Your Computer 



The HIPAD Series Digitizers are the ideal graphic input devices for the 
small system user. Utilizing the principle of X-Y coordinates to obtain posi- 
tioning, they convert graphic coordinates into digital data that can be pro- 
cessed by the computer. 

Featuring: 

•Digitizing surface of 11" X 11" (28cm X 28cm). 
•Translucent digitizing area suitable for backlighting. 
•Built-in switch selectable RS-232-C and 8 bit parallel interfaces. 
•Resolution of 0.005 inches or .01 inches. 

•Standard marking or non-marking 

stylus. 
•Optional one-or four-button cursor 

models. 
•Relocatable origin. 
•Optional 5-digit LED display. 
•UL Listed — Certified FCC Class B. 
•Easily interfaced to Apple™, TRS— 80™, Atari™, 

and most other microcomputers. 
•Prices start at $795. 




houston instrument 

GRAPHICS DIVISION OF ^_^ 

BAUSCH LOMB ▼ 



One Houston Square, Austin, Texas 78753 

Phone (512) 837-2820 

Outside Texas call 1-800-531-5205 



lems shortly after introduction. 

Radio Shack's exclusive marketing 
rights to the PC-1211 ran out in 
March 1981. Sharp has started 
marketing the Pocket Computer with 
the addition of a printer although 
Radio Shack will also offer a printer 
in the near future. 

Some observers of the personal 
computer market feel pocket com- 
puters are only a novelty — a fad that 
will soon pass. However, a number of 
companies seem committed to their 
development. Although presently 
limited in utility, pocket computers 
will be a major factor in the 
popularization of personal com- 
puters. 

In the meantime, Sharp has aimed 
squarely at the small-business market 
with the recent introduction of the 
YX-3200. The system is being sold by 
720 Sharp dealers and will retail in 
the $6000 range. The powerful 
Z80-based system includes a 12-inch 
green-phosphor display (80-charac- 
ters) and two 5Vi-inch quad-density 
floppy-disk drives. Also included in 
the price is an Epson MX-80 printer 
(manufactured by a Japanese sub- 
sidiary of Seiko). An interesting 
sidelight is that the YX-3200 was 
designed in the United States — by 
American engineers. 

The marketing of the YX-3200 
system will also be an experiment. 
Sharp has projected sales of 5000 
systems by April 1982. It will be vir- 
tually the first computer system to be 
sold by persons who are not com- 
puter dealers. The majority of Sharp 
salesmen chosen to sell the system are 
office equipment dealers. As the 
small-business market continues to 
grow, we are likely to see more and 
more personal computer systems sold 
in this way. 

In the realm of the truly personal 
computer, the MZ-80 is perhaps the 
most interesting part of the Sharp 
line. Not currently available in the 
United States, it is one of the largest- 
selling personal computers in Europe 
and Japan. The MZ-80 retails for ap- 
proximately $900 with a calculator- 
style keyboard (not unlike the early 
PET), $1200 with a standard 
keyboard. It's an attractive machine 

Text continued on page 212 



206 August 1981 © BYTE Publications Inc 



Circle 160 on inquiry card. 











aiffllilfr" 



Siapcia's 
Circuit (Jellap 



Y T E BOOKS 

BUILD YOUR OWN 
Z80 COMPUTER 




by Steve Ciarcia 



MfCROCOMf 
STRUCTURES 



by Sieve Ci.il 



-ou've talked about it, 
you've thought about it. Now, 
here are four books to help you 
do something about it! 

So, for your next microcomputer 
project . . . do it, and do it right. 
With the help of BYTE Books. 



EfTE 



SSK^ 



hcj 

$G&ttJStox\ 



brains: behavior 
robotics 







: '"'>es ( vv ^ 




AVAILABLE FALL 1981 



DIGITAL HARMONY 

by John Whitney 

A new synthesis of 
sight and sound 

Digital Harmony lays the 
foundation for the whole new 
field of audio-visual art made 
possible by microcomputers. 
John Whitney, a pioneer of the 
special effects technology 
used in STAR WARS and 2001: 
A SPACE ODYSSEY, explains the 
special union of computer 
graphics and music. His 
computer-generated visual 
art graphically depicts the 
laws of harmonic motion 
common to all music. 

Digital Harmony includes a 
complete description of 
Whitney's computer, periph- 
erals, and film techniques. 
Colorful illustrations are in- 
cluded, as well as the program 
listings that generated them. 
The descriptions dre sufficient 
for anyone to begin to explore 
this new territory as a com- 
poser and computer experi- 
menter - transforming the small 
computer into an ideal instru- 
ment for creating compositions 
in aural and visual art. 

John Whitney is on the 
Faculty in the Department 
of Art at the University of 
California, Los Angeles. 



ISBN 0-07-070015-X 

240 pages 

hardcover 

over 50 color COl OC\ 

photographs yAl.srW 



INVERSIONS: 
A Catalogue of 
Calligraphic 
Cartwheels 

by Scott Kim 

Foreword by Douglas Hofstader 

Backwor'd by Jef Raskin 

Surprising symmetries in 
design and letterforms 

Illusion . . . calligraphy . . , 
visual magic - Scott Kim's new 
book. Inversions, delights the 
eye and enchants the mind. 
Fiilea with intriguing designs, 
woids that read the same right- 
side up and upside down, 
words within words, and un- 
expected symmetries, these 
compositions create a fresh 
way to look at the alphabet. 
The text includes the visual 
principles of symmetry, lettering, 
and problem solving that are 
basic to these images. The 
author also draws parallels to 
related exercises in perception 
in such diverse areas as art, 
music, word play, and mathe- 
matics. Scott Kim's original 
inversion designs first appeared 
in Omni magazine, inspiring 
an overwhelming reader re- 
sponse. An irresistable chal- 
lenge, invertible writing appeals 
to everyone who loves beauty 
in mathematics and design. 

Scott Kim is a doctoral student 
in Computer Science at Stan- 
ford University and is a concert 
pianist and composer. 



ISBN 0-07-034546-5 

128 pages 

softcover 

over 50 illustrations 

available summer 1981 



$8.95 



BRAINS, 
BEHAVIOR, 
AND ROBOTICS 

by James S. Albus 

Robotics design 
and applications 

This computer-oriented guide 
explores how the brain functions 
primarily as a computer device 
for generating and con- 
trolling behavior. The author 
assesses behavior as a product 
of three hierarchies of 
computing modules: 

• memory modules 

• behavior-generating modules 

• sensory-processing modules 

A section on artificial intelli- 
gence ties this hierarchical 
model to vital computer 
science techniques such as 
planning, problem-solving, 
machine vision, natural 
language understanding and 
knowledge representation. A 
closing section on robotics 
discusses the design consid- 
erations in constructing a robot 
control system fashioned after 
this model of the brain, and 
explores the current and 
potential use of robots in 
our environment. 

Dr. James S. Albus is Project 
Manager with the National 
Bureau of Standards. 



ISBN 0-07-000975-9 
400 pages 

hardcover 
ISO illustrations 



$15.95 



THE BRAINS OF 
MEN AND MACHINE! 

by Ernest W. Kent 

Human models for 
computer design 

When the "Brains of Men and 
Machines" series of articles 
first appeared in BYTE 
magazine, the response was 
immediate and enthusiastic. 
Now Ernest W. Kent has expand- 
ed his ideas about the brain 
into a full-length book. As 
researchers begin to unravel 
the mysteries of the brain's 
chemical, electrical, and 
synaptic circuitry, their findings 
are becoming immediately 
applicable to advances in 
robotic behavior and computer 
design. The Brains of Men and 
Machines "dissects" the brain 
to provide new insights into 
computer design and artificial 
intelligence. 

It is one of the rare books that 
transcends disciplinary bound- 
aries. In it the ever-increasing 
relationship between man and 
machine is freshly examined - 
a relationship. Professor Kent 
concludes, that is today being 
reexamined in the light of 
man's own neurological 
self-image. 

Dr. Ernest W. Kent is a 
Professor of Physiological 
Psychology and Psycho- 
pharmacology at the University 
of Illinois at the Chicago 
Circle Campus. 

ISBN 0-07-034123-0 

304 pages 

hardcover aip at 

illustrated ^IO.tO 



The BYTE BOOK Collection 



Circle 40 on inquiry card. 



BASIC 
SCIENTIFIC 
SUBROUTINES, 
VOLUMES 
1 AND 2 



H-j»ini;g«lkir»' 



by Fred Ruckdeschel i@! 



Valuable programs for 
professional and hobbyist 

Designed for the engineer, scientist, 
experimenter, and student, this series pre- 
sents a complete scientific subroutine 
package in BASIC. 

• Volume 1 covers plotting, complex vari- 
ables, vector and matrix operation, 
random number generation, and series 
approximations. 

• Volume 2 continues with least-squares 
approximation, special polynomial 
functions, approximating techniques, 
optimization, roots of functions, inter- 
polation, differentiation, integration, and 
digital filtering. 

These volumes feature routines written in both 
standard Microsoft and North Star BASIC, 
extensive appendices, and subroutine 
cross-referenes. 

Dr. Fred Ruckdeschel is a Principal 
Scientist with Dynacomp, Inc. 

VOLUME 1 VOLUME 2 

ISBN 0-07-054201-5 ISBN 0-07-054202-3 

336 pages 384 pages hardcover 

hardcover illustrated 

illustrated available Fall 1981 

$19.95 523.95 



«BVTE Boakiri 

»ascal THE BYTE 

BOOK 

OF 

PASCAL 

Blaise W. Liffick, Editor 

A powerful, structured language 

Based on articles, language forums, and 
letters from BYTE magazine, this work is a 
valuable software resource. Pascal con- 
tinues to be popular as a structured pro- 
gramming language. Written for both 
potential and established users, this book 
introduces the Pascal language and 
examines its merits and possible imple- 
mentations. Featured are two versions of a 
Pascal compiler, one written in BASIC and 
the other in 8080 assembly language; 
a p-code interpreter written in both Pascal 
and 8080 assembly language; a chess- 
playing program; and an APL interpreter. 



ISBN 0-07-037823-1 
334 pages 
hardcover 



$25.00 




THREADED 

INTERPRETIVE 

LANGUAGES 

by Ronald Loeliger , 

How to implement 
FORTH on your Z80 



Threaded languages (such as FORTH) are 
compact, giving the speed of assembly 
language with the programming ease of 
BASIC. They combine features found in no 
other programming languages. This book 
develops an interactive, extensible 
language with specific routines for the Zilog 
Z80 microprocessor. With the core inter- 
preter, assembler, and data type defining 
words covered in the text, it is possible to 
design and implement programs for almost 
any application and equivalent routines 
for different processors. 

Ron Loeliger is a Senior Analyst with 
Intermetrics, Inc. 

ISBN 0-07-038360-X 
272 pages 
hardcover 
illustrated 



$18.95 



BEGINNER'S 

S^:» GUIDE FOR 

szzz::. THE UCSD 

PASCAL 

SYSTEM 

by Kenneth L. Bowles 

The most popular Pascal 
version explained by its creator 

Written by the originator of UCSD Pascal 
System, this informative book is an orienta- 
tion guide to the UCSD Pascal System. For 
the novice, this book steps through the 
System, bringing the user to a sophisticated 
level of expertise. Once familiar with the 
System, the reader will find the guide an 
invaluable reference tool for creating 
advanced applications. The package offers 
programs which may be run without 
alteration on: 

• DEC PDP-11 or General Automation 
minicomputers 

• Western Digital Microengines 

• 8080, 8085, Z80, 6502, 6800, 9900 or 
AM-lOO based microcomputers (includ- 
ing the popular Apple II and Radio Shack 
TRS-80 microcomputers) 

Dr. Kenneth L. Bowles is Director of the 
Institute for Information Systems, University 
of California, San Diego. 



ISBN 0-07-006745-7 
204 pages 
softcover 



$11.95 



s& 



aM*Wt> 



YOU JUST 
BOUGHT 
A PERSONAL 
WHAT? 

by Thomas Dwyer and Margot Critchfield 

A Structured Approach to 
Creative Programming 



Intended for both the novice programmer 
and the experienced computer enthusiast, 
this book presents practical ideas for 
personal computer use at home or at work. 

Its approach is especially suitable for 
educational purposes. Written by the 
leading contributors of computer educa- 
tion material, this book is an entertaining 
and resourceful tool. There are over 60 
ready-to-use programs written in Microsoft 
and Level II BASIC for the TRS-80 in the areas 
of educational games, financial record 
keeping, business transactions, disk- 
based files, and word processing 

Dr. Thomas Dwyer is a Professor of 
Computer Science at the University of 
Pittsburgh. 

Margot Critchfield is a doctoral student 
in Foundations in Education at the Univer- 
sity of Pittsburgh. 



ISBN 0-07-01 8492-5 
343 pages 
softcover 
78 illustrations 



$11.95 




BEYOND GAMES: 

SYSTEM 

SOFTWARE 

FOR YOUR 

6502 

PERSONAL 

COMPUTER 

by Kenneth Skier 

Creating programs for the Apple, 
Atari, Challenger and 
PET computers 

At last, a complete programming guide- 
book for owners of personal computers 
utilizing the 6502 microprocessor. A self- 
contained course in structures programming 
and top-down design, this book presents 
a powerful set of tools for building an 
extended monitor, disassembler, hexadec- 
imal dump routine, and text editor programs. 
Programs are thoroughly explained, with 
clear instructions for modifications. 

Kenneth Skier is a Systems Programmer 
for Wang Laboratories, Inc., and a Lecturer 
at MIT. 



ISBN 0-07-057860-5 
440 pages 
softcover 
illustrated 



$14.95 



stimulating, provocative, problem-solving 



Circle 41 on inquiry card. 



BYTE August 1981 209 



CIARCIA'S 

CIRCUIT 

CELLAR 

by Steve Ciarcia 




Practical uses for home computers 

Imaginative and practical, Ciarcia's Circuit 
Cellar details a variety of microcomputer 
projects. A collection of the best articles 
from the popular series in BYTE magazine, 
this volume includes 

• D/A conversion 

• Programming EPROMS 

• AC remote-controlled appliances 

• digitized speech 

• touch input video display 

Complete instructions are given on how to 
construct each project. With amusing 
anecdotes and an easy-going style, 
Ciarcia presents his material in such a 
manner that even a neophyte need not be 
afraid of it. 

ISBN 0-07-010960-5 

125 pages 

softcover 

color photographs and diagrams 



$8.00 




CIARCIA'S 
CIRCUIT 
CELLAR, 
VOLUME II 

by Steve Ciarcia 



More practical uses for 
home computers 

Composed of popular articles from BYTE 
magazine, this volume tells how micro- 
computers can be uniquely interfaced to 
our environment. Projects include 

• building a computer controlled home- 
security system 

• computerizing appliances 

• transmitting digital information over a 
beam of light 

• building the Intel 8O86 microprocessor 
system design kit 

• input-output expansion for the TRS-8O 

ISBN 0-07-010963-X 

224 pages 

softcover 

photographs and diagrams 



$12.95 



a^r 5 ** 



MICRO- 
COMPUTER 
STRUCTURES 

by Henry DAngelo 




Digital Electronics, 
Logic Design, and 
Computer Architecture 

Today, there is an increasing demand for 
computer users who are not only well-versed 
in software, but who can also maintain, 
modify, and design their own hardware 
systems. 

This text introduces computer users with 
little or no background in digital hardware 
to the basic computer structures used in 
microcomputer design and microcomputer 
interfacing. Helpful examples and end-of- 
chapter exercises further illustrate the 
various concepts presented, and a detailed 
bibliography provides additional reading 
opportunities. As a resource and textbook, 
it will assist 

• programmers and systems analysts 

• engineers and scientists 

• managers 

• students 

Detailed Instructor's Manual also available. 

Dr Henry D'Angelo is the Associate Dean 
of the College of Engineering and Professor 
of Manufacturing Engineering at Boston 
University 



ISBN 0-07-01 5294-2 
288 pages 
hardcover 
314 illustrations 
available spring 1981 

$18.95 



Instructor's Manual 
ISBN 0-07-015298-5 
softcover 

$8.95 



BUILD , 

YOUR OWN I 
Z8O / , 

COMPUTER 

by Steve Ciarcia 



£yi. L *i YOUR OWN 

jSSS r "Mr,'TPF 




Every step spelled out for 
do-it-yourself buffs 

For the engineer, computer technician, 
student, and anyone interested in building 
a computer rather than buying one, this 
practical guide shows how to build a work- 
ing computer based on the Zilog Z8O micro- 
processor. Each computer subsystem is fully 
explained and supported by proven design 
and testing information. The description 
focuses on a basic single-board micro- 
computer containing 

• easy expansion to include a video terminal 

• a 1 K-byte operating system 

• serial and parallel ports 

• hexadecimal display 

• audio cassette mass storage 

Readers can modify the system to meet 
personal needs. 

Steve Ciarcia is a Computer Consultant, 
Electrical Engineer, and author of "Ask 
Byte" and "Ciarcia's Circuit Cellar" columns 
in BYTE magazine. 

ISBN 0-07-010962-1 
330 pages 
softcover 
available summer 1981 



$15.95 



BYTE Books' reputation is based 
on providing technically 
accurate, useful, and timely 
information. Established on the 
same principle as BYTE 
magazine, BYTE Book's evolved 
in response to the rapidly ex- 
panding audience of home 
and business computer users. 
Computer professionals and 
enthusiastic newcomers need 
to keep pace with this 
unabated growth. This selec- 
tion of BYTE books can 
expand your library of knowl- 
edge and expertise. 

TO ORDER, CALL TOLL 
FREE 800-258-5420, OR 
FILL OUT YOUR CHOICES 
IN THIS COUPON and 
return it with check, 
money order, or charge 
card number to: 

BOTE 

Bins 

70 Main Street 

Peterborough, 

New Hampshire 03458 



order now . . . ! 



m 



210 BYTE August 1981 



BOTE 



70 Main Street 

Peterborough, New Hampshire 03458 

Name 



Address. 
City 



State. 



Zip 



• Check enclosed in the amount of . 

• Bill Visa. Card Number 



Bill Master Charge. Card Number 
Expiration Date 



Include 75c per book to cover postage 
and handling. 



TITLE 



PRICE QUANTITY AMOUNT 











































SHIPPING 




TOTAL 





Circle 42 on inquiry card. 



LOWEST PRICE - BEST QUALITY 



NORTH STAR 




North Star Horizon 2 

2-5% Disk Drives 
32K Double Den 
Factory assem. & tested 
Factory guaranteed 
List $3695 

only 



$2697 



POWERFUL NORTH STAR 
SUPERB FOR BUSINESS 

FACTORY ASSEMBLED & TESTED 

HORIZON-2-64K-DOUBLE DEN 

HORIZON-2-32K-QUAD DENSITY 

HORIZON-2-64K-QUAD 

HORIZON RAM ASSM 1 6K = $279 

HORIZON RAM ASSM 48K = $679 

HORIZON DISK DRIVE SALE 

DOUB DEN 
NORTH STAR HARD DISK 18 Mb 



BASIC FREE 
& SCIENCE 

LIST ONLY 

$4195 $3062 

$3995 $2916 

$4495 $3281 

32K=$479 

64K=$879 



SAVE! 
$5375 



NORTH STAR TIME SHARING MULTI-USER 



$ 445 
$3923 
CALL 



SUPERBRAIN 

ZENITH 




SUPERBRAIN QD 64K 

List $3995 only $2995 



Z-89 48K 
List $2895 only $2299 



TERMINALS Z-1 9 $725 

INTERTUBEIII om y $725 

DYNABYTE COMPUTER— SAVE— PHONE 

EPSON MX-80— PHONE 

ANADEX 9501 $1349 

NEC PRINTER $2639 

TRACTOR, 

THIMBLE, 

RIBBON 

DIP-81 $395 

TEC LETTER QUAL $1599 




InterSystems 

ITHACA INTERSYSTEMS 2A 




Z-80A CPU 4 MHz 
64K Dynamic RAM 
Front panel 
V I/O— with interrupts 
FDCII Disk Controller 
20 slot motherboard 



CALL FOR PRICE- 
TOO LOW TO ADVERTISE! 

PASCAUZ + THE FASTEST PASCAL $375 

Z-8000 & CACHE BIOS— POWERFUL— PHONE 

8086 16 BIT CPU & SUPPORT CARD SEATTLE $695 

CALIFORNIA COMPUTER 2210A ONLY $1795 

MORROW 8" DISK 

DISCUS 2D + CP/M" 600K ONLY $929 

DISCUS 2 + 2 + CP/M® 1.2 MEGA B. $1240 

ADD DRIVES 2D =$650 2 + 2 = $975 

2D-DUAL + CP/M® ONLY $1540 

FREE MBASIC FROM MORROW!! 



MORROW HARD DISK 

26,000,000 BYTES!! 

LIST $4995 ONLY $3919 

CP/M® IS INCLUDED! 



SAVE ON MEMORY AND PROGRAMS 

SYSTEMS MEMORY 64K A « T 4mHz WORDSTAR $315 

$590 
SYSTEM MEMORY 64K BANK SELECT 

$740 SPECTRUM $269 

COMPUPRO SAVE 

ITHACA MEMORY 8/1 6-blt64K $845 EZ-CODER Translates English to BASIC 

SEATTLE MEMORY 8/16 BIT 16K $249 $71 

ECOSOFT FULL ACCOUNTING PKG 
SSM KITS Z-80 CPU $221 $355 

VIDEO BRDV83 4Mhz $412 BOX OF DISKETTES $29 

ANADEX PRINTER DP-9500-1 $1349 SECRETARY WORD PROCESSOR 

CAT NOVATION MODEM $169 The Best! $99 

GOFAST NORTH STAR BASIC 
ECONORAM2A8KASSM $179 OPTIMIZER— FAST $71 

NSSE 1-22 & P01 TERRIFIC PROGRAMS Which Computers are BEST? 

ONLY $10. EACH BROCHURE FREE 

NORTHWORD $329 MAILMAN $246 North Star Documentation refundable 

INFOMAN $411 w/HRZ$35 

TARBELL COMPUTER-PHONE 

AMERICAN SQUARE COMPUTERS BEATS ADV. PRICES 




square 

American [0] Computers 

919-889-4577 KIVETT DR. JAMESTOWN N.C. 27282 919-883-1105 



® CP/M Is a registered trademark of Digital Research, Inc. 



Circle 18 on inquiry card. 



BYTE August 1981 211 



Text continued from page 206: 
designed with the consumer in mind. 
The keyboard, 10-inch black-and- 
white display, and a cassette recorder 
are all contained in a single compact 
package. The MZ-80 is based around 
a Z80 microprocessor and includes 
16 K bytes of programmable 
memory, Microsoft-compatible 
BASIC, a real-time clock, and 
sound/music capabilities. Dual 
SVi-inch floppy-disk drives as well as 
a variety of printers are also being 
sold by Sharp in Europe and Japan, 
making the MZ-80 a powerful low- 
end business machine. 

Sharp officials deny there are any 
plans afoot to market the MZ-80 in 
the United States. My personal feel- 
ing is that it will make its appearance 
here soon. The existing Sharp dealers 
network is the ideal place to market a 
machine such as this — designed for 
the consumer. 



Hitachi 

Hitachi is yet 
multibillion-dollar 



another of the 
Japanese giants. 



1980 sales of $13.4 billion make it the 
fifth largest company in Japan. Long 
known for high-quality inexpensive 
consumer electronics equipment (sold 
under a variety of names in the 
United States), Hitachi seemed to be 
one of the first to plan a marketing 
strategy to crack the US personal 
computer market. The problem is 
that, until recently, it never became 
serious about the plan. 

Hitachi was one of the first 
Japanese companies to build a per- 
sonal computer. The HD46800 was 
announced in June 1978 and was a 
true home computer designed for en- 
vironmental control, menu and finan- 
cial planning, as well as burglar and 
fire alarm interfacing. But it was too 
much, too soon. The US personal 
computer market was then only 
beginning to develop with the in- 
troduction of the first Radio Shack 
TRS-80 models. 

Another major problem with 
Hitachi is the lack of a marketing 
organization in the United States. 
There seems to be little movement in 



the direction of developing one. 
Lately, the company appears to be 
concentrating on large computers to 
compete in the IBM mainframe 
market. Hitachi recently introduced 
the AS-9000 computer with features 
far and above IBM's largest computer 
at a comparable price. But the lack of 
a US organization has hurt. The 
AS-9000 is being sold in the United 
States by National Advanced 
Systems — a company with a large 
amount of small computer ex- 
perience. Although the AS-9000 is 
receiving a very favorable response, 
service is already a major problem. 
Recently, Lockheed Dialog installed 
an AS-9000 in its well-known data- 
base system. It was learned recently 
that a strange bug caused the entire 
system to crash at random intervals. 
Servicing the AS-9000 required that 
engineers be brought in from Japan, 
an extremely expensive proposition 
for Hitachi. 

Even with the lack of a US 
organization, it seems certain that 
Hitachi will begin a major drive to in- 



age 65 
years worked Jo 

retirement benefits 

Many of the 50 million Americans who are covered by private pension plans think they'll automatically 

qualify for benefits when they reach retirement age. 

They're wrong! 

Every plan has requirements that must be met under the Employee Retirement Income Security Act. 

And the time to find out about those requirements is now— even if retirement is 30 years down the road. 

There's a lot more to think about too. Does your plan permit early retirement? How much will your 

plan pay you? Will you receive a monthly payment or a lump sum? 

The U.S. Department of Labor has a free booklet that will help you answer these questions and a lot 
more. Send for it today. 

Write: Pensions, Consumer Information Center U.S. Department of Labor jfr y 

Pueblo, Colorado 81009 «« 




Printed by this publication as a public service. 



212 August 1981 © BYTE Publications Inc 




•tm 



if He'd used select , 
it wouldn't have taken seven days 



Learn SELECT in just 90 minutes. A whole new word processing software 
concept that kicks the coded key habit and frees you from complicated instruction 
manuals. SELECT is fast. SELECT is logical. With single key mnemonics, you'll use 
dozens of commands that instantly access the rich capabilities of this system. There's 
nothing like it. 

Simply hit "C" and you'll be ready to Create a document. 

Key "I" and you'll be in the Insert mode. 

Key "M" and Move entire blocks of text. . . and key dozens more. 
That's all there is to it. You'll get all that word processing software promises . . . plus a 
few surprises. 

SELECT with SUPERSPELL .* The only microcomputer software with an integrated 
spelling dictionary. To proof your text all you do, of course, is to key "S". SUPERSPELL 
with its 10,000 word dictionary scans your text at computer speed then displays and 
corrects all your typing errors. You can increase SUPERSPELL's word power and 
customize the dictionary by adding new words, one at a time. Ask to see it today at 
your local dealer. 

SELECT with SUPERSPELI just a little byte more. 




ect 



SELECT will run on any machine that uses CP/M or MP/M** or its derivatives. 
It needs 40K of RAM and two disk drives. Special version now available for 
Radio Shack Mod II** * and Apple II**** 

* SELECT and SUPERSPELL are trademarks of Select Informalion Systems Inc. 
* ' CP/M and MP/M are trademarks of Digital Research 
• " ' A trademark of Tandy Corp. 
' * " " A trademark of Apple Computer Inc. 



INFORMATION SYSTEMS 919 Sir Francis Drake Boulevard • Kentfield, California 94904 -(415) 459-4003 
Circle 344 on inquiry card. byte August 1981 213 



Circle 238 on inquiry card. 



MICROMAIL HAS WHAT 
YOUR SYSTEM NEEDS. 




TELEVIDEO 



910 



$599.00 



$699.00 
$749.00 
$995.00 



DIABLO 



630 



$1959.00 



1640 RO 
1640 KSR 
1650 RO 
1650 KSR 



$2269.00 
$2499.00 
$2599.00 
$2599.00 




DEC 



LA34DA 



$899.00 




TELETYPE 43 PF(TTL) 



$975.00 




ANADEX 



TEXAS INSTRUMENTS 



DP 9500 
DP 9501 
DP 9000 
DP 9001 



$1299.00 
$1299.00 
$1199.00 
$1199.00 



810/2 
810/2 PKG 

(U/L, VFC, CP) 



$1549.00 
$1679.00 



SOROC 




IQ.120 
IQ.140 
IQ.135 

C. ITOH 


$689.00 

$1099.00 

$849.00 



DEC 



VT100 

DEC LA 34AA 

NEC 


$1650.00 
$1050.00 



CIT 101 



$1625.00 



5510 
5530 



$2395.00 
$2395.00 



To Order: Send, check to MICROMAIL, P.O. Box 3297, Santa Ana. CA 92703. Persona) or company checks 
require two weeks to clear. Visa/MasteiCard accepted. COD. requires a 15% deposit Handling: Add 3% to 
orders less lhan S750, 2% to orders $751 - S2.000, 1% to orders over S2.000 NOTE. Handling charges are 
waived on orders pre-paid in advance by check Shipping: We ship FREIGHT COLLECT via UPS or Motor 
Freight Air and Express delivery is available. 



eMJCRDMflM..; 



P.O. Box 3297 
Santa Ana, CA 92703 
Phone: 714/731-4338 
TWX: 910 595 U46 



troduce its personal computers here. 
The Hitachi BASIC Master Level III is 
now being sold in Japan and will 
probably soon be test-marketed in the 
United States. Based on a Motorola 
6809 microprocessor, the unit has 
Microsoft BASIC, 80-column text 
display, and high-resolution graphics 
with six colors available. The US 
price is expected to be in the $1500 
range. A special color monitor for 
ultra-high-resolution graphics is 
$900. 

Hitachi seems to be making a slow 
but steady penetration into the per- 
sonal computer market. Although it 
probably won't be a strong force in 
the US for a few years, Hitachi's 
heavy R&D expenditures and 
quality-at-low-cost reputation make 
it a strong long-term prospect for ma- 
jor US sales. 



NEC 

Nippon Electric Company is poised 
for a major move into the US com- 
puter market in both the personal and 
small-business markets. 

NEC's trump card is the PC-8001, 
the largest-selling personal computer 
in Japan (some 3000 to 4000 units are 
sold monthly). The details of the 
PC-8001 were covered in an article in 
the January 1981 BYTE (page 72). It 
was first shown at the 1980 NCC (Na- 
tional Computer Conference). In 
January 1981, it was featured at the 
winter Consumer Electronics Show. 
NEC's Consumer Electronics Divi- 
sion, based in Elk Grove Village, Il- 
linois, is now marketing it in the US 
through major personal computer 
dealers. The base price is $1295 with 
32 K bytes of programmable 
memory. (A little-known fact about 
the PC-8001 is that it was jointly 
developed by NEC and an Arlington 
Heights, Ohio, company called Just 
Another Computer Company.) 

The major strength of the PC-8001 
is that it has something for everyone: 
dazzling color graphics for the con- 
sumer as well as strong computation 
power and a full line of peripherals 
for business people. 

The key to the unit's success will be 
its marketing. The NEC name is not 
well known in the United States and, 



214 August 1981 © BYTE Publications Inc 



THE ORIGINAL MAGAZINE FOR 
OWNERS OF THE TRS-80™* MICROCOMPUTER 



* TRS-80" IS A TRADEMARK OF TANDY CORP. 



SOFTWARE 

FOR TRS-80" 

OWNERS 



H 



CQmPUTRQNICS 



MONTHLY 

NEWSMAGAZINE 

FOR TRS-80" 

OWNERS 



MONTHLY NEWSMAGAZINE 

Practical Support For Model I, II & HI 



• PRACTICAL APPLICATIONS 

• BUSINESS 

• GAMBLING • GAMES 

• EDUCATION 

• PERSONAL FINANCE 

• BEGINNERS CORNER 

• NEW PRODUCTS 

• SOFTWARE EXCHANGE 

• MARKET PLACE 

• QUESTIONS AND ANSWERS 

• PROGRAM PRINTOUTS 
AND MORE 



NOW IN OUR 4th YEAR 



PROGRAMS AND ARTICLES PUBLISHED IN RECENT ISSUES 
INCLUDE THE FOLLOWING: 

• FINCALC - A COMPLETE FINANCIAL APPLICATIONS PACKAGE 

• INFORMATION SYSTEM REVIEW 

• STATISTICAL COMBINATIONS 

• PASCAL'S TRIANGLE 

• ASSEMBLY LANGUAGE FOR BEGINNERS 

• DISK FILES 

• MOD-HI REVIEW 

• KEYBOARD THUNDER AND LIGHTING EXPLAINED 

• DOS COMMANDS IN LEVEL II 

• PROBABILITY CURVE GENERATOR 

• CALCULATOR SIMULATIONS 

• THE MEGABYTE GAP 

• STOCKS AND BONDS 

• BUDGET ANALYSIS (FOR BUSINESS AND HOME) 

• NEWDOS/80 REVIEW 

• DUTCHING - THE HORSE SYSTEM THAT CANT LOSE 

• A SIMULATED GOLF GAME 

• CONTINUOUS FORM SOURCES 

• TAX/SAVER REVIEW 
AND MORE 



&& 



At vgl \a FIIMP At C 

' V ° oT\0^ **»**""^""»"«"^ A Complete Financial Analysis Package Used 

ǤC^ To Calculate Markup, Margin, Annuities, Compound Interest, Nominal 

S^ o^ And Effective Rates, Sinking Funds, Mortgage Calculations, Future Value, 

tt^jN^ Savings and Insurance, Percentage Difference Between Two Numbers, 

" Amortization Schedule and More 



SEND FOR OUR NEW 64 PAGE SOFTWARE CATALOG (INCLUDING LISTINGS OF HUNDREDS OF TRS-80'" PROGRAMS AVAILABLE ON 
CASSETTE AND DISKETTE). $2.00 OR FREE WITH EACH SUBSCRIPTIONS OR SAMPLE ISSUE 



* All programs arc supplied on cassette (add $3 for Diskette Version - add $5 for modified Mod-II Version). 



iCQMPLITRQNICS 



rvt&TV-evlATCAt. Aft^CATOr-JS S£F»VTCE" 



50 N. PASCACK ROAD 
SPRING VALLEY, NEW YORK 10977 

ONE YEAR SUBSCRIPTION $24 

TWO YEAR SUBSCRIPTION $48 

SAMPLE OF LATEST ISSUE $ 4 

START MY SUBSCRIPTION WITH ISSUE 

(#1 - July 1978 • #12 - June 1979 • #24 - July 1980 < 
NEW SUBSCRIPTION RENEWAL 



NEW TOLL-FREE 

ORDER LINE 

(OUTSIDE OF N.Y. STATE) 

(800) 431-2818 




HOUR 

24 ORDER * 

LINE 

(914) 425-1535 



is? 



#30 ■ January 1981) 



CREDIT CARD NUMBER. 

SIGNATURE 

ADDRESS 



NAME. 



_CITY_ 



_EXP DATE- 



_STATE _ 



.ZIP. 



*** ADD $12/YEAR (CANADA, MEXICO) - ADD $24/YEAR AIR MAIL - OUTSIDE OF U.S.A., CANADA & MEXICO *** 



Circle 149 on inquiry card. 



BYTE August 1981 



215 



Circle 261 on inquiry card. 



Mil stocks 'em all 
for faster delivery. 



No hidden charges. Prices include delivery. 

Ask about our " QED "discounts. 

VISA and MasterCard orders accepted. 

VIDEO TERMINALS 

VT100 DECscope $ 1595 

VT132 DECscope 1995 

ADM-3A (dumb terminal) 795 

ADM-3A+ (dumb terminal) 875 

ADM-5 (dumb terminal) 945 

ADM-31 (2 page buffer) 1 185 

ADM-42 (8 page buffer avail.) 2035 

1410 (Hazeltine dumb terminal) 825 

1420 (dumb terminal) 895 

1421 (Consul 580 & ADM-3A comp.) 850 

1500 (dumb terminal) 1045 

1510 (buffered) 1145 

1520 (buffered printer port) 1395 

1552 (VT52 compatible) 1250 

GRAPHICS TERMINALS 

VT100 with graphics pkg 3160 

ADM-3A with graphics pkg 1995 

ADM-3A+ with graphics pkg 2075 

300 BAUD TELEPRINTERS 

LA34-DA DECwriter IV 995 

LA34-AA DECwriter IV 1095 

LA36 DECwriter II 1295 

Teletype 4310 1095 

Teletype 4320 1195 

Diablo 630 RO 2295 

Diablo 1640 KSR 2775 

Diablo 1650 KSR 2835 

Tl 743 (portable) 1190 

Tl 745 (port/built-in coupler) 1485 

Tl 763 (port/bubble memory) 2545 

Tl 765 (port/bubble/b.i. coupler) 2595 

600 BAUD TELEPRINTERS 

Tl 825 RO impact 1450 

Tl 825 KSR impact 1570 

Tl 825 RO Pkg 1625 

Tl 825 KSR Pkg 1795 

1200 BAUD TELEPRINTERS 

LA 120 RO (forms pkg.) 2295 

LA 120-AA DECwriter III Iforms pkg.) 2095 

LA 180 DECprinter I 2295 

Tl 783 (portable) 1645 

Tl 785 (port/built-in coupler) 2270 

Tl 787 (port/internal modem) 2595 

Tl 810 RO impact 1760 

Tl 810 RO Pkg 1950 

Tl 820 KSR impact 2025 

Tl 820 RO 1850 

Tl 820 KSR Pkg 2195 

Tl 820 RO Pkg 2025 

2400 BAUD 

Dataproducts M200 (2400 baud) 2595 

DATAPRODUCTS LINE PRINTERS 

B300 (300 LPM band) 5535 

B600 (600 LPM band) 6861 

2230 (300 LPM drum) 7723 

2260 (600 LPM drum) 9614 

2290 (900 LPM drum) 1 2655 

ACOUSTIC COUPLERS 

A/J A242-A (300 baud orig.) 242 

A/J 247 (300 baud orig.) 315 

A/J AD342 (300 baud orig./ans.) 395 

A/J 1234 (Vadic compatible) 895 

A/J 1245 (300/1200 Bell comp.) 695 

MODEMS 

GDC 103A3 (300 baud Bell) 395 

GDC 202S/T (1200 baud Bell) 565 

GDC 212-A (300/1200 baud Bell) 850 

A/J 1256 (Vadic compatible) 825 

A/J 1257 (triple modem w/phonel 975 

CASSETTE STORAGE SYSTEMS 

Techtran 816 (store/forward) 1050 

Techtran 817 (store/f or/spued up) 1295 

Techtran 818 (editing) 1795 

Techtran 822 (dual) 2295 

MFE 5000 (editing) 1495 

FLOPPY DISK SYSTEMS 

Techtran 950 (store/forward) 1395 

Techtran 951 (editing) 1995 

69 

Distributors, New York, New Jersey and Ohio. 

NewYorfe: 

516/482-3500, 212/895-7177, 518/449-5959 

Outside N.Y.S.: 800/645-8016 

New Jersey. 201/227-5552 

Ohio: 216/464-6688 



at present, no large-scale organiza- 
tion exists to support it. However, 
NEC's marketing manager says the 
company will have a number of com- 
puter distributors and retail outlets in 
the near future. 

NEC is also aiming at the higher 
end of the small-business market with 
the Astra system, which is expected 
to be available soon. NEC Informa- 
tion Systems (Lexington, Massachu- 
setts) is marketing the system, with 
prices starting at $11,000. 

Casio 

Relatively small (by Japanese stan- 
dards) Casio is well known for its ex- 
tensive line of calculators (many sold 
under different brand names). Casio 
has had its ups and downs over the 
past few years and developed a per- 
sonal computer about three years 
ago. Although some were sold in 
Japan, the product was ahead of its 
time. 

Casio is about to make a major bid 
for the US personal and small- 
business computer market with the 
imminent introduction of the FX- 
9000P. 

The FX-9000P has a unique design 
with a built-in green phosphor 5-inch 
monitor (similar to the Hewlett- 
Packard HP-83 and HP-85). One of 
the most interesting features is the set 
of plug-in modules for programmable 
memory expansion, peripheral inter- 
face, and software in read-only 
memory. In addition, the unit will be 
one of the first to partially use CMOS 
memory (which doesn't lose data 
when the power is turned off). As 
CMOS prices continue to fall, more 
companies will incorporate this new 
technology in their computer designs. 

The big question mark about the 
FX-9000P is the price. Although com- 
pany officials were more than happy 
to talk about its capabilities, the price 
is something they refused to even hint 
at. The unit seems to be aimed at 
more specialized uses than personal 
computers made by others. It will 
probably be marketed for scientific as 
well as small-business uses — ag- 
gressive pricing, however, will make 
it attractive for lower-end uses. The 
best guess is that it will sell in the 
$1200 to $1800 range. 



Mitsubishi 

Another of the giant Japanese con- 
glomerates, Mitsubishi, builds 
everything from small consumer ap- 
plicances to jet planes. The company 
is one of the few that doesn't (at the 
moment) seem to be interested in the 
personal computer market, but its 
large mainframe systems make it the 
fifth largest computer company in 
Japan. 

Mitsubishi does have a US sub- 
sidiary which is working to market a 
high-end small-business computer. 
Melcom systems is expected to 
market the Melcom Model 18 soon. 
The system is already being sold in 
Japan with prices starting at $18,000. 

Rumors about a Mitsubishi per- 
sonal computer are nonexistent, but 
the fact that it is developing a com- 
puter marketing network portends 
things to come. 

Seiko 

Best known for its line of watches, 
Seikosha Limited has been rumored 
for some time to be developing a low- 
end portable personal computer. 
Since 1979, the company has been 
selling a personal computer in Japan 
(with very limited success). The 
Seikosha 8500 uses two Intel 8085 
microprocessors, has a 12-inch video 
display, and comes with two 5 Vt -inch 
floppy-disk drives. Chances are slim 
that this product will ever arrive on 
the American market. 

The hottest rumor, circulating for 
some time now, is that Seiko's low- 
end personal computer would have a 
"designer" look created by Pierre 
Cardin. At the winter Consumer Elec- 
tronics Show, Seiko displayed a 
number of products designed by Car- 
din. Conversations with Seiko per- 
sonnel brought out the fact that 
"other products" are under develop- 
ment and will soon be appearing 
here. 

Perhaps the biggest argument for 
an eventual Seiko push into the US 
personal computer market is the suc- 
cess of Seiko's Epson subsidiary. Ep- 
son printers are rapidly becoming 
more and more popular in the United 
States, with a sales and service 
organization that is building 
rapidly — an organization that could 



216 August 1981 © BYTE Publications Inc 



CQMPJTRQNXCS 



N 



EVERYTHING FOR YOUR TRS-80* • ATARI* • APPLE* • PET* • 

•TRS-80 is * trademark ol the Radio Shack Division of Tandy Corp. - 'ATARI is a trademark ol Atari Inc. - 'Apple is a trademark ol Apple Corp. - 'Pet is a trademark of Commodore 

BUSINESS PAC 100 

100 Ready-To-Run 
Business Programs 




PSS ed within 24-Hour* 

/ /\ • 30-DaV money 
Software 



(ON CASSETTE OR DISKETTE) Includes 110 Page Users Manual 5 Cassettes (Or Diskettes) 

Inventory Control Payroll Bookkeeping System Stock Calculations 

Checkbook Maintenance. ....Accounts Receivable. ....Accounts Payable 



BUSINESS 100 PROGRAM LIST 



1 RULE78 Interest Apportionment by Rule of the 78's 

2 ANNC11 Annuity computation program 

3 DATE Time between dates 

4 DAYYEAR Day of year a particular date fails on 

5 LEASEJNT Interest rate on lease 

6 BREAKEVN Breakeven analysis 

7 DEPRSL Straightline depreciation 

8 DEPRSY Sum of the digits depreciation 

9 DEPRDB Declining balance depreciation 

10 DEPRDDB Double declining balance depreciation 

1 1 TAXDEP Cash flow vs. depreciation tables 

12 CHECK2 Prints NEBS checks along with daily register 

13 CHECKBK1 Checkbook maintenance program 

14 MORTGAGE/ A Mortgage amortization table 

1 5 MULTMON Computes time needed for money to double, triple, 

16 SALVAGE Determines salvage value of an investment 

17 RRVAR1M Rate of return on investment with variable inflows 

18 RRCOMST Rate of return on investment with constant inflows 

1 9 EFFECT Effective interest rate of a loan 

20 FVAL Future value of an investment (compound interest) 

21 PVAL Present value of a future amount 

22 LOANPAY Amount of payment on a loan 

23 REGWTTH Equal withdrawals from investment to leave over 

24 SIMPDISK Simple discount analysis 

25 DATEVAL Equivalent & nonequivalent dated values for oblig. 

26 AMNUDEF Present value of deferred annuities 

27 MARKUP % Markup analysis for items 

28 SINKFUND Sinking fund amortization program 

29 BONDVAL Value of a bond 

30 DEPLETE Depletion analysis 

31 BLACKSH Black Scholes options analysis 

32 STOCVAL1 Expected return on stock via discounts dividends 

33 WARVAL Value of a warrant 

34 BONDVAL2 Value of a bond 

35 EPSEST Estimate of future earnings per share for company 

36 BETAALPH Computes alpha and beta variables for stock 

37 SHARPE1 Portfolio selection model-i.e. what stocks to hold 

38 OPTWRITE Option writing computations 

39 RTVAL Value of a right 

40 EXPVAL Expected value analysis 

41 BAYES Bayesian decisions 

42 VALPRINF Value of perfect information 

43 VALADINF Value of additional information 

44 LmUTY Derives utility function 

45 SIMPLEX Linear programming solution by simplex method 

46 TRAMS Transportation method for linear programming 

47 EOQ Economic order quantity inventory model 

48 QUEUE1 Single server queueing (waiting line) model 

49 CVP Cost-volume-profrt analysis 

50 CONDPROF Conditional profit tables 

51 OPTLOSS Opportunity loss tables 

52 FQCIOQ Fixed quantity economic order quantity model 

NAME DESCRIPTION 

53 FQEOWSH As above but with shortages permitted 

54 FQEOQPB As above but with quantity price breaks 

55 QCIECIECB Cost-benefit waiting line analysis 

56 NCFAMAL Met cash-flow analysis for simple investment 

57 PROF1ND Profitability index of a project 

58 CAP1 Cap. Asset Pr. Model analysis of project 

Circle 150 on inquiry card. 



59 WACC Weighted average cost of capital 

60 COMPBAL True rate on loan with compensating bal. required 

61 DISCBAL True rate on discounted loan 

62 MERGAMAL Merger analysis computations 

63 FINRAT Financial ratios for a firm 

64 NPV Met present value of project 

65 PRIMDLAS Laspeyres price index 

66 PRINDPA Paasche price index 

67 SEASIND Constructs seasonal quantity indices for company 

68 TIMETR Time series analysis linear trend 

69 TIMEMOV Time series analysis moving average trend 

70 FUPRINF Future price estimation with inflation 

71 MAILPAC Mailing list system 

72 LETWRT Letter writing system-links with MAILPAC 

73 SORT3 Sorts list of names 

74 LABEL I Shipping label maker 

75 LABEL2 Name label maker 

76 BLISBtlD DOME business bookkeeping system 

77 TIMECLCK Computes weeks total hours from timeclock info. 

78 ACCTPAY In memory accounts payable system-storage permitted 

79 INVOICE Generate invoice on screen and print on printer 

80 INVENT2 In memory inventory control system 

81 TELDIR Computerized telephone directory 

82 T1MUSAN Time use analysis 

83 ASSIGN Use of assignment algorithm for optimal job assign. 

84 ACCTREC In memory accounts receivable system-storage ok 

85 TERMSPAY Compares 3 methods of repayment of loans 

86 PAYNET Computes gross pay required for given net 

87 SELLPR Computes selling price for given after tax amount 

88 ARBCOMP Arbitrage computations 

89 DEPRSF Sinking fund depreciation 

90 UPSZONE Finds UPS zones from zip code 

91 ENVELOPE Types envelope including return address 

92 AUTOEXP Automobile expense analysis 

93 INSF1LE Insurance policy file 

94 PAYROLL2 In memory payroll system 

95 DILAMAL Dilution analysis 

96 LOAMAFFD Loan amount a borrower can afford 

97 RENTPRCH Purchase price for rental property 

98 SALELEAS Sale-leaseback analysis 

99 RRCONVBD Investor's rate of return on convertible bond 

1 00 PORTVAL9 Stock market portfolio storage-valuation program 



D CASSETTE VERSION $99.95 

□ DISKETTE VERSION $99.95 

D TRS-80* MODEL II VERSION $149.95 

ADD $3.00 FOR SHIPPING IN UPS AREAS 
ADD $4.00 FOR C.O.D. OR NON-UPS AREAS 
ADD $5.00 OUTSIDE U.S.A. CANADA & MEXICO 



NEW r 0LL 



LINE 



«*> «a 



iCQIYIPLITHQMICS 

50 N. PASCACK ROAD 
SPRING VALLEY, NEW YORK 10977 





HOUR 
O A ORDER 
^ UNE 

425-1535 



Circle 119 on inquiry card. 




tippkz 



^ ATARI' 

EPSON 
. . . and more 
Apple II 

32K J 1099 D0 

48K s 1149 00 

Disk II W/3.3D0S ... J 529 00 

Disk II J 450 00 

Apple III W/128K .... s 3600 00 

EPSON 

MX-70 J 399 00 

MX-80 CALL 

Apple card & cable.. 5 99 00 

ATARI 8 

400 W/16K s 3.49 00 

800 W/16K s 775 D0 

810 Disk Drive s 449 00 



We'll meet or beat 
any advertised price. 



WAp% HEWLETT 
W!HM PACKARD 

HP-85AW/16K s 2697 30 

NEC 

5510-2 w /Tractor ... J 2550 00 
5520-2 w /Tractor ... J 2850 00 

S0R0C 

IQ 120 s 725 00 

IQ 135 J 799 D0 

C.IT0H 

Comet s 499 95 

Starwriter s 1450 00 

Northstar, Altos and Zenith 
All 25% Discount 

LO-BALL COMPUTERS 

7677 S.W. Cirrus Dr. 
Beaverton, OR. 97005 

TO ORDER 
CALL (503) 641-0211 

Ordering Information: For fastest ser- 
vice, send money order, cashier's 
check or bank wire. Visa and MC 
orders, add 3%. Personal checks 
accepted (allow minimum 10 days to 
clear). Hours 9-5, M-F. 
Call for our Free Catalog. 



easily handle personal computers. 

Matsushita 

Matsushita is one of the largest 
manufacturers and marketers of con- 
sumer electronics products in the 
world, with 1980 sales of $13.7 
billion. In the United States, the com- 
pany is best known for the Quasar, 
Panasonic, and Technics brands. Its 
US marketing organization and ex- 
pertise are formidable. 

Apparently, the company's first 
thought about entering the US per- 
sonal computer market was to ap- 
proach it in a very different 
way — namely, the Panasonic and 
Quasar hand-held computer, in- 
troduced officially at the winter Con- 
sumer Electronics Show. (See BYTE 
January 1981, page 34.) 

Persistent rumors exist in the in- 
dustry that Matsushita is having 
second thoughts about the hand-held 
computer in its present form. Release 
dates have already been pushed up a 
few months, lending credence to the 
rumor that the product will undergo a 
major redesign. Meanwhile, there are 
reports that the company is hard at 
work on a full-sized personal com- 
puter in the $1000 range. 

IBM obviously respects the 
resources of Matsushita in the small 
computer field; Matsushita officials 
recently admitted they were ap- 
proached by IBM to build a personal 
computer for the US giant. Sources at 
both companies say nothing came of 
the meeting, but, in fact, Matsushita 
and IBM having been working for 
some time on a joint project to pro- 
duce a series of personal computers 
bearing the IBM logo. Code-named 
"Go," the project now seems to have 
been suspended. (See the editorial in 
last month's BYTE.) 

Sord 

Although virtually unknown in the 
United States, this small company 
based in Tokyo is planning a major 
push into the US market. Sord 
designed and markets the M100 com- 
puter in both Europe and Japan. 
Some 1800 units were reportedly 
shipped to Europe in 1980. They are 
evidently being sold under another 



name because dealers contacted in the 
United Kingdom had never heard of 
them. 

Most Japanese companies are 
secretive, but Sord stands out as one 
of the most tight-lipped. I was con- 
sistently unable to contact company 
officials and letters went unanswered. 
Consequently, details of the MlOO are 
not available. 

There are, however, persistent 
rumors that the company will appear 
suddenly in the US with a strong pro- 
duct, marketed well. 

Other Companies 

A number of other Japanese com- 
panies are working on personal and 
small-business computers designed 
for the United States market. In most 
of the following cases, little if any 
details are available. 

Sony recently admitted it is design- 
ing a personal computer which will 
either interface with or be designed 
around its recently introduced 
TypeCorder portable typewriter 
(which fits in a briefcase and stores 
text on miniature tape cassettes). 
Sony has what is probably the most 
formidable marketing/service 
organization of any Japanese com- 
pany in the United States. More im- 
portantly, the Sony name is 
synonymous with high quality and 
innovative technology. 

Expect the introduction of a Sony 
personal computer within a year. It 
will probably be unlike any other 
product n'ow on the market and will 
use Sony's new 3-inch disks. 
Reported problems with quality con- 
trol on the disks may, however, delay 
the process. When the unit does ap- 
pear, it will certainly give both US 
and other Japanese computer makers 
a run for their money. 

OKI is expanding its US marketing 
and service network and quietly 
showed its OKI IF800 at the winter 
Consumer Electronics Show. The 
OKI IF800 is now being sold in Japan 
(for approximately $8000) and is a 
strong seller for small-business ap- 
plications. 

Toshiba is working on small com- 
puters but doesn't seem to be in- 
terested in either the US or Japanese 



218 August 1981 © BYTE Publications Inc 




NEECO 



WHY BUY FROM THE BEST? 

Service.. . Support... 
Software. . . 




MULTI-CLUSTER 

For Commodore Systems, allows 3 
CPU's (Expandable to 8) to access a 
single Commodore Disk. 

MULTI-CLUSTER (3 CPU's) S 795 

Each Additional CPU (up to 8) . . . S 199 




commodore 

16K B (16K RAM-40 Column) - Lim. Qty $ 995 

32K B (32K RAM-40 Clm.) - Lim. Qty $1295 

4016 (16K RAM 4.0 Basic-40 Clm.) $ 995 

4032 (32K RAM 4.0 Basic-40 Clm.) $1295 

8032 (32K RAM 4.0 Basic-80 Clm.) $1495 

8050 Dual Disk (1 Meg Storage) $1795 

4040 Dual Disk (343K Storage) . . $1295 

8010 IEEE Modem $ 280 

C2N Cassette Drive . . $ 95 

CBM - IEEE Interface Cable '.'...$ 40 

IEEE - IEEE Interface Cable $ 50 

VIC 20 Home/Personal Computer $ 295 

ALTOS 

ACS 8000-2 64K 1M $ 4500 

ACS 8000-15 64K 1M $ 5990 

ACS 8000-6 208K 14.5M $10490 

ACS 8000-7 208K 29.0M $11690 

ACS 8000-10 208K 10M $ 8500 

ACS 8000-10/MTU $10990 



EPSON PRINTERS 

MX-80 PRINTER $ 645 

MX-80 FT $ 745 

MX-100 $ 945 

MX-70 $ 459 

INTERFACE CARDS 

8141 (RS-232) $ 75 

8150 (2K Buffered RS-232) $ 150 

8161 (IEEE 488) $ 55 

8131 (Apple Card) $ 85 

8230 (Apple Card) $ 25 

8220 (TRS-80 Cable) $ 35 

DIARLO 630 PRINTER 

DIABLO 630 - Serial - RS-232 $2710 

Tractor Option $ 250 



NEC SPINWRITER PRINTERS 

5530 (Parallel) $3055 

5510 (Serial) $3055 

5520 (KSR-Serial) $3415 

Tractor Option $ 225 



APPLE 

16K APPLE II+ $1330 

32K APPLE II+ $1430 

48K APPLE II+ $1530 

APPLE DISK w/3.3 DOS . $ 650 

APPLE DRIVE Only $ 490 

APPLE III 128K- In Stock! 
w/Monitor + 
Info Analystpak $4740 




AMDEK MONITORS INTERTEC COMPUTERS 



Video 100 12" B*W $ 179 

Video 300 12" Green $ 249 

Color 1 13" Low Res $ 449 

Color II 13" High Res $ 999 



64K Superbrain 

(360 Disk Storage). CP/M™ . . . $3495 
64K QD Superbrain 

(700K Disk Storage). CP/M T ". . $3995 



*CP/M is a registered trademark of Digital Research 





ATARI COMPUTERS 

Atari 400 (16K RAM) $ 399 

Atari 800 (32K RAM) - good thru 8/31 $1080 

Atari 410 RECORDER $ 89.95 

Atari 810 DISK DRIVE $ 599.95 

NEECO carries all available ATARI Software and Peripherals. 



PROFESSIONAL 
SOFTWARE 

WordPro 1 8K $ 29.95 

WordPro 3 (40 Clm.)16K ....$ 199.95 

WordPro 3* $ 295 

WordPro 4 (80 Clm.) 32K . . . . $ 375 
WordPro 4+ $ 450 



JUST A SAMPLE OF THE MANY PRODUCTS WE CARRY. CALL US FOR OUR NEW 60-PAGE CATALOG. 

WE WILL MATCH ANY ADVERTISED PRICE ON PRODUCTS LISTED UNDER SIMILAR "IN STOCK" CONDITIONS. 




NEECO 

679 HIGHLAND AVE. 
NEEDHAM, MA 02194 



(617)449-1760 

Telex: 951021 



MON-FRI 9:00 - 5:00 



MasterCharge and VISA Accepted 



Circle 268 on inquiry card. 



BYTE August 1981 219 



System Log 



3-/Q AM - rW^fc^ /W^ 



ZS& L 



/ 



Dt/i&A/esr/cs Wh 



g/MLLtt stAtL&lbUd OMsL 



AiJGstCrtt *4facJl /?* ~^4*LC. 





DIAGNOSTICS 

Diagnostics II is SuperSoft's expanded Diagnostic package. 

Diagnostic II builds upon the highly acclaimed Diagnostics I. It will test 
each of the five areas of your system: 

Memory Terminal Printer CPU Disk 

Every test is expanded. 

Every test is "submil"-able. A "submit" file is included in the package which 
"chains" together the programs in Diagnostics II, achieving an effective 
acceptance test. All output can be directed to a log file for unattended operation, 
for example over night testing. Terminal test is now generalized for most crt 
terminals. A quick-test has been added for quick verification of the working 
of the system. 

The memory test is the best one we have encountered. It has new features, 
including: 

• default to the size of the CP/M Transient Program Area (TPA) 

• printout of a graphic memory map • burn in test 

• bank selection option • memory speed test 
Diagnostics-ll still includes the only CPU test for 8080/8085/Z80. 

A Spinwriter/Diablo/Qume test has been added, which tests for the positioning 
and control features of the Spinwriter/Diablo/Qume as well as its ASCII 
printing features. (Serial Interface only) 

And, as with all SuperSoft products, a complete online HELP 
system and user manual is included. 

Price: $100.00 (manual only): $15.00 

Requires: 32K CP/M 

CP/M Formats: 8" soft sectored, 5" Northstar, 5" Micropolis 
Mod II, Vector MZ, Superbrain DD/QD 



VISA 



SuperSoft 



All Orders and General Information: 

SUPERSOFT ASSOCIATES 

P.O. BOX 1628 

CHAMPAIGN, IL 61820 

(217)359-2112 

Technical Hot Line: (217) 359-2691 

(answered only when technician is available) 

CP/M REGISTERED TRADEMARK DIGTAL RESEARCH 



First in Software Technology 



personal and/or small-business 
market at this time. The only small 
computer product it is currently of- 
fering is a one-board uncased 
machine with BASIC and a keyboard 
that's mainly designed for develop- 
ment work. 

AI Electronics Corporation and 
Logic Systems International are two 
small companies, based in Tokyo, 
which seem to be quietly working 
behind the scenes. Both ship about 
2000 personal computers a year to 
Europe — where they are packaged 
and sold under different names. In the 
Japanese tradition of secrecy, details 
on their products are unavailable; 
however, watch for the names, 
possibly in conjunction with US com- 
panies. Rumors persist that both 
companies have had major discus- 
sions with US companies regarding 
the marketing of their personal com- 
puters in the United States. 

Finally, Sanyo has exhibited some 
personal computer prototypes at 
Japanese trade shows, but seems to 
have put the project on a back burner 
for the time being. 

Summary 

The Japanese personal computers 
are impressive machines at highly 
competitive prices. However, the 
outlook for American computer 
manufacturers is not entirely grim. 
There is little if any chance that the 
influx of Japanese products into our 
market will have anywhere near the 
same effect Japanese automobiles and 
steel have had on those US markets. 
The American computer industry is 
far from being the mature and top- 
heavy group that the auto and steel 
industries are. The United States 
developed the computer and that 
development continues to move for- 
ward at a dizzying pace. 

In fact, the influx of Japanese per- 
sonal computers is likely to further 
spur the domestic computer makers. 
Their highly experienced marketing 
and product-development groups are 
poised to give the Japanese products a 
run for their money. The bottom line 
seems to be that the "Japanese Com- 
puter Invasion" will result in better 
products and lower prices for con- 
sumers. ■ 



220 August 1981 © BYTE Publications Inc 



If you can't find the right program 

in our new catalog, 
it probably hasn't been written. 



As the world's largest publisher of 
professional software for micro- 
computers, Lifeboat Associates offers 
the largest selection of state-of-the-art I 
programs. And our new catalog has 
more to offer than ever We also add the 
crucial dimension of after-sales service 
and full support to everything we sell. 
Order your free catalog today. 




For a free catalog, mail coupon to Lifeboat Associates, 

1651 Third Avenue, New York, NY 10028. 

Or call (212)860-0300. Telex 640693 (LBSOFT NYK) 



Company. 
Street 



_State_ 



_Z.p_ 



■i 

oo m 

- I 

I 
I 
I 



Our catalog contains full descriptions and specifications of the following: 



DISK OPERATING SYSTEMS 



CP/M CONFIGURED FOR: 

APPLE II 

DATAPOINT 1550/2150 

ICOM MICRODISK 

IC0M 3712 

ICOM 3812 

ICOM 4511/PERTEC D3000 

INTEL MDS 

MICROPOLIS FLOPPY DISK 

MITS/ALTAIR 

MOSTEK MDX 

NORTH STAR 

0SIC3 

0SIC3B 

0S1 C3C Prime 

TRS-80 MODEL II 
MP/M FOR INTEL MDS 

HARD DISK INTEGRATION MODULES 

CORVLJS WITH APPLE II SOFTCARD 
CORVUS WITH S100 AND TRS-80 

MODEL II 
ICOM 4511/PERTEC D3000 
KONAN PLUS CDC PHOENIX 
XC0MP SM/S PLUS CDC PHOENIX 
XCOMP DFC10 FOR PERTEC D3000 



SYSTEMS TOOLS 



BUGANDuBUG 

DESP00L 

OISILOG 

DISTEL 

EDIT 

EDIT-80 

F1LETRAN 

IBM/CPM 

MAC 

MACRO-80 

PASM 

PLINK 

PMATE 

RAID 

RECLAIM 



SID 

TRS-80 MODEL II 

CP/M 

CUSTOMIZATION 
UNLOCK 
WORD-MASTER 
XASM-1B 
XASM-48 
XASM-65 
XASM-68 
XMACRO-86 
ZDT 
Z80 DEVELOPMENT 

PACKAGE 
ZSID 



ORDERING INFORMATION. COMPUTERS 
SUPPORTED INCLUDE: 
ADDS Mullivision 

AVL Eagle 

Altalr 8800 

Altos 

Apple CP/M 13 Sector 

Apple CP/M 16 Sector 

BASF System 7100 

Blackhawk Micropolis Mod II 

CDS Versatile 3B 

CDS Versatile 4 

Columbia Data Products 

COMPAL-80 

CSSN 8ackup 

Cromenco System 3 

Cromenco System 2 SDSS 

Cromenco System 2 DDSS 

Cromenco System 2 DDDS 

Datapoint 1550/2150 Single Sided 

Datapoint 1550/2150 Double Sided 

Delta Systems 

Digi-Log Microterm II 

Digital Microsystems 

Durango F-85 

Dynabyte DB8/2 

Dynabvte0B8/4 



LIFEBOAT WORLDWIDE 

Lifeboat Inc. 

3-23-8 Nishi-shinbashi 

Minato-ku, Tokyo. 105 Japan 

Tel: 03-437-3901 

Telex: 2422723 (ASRTYOJ) 



TELECOMMUNICATIONS 



MAIL LIST APPLICATIONS 



LANGUAGES 



ALG0L-80 

APL/V80 

BASIC-80 

(COMPILER) 
BASIC-80 

(INTERPRETER) 
BDSC COMPILER 
CBASIC-2 
CIS COBOL 
COBOL-80 
FORTRAN-80 
JRT PASCAL 
muLISP 



muSIMP 
NEVADA COBOL 
PASCAL/M 
PASCAL/MT 
PASCAL/MT+ 
PASCAL/Z 
PL/1-80 
S-BASIC 
TINYC 
TINY-C TWO 
WSMITHSC 
COMPILER 
XYBASIC 



MAILING ADDRESS (PTREE) 
MAILMERGE FOR WORDSTAR 
NAD 
POSTMASTER 



BUSINESS APPLICATIONS 



LANGUAGE AND APPLICATIONS TOOLS 



BASIC UTILITY 

DISK 
DATASTAR 
FABS 
FORMS 1 FOR CIS 

COBOL 
FORMS 2 FOR CIS 

COBOL 
MAGSAM III 
MAGSAM IV 



MDBS DRS 
MDBS RTL 
M/SORTFOR 
COBOL-80 
PEARL 
PSORT 
OSORT 
STRING BIT 
STRING /80 
SUPER-SORT 
ULTRASORTII 



ACCOUNTS PAYABLE (PTREE) 
ACCOUNTS PAYABLE (SSG) 
ACCOUNTS RECEIVABLE (PTREE) 
ACCOUNTS RECEIVABLE (SSG) 
GENERAL LEDGER II (CPAIDS) 
GENERAL LEDGER (PTREE) 
GENERAL LEDGER (SSG) 
GLECTOR FOR SELECTOR III-C2 
INVENTORY (PTREE) 
INVENTORY (SSG) 
PAYROLL (PTREE) 
PAYROLL (SSG) 

NUMERICAL PROBLEM-SOLVING TOOLS 

ANALYST STATPAK 

FPL T/MAKER 

muMATH 



WORD PROCESSING SYSTEMS AND AIDS 



OTHER SPECIALIZED APPLICATIONS 

DATEBOOK 

ESQ-! 

PAS-3 DENTAL 

PAS-3 MEDICAL 

PROPERTY MANAGEMENT (PTREE) 



THE PASCAL HANDBOOK 

PASCAL USER MANUAL AND REPORT 

PAYROLL WITH COST ACCOUNTING- 

CBASIC 
STRUCTURED MICROPROCESSOR 

PROGRAMMING 
USING CP/M-A SELF-TEACHING GUIDE 

ACCESSORIES 

DC 300 DATA CARTRIDGE 
HEAD CLEANING DISKETTE 
FLIPPY OISK KIT 
FLOPPY SAVER 

Program names and computer names are 
generally trademarks or service marks of 
the author or manufacturing company. 

All software products have specific 

requirements for hardware and additional 

associated software (eg. operating system 

or language). 

All products are subject to terms and 

conditions of sale 

Prices and specifications are subject to 

change without notice. 

All Lifeboat software requires CP/M unless 
otherwise stated 

Copyright ©1981 Lifeboat Associates. No 
portion of Ihis advert isemeni may be 
reproduced without prior permission. 



MAGIC WAND 
LETTERIGHT 
MICROSPELL 
SPELLGUARD 



TEX 
TEXTWRITER III 

WORDSTAR 
W0R0IN0EX 



BOOKS AND PERIODICALS 



DATA MANAGEMENT PACKAGES 



CONDOR 
HDBS 



MDBS 
MDBS ORS 



GENERAL PURPOSE APPLICATIONS 

CBS SELECTOR IV 

SELECTOR III-C2 



APL-AN INTERACTIVE APPROACH 
ACCOUNTS PAYABLE 8 ACCOUNTS 

RECEIVABLE-CBASIC 
8080/Z80 ASSEMBLY LANGUAGE 
THE CP/M HANDBOOK 
THE C PROGRAMMING LANGUAGE 
CRASH COURSE IN MICROCOMPUTERS 
FIFTY BASIC EXERCISES 
GENERAL LEDGER-CBASIC 
INTRODUCTION TO PASCAL 
LIFELINES 



Exidy Sorcerer + Lifeboat CP/M 02 

Exidy Sorcerer + Exidy CP/M RW 

Heath H8 + H17/H27 disk P4 

Heath H89 + Lifeboat CP/M P4 

Heath H89 + Magnolia CP/M P7 

Heath H89 + Heath CP/M P7 

Helios II B2 

ICOM 2411 Micro Floppy R3 

ICOM 3712 A1 

ICOM 3812 A1 

ICOM 4511 5440 Cartridge CP/M 14 D1 

ICOM 4511 5440 Cartridge CP/M 2 2 D2 

IMS 5000 RA 

IMS 8000 A1 

IMSAIVDP-40 R4 

IMSAIVDP-42 R4 

IMSAIVDP-44 R5 

IMSAIVDP-80 A1 

ISC Intecolor 8063/8360/8963 A1 

Intertec Superbrain DOS 1 R7 

Intertec Superbrain DOS 5 RJ 

lntertecSuperbrainD0S3 x RK 

Intertec Superbrain QD RS 

Kontron PSI-80 RF 

MITS 3200-3202 Bl 

MSD5.25in RC 

MecaDelta-15 25 m P6 



Micromalion A1 

Micropolis Mod I 01 

Micropolis Mod II 02 

Morrow Discus A1 

Mostek A1 

NEC PC-8001 RV 

North Star Single Density PI 

North Star Double Density P2 

North Star Quad Density P3 

Nylac Micropolis Mod II Q2 

Ohio Scientilic C3 A3 

OKI IF-800 RZ 

OnyxC800l T2 

Pertec PCC 2000 A1 

Processor Technology Helios II B2 

Quay 500 RO 

Quay 520 RP 

RAIR Single Density R9 

RAIR Double Density RE 

Research Machines 5.25 in RH 

Research Machines 8 in. A1 

SD Systems 5.25 in R3 

SD Systems 8 in A1 

Sanco7000 5 25 in. RQ 

Spacebyte A1 

TEI 5.25 in. R3 

TEI8in A1 



TIP T3 

TRS-80 Model I STANDARD R2 

TRS-BO Model I + FEC Freedom RN 

TRS-80 Model I + MicromaliDn A4 

TRS-80 Model I + Omikron 5.25 in RM 

TRS-80 Model I + Omikron8in A1 

TRS-80 Model I + ShuttleOoard 8 in Al 

TRS-80 Model II A1 

TRS-80 Model III RU 

Vector MZ Q2 

Vector System 2800 Al 

Vector System B Q2 

Vector VIP Q2 

Vista V-80 5.25 in. Single Density R8 

Vista V200 5.25 in Double Density P6 

Zenith Z89 + Zenith CP/M P7 

Zenith Z89 + Lifeboat CP/M P4 

Zenith Z89 + Magnolia CP/M P7 



SS = single sided 
DD = double sided 



SD = single density 
DD = double density 



The list of available formats is subiect to 
change without notice In case of 
uncertainty, call to confirm the format coOe 
for any particular eouipmenl. 



Lifeboat Associates. Ltd. 

PO Box 125 

London WC2H9LU. England 

Tel: 01-836-9028 

Telex: 893709 (LBSOFTG) 



Lifeboat Associates GmbH 
PO Box 168. Aegeristrasse 35 
CH 6340 Baar. Switzerland 
Tel: 042-31-2931 
Telex: 865265 (MICOCH) 



Intersolt GmbH 
Schlossgartenweg 5 
D-3045 Ismaning. W. Germany 
Tel: 089-966-444 
Telex: 5213643 (ISOFD) 



Lifeboat Associates. SARL 

10. Grande Rue Charles de Gaulle 

92600 Asnieres. France 

Tel: 1-733-08-04 

Telex: 250303 (PUBLIC X PARIS) 



Lifeboat Associates 



Software with full support. 



Circle 409 on inquiry card. 



BYTE August 1981 221 



Print neatix 

so WE KNOW 

WHERE TO SEND 
TOUR CHECK. 



[FROM: 


(PLEASE PRINT: THIS IS YOUR SHIPPING LABEL) 
Name 


""1 




Address 






City/State/ZIP 










| TO: 


AshtonTate 

Suite 1510 

3600 Wilshire Boulevard 

Los Angeles, CA 90010 





222 BYTE August 1981 



Buying new software is the pits, 
isn't it? 

You read an ad and it sounds 
terrific, so you ask around, then buy 
the manual. 

So far, so good— so you spring 
several hundred dollars for the 
package. 

And it does exactly what they 
said. But to get exactly what you 
want, you're going to have to change 
the way you run your business. Or 
go through so much hassle that 
you're not sure it's worth it. 

So you grit your teeth and suffer, 
or put it on a shelf to gather dust. 

Sounds familiar, doesn't it? 

But there is at least one known 
exception: an exceptional DBMS 
called dBASE II. 

For database fans, an offer 
you shouldn't refuse. 

dBASE II is the only high- 
performance j^lational Database 
Management System for micros. 
And it's the only DBMS that can 
help you get the DBMS that's right 
for you, no matter which DBMS 
you may want. Here's how: 

If you have a 48k micro with 
CP/M, send us its model number 
and the size of your drives along 
with $700 (CP/M 86 version soon — 
call if you can't wait). 

We'll send you a copy of dBASE II 
that you can run on your system, 
solving your problems your way, 
for 30 days. Then just send every- 
thing back and we'll return your 
money, no questions asked. 

During that 30 days, you can find 
out how much a real database 
management system can do for you. 
How it will affect your operations. 
Exactly what you want done. And 
precisely how you want to do it. 

Then even if you go for some 
other system, you'll be an informed 
buyer. 

And it never hurts to know what 
you're doing. 



IBM just caught up. 
So can you. 

With dBASE II, you'll get the 
same kind of system for your micro 
that IBM introduced a few months 
ago for their mainframes. 

It's a relational DBMS, and that 
makes it different from any other 
micro system you've ever seen. 

In a relational database, the data 
is organized as simple tables, with 
records as the rows and the data 
fields as the columns, much like your 
data is organized now. Data rela- 
tions are logical, so that you can 
zero in on the specific information 
you want without knowing a thing 
about the pre-defined sets, pointers 
or other cumbersome structures of 
hierarchal and network DBMS's. 

And unlike file management 
systems, dBASE II gives you pro- 
gram and data independence. You 
can change your database structure 
without re-entering your data and 
without reprogramming, or change 
some or all of your programs with- 
out touching your database. And 
the same database can be used for 
any number of different applications. 

dBASE II is a stand-alone 
applications development 
system. 

You don't need an extra support 
language, because dBASE II comes 
with its own Applications Devel- 
opment Language (ADL). With ADL, 
you can use simple English-like 
statements to manipulate your data, 
or use built-in structured constructs 
to prepare sophisticated applica- 
tions packages. It's simple and easy 
to use, yet extremely powerful. 

You create a new database and 
start using it in a minute or less. 
Just type CREATE, then respond to 
system prompts to name the file and 
define the fields. Now enter the data. 

Add data to an existing database 
instantly, whether your file has 



AshtonTate 



©Ashton-Tate 1981 



10 records or 10,000 records, by 
typing APPEND, then entering the 
information. 

UPDATE, MODIFY, JOIN and 
REPLACE whole databases or 
individual records and characters. 

Add or delete fields in your data- 
base structure without re-entering 
all your data. 

And with dBASE II, it's easy to 
get information out once you've put 
the data in. 

Do automatic calculations on 
fields, records and databases with a 
few keystrokes. 

Organize months' worth of data 
in minutes with REPORT (printing 
optional), and get your reports 
today instead of tomorrow. Use 
the built-in SORT, with single or 
multiple keys. Or INDEX your 
data, then FIND it in seconds, even 
with floppies. 

You can use dBASE II inter- 
actively or store a sequence of com- 
mands to automate your accounting, 
billing, mailing lists or whatever 
data you have to manage. 

You'll wonder how you 
managed without it. 

dBASE II is the most powerful, 
easiest to use DBMS you can get for 
a micro. 

And instead of poring over the 
manual, you can run it hands-on, 
in-house to see exactly what it can 
do for you. Try it. 

What have you got to lose? We 
even provide the label so you can 
send it back. 

Ashton-Tate, 3600 Wilshire Blvd., 
Suite 1510, Los Angeles, CA 90010. 
(213) 666-4409. 




Circle 26 on inquiry card. 



BYTE August 1981 223 



BYTELINES 



News and Speculation About Personal Computing 

Conducted by Sol Llbes 



J mall-Computer Con- 
frontation: The battle 
lines are being drawn be- 
tween small-computer sup- 
pliers and long-established, 
large-computer companies. 
Expect the first skirmishes 
next year. On one side are 
the microcomputer manu- 
facturers led by Tandy Cor- 
poration, Apple Computer 
Inc, and Commodore Busi- 
ness Machines. On the 
other, there's IBM, DEC 
(Digital Equipment Corpora- 
tion), HP (Hewlett-Packard), 
Xerox, and Data General. 
What is at stake is a market 
estimated at 300,000 units 
(not including sales to home 
users) that should exceed $1 
billion in sales in 1982. 

Here's what's happening: 
the small-computer makers 
are introducing larger sys- 
tems, while the large-com- 
puter makers are bringing 
out smaller systems. The 
small-computer makers are 
expanding and strengthening 
their marketing and distribu- 
tion channels, while the 
large, established com- 
panies are crowding into the 
retail area with their own 
stores and the same outlets 
that the small-computer 
makers have been using. 
Therefore, both groups will 
soon be competing in the 
same price/performance 
areas. 

A third factor that should 
become a significant pre- 
sence in the market next 
year is the Japanese. They 
are expected to concentrate 
on the small-business mar- 
ket, at this time. 

The key to success will be 
product marketing and dis- 
tribution, rather than tech- 
nology—ask IBM. While 
other manufacturers always 



seem to have a tech- 
nological edge, IBM supplies 
a total marketing program — 
sales, service, and support. 

The Radio Shack division 
of the Tandy Corporation is 
expected to hold its own 
because of its firmly en- 
trenched chain of stores. 
Presently, Radio Shack has 
138 computer stores, 200 
company-owned stores, and 
about 7000 franchises. How- 
ever, the competition is 
spreading. Both DEC and 
IBM have more than two 
dozen stores in operation. 
Xerox, with fifteen stores, 
hopes to have twice that 
number within the coming 
year, while HP is expected to 
open several of its own. HP 
already sells through in- 
dependent retailers, and 
DEC and IBM are expected 
to go this route along with 
their own retail outlets. 



wtatus Report: 5-Inch 
Winchester Disks: Disk 
manufacturers are rushing 
into the 5-inch Winchester 
market with drives providing 
up to 13 megabytes of 
storage (unformatted) in the 
volume of a standard 5-inch 
floppy-disk drive. The early 
entrants into the market are 
Seagate Technology and 
Tandon Magnetics; both 
started shipping samples 
late last year. Other com- 
panies with 5-inch hard-disk 
products in the making are 
Shugart, Internation 

Memories, Irwin Interna- 
tional, Olivetti, New World 
Computer, BASF, Computer 
Memories, and Rotating 
Memory Systems. Most com- 
panies are forwarding 
samples to OEMs (original 



equipment manufacturers) 
and expect to be in limited 
production by year's end. 

Capacities range from 2 to 
13 megabytes, unformatted. 
Prices, per megabyte, range 
from $90 to $450 in 100-unit 
quantities (drive only), which 
compares favorably with 
8-inch Winchesters, which 
currently cost $50 to $400 
per megabyte in similar 
quantities. Although no stan- 
dard interface has been de- 
veloped, a number of manu- 
facturers are providing Sea- 
gate-compatible interfaces. 



■ loppy- And Win- 
chester-Drive Capacities 
Increasing: Iomega, 
Ogden, Utah, is expected to 
introduce a 10-megabyte 
8-inch floppy-disk drive. It's 
rumored that Iomega plans 
to push this up to 
100 megabytes. Persi is 
gearing up to produce a 
6.4-megabyte dual 8-inch 
drive that fits in the same 
space as a Shugart 850 
8-inch drive. 

Seagate Technology has a 
new version of its 5-inch 
Winchester drive with capa- 
cities of 12.76 megabytes 
unformatted and 10 mega- 
bytes formatted. The 3M 
company has decided to 
enter the Winchester-drive 
market after making the 
media for years. It plans to 
introduce 10-, 20- and 
60-megabyte 8-inch Win- 
chesters. 



N. 



I ew 8080/Z80 DOSes: 

There are three new disk 
operating systems (DOSes) 
for Intel's 8080 and Zilog's 
Z80 microprocessors. MuSys 
Corporation, Tustin, Califor- 



nia, has introduced MuDOS, 
a CP/M-compatible DOS 
that provides a management 
system for handling multi- 
user access to the disk. 
MuDOS runs only on 
Z80-based systems and, 
MuSys claims, is six times 
faster than Digital 
Research's CP/M. The price 
will be in the $300 to $750 
range depending on config- 
uration 

Vortex Technology, Cul- 
ver City, California, will in- 
troduce MARC, a UNIX-like 
DOS for 8080 and Z80 sys- 
tems. Designed by Leor 
Zolman (the creator of the 
BDS C compiler) and Ed 
Ziemba, it initially boots 
under CP/M and has the 
UNIX-like, tree-structured 
file system replete with 
users, groups, protections, 
and the like. It also has a 
shell-type command inter- 
preter, shell files (pipes), 
user-customization modes, 
and utilities. Vortex expects 
the system to provide for the 
transparent running of most 
existing CP/M programs as 
well as programs written for 
MARC. Projected price is 
$175, and for another $75, 
you can have either the BDS 
C or the MINCE editor. 

InfoSoft, Westport, Con- 
necticut, is introducing 
MULTI/os for 8080 and Z80 
systems. MULTI/os will sup- 
port up to sixteen users, with 
a shared data base of 
975 megabytes and multiple 
disk controllers. Like the 
others, it also maintains 
CP/M compatibility. 



#^da And Little Ada 
Released: Telesoftware has 
finally released its Ada com- 



224 August 1981 © BYTE Publications Inc 





EXECUTIVE MENU 

THE COMPUTER SOLUTION FOR NON-COMPUTER PEOPLE 



Now Marot brings you another 
delicious first: a menu-driven 
information system so simple even 
a CEO can use it. 

A single key-stroke takes you directly 
to the required application: 

DATA BASE MANAGER 
(CONTROL™): a combined program 
generator that works with standard 
English query. That means it talks 
your language. So there's no need 
to learn a computer language or 
write a program to be a successful 
user. 



WORD PROCESSOR (MAGIC 
WAND™): a powerful word 
processor that allows full screen 
creation and editing of files. It also 
produces true proportional spacing, 
microjustification and kerning. In 
addition, documentation can be 
fully examined at the CRT prior to 
printing. 

ACCOUNTING: consists of several 
complete business packages either 
in standard ANSI 74 COBOL or 
OASIS™ BASIC, including accounts 
receivable and payable, general 
ledger, payroll, order entry and 
inventory. Financial modeling and 
job costing are also available. 

MAILING LIST (POSTMAN™): 
delivers up to 65,000 entries in zip 
and name order and is completely 
interactive with MAGIC WAND. 

SCHEDULER: maintains a complete 
office diary with ability to compare 
schedules. 



Although the Marot Menu appears 
simplistic, it also incorporates OASIS 
with user logons, accounting 
histories and password protection. 
Languages available include JCL 
(EXECUTIVE), BASIC, PASCAL, 
COBOL and FORTRAN. 

As a result, the Marot Executive 
Menu is a tasty pleasure for the 
higher-ups and the higher-techs. 

A la carte extra 

OPSCAN SERVICE™; available 
exclusively from Marot. Send us 
your well-printed or typed files. We'll 
read them directly into MAGIC 
WAND at a speed that would take 
20 typists to match. The cost is less 
than conventional typing and the 
turn-around is never more than 5 
days, 

CONTROL and OASIS are trademarks ol Phase 

One Systems Inc. 

POSTMAN is a trademark of Marot Systems Inc. 

OPSCAN SERVICE is a trademark of 

Marot Systems Inc. 

MAGIC WAND is a trademark of Retail Sciences Inc. 




MAROT SYSTEMS INC. 

310 Madison Avenue.Sulte 408, New York,N.Y. 10017 
(212)661-8550 TWX: 710-581-2477 ; : 

I'd like to order more information on 

□ MAROT MENU D OPSCAN SERVICES. 
I am a □ computer consultant 

□ computer dealer D computer user D CEO 



.©ttyTS'tate/Zip 



Circle 207 on inquiry card. 



BYTELINES 

piler. This is the first im- 
plementation of Ada on a 
microcomputer. The first 
release is for a 16-bit 
Motorola 68000 machine 
and provides most of the 
features called for in the 
Department of Defense Ada 
standard. Telesoftware 
hopes to add the missing 
features in the future. A 
single-user license is $2000. 
For $50, you can obtain a 
"Little Ada" compiler and 
interpreter for 8080/Z80- 
based systems that executes 
the primary Ada functions. 
With it, you can get a feel 
for what Ada is all about. 
While the compiler is fur- 
nished in object-code form, 
the L-machine run-time in- 
terpreter is furnished in 
source-code form. For more 
information, contact Ralph 
Kenyon, 145-103 S Budding 
Ave, Virginia Beach VA 
23452. 

I EC To Make TRS-SOs 
In Japan: Tokyo Electric 
Company (TEC) will 
manufacture and sell the 
TRS-80 Model I in Japan 
through a new agreement 
with Tandy Corporation. 
TEC will also market the 
TRS-80 Models II and III, 
and the Color units. Tandy 
stopped the manufacture 
and sale of the Model I in 
the US because it did not 
comply with the FCC (Feder- 
al Communications Commis- 
sion) RF (radio frequency) 
radiation requirements. TEC 
is a division of Toshiba, 
which manufactures its own 
personal computer. 

A\t&T And Publishers 
Clash Over Electronic In- 
formation Test: News- 
paper publishers in Texas 
have gone to court to pre- 
vent AT&T (American 
Telephone and Telegraph) 
from testing its "Electronic 
Information Service" (EIS). 
The publishers contend that 



AT&T is creating a mono- 
poly whereby subscribers 
would not be properly 
served. AT&T counters that 
EIS will be a service from a 
new company with separate 
assets. However, the 
publishers feel that this is a 
juggling act and a violation 
of a 1956 Justice Depart- 
ment ruling that stopped 
AT&T from providing data- 
processing services of any 
kind. 

The test was to be con- 
ducted in Austin, Texas. It 
was intended to be the pre- 
lude to a nationwide infor- 
mation-processing service 
that would bring yellow- 
page listings and advertising 
into the home through tele- 
vision sets. 

Software Broadcast 
Via Radio: Radio 
Netherlands will experimen- 
tally broadcast a short com- 
puter program this 
September tenth. The pro- 
gram will be aired in three 
different formats (TRS-80, 
Apple II, and PET). Listeners 
will be able to record the FM 
broadcast onto a cassette 
tape and then play it back 
into their computer systems. 
The broadcast will be heard 
in Australia, Europe, Africa, 
and North America. For in- 
formation on frequencies 
and times, write to Com- 
puter Experiment, Media 
Network, Radio Nether- 
lands, POB 222, 1200 JC 
Hilversum, Holland. 



I 



EEE-696/S-100 Stan- 
dard Out Of Committee: 

After three years, the IEEE 
(Institute of Electrical and 
Electronics Engineers) 
696/S-100 Bus Standard 
Committee has submitted a 
finished standard to the 
IEEE's computer-standard 
adoption committee. The 
standard is now complete 
and formal adoption is ex- 
pected early in 1982 



R 



random News Bits: 

Sinclair will replace the 
ZX80 with the ZX81 . The 
ZX81 contains only four in- 
tegrated circuits in place of 
the ZX80's twenty-two. The 
price will drop significantly. 
. . . Apple Computer has 
signed a lease for a 160,000- 
square-foot plant in Car- 
rolton, Texas. Apple plans to 
add 700,000 square feet of 
manufacturing space during 
the next twelve months. Tan- 
dy will open a fourth TRS-60 
plant in San Antonio, Texas, 
adding 400,000 square feet 
of manufacturing space. 
. . . Zenith reported that its 
Heath division had sales of 
$104 million last year. 
Zenith's total sales were 
$1,186 billion, with color 
television sales of $774 
million leading the way. 
. . . Integrated-circuit makers 
are sharply reducing prices 
on EEPROMs (electrically 
erasable, programmable 
read-only memories). Prices 
currently average $115 for 
1 K by 8-bit devices and $67 
for the 512 by 8-bit variety, 
in 100-unit lots. The parts 
boast a 500 ns access time 
and 10-year data retention. 
. . . Intel's profits for the first 
quarter of 1981 were down 
91.3%. The decline is at- 
tributed to the falling price 
of memory devices. As a 
result, Intel plans to cut 
capital spending by $30 mil- 
lion. . . . Pick & Associates, 
developer of the Microdata 
Disk Operating System, is 
working with Intel on the 
disk operating system for the 
32-bit iAPX-432 microproces- 
sor. It's currently running on 
Hewlett-Packard, ADDS, 
Honeywell, ECSC, and 
Microdata minicomputer 
systems. Pick is also working 
on a Motorola 68000 imple- 
mentation. . . . Intel has 
reduced the price of the 
8085 microprocessor to $4 in 
large quantities and to under 
$5 in 100-unit lots. Intel 
wants to compete with other 



suppliers of the same part 
(NEC, Toshiba, Mitsubishi, 
and Siemens') and outrun 
competition from Zilog's 
Z80 microprocessor. 



R 



andom Rumors: IBM 

is rumored readying two un- 
der-$1000 personal-com- 
puter systems at its Raleigh, 
North Carolina, facility. One 
system attaches to the tele- 
phone line and serves as a 
home-information system 
(bank-at-home, teleshop- 
ping, etc). The other is a 
very-small-business system 
aimed at the professional 
market (lawyers, doctors, 
etc). Neither system will be 
as versatile as a stand-alone 
product because IBM does 
not want to hurt its regular 
systems sales. Also, IBM is 
said to be developing an un- 
der-$5000 small-business sys- 
tem aimed at competing 
with the Apple II, TRS-80, 
and PET. . . . DEC reportedly 
has working prototypes of its 
Tiny-11, which blends into 
one integrated circuit the 
current four-device set of 
the LSI-11/2. Industry pun- 
dits say it works with stan- 
dard memory and I/O (input/ 
output) devices. . . . Zilog is 
rumored developing a 32-bit 
microprocessor for introduc- 
tion by mid or late 1982. 
. . . Later this year, you can 
expect a removable 1 -mega- 
byte bubble-memory cas- 
sette from Intel. Fujitsu in- 
troduced 8 K- and 
32 K-byte bubble cassettes 
last year. Plan on National 
Semiconductor to introduce 
an 8 K-byte bubble cassette 
and cassette unit with con- 
troller in the $2000 to $3000 
range. . . . Rumors from all 
over: Expect an under-$2000 
small-business computer 
from Sony to include a Z80, 
64 K bytes of program- 
mable memory, video dis- 
play, 1.2 megabytes of flop- 
py-disk storage, and a printer 
port. . . . Vector Graphic, 



226 August 1981 © BYTE Publications Inc 



R&D COMPUTER SYSTEMS 

Data Acquisition & Control Systems I 

1 6 to 256 ch.; Programmable gain; Voltage or current output; J 
1 2, 1 4, or 1 6 bit; 30 to 1 25 KHz; Stepping motor control m 

8086 16 Bit Micro Systems 

31 MByte Winchester Drives 
256 KByte Memory Boards 

8086 Software 4 

Real Time Video Digitization Systems 




S-100 Boards 




1 6 Kilobyte Static RAM 

8 and 16 bit transfer 




Real Time Video Digitizer and Display 




Analog to Digital Converter 

16 channels - 12 bit accuracy 
30 KHz Conversion rate 




8086 CPU with Vectored Interrupts 




PROM and I/O 

2 RS 232 - PI0 
CP/M-86 ROM Boot 




Expansion Multiplexer 





Analog to Digital Converter 
and Timer/Counter 

16 channels expandable to 256 
12, 14, or 16 bit accuracy 
30,40,100,or 125 KHz 
Programmable Gain 




Digital to Analog Converter 

4 channels - 12 bit accuracy 
3 microsecond conversion rate 




' *tf 



t 



Digital to Analog Companion 

4-20 mA output - Filters 



Apple Boards 



IHIIIIIIIIIIIMIIIlllill 





Digital to Analog Companion 

4-20 mA output - Filters 




Analog to Digital Converter 

16 channels 

12, 14, or 16 bit accuracy 

30,40, 100, or 125 KHz 



Pi *«■ ^ I 




nimnnnmfm 
Digital to Analog Converter 

2 channels - 12 bit accuracy 

3 microsecond conversion rate 
1 parallel output port 



TECMAR, INC. 

23600 Mercantile Rd. • Cleveland, OH 44122 (216)464-7410 



Circle 379 on inquiry card. 



BYTE August 1981 227 



BYTELINES ___ 

boasting sales in the $30 mil- 
lion range, will go public 
with a stock offering this 
summer. It is also devel- 
oping a Z8000-based system. 
. . . Cromemco is working on 
an IBM-compatible tape- 
drive unit to serve as a back- 
up for hard disks. It's also 
working on a 68000-based 
S-100 microprocessor card. 
. . . Codbout Electronics, 
which recently introduced a 
128 K-byte S-100 program- 
mable memory card, is now 
ready to unveil a 256 K-byte 
version, . . . Sperry Univac 
may be the first customer for 
Intel's new 32-bit micropro- 
cessor. . . . 



^^Ipology: I must apolo- 
gize to MicroDaSys, Los 
Angeles, California. In the 
March 1981 "BYTELINES" 
(see page 242), I gave credit 
to another company for 
having the first 16-bit system 
using the new Motorola 



68000 microprocessor. 
MicroDaSys was actually 
first, advertising its 68000 
system in the September 
1980 BYTE. 

The MicroDaSys "68 K 
MiniFrame" contains a 
68000, 6809 memory man- 
ager (for true virtual-mem- 
ory operation), 512 K bytes 
or 2 megabytes of program- 
mable memory, disk con- 
troller, memory parity, and 
ten I/O ports. The system 
operates at 8 MHz and, the 
company claims, is faster 
than the DEC PDP-11/45. 



I ersonal Computer 
With 768 K Bytes Of 
Memory: Southwest Tech- 
nical Products (SwTPC) will 
release a new 6809-based 
personal computer that can 
address up to 768 K bytes of 
memory. Also slated to be 
introduced are hard-disk 
systems of 32 and 300 mega- 
bytes that are chainable — 



the maximum number has 
not been determined. Lastly, 
SwTPC will market a 32-ter- 
minal I/O (input/output) 
board for the system. The 
system will run the TSC 
(Technical Systems Con- 
sultants) Uniflex operating 
system supporting 32 users. 
SwTPC has come a long 
way from its first personal 
computer, which had 4 K 
bytes of memory, audio- 
cassette storage, and a 
2 K-byte BASIC interpreter. 



I 



ntel Seeks Injunction: 

Intel is seeking an injunction 
against Seeq Inc, Milipitas, 
California. The suit seeks to 
temporarily bar Seeq from 
making devices similar to In- 
tel's 2864, a 64 K-bit 
EEPROM (electrically 
erasable, programmable 
read-only memory) that may 
be marketed later this year. 
Seeq was started by four 
former Intel staffers who 



had worked in Intel's 
special-products division 
while the 2864 was being 
developed. Seeq intends to 
develop nonvolatile mem- 
ory devices. 



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

Sol Llbes 
POB 1192 
Mountainside NJ 07081 



SAVE $$ 




fgcippkz comiputer 

16K APPLE II 1089.00 

32KAPPLEII 1134.00 

48K APPLE II 1179.00 

DISKW/CONTROLLER 535.00 

DISK ONLY 455.00 

APPLESOFT CARD 159.00 

INTEGER CARD 159.00 

PASCAL SYSTEM 425.00 

SILENTYPE PRINTER 525.00 

HAYES MICROMODEM 295.00 

Z-80 SOFTCARD 295.00 

VIDEX 80 COL. BRD. 295.00 

16K RAM BOARD 169.00 

RAM MEMORY 

FORTRS-80, APPLE II 
16KSET4116'S(200NS) 34.95 



DISCOUNT PRICES 




ATARP 



400 16K 349.00 

800 16K 759.00 

410 Recorder 64.00 

815 Disk 1199.00 

810 Disk 489.00 

822 Printer 359.00 

825 Printer 779.00 

830 Modem 159.00 
850 Interface Module 179.00 

CX853 RAM 85.00 

CX70 Light Pen 64.00 

CX30 Paddle 18.00 

CX40 Joystick 18.00 

VERBATIM DISKETTES 

Box of 10 5V 29.50 

Box of 10 8" 39.50 




North Star Computers 

HR2-2D-32K 2795.00 

HR2-20-48K 2956.00 

HR2-2D-64K 3145.00 

HR2-2Q-32K 2975.00 

HR2-2Q-48K 3165.00 

HR2-2Q-64K 3360.00 

HRAM32K 469.00 

HRAM48K 662.00 

HRAM64K 849.00 

HDS-18 HARD DISK 4025.00 

MDS-DRV-D 495.00 

MDS-DRV-Q 665.00 

ADC-1-D 740.00 

ADC-2-D 995.00 

ADC-1-Q 795.00 

ADC-2-Q 1285.00 



SAVE $$ 



PRINTERS 

EPSON MX-70 399.00 

EPSON MX-80 499.00 

EPSON MX-80 FT 599.00 

GRAFTRAX 90.00 

INTERFACE (APPLE) 75.00 

CABLE 22.50 

CENTRONICS 737-1 795.00 

CENTRONICS 737-3 855.00 

IDS445G 815.00 

IDS460G 1195.00 

IDS560G 1450.00 

N EC 551 W/TRACTORS 2650.00 

NEC 5520 KSR W/TRAC. 2995.00 



QUME 5/45 SPRINT 
FORMS TRACTOR 



2675.00 
195.00 



STARWRITER W/TRAC. 1695.00 
STARWRITER W/O 

TRACTOR 1500.00 

General Information: 

We carry a large selection of hard- 
ware and software by other com- 
panies. Send for our catalog. 
We are an authorized repair center for 
APPLE, ATARI, NORTH STAR, AND 
EPSON. 



PRICES SUBJECT TO CHANGE WITHOUT NOTICE. MARYLAND RESIDENTS ADD 5% SALES TAX 



FREDERICK 5726 industry lane 

COMPUTER FREDERICK, MD. 21701 

PRODUCTS, INC. TO ORDER CALL: (301) 694-8884 



Store Hours: 

MON. THRU THURS. 9:30 AM-9:00 PM 
FRI. AND SAT. 9:30 AM — 5:00 PM 



228 August 1981 © BYTE Publications Inc 



Circle 141 on inquiry card. 



Teach your little 
Apple big-time 
electronic mail. 



Newark 



Los Angeles 



"^'itsttsmpu 




Mui] LMlfWai! tea* 

■ ^S .'- MMtt&PMtVt 

/ Mwtd m* fchstli « 

: .:/ frinuc ' 



For the first time, you can 
move just about anything in 
your Apple II™ computer to 
any other Apple™ anywhere 
in the world. Micro-Courier™ 
allows you to electronically 
mail charts, graphs, corre- 
spondence, VisiCalc® reports 
and entire programs. You 




spend far less time on the phone. And, in a matter of moments, you transmit material 
the Post Office takes days to deliver. 

Unlike traditional electronic mail, Micro-Courier doesn't require expensive central 
computers or special phone lines. Using standard lines, you benefit in two important 
ways. First, you communicate outside your company, not just within it. And second, you 
realize tremendous savings on late-night rates. Micro-Courier takes advantage of them 
automatically, without anyone in attendance. 

What's more, Micro-Courier will ex- 
change data with time-sharing systems and 
larger computers. Even if you don't own an 
Apple, Micro-Courier is the best reason in 
years to go out and get one. Call our toll-free 
number today. And make your little Apple 
heard 'round the world. 



MICROCDM 

We make little computers talk big. 

Call 800-547-5995, ext. 188, toll-free, 
for the Micro-Courier- Apple dealer 
nearest you. 



L — — — — — — J 



Microcom, Inc., 89 State Street, Boston, MA 02109. (617) 367-6362 



Apple and Apple II are trademarks of Apple Computer, Inc. VisiCalc is a trademark afPersonal Software, Inc. 



Circle 224 on inquiry card. 



BYTE August 1981 229 



Building Data Structures 
in the Smalltalk-80 System 



James C Althoff Jr 

Learning Research Group 

Xerox Palo Alto Research Center 

3333 Coyote Hill Rd 

Palo Alto CA 94304 



Most programmers are exposed to 
the concept of data structures very 
early in their programming exper- 
ience. A course in data structures is 
an integral part of most computer 
science curricula, and there are many 
excellent and widely used texts on the 
subject (see references 1, 2, and 4). 
The data structures covered in these 
texts generally include the linear list, 
stack, queue, tree, and graph. 

In this article, we will define and 
implement some of the simplest struc- 
tures, including the linear list, stack, 
and queue. Our approach will be to 
describe each data structure infor- 
mally, and then to show a 
Smalltalk-80 class definition that 
closely matches this informal descrip- 
tion. We will see that it is possible, 
using the class construct, to create 
programming structures that clearly 
mirror the entities being im- 
plemented. However, in order to 
demonstrate how to build these data 
structures from scratch, we will not 
make use of any of the advanced data 
structure classes that already exist in 
the Smalltalk-80 system. 

We will make extensive use of the 
Smalltalk-80 subclass mechanism in 
the class definitions we introduce. We 
will use subclassing to facilitate the 
construction of different implementa- 
tions of the same entity. In addition, 
we will see how the subclass 
mechanism enables us to define two 
or more related classes in such a way 



that the common parts of their defini- 
tion can be shared. 

Notation 

In order to understand the program 
examples presented in this article, the 
reader should have some familiarity 
with the Smalltalk-80 programming 
language. For an introduction to the 
language and a fuller discussion of 
subclasses, see "The Smalltalk-80 
System," on page 36. In addition, a 
text box on page 240 of this article 
contains a brief description of some 
of the messages that we will use in the 
examples. 

The advantage of the 

sequential list is that it 

is easy to access and 

replace an arbitrary 

item In the list. 

For each data structure that we 
describe, we will give a correspond- 
ing Smalltalk-80 class definition. 
Each class definition will be presented 
in the form of a template that shows 
the instance variables, messages, and 
other information associated with the 
class. (A complete description of the 
template can be found in the article 
mentioned above.) 

The messages defined in the 
template are partitioned into two 
main groups. The first comprises the 



class messages. These are messages 
that are sent to the class itself (which 
is, in actuality, an object). For our 
purposes, these will be a set of crea- 
tion messages that can be sent to the 
class in order to create a new, init- 
ialized instance of the class. The sec- 
ond group consists of a set of 
messages that can be sent to instances 
of the class. These will be divided into 
two more groups. The first is a collec- 
tion of external messages that repre- 
sent the interface between an instance 
of the class and clients (ie: other 
objects in the system) of that in- 
stance. The second is a set of internal 
messages used in methods that are 
defined in the class or a subclass but 
are not intended for wider use. Note 
that the distinction between internal 
and external messages is made for 
conceptual clarity. The Smalltalk-80 
programming language does not have 
a mechanism for controlling message 
usage. 

An example of a class definition is 
given in table 1. This template defines 
a class whose name is Card. An 
instance of class Card can be used to 
represent a card in a game program. 
Class Card has instance variables 
named suit, rank, and faceUp. A new 
instance is created by sending class 
Card the creation message suit.rank:. 
For example: 

|aCard| 

aCard — Card suit: 'heart' rank: 7. 



230 August 1981 © BYTE Publications Inc 



Color computer owners. 




Yes, that's right - for as little as 
$298.00 you can add 32K of dynamic 
RAM, and a disk interface, to your 
TRS-80 Color Computer! If you just 
want the extra memory it's only 
$199.00, and you can add the disk 
interface later for $99.00. 

Just plug the Color Computer In- 
terface (CCI), from Exatron, into 
your expansion socket and "Hey 
Presto!" - an extra 32K of memory. No 
modifications are needed to your 
computer, so you don't void your Ra- 
dio Shack warranty, and Exatron give 
both a 30 day money-back guarantee 
and full 1 year repair warranty on 
their interface. 

The CCI also contains a 2K 
machine-language monitor, with 
which you can examine (and change) 
memory, set break-points, set memo- 
ry to a constant and block-move 
memory. 

So what about the CCI Disk Card? 
Well as we said it's only an extra 
$99.00, but you'll probably want 
Exatron's CCDOS which is only 
$29.95 - unless you want to write your 
own operating system. The CCI Disk 



Card uses normal TRS-80 Model I 
type disk drives, and CCDOS will 
even load Model I TRSDOS disks into 
your color computer - so you can 
adapt existing TRS-80 BASIC pro- 
grams. 

As a further plus, with the optional 
ROM Backup adaptor, you can dump 
game cartridges to cassette or disk. 
Once the ROM cartridge is on cas- 
sette, or disk, you can reload, examine 
and modify the software. The ROM 
Backup adaptor is only $19.95. 

For more information, or to place an 
order, phone Exatron on their Hot 
Line 800-538 8559 (inside California 
408-737 7111), or clip the coupon. 




excellence in electronics 

exatron 




DEALER ENQUIRIES INVITED 



Exatron, 

181 Commercial Street, 

Sunnyvale, CA 94086 



□ Please send a 32K Color Computer 
Interface for $199.00 

□ Please send a CCI Disk Card for $99.00 

□ Please include CCDOS and manual 
for $29.95 

□ Also include a ROM Backup adaptor 
for $19.95 

Please add $5.00 for shipping to all orders, 
and 6 percent sales tax in California. 

Name 

Address 

City 

State Zip 

Charge my: 

□ MasterCard Interhank Code 

D Visa Expiration Date 

Card 

□ Check enclosed for 

D Ship COD ($2.00 extra) 



Signature 



•:I2K HAM plus Disk [nlcrfac 



TRS-Kfl is a trademark of Tandy 



Circle 136 on inquiry card. 



BYTE August 1981 231 



SOFTWARE— ^ 

FREE OFFER 

WITH PURCHASE OF ANY 3 PROGRAMS, YOU 

WILL RECEIVE FREE THE ORIGINAL ADVENTURE 

GAME, CONVERTED TO LOAD ENTIRELY INTO 48K 

RAM ON APPLE. NOTHING LEFT OUT. AMAZING! 

APPLE SOFTWARE 
DISCOUNTS FROM 10% TO 30% 

n MAGIC WINDOW $99.95 SALE $89.50 

nSUPERTEXTH $150.00 SALE $135.50 

□ APPLEPIE(400R80COL)...$129.95 SALE $119.50 

□ SUPERSCRIBE $99.95 SALE $84.50 

□ EASY WRITER 80 COL $250.00 SALE $225.50 

GDBMASTER (STONEWARE). $229.00 SALE $199.00 
I"! PAYROLL (BRODERBUND).... $395.00 SALE $359.50 

PI MODIFIABLE DATABASE $79.50 SALE $69.50 

H MAILING LIST DATABASE $50.00 SALE $34.50 

□GEN. LEDGER (CONT.) $175.00 SALE $140.50 

□ ACCTRCVBLE(CONT.) $175.00 SALE $140.50 

DACCT PAY ABL (CONT.) $175.00 SALE $140.50 

nPPTYMANGMT(CONT.) $175.00 SALE $140.50 

DVISICALC 3.3 (PERSONAL) ...$199.95 SALE $169.50 

D HOME MONEY MINDER 534.95 SALE $29.50 

DWIN AT RACES (HANDICAP) ...$39.95 SALE $33.50 

GL A LAND MONOPOLY $29.95 SALE $25.50 

OWARP FACTOR $39.95 SALE $35.50 

DZORK $39.95 SALE $35.50 

□ MISSION ASTEROID $19.95 SALE $17.50 

DPRO FOOTBALL POINT PRED.S26.95 SALE $22.50 

DODYSSEY ADVENTURE 530.00 SALE $26.50 

nC0MPU-MATHARITHMETIC...S49.95 SALE $39.50 
DCOMPU-MATH FRACTIONS ....$39.95 SALE $35.50 
D COMPU-MATH DECIMALS $39.95 SALE $35.50 

□ COMPU-SPELL 

(REQ. DATA DISK) $29.95 SALE $25.50 

□ DATA DISK LEVEL 4 $19.95 SALE $16.50 

□ DATA DISK LEVEL 6 $19.95 SALE $16.50 

Q DATA DISK SECRETARIAL $19.95 SALE $16.50 

□ STATISTICS 3.0 $29.95 SALE $25.50 

□ PERCEPTION 3.0 $24.95 SALE $22.50 

D ALGEBRA 1 $39.95 SALE $33.50 

D SPACE EGGS $29.95 SALE $25.50 

CTALIEN RAIN (GALAXIAN) $24.95 SALE $22.50 

a ALIEN TYPHOON $24.95 SALE $22.50 

DSNOGGLE (NEW PUCKMAN) ..$24.95 SALE $22.50 

□ WIZARD AND THE PRINCESS.$32.95 SALE $29.50 

D MYSTERY HOUSE $24.95 SALE $22.50 

D PULSAR 11 $29.95 SALE $25.50 

□ ORBITRON $29.95 SALE $25.50 

!"". GAMMA GOBLINS $29.95 SALE $25.50 

D HI-RES SOCCER $29.95 SALE $25.50 

DSARG0N11 $34.95 SALE $29.50 

D ADAMS ADVENTURE #1,2,3 ..$39.95 SALE $34.50 

□ ADAMS ADVENTURE #4,5,6. .$39.95 SALE $34.50 
Q ADAMS ADVENTURE #7,8,9 ..$39.95 SALE $34.50 

□ ADVENTURE HINT BOOK $7.95 SALE $6.50 

I ITEMPLEOFAPSHI $29.95 SALE $24.50 

D HELLFIRE WARRIOR $29.95 SALE $24.50 

D FASTGAMMON $24.95 SALE $22.50 

D THREE MILE ISLAND $39.95 SALE $35.50 

D PHANTOMS FIVE $29.95 SALE $25.50 

□ E-Z DRAW 3.3 $49.95 SALE $39.50 

D THE PRISONER $29.95 SALE $25.50 

Q TERRORIST $29.95 SALE $25.50 

D SPACE $29.95 SALE $25.50 

D A.B.M $24.95 SALE $22.50 

D CYBER STRIKE $39.95 SALE $34.50 

D FLIGHT SIMULATOR $35.50 SALE $31.50 

□ AUTOBAHN $29.95 SALE $25.50 

D GALACTIC TRADER $24.95 SALE $22.50 

DZ-80S0FTCARD $349.00 SALE $299.50 

D16KRAMCARD $195.00 SALE $175.50 

DM/RSUPERTERM80C0L....$375.00 SALE $325.50 

* SEND FOR FREE PRICE LIST & CATALOG * 



DEDUCT 3% IF PAYMENT ACCOMPANIES ORDER. WE 

PAY SHIPPING AND IF YOU PHONE YOUR ORDER WE WILL 
CREDIT S1.00 FOR CALL. CALIFORNIA RESIDENTS ADD 
6% SALES TAX. ALL ORDERS SHIPPED FROM STOCK 
WITHIN 48 HOURS WE ACCEPT MASTER CARD AND VISA 



NAME .... 
STREET . 



CITY STATE ZIP.. 

CARD # PHONE 



EXP. DATE SIGNATURE 

* P.O. BOX 796. OEPT. B-6, TWIN PEAKS, CA 92391 * 
PHONE ORDERS (714) 886-0761 

Circle 256 on inquiry card. 

232 August 1981 © BYTE Publications Inc 



creates a new instance of Card that 
represents the seven of hearts. In the 
method for suit:rank:, the message 
new creates an uninitialized instance. 
The internal message setSuit:setRank: 
sets the suit and rank fields and init- 
ializes the new instance to be "face 
down." Given an instance of class 
Card, we can determine its suit, rank, 
and orientation, and change the latter 
using the external messages specified 
in the class definition. Because we do 
not want to be able to change the suit 
and rank of an instance once it has 
been created, we do not include a 
message for doing this operation in 
the set of external messages. 

The methods shown here 
demonstrate a convention we will use 
in subsequent examples. All of the 
names that we use for parameters and 
local variables will be formed by tak- 
ing the name of a class and preceding 
it with an indefinite article. For exam- 
ple, the two parameters to the 
message setSuit:setRank: are named 
aString and anlnteger. Such a name 
indicates what kind of object is 
expected as the value of the 
parameter or local variable to which 
the name refers. Smalltalk-80 has no 



type-checking; this is only a conven- 
tion to help make the examples more 
understandable. 

We will now examine a number of 
elementary data structures and their 
implementation with Smalltalk-80 
classes. In the informal description of 
each data structure, we will include a 
list of operations that are meaningful 
for that structure. We will then show 
a corresponding class definition 
whose external messages match the 
listed operations. The details of the 
implementation of the data structure 
will be hidden in the class definition. 
We will see how this process enables 
us to define different classes that 
reflect different implementations of 
the same basic data structure. 

The Linear List 

The first data structure we will ex- 
amine is the linear list. A linear list is 
a sequence of data items that have, 
essentially, a one-dimensional rela- 
tionship to one another (see figure 1). 
That is to say, given an object in the 
sequence, we can find the object that 
precedes or follows it. For example, if 
we have a program that deals with a 
game of cards, we might represent 



class name 


Card 


superclass 


Object 


instance variable names 


suit rank faceUp 


class messages and methods 




suit: aString rank: anlnteger aCard 

aCard — self new. aCard setSuit: aString setRank: anlnteger. 
t aCard. 


instance messages and methods 




external 
suit | | t suit. 
rank | t rank. 
turnFaceUp | faceUp 
turnFaceDown | fact 
turnover | faceUp — 
IsFaceUp | | t faceUp. 
IsFaceDown | t faceL 

internal 

setSult: aString setRar 

suit — aString. rank — 

Table 1: 


«- true. 
?Up — false. 
faceUp not. 

Jp not. 

lk: anlnteger 

anlnteger. self turnFaceDown. 

Class template for class Card. 



SUPERBRAIN &COMPUSTAR 

USERS' GROUP 




JOIN SUPER* STAR INTERNATIONAL FOR THE REGULAR YEARLY MEMBERSHIP FEE AND RECEIVE A FREE DISKETTE WITH 
THE FOLLOWING PROGRAMS: 

• "RECOVER", it allows you to recover an erased program. * "RETURN", it gets you back into a crashed program 

• "AUTO LOAD", it enables you to load and run a program from CP/M'. 
automatically. * the game "OTHELLO". 

Since our first ad in March 1981, we have been contacted from as far away as South America, Europe, Australia, and Indonesia. 
Super* Star International is becoming a world-wide family whose members will enjoy the benefits of a wide range of hardware and 
software developments. 

Our full color, monthly magazine will print a free program in every issue— programs like an appointment calendar and personal 
finance record keeping. You'll also find technical information, tips for beginners, special business uses, equipment reviews, and 
the Infertec Story— the people, ideas, and machines behind your computer. 

WE GIVE YOU VALUE! Purchase just one commercial program and you will save more than the price of our membership fee. 
Rent a car or stay in a hotel offered in our discount program and save even more, not to mention insurance discounts, a market 
place for your personal software, and a shoulder to lean on if something isn't working quite right. 

Super* Star International— with savings, service, and efficiency— we're here to win your heart. 

WE NOW OFFER A WIDE RANGE OF PRODUCTS 

A few may still be under development at the date of this issue. 

SOFTWARE 

* DIAGNOSTICS— for the CPU, Memory, Disk Drives and more * BUSINESS— Real Estate Acquisition Package; Systems Plus', Peachtree', 

* WORD PROCESSING— WordStar", MaiiMerge', WordMaster 1 , Magic Wand' and other Accounting Packages; Plus the most powerful, easy to use 

* LANGUAGES— COBOL, FORTRAN, Pascal, FORTH, BASCOM Compiler' business package, which automatically updates all information 

* UTILITIES— Assemblers, Disassemblers, Monitor at the point of entry; SuperSort', DataStar 1 , dBASE II', 

* GAMES— Chess, Adventure, Star Trek, Analiza', and more FMS-80' 



HARDWARE 

* S 100 Adaptor 

* External Controls 

* Addon Disk Storage 



ENHANCEMENTS 

* Upgrades for ALL SuperBrains 

* SuperDOS (Fantastic!) 

* Add-on character sets-Including graphics 

* MTT Upgrade for the Intertube 



VISA 




4 


^^^ 


U 


mtg, 


I I 



sypi!*§m§L 

INTERNATIONAL CORPORATION 
R O. Box 33675, Northglenn, CO 80233 • (303) 526-1050 

Dealers are invited to contact us concerning a special dealer program. 



Charge membership by phone 



Yearly membership fee is $50.00 U.S., $58 
Canada, $74 Europe & So. America, $81 
Australia, Mid East & Asia. 
Your (ee may be tax deductible. 
Send checks with your name and 
address, made out to: Super* Star 
International. (U.S. Currency) 



I would like to join Super* Star International. Enclosed in my check for $_ 

Name Company _ 

Address Phone _ 

City/State/Zip 

Computer Model Vers 



Circle 365 on inquiry card. 



n data items 



Figure 1: A linear list (la) is a collection 
of objects arranged in linear sequence. 
Permissible operations include accessing 
(lb), appending (lc), inserting (Id), and 
removing an item (le). 



access an item 



append an item 




insert an item 



remove an item 




cm 



S/PLUS 



T.M. 



Indexes and Sorts WordStar 



DocuMate/Plus™ Features . . . 

• 8-Level Indexing 

• Table of Contents Generation 

• New Self-Contained Sort Feature 

• "See" and "See Also" References 

• New Output Format Control 

• New Cross-Document Index 
Generation 

DocuMate/Plus generates completely col- 
lated tables of contents and alphabetical 
multi-level indexes from WordStar™ text 
files of any length ... as detailed as you 
desire. 



DocuMate/Plus is refreshingly easy to use, 
and its internal sort feature can save you 
the cost of an expensive stand-alone sort 
program. Just type simple DocuMate com- 
mands right into your text file. DocuMate/ 
Plus's "Extract" feature automatically 
finds and places all index references in a 
separate work file for sorting and collating. 

DocuMate/Plus builds master indexes for 
many documents, such as research notes, 
books and articles, speeches, hardware 
and software documentation, and busi- 
ness correspondence 



DocuMate/Plus is today's most flexible indexing program 
available for professional word processing. 

DocuMate/Plus is available on standard 8" CP/M and 5Va" Northstar diskettes. 

• DocuMate/Plus Program with Manual $125.00 

• Manual Only $ 10.00 

• Special Pricing to update existing DocuMate users. 



fflMKD 



THE ORTHOCODE CORPORATION 
P.O. Box 6191 • Albany, CA 94706 
(415) 832-8175 



The Text ware Company 



• WordStar is a trademark of MicroPro International • CP/M is a trademark of Digital Research 



each card hand as a linear list of 
cards. 

The operations that we might want 
to perform on a linear list include: 

• determine how many items are in 
the list 

• determine whether or not the list is 
empty 

• access the ith item in the list 

• append an item to the end of the list 

• insert an item at some position in 
the list 

• replace an item at some position in 
the list with some other item 

• remove an item from the list 

In order to implement a linear list of 
data items, we need to implement 
both the data items and the linear list. 
In all of our subsequent examples, we 
will assume that we have imple- 
mented the data items with one or 
more class definitions (eg: class 
Card). When we are describing things 
in general, we will use such terms as 
"data item" and "linear list." When 
we are describing a specific imple- 
mentation, we will refer instead to the 
"object" (or "instance of a class") that 
represents the entity under considera- 
tion. 

Linear lists are partly defined in the 
template given in table 2. Class 
LinearList, as defined in table 2, is 
incomplete since there is no 
mechanism for actually storing ob- 
jects that represent data items. This is 
because there are several different 
strategies for storing these objects in a 
linear list. For each strategy, we will 
define a different class, each of which 
is a subclass of LinearList. All of these 
classes have some characteristics in 
common; these are captured in the 
superclass LinearList. For example, 
because all of the subclasses that we 



234 August 1981 © BYTE Publications Inc 



Circle 286 on inquiry card. 



Circle 63 on inquiry card. 



CompuServe is 
a lot more than 
fun and games 
and news. 



Although we're probably best 
known for our consumer-oriented 
services, CompuServe maintains 
powerful services for the serious 
computer user. CompuServe has 
helped some of the nation's largest 
companies and financial institu- 
tions through a wide range of 
business and scientific-oriented 
computer programs. With our 
Information Service, we can extend 
this expertise to you. Here are 
some of the programs available 
to the personal computer user 
through the CompuServe 
Information Service: 

PASCAL: DEC User Group 

version of this famous language. 

XF4: Extended CompuServe 

Fortran compiler. 

MACRO: Advanced Macro 

Assembly language for PDP-10. 

Talk about fast. 

FILGE: Fast, easy file generator 

and editor. Line oriented, no line 

numbers required! 

XBASIC: CompuServe extended 

BASIC. 

JUMBLE: File encryption program. 

TECO: High level text editor. 

LINK: Linking loader program. 

DDT: Dynamic debugging tool. 



CREF: Symbolic cross-reference 
generator used with language 
compilers. 

FILCOM: File comparison 
program. 

SALARY: Calculates salary and 
increases in various time frames 
including per year, month, period 
and hour. This program is intended 
primarily for managers doing 
reviews. 

SNOBOL: String manipulation 
language. 

RUNFLO: Text formatting 
program (write resumes etc.). 
RUNF10: Word processing and 
text formatting program (write 
resumes etc.). 
CONCOR: Concordance 
generator. This program is very 
useful for documentation purposes. 
CONCOR reads an ASCII file and 
creates an output file which con- 
tains a line numbered listing of 
the original file, and a list of all the 
words contained in the file along 
with the numbers of the lines on 
which each word occurs (similar 
to an index). 

BUSK): High level implemen- 
tation language for DEC PDP-10. 
BINED: Binary file editor. 
APL: A Programming Language. 



FINTOL: Financial analysis tool. 
Contains several program modules 
which can perform financial analy- 
sis for business or personal needs. 
— Loan Payment and Amortization 
— Compound Interest Calculations 
—Sum from a Periodic Investment 
— Sinking Fund Deposit 

— Present Value of Cash Flows 

— Present Value and Internal Rate 
of Return (Capital Projects) 

— Depreciation Analysis 

— Compound Growth Rates 

RANNO: Random number 

generator. 

XEDIT: XF4 binary file editor. 

We also offer high speed 
professional line printer service, 
error-free file transfer, 
CompuServe's Software 
Exchange, and computer 
manufacturers' newsletters. 
Computer Users Groups can 
exchange information and 
up-to-the-minute gossip in the 
computer world. 

And ... if Aunt Matilda comes 
over, you can still let her play 
Adventure. Demonstrations and 
software at all Radio Shack® 
Computer Centers and many 
Radio Shack® outlets. 




CompuServe 



Information Service Division 
5000 Arlington Centre Boulevard 
Columbus, Ohio 43220 
(614)457-8600 



Radio Shack is a trademark of Tandy Corporation. 



class name 



superclass 



instance variable names 



class messages and methods 



LinearList 



Object 



count 



"none defined here" 



instance messages and methods 



external 

count | | t count. 

empty | | I count = 0. 

"at: anlnteger | | ... to be defined in subclasses" 

"append: anObject | | ... to be defined in subclasses" 

"insert: anObject at: anlnteger | | ... to be defined in subclasses" 

"replace: anObject at: anlnteger | | ... to be defined in subclasses" 

"removeAt: anlnteger | | ... to be defined in subclasses" 

internal 

initialize | | count — 0. 

checklndex: anlnteger | | 

(anlnteger < 1 ) f (anlnteger > count) 
ifTrue: [ t self error: 'index out of range' ]. 



Table 2: Class template for class LinearList. 




These exciting new 

additions to our line will 

meet the demand for low cost 

alternatives to the higher priced 

language and ram cards. The ConComp 

Apple II 16K Ram Card will work with all existing 

software compatible with the Apple Language Card 1 

and the Microsoft Z-80 Softcard 5 . Allowing up to 64K of 

user memory, the Ram Card helps make complete use of Pascal. 

CP/M 4 , and larger programs like Visicalc 3 The Atari 800 2 version is 

also compatible with all Atari software that is operational with Atari 

and other ram cards. 

Both cards are constructed using high-speed high-quality dynamic RAM. 

For more information please contact your local dealer or call us! 

'Trademark of Apple Computer Inc 

'Trademark ol Atari Inc 

■■Trademark ol Personal Software 

'Trademark ol Digital Research 

'•Trademark ol Microsoft Consumer Products. Inc 



APPLE II 
$130 

ATARI 800 



Dealer Inquires Invited 



Available from: 

ConComp Industries 
8338 Center Dr. 
La Mesa, CA 92041 
(714)464-8338 



will define keep count of the number 
of objects (representing data items) in 
the list, a corresponding instance 
variable, count, is defined in the 
superclass LinearList. Similarly, all 
subclasses can make use of an internal 
message, initialize, that initializes 
count to zero, and another message, 
checklndex:, that insures that any in- 
dex specified as a parameter to one of 
the access messages (at:, insertat:, 
and so on) is within range. Since we 
start the numbering of items in a 
linear list at 1, the range will always 
be between 1 and count (the number 
of items in the list). Also, the message 
empty is implemented in the 
superclass since the answer to 
whether or not the list is empty can be 
determined from the value of count. 

The Indexed Table 

The first strategy we will explore 
for actually storing data items in a 
linear list involves the sequential 
allocation of storage. In order to see 
how this works, we will interrupt our 
discussion of the linear list and intro- 
duce a very basic data structure that 
we will call an indexed table (see 
figure 2). An indexed table, which 
corresponds to what is called a one- 
dimensional array in many program- 
ming languages, is a relatively simple 
structure that closely matches the 
physical memory of most computers. 
As we will see, many useful data 
structures, including the linear list, 
can be implemented with an indexed 
table. 

An indexed table comprises a 
sequence of variables into which we 
can store and from which we can 
retrieve data items. Each variable is 
designated by an integer. The 
smallest integer used to designate a 
variable in an indexed table is called 
the lower bound of the table. The 
largest integer is called the upper 
bound. The operations that we wish 
to perform on an indexed table are: 

• specify the lower and upper bounds 
of the table (when it is created) 

• determine the lower and upper 
bounds of the table 

• determine the number of variables 
allocated to the table 



236 August 1981 © BYTE Publications Inc 



Circle 87 on inquiry card. 



MEMOREX 



SUPERB QUALITY AT 
UNBEATABLE PRICES. 

THAT'S MEMOREX 

DISCS FROM PACIFIC 

EXCHANGES 




For Data Reliability- 

Memorex 

Flexible 

Discs 



CALL FREE FOR PRICES & INFORMATION 

(800)235-4137 

In California, (800)592-5935 or (805)543-1037 



VISA' 



DEALER INQUIRIES INVITED 



C.O.D.'s ACCEPTED 




Circle 292 on inquiry card. 



BYTE August 1981 237 



upperBound 









anObject 










nil 




onObject 






" 




' 




anObject 










nil 





Figure 2: An indexed table. 



• access an item at a particular posi- 
tion in the table 

• put an item at a particular position 
in the table 

In order to store into an indexed 
table, we specify an item to be stored 
and an integer that indicates the par- 
ticular variable that will contain the 
item. In order to retrieve from an in- 
dexed table, we need only specify 
which variable of the table has the 



data item of interest. 

The class definition in table 3 
shows how to implement an indexed 
table. We have seen in the definition 
of classes Card and LinearList how to 
specify a fixed number of named in- 
stance variables in a class definition. 
What we need in order to implement 
an indexed table, however, is a 
sequence of unnamed variables that 
are designated by an integer index. 
How can we define such a sequence of 



variables? We do this by specifying 
the number of indexed variables 
needed for an instance at the time that 
an instance of a class is created. The 
creation message from:to: in class 
IndexedTable sends the message 
new:, whose parameter is the number 
of indexed variables required for the 
instance being created. In order to 
access these variables, we send low- 
level (ie: primitive) access messages 
with a parameter that specifies an 
appropriate index (starting at 1). The 
access message basicAt: i retrieves the 
object stored in the ith indexed 
instance variable. The access message 
basicAt: i put: anObject stores a 
pointer to anObject in the ;th indexed 
instance variable. 

In addition to indexed instance var- 
iables, class IndexedTable has two 
named instance variables: lower- 
Bound and upperBound. lowerBound 
is an integer that indicates the small- 
est allowable index for a particular 
instance of IndexedTable; upper- 
Bound indicates the largest allowable 
index. In order to create a new in- 
dexed table, we send the message 




Computers Are For Everybody! 



How to Get Started 
with CP/M 

Carl Townsend 

One nl the worlds most popular operat 
ing systems is explained in simple 
terms. Includes a handy guide on shop 
ping for an operating system, a glossary 
a list ol hardware manufacturers sup 
porting CP/M and a list of major CP/M 
software. 
ISBN 0-9 18398-32-0 $9.95 



Microsoft Fortran 

Paul M. Chirlian 

Here is the book for microcomputer 
users who want to implement FOR- 
TRAN on their machines. Even it 
readers have never used FORTRAN be- 
fore, they will be writing and running 
FORTRAN programs almost at once. 
ISBN 0-918398-46-0 $14.95 




Write or call for free catalog! 1-800-547-1842 



Most bookstores and computer stores tarry our books. Call us on 
our toll free number and we'll tell you the one nearest you. 



Computers for 
Everybody 

jerry Willis and Merl Miller 

This fun-to-read book covers all the 

things a beginner should know about 

computers. It explains how to use a 

computer, how to buy and who to buy 

from, and which are good and which are 

lad. 

ISBN 0-918398-49-5 $4.95 



32 BASIC Programs for 
the Apple Computer 

Tom Rugg and Phil Feldman 

Chock full of programs with practical 
applications, educational uses, games 
and graphics, each of the 32 chapters 
fully documents a different program. 
ISBN 0-918398-34-7 $17.95 

dilithium Press Trip 
P.O. Box 606 l 

Beaverton, OR 97075 



238 August 1981 © BYTE Publications Inc 



Circle 118 on inquiry card. 



High resolution, dot 
addressable graphics with 
vertical resolution of 72 dots 
per inch and up to 82 dots 
per inch horizontal 
resolution. 






"Q.T." cover reduces noise 
to an office comfort level. 
This is an optional feature 
to our standard sound dead- 
ening case. 



Single sheet feeder is very 
simple to use. The only 
front load feeder available 
on the market today.' 



1K standard buffer permits 
the 88G to print while 
receiving data. The optional 
2K buffer allows a 1920 
character dump to the 
printer freeing the CRT. 




The Features Leader 



Integrated Paper Handling System 

Dual tractor/friction feed allows use of pin feed, 
roll or single sheet paper. 

Versatile Interface 

Data input from most computers can Pe sup- 
ported Py the 88C. RS232C serial and Cen- 
tronics* type parallel is standard. Options can 
Pe added for current loop, IEEE 488 and high 
speed serial inputs. 



Avnpi 



Letter Quality Capability 

The 88C provides a selectaPle 11x7 serif style 
dot matrix for correspondence printing. 

Cost Effective 

The 88C has more features than any other 
impact printer in its price class. First compare 
the duality of the 88C, then compare the price 
-the 88C wins! Single unit price is less than 
$800. 

'Optional 



licro Peripherals, Inc. 4426 South Century Drive Salt Lake City, Utah 84107 (801) 263-3081 

The Printer People 



California VITEK 1714) 744-8305 Colorado PLS Associates (303) 773-1218 Minnesota Bohlig & Associates (612) 922-7011 New Jersey Hansen & 
Hughes (201) 652-7055 Up-state New Jersey OED Electronics (215) 674-9600 Oregon Microware (503) 620-8150 Washington Microware (206I 
451 3586 Utah PLS Associates (801) 466-8729 Tvpe-A-Line (801) 521-5310 District of Columbia Wright Marketing (3011 840-1928 International- 
England Russet Instruments, Ltd. (0734) 868147 Telex: 849721 Phoenix Sigma International (602) 994-3435 Telex: 165-745 Sigma France IER 
Tel. 333.67.81 Telex: 620-289 Canada Spectra Electronics (403) 264-7270. 



Circle 258 on inquiry card. 



BYTE August 1981 239 



class name 



superclass 



instance variable names 



class messages and methods 



IndexedTable 



Object 



lowerBound upperBound 



from: anlntegerl to: anlnteger2 | 

(anlntegerl > anlnteger2) ifTrue: [ t self error: 'invalid bounds' 
t (self new: anlnteger2 - anlntegerl + 1) 
lowerBound: anlntegerl upperBound: anlnteger 2. 



instance messages and methods 



t lowerBound. 
t upperBound. 

lowerBound 



I). 



external 

lowerBound 

upperBound 

size | | t upperBound 

at: anlnteger | | 

self checklndex: anlnteger. 

t self basicAt: (anlnteger - lowerBound + 
put: anObject at: anlnteger | | 

self checklndex: anlnteger. 

self basicAt: (anlnteger - lowerBound + 1) put: anObject. 

internal 

lowerBound: anlntegerl upperBound: anlnteger2 | 

lowerBound — anlntegerl. upperBound — anlnteger2. 
checklndex: anlnteger ] | 

(anlnteger < lowerBound) | (anlnteger > upperBound) 
ifTrue: [ t self error: 'index out of range' ]. 
"basicAt: i | | ... this is a primitive Smalltalk-80 message that accesses the ith indexed 

instance variable." 
"basicAt: i put: anObject | | ... this is a primitive Smalltalk-80 message that stores a pointer 
to anObject in the ith indexed instance variable." 



Table 3: Class template for class IndexedTable. 



from: to: to class IndexedTable. 
example: 



For 



Some Smalltalk Messages 

The following messages are used in this article without having been previously 
defined. Each is either provided by the Smalltalk-80 system, or easily implemented 
using other messages provided by the system. For each message, we provide a brief, 
informal description of its intended effect. 

new — Creates a new instance. 

new: i — Creates a new instance with i indexed instance variables. 
error: aString — Causes some appropriate action to occur, such as interrupting pro- 
gram execution and displaying aString. 
not — The "logical not" operation. 
| — The "logical or" operation. 
+ , —, *,/, =, <, >, <= — Arithmetic operations and relations. 

Flow of control is affected by sending messages that correspond to basic control 
structures. For example: 

3 ifTrue: [ b ] corresponds to: if a then b end 

a ifTrue: [ b ] ifFalse: [ c ] corresponds to: if a then b else c end 

x to: y do: [: i | a ] corresponds to: for i from x to y by 1 repeat a end 

x downTo: y do: [: i | a ] corresponds to: for i from x to y by —1 repeat a end 

x timesRepeat: [ a ] corresponds to: repeat x times a end 



| table | 

table — IndexedTable from: - 5 to: 
10. 

creates a new instance of Indexed- 
Table whose indices range from —5 
to 10. This message is implemented 
using an internal message, lower- 
Bound.upperBound:, that sets the 
instance variables of a newly created 
instance to their appropriate values. 

Once we have created an instance 
of IndexedTable, we can perform the 
operations specified in the above 
description of indexed tables by send- 
ing the messages lowerBound, upper- 
Bound, size, at:, and puv.at:. lower- 
Bound and upperBound return the 
corresponding values of the instance 
variables; size computes and returns 
the number of indexed instance vari- 
ables in the table, at: and put: at: both 
use an internal message, checklndex:, 
in order to make sure that their index 
parameter is within range of the 
lower and upper bounds of the table. 
at: returns the object stored in the in- 
dexed instance variable indicated by 
the integer parameter; put.at: stores 
the object, specified as the first 
parameter, in the indexed instance 
variable indicated by the second pa- 
rameter. Notice that both at: and 
put.at: use the value of lowerBound 
to map indices from the range of the 
table to the range of the indexed in- 
stance variables that are used to im- 
plement the table. 

As an example of how we might 
use class IndexedTable, consider the 
following sequence of messages: 

| table | 

table — IndexedTable from: 1 to: 

13. 
1 to: 13 do: [: i | table put: (Card 

suit: 'heart' rank: i) at: i. ]. 

This creates a new instance of class 
IndexedTable with indices that range 
from 1 to 13 and fills it with instances 
of class Card whose ranks match the 
indices. 

The Sequential List 

Now that we have an implementa- 



240 August 1981 © BYTE Publications Inc 



When you can't afford to buy wrong . . . 




"Sorry, Hawkins, we simply can't keep you and replace that non-expandable computer you bought. 

. . . you need Novell's NEXUS 7 ; 
the starter-priced computer system 
designed to grow with you. 



BUYING A COMPUTER is a big 
decision. How much can you 
afford to spend? Will the system 
you're considering do the job? And 
what happens when your needs 
outgrow that first computer? Can it 
expand to handle increasingly larger 
workloads, or will you have to 
spend a fortune replacing it? 
Expandable computer systems are 
strictly big-league. They've been 
very expensive, and unless you've 
had at least S 4 0,000 to spend 
they've been out of reach. 

But, now, there's Novell's new 
NEXUS Series— an incredibly 
versatile, surprisingly inexpensive 
computer that expands into a 
multiple terminal-computer network 
system just by adding components 
as your growth requires. You can 
begin using your NEXUS computer 
the day it arrives, because it works 
with the widest assortment 
of proven software 
available in the 
industry today. 
Exclusive RAM- 
GUARD™ protection 
detects and corrects 
memory errors 
automatically 



as they occur— a feature no other 
comparably priced computer offers. 
NEXUS is the one starter-priced 
computer system you'll never have 
to replace! 

If you're in the market for any 
computer, you can afford the 
NEXUS I. Since you can't afford to 
buy wrong, you can't afford to miss 
seeing, trying and learning all 
about NEXUS. 



Call us toll-free and we'll set up 
a hands-on demonstration. We'll 
prove how NEXUS will take you all 
the way to the top. 800-453-1 188 







NOVELL 

DATA SYSTEMS. INC. 



1170 No. Industrial Park Drive, Orem, Utah 84057 
Telephone: (801) 226-8202 




Circle 270 on inquiry card. 



BYTE August 1981 



241 















table 


anObject 










count 


3 




anObjecl 


















anObject 
















nil 






nil 






nil 





anlndexedTable 



Figure 3: A sequential list. 



tion for indexed tables, we can use 
them to demonstrate our first imple- 
mentation of linear lists. We will call 
a linear list that uses an indexed table 
to store its data items a sequential list 
(see figure 3). The basic idea is to 
manage an indexed table so that the 
first i consecutive entries in the table 
are the i data items in our linear list. 
The most difficult operations using 
this strategy are the insertion and 
removal of items, since these cause 
parts of the indexed table to be copied 
from one area to another. An addi- 
tional difficulty is that we must 



specify, at the time we create the 
linear list, the expected maximum 
number of items in the list. This is 
necessary because indexed tables 
come in fixed sizes, which means that 
if the list grows larger than this initial 
number, we must do something to 
accommodate the extra items. 
(Details are shown in the class defini- 
tion given in table 4.) 

The creation message size: is used 
to create an instance of SequentialList 
of some estimated maximum size. For 
example: 



SciTronics introduces . . . 

REAL TIME CLOCKS 

with full Clock/Calendar Functions 

The Worry-free Clocks for People 
Who Don't Have Time to Worry!! 



What makes them worry-free? 

• Crystal controlled for high 
(.002%) accuracy 

• Lithium battery backup for contin- 
uous clock operation (6000 hrs!!!) 

• Complete software in BASIC- 
including programs to Set and 
Read clock 

• Clock generates interrupts 
(seconds, minutes, hour) for 
foreground/background operation 

Applications: 

• Logging Computer on time 

• Timing of events 

• Use it with the SciTronics Remote 
Controller for Real Time control 
of A.C. operated lights and ap- 
pliances 




Versions available for: 

• S-100 bus computers 

• Apple II computer 

• SciTronics RC-80 
owners 



RTC-100 $159 

RTC-A $129 

RC-80CK $109 



send SciTronics Inc. 

check or 523 s aeweU St _ ( p Box 5 344 

orde^io Bethlehem, PA 18015 
(215) 868-7220 

Please list system with which you plan to use 
controller • Master Charge and Visa accepted. 
COD's accepted. PA residence add sales tax. 



I «St | 

list ~- SequentialList size: 5. 

creates a list with enough space, init- 
ially, for five objects. The internal 
message initialize:, which is sent from 
size:, creates an instance of Indexed- 
Table of the appropriate size and 
assigns it as the value of the instance 
variable named table. The other inter- 
nal message, expand, is used to 
enlarge table when it becomes full. 
This is done by creating a new 
instance of IndexedTable that is twice 
as large as the original and by copy- 
ing the objects from the original table 
into the first half of the new table. 
The new table is then assigned as the 
value of table for subsequent use. 

Retrieval from SequentialList is 
done by retrieving from its associated 
indexed table. A new object can be 
appended to the list by storing it in 
the next available location of the 
indexed table of that list. This loca- 
tion is determined by the value of 
count. If there is still room in the 
table, count is incremented and the 
object is stored. Otherwise, the se- 
quential list has to be expanded, 
which is accomplished using the 
message expand, described previous- 
ly. Insertion into the list is done by 
copying from their current location to 
the next, all objects after, and in- 
cluding, the one at the desired loca- 
tion. A new object can then be stored 
at that location. Removing an object 
from a list is done analogously. An 
object is replaced by storing another 
object in the corresponding position 
in the indexed table. 

The advantage of the sequential list 
is that it is easy to access and replace 
(not remove) an arbitrary item. The 
disadvantages are that it is necessary 
both to estimate the maximum size of 
the list when it is created (although, 
as we have seen, the list can expand 
when necessary) and to move items 
around when inserting or removing 
them from the list. 

Let us now consider an example 
that shows how to create and send 
messages to an instance of class 
SequentialList. Suppose we want to 
represent a deck of cards and two 
hands, dealt from the deck. To create 



242 August 1981 © BYTE Publications Inc 



Circle 340 on Inquiry card. 



■k it * it it iriririririririririririri*i!*itiriritiriritiriririr ititititititirititiririririritiririrititir 

4MHZ, DOUBLE DENSITY,COLOR&B/W 
GRAPHICS . .THE LNW80 COMPUTER 



COMPARE THE FEATURES AND PERFORMANCE 
FEATURES LHW80 PMC-i 



TRS-80* 

MODEL III 




When you've compared the features of an LNW80 Computer, you'll quickly 
understand why the LNW80 is the ultimate TRS80 software compatible system, 
LNW RESEARCH offers the most complete microcomputer system at an outstand- 
ing low price. 

We back up our product with an unconventional 6 month warranty and a 10 
days full refund policy, less shipping charges. 

LNW80 Computer $1,450.00 

LNW80 Computer w/B&W Monitor & one 5" Drive $1,915.00 

All orders must be prepaid, CA residents please include 6% sales tax. 
Contact us for shipping charges 

* TRS80 Product of Tandy Corporation. 

** PMC Product of Personal Microcomputer, Inc. 



PROCESSOR 


4.0 MHZ 


1,8 MHZ 


2.0 MHZ 


LEVEL II BASIC INTERP. 


YES 


YES 


LEVEL III 
BASIC 


TRS30 MODEL 1 LEVEL II COMPATIBLE 


YES 


YES 


NO 


48K BYTES RAH 


YES 


YES 


YES 


CASSETTE BAUD RATE 


500/1000 


500 


500/1500 


FLOPPY DISK CONTROLLER 


SINGLE/ 
DOUBLE 


SINGLE 


SINGLE/ 
DOUBLE 


SERIAL RS232 PORT 


YES 


YES 


YES 


PRINTER PORT 


YES 


YES 


YES 


REAL TIME CLOCK 


YES 


YES 


YES 


24 X 80 CHARACTERS 


YES 


NO 


NO 


VIDEO MONITOR 


YES 


YES 


YES 


UPPER AND LOWER CASE 


YES 


OPTIONAL 


YES 


REVERSE VIDEO 


YES 


NO 


NO 


KEYBOARD 


63 KEY 


53 KEY 


53 KEY 


NUMERIC KEY PAD 


YES 


NO 


YES 


B/kl GRAPHICS, 128 X 48 


YES 


YES 


YES 


HI-RESOLUTION B/H GRAPHICS, 480 X 192 


YES 


NO 


NO 


HI-RESOLUTION COLOR GRAPHICS (NTSC), 
128 X 192 IN 8 COLORS 


YES 


NO 


NO 


HI-RESOLUTION COLOR GRAPHICS (RGB), 
384 X 192 IN 8 COLORS 


OPTIONAL 


NO 


NO 


WARRANTY 


6 MONTHS 


90 DAYS 


90 DAYS 


TOTAL SYSTEM PRICE 


$1,915.00 


$1,840.00 


$2,187.00 


LESS MONITOR AND DISK DRIVE 


$1,450.00 


$1,375.00 


— 



LNW80 



BARE PRINTED CIRCUIT BOARD a MANUAL 



$89.95 



LNDoubler&DOS PLUS 3. 3D 



Assembled and Tested w/DOS plus 3. 3D. 



■5175.00 



The LNW80 - A high-speed color computer totally compatible with 
the TRS-80*. The LNW80 gives you the edge in satisfying your 
computation needs in business, scientific and personal computa- 
tion. With performance of 4 MHz, 280A CPU, you'll achieve per- 
formance of over twice the processing speed of a TRS-80*. This 
means you'll get the performance that is comparable to the most 
expensive microcomputer with the compatibility to the world's 
most popular computer (TRS-80*) resulting in the widest soft- 
ware base. 

FEATURES: 





TRS-80 Model 1 Level II Software Compatible 




High Resolution Graphics 




. RGB Output - 384 x 192 in 8 Colors 




. NTSC Video or RF MOD - 128 x 192 in 8 Colors 




. Black and White - 480 x 192 




4 MHz CPU 




500/1000 Baud Cassette 




Upper and Lower Case 




16K Bytes RAM, 12K Bytes ROM 




Solder Masked and Silkscreetied 


LNV 


/ SYSTEM EXPANSION 


BARE P 


RINTED CIRCUIT BOARD 






WITH G 


OLD CONNECTORS $84.95 



The System Expansion will allow you to expand your LNW80, TRS-SO* 
or PMC-80** to a complete computer system that is still totally 
software compatible with the TRS-SO* Model 1 Level II. 



Double-density disk storage for the LNW Research's "System Expan- 
sion" or the Tandy's "Expansion Interface". The LNDoubler™ -js 
totally software compatible with any double density software 
generated for the Percom's Doubler***. The LNDoublerTtf provides 
the following outstanding features. 

. Store up to 350K bytes on a single 5" disk 

. Single and double density data separation 

. Precision write precompensation circuit 

. Software switch between single and double density 

. Easy plug in installation requiring no etch cuts, jumpers 

or soldering 

. 35, 40, 77, 80 track 5" disk operation 

. 120 day parts and labor Warranty 

*** Doubler is a product of Percom Data Company, Inc. 

DOS PLUS 3. 3D 

Micro Systems software's double density disk operating system. 
This operating system contains ail the outstanding features of 
a well developed DOS, with ease in useability. 



KEYBOARD 



LNW80 KEYBOARD KIT $84.95 



The Keyboard Kit contains a 63 key plus a 
remaining components. 



CASE 



key, P.C. board, and 



32K Bytes Memory 

5" Floppy Controller 

Serial RS232 20ma I/O 

Parallel Printer 

Real Time Clock 

Screen Printer Bus 

On Board Power Supply 

Solder Masked and Silkscreened 



LNW RESEARCH 

C OR PORA T ION 

2620 WALNUT ST. 
TUSTIN CA. 92680 



LNW80 CASE $84.95 

The streamline design of this metal case will house the LNW80, 
LWN System Expansion, LNW80 Keyboard, power supply and fan, 
LNOoublerTM, or LNW Data Separator. This kit includes all the 
hardware to mount all of the above. Add $12.00 for shipping 

PARTS AVAILABLE FROM LNW RESERARCH 
. 4116 - 2D0ns RAM 

6 chip set $26.00 

8 chip set $33.50 

16 chip set $64.00 

24 chip set $94.00 

32 chip set $124.00 

LHW80 "Start up parts set" LNW80-1 $82.00 

LNW80 "Video parts set" LNW80-2 $31.00 

LNW80 Transformer LNW80-3 $18.00 

LNW80 Keyboard cable LNW80-4 $16.00 

40 Pin computer to expansion cable $15.00 

System Expansion Transformer S19.00 

Floppy Controller (FD1771) and UART (TR1602) . . . $30.00 



ORDERS&INFO. NO. 714-544-5744 
SERVICE NO. 714-641 -8850 



Circle 198 on inquiry card. 



VISA MASTER CHARGE 
ACCEPTED 



UNLESS NOTED 

ADD $3 FOR SHIPPING 



Circle 12 on inquiry card. 




THINKING ABOUT 

DfiTR INT€RFRC€ 

OR 

COMMUNICATIONS 

CflBL€ nSS(EMBU€S? 

THINK 

ALLISON! 

Allison Data Communications is 
the most technologically ad- 
vanced manufacturer of Data 
Interface cable or Communica- 
tions Cable Assemblies in the 
industry, so we can deliver the 
quality you want, at the prices you 
need. 

Low Cost, High Quality and Fast 
Delivery is our commitment to you. 

Think Cost, Think Quality, Think 
Allison, The new leader in the field. 



Allison Data Communications 


Cabl 


9S include: 


* 


EIA RS 232C 


* 


EIA RS 499 


* 


TEFLON AIR PLENUM 


* 


COAXIAL 


* 


RIBBON 


* 


TELCO 


* 


CUSTOM 



We can also develop and pro- 
duce any type of cable needed 
in special applications. Our 
Technical Representatives will 
be happy to provide you with 
any assistance you might need. 

If you are thinking about Cable 
. . . Think Allison! 



ALLISON DfiTR COMMUNICATIONS 



1290 MOTOR PARK WAV, 
H0PPfiUG€, N€W VORK 11788 

(516) 234-2010 • (212) 895-6449 
TWX: 510-227-8892 



two initially empty hands we write: 

| handl hand2 deck | 
handl — SequentialList size: 5. 
hand2 — SequentialList size: 5. 

To create an unshuffled deck of fifty- 
two cards we write: 

deck — SequentialList size: 52. 



1 to: 13 do: 

(Card suit: 
1 to: 1 3 do: 

(Card suit: 
1 to: 1 3 do: 

(Card suit: 
1 to: 1 3 do: 

(Card suit: 



: i | deck append: 
'heart' rank: i). ]. 
: i | deck append: 
'diamond' rank: i). 
: i | deck append: 
'club' rank: i). ]. 
: i | deck append: 
'spade' rank: i). ]. 



Then, to deal five cards from the deck 
to the first hand we write: 

5 timesRepeat: [ handl append: 
(deck removeAt: 1). ]. 

To deal from the bottom of the deck 
to the second hand we write: 

5 timesRepeat: [ hand2 append: 
(deck removeAt: deck 
count). ]. 



The Linked List 

A second approach for managing 
the storage of items in a linear list is 
to use a linked list. The strategy for 



class name 



superclass 



instance variable names 



class messages and methods 



SequentialList 



LinearList 



table 



size: anlnteger | 

(anlnteger > 0) ifTrue: 
ifFalse: 



t (self new) initialize: anlnteger ] 
t self error: 'invalid size' ]. 



instance messages and methods 



external 

at: anlnteger | | self checklndex: anlnteger. t table at: anlnteger. 

append: anObJect j | 

(count = table size) ifTrue: [ self expand. ]. 

table put: anObject at: count + 1 . 

count — count + 1. 
Insert: anObject at: anlnteger | | 

self checklndex: anlnteger. 

(count = table size) ifTrue: [ self expand. ]. 

count downTo: anlnteger do: [: i | table put: (table at: i) at: i 4 

table put: anObject at: anlnteger. 

count — count +1. 
replace: anObject at: anlnteger | | 

self checklndex: anlnteger. 

table put: anObject at: anlnteger. 
removeAt: anlnteger | anObject | 

anObject — self at: anlnteger. 

anlnteger + 1 to: count do: [: i | table put: (table at: i) at: i - 

count — count - 1 . 

I anObject. 

internal 

Initialize: anlnteger | | 

super initialize. 

table — IndexedTable from: 1 to: anlnteger. 
expand | anlndexedTable | 

anlndexedTable — IndexedTable from: 1 to: 2 * count. 

1 to: count do: [: i | anlndexedTable put: (table at: i) at: i. ]. 

table — anlndexedTable. 

Table 4: Class template for class SequentialList. 



244 August 1981 © BYTE Publications Inc 



Put Time and BSR/X-10 Control 
in Your APPLE II 
THUNDERCLOCK PLUS™ 

The THUNDERCLOCK PLUS is two peripheral systems on one card for your 
APPLE II, II PLUS, or III. An accurate, reliable, real-time clock/calendar and an 
interface for the popular BSR X-10 Home Control System. 

The THUNDERCLOCK clock/calendar makes accurate time and date 
available to your programs: month, date, day-of-week, hour, minute, and 
second, in any of four software selectable formats. On-board batteries keep 
your THUNDERCLOCK running when your APPLE II is turned off - 
for up to four years before battery replacement. On-card IK firmware 
makes reading or setting the time easy from APPLESOFT or 
INTEGER BASIC, PASCAL, or assembly language programs. 
And it provides software selectable interrupts at any of three 
rates: 64, 256, or 2048 interrupts/second. All features are 
software selectable - no switches or jumpers! 

THE PLUS 

Add THUNDERWARE'S X-10 ULTRASONIC INTERFACE 

OPTION to your THUNDERCLOCK and your programs can send all 22 BSR X- 10 commands so you can remotely 
control lights and appliances. Plus a powerful disk software package! The THUNDERWARE SCHEDULER 
software lets you create schedules to control lights, appliances, security systems, or almost any other electrical 
device. The software includes: SCUTIL - the SCHEDULER utility that lets you make or change a schedule, and 
SCHED - executes your schedules in real-time using the THUNDERCLOCK. SCHED runs in the 'background' so 
you can run other programs in the 'foreground'. Our PASCAL software lets you use all theTHUNDERCLOCK'S 
features and sets the filer date whenever you boot. The THUNDERCLOCK PLUS is a SYSTEM for your APPLE II. 
Supported by intelligent, easy to use firmware, a powerful software package, and good documentation! 





Let the THUNDERCLOCK PLUS time/date 
stamp your DOS files whenever you create or 
modify them with our DOS-DATER software. 

The THUNDERCLOCK PLUS will work in any 
APPLE, including the APPLE III. 



See your APPLE dealer. 

Suggested retail prices: 

THUNDERCLOCK PLUS $139 

Clock/calendar card with batteries and user's 
manual 

X-10 INTERFACE OPTION $49 

BSR X-10 Ultrasonic interface, disk with 
SCHEDULER SOFTWARE &. demos, and user's 
manual 

PASCAL SOFTWARE $29 

Disk with PASCAL interface for clock and X-10 

interface, and user's guide 

MANUALS ONLY, each $5 

California residents add 6 f! i> sales tax 

If your dealer doesn't carry the 

THUNDERCLOCK PLUS: 

ORDER TOLL FREE (VISA/MC) CALL: 

800-227-6204 Ext 307 (Outside California) 

800-632-2131 Ext 307 (California Only) 

OR WRITE TO: 

THUNDERWARE INCORPORATED 

P.O. Box 13322, Oakland, CA 94661 



ffBMWri soawore 




BSR X-10 is a trademark of BSR (USA) LTD. 
APPLE II is a trademark of APPLE COMPUTER. INC 




SUPERBRAIN 

QD - ONLY 



$ 



2950 



SUPERBRAIN 5mb 



Buy Factory Direct and Save! Direct from 
Intertec to you at the best prices in the country! 
FREE! Word processing or single accounting program with 
purchase of 64k Superbraln at $2650. 

$ 2995 



Upgrade kit 



Includes ST-506 5V«" 5mb Hard disk, controller, brackets, cables, CP/M ond DOS diskette 



Double density 



SUPERBRAIN 64k 

HARD DISK 10mb2r« 95 



$ 2650 
$ 3395 



NORTHSTAR COMPUTERS 

HORIZON II 

32k Density. Reg. $3695 I* I VV 
HORIZON II 

32k Density. Reg. $3995 £«f U V 



TERMINALS 

Intertube III ZTms . $ 720 



Emulator 



Intertec 
Reg. $395 



$ 



720 



PRINTERS - DOT MATRIX 
Lowest Prices! 

MPI 88G ust S749 s 550 

MPI99G s 750 

COMET C.ltoh with RS232 . . .Regs 995 s 450 
COMET II Parallel Reg S1350 s 825 



EPSON MX80 Par, 



.RegS 645 



'465 
s 525 



EPSON MX80 RS232. . .RegS 720 

PRINTERS-WORD PROCESSING 

STARWRITER Parallel . . . Reg S2195 M495 

STARWRITER RS232 . . . Reg .s2395 M650 

STARWRITER II 45c P s. ,Reg.s2795 M795 

XYMEC Parallel Reg S2650 s 1 995 

XYMEC RS232 RegS2875 '2165 

NEC 5510 '2535 



WORD PROCESSING 

Word Sfor s 320 

Mail Merge s 110 

VTS 80 s 449 

Benchmark s 400 

Spellguard s 225 

Word Pro M70 

NAD Mail LiSt Structured Systems MOO 

MVF Mailer MOO 



HORIZON II 

64k Density. Reg. $4195 I fa V 

HORIZON II 

64k Density. Reg. $4495 VW&V 



DISC DRIVES 

5 mbyte 5'A" Hard Disk ST-506 
from Seagate Technology 

LIST $1500 ONLY. ,. s 1 300 

FLOPPY DISC 5V4 

Tanden TM 100-1 Single Sided. Double Density 225 
TM 100-2 Double Sided, Double Density 395 



SOFTWARE NORTHSTAR 

25% OFF! 



ACCOUNTING PLUS 

by Systems Plus 

Accounts Receivable, Payroll, Accounts 

Payable, Inventory, General Ledger, Sales 

Order Entry, Purchase Order Entry. 

Each $ 395 

PEACHTREE 

A/R, A/P, G/L, P/R, INV....ea. $ 395 
CPA, Property Mgmt ea. $ 795 

MVF PROGRAMS 

Restaurant Inventory $ 250 

Client Billing s 450 

DBMS PROGRAMS 

Condor I s 550 

Data Star s 225 

FMS-80 $ 395 



C Basic Compiler. 
Microsoft Basic . . 



$110 
$325 



"C/PM is trademark of Digital Research U.S. International Dealer Inquiries Invited 

To Order Call (206) 453-8159 m "^ 

Mastercharge, VISA add 3%. No C.O.D s All prices FOB origin. Lj_ " 

PACIFIC COMPUTER BROKERS 

11056 Palatine North, Seattle, WA 98133 



using a linked list is the following: in- 
stead of allocating sequentially the 
storage needed to hold data items, we 
allocate separate storage objects, 
called links, each of which keeps 
track of a data item and either one or 
two other links. A set of links are 
connected together to form a linked 
list. A single link (see figure 4a) is one 
that keeps track of a data item and 
one other link, which is its successor. 
A double link (see figure 4b) has a 
data item and two other links: its suc- 
cessor and its predecessor. 

Class SingleLink is defined as shown 
in table 5. It has instance variables 
named entry and successor; entry 
points to an object that represents a 
data item, successor points either to 
another instance of class SingleLink, 
or, if there is no successor, to the ob- 
ject nil. We specify the entry and suc- 
cessor of a single link at the time we 
create it. For example: 

| linkl Iink2 | 

linkl ~- SingleLink entry: (Card 

suit: 'club' rank: 4) successor: 

nil. 
Iink2 — SingleLink entry: (Card 

suit: 'diamond' rank: 6) 

successor: linkl . 

creates two links. The entry of the 
first link is an instance of class Card 
that represents the four of clubs. Its 
successor is nil. The entry of the sec- 
ond link is an instance of class Card 
that represents the six of diamonds; 
its successor is the first link. 

The class definition for double 
links is given in table 6. Class 
DoubleLink inherits from class 
SingleLink the instance variables and 
messages that are used to implement 
the entry and successor of a double 
link. In addition, there is an instance 
variable named predecessor that 
points either to an instance of class 
DoubleLink or to nil. The messages 
predecessor: and predecessor set and 
return, respectively, the value of 
predecessor. 

As stated previously, a linked list is 
a sequence of links connected in a 
linear arrangement. We can make dif- 
ferent kinds of linked lists depending 
on the links we use and the precise 



246 August 1981 © BYTE Publications Inc 



Circle 290 on inquiry card. 



i t -^ m 






From Digital Research 








Leriest 
Gets Better 

CP/M®, the industry standard, 
continues to expand, because your 
needs continue to expand. 

CP/M-80™ 

For cost-effective computing on 8-bit 
Z-80, 8080 and 8085-based micro- 
computers, CP/M-80 gives you the 
widest variety of mature, specialized 
software products anywhere. 
CP/M-86™ 

For jobs that require more address 
space and increased computing re- 
sources, CP/M-86 provides the soft- 



ware power you need. CP/M-86 is 
enhanced to operate with Intel's new 
16-bit 8086 and 8088 microproces- 
sors, with all the qualities that have 
given CP/M industry-wide support. 

And there's more to come: MP/M™, 
our multi-programming monitor, 
and CP/NET™, our network oper- 
ating system, and PL/I, now available 
for 8-bit machines, will soon be 
available for the 8086/8088 family. 
CP/M. It's available on over 250 
types of computers. For a closer 
look, ask your dealer, your manu- 
facturer, or Digital Research. 



U.S.A. 

DIGITAL RESEARCH 

P.O. Box 579 

801 Lighthouse Avenue 

Pacific Grove, CA 93950 

408-649-3896 

TWX 910 360 5001 



EUROPE 

VECTOR INTERNATIONAL 

Research Park 

B-3030 Leuven 

Belgium 

32 ( 16) 20-24-96 

Telex 26202 VECTOR 



FAR EAST 
MICROSOFTWARE ASSOC. 

102 Plasada 

3-16-14 Minami Aoyama 

Minato-ku 

Tokyo 107, Japan 

03-403-2120 

Telex 2426875 MSA 



10 DJGJTflL RESEARCH 8 




Circle 116 on inquiry card. 



BYTE August 1981 247 



Circle 265 on inquiry card. 

Send for our 
FREE Catalog 

DATA READER & 
PRINTOUT RULER 
FROM LINE-SITE 

ONLY 

$2.00 

(It's even FREE if you 
order from our catalog!) 

This special price is just to 
introduce you to our catalog 
of computer accessories and 
word processing supplies. 
We offer you 25-50% off on 
products like 3M-Scotch* 
brand diskettes, computer 
paper, ribbons, printwheels, 
binders, and alot more. 
If you order the Data 
Reader we'll send you 
a gift certificate worth 
$2.50 when you order 
from the catalog. 

15" flexible plastic, 
clear & tinted 

Highlighted 
reading window 

Vertical spacing 

scale for 8 lines 

per inch 

6 lines per 
inch vertical 
spacing scale 

Horizontal 

spacing scale, 

150 print 

positions 



$ 



TRICOR A 

3601 S. 9th St. 
Kalamazoo, Ml 49009 
TOLL FREE: (800) 253-4358 
In Michigan: (616) 375-7519 

□ Here's my S2 (plus 50( postage and handling) 

lor a Data Reader/Ruler and send me your catalog 
with 25%-50% savings on name brand disks, paper, 
labels and other computer accessories. 

□ I don't need the Data Reader/Ruler but please 
put me on your catalog mailing list. 

Name 

Company 

Address 

City 



(4a) 



anObject 
1 



entry 



successor 



on Object 



anObject 



(4b) 





anObjecl 






anObject 






anObject 








i 


i 




i 






entry 


■ 


■ 




i 




successor 
































predecessor 





































Figure 4: Two kinds of links. Figure 4a shows a list of storage objects joined by single 
links, while figure 4b shows a similar list joined by double links. 



State/Zip 
•-3WI Co. 



class name 


SingleLink 


superclass 


Object 


instance variable names 


entry successor 


class messages and methods 




entry: anObject successor: aSingleLInk | 

1 ((self new) entry: anObject) successor: aSingleLink. 


instance messages and methods 




external 

entry | t entry. 

entry: anObject | entry — anObject. 

successor } t successor. 

successor: aSingleLInk | successor — aSingleLink. 

internal 

"none defined here" 

Table 5: Class template for class SingleLink. 



way that they are connected 
together. Table 7 defines class 
LinkedList, which acts as the 
superclass of the various linked lists 
we will consider. It collects several 
messages that are suitable for all of 
the LinkedList subclasses. 

The message linkAt: is used inter- 
nally by LinkedList methods. Taking 
an integer as a parameter, it traverses 
a sequence of connected links looking 
for the link in the position indicated 
by that integer. It returns this link as 
a result. This message is not intended 
for use outside of the class since we 



don't want the rest of the system to 
have access to the internal structure 
of the list. The messages at: and 
replace.at: can be defined using 
linkAt: since, once the appropriate 
link is found, it is easy to return or 
replace its corresponding entry. 

The Singly Linked List 

The first type of linked list we will 
examine is the singly linked list. A 
singly linked list is a sequence of 
single links connected together so that 
the successor of the first Jink is the se- 
cond link, the successor of the second 



SOFTWARE PROFESSIONALS 

Whatever your 
specialization in 

software, there's an 
expanding path 
at Kearfolt. 



vM,; 



-"i. 



«*•:'. ffi : 



From high technology to commercial applica- 
tions, opportunities at Kearfott span the soft- 
ware spectrum. Regardless of the area that 
intrigues you, you'll be working in one of the 
most sophisticated DP complexes, using the 
most advanced IBM Software. 

The focus at our Data Center is on break- 
through systems expanding a global network. 
To this end, we've assembled an elite group of 
software professionals. Our growth dictates 
the demand for more. We have a battery of 
computers that include the 3033, AMDAHL 
V/6, 43XX series, and more, with comple- 
menting front end processors. In support of 
this hardware, we run a multitude of software 
including MVS/SE-2 (going MVS/SP), 
VM/SP, VS1, IMS DB/DC, CICS, TSO/SPF, 
WYLBUR, ACF/NCP, ACF/VTAM, and more. 

In Engineering applications, realtime software 
designs operate airborne computers in Kear- 
fott avionics systems-from aircraft navigation 
to missile guidance. You could also be 
designing for programs comparable in com- 
plexity to Kearfott's inertial measurement 
units on the Space Shuttle and guidance con- 
trol on Trident submarines. Assignments may 
include simulation on our 3033. 



In business applications, we run the MIS 
gamut-accounting, finance, inventory, man- 
ufacturing, payroll and a whole lot more. 

In the Data Center, we support all the hard- 
ware, operating systems and language com- 
pilers that Kearfott applications professionals 
need. Prior experience installing System Soft- 
ware qualifies you for our consideration. 

Whatever your area of software expertise, you 
should have an appropriate degree and at 
least a 3-year record indicating potential to 
achieve higher professional levels. Send your 
resume to: Carol Batte, Singer Company, 
Kearfott Division, 1150 McBride Avenue, 
Little Falls, N.J. 07424. 



Kearfott 



a division of The S I NC E R Company 

An equal opportunity employer, m/f 
who creates opportunities. 



Circle 347 on inquiry card. 



BYTE August 1981 249 



Circle 293 on inquiry card. 




NO FRILLS! 


NO GIMMICKS! 


JUST GREAT 


DISCOUNTS 


MAIL ORDER ONLY 


ATARI 800 




Personal Computer 




System 


$74900 


NORTHSTAR 




Horizon II 32K 


234900 


Horizon II Quad 


279900 


Horizon II 64K 


299900 


Horizon Quad 64K 


339900 


TELEVIDEO 




Model 912 


74900 


Model 920 .. 


79900 


Model 950 


107900 


HAZELTINE 




Model 1420 


79500 


Model 1421 


69500 


Model 1500 


84900 


Model 1510 


104900 


Model 1520 


122900 


Espirit 


64900 


Executive 80 




Model 20 


119500 


Model 30 


139500 


0KIDATA 




Microline 80 


55900 


S0R0C Technology 




Model IQ 120 


69900 


Model IQ 140 


104900 


CR0MEMC0 




System 3 


569500 


Model Z2H 


799500 


QANTEX 




Model 8000 150 CPS 




parallel interface . . . 


114900 


Model 8000 150 CPS 




serial interface . . . 


119500 


DECwriter IV 




Model LA-34 


93900 | 



We'll meet or beat any advertised prices! 



Most items in stock for immediate delivery. 

Factory sealed cartons. Full manufacturer's guarantee. 

All products subject to availability. 

All prices subject to change. 

DATA DISCOUNT CENTER 

135-53 Northern Blvd., Flushing, NY. 11354 

Visa • Master Charge • N.Y.S. residents add SalesTax 
Shipping FOB. NY. 

Phone Orders Call (212)895-5577 



link is the third link, and so on (see 
figure 5). The successor of the last 
link is nil. 

The definition for class 
SinglyLinkedUst is given in table 8. 
Class SinglyLinkedUst has an instance 
variable named firstLink that points 
either to the first object in the list or 
to nil if the list is empty. The internal 
message initialize, which is sent when 



an instance of SinglyLinkedUst is 
created, sets firstLink to nil. The inter- 
nal message firstLink, which is never 
sent to an empty list, returns the 
SingleLink instance pointed to by 
firstLink. 

In the implementation of the 
message append:, we first create a 
new link whose entry is the object 
passed as a parameter. We then check 



class name 


DoubleLink 


superclass 


SingleLink 


instance variable names 


predecessor 


class messages and methods 




entry: anObject successor: aDoubleLlnkl predecessor: 
aDoubleLink2 | | 

t (self entry: anObject successor: aDoubleLinkl) predecessor: 
aDoubleLink2. 


instance messages and methods 




external 

predecessor | t predecessor. 

predecessor: aDoubleLInk | | predecessor — aDoubleLink. 

internal 

"none defined here" 

Table 6: Class template for class DoubleLink. 



class name 


LinkedList 


superclass 


LinearList 


instance variable names 


"none defined here" 


class messages and methods 




new | I (super new) 


nitialize. 


instance messages and methods 




external 

at: anlnteger 

self checklndex: anlnt 

t (self linkAt: anlnteg 

replace: anObject at: . 

self checklndex: anlnt 
(self linkAt: anlnteger 

internal 

"firstLink | | ... to be defined 

linkAt: anlnteger aL 

aLink — self firstLink. 
(anlnteger - I) time; 
1 aLink. 

Table 7: Clas. 


eger. 
er) entry. 
inlnteger | 

eger. 
entry: anObject. 

n subclasses" 
ink | 

Repeat: [ aLink — aLink successor. ]. 
; template for class LinkedList. 



250 August 1981 © BYTE Publications Inc 



Account on it. 



Inventory 

Now 
Available 

$295 




With the 
Osborne programs 
as a base, we have 
developed a debugged, 
easily installed business 
package that compares favor 
ably with systems costing much 
more. 

General Ledger produces trial, 
monthly, and quarterly balance sheets 
and income statements. Journal 
entries can be entered manually, or 
automatically from the A/R and A/P 
systems. 

Accounts Receivable is an open- 
Item system that handles invoice, 
payment, credit memo, debit memo, 
and progress billing transactions. 
Customer statements are produced 
when desired. 

Accounts Payable writes checks 
to specified vendors from invoice, 
credit memo, and debit memo 
transactions. You can distribute each 
transaction over a series of G/L 
accounts and job numbers. 

Circle 420 on Inquiry card. 



Both the A/R and A/P systems 
produce aged invoice analysis listings 
based on user-specified time periods. 

The Payroll system allows hourly, 
salaried, vacation, holiday, piecework, 
overtime and miscellaneous pay. Any 
number of deductions can be entered 
for each employee. 941 -A and W-2 
forms are produced when needed. A 
Job Cost subsystem keeps track of 
project dates and status, and records 
hours, cost and overhead information 
by employee for each job. 

The checks and statements fit 
standard forms readily available from 
mail-order forms suppliers. You have 
your choice of a number of different 
formats. 



We are committed 
to the support of our 
users. A tech support 
phone line gives you access 
to us if you need it. Full source 
code is included with every sys- 
tem. Our money- back guarantee 
speaks for itself. 

Minimum requirements are 48 K 
RAM, CP/M™ or CDOS.CBASIC2™, a 
CRT, and a 132-column printer. We 
can provide standard 8", NorthStar 5" 
double-density, or Heath/Zenith 5" 
diskettes — call for availability of other 
formats. The price is $295 per 
system, or $995 for the complete set 
of four. 

For more information, write 
VANDATA, Suite 205, 1 7544 Midvale 
Ave. N., Seattle, Wa. 98133, or call 
(206)542-7611. 

Vandata Business Software. You 
can account on it. Hundreds of other 
businesses already do. 



CBASIC is a trademark of Compiler Systems Inc.- 
CP/M is a registered trademark of Digital Research. 

BYTE August 1981 251 



Circle 82 on inquiry card. 




Intertec Superbrain SPECIALS 

64K Ram, List $3495 $2595 

64K Quad, List $3995 $2995 

NorthStar 

Horizon I 32KDD List $2695 .. . CALL 

Horizon I QD List $2995 CALL 

Horizon 2 32DD List $3095 CALL 

lntersystemDPS-1 List $1749 . . . CALL 



Z-2H 



T|£w52EI 



Cromemco Z-2H, List $9995 . . $7945 

System 2, 64K List $4695 $3749 

System 3, 64K, List $7995 $6395 

Disk Systems 

Thinker Toys Discus 2D $939 

Dual Discus 2D „ . . $1559 

Discus 2 + 2, List $1549 $1259 

M26 Hard Disk, List $4995 $3949 

Discus M-10, List $3695 $2995 

Printers & Terminals 

Paper Tiger IDS-445 $649 

with graphic opton $719 

Centronics 730-1, List $795 $549 

739-1, List $995 $769 

704-9 RS232 $1495 

704-11 $1569 

Tl 810, List $1895 $1489 

NEC SPINWRITER 5530 $2395 

NEC SPINWRITER 5515, 5510. . $2395 

Diablo 630 List $271 I $2399 

Intertube III Lisi $895 $729 

Zenith Z-19 $719 

Televideo912C $679 

920C $799 

950 $999 

Hazeltine 1420 $789 

1500 $845 

Soroc 120 List $995 $689 

10.135 $719 

140 $994 

Computers 
Wholesale 

P.O. Box 144 Camillus, NY 13031 
2 (315) 472-2582 Hi 

Most items in stock for immediate delivery. Factory sealed cartons, 
w/full factory warranty. NYS residents add appropriate sales tax 
Prices do not include shipping, VISA and Master Charge add 3%. 
C.0.0 orders require 25% deposit. Prices subject to change without 
notice. 



to see if the list is empty, and if so we 
set firsttink to point to the new link. If 
the list is not empty, we get the last 
link in the list and make its successor 
the new link. In either case, we incre- 
ment the value of count to keep track 
of the new number of objects in the 
list. 

In general, to insert a data item into 
a singly linked list, we create a new 



link for the item and then find the link 
that the new link is to follow. We 
then make this link point to the new 
link, and have the new link point to 
the former successor of this link (see 
figure 6a). The only exception to this 
process occurs if we are adding the 
data item to the beginning of the list. 
In this case there is no predecessor, so 
we simply point the new link to the 





anObiect 




anObject 




onObject 




anObject 








r, 




























fir st Link 




■ 




■ 




■ 




■ 








». 






r» 











































Figure 5: A singly linked list. 



class name 



superclass 



instance variable names 



class messages and methods 



SinglyUnkedList 



LinkedUst 



firstLink 



"none defined here" 



instance messages and methods 



nil. 



external 

append: anObject | aSingleLink | 

aSingleLink — SingleLink entry: anObject successor: 
self empty 

ifTrue: [ firstLink — aSingleLink. ] 
ifFalse: [ (self linkAt: count) successor: aSingleLink. ]. 
count — count + 1 . 
Insert: anObject at: anlnteger | aSingleLink | 
self checklndex: anlnteger. 
(anlnteger =1) 

ifTrue: [ firstLink — SingleLink entry: anObject successor: firstLink. 
ifFalse: [ aSingleLink — self linkAt: anlnteger - 1 . 

aSingleLink successor: (SingleLink entry: anObject successor: 
aSingleLink successor). ]. 
count — count + 1 . 
removeAt: anlnteger | aSingleLink anObject | 
self checklndex: anlnteger. 
(anlnteger = 1) 

ifTrue: [ anObject — firstLink entry. firstLink — firstLink successor. 
ifFalse: [ aSingleLink — self linkAt: anlnteger - 1 . 
anObject — aSingleLink successor entry. 
aSingleLink successor: aSingleLink successor successor. ]. 
count — count - 1 . 
t anObject. 



internal 

Initialize 

firstLink 



super initialize. firstLink — nil. 
— firstLink. 

Table 8: Class template for class SinglyLinkedList. 



cap* 



6^ 



W 



i9 o 



os-- 



b V /o 

\\l® call 



3\<- a .»ae<" 







* 49 '„*> 



•ft *ft 






% 



*"" veil' »,»«"»'S 



^O 1 



\2' „\o< 






3»°'' 









j6° 



,&99 


















ao°' 






M\sV «*'. p\os- , ,c bV Reeled 






.96 

; a a9 v, 

-AAO ,5°/» 
- ^0 Vfr I 

53 «** \ 



*«, <*» 























Circle 70 on inquiry card. 



The NO Compromise on P 3 * 
S-100 Plug-Ins 

*(Performance, Power, Price) 



STATIC RAM BOARD 




The 32K x 8 l>it/16K x 16 bit STATIC 
RAM BOARD uses low power and its 
fast device access time of 200 nsec 
(max.) allows for operation @ 4 MHz 
without any wait cycles. 
Features: IEEE-696 compatibility with 
extended addressing □ Memory ad- 
dress may start and stop on any 4K/ 
2K boundary □ Special Memory Man- 
agement and Control Functions (sel- 
ectable via output port control word(s): 
Bank select/deselect 8K/4K 
Bank write protect 8K/4K 
Bank readdress 8K/4K 

DSoftware page select/override □ Software wait cycle select (if slower devices util- 
ized by user) □ External power source back-up capability for Memory Array D Low 
input power requirements (full memory array - 150 MA max. @ 8 VDC IN — support 
logic- 500 ma typ @ 8 VDC IN) □ Socketed RAMs and support logic IC's for easy 
maintenance □ Comprehensive Manual 

Assembled and Tested P/N 52748-500-100 $485 
Kit P/N 52748-500 $395 Bare Board P/N 52748-5XX $95 



\MULTl-FUNCTION I/O BOARD 



The multiple on-board functions allow 
for complete software and hardware 
I/O task(s) control. 
Features: Two independent SYNC/ 
ASYNC serial ports (Software program- 
mable with status read interface: RS- 
232-C or current loop — 20 or 60ma 
— or TTL with handshaking. Dedicated 
output connectors for each port) □ 
One strobed 8-bit parallel port with 
handshaking (Software status read) D 
Three 8-bit parallel ports undedicated 
& user configured (Software program- 
mable for input, output, plus input/output/bidirectional with handshaking or com- 
binations thereof. Software status read for handshake logic) □ Three independent 
16-bit timers (Software programmable for 5 operating modes. Indiv. clock source 
input 8. gate control — int. or ext. Uninterrupted read. Two buffered outputs) □ 
Eight level priority interrupt controller (Software programmable highest interrupt 
level. 8080/Z80 auto restart command) □ Two software programmable baud rate 
generators with crystal controlled frequencies — .01 % tolerance □ Large proto- 
typing area with access to regulated +5, +12, - I 2VDC. 




Assembled and Tested 
Kit P/N 52748-100 $225 



P/N52748-I00-I0I $375 
Bare Board P/N52748-IXX $85 



PROTOTYPING BOARD 




Provides flexibility and saves hours 
of power busing layout time. 
Features: Bus-bar power distribution 
D Allows wire-wrap or soldering of 
sockets and discrete components □ 
Accepts all std. sockets on .30" 8- .60" 
centers D 3 regulators ( + 5V ± I 2V) 
with filter and decoupling capacitors 
□ Accepts edge connectors on .10" 
centers. 

Or complete as shown in photo. 
Kit includes: 3 regulators w/3 heat- 
sinks/filter capacitors/2 bus bars and 
manual P/N52748-400 $49.95 

Bare Board P/N 52748-4xx $34.95 



CA residents add 6% tax 
U.S. Domestic Ptice, FOB Factory 



I/O TECHNOLOGY 

P.O. Box 21 19 
Canyon Country, CA 91351 
(805) 252-7666 




former first link in the list. This pro- 
cedure is used to implement the 
message insert: At: in class 
SinglyLinkedList. We also increment 
the value of count, just as we do in 
the message append. 

The general procedure for remov- 
ing a data item from a singly linked 
list is analogous to that for inserting 
an item. First we find the link that 
precedes the one at the position of in- 
terest. We then point this link to the 
link that follows the one of interest. 
This deletes the link of interest from 
the list (see figure 6b). We then return 
the entry of the deleted link. Again, 
the exceptional case is removing the 
first item since there is no preceding 
link. The message removeAt: in class 
SinglyLinkedList is implemeneted 
using this procedure. Since an object 
has been deleted from the list, we 
decrement the value of count. 

Suppose we wish to use a singly 
linked list instead of a sequential list 
in our previous example of a deck of 
cards. We simply create instances of 
class SinglyLinkedList for the deck and 
hands, as shown in the following: 

| handl hand2 deck | 
deck — SinglyLinkedList new. 
handl — SinglyLinkedList new. 
hand2 — SinglyLinkedList new. 

We can then use the rest of the code, 
unchanged, from that example. We 
are able to do this because we have 
hidden the details of each implemen- 
tation inside the corresponding class 
definition and, in using the classes, 
have limited ourselves to a clearly 
defined set of external messages. 

The Circular List 

Another type of linked list is the 
circular list (see figure 7). A circular 
list is a singly linked list in which the 
successor of the last link in the list is 
the first link in the list. This makes a 
circular chain of links. If we have 
access to the last link in a circular list, 
then we also have easy access to the 
first link of that list since it is the 
immediate successor of the last link. 
By keeping track of the last link of a 
circular list, we can easily insert and 
remove items from both the begin- 



254 August 1981 © BYTE Publications Inc 



Circle 161 on inquiry card. 



Circle 342 on inquiry card. 



available now fiom stock 



Ultra Fast - 100 nsec. chips 

Fast access allows memory management 
manipulation without wait states. 



8/16 - 8 or 16-bits wide 

Dynamically switches data path width per 
IEEE Standard. 



Low Power 

Typical power consumption less than 2 amps 
for active board. Less for power down 
boards. 



Extended Addressing 

24-bit IEEE addressing allows 16-megabyte 
range. Single shunt changes to 16-bit 
addressing. 

Fully Static 

No clocks, no refresh required for easy DMA 
use. 

Special Features 

Any 4K block can be disabled. Or, can disable 
everything above or below any 4K boundary. 
Available in 16K increments for OEM quantities. 



$1,295 



100 nsec. Chips - Qty. 1-9 

OEM & Dealer prices also available. 




TO ORDER: 

May be ordered through your local computer store or 
factory direct. Personal checks, CODs, VISA and MC 
accepted from within USA. 10-day return privilege on 
factory orders. Shipping paid by SCP on prepaid USA 
and Canadian orders. All boards fully assembled, 
guaranteed one year. 




^COMPUTER 

1114 Industry Dr. Seattle WA 98188 
Information Hotline: 206/575-1830 



Send more information: ( 

Name 

Company 

Address 

City 



. State. 



.Zip. 



(6a) 





anObject 


i 


■ 


entry 


■ 




J. 


successor 








anObject 




i 




1 1 

















(6b) 





anObject 






. 


entry 


i 


i 






/ 


successor 









anObject 


, 




i 


1 


■s 



anObject 



Figure 6: The insertion and deletion of data items from a singly linked list. In both inser- 
tion (6a) and deletion (6b) processes, the dotted lines represent the links existing before 
the process, while the solid lines represent the links existing after the process. 



anObject 



anObject 



anObject 



anObject 



Figure 7: A circular list. 



ning and the end of the list. This will 
be a useful property in some of the 
data structures that we will build out 
of circular lists. 

The definition of class CircularList is 
given in table 9. Class CircularList has 
an instance variable named lastLink 
that points either to the last link in the 
list or to nil if the list is empty. The in- 
ternal message initialize sets lastLink to 
nil. The internal message firstLink 
(again, as in the case of class 
SinglyLinkedList, sent to nonempty 
lists only) returns the successor of 
lastLink. Since the list is circular, this 
is the first link in the list. 

The append, insert, and remove 
operations on a circular list are 
similar to those on a noncircular list. 
Since we always have a link that 
precedes any given link in a circular 
list, we don't have to make exceptions 
for operations on the beginning of the 
list. The implementation of these 
operations is demonstrated in the 
methods for the messages append:, 
insertAt:, and removeAt:. 

The Doubly Linked List 

Now we will consider the doubly 
linked list (see figure 8). A doubly 
linked list is a sequence of double 
links connected together. The suc- 
cessor of a given link is the link that 
follows it in the sequence, just as in 
the case of the singly linked list. The 
predecessor of a given link is the link 
that precedes it in the sequence. A 
doubly linked list can be made into a 
circular list, just as a singly linked list 
can, by connecting the first and last 
links. In this case, the successor of the 

Text continued on page 260 



AMS 



ADVANCED MICRO SYSTEMS • 26188 ADAMOR ROAD • CALABASAS, CA. 91302 
MORROW DESIGNS products at low low prices' Tel.: (213) 880-4670 



OFFER 

Expires 



*HARD DISK SUBSYSTEMS ADDITIONAL HARD DISK 



* FLOPPY DISK SUBSYSTEMS TWO DRIVE SUBSYSTEMS 



M-26 DISCUS M26 $3697.00 
M-20 DISCUS M20 S3553.00 
M10 DISCUS Art 10 $2760.00 

DISK CONTROLLERS (A & T) 



A-26 DISCUS M26 $3337 00 
A-20 DISCUS AA20 $3193.00 
A-10 DISCUS AA10 $2400.00 



F-l 118 DISCUS I $ 816.00 
F 1218 DISCUS 2D $ 888.00 
F 2218 DISCUS 2 12 $1176.00 



F-l 128 DISCUS I $1389.00 
F- 1228 DISCUS 2D S1450 00 
F-2228 DISCUS 2 J-2 $1954.00 



DJ-AA26 AA26 HARD DISK $595.00 

DJM20 AA20 HARD DISK $595.00 

DJM10 M10 HARD DISK $595.00 

DJ-2208 DOUBLE DENSITY FkOPPY $349.00 

DJ1 108 SINGLE DENSITY FLOPPY $219.00 

I/O CONTROLLERS (A &T) 

SB-24U SWITCHBOARD I/O $219.00 

SB 241 I4K 4K RAM OPTION $60.00 

AAB 3200 MULT I/O BOARD $309.00 



STATIC MEMORY (A &T) 

16KSUPERAM $248.00 

I6K MEMORY MASTER $284.00 

24K MEMORY MASTER $378.00 

32KSUPEP.AM $450.00 

65K STATIC RAM $870 00 

IEEE. S-l 00 BUS (AST) 



DECISION 1 BASIC UNIT $1342.00 



NOTE: 



WB -0800 8 SLOT MOTHER BRD. 
WB-1200 12 SLOT MOTHER BRD 
WB 2000 20 SLOT MOTHER BRD. 



$109,00 
$129.00 
$173.00 



I . The disk subsystems include Digital Research 
CP/M 2.2 and Microsoft Basic V5.2 

2. If you own a MITS controller and disc drive. 
we have the interface to run them with our 
new subsystems, and a reformatter for your 
Pertec drives and software to translate your 
Mits files to your new operating system. 



All shipments FOB Calabasas —90 days warranty on all products 



Terms, Specifications subject to change without notice. 



256 August 1981 © BYTE Publications Inc 



Circle 7 on inquiry card. 



ALL THESE FEATURES... 
IN THIS SMALL SPACE... 

AT THIS LOW PRKE! 



Greater computer power . . . fewer separate 
components . . . larger capability . . . simpler to 
operate . . .. modular maintenance . . . 

These are the unique benefits of the Quasar 
Data QPD-100 Floppy Disk Computer . . . plus 
unsurpassed reliability... plus 12-month warranty on all PC boards. 

Its highly reliable, double density drive is compact. 
Accepts both single AND double-sided disks. 

Upgradeable from the Z-80® microprocessor-based 
system to our 16 BIT microprocessor-based system by simply 
plugging in extra PC cards. Hard disk and multi-user 
systems available. 

As your requirements grow, your QDP-100 can grow 
to fit them. 

The Quasar Data QDP-100H is a larger version with 
6-megabyte capacity; includes one double-sided floppy 
and one 5 1 /* microwinchester hard disk. 

Both the Quasar Data QDP-100 and QDP-100H are 
fully compatible with all standard terminals. 

Phone or write for descriptive bulletin and specifica- 
tions. And ask for a demonstration. Dealer inquiries invited. 

QUASAR DATA'S QDP-100 
COMPUTER SYSTEM. 



4,695 



18" wide 
16 7 /8"deep 
11" high 



Complete systems available 



Z-80 is a trademark of Zilog Corp. 

CP/M and MP/M 

are trademarks of Digital Research Corp 



CBASIC is a trademark of Compiler Systems Inc. 




10330 Brecksville Road, Brecksville (Cleveland), Ohio 44141 

Phone: 216/526-0838 / 526-0839 
Telex: 241596 



Circle 324 on Inquiry card. 



Circle 196 on inquiry card. 








_ 


^OW 


PRICES, 






QUALITY 


AND FAST SERVICE 














LEO CAN F 


| 


MEMORY 




1-10 




11-49 




1702 A 




4.75 




4.50 




2708 




3.25 




3.05 




TMS2716 




6.50 




6.35 




2716 5 V 




6.50 




6.35 




2716-1 (350 ns) 




8.50 




8.25 




TMS2532 




17.00 




16.50 




2732 




17.00 




16.50 




2732A-3 (300ns) 




23.00 




21.50 




2732A-2 (200ns) 




30.00 




28.75 




2758 




8.00 




7.35 




2114 (450 ns) 




2.75 




2.55 




2114 (300 ns) 




3.00 




2.90 




2114 (200 ns) 




3.65 




3.50 




TMS4060-2 (200 


ns) 


2.50 




2.25 




4116 (200 ns) 




2.50 




2.35 




4116 (150 ns) 




3.00 




2.85 




6810 




4.25 




4.00 




6821 




5.75 




5.50 




6850 




5.25 




5.00 




8080A 




2.75 




2.50 




8085A 




8.75 




8.50 




8212 




2.50 




2.35 




8216 




2.50 




2.35 




8748 




55.00 




52.00 




TMS9900 




25.00 




22.00 




Z-80 CPU 




6.50 




6.25 




Z-80A CPU 




7.50, 




7.25 




SPECIAL 


4116 
8 for 


(200 ns 
19.00 ' 








LS PRODUCT 








LSOO 25 LS74 


.30 


LS158 


. .78 


LS244 


1.20 


LS02 25 LS85 


1.15 


LS161 


.90 


LS245 


1 20 


LS04 25 LS86 


.40 


LSI 63 


.90 


LS259 


1.75 


LSOfl 25 LS93 


.60 


LS164 


.85 


LS273 


1.35 


LSI0 25 LS95 


.70 


LS165 


.85 


LS283 


.95 


LS20 25 LS109 


.45 


LS174 


1 00 


LS367 


.65 


LS30 25 LS123 


.75 


LS175 


1 00 


LS368 


.65 


LS32 .30 LSI 38 


.75 


LS191 


1 00 


LS373 


1.40 


LS38 35 LS139 


.75 


LSI 93 


.85 


LS374 


1.40 


LS42 .75 LS151 


.75 


LS195 


.70 


LS377 


1 40 


LS51 30 LS153 


75 


LS221 


1.15 


LS390 


1.50 


LS54 30 LS155 


1.00 


LS240 


1.20 


LS393 


1.50 


LS73 40 LS157 


.75 


LS241 


1.20 


LS670 


1.85 


S PRODUCT 






CAN SUPp V 


S188 325 






TTL - CMOS 




S189 325 






SOCKETS 




S287 3.25 


7805 


.85 


CONNECTORS 


S387 325 


7812 


.85 


CAPACITORS 




S471 750 


7912 


95 


DIP SWITCHES 


S472 900 






DIODES 










TRANSISTORS 


CALL FOR VOLUME PRICING 
















LEO ELECTRON 


T 


(H~ 












8921 S. Sepulveda Sle 208 










Los Angeles, CA 90045 










213/641-3101 






WON THRU FRI 


800/421-2418 






8:00 


am to 5:00 


pm 


TERMS: 






POgTAfiF- 




CHECK, MONEY ORDER, VISA 








MASTERCARD. CALL FOR COD. 


ADD 2.00 Ground 


U.S. FUNDS ONLY 






ADD 5.00 Air 




Calif residents, add 6% lax 




UPS 






ALL MAJOR MANUFACTURERS. 




100% GUARANTEED. 




I 










Lm 



class name 



superclass 



instance variable names 



class messages and methods 



Circulartist 



LinkedList 



lastLink 



"none defined here" 



instance messages and methods 



external 

append: anObject | aSingleLink | 
self empty 

ifTrue: [ lastLink — SingleLink entry: anObject successor: nil. 

lastLink successor: lastLink. ] 
ifFalse: [ aSingleLink — SingleLink 

entry: anObject successor: lastLink successor. 
lastLink successor: aSingleLink. lastLink — aSingleLink. ]. 
count — count + I. 
Insert: anObject at: anlnteger | aSingleLink | 
self checklndex: anlnteger. 
aSingleLink — self linkAt: anlnteger - I . 
aSingleLink successor: 

(SingleLink entry: anObject successor: aSingleLink successor), 
count — count + I. 
removeAt: anlnteger | aSingleLink anObject | 
self checklndex: anlnteger. 
aSingleLink — self linkAt: anlnteger - 1 . 
anObject — aSingleLink successor entry, 
(count =1) 

ifTrue: [ lastLink — nil. ] 

ifFalse: [ aSingleLink successor: aSingleLink successor successor, 
(anlnteger = count) ifTrue: [ lastLink - aSingleLink. ]. ]. 
count ~- count - 1 . 
t anObject. 



internal 

Initialize 

flrstLInk 



super initialize. lastLink — nil. 
t lastLink successor. 
linkAt: anlnteger | | 

(anlnteger = count) | (anlnteger = 0) ifTrue: [ t lastLink ]. 
t super linkAt: anlnteger. 

Table 9: Class template for class CircularList. 



onOb|ect 



anObject 



anObject 



anObject 



listHead 

Figure 8: A doubly linked list. 



258 August 1981 © BYTE Publications Inc 



Circle 363 on inquiry card. 



The A2-3D1 

Graphics Family. . . 



Now for 
non-programmers! 





A2-3D1 Graphics Package A2-GE1 Graphics Edit 

$59.95 on disk (32K required) $34.95 on disk (48K and 
$49.95 on cassette (16K A2-3D1 required) 

required) A2-3D/A Saturn Navii 

A2-3D2 Enhancement $24.95 on disk (48K and 

$24.95 on disk (48K and A2-3D1 required) 

A2-3D1 required) 

$ 19.95 on cassette (32K and 

A2-3D1 required) 

For direct order, include $3 for UPS or $5 for first class mail delivery. 
Illinois residents add 5% sales tax. Visa and Master Card accepted. 



Running on the Apple II: 
A2-3D/A Saturn Navigator 

A2-GE1 Graphics Editor 

$34.95 on disk (48K and 
A2-3D1 required) 

A2-3D/A Saturn Navigator 

$24.95 on disk (48K and 
A2-3D1 required) 



professional 
3D and 2D 
graphics 
for the 
Apple II 

The A2-3D1 is the graphics utility you can 
depend on whether you're mapping a town, 
presenting charts at a business meeting, or 
animating games. 

Now this versatility is available for the non- > 
programmer with the A2-GE1 graphics editor 
and programmer. Create images as you view 
them. Scan them, animate them, combine 
them, or add text or labels. With a minimum 
of fuss, you can prepare all sorts of scientific, 
business, or educational presentations. 

Add the A2-3D2 enhancement package 
for color, and as a bonus you'll also be able 
to manipulate images independently of each 
other— as many different objects at once as 
your memory will accommodate. 

When it's time for some challenging and 
educational entertainment, run the A2-3D/A 
Saturn Navigator. You'll enjoy an adventurous 
flight to Saturn, enter its orbit, and rendezvous 
with an orbital space station that awaits your 
arrival. 

We've reached our goal of giving you the most 
sophisticated graphics utilities in the market- 
place . . . 

see them now at your dealer! 



&o[°>LOGIC 

Communications Corp. 



BoxV, Savoy, IL 61 874 
(217)359-8482 
Telex: 206995 



"Apple" is the registered trademark of Apple Computer Inc. 



class name 



superclass 



instance variable names 



class messages and methods 



DoublyLinkedList 



LinkedList 



listHead 



"none defined here" 



instance messages and methods 



external 

append: anObject | | self insert: anObject after: listHead predecessor. 

insert: anObject at: anlnteger | | 

self checklndex: anlnteger. 

self insert: anObject after: (self linkAt: anlnteger - 1 ). 
removeAt: anlnteger | aDoubleLink | 
self checklndex: anlnteger. 
aDoubleLink — self linkAt: anlnteger. 

aDoubleLink successor predecessor: aDoubleLink predecessor. 
aDoubleLink predecessor successor: aDoubleLink successor, 
t aDoubleLink entry. 

internal 
Initialize | | 

super initialize. 

listHead — DoubleLink entry: nil successor: nil predecessor: nil. 

listHead successor: listHead. listHead predecessor: listHead. 
flrstLInk | | t listHead successor. 
linkAt: anlnteger | aDoubleLink | 

(anlnteger = 0) iff rue: [ t listHead ]. 

(anlnteger < = (count/ 2)) ifTrue: [ t super linkAt: anlnteger]. 

aDoubleLink — listhead. 

(count - anlnteger + I) timesRepeat: 

[ aDoubleLink — aDoubleLink predecessor. ]. 

t aDoubleLink. 
Insert: anObject after: aDoubleLink 1 | aDoubleLink2 | 

aDoubleLink2 — DoubleLink entry: anObject 

successor: aDoubleLink! successor predecessor: aDoubleLink 1 . 

aDoubleLink! successor: aDoubleLink2. 

aDoubleLink2 successor predecessor: aDoubleLink2. 

Table 10: Class template for class DoublyLinkedList. 



Text continued from page 256: 

last link is the first link, and the 
predecessor of the first link is the last 
link. The class definition for a cir- 
cular, doubly linked list is given in 
table 10. 

Class DoublyLinkedList has an in- 
stance variable named listHead, 
which points to a special kind of link 
known as a list head. A list head is a 
link whose entry is unused. The idea 
is to keep the list head in the list so 
that even when there are no data 
items in the list, at least one link is 
present. Having a link present at all 
times simplifies the implementation 
of some linked list operations. A list 



head can be used in the implementa- 
tion of a singly linked list, but it is 
especially convenient in the im- 
plementation of a circular doubly 
linked list. In a circular doubly linked 
list, the list head successor points to 
the first link in the list (excluding the 
list head itself), or to itself if the list is 
empty (see figure 9). The list head 
predecessor points to the last link in 
the list (excluding the list head itself), 
or to itself if the list is empty. In class 
DoublyLinkedList, the internal 
message initialize sets listHead to an 
instance of DoubleLink whose entry is 
nil and whose successor and 
predecessor are both that same in- 

















N 


























" 









Figure 9: An empty doubly linked list. 



stance (ie: the double link is made cir- 
cular). The message firstLink has been 
modified to return the list head suc- 
cessor. 

Because a doubly linked list is com- 
posed of a sequence of double links, it 
is possible to traverse the list in both 
directions, forward and backward, 
with equal facility. The internal 
message linkAt: in class 
DoublyLinkedList has been modified 
to access objects past the middle of 
the list by starting from the rear and 
traversing toward the front. This im- 
proves the performance of the access 
message at:. 

Inserting an item in a doubly linked 
list is similar to inserting an item in a 
singly linked list. We first create a 
new link for the item. Then we find 
the link that this new link is to follow, 
set the successor and predecessor 
pointers of the new link, and adjust 
both the successor pointer of the link 
that precedes the new link and the 
predecessor pointer of the link that 
follows the new link (see figure 10a). 
If we are using a circular list with a 
list head, we don't have to consider 
any exceptional cases. Removing an 
item from a list is an analogous pro- 
cess (see figure 10b). The details of 
these procedures are demonstrated in 
the methods for the messages 
append:, insert:, and removeAt:. 

The Stack 

The next data structure that we will 
look at is the stack (see figure 11). A 
stack is a linear list of items that is 
accessed in a very restricted way. In 
fact, only one side of a stack, the top, 
can be accessed. The bottom of the 
stack cannot be accessed. These 
names are useful because most stack 
diagrams list their items vertically, 
with the accessible end higher. The 
item at the accessible end of the stack 

Text continued on page 264 



260 August 1981 © BYTE Publications Inc 



PrintersPlus 

...computers, peripherals, 
accessories and supplies! 




APPLE ACCESSORIES 

LOBO Disk II Add-On 419. 

SUPERTERM 80 Col. Card 329. 

Z80 Soft Card 295. 

H.S. Serial Card 1 79. 

COMM. Card 1 79. 

HAYES Micromodem 319. 

PARALLEL Printer Card 1 49. 

1 6K Ram Card 1 89. 

GPIB IEEEE-488 Card 259. 

VISTA A40 Disk II Add-On 349. 

VISTA A80 Disk II Add-On 529. 

VISTA Al 60 Disk II Add-On 799. 

VISTA A800 Dbl. Den. 8" Con. . . 529. 

SOFTWARE 

V1S1CALC 119.00 

DESKTOP Plan II 169.00 

DB MASTER 209.00 

ADDRESS Book 40.00 

SGPER Text II 125.00 

CCA Data Mgmt 85.00 

RIBBONS 

NEC * 77.00/Doz. 

QUME 45.00/Doz. 

DIABLO 66.00/Doz. 

ANADEX 1 35.00/6 ea. 

TRITEL 95.00/Doz. 

TI/DEC/TTY 45.00/Doz. 

EPSON 13.95/ea. 

MPI/Axiom/Base 2 10.00/ea. 





MAGNETIC MEDIA 

Premium Quality At Bargain Prices 

5'A" Diskettes, all Formats 

100% Certified with hub rings, box of 10 

Single sided, single density 26.50 

Single sided, double density 29.50 

Double sided, double density 38.50 

8" DISKETTES, ALL FORMATS 
100% CERTIFIED 

Single sided, single density 29.50 

SSSD Error Free 34.50 

Single sided, double density 39.50 

Double sided, double density 49.50 



Diablo 630 RO $2,395. 

Diablo 1 640 RO 2,795. 

Diablo 1 650 RO 3,095. 

C.ltoh Starwriter RO 1 ,695. 

Tl 810 RO 1,695. 

Tl 820 RO 1,795. 

Anadex DP9500/9501 1 ,345. 

EP50N5 

Complete Stock of MX-80, MX-80 F/T 

MX-100 Printers, Graphics Chip Sets 

Cards and Cables 



^ v - NOVELL IMAGE 800 

^ 1 50 CPS Heavy Duty Matrix 
15" wide carriage, expanded, compressed and 
double density "correspondence quality" 
printing at 80, 96 and 136 columns, true 
descenders, underlining, superscripts, 
subscripts. (Jp to 3K Buffer, optional character 
set and graphics option. 
List $1,395 $1,295.00 

PRINT ELEMENTS 

NEC Thimbles $14.95 

Plastic Daisy Wheels 

for Qume. Diablo, Starwriter 6.00 

Metal Daisy Wheels 59.00 

IBM Selectric Elements 19.00 




MODEMS 

(IDS 103 LP, direct $ 169. 

103 JLP Auto Answer 219. 

NOVATION CAT, acoustic 159. 

D-CAT, direct 169. 

Auto Cat 219. 

Apple Cat 309. 

LEXICON LX- 1 1 , acoustic 147. 

HAYES Micromodem, SI 00 349. 

VIDEO MONITORS 

Sanyo 9" B/W $ 169. 

NEC 12" Green 229. 

Amdek 1 2" B/W (Leedex) 135. 

Amdek 1 3" Color 399. 

VIDEO TERMINALS 

Ampex Dialog 80 $995. 

Ampex Dialog 30 795. 

Televideo 920C 845. 

Televideo 950 995. 

Soroc IQ 120 795. 

Soroc IQ 1 40 1 , 1 95. 

FLOPPY DRIVES 

1 — SA 400 Case, power $399. 

1 — SA 800/801 Case, power 995. 

2-SA 800/801 Case, power 1,495. 

2-SA 850/851 Case, power 1,995. 




MPI 88 G Matrix 

High resolution dot-addressable graphics for 
Apple. Enhanced "correspondence quality" 
printing. Tractor and Friction feed. Serial and 
Parallel Input. 100 cps Bidirectional printing. 80. 
96, and 132 column widths! 
List $799.00 $599.00 

Apple II I/O Card $ 1 10.00 

PET/IEEE I/O Card 55.00 

Single Sheet Feeder 25.00 

QT Cover 25.00 




NEC SPINWRITERS 

5510/5530 RO $2,595. 

5520 KSR 2,895. 



<*> 



^ 



HBBSDESCESi, j 





OLYMPIAES100RO 

Letter quality, Daisy wheel printer/typewriter 
interfaces to Apple, Atari, NEC, TRS80 and 
RS232 Serial ports. A truly cost effective letter 
quality printer that functions as a typewriter. 

List $1690 $1395.00 



TO PLACE YOUR ORDER CALL: 

TELEPHONE TELEX 

(714)744-7314 697120 

or write to: 

PAlOMAft 

Computer Products 

910-105 W. San Marcos Blvd., San Marcos, CA 92069 

TERMS OF SALE: Cash, check, money order, bank wire transfer, 
credit card or purchase orders from qualified firms and 
institutions. Please include telephone number with order and 
expiration date on credit card orders. California residents add 6% 
sales tax. Advertised prices are for prepaid orders F.O.B. shipping 
point. Add 3% for shipping in U.S. Pricing and availability subject to 
change without notice. _ . . _ rt _ , 

Circle 297 on inquiry card. 




BEING OVERCHARGED! 




DON'T 



Pay Credit Card Surcharges 
Pay a U.P.S. C.O.D. "Fee" 
Even Pay for the Call! 



DO CALL OMEGA TOLL FREE! 




CABLES 



Qcommodore 

4032 COMPUTER $1061 

(8032 Add $160) 
4040 DISK $1061 

4022 PRINTER $ 651 

CBM-IEEE CABLE $ 33 
IEEE-IEEE CABLE $ 41 



COMPLETE SYSTEM = $2841 



WE 

1-800-235-3581 



1-800-556-7586 



CALL OMEGA AND FIND OUT WHY WE ARE AMERICA'S FASTEST 
GROWING COMPUTER SALES COMPANY! 

Omega sales company 



■.■:;: ; :::,:: 





DIABLO 
$2099 



EPSON MX-80 
$ 479 




ATARI 800 32K 



$ 779 



Tractor option 
$ 245 



NEC 12" MONITOR 
$ 229 





PRICES ARE SUBJECT TO CHANGE WITHOUT NOTICE. 



DIABLO 630 $2Q9S\ 

INTERTEC SUPERBRAIN 64K RAM $2799 

QD SUPERBRAIN $3195 

NEC 551 SPINWRITER $2495 

NEC 5530 SPINWRITER $2495 

OKIDATA MiCROLlNE-80 $ 399 

OKIDATA MICROLINE-82 $ 529 

OKIDATA MJCROLINE-83 $ 799 

APPLE II PLUS 48K $1189 

APPLE DISK w/3.3 DOS Controller $ 545 

APPLE DISK w/o Controller $ 435 

BASE II PRINTER $ 599 

HAZELTINE1420 $799 

NORTHSTAR HORIZON II 32K QD $2975 

ANADEX DP-9500 $1295 

TELEVIDEO 912C $ 669 

TELEVIDEO 920C $ 729 

TELEVIDEO 950 $ 959 

CBM 8032 COMPUTER $1225 

CBM 8050 DISK DRIVE $1449 

CBM 4032 COMPUTER $1090 

CBM 4040 DISK DRIVE $1090 

CBM 4022 $ 679 

CBM VIC-20 $ 289 

CBMC2N $ 85 

RADIO SHACK II 64K $3245 

RADIO SHACK III 16K $ 839 

LEEDEX/AMDEK 100 $ 139 

LEEDEX/AMDEK 100G $ 169 

LEEDEX/AMDEK COLOR-1 13" Color Monitor $ 349 

MICROTEK 16K RAMBOARD for Atari $99.95 

MICROTEK 32K $ 165 

ATARI 400 16K $ 349 

ATARI 825 PRINTER $ 619 

ATARI 850 INTERFACE $ 139 

or both together $ 749 

ATARI 810 DISK DRIVE $ 449 

ATARI 800 32K $769 

Call for price list of ATARI software 

NEC 12" MONITOR $ 229 



No Surcharge for Credit Cards Orders < 
AJI Equipment Factory Fresh With MFT. Warranty 



We Accept C.O.D.'s 

Stock Shipments Same Day or Next 



w 

1-800-835-3581 

OMEGA SALES CO. 

3533 Old Conejo Rd. #102 

Newbury Park, CA 91320 

1-805-499-3678 

CA. TOLL FREE 1-800-322-1873 

Circle 277 on inquiry card. 



OMEGA 

SALES 

CO. 



1-800-556-7586 



OMEGA SALES CO. 

12 Meeting St. 

Cumberland, Rl 02864 

1-401-722-1027 



MEGA SALES COMPANY 



Circle 57 on inquiry card. 



THE FUTURE 

APPLE II PLUS/HI: 

1 6K RAM - 1 1 49: 32K RAM • 1 200: 

48K RAM - 1 250: Disk ll-Drive w/Controller - 549: 

Disk M-Drive Only - 479: Silentype Printer - 549: 

RF Modulator - 29: Applepost • 49: 

Dan Paymar Lower Case Adapt. - 49: Applepiot - 69: 

Dow Jones Portfolio Eval. - 49: 

Personal Finance Mgr. - 75: Apple Taxplanner -119: 

Apple Ill/Info Analyst Package (3 96K RAM - 4199: 

128K RAM -4499: 

A complete line of other Apple Accessories & 

software - SCALL FOR PRICE 

ATARI: 

400-8K RAM - 399: 800-1 6K RAM - 799: 

8 1 0-Disk Drive - 499: 8 1 5-Dual Disk Drives - 1199: 

820-40C Printer - 275: 822-40C Therm Printer - 399: 

825-80C Printer - 699: 830-Acoustic Modem - 1 75: 

850-lnterface Mod. - 149: 410-Recorder - 59: 

32K RAMCARD - SCALL Atari Light Pen - 75: 

Paddles - 20: Joysticks - 20: 

A complete line of other Atari Accessories & 

software - $CALL FOR PRICE 

COMMODORE: 

VIC-20. SCALL: #2001 - $CALL: #4001 - $CALL: 
#4016 - $CALL: #4032 - 1200: #8032 - 1725: 
#4022 Printer - 749: #4040 Dual Drives - 1 149: 
#8050 Dual Drives - 1 649: #801 Modem - SCALL 
C2N Recorder - 75: 

A complete line of other Commodore Accessories & 
software - $CALL FOR PRICE 



OTHERS: 

PRINTERS: Epson MX70 - 399...MX80 - 599... 
MPI 88G - 699. ..MPI 99G - SCALL 
Centronics #737 - $CALL...r779 - SCALL 
AnadexDP9500- 1 349...DP9501 - 1349 
Qume Sprint 5/45 - 2699 
NEC Spinwriter #5510 - 2499 
#5520 - 2849. ..#5530 - 2499 
IDS Paper Tigers - SCALL 

DISK DRIVES: Shugart, Micro Sci, 

Lobo - SCALL FOR PRICES 

MONITORS: Video 100, 100G, 100/80, 

Color - SCALL. ..NEC 1 2" GRN - 259 
Sanyo 9" B&W - 199.. .12" B&W - 299 
12"GRN - 324 

MODEMS: DC Hayes Micromodem - 324 

ACCESSORIES: Microsoft Z80 softcard - 299 
16K RAM CARD - 194 

HARDWARE: Mountain Products - SCALL FOR PRICES 
SOFTWARE: Insoft Accountant, Controller, Cashier, 
Visicalc (Apple, Atari, CBMI Supertext II 
W/P, Apple Wordstar W/P - SCALL FOR 
PRICES 



ORDER INFO: 

Min. order $100.00 - Money Orders, Cashiers/certified 
checks or bank drafts welcomed. VISA & Mastercard 
orders add 2%. ..American Exp & Diners Club add 4%. 
Personal checks accepted w/25 days for clearance. Add 
3% for shipping in the U.S.A. Prices subject to change 
without prior notice and Illinois residents must add 6% 
for sales tax. Please include phone numbers with orders 
and expiration date on credit card orders. No COD's. 

Special discounts for multiple and combination orders 
placed with the statement "Praise the Lord" preceding 
the order placement. The above prices apply to mail 
orders only. Send inquiries to: 

CMS ENTERPRISES 

P.O. BOX 1740 
CHICAGO, IL - 60690 

(31^2) 853-1184 

A& '""HJ DINERS 



L 



264 August 1981 © BYTE Publications Inc 



J 



(10a) 





anObject 






entry 


■ 




^ 


successor 








predecessor 








aob) 



anObject 



anObject 



entry 



predecessor 



anObject 



i* 



Figure 10: The insertion and deletion of data items from a doubly linked list. In both in- 
sertion (10a) and deletion (10b) processes, the dotted lines represent the links existing 
before the process, while the solid lines represent the links existing after the process. 



Text continued from page 260: 

is called the top item. A new item is 
added to the accessible end, thereby 
making it the new top item. This is 
called pushing an item onto a stack. 
Only the top item can be removed, or 
popped, from a stack. By adding and 
removing in this fashion (pushing and 
popping), we are able to access items 
in a last-in-first-out manner — that is, 
the last item pushed on a stack is the 
first item to be popped off the stack. 
Because of this, a stack is often called 
a LIFO (last-in-first-out). 

Many examples of collecting and 
accessing in stack fashion exist out- 
side the realm of programming. A 
pile of trays in a cafeteria rack is often 
used in this way. The same can be 
true of papers piled on a desk. In pro- 
gramming systems, a number of 
algorithms call for the use of a stack. 
For example, arithmetic expressions 
expressed in prefix or postfix notation 
can be evaluated using a stack to keep 
track of partial results. 

The operations that we want to 
perform on a stack include: 



• determine the number of items on 
the stack 

• determine whether or not the stack 
is empty 

• push an item onto the stack 

• pop an item off the stack 

• access the top item on the stack 

It is easy to implement a stack using a 
linear list as the basic storage 
mechanism. Since we have several 
kinds of linear lists, it is possible to 
have several different stack im- 
plementations. Table 11 gives the 
definition of class Stack, which serves 
as a superclass for subsequent stack 
classes. Each kind of stack has a buf- 
fer which is a linear list, either se- 
quential or linked. The messages 
count and empty are implemented 
using the corresponding messages of 
the linear list. The message empty- 
Check, which sends an error message 
if the stack is empty, will be used in 
the implementations of the messages 
pop and top. 

The Sequential Stack 

The first stack implementation we 




Computer experts 
(the pros) usually have big 
computer experience. 
That's why when they shop 
system software for Z80 
micros, they look for 
the big system features 
they're used to. And that's 
why they like Multi-User 
OASIS. You will too. 



DATA INTEGRITY: FILE & 
AUTOMATIC RECORD LOCKING 



The biggest challenge 
for any multi-user system 
is co-ordinating requests 
from several users 
to change the same record 
at the same time. 

Without proper 
co-ordination, the 
confusion and problems 
of inaccurate or even 
destroyed data can be 
staggering. 

Our File and Automatic 
Record Locking features 
solve these problems. 

For example: normally 
all users can view a 
particular record at the 
same time. But, if that 
record is being updated 
by one user, automatic 
record locking will deny all 
other users access to the 
record until the up-date is 
completed. So records 
are always accurate, 
up-to-date and integrity 
is assured. 

Pros demand file & 
automatic record locking. 
OASIS has it. 



SYSTEM SECURITY: 
LOGON, PASSWORD 
& USER ACCOUNTING 



Controlling who gets on 
your system and what they 
do once they're on it is the 
essence of system security. 

Circle 309 on inquiry card. 



(THEN COMPARE.) 



Without this control, 
unauthorized users could 
access your programs and 
data and do what they like. 
A frightening prospect 
isn't it? 

And multi-users 
can multiply the problem. 

But with the Logon, 
Password and Privilege 



Level features of Multi-User 
OASIS, a system manager 
can specify for each user 
which programs and files 
may be accessed — 
and forwhat purpose. 

Security is further 
enhanced by User 
Accounting — a feature that 
lets you keep a history 
of which user has been 
logged on, when and 
for how long. 

Pros insist on these 
security features. 
OASIS has them. 



EFFICIENCY: 
RE-ENTRANT BASIC 



A multi-user system 
is often not even practical 
on computers limited 
to 64K memory. 

OASIS Re-entrant 
BASIC makes it practical. 

How? 

Because all users use a 
single run-time BASIC 
module, to execute their 
compiled programs, less 



memory is needed. Even 
if you have more than 64K, 
your pay-off is cost saving 
and more efficient use 
of all the memory you have 
available — because it 
services more users. 

Sound like a pro feature? 
It is. And OASIS has it. 



AND LOTS MORE... 



Multi-UserOASIS supports 
as many as 1 6 terminals 
and can run in as little as 
56K memory. Or, with 
bank switching, as much 
as 784K. 

Multi-Tasking lets each 
user run more than one 
job at the same time. 

And there's our BASIC- 
a compiler, interpreter and 
debugger all in one. 
An OASIS exclusive. 

Still more: Editor; Hard 
& Floppy Disk Support; 
Keyed (ISAM), Direct & 
Sequential Files; Mail-Box; 
Scheduler; Spooler; 
all from OASIS. 

Our documentation is 
recognized as some of the 
best, most extensive, in the 
industry. And, of course, 
there's plenty of 
application software. 

Put it all together and it's 
easy to see why the real 
pros like OASIS. Join them. 
Send your ordertoday. 




OASIS IS AVAILABLE FOR 

SYSTEMS: Alios: Compucorp: Cromemco; 
Delta Products: Digital Group: Digital 
Microsystems: Dynabyte: Godbout: IBC. 
Index: Intersystems: North Star: Onyx: 
SD Systems: TRS 80 Mod II: Vector 
Graphic: Vorimex 

CONTROLLERS: Bell Controls; Cameo: 
Corvus: Konan; Micromation: Micropohs: 
Tarbell: Teletek: Thinkertoys: X Comp. 

Write for comrjlete. 

free Application Soflware Directory 



PLEASE SENI 

Product 


)ME: 

Price 
with 

Manual 


Manual 
Only 


OPERATING SYSTEM 

(Includes: 
EXEC Language; 
File Management; 
User Accounting; 
Device Drivers; 
Print Spocle - ; 
General Text 
Editor; etc.) 
SINGLE-USER 
MULTI-USER 


SI 50 
350 


S17.50 
17,50 


BASIC COMPILER/ 
INTERPRETER/DEBUGGER 


100 


15.00 


RE-ENTRANT BASIC 

COMPILER/INTERPRETER/ 

DEBUGGER 


150 


15.00 


DEVELOPMENT PACKAGE 

(Macro Assembler; 
Linkage Editor; 
Debugger) 


150 


25.00 


TEXT EDITOR & 
SCRIPT PROCESSOR 


150 


15.00 


DIAGNOSTIC & 
CONVERSION UTILITIES 

(Memory Test; 
Assembly Language; 
Converters; File 
Recovery; Disk Test: 
File Copy from 
other OS; etc.) 


100 


15.00 


COMMUNICATIONS 
PACKAGE 

(Terminal Emulator; 
File Send & Receive) 


100 


1500 


PACKAGE PRICE 

(All of Above) 

SINGLE-USER 

MULTI-USER 


500 
850 


60.00 
6000 


FILE SORT 


100 


1500 


COBOL-ANSI 74 


750 


35.00 



Order OASIS from: 

Phase One Systems, Inc. 

7700 Edgewater Drive, Suite 830 

Oakland, CA 94621 

Telephone (415) 562-8085 
TWX 910-366-7139 

NAME 



STREET (NO BOX 


=) 


CITY 




STATE 
AMOUNTS 


ZIP 



MAKES MICROS RUN LIKE MINIS 



(Attach system description; 

add S3 for shipping; 

California residents add sales tax) 

D Check enclosed D VISA 

□ UPS C.O.D. □ Mastercharge 

Card Number 

Expiration Date 

Signature 



BYTE August 1981 265 



Circle 400 on inquiry card. 



Here are the 

software Tools 

you have been 

looking for! 

1. Screen Management System 

Professional Looking 
Screens as simple as A, B 

A. Create or update Screens with Mask 
Builder 

'Uses Direct Cursor controls 
'Define field attributes 
"Save Screen Masks on Disk 
•print out Masks for Program 
Documentation 

B. use simple calls to interface CRT 
Driver to your programs 

•Built-in buffer stores mask and field 
attributes 

•Display and accept data by field 
number 

•Forward and Back Page through 
Screens 

•Forward and Back Tab through Fields 
•Dynamically protect fields 
•program definable keys 
Wo Weed to use 
INPUT or print statements 
Available for CP/M, TRS-80 (I&id, Apple II 
Microsoft's S-BASIC 

BASIC-80 CBASIC 

COBOL and 

M80 more 

2. Which console message do 
you prefer when your diskette 
or directory sets full? 

A. DISK WRITE ERROR: (Using PIP) 

B. Mount Next Diskette— Hit Carriage 
Return 

if you like answer B, you will love backup 
"Backup your hard disk to any 

combination or single or double 

density diskettes 
•Backup from double sided, double 

density to single or double density 

3. Do you need to backup files 
larger than a single diskette? 

You can with our Dump-Restore program 

•Each diskette is sequentially labeled 
so your file cannot be restored out 
of sequence 

4. do you need a simple file 
transfer program? 

we think this is it. 

•Transfer your programs and data 
files between computers over serial 
I/O port 

•Bidirectional transfer with error 
checking and retries 

"Easy to interface 

COMING ATTRACTIONS 

CP/M Super utility 
S-100 Single Board computer 
"Priced under 1K *64K Memory 
"Z-80A (4Mhz) or Z-80B (6Mhz) 
"DD.DS 8" Disk controller 
"2 Serial— 4 Parallel Ports 
•Interrupt Driven CP/M Available 
Screen Management System 195.00 

BACKUP Utility 59.95 

SAVE-RESTORE Utility 49.95 

TRANSFER Utility 39.95 

OEM and Dealer inquiries are welcome 

WESTERN BUSINESS 
ASSOCIATES 

1300 E. Shaw Ave., Suite 164 

Fresno, CA 93710 

Phone (209) 224-0520 

'Requires Softcard 
CP/M is a trademark of Digital Research, Inc. 

z-80 is a trademark of zilos Inc. 

Apple is a trademark of Apple Computer Inc. 

TRS-80 is a trademark of Tandy Corp. 

Softcard is a trademark of Microsoft 

We accept Visa and Mastercard 



top of stock 



stack of 
) n data 
tems 







\ push 
























■ 







bottom of stack 



Figure 11: A stack, shown in figure 11a, is a linear collection of objects arranged so that 
items can be added to or removed from the stack only at the top end of the stack. Figure 
lib shows an item being added, or pushed, to the stack. Figure lie shows an item being 
taken, or popped, from the stack. 



will consider is the sequential stack. 
A sequential stack is simply a stack 
implemented using a sequential list. 
The definition of class SequentialStack 
is given in table 12. An instance of 
SequentialStack is created by sending 
class SequentialStack the message 
size:, whose parameter is an integer 
indicating the estimated maximum 
size of the stack. For example: 

| stack | 

stack — SequentialStack size: 20. 

creates an instance of SequentialStack 
with space initially for twenty items. 
This size is expanded when necessary 
since the sequential list used as a buf- 
fer is expanded when required. 

The message push: is implemented 
by appending to the buffer the object 
passed as a parameter. As we have 
noted, this is an easy operation for se- 
quential lists to perform, except when 
the list overflows and requires expan- 
sion. The message pop is im- 
plemented by first checking to see if 
the buffer is empty, in which case an 
error is reported. Otherwise, the last 
item from the buffer is removed. 



Again, we should recall that this is an 
easy operation for a sequential list to 
perform. Similarly, in order to access 
the top of the stack (using the 
message top), we check to see that the 
stack is not empty, in which case we 
return (without removing) the last 
item in the buffer. 

The following is an example using 
class SequentialStack: 

| stack a b c | 

stack — SequentialStack size: 10. 

a — (Card suit: 'heart' rank: 5). 

b — (Card suit: 'heart' rank: 6). 

c — (Card suit: 'heart' rank: 7). 

stack push: a. 

stack push: b. 

stack push: c. 

a — stack pop. 

b — stack pop. 

c — stack pop. 

This example creates an instance of 
class SequentialStack that initially has 
space for ten objects. The variables a, 
b, and c are assigned to instances of 
class Card with ranks 5, 6, and 7, 
respectively. These instances are 
pushed on the stack and then popped 



266 August 1981 © BYTE Publications Inc 



QUALITY DISK SOFTWARE 

BACKED BY ON-GOING APPLICATIONS SUPPORT 



PLE 



HOME FINANCE PAK I: Entire Series $49.95 ® © 

CHECK REGISTER AND BUDGET: This comprehensive CHECKING ACCOUNT 
MANAGEMENT SYSTEM not only keeps complete records, it also gives you 
the analysis and control tools you need to actively manage your account. 
The system provides routines for BUDGETING INCOME AND EXPENSE. AUTO- 
MATIC CHECK SEARCH, and BANK STATEMENT RECONCILING. CRT or printer 
reports are produced for ACTUAL EXPENSE vs BUDGET. CHECK SEARCH 
DISPLAY RECONCILIATION REPORT and CHECK REGISTER DISPLAY by month 
Check entry is prompted by user-defined menus of standard purposes and 
recipient codes, speeding data entry and reducing disk storage and 
retrieval time. Six fields of data are stored for each check: amount, check 
no., date, purpose, recipient and TAX DEDUCTIBLE REMINDER. CHECK SEARCH 
routines allow searching on any of these data fields. Up to 100 checks /mo, 
storage S39.95 

SAVINGS: Account management system for up to 20 separate Savings 
accounts. Organizes, files and displays deposits, withdrawals and interest 
earned for each account $14.95 

CREDIT CARD: Get Control of your credit cards with this program. Organizes, 
stores and displays purchases, payments and service charges for up to 20 
separate cards or bank loans S14.95 

UNIVERSAL COMPUTING MACHINE: $49.95 ® 

A user programmable computing system structured around a 50 row x 50 
column table. User defines row and column names and equations forming a 
unique computing machine. Table elements can be multiplied, divided, 
subtracted or added to any other element. Hundreds of unigue computing 
machines can be defined, used, stored, and recalled, for later use. Excellent 
for sales forecasts, budgets, inventory lists, income statements, production 
planning, project cost estimates-in short for any planning, analysis or 
reporting problem that can by solved with a table. 

COLOR CALENDAR: $29.95® 

Got a busy calendar? Organize it with Color Calendar. Whether it's 
birthdays, appointments, business meetings or a regular office schedule, 
this program is the perfect way to schedule your activities. 
The calendar display is a beautiful HI-RES color graphics calendar of the 
selected month with each scheduled day highlighted in color. Using the 
daily schedule, you can review any day of the month and schedule an event 
or activity in any one of 20 time slots from 8:00 A.M. to 5:30 P.M. 

BUSINESS SOFTWARE: Entire Series $159.95® © 

MICR0ACC0UNTANT: The ideal accounting system for small businesses. 

Based on classic T-accounts and double-entry booking, this efficient 

program provides ajournal for recording posting and reviewing up to 1.000 

transactions per month to any one of 300 accounts. The program produces 

CRT and printer reports covering: 

TRANSACTION JOURNAL BALANCE SHEET 

ACCOUNT LEDGERS INCOME AND EXPENSE STATEMENT 

Includes a short primer on Financial Accounting. (48K) S49.95 

UNIVERSAL BUSINESS MACHINE: This program is designed to SIMPLIFY and 
SAVE TIME for the serious businessman who must periodically Analyze. 
Planand Estimate. The program was created using our Universal Computing 
Machine and it is programmed to provide the following planning and 
forecasting tools. 

CASH FLOW ANALYSIS SALES FORECASTER 

PR0F0RMA PROFIT & LOSS SOURCE AND USE OF FUNDS 

PR0F0RMA BALANCE SHEET JOB COST ESTIMATOR 

REAL ESTATE INVESTMENT INVENTORY ANALYSIS 

Price, including a copy of the Universal Computing Machine .... S89.95 

BUSINESS CHECK REGISTER AND BUDGET: Our Check Register and Budget 
programs expanded to include up to 50 budgetable items and up to 400 
checks per month. Includes bank statement reconciling and automatic 
check search (48K) S49.95 

ELECTRONICS SERIES VOL I & II: Entire Series $259.95 

LOGIC SIMULATOR: SAVE TIME AND MONEY. Simulate your digital logic 
circuits before you build them. CMOS. TTL, or whatever, if it's digital logic, 
this program can handle it. The program is an interactive, menu driven, 
full-fledged logic simulator capable of simulating the bit-time response of a 
logic network to user-specified input patterns. It will handle up to 1000 
gates, including NANDS. N0RS. INVERTERS. FLIP-FLOPS. SHIFT REGISTERS. 
COUNTERS and user-defined MACROS, up to 40 user-defined random, or 
binary input patterns. Accepts network descriptions from keyboard or from 
LOGIC DESIGNER for simulation $159.95 (A)© 



BHHHHi 



LOGIC DESIGNER: Interactive HI-RES graphics program lor designing digital 
logic systems. Draw directly on the screen up to 10 different gate types 
including NAND. NOR. INVERTER. EX-0R. T-FL0P. JK-FL0P. D-FL0P, RS-FL0P. 4 BIT 
COUNTER and N-BIT SHIFT REGISTER. User interconnects gates using line 
graphics commands. Network descriptions for LOGIC SIMULATOR generated 
simultaneously with the CRT diagram being drawn $159.95 (/J) 

MANUAL AND DEMO DISK: Instruction Manual and demo disk illustrating 
capabilities of both program (s) S29.95 (T)(f) 

ELECTRONIC SERIES VOL III & IV: Entire Series $259.95 

CIRCUIT SIMULATOR: Tired of trial & error circuit design? Simulate & debug 
your designs before you build them! With CIRCUIT SIMULATOR you build a 
model of your circuit using RESISTORS. CAPACITORS. INDUCTORS, TRANSISTORS. 
DIODES. VOLTAGE and CURRENT SOURCES and simulate the waveform response 
to inputs such as PULSES. SINUSOIDS. SAWT00THS. etc. . .all fully programmable. 
The output is displayed as an OSCILLOSCOPE-STYLE PLOT of the selected 
waveforms (Apple only) or as a printed table of voltage vs time. Handles up to 
200 notes and up to 20 sources. Requires 48 RAM $159.95 ,(T\ (j) 

CIRCUIT DESIGNER: Interactive HI-RES graphics program for designing electronic 
circuits. Draw directly on the screen up to 10 different component types, 
including those referenced above. Components interconnect list for CIRCUIT 
SIMULATOR generated automatically. Requires $159.95 

MATHEMATICS SERIES: Entire Series $49.95 

STATISTICAL ANALYSIS I: This menu driven program performs LINEAR 
REGRESSION analysis, determines the mean, standard deviation and plots 
the frequency distribution of user-supplied data sets. Printer, Disk, I/O 
routines $19.95 

NUMERICAL ANALYSIS: HI-RES 2-Dimensional plot of any function. Automatic 
scaling. At your option, the program will plot the function, plot the 
INTEGRAL, plot the DERIVATIVE, determine the ROOTS. MAXIMA. MINIMA. 
INTEGRAL VALUE $19.95 

MATRIX: A general purpose, menu driven program for determining the 
INVERSE and DETERMINANT of any matrix, as well as the SOLUTION to any set 
of SIMULTANEOUS LINEAR EQUATIONS $19.95 

3-D SURFACE PLOTTER: Explore the ELEGANCE and BEAUTY of MATHEMATICS 

by creating HI-RES PLOTS of 3-dimensional surfaces from any 3-variable 
equation. Disk save and recall routines for plots. Menu driven to vary 
surface parameters. Hidden line or transparent plotting $19.95 

ACTION ADVENTURE GAMES: Entire Series $29.95 ® 

RED BARON: Can you outfly the RED BARON? This fast action game simulates 
a machine-gun DOGFIGHT between your WORLD WAR I BI-PLANE and the 
baron's. You can LOOP. DIVE. BANK or CLIMB-and so can the BARON. In HI-RES 
graphics plus sound $14.95 

BATTLE OF MIDWAY: You are in command of the U.S.S. HORNETS' DIVE- 
BOMBER squadron. Your targets are the Aircraft carriers, Akagi, Soryu and 
Kaga. You must fly your way through ZEROS and AA FIRE to make your 
DIVE-BOMB run. In HI-RES graphics plus sound '. . S14.95 

SUB ATTACK: It's April 1943. The enemy convoy is headed for the CONTROL 
SEA. Your sub, the MORAY, has just sighted the CARRIERS and BATTLESHIPS' 
Easy pickings. But watch out for the DESTROYERS -they're fast and deadly. 
In HI-RES graphics plus sound S14.95 

FREE CATALOG-AII programs are supplied on disk and run on Apple II w/Disk 
& Applesoft ROM Card & TRS-80 Level II and require 32K RAM unless 
otherwise noted. Detailed instructions included. Orders shipped within 5 
days. Card users include card number. Add $1.50 postage and handling 
with each order. California residents add 6'/?% sales tax. Foreign orders add 
$5.00 postage and handling. 

^^^^ SPECTRUM SOFTWARE 

142 Carlow, P.O. Box 2084 
Sunnyvale, CA 94087 



FOR PHONE ORDERS: [408) 738-4387 
DEALER INQUIRIES INVITED. 



Circle 358 on Inquiry card. 



BYTE August 1981 267 



Circle 47 on inquiry card. 



INTRODUCTORY OFFER! 

Turn your Micro-Computer into a Mini-Computer. 
Try the world's #1 programming language-COBOL.' 
Finally at a price you can afford and with no riskl 

Introducing... 

N PS-MICRO-COBOL 

This is the Naval Post Graduate School Cobol 
that you've heard so much about. Designed to 
pass the stringent government Hypo-COBOL 
tests used by GSA in their Compiler Certification 
Program. This is the first public release of 
version 2.1. This is an elaborate ANSI-COBOL 
subset. Comes complete with users manual in 
DeLuxe three-ring binder. 

Perfect for learning COBOL. 

Perfect for teaching COBOL 

FREE sample programs included 

Runs in 24K 

Requires 8080, Z-80®, or 8085 and 
standard CP/M® system 

• Provided on standard 8" disk or 
Northstar Double Density CP/M 5" 

Only $69.95! 
FREE ALGOL INCLUDED! 

free BONUS. All purchasers receive a 
free copy of NPS-ALCOL at no extra 
cost. A favorite language in Europe, 
ALGOL Is the original structured lang- 
uage. Comes with FREE sample programs. 

MONEY-BACK GUARANTEE. If you're not 
completely satisfied with this software. You 
may return it within fifteen days for any 
reason and get a full refund. 

Send Check, Money Order or Credit 
Card information and order a copy 
today! Please add $2.50 shipping 
and handling on all orders. 

Credit Card buyers. For Extra Fast 

Service Call (415) 527-7730 

i— — — — — ———————* 

■ Order from: The Software Review 

| 704 Solano Avenue, Albany, CA 94706 



I 



I Yes. I want to run COBOL on my systeml Enclosed find 
$69.95 plus $2.50 shipping/handling (California 
I residents please add appropriate sales tax). I will 
! receive the NPS-COBOL system plus a FREE copy of 
I NPS-ALGOL. I understand^ that I may return the 
I software within 15 days if not completely satisfied 
■ for a full refund. 



NAME 



I 
I 

| COMPANY 

I STREET^. 
J CITY 

| STATE. 



I AMOUNT ENCLOSED 



_ZIP_ 
$. 



Disk size desired: 5" 8" 



I 

I □ Check Enclosed D VISA 
|D UPS CO. D. □ Mastercharge 

| Card number 

| Expiration Date 

I Signature 



' □ Check here for more information 

I CP/M is a trademark of Digital Research and Z-f 
I trademark of Zilog. 



class name 


Stack 


superclass 


Object 


instance variable names 


buffer 


class messages and methods 




"none defined here" 




instance messages and methods 




external 

count t buffer count 

empty t buffer empty 

"push: anObject | ... to be defined in subclasses" 
"pop | | ... to be defined in subclasses" 
"top | | ... to be defined in subclasses" 

internal 

emptyCheck self empty ifTrue: [ t self error: 'stack empty' ]. 

Table 11: Class template for class Stack. 



class name 



superclass 



instance variable names 



class messages and methods 



SequentialStack 



Stack 



'none defined here" 



size: anlnteger | 

(anlnteger > 0) 

ifTrue: [ t (self new) initialize: anlnteger ] 
ifFalse: [ t self error: 'invalid size' ]. 



instance messages and methods 



external 

push: anObject | | buffer append: anObject. 

pop | | self emptyCheck. t buffer removeAt: buffer count. 

top | | self emptyCheck. t buffer at: buffer count. 

internal 

Initialize: anlnteger | | buffer — SequentialList size: anlnteger. 

Table 12: Class template for class SequentialStack. 



off. The effect is to reverse the 
assignments to a, b, and c, such that 
the ranks are 7, 6, and 5, respectively. 

The Linked Stack 

Alternatively, we can define a 
linked stack, which is a stack whose 
buffer is a linked list. The definition 
of class LinkedStack is given in table 
13. A linked stack is created by send- 



ing the message new to class 
LinkedStack. Since we are using a 
linked list for the buffer, there is no 
need to specify a maximum size 
estimate. For example: 

| stack | 

stack — LinkedStack new. 

creates a new instance of class 



268 August 1981 © BYTE Publications Inc 



"WITH THE UCSD p-SYSTEM; 
WE CAN WRITE ONE APPLICATION 
THAT GOES FROM APPLE TO ZENITH!' 



HARRY BLAKESLEE, President, Denver Software 




UCSD p-System and UCSD Pascal are trademarks of the Regents of the University of California. 



Our business is bigger and 
better than ever. 
A lot of the credit for that 
goes to the UCSD p- System software 
from SofTech Microsystems. It's 
given us ten times the market we 
used to have. 

We can write a single, 
sophisticated applications program 
with the UCSD p-System— like our 
financial management package— and 
it just keeps on running. On Apple, 
Commodore, Ohio Scientific, Texas 
Instruments, Zenith, and more. 
That's the real beauty of the UCSD 
p-System. Any program you write for 
one microcomputer runs on others, 
both today and tomorrow. You protect 
your software investment, without 
restricting your hardware options. 

And with the UCSD 
p-System, you can use the language 
of your choice— UCSD Pascal,™ 
FORTRAN-77, BASIC, or assembly 
language. All are backed by SofTech 
Microsystems, a leading system 
software company who's been around 
for over a decade, who knows how 
to develop professional quality 
software, and who's committed to 
delivering it. 

Get a head start on tomor- 
row. With the microcomputer 
software that goes from "A" to "Z." 
Distribution licensing and single 
copies available. Write or call for 
details, so you can start going 
places, too. 

micROsvsTems 

Ft SUBSIDIflHV OF SOFTECH 

For the software that's going places. 

9494 Black Mountain Road, San Diego, 

CA 92126. (714)578-6105 

TWX: 910-335-1594 



Circle 352 on Inquiry card. 



BYTE August 1981 269 



class name 


LinkedStack 


superclass 


Stack 


instance variable names 


"none defined here" 


class messages and methods 




new | | t (super new) initialize 


instance messages and methods 




external 

push: anObject buffer insert: anObject at: 1 . 
pop | | self emptyCheck. t buffer removeAt: 1 . 
top | | self emptyCheck. t buffer at: 1 . 

internal 

Initialize | | buffer — LinkedList new. 

Table 13: Class template for class LinkedStack. 



LinkedStack. The message push: is im- 
plemented by inserting the object 
passed as a parameter at the begin- 
ning of the buffer (ie: at position 
number 1). This is an easy operation 
for a singly linked list. The message 
pop is done by removing the first ob- 



ject from the buffer — another easy 
operation. The message top is im- 
plemented by accessing the object 
that is the entry of the first link of the 
buffer. We can use an instance of 
class LinkedStack in the example given 
for class SequentialStack by doing the 



following: 

| stack | 

stack — LinkedStack new. 

The rest of the example is unchanged. 

The Queue 

The queue is an important data 
structure that, like the stack, occurs 
often both in programming systems 
and outside the realm of program- 
ming (see figure 12). A queue is a 
linear list of items whose access is 
restricted to the two ends. An item 
can be appended to only one end of a 
queue, called the rear. An item can be 
removed only from the other end of 
the queue, called the front of the 
queue. This causes a sequence of 
items that are added to a queue and 
subsequently removed, to be accessed 
in a strict first-in-first-out fashion (ie: 
the first item that we put in a queue is 
the first item that we get out). 
Because of this, a queue is sometimes 
called a FIFO (first-in-first-out). 

Lines of customers at a bank win- 



NEW LOWER 8088 PRICES 



LDP1/2 



The LDP1/2 utilizes the advanced 8088 processor to provide up to 8 
times the throughput of a 4 MHzZ80A processor. The powerful instruc- 
tion set of the 8088 is ideally suited to higher level languages such as 
PASCAL and PU1. The 10 slot motherboard leaves 7 slots for USER ex- 
pansion. With the option of a 10 MByte Winchester and MP/M-86, the 
LDP mainframe becomes a powerful multiuser system with the capabili- 
ty of handling 8 users without the degradation in performance experi- 
enced with Z80 CP/M systems. The performance of the LDP1 and LDP2 
has never before been available for such an affordable price. 

FEATURES: 

— LDP88, 8088 CPU board 

— LDP72, advanced floppy disk controller 

— LDP64K dynamic RAM 

— 1 serial RS232 port 

— 10 slot motherboard 

— 1 8" Shugart 801R drive (LDP1), 2 Shugart 80 1 R's (LDP2) 

— 4K EPROM socket for user population 

OPTIONS: 

— HAZITALL 

— 8" 10 MByte Winchester (replaces 1 Shugart 801 in LDP2, available 
Sept. 81) 

— MP/M-86 multiuser system (available Sept. 81) 

— Woodgrained 7 slot chasis 



PRICES 

LDP88 CPU 

LDP72 FDC 

LDP64K RAM 

LDP128K RAM 

LDP256K RAM 

HAZITAL 

LDP1 

86-D0S 

CP/M -86 

Microsoft BASIC 86 



ASSEMBLED & TESTED 

$ 349.95 

274.95 

795.00 
1295.00 
2095.00 

325.00 
3295.00 

195.00 

250.00 

350.00 



Call for LDP1 option prices and board kit prices. 

CP/M-86 and MP/M-86 are trademarks of Digital Researcn 
86-DOS is a trademark of Seattle Computer Products 



LDP88 8088 CPU BOARD 

• 8088 CPU 5 MHz operation upgradeable to 8 MHz • 9 vectored inter- 
rupts • Fully complies with IEEE 696 electrical and timing specs 

• RS232 serial port with modem controls • 1K bytes of static RAM • 2 
EPROM sockets (2716 or 2732) • 8087 upgrade kit available in Sept. 

• 8 bit bus eases interface to other S100 bus boards • 1MByte address 
space • 65K I/O ports 

64/256K MEMORY 

• 8 or 16 bit operation • Meets all IEEE 696 specs • Access time 
350 ns from PSYNC low • Intel 8203 dynamic RAM controller • 24 or 
16 bit address decoding • No wait states with 5 MHz 8088 or 8086 

• Parity with Error interrupt generation • No DMA RESTRICTIONS 

• 64K board is upgradeable to 256Kbyte board 

HAZITALL 

• 2 Serial RS232 ports • 2 parallel ports with handshake control 

• Math processor support (8231/9511 or 8232/9512) • WINCHESTER 
DISK support • Real time programmable interrupt • Clock/calendar 
with battery back up • Synchronous data communication supported 

LDP72 FLOPPY DISK CONTROLLER 

• IBM compatible single and double density format • Single or double 
sided drives • Programmable data record length (128 to 8192 bytes/ 
sector) • Multi sector and multi track transfer capability • Parallel 
seeks on up to 4 drives • On board digital data separator • Software 
selectable single or double density operation • Separate connectors 
for 5Vi" and 8' drives • Software selection of standard or 
allowing mixing of both drives on a single controller 



or minidrives 



LOMAS 

DATA 

PRODUCTS 



11 Cross Street 
Westborough, MA 01581 
Telephone (617) 366-4335 



270 August 1981 © BYTE Publications Inc 



Circle 201 on inquiry card. 



COMPUTERS-TERMINALS-MODEMS! 



MODEMS AND COUPLERS 



Connect your Apple, TRS-80 or any other computer or terminal to the phone lines! 



Penril 




Penril 
300/1200 



Penril 300/1200— Bell 212A style $799 

Bell 212A style. 1 200 baud and 300 baud. Manual origi- 
nate, auto-answer. Full duplex. RS232. Direct connect 
to phone lines via RJ11C standard extension phone 
voice jack. 1 year warranty. 





Digital Equipment Corporation 



DECVT100 



DEC VT100... $1668 

Detachable keyboard. Separate numeric keypad with 
function keys. Business forms character set. Reverse 
video. Selectable double-size characters. Bidirectional 
smooth-scrolling. 80 cols or 1 32 cols. Split screen. Set- 
fable labs. Line drawing graphic characters. Status line. 
Key-Click. 



HARDCOPY TERMINALS 



Teletype 
Model 43 

Teletype 
Corporation 



Teletype Model 43 KSR with RS232 
and Connector Cable $999 

30 CPS. Dot matrix. 1 32 cols. True descenders on lower 
case. Excellent print quality for dot matrix printer. Pin 
feed. 



U.S. Robotics 

USR-330A 

Bell 103/113 style 

USR-330D 

Bell 103/113 style 



USR-330D $339 

Bell 103 113 style. 330 baud. Manual originate, auto- 
answer. Half/full duplex. RS232. 1 year warranty. Direct 
connect to phone lines via RJ11C standard extension 
phone voice jack. 

USR-330A $399 

Same as USR-330D but includes auto-dial capability. 



CRT's 




Perkin-Elmer 
Corporation 



Superowl 1251 

Perkin-Elmer Superowl 1251 $1564 

Intelligent, editing CRT. Detachable keyboard. 32 fully 
programmable function keys. Intelligent printer part. 
Business forms character set. Block mode. Protected 
fields. Blinking fields. Numeric fields. Reverse video. 
Half intensity. Polling. Down line loading of options. Re- 
mote control of all options by host computer. Settable 
tabs. Status line. Separate numeric keypad. Transpar- 
ent mode. 






NEC Corporation 
NEC Spinwriter 5510 & 5520 




5520 KSR Spinwriter $3088 

55 CPS. Impact printer. Selectric print quality. Change- 
able print fonts. 1 1 0, 300 and 1 200 baud data rate. Nu- 
meric keypad. Friction and tractor feed. 

5510 Spinwriter $2754 

55 CPS. Impact printer. Selectric print quality. Change- 
able print fonts. 110, 300 and 1 200 baud data rate. Fric- 
tion and tractor feed. 



& PRINTERS 



DEC LA120 

Digital Equipment 
Corporation 

DECLA120... $2388 

1 80 CPS. Dot matrix. Upper/lower case. 1 K buffer. De- 
signed for 1200 baud communications. 30 character 
answerback message. Adjustable line spacing. Adjus- 
table character sizes including double sized characters. 
Settable horizontal and vertical tabs. Top-of-form capa- 
bility. RS232. 




Perkin-Elmer 
Corporation 



Pussycat 650/655 
CRT Screen Printer 



650/655 Pussycat CRT Screen Printer . $899 

100 CPS. Extremely compact and quiet. 110 to 9600 
baud rate. 2K buffer. Ideal for producing rapid, reliable 
hardcopy of your CRT screen display. Can be added to 
any CRT with our interlace option. 



Circle 391 on inquiry card. 



U.S. Robotics 

The 

Phone Link 
Acoustic 
Modem 



Bell 103/113 style $179 

300 baud. Sleek, low profile. Originate and answer cap- 
ability. Half/full duplex. Self-test. RS232. Light displays 
for On, Carrier, Test, Send Data, Receive Data. 15 oz. 

Perkin-Elmer Corporation 

Bantam 550B .... $694 1 

Compact. Silent. Upper/lower I 
case. 80th col. wrap-around. 
Bell. Integrated numeric pad. 
Printer port. Transparent 
mode. Editing features. 
Tabbing. 
Bantam 550E...$755| 

Same as 550B plus 
separate numeric key- 
pad and cursor direction 
keys. 
Bantam 550S $879 

Same as 550E plus block mode. 8 function keys, and 

protected fields, reverse video fields, half intensity 

fields, blinking fields. 

550 Options 

20mA Current Loop Interface $70 

Non-Glare Screen $25 

2nd page of memory (550S only) . . $100 




•Off** 




Digital 

Equipment 

Corp. 



DECLA34DA... $939 

30 CPS. Dot matrix. Upper/lower case. 4 character 
sizes. Up to 217 cols per line. 6 lines per inch settings. 
Friction feed. Settable tabs. RS232. 
DECLA34AA $1095 

30 CPS. Dot matrix. Upper/lower case. 8 character 
sizes including double size characters. 6 lines per inch 
settings. Up to 21 7 cols per line. Friction feed. Settable 
horizontal and vertical tabs. Top-of-form capability. 
Options for LA34AA and LA34DA 

Tractor Feed Mechanism $114 

Numeric Keypad w/ Function Keys .. $69 

Pedestal $100 

Paper Out Sensor $25 

APL Capability with APL Keycaps .. $499 
2K Buffer with Text Editor and 1200 Baud 
Communications Capability $499 



O 



Leasing rates and lease/purchase plan information is available on request. 

All equipment is shipped with a 10 day money back guarantee. 

We offer full service, on site maintenance plans on all equipment. 

All equipment in stock. 



S03 N. WABASH SUITE I71B CHICAGO, ILL BOSOl 



SALES 

GENERAL OFFICES 

SERVICE 



[312] 34B-5B50 
C312) 34B-565I 
C312) 733-D497 



front of 
queue 



rear of 
queue 



queue of n data items 



• determine the number of items in 
the queue 

• determine whether or not the queue 
is empty 

• put an item in the queue 

• get an item from the queue 



put 



get 



Figure 12: A queue (12a) is a linear collection of objects arranged so that items can be 
added (or put) only at the rear of the queue (12b) and taken away (or gotten) only at the 
front of the queue (12c). 



dow or checkout counter are every- 
day examples of this kind of 
discipline. In programming systems, 
queues are used for many purposes, 
for example, to represent a line of 



customers in a simulation program or 
to handle ordered lists of events and 
processes in operating systems. 

The operations we want to perform 
on a queue include: 



INFOSOFT Has a Better Way 
l/OS ™ Infosoft/operating system 

• Full CP/M"", CDOS™, SDOS™, compatibility 

• Up to 15 disk units of 65 megabytes each 

• Mix 5" and 8" floppies and hard disks 

• Autostart and turnkey capabilities 

• Adaptable to most 8080/8085/Z80 systems 

• Dialog system generation without programming 

• Up to 975 megabytes of on-line data storage 

'New! Developed from the l/OS single-user system" 
Introducing 

MULTI/OS™ 

the complete multi-user operating system 

All features of the single-user l/OS plus 

• Up to 16 independent users and/or tasks 

• Multiple printers with automatic spooling 

• Up to 56k bytes in each user partition 

• Managable sub-directories allow up to 63,504 files 

• Record/file lock capabilities 



Call Us Today 

To Improve Your 

System Performance 



MASTERCARD and VISA accepted 

CP/M ii a rggiitired trademark of Dig rial Research. CA 
COOS ii a registered trademark of Cromemco 
SDOS is * registered trademark ol SD Systems 







Just as in the case of the stack, we can 
have different implementations of the 
queue depending on the type of buffer 
we use for storing the data items. 
Class Queue, which serves as a 
superclass for the queue classes, is 
given in table 14. Class Queue con- 
tains an instance variable named buf- 
fer that points to the object that pro- 
vides the storage for items in the 
queue. The external messages have 
been listed to show what must be 
defined in all subclasses. The message 
emptyCheck, which sends an error 
message if the queue is empty, will be 
used in the implementation of get. 

The Linked Queue 

The first queue we will consider is 
the linked queue. A linked queue is 
one whose buffer is a linked list. 
Because we want to remove and add 
items easily, we will use a circular, 
singly linked list in our implementa- 
tion. Class LinkedQueue is shown in 
table 15. An instance of class Linked- 
Queue is created by sending the crea- 
tion message new to the class. For 
example: 

| queue | 

queue — LinkedQueue new. 

creates and initializes a new linked 
queue. The internal message initialize 
creates a new instance of CircularList 
and stores a pointer to it in buffer. 

To put an object in a linked queue 
we use the message put:, passing the 
object as the parameter. This object is 
then added to the circular list by 
sending buffer the message append:. 
Similarly, the next object can be 
removed by using the message get. 
The method for get first checks to see 
if buffer is empty. If it is, an error 
message is sent. If not, the first object 
is removed from buffer and returned. 

The messages count and empty are 
implemented by sending the respec- 
tive messages to buffer and returning 



272 August 1981 © BYTE Publications Inc 



Circle 166 on inquiry card. 



AH-HA! 





EUREKA! 

ALL-RIIIGHT ! 




Introducing 
" Popular 
Computing," the 
key to 
understanding. 

Now you don't have to be 
a computer professional to 
unlock all the mysteries, 
potential, and pleasures of 
home and small business 
computers. Popular Com- 
puting, the new monthly 
magazine from McGraw- 
Hill, is the key. 

Created in response to 
growing demand for our 
informative quarterly 
onComputing, Popular Com- 
puting explores every 
aspect of personal com- 
puters and their use. All 
reported in easy-to- 
understand nontechnical 
language. 




The answer 
to "Computer- 
phobia." 

Even the most computer- 
unsophisticated reader wil 
find Popular Computing 
interesting and 
stimulating. Every issue 
will contain straight- 
talking product reviews, 



special news briefs, and 
feature articles by famous 
guest contributors (like 
Isaac Asimov). There'll 
even be a helpful glossary 
of computer jargon we 
couldn't avoid using, and 
much, much more. 

Special 

Introductory 

Offer. 

Send in this coupon to- 
day, and take advantage of 
Popular Computings Special 
Introductory Offer. 









.■& 



.^> 






*4T* 












*&& 



cP .^V. 



POPULAR. 






<*" 



.<? 






,\° 






COMPUTING 

THE KEY TO UNDERSTANDING 



^zS: 





Circle 133 on inquiry card. 

THE NEW 

NEVADA 
COBOL! 

At $149.95 you can't buy 
a better COBOL or one 
residing in less memory. 

Now with the new Nevada COBOL, you can 
use the programs developed by professional 
business programmers over the past twenty 
years to run the big IBM machines. And you can 
develop and tailor programs on your micro and 
run them on your micro or recompile and run 
them on any mainframe computer. What's more 
you can do it for about one-fifth the cost of 
comparable COBOL compiler systems. 

Almost all the popular microcomputers 
work with the CP/M operating system we use 
including Apple. TRS-80. North Star, Superbrain. 
Cromemco and so on. 

Check the features; 
you'll go Nevada COBOL. 

A powerful subset of ANSI-74, Nevada COBOL 
requires a scant 16K of RAM. It's available on 8" 
CP/M standard single density or 5-1/4" diskettes. 
Price includes diskette and manual. Price for 
manual only, $24.95. 

Four COBOL applications packages 
available too. 

Four COBOL applications packages are cur- 
rently available. Each is priced at $24.95 for the 
diskette. The 73 page manuai covering all four 
applications costs an additional S24.95.The 
manual carries complete COBOL source code 
listings and superior documentation. 

Package #1 is the Budget Plan Report 
Generator. Here's an extraordinary time saver 
and planning aid for both start-up and well 
established businesses. 

Package #2 is the Personal Financial Planner 
to give you some eye opening insights into your 
own personal spending habits. 

Package #3 is Labels so you can print name 
and address labels. 

Package #4 is Pre-COBOL for use as a 
pre-processor of COBOL source programs. A great 
programming aid. 

Order today or write for complete details. 

Phone [4I5| 751-1522 or address Ellis 
Computing, 600 41st Ave, San Francisco, CA 94121. 
Nevada Cobol is also available at Lifeboat 
Associates, Discount Software, Westico, Business 
Micro Products, Computer Information Exchange 
and other quality computer stores. Mastercard, 
Visa, C.O.D.s, or checks accepted. California orders 
please include sales tax. 

CP/M. TRS-80 and IBM are TM s of Digital Research. 
Tandy Corp and I B M respectively 



o 



ELLIS COMPUTING 

SOFTWARE TECHNOLOGY 

274 August 1981 © BYTE Publications Inc 



class name 


Queue 


superclass 


Object 


instance variable names 


buffer 


class messages and methods 




"none defined here" 


instance messages and methods 




external 

"count | | ... to be defined in subclasses" 
"empty | | ... to be defined in subclasses" 
"put: anObject | | ... to be defined in subclasses" 
"get | | ... to be defined in subclasses" 

internal 

emptyCheck self empty ifTrue: [ t self error: 'queue empty' ]. 

Table 14: Class template for class Queue. 



class name 



superclass 



instance variable names 



class messages and methods 



LinkedQueue 



Queue 



"none defined here" 



new 



(super new) initialize. 



instance messages and methods 



external 

count | | I buffer count. 

empty | | t buffer empty. 

put: anObject | | buffer append: anObject. 

get | | self emptyCheck. t buffer removeAt: 1 . 

internal 

Initialize | | buffer — CircularList new. 

Table 15: Class template for class LinkedQueue. 



the result. A simple example of the 
use of LinkedQueue is the following: 

| queue a b c | 

queue — LinkedQueue new. 

a — (Card suit: 'heart' rank: 5). 

b — (Card suit: 'heart' rank: 6). 

c — (Card suit: 'heart' rank: 7). 

queue put: a. 

queue put: b. 

queue put: c. 

a — queue get. 

b — queue get. 

c — queue get. 



This sequence creates an instance of 
class LinkedQueue and assigns to the 
variables a, b, and c, instances of 
class Card with ranks 5, 6, and 7, 
respectively. These instances are put 
into the queue in the order listed and 
are then removed and assigned to the 
variables a, b, and c. The original 
order is preserved; the ranks of a, b, 
and c are 5, 6, and 7, respectively. 

The Sequential Queue 

The next implementation of a 
queue that we might expect to see is 



STATE OF THE ART 
MEMORY SYSTEMS 




512KB SINGLE BOARD MULTIBUS® MEMORY 

State of the Art Multibus Memory Design. 
First to Offer 512KB on One Board. 

The CI-8086 module is compatible with both 8 or 1 6 bit Multibus Systems. 

PARITY — The CI-8086 generates and checks even parity with selectable 
interrupt on parity error. 

FAST ACCESS AND CYCLE TIME — Data access is 270 NSEC and cycle 
time is 375 NSEC. 

16 MEGA BYTE ADDRESSING — The memory is addressable in 16K 
increments up to 16 mega bytes. 

LOW POWER CONSUMPTION — Total power consumption is under 8 
watts. 

SINGLE QTY. PRICE: 128Kx9 $1350. 512Kx9 $2995. 



*™™"flI™lliPi!llB' 

» - . m m && m jm \ 
i^" ^P w$ wi si ^V. *S?- IS 

i a 1 1 1 1 1 

I m |j| ^ |j| s» ; « . "« ;. m ,.. 
H w. ^'.- ™ HI ill If 



256KB LSI 11/23® SINGLE DUAL WIDTH BOARD 

The First and Only 256KB Memory on a Single Dual Board. 

4 MEGABYTE ADDRESS FIELD — Most memories available for the DEC 
PDP 11/23 are only addressable to 256K bytes (18 address lines). The 
CM 1 23 is addressable to 4 mega bytes (22 address lines) so there is no 
need to worry about obsolescence. 

FAST ACCESS AND CYCLE TIME — With an access time of 240 NSEC 
and cycle time of 400 NSEC one is insured the best throughput on the PDP 
1 1 /23 system. 

PARITY — The CI-1123 generates and checks parity for each byte of 
memory. Totally DEC compatible. 

BATTERY BACKUP POWER CONSUMPTION — Power requirement for 
the module is only 1.2 AMP from the 5 volt supply. The CI- 1 123 is easily 
configured for battery back-up mode of operation requiring only 300MA 
from a single 5 V back-up supply for 256KB memory in the down state. 



SINGLE QTY. PRICE: 



32Kx 18 $575. 



128Kx 18 $1925. 




■ :>Y.. •";■■' ' ■■■iii'.v'-'.r. ' 



64K x 9 EXORCISER® I SINGLE BOARD MEMORY 

For Exorciser I, Exorciser II and Rockwell System 65. 

FAST ACCESS AND CYCLE TIME — Data access time is 225 NSEC and 
cycle time is 400 NSEC, allowing the unit to work as a static RAM at clock 
rates in excess of 1 .5 mega hertz. For 2 mega hertz operation the board can 
be easily configured to utilize a cycle stealing refresh operation. 

ADDRESSING — On-board memory select is available in 4K increments 
up to 64K words of memory on either the VUA or VXA control inputs. 

PARITY — On board even parity with output jumper select to the system 
bus as a parity error or non-maskable interrupt. 

Complete board power consumption is under 7 watts. 

SINGLE QTY. PRICE: 64K x 9 $575. 



Tested and burned in. Full year warranty. 



DON'T ASK WHY WE CHARGE SO LITTLE, ASK WHY THEY CHARGE SO MUCH. 



€ 



Chrislin Industries, Inc. 

31352 Via Colinas • Westlake Village, CA 91362 • 213-991-2254 

Muftituji il ■ tr*(«iT!«rk of ttw Mil Corp. LSI II is ■ Indtmark of Difitlf Equipment Corp. EXORdtn ii ■ trodmurk of Motorola 



Circle 54 on inquiry card. 



BYTE August 1981 275 



one that uses a sequential list to store 
data items. Unfortunately, a sequen- 
tial list is not well suited to this pur- 
pose, because we need to add items to 
one end of the list and remove them 
from the other. You will recall that 
adding items to the end of a sequen- 
tial list is an easy operation, but 
removing them from the beginning is 
difficult since we have to copy for- 
ward all of the succeeding items in the 
list. Rather than copy forward all 
items after the first, we would prefer 
to ignore the item at position 1 of the 
list and consider the item at position 2 
to be the first item in the list. The 
problem, however, is that as items 
are added and removed from the list, 



the actual positions of the first and 
last items migrate toward the end of 
the list. This could cause the list to ex- 
pand even if it is not full. Fortunately, 
we can treat the last position in the 
list as if it preceded the first position: 
that is, we consider the list to be cir- 
cular. After we have added an item to 
the last position, we can start adding 
items to the beginning of the list, pro- 
vided some have already been re- 
moved. If we use this strategy, then 
we don't have to expand the list until 
it is full. 

The class definition in table 16 uses 
the strategy just described to imple- 
ment a queue using sequential 
storage. Class SequentialQueue uses 



an instance of class IndexedTable as 
its buffer. Since class IndexedTable 
does not provide facilities for count- 
ing the number of objects stored in an 
instance (those facilities are provided 
by class LinearList), we need to define 
an instance variable count in class 
SequentialQueue. Additionally, we 
have instance variables named front 
and rear, front is the index of the first 
object stored in buffer (an instance of 
class IndexedTable); rear is the index 
of the last object stored in buffer. 
Since we are treating buffer as a cir- 
cular sequence of positions, front and 
rear will repeatedly cycle through the 
values between the lower and upper 
bounds of buffer. 



THE FORMULA allows the computer professional to 
focus on the most important part of business: the needs 
of the client. Customized systems for any business appli- 
cation can be created in a fraction of the time required by 
conventional methods. 



kgftSSS* 



• Interactive data entry, file updating, and 
maintenance routines are automatically 
generated from a definition of the fields. 



Reports can be created through a unique 
full screen editor simply by typing a sample 
format. 



• Menus and job streams are defined through 
a preprogrammed parameter-driven pro- 
cedure. 

• Fast response time is insured because 
each routine can be interpreted directly by 
the computer and data management is 
controlled by an efficient ISAM algorithm. 



THE FORMULA is a complete system language which 
brings the process of developing applications closer to 
the user's description of his needs. That'sTHE FORMULA™ 
for success. 

Disk and manual, $595. Manual only, $60. 

THE FORMULA™ will run on any 8080 or Z80 computer 
with CP/M,* 48K RAM, 300K total disk storage, and a CRT. 

DMA • WE SPEAK YOUR LANGUAGE. 



DYNAMIC MICROPROCESSOR ASSOCIATES • 545 Fifth Avenue, New York, New York 10017 • (212) 687-7115 

We ship prepaid and COD orders. Shipping & handling charges extra: $5 UPS areas; $7 non-UPS areas, Mexico, Canada; $10+ elsewhere. MasterCharge and VISA accepted. 

New York State residents add appropriate sales tax. 'CP/M is a trademark of Digital Research. 



276 August 1981 © BYTE Publications Inc 



Circle 121 on inquiry card. 



ALPHA BYTE DOES IT AGAIN... 




Call us for our never undersold price. 

ALPHA 

BYTE 

STORE/ 

(213) 883-8594 

5115 Douglas Fir Road • Suite B • Calabasas, CA 91302 




Circle 360 on inquiry card 



class name 



superclass 



instance variable names 



class messages and methods 



SequentialQueue 



Queue 



front resr count 



size: an Integer | | 

(anlnteger < 1) ifTrue; [ t self error, 'invalid size' ]. 

t (self new) buffer: (IndexedTable from: 1 to: anlnteger) count: 0. 



instance messages and methods 



external 

count | | t count. 
empty | | t count = 0. 
put: anObject | | 

(count = buffer size) ifTrue: [ self expand. ]. 
buffer put: anObject at: rear, 
rear — self advance: rear, 
count — count + 1. 
get | anObject 
| self emptyCheck. 
anObject — buffer at: front, 
front — self advance: front, 
count — count - I . 
t anObject. 

internal 

buffer: anlndexedTable count: anlnteger | | 

buffer — anlndexedTable. count — anlnteger. 
front — buffer lowerBound. resr — front + count. 
advance: anlnteger j | 

anlnteger = buffer upperBound 

ifTrue: [ I buffer lowerBound ] ifFalse: [ ! anlnteger + 1 
expand | anlndexedTable anlnteger | 

anlndexedTable — IndexedTable from: 1 to: (2 * buffer size) 
anlnteger — front. 
1 to: count do: 

[: i | anlndexedTable put: (buffer at: anlnteger) at: i. 

anlnteger — self advance: anlnteger. ]. 
self buffer: anlndexedTable count: count. 

Table 16: Class template for class SequentialQueue. 



Because we are using an instance of 
class IndexedTable for storing 
objects, we must specify an estimate 
of the maximum size of an instance of 
class SequentialQueue when we 
create it. This is done with the crea- 
tion message size:, which creates a 
new instance of SequentialQueue and 
sends it the internal messsage 
buffer.count:. The first parameter of 
bufferxount: is an instance of class In- 
dexedTable; the second is the number 
of objects stored in the first parameter 
(initially zero). 

The message bufferxount: is also 
sent from the internal message ex- 



pand, which is used to expand buffer 
when it becomes full, expand is im- 
plemented by creating a new instance 
of IndexedTable that is twice as large 
as the current one. All of the objects 
stored in buffer are copied to the first 
half of the new instance, which then 
becomes the new buffer. 

The internal message advance is 
used to advance the values of front 
and rear. Normally, this is done by 
incrementing the current value by 1. 
However, if the current value is equal 
to the upper bound of buffer, then we 
must set the value back to the lower 
bound of buffer. The external 



messages are those specified in the 
superclass Queue. The message 
count returns the value of the in- 
stance variable count. The message 
empty tests to see if count is zero. 

For the message put:, we first test 
to see if buffer is full. If buffer is full, it 
is expanded using the message 
expand. The object passed as a 
parameter to put: is then stored in 
buffer at the position indicated by 
rear, rear is then advanced one posi- 
tion forward, using the message ad- 
vance. Finally, the value of count is 
incremented. 

Similarly, for the message get, we 
first test to see if the queue is empty. 
If it is, an error message is sent; other- 
wise, the object stored at the position 
indicated by front is removed from 
buffer, front is advanced one position 
forward, and the value of count is 
decremented. Finally, the removed 
object is returned. 

Summary 

The class construct is an extremely 
useful tool for implementing data 
structures. Implementing a data 
structure with a class makes it possi- 
ble to confine the details of the im- 
plementation to one place and to in- 
sure that the resulting object will be 
accessed by the rest of the system in a 
secure manner, namely, through the 
use of a set of messages that corres- 
pond to the operations that are well 
defined for that data structure. Addi- 
tionally, the ability to create 
subclasses makes it possible to share 
variables and methods among similar 
class definitions, thereby reducing the 
amount of work needed to implement 
a set of data structures. ■ 



References 

1. Horowitz, E and Sartaj, S. Fundamentals 
of Data Structures. Potomac MD: Com- 
puter Science Press, 1976. 

2. Knuth, D E. The Art of Computer Program- 
ming: Volume 1 /Fundamental Algorithms, 
Second Edition. Reading MA: Addison- 
Wesley, 1973. 

3. Robson, D and Goldberg, A. "The Small- 
talk-80 System," August 1981 BYTE, page 
36. 

4. Wirth, N. Algorithms + Data Structures 
= Programs. Englewood Cliffs NJ: 
Prentice-Hall, 1976. 



278 August 1981 © BYTE Publications Inc 



-rha S4O0 Bjus , 




W 



Our New Address: 

14425 North 79th St. 

Suite B 

Scottsdale, Arizona 85260 

Our New Phone Numbers: 
800-582-3138 
602-991-7870 



From July 25, 1981 to August 10, 1981, we'll be in the 

process of moving from Clark, NJ to our new larger quarters 

in order to serve you better with these major lines: 



Anadex 

Apple 

ATV 

California Computer Systems 

Centronics 

Cromemco 

Digital Research 

Electronic Control 

Technology 

Epson 

Executive Data Systems 

Godbout Electronics 

(CompuPro) 
Hayes Microcomputer 

Heuristics 

Integral Data Systems 

Integrand 



International Microcomputer 

Corp. 

Ithaca Intersystems 

Maxell 

Micro Pro International 

Morrow Designs 

(Thinker Toys) 

Mountain Computer 

Mullen Computer Products 

North Star 

Para Dynamics 

Persci 

Potomac Micro Magic 

Qume 

Sanyo 

Scion 

SDM Industries 



SD Systems 

Shugart 

So roc 

SSM Microcomputer 

Products 

Tandon Magnetics 

Tarbell Electronics 

TCS 

T.E.I. 

Tecmar 

Teletype 

Televideo 

Texas Instruments 

Three M (Scotch) 

Verbatim 

Vector 

Zenith / 



£53&S-JDD,inc 



5-IDO 



14425 North 79th St., Suite B 

Scottsdale, Arizona 85260 
800-582-3138 • 602-991-7870 




products, 



NEW LOCATION 

1198 E. Willow Street 
Signal Hill, CA 90806 

Toll Free (800) 421-7701 Outside Calif. 

(213)595-6431 inside Cain. 



MICROBYTE S-100 BOARDS 



ORDERING INFO 

Name, address, phone 

Ship by UPS or Mail 

Shipping Chrg. Add $2.50 up to 

1 lb. Call for larger shipments 

Freight, U.S. Mail Add $1.60 

U.S. Only up to 2 lbs. 



We Accept Cash, Check, Money 

Orders, Visa & Master Charge 

(U.S. Funds Only) 

Tax: 6% Calif. Res. 

COD T s & Terms Available on 

Approval (School PO's Accepted) 

($25.00 Minimum Order) 




• Fully compatlbli 
IEEE S 100 Bus 
•Z-BDACPU[4MH 



board J80ACPU 



Z-80A/I-O $349.00 

Assembled & Tested 

Optional Monitor Program $50.00 



IK(27081, 2K(2716)or 4KC'732| 



for eitenfling Ml'. UREO', IORCT 
tnOlai on Hoard ROM 
• Dual RS-232 serial 110 pens using 
tha Z80A.DART wllh IrwJI •ifjual Oaut 
rale selection {from 50-19.200 baud) 




MICROBYTE 



Controller 
•IEEE-SI00 compar 
•QUA arbitration al 



• Power On. Powi 



Disc Controller $389.00 

Assembled & Tested 

CPM Available (Optional) 



SD SYSTEM / S-100 BOARDS 



EXPANDORAMI 16K $240.00 

2 MHz DYNAMIC 32K $258.00 

RAM BOARD 48K $276.00 

KITS 64K $294.00 

EXPANDORAM II 16K $250.00 

4 MHz DYNAMIC 32K $268.00 

RAM BOARD 48K $286.00 

KITS 64K $304.00 



SBC-100 KIT 

2.5 MHZ/Z80 CPU 
with Serial I/O 
Ports & SBC 100 
Monitor of your 
choice at No Chrg. 



SBC-200 KIT 

4 MHZ/Z80A CPU 
with Serial & Parallel 
I/O Ports & SBC 200 
Monitor of your 
choice at No Chrg. 



$299 



00 



$325 



00 



VERSAFLOPPY 
I KIT 

Disk Controller for 
5Vt" &8" Drives, 
Single or Double 
Sided/Single 
Density, S-100 
Compatible 

$250 09 



VERSAFLOPPY 
II KIT 

Disk Controller for 
5'/i" or 8" Drives, 
Single or Double 
Sided/Single or 
Double Density, 
S-100 Compatible 



$300 



00 



PROM 100 KIT 

S-100/EPROM ALL BOARDS 

PROGRAMMER for ARE AVAILABLE 

2708, 2716, 2732 & ASSEMBLED 

(Tl) 2516 * TESTED 



$210 



00 



CALL FOR PRICES 



QUME DT-8 DISK DRIVE 



Specifications 

•Double-sided 
Sgle-Dble Density 

• IBM-compatible 
1.2 Mbytes/Disk 

•Fast— 3 ms. 
Track to Track 

• 154 Tracks/Daisy 
Chain 4 Drives 

•ISO Standard 
Write Protect 

• Programmable 
CALL FOR Door Lock 

PRICE & DELIVERY 

O.E.M. Pricing Available on Request 
120 Day Factory Warranty 





MICROBYTE 



•6«K < 8 bil dynamic RAM 

» 8VDC O 700 ma 

* I6VDC 100 ma 

- 16VDC ric 25 ma 
•Built-in-parily wilh LED mrli 
and veclor rnlerrupl 
• Memory adrjressablo in torn 



'itilllWifmriiifm 

64K RAM Board 

Assembled & Tested Call for Price 




I/O Board $289.00 

Assembled & Tested 

Cables Available (Optional) 



MICROBYTE 

•Quad RS-232C Sanal Ports, One 
20mA Cirrrenl Loop Poil 
•Fully IEEE S-100 Bus Compatible 

• Asynchronous Commumcabons 
Wittl ZBOADartiTUi or Synch,onous 
Communications unlb ZB0A- 
SIOfQtTMl 

• Full Set ol Modem Conltol Signal; 
including Rl (Ring Indicator) 

■Easily Configurable lo Any Type o 

Terminal Interface 
•110 Servicing Environments: 

til Polled. 12) Bus Veclor. 

(3| ZBO Mode 2 Vector 

• Ott Board Interrupt Daisy Chain 
Capabiiiiy 

• Special Receive Condiboos: 

|1) Framing Error; |2) Parity Error. 
" errun Error 



•Buu. 



n 50 Baofl lo 300K Baud 



lally 



CALIFORNIA COMPUTER- 



2032 
2065 

2116 

2200 

2422 

2501 

2710 

2718 

2720 

2802 

2810 

7114A 

7424A 

7440A 

7470 
7710A 
771 2 A 
7720A 
7728A 



32K STATIC RAM BRD. 
64K DYNAMIC RAM 

BOARD 
16K STATIC RAM BRD. 
MAINFRAME 
DISK CONTROLLER 
MOTHERBOARD 
4PORT SERIAL I/O 
2 SER. PORT & 2 PAR. 
4-PORT PARALLEL I/O 
6502 CPU BOARD 
Z-80 CPU BOARD 
12K ROM/PROM BRD. 
CALENDAR CLOCK BD. 
PROGRAMMABLE 

TIMER 
A/D CONVERTER 
SERIAL SYNCH. BRD. 
SERIAL SYNCH. BRD. 
PARALLEL INTERFACE 
CENTRONICS 

INTERFACE 



CALL FOR PRICE & DELIVERY 



ATARI 800 

(16K) PERSON AUBUSINESS COMPUTER 

•Computer Console 'Operators Manual 
•Atari 8K Basic «RF Modulator 
•57 Full Stroke 'Power Supply 

Alpha-numeric keys CALL 

& (4) Function Keys FOR PRICE 
*Add'l 16K RAM FREE w/Purchase of System 



ATARI OPTIONAL ACCESSORIES 



MODEL # DESCRIPTION 

810 
815 
820 
822 
825 
830 
850 
410 



PRICE 

Disk Drive System $ 475.00 

Disk Drive System $1199.00 

40-col. Dot Matrix Printer $ 279.00 

40-col. Thermal Printer $ 349.00 

80-col. Dot Matrix Printer $ 625.00 

Acoustic Modem $ 159.00 

Interface Module $ 139.00 

Cassette Recorder $ 60.00 



MAIN/FRAME & DISK DRIVE CABINETS from INTEGRAND 



MODEL X5 - Desktop Mainframe - 5 Cards - Small Power Supply $200 

Cabinet size: 9.4' w x 16' d x 7 5"h. Cabinet painted dove grey, front panel is black. No optional colon! 5-position 
motherboard. 5 connectors installed, card cage with all guides. Reset switch on Ironl panel. Power switch. A DB25 culouls, 
1 BNC mounting hole. 70CFM Ian. EMI litter. 6' power cord, line fuse, and clamped Hal cable exit on rear panel PX/5 
power supply ( + 8@10A. + 16@1.5A. -16@1.5A) Power supply is a removable module. 

MODEL 700D - Horizontal Desktop Disk/Cover - 2 Eight Inch Drives - Drives Horizontal $265 

Cabinet size: 20"w x 23"d x 7 5"h. Cabinet painted dove grey, tront panel is black. Mounting lor 2 eight-inch Shugal 
SA801R Floppy Disk Drives (or mechanical equivalent) Drive mounting brackets supplied. Drives no! supplied. 70CFM Ian, 
6' three-wire line cord, power switch, line (use, EMI filter and clamped Mat cable exit on rear panel P794 power supply 
+ 5@<tA. +24@5A— 6A peak, -5@.75A. All voltages regulated Power supply is a removable module 

MODEL BODD - Desktop Maln/Frama - 15 Cards - Standard Power Supply $255 

Cabinet size: 17"w x 2G.5"d x 7.5"h. Cabinet painted dove grey, tront panel is black (other color schemes optional] 
15- position IEEE compatible motherboard (will accept T801 terminator kit, optional), card cage with alt guides. Reset switch 
an Iron! panel Power switch. 8'DB25 cutouts. 2 BNC mounting holes. 70CFM fan, EMI tiller, 6' power cprd. line fuse, and 
clamped flat cable exit on rear panBl. P800 power supply | + 8@15A, + 16@3A, -16@3A) Power supply is a removable 
module Motherboard connectors optional. 

MODEL 700DS - Vertical Desktop Disk/Cover - 2 Eight Inch Drives - Drives Vortical $265 

Cabinet size: I3.5"w x 23"d x ll"h. Cabinet painted dove grey, tront panel is black. Mounlmg lor 2 eight-inch Shugart 
SA801R Floppy Disk Drives (or mechanical equivalent}. Drive mounting brackets supplied. Drives not supplied. 70CFM fan. 
6' three-wire line cord, power switch, line fuse, EMI (liter and clamped Hat cable exit on rear panel P794 power supply: 
+ 5@<lA l +24@5A— 6A peak, -5@.75A. Ail voltages regulated. Power supply is a removable module. 



PRINTERS 



ATARI SOFTWARE 

Description Price 

Basketball $29.00 

Super Breakout $28.00 

Chess $28.00 

Video Easel $29.00 

3-D Tic Tac Toe $28.00 

Star Raiders $34.00 

Music Composer $42.00 

Educational System ROM $19.95 

Assembler/Editor $45.00 

Telelinkl $19.95 

Space Invaders $15.95 

Kingdom $12.95 

Blackjack $12.95 

Biorhythm $12.95 

Graph It $15.95 

Energy Czar $12.95 

Mailing List $16.95 

Statistics I $16.95 

Paddle Controls $17.95 

Joysticks (pair) $17.95 

Touch Typing $19.95 

Stock Cherting $19.95 

Stock Analysis $19.95 

Bond Analysis $19.95 

Scram $16.95 
MANY MORE AVAILABLE 



MFG./MODEL# 
ANACOM-150 
ANADEX-9501 
BASE 2-800 B 
CENTRONICS 739 
DIABLO-630R0 
C. ITOH-Starwriter45 
TEXAS INSTR.-810 



PRICE 

$ 995.00 
$1300.00 
$ 650.00 
$ 795.00 
$2300.00 
$1925.00 
$1650.00 



MFG. 

Amdek 

Amdek 

Amdek 

Amdek 

APF 

Hitachi 

Hitachi 

Sanyo 

Sanyo 

Sanyo 



MONITORS 



MODEL # 

100/12" B&W 
100-80 

100G/12" Grn. 
Color I 

TVM-10/10" B&W 
VM910/9" B&W 
VM129/12" B&W 
DM5012/12" B&W 
DM5112ex/12" Grn. 
DMC6013/13" Color 



PRICE 

$139.00 
$169.00 
$169.00 
$399.00 
$149.00 
$210.00 
$340.00 
$260.00 
$280.00 
$450.00 



MODEMS 



TERMINALS 



MFG. 

Novation 

Novation 

Novation 

Lexicon 

Livermore 

UDS 

UDS 



MODEL t* 

CAT 
D-CAT 
AutO-CAT 
Lex-11 

LIV-Star 20M 
UDS 103 
UDS 202 



PRICE 

$149.00 
$169.00 
$229.00 
$139.00 
$149.00 
$189.00 
$295.00 



MODEL iV 



MFG. 

Ampex Dialogue 80 

Soroc IQ120 

Soroc 101 40 

Televideo TVI 910C 

Televideo TVI 912C 

Televideo TVI 920C 

Televideo TVI 950C 



PRICE 

$ 945.00 
$ 750.00 
$1250.00 
$ 625.00 
$ 725.00 
$ 760.00 
$ 975.00 



WAMECO INC. Bare Boards & Kits 

KITS BARE BOARDS BARE BOARDS 

DESCRIPTION PRICE PART It DESCRIPTION PRICE PART # DESCRIPTION 



PRICE 

$ 59.95 
$ 74.95 
$ 71.95 
$ 80.95 
$159.95 
$119.95 
$ 75.95 
$ 99.95 
$109.95 

KITS LESS EPROM OR RAM CHIPS 



EPM-1 


4K EPROM 


EPM-2 


16K or 32K EPROM 


MEM-1 


8K Static 


MEM-2 


16K Static 


FPB-1 


Front Panel 


CPU-1 


8080A CPU 


RTC-1 


Real Time Clock 


QMB-9 


9 Slot Motherboard 


QMB-12 


12 Slot Motherbrd. 



PART H 

EPM-1 

EPM-2 

MEM-1 

MEM-2 

MEM-3 

FPB-1 

FDC-1 

CPU-1 



4K EPROM 
16K or 32K EPROM 

8K Static 
16K Static 
32K Static 
Front Panel 
Disk Controller 
8080 A CPU 



PRICE 

$29.95 
$29.95 
$29.95 
$31.95 
$35.95 
$49.95 
$44.95 
$31.95 



CPU-2 

RTC-1 

QMB-9 

QMB-12 

CRT-1 

IOB-1 

IOB-2 

IOB-5 



Z80 CPU 
Real Time Clock 
9 Slot Motherboard 
12 Slot Motherbrd. 
80 x 24 Video 
2 Par. & 1 Ser. I/O 
8-Parallel I/O Ports 
4-Serial I/O Ports 



PRICE 

$39.95 
$27.95 
$34.95 
$39.95 
CALL 
CALL 
$35.95 
$35.95 



Circle 25 on Inquiry card. 



COMPONENTS 



4116'S (200 ns.) 

Apple, TRS-80, Heath 

8 for *18 80 

16-49 $2.25 ea. 

50-99 $2.15 ea. 

lOOUp $2.05 ea. 



2114 L-2/200 NS 



Lo-Power 1Kx4 Static RAM 
1-16 $3.05 ea. 

17-49 $2.95 ea. 

50-99 $2.85 ea. 

100 Up $2.70 ea. 

74LS240 $1.25ea. 

74LS241 $1.10 ea. 

74LS244 $1.25ea. 

74LS373 $1.25ea. 

74LS374 $1.25 ea. 

8T245 $1.50 ea. 



DISKETTES FROM asap 



DIP SOCKETS/LOW PROFILE TIN SOLDERTAIL 



2708/450 NS 



1Kx8 EPROM 

$4.25 ea. 

or 

8/$32. 00 



2716/5 VOLT 



2K x 8 EPROM 

$6.95 ea. 

1 YR. WARRANTY 



8080A-CPU $ 2.50 

Z80A - CPU $ 8.95 

Z80A - CTC $ 8.95 

Z80A-DART $13.95 

Z80A-SIO $22.00 

8255AC5 $ 6.95 

8257AC5 $15.00 



320T5 .80 320T12 .80 
340T5 .70 340T12 .75 



DB25P 
DB25S 
DB25C 



1.9 10-24 25 Up 
2.65 2.50 2.40 
3.60 3.40 3.25 
1.00 .90 .80 



100 PIN IMSAI 

Gold/S-100 

Soldertail 

Connectors 

$2.40 each 
OR 

10/S2.25 each 



CAPACITORS 



.1 @ 12 Volt 

Ceramic 

8$ ea. 

or 
100/S7.00 



PART t 

MD52501 

MO53S-10 

MD52S '6 



VERBATIM 
5'." DISKETTES 

SECTORING 
SOFT SECTOR 
HARD 10 SECTOR 
MARO 16 SECTOR 

8" DISKETTES 
HARD SECTOR 
SOFT SECTOR 

MEMOREX 

W DISKETTES 
SIDESIDENSITY SECTORING 

VSINOLE SOFT SECTOR 

I'SINGLE HARD 10 SECTOR 

1 (SINGLE HARD 16SECTOR 

B" OISKETTES 
SIDES/DENSITY SECTORING 



1 /SINGLE 
2-SINGLE 
"DOUBLE 
2'OOUBLE 



SOFT SECTOR 
SOFT SECTOR 
SOFT SECTOR 
SOFT SECTOR 



D-0133 
D0226 
D-0235 



DYSAN 
SV." DISKETTES 
SIOES/DENSITY SECTORING 

USINGLE SOFT SECTOR 

"DOUBLE SOFT SECTOR 

2/DOUBlE SOFT SECTOR 

8" DISKETTES 
SIOES/DENSITY SECTORING 

i/SINGLE SOFT SECTOR 

2'DOUBLE SOFT SECTOR 



PRICE 

10.'27 50 
10 ; 29SO 
1029 50 



PRICE 

10/2500 
10/25 00 
10/25 00 

PRICE 

10.35 00 
1045 DO 
I0M5OO 
10.55 00 



PRICE 
10 50 00 
10/53 00 
10.65 00 



SCOTCH 3M 

SV." DISKETTES 
SIDESIDENSITY SECTORING 



l/SINGLE 
l/SINGLE 
1/SINGLE 
3/OOUBLE 
2/DOUBLE 
2/DOUBLE 



SOFT SECTOR 
HARD 10 SECTOR 
HARD 16SECTOR 
SOFT SECTOH 
MARO 10 SECTOR 
HARD 16 SECTOR 



SV." DISKETTES 
SIDESIDENSITY SECTORING 



1/SINGLE 
2/DOUBLE 

1/SINGLE 
2/DOUBLE 



SOFT SECTOR 
SOFT SECTOR 
HARD 16 SECTOR 
HARD16SECTOR 



PRICE 
33.00 
33 00 
33.00 
'59.00 
90.00 



PRICE 
10/39.00 
10/65.00 
10739.00 
10/65.00 



DESCRIPTION 


1-9 


10-49 


50-99 


100 Up 


14 PIN TIN ST 


.15 


.13 


.12 


.11 


16 PIN TIN ST 


.16 


.14 


.13 


.12 


18 PIN TIN ST 


.19 


.18 


.16 


.14 


20 PIN TIN ST 


.25 


.23 


.21 


.20 


24 PIN TIN ST 


.26 


.24 


.22 


.20 


28 PIN TIN ST 


.32 


.30 


.29 


.27 


40 PIN TIN ST 


.42 


.40 


.38 


.34 



PART ■ 
FDI-tM 
FH1-32 

FD2-XO 



PART ■ 
SRW-5 
SRW-8 



PERSONAL SOFTWARE for APPLE 
TRS80, PET, & ATARI 

DESCRIPTION 

VISICALC APPLE DISK 

DESKTOP PLAN APPLE DISK 

MICHOCHESS 2.0 APPLE DISK 

MICROCHESS 2.0 APPLE 

CHECKER KING APPLE DISK 

CHECK KING APPLE 

GAMMON GAMBLER APPLESOFT DISK 

GAMMON GAMBLER APPLE 

BRIDGE PARTNER APPLESOFT DISK 

BRIDGE PARTNER APPLE 

CCA DATA MGMT SYS APPLE DISK 

MICROCHESS 2.0 8-32K PET 

CHECKER KING PET 

GAMMON GAMBLER PET 

BRIDGE PARTNER PET 

VISICALC -PET 

CCA DATA MGMT SYS TRS80 DISK 

MICROCHESS 1.5 TRS80 

CHECKER KING TRS80 

BRIDGE PARTNER TRS80 

TIME TREK TRS80 

VITAFACTS PKG/6 PET APPLE TRS 

VISICALC -ATARI 



PRICE 

125.00 
79.95 
21.95 
17.95 
21.95 
17.95 
21.95 
17.95 
21.95 
17.95 
79.95 
17.95 
17.95 
17.95 
13.95 

175.00 
65.00 
17.95 
17.95 
13.95 
13.95 

100.00 

175.00 



SHUGART 801 R DISK DRIVE 

Single Density Double Density 



Capacity 

Unformatted 
Per Disk 
Per Track 

IBM Format 
Per Disk 
Per Track 



400K 
5.2K 



256 K 
3328 



800 K 
10.4K 

512K 
6656 
500 kilobits/sec 
83 ms 

8 ms 

260 ms 

B ms 

35 ms 



Transfer Rate 250 kilobit/sec 

Latency (avg.) 83 ms 
Access Time 

Track to Track 8 ms 

Average 260 ms 

Settling Time 8 ms 
Head Load 

Time 35 ms 

Model 801 $400.00 

Case & Power Supply $265.00 



The Epson MX-80 

80 COLUMN DOT MATRIX PRINTER 



SPECIFICATIONS 
Print method ■ 
serial impact dot 

matrix 
Print rate ■ 80 CPS 
Print direction ■ 
bidirectional 
Number of pins 

in head ■ 9 
Matrix -9x9 
Line spacings - 1/8", 1/6", 7/72" + programmable 
Throughput at 10 CPI ■ logical seeking 
function - 105 LPM, 20 character line; 
73 LPM, 43 char, line; 48 LPM. 80 char, line 

PRINTING CHARACTERISTICS 
Character set - full 96-character ASCII 

with descenders 
Graphics characters ■ 64 block characters 

INTERFACES 

Standard ■ Centronics-style 8-bit parallel 
Optional - RS232. IEEE488. 
Buffer size - 1 line 

New MX80FT Available 
CALL FOR PRICE & DELIVERY 




8" DISKETTES 

SIOES/DENSITY SECTORING PRICE 

1/SINGLE SOFT SECTOR 10/45.00 

l/SINGLE SOFT32SECTOH 10/45.00 

2/OOUBLE SOFT SECTOH 10155 00 

SRW 

MEDIA STORAGE CASES 

SIZE PRICE 

5'.i" 12.50 aa 

8" S3.2S ea 



APPLE 
SOFTWARE 



by EDU-WARE 



INTRODUCING 

asap's Atari 800 



Computer System • 16K RAM Module 

$75 00 

7 YEAR WARRANTY PARTS AND LABOR 



DESCRIPTION 


PRICE 


COMPU-MATH 




(FRACTIONS) 


29.95 


COMPU-MATH 




(DECIMALS) 


29.95 


COMPU-READ 


19.95 


EDU-PAKI 


35.00 


TERRORIST 


24.95 


WINDFALL 


16.95 


NETWORK 


16.95 


SPACE 


24.95 


PRISONER 


24.95 



mSUSSm' 



BASES, HEADS, MTS. & 
COMBINATIONS 



(ALL SOFTWARE ON DISK) 



ZIP DIP II 



Zero Insertion Pressure Test Socket 
PART*/ PINS 1-9 10-24 25 UP 

ZD1116 16 5.35 5.15 4.95 

ZD1124 24 7.35 7.10 6.85 

ZD1140 40 9.75 9.50 9.25 



PARTS DESCRIPTION 

300 STANDARD BASE 

301 STANDARD PANAVISE 

303 STANDARD HEAD 

304 LOW PROFILE HEAD 

305 LOW PROFILE BASE 
308 WEIGHTED BASE 

310 SURFACE PLATE 

311 BENCH CLAMP 

315 CIRCUIT BOARD HOLDER 
333 RAPID ASSEMBLY 

350 WORK CENTER STATION 
366 WIDE OPEN HEAO 
376 SELF-CENTERING HEAD 
380 VACUUM BASE 

ACCESSORIES 
PART* DESCRIPTION 

316 EXTRA ARMS 
318 12" BAR 

343 NYLON JAWS (PAIR1 

344 GROOVED NYLON JAWS 
346 NEOPRENEJAWS 

353 STEEL JAWS 

359 UNIVERSAL HOLDER 



PRICES 

11.95 
24.95 
14.49 
15.25 
11.95 
14.25 
33.95 
14,49 
16 95 
3095 
38.95 
13.95 
16.95 
16.95 

PRICE 
9.50 
3.49 
2.00 
2.00 
2.50 
2.95 
6.95 



IDS SOCKET CONNECTORS 
Crimp-On Type 



Contacts 

20 PINS 
26 PINS 
34 PINS 
40 PINS 
50 PINS 



1-9 10-24 25 Up 



2.95 
3.25 
4.45 
5.65 
5.95 



2.75 
2.95 
4.25 
5.35 
5.65 



2.50 
2.75 
3.95 
4.95 
5.25 



DIP SWITCHES" 



PART # POSITIONS 1-9 10-24 25 UP 



DS4P 


4 


1.25 


1.20 


1.15 


DS5P 


5 


1.30 


1.20 


1.10 


DS6P 


6 


1.35 


1.25 


1.10 


DS7P 


7 


1.40 


1.25 


1.10 


DS8P 


8 


1.40 


1.20 


1.05 



IDS CARD-EDGE CONNECTORS 
Crimp-On Type 



Contacts 

20 PINS 
26 PINS 
34 PINS 
40 PINS 
50 PINS 



1-9 

3.95 
4.95 
5.25 
6.25 
6.95 



10-24 

3.75 
4.55 
4.95 
5.85 
6.35 



25 Up 

3.50 
4.25 
4.75 
5.50 
5.95 



MICROBYTE 32K STATIC RAM BOARD 




asap 



•2 MK2 or i MHz operation 
•4K Hardware cr software selectable 
•Will operate with of without front panel 
• Low powei consumption 800mA 
•Fully warranted lor 120 days trom date at shipment 
•Uses Intel low-power 214TL-1 4Kx1 Static RAM 
•Each 4K Dank addressable to any 4K slot within 
a 64K boundary 



$450° 



-Fully S100 bus 
compatible 
IMSAI. SOL, 
ALTAIR, 
ALPHA MICRO 



GODBOUT 32K ECONORAM XX 
Static 5-100 Memory 

32K Bank Select. IEEE S-100 compatible. One 
32K block can be addressed on 4K boundaries. 
Compatible with IEEE proposed standard of 24 
address lines and all currently used bank select 
configurations. Disable any or all of the eight 4K 
blocks to create as many windows in memory to 
avoid system memory conflicts. 
PART H DESCRIPTION PRICE 

GBERXX16K 16K A & T $339.00 

GBERXX24K 24K A & T $449.00 

GBERXX32K 32K A & T $579.00 



PART# 

CA832PT 



$24 



50 



DISK DRIVE 
CABLE ASSEMBLY 



DESCRIPTION 

CONNECTS (2) 8" 

DISK DRIVES (Shugart 

Qume, etc.) TO 

STANDARD DISK 

CONTROLLER BOARD 



CATALOG REQUEST 

Please send me your 

1981 asap 

Full Line Catalog 



Address. 

City 

Stale 



-Zip- 




computer 
products, 



NEW LOCATION 

1198 E. Willow Street 
Signal Hill, CA 90806 

Toll Free (800) 421-7701 Outside Calif. 

(213)595-6431 msidecaiii. 



ORDERING INFO 

Name, address, phone 

Ship by UPS or Mail 

Shipping Chrg. Add S2.50 up to 



1 lb. -Call lor larger shipments 
Freight, U.S. Mail Add $1.50 
U.S. Only up to 2 lbs. 



We Accept Cash, Check, Money 
Orders, Visa & Master Charge 

(U.S. Funds Only) 
» Tax: 6% Calif. Res. 

COD's s Terms Available on 

Approval (School PO's Accepted) 

($25.00 Minimum Order) 



Circle 25 on Inquiry card. 



Letters, 



Continued from page 34: 
Venice, only to find the wares Much Ado 
About Nothing, or even The Comedy of 
Errors? Or, after conceiving a program 
during A Midsummer Night's Dream, 
who has not labored until the Twelfth 
Night just to get the output As You Like 
It? . . . CPF 

Modification Caveat 

While I especially enjoyed the article 
"What's Inside Radio Shack's Color Com- 
puter" (March BYTE 1981, page 90), there 
is a problem I would like to pass on to 
other BYTE readers. 

The authors indicated that the proces- 
sor speed can be doubled by issuing a 
POKE 65495,0 command. Before I had 
my computer upgraded for Extended Col- 
or BASIC, I used this method to make 
programs run faster. But after getting the 
Extended BASIC upgrade, I had problems 
with double speed. During program ex- 
ecution, everything worked. But if the 
machine was still operating at double 
speed when the program ended, the com- 
puter would hang up, requiring me to 
reset it. (I solved this by restoring the nor- 



mal speed with POKE 65494,0 before the 
program ended.) But if the program ended 
unexpectedly, before I could restore nor- 
mal speed, the computer would hang up. 

Richard A Schafer 

POB 1171 

Fond du Lac WI 54935 

The people at Radio Shack advise us 
that the processor and other parts are 
designed for 1 MHz operation, and that 
any time you try to double this speed, 
you're inviting problems. The reason you 
had problems with Extended BASIC at the 
higher speed is that it keeps certain parts 
(eg: processor and the peripheral interface 
adapter) busier than non-Extended BASIC 
does. At 2MHz, these parts are over- 
loaded. . . . GS 



Define the Problem 

I read Gregg Williams's "Is This Really 
Necessary? A First Look at Design Tech- 
niques" (March 1981 BYTE, page 6) with 
interest. Concerning the lifespan of a 
medium-sized system (described on page 



8), the first phase will also be called sys- 
tem and problem analysis instead of (sys- 
tem) design. 

In the system analysis, the system en- 
vironment is studied and all the para- 
meters that have an influence on the sys- 
tem are resumed and their interrelation is 
defined (perhaps using decision tables). In 
the problem analysis, the designer must 
devise alternative schemes to solve the 
problem and choose the best approach. 
By the end of the analysis, the system has 
been completely specified (hardware and 
software). But, more important than the 
designation of the different phases is the 
fact that, as Mr Williams mentioned, the 
designer must at first respond to the 
"what" of the question. In practice, most 
people try to solve a problem before it has 
been specified. 

The importance of the analysis/specifi- 
cation and design phases in a well-man- 
aged project is shown by T H Bruggere in 
his article "On-Schedule, Reliable Soft- 
ware Depends on Sound Methodology" 
(EDN January 7, 1981). 

Finally, in the references, Mr Williams 
failed to mention M A Jackson's Principles 
of Program Design (New York: Academic 



lit Pi [II if II 



Brand New, Top Quality, Exact Replacement Ribbons & Cartridges. These Ribbons Produce 

Super Jet Black Impressions and Ultra Reliable Print Life. They Are Delivered to Your Door 

Promptly for Much Less Than Most Retail Stores 

•SPECIAL! BUY 10 and GET ONE FREE! 



YOUR PRINTER 



>ACK SIZE RETAIL LIST' 



RADIO SHACK LPIII, LPV 

RADIO SHACK LPII, LPIV 

CENTRONICS. MODS 700 In 703 

CENTRONICS 100, 101A. 102, 
103,300,301,306,308,330, 
358,398,500,501,503,508, 
588, 620, 820. 

CENTRONICS 704-705 

IBM -'SILVER DOLLAR" Sys. 
34, Sys. 32 MDLA, Series 
IMDL4974, 5256, 3287, 3770, 
3771-3774,4974,5100,5103, 
5110, 5228. 5256, 5320MDLA 

IBM - HARMONICA !4". SERIES 
I. MOD 4973/11, 3200, 3289, 
MOD 2. 

TELETYPE MOD 33, 28, 35, 37. 
38, 88. 

DIABLO HYTYPE II (M/S8LK) HI 
YIELD. FITS 70 PRINTERS! 

QUME (FITS 80 PRINTER MODS) 

WANGM/S. 5541W.WC, 5581. 
WD, 658 1W, 2281 W 

DEC '/> x 40YD. 

DEC Vl x 60YD. 

NEC SPINWRITER 



one/pk 
3/pk 
3/pk 
3/pk 



1/pk 
5/pk 



3/pk 

10/pk 

1/pk 

3/pk 
1/pk 

3/pk 
3/pk 
4/pk 



13.95/rart 
18.95/3 pk 
18.95/3 pk 
26.33/3 pk 



16.95 ea 
5.80 ea 



9.42 ea 

2.40 ea 

9.31 ea 

18.00/3 pk 
6.85 ea 

17.77/3 pk 
20.12/3 pk 
23.40/3 tart 



YOUR WHOLESALE PRICE 



8.95/Reload rib. only (S.95 ea) 

11.95/3 pic /3.9S ea) 

11.95/3 pic /3.9B ea) 

17.55/3 pk /5.B5 ea) 



13.95/Giant Cart 
14.90/5 pk 



20.85/3 p< 

13.90/10 pk 

6.87 ea 

13.95/3 |* 
5.95 ea 

12.95/3 |* 
14.25/3 |* 
23.60/4 pk rb. reload 



1 13.95 ea) 
(2.98 ea) 



(6. 95 ea) 

11.39 ea) 

(6.S7 ea) 

(4.65 ea) 
(5.95 ea) 

(4.32 ea) 
(4. 75 ea) 
(5.90 ea) 



SIZE 



.50D" x45' 
.563" « 45' 
.563" x 45' 
1" x 108' 



5/16" x210' 

9/16" x 30' 



1/2" x 36' 

5/16" x 
"High Yield" 
1/4" x 310' 
5/16" x 393' 

1/2" x 120' 
1/2" x 180' 
1/2" x 51' 



COMMENTS 



Nylon I ricl Instr 
Nylon Jet Blk 
Nylon Jet Blk 
Nylon Jet Blk 
5 mil High Speed 



Giant Cart 
Nylon Jet Blk 



Nylon Jet Blk 

Nylon Jet Blk 

300.000 plos imp. 

Moltistrike Film 
Multistrike Film 

Double Spools 
Double Spools 
Nylon/Ex Lng Lite 



R-T3 
C-700 
C-700 
C-100 



C-7045 
R-300 



C-350 

R-450 

C-511 

C-625 
C-550 

R-600 
R-644 
R-400 




TERMS: 

MINIMUM PURCHASE- $20 
PAYMENTBY: CO. D. (UPS), CHECK, 

MASTER CARD, OR VISA CHARGE 

CARD. 
VOLUME DISCOUNTS: 

20- 50 PACKS 10% 

51-100 PACKS 15% 

•UNDER $20, ADD $5 HANDLING. 
"APPROX. RETAIL. PRICE VARIES. 

ANCIE LABORATORIES 



9204 Baltrnora Blvd 
CoHsg* Part. MD 20740 



301-345-6000 (With DC Local) 
301-792-2060 (Ballo. MO Local) 
8O0-63B-0967 (National) 



ADDRESS- 
CITY 



ANCIE Laboratories 
9204 Baltimore Blvd. 
College Park, MD 20740 



301 -345-6000 (Wash. D.C Local) 
301-792-2060 (Balto. MD Local) 
800-638-0987 (National) 



CAT* 



□ Check Enclosed 

□ C.O.D. 
D VISA 

□ MASTER CHARGE 
ACCT. # 



EXP. DATE 

MIN. ORDER $20 

PRICES SUBJECTTO CHANGE 



282 August 1981 © BYTE Publications Inc 



Circle 19 on inquiry card. 



we carry it all.... 



Atari® Software 



VisiCalc 149 

CX4101 Invitation to Programming 1 .. 17 

CX4104 Mailing List 17 

CX4102 Kingdom 13 

CX4103 Statistics 17 

CX4105 Blackjack 13 

CX4106 Invitation to Programming 2 . . 20 

CX4107 Biorhythm 13 

CX4108 Hangman 13 

CX4109 Graph It 17 

CX41 1 1 Space Invader 17 

CX41 10 Touch Typing 20 

CX41 1 5 Mortgage & Loan Analysis. ... 13 

CX41 16 Personal Fitness Program .... 13 

CX41 1 7 Invitation to Programming 3 . . 20 

CX41 1 8 Conversational French 45 

CX41 1 9 Conversational German 45 

CX4120 Conversational Spanish 45 

CX41 21 Energy Czar 13 

CX41 25 Conversational Italian 45 

CX8108 Stock Charting 20 

CXL400 1 Educational System Master . . 21 

CXL4002 Basic Computing Language . . 46 

CXL4003 Assembler Editor 46 

CXL4004 Basketball 30 

CXL4005 Video Easel 30 

CXL4006 Super Breakout 30 

CXL4007 Music Composer 45 

CXL4009 Chess 30 

CXL401 3-D Tic-Tac-Toe 30 

CXL401 1 Star Raiders 33 

CXL4015 TeleLink 20 

Talk & Teach Courseware: 

CX6001 to CX601 7 23 



everything 
and Atari 



for Commodore 



Atari® Peripherals: 

400 16K $349 

410 Recorder 59 

810 Disk 469 

815 Disk 1 199 

822 Printer 359 

825 Printer 629 

830 Modem 159 

850 Interface Module 1 39 



Atari® Accessories 

CX853 16K RAM 89 

CX70 Light Pen 64 




CX30 Paddle 

CX40 Joystick 

CX86 Printer Cable 

C016345 822 Thermal 
Printer Paper 

CAO16087 825 80-col. 
Printer Ribbon 
(3/box) 

Microtek 16K RAM 



18 
18 
42 



17 
79 



Microtek 32K RAM 179 



H commodore 



VIC-20 $ 279 

4032N 1020 

8032 - 1175 

CBM 4022 Printer 630 

CBM 4040 Drive 1020 

CBM 8050 Drive 1420 

CBM C2N Drive 87 

PET-IEEE Cable 37 

IEEE-IEEE Cable 46 



Jk 



ATARI 800 

with 32K RAM 




Disks 



Maxell Disks 1 for $36 

Syncom Disks 1 for 29 

Atari Disks 5 for 22 



only $759 



Printers 

NEC 5530 

Diablo 630 .... 
Trendcom 100 

Starwriter 

Trendcom 200 



12495 

2195 

299 

1495 

489 



Paper Tiger 445G 769 

Paper Tiger 460G 1219 

Epson MX-80 ~| 

MX-80FT > Call for new prices! 
MX-70 J 
Tally 8024 1699 



Software 



EBS Accounts Receivable 

Inventory System $595 

OZZ Information System 329 

BPI General Ledger 329 

Tax Package 399 

Dow Jones Portfolio Management . . 129 

Pascal 239 

WordPro 3 (40 col.) 1 86 

WordPro 4 (80 col.) 279 

WordPro 4 Plus (80 col.) 339 

Wordcraft 80 319 



Please Call Between 1 1AM & 6PM 
(Eastern Standard Time) 

(800) 233-8950 



No Risk- 

No Deposit On 
Phone Orders - 

COD or 

Credit Card -Shipped Same Day You Call' 

Prepaid Orders Receive Free Shipping 




master charge 



* on all in stock units 
Computer Mail Order 



Circle 73 on inquiry card. 

501 E. Third St., Williamsport, PA 17701 (717) 323-7921 



Circle 317 on inquiry card. 



IF 

YOU'RE IN 

COMPUTERS, 

YOU 

SHOULD BE 

IN 

AKRON 

FIND OUT WHY! 



For more information about Akron write to: 

Mr. David B. Petersilge 

Private Industry Council Coordinator 

c/o Akron Regional Development Board 

One Cascade Plaza 

Suite 800 

Akron, Ohio 44308 

(216) 376-5550 



NAME 
TITLE 



COMPANY 
ADDRESS . 
CITY 



STATE 



ZIP 



© 



pie 

Hi pr IltiTd iratui' 



pHisrifo iratui'V y council 

This advertisement prepared and placed oy the Private Industry Council (PIC) 
for the City of Akron and Summit and Medina Counties. 



Letters , 



Press, 1975), which shows how to correct- 
ly dissect a problem. In his method, the 
program structure is based on the data 
structure that is first defined. 

Roland Vannay 
Kirchweg 43a 
5415 Nussbaumen 
Switzerland 



Correction 



I want to correct an inaccuracy in Chris 
Morgan's editorial in the May 1981 BYTE. 
(See "How Can We Stop Software 
Piracy?", page 6.) RCS/MicroModeller 
was developed in the United States by 
Ferox Microsystems Inc (Falls Church, 
Virginia) and is marketed in England by 
Intelligence (UK) Limited. RCS has been 
marketed in the United States and Canada 
under the name Micro DSS/F by Addi- 
son-Wesley Publishing Company since 
June, 1981. 

Any BYTE readers interested in further 
information about RCS should contact 
Phil Evans, our vice-president of 
marketing, at the address below or call 
him at (800) 336-4766; in Virginia (703) 
998-0330. 

Rusty Luhring 

President 

Ferox Microsystems Inc 

5881 Leesburg Pike 

Suite B-l 

Falls Church VA 22041 

Manual Printers 

"The Epson MX-80 and MX-70 
Printers" was a very informative article. 
(See the May 1981 BYTE, page 22.) 
However, I called Epson in Great Neck, 
New York, to see if I could get David 
Lien's MX-70 User's Manual, as men- 
tioned on page 30, and I was told it does 
not exist! Does BYTE know something 
Epson doesn't? If so, how can I get this 
manual? 

Richard FitzHugh 
3806 Everett St 
Kensington MD 20795 

Early shipments of Epson printers were 
not accompanied by a user's manual. 
Owners of Epson printers can obtain a 
user's manual, free of charge, by contact- 
ing Kari Westlake, Epson America Inc, 
23844 Hawthorne Blvd., Torrance CA 
90505, (213) 378-2220. . . . MHl 



284 August 1981 © BYTE Publications Inc 



Begin 
at 

square 
one. 




No one covers 
the computer 
world like 
Business Week. 

Business Week is 
the only business 
publication with 
an entire editorial 
section, 
Information 
Processing, 
covering the 
computer 
industry. Week 
after week, 
Business Week 
keeps more than 
5 1 /2 million 



business leaders 
up to date on 
important 
changes and 
developments in 
the world of 
computers, 
computer 
software and 
services. When it 
comes to 
computers, 
Business Week 
has much more 
coverage than 
Fortune, Forbes 
or the Wall Street 
Journal. 



Business Week 
readers have 
purchasing 
power. 

9 out of 1 
Business Week 
subscribers hold 
management 
positions. And 
over 30% are 
involved in the 
purchasing or 
leasing decisions 
for computer 
equipment, 
services and 
software. 
Business Week 
has the lowest 
cost per 
thousand. 
Business Week 
has the lowest 
CPMof any 



newsweekly or 
business 
publication in 
reaching 
managers who 
make purchasing 
decisions in the 
electronic data 
processing 
category, both for 
equipment and 
services. You get 
the best audience 
there is, for the 
smallest byte out 
of your 
advertising 
budget. 
So get the 
complete picture 



from Frank Long 

at Business Week, 

McGraw-Hill 

Building, 607 

Boylston Street, 

Boston, 

Massachusetts 

02116, 

61 7-262-1 160, or 

Donald Thompson, 

Business Week, 

425 Battery 

Street, 

San Francisco, 

California 941 11, 

415-362-4600, 

or your nearest 

Business Week 

representative. 

Sources: BW Profile '81. MRI 
[Spring 1381) 



BusinessWeek BIB 



Circle 39 on inquiry card. 



BYTE August 1981 285 



Design Principles 
Behind Smalltalk 



The purpose of the Smalltalk pro- 
ject is to provide computer support 
for the creative spirit in everyone. 
Our work flows from a vision that in- 
cludes a creative individual and the 
best computing hardware available. 
We have chosen to concentrate on 
two principal areas of research: a 
language of description (program- 
ming language) that serves as an in- 
terface between the models in the 
human mind and those in computing 
hardware, and a language of interac- 
tion (user interface) that matches the 
human communication system to that 
of the computer. Our work has 
followed a two- to four-year cycle 
that can be seen to parallel the scien- 
tific method: 



Daniel H H Ingalls 

Learning Research Group 

Xerox Palo Alto Research Center 

3333 Coyote Hill Rd 

Palo Alto CA 94304 



• Build an application program 
within the current system (make an 
observation) 

• Based on that experience, redesign 
the language (formulate a theory) 

• Build a new system based on the 
new design (make a prediction that 
can be tested) 

The Smalltalk-80 system marks our 
fifth time through this cycle. In this 
article, I present some of the general 
principles we have observed in the 



ATTENTION GOVERNMENT D P 
USERS AND PURCHASERS 

We represent many fine micro products and manufacturers 
on the U.S. Government's GSA Schedule, including 

Apple, Cromemco, Micropolis 
and Seequa Computers 

Purchasing from the Schedule will save you the time 
consumed by the bid process. Products shipped throughout 
the United States and world-wide. Visit or write any of our 
stores for more information or to receive our catalogue of 
products represented. 

Computes, 



the dependable store 



257 West Street, Annapolis, MID 21401 - (301) 268-6505 

13A Allegheny Avenue, Towson, MD 21204 - (301 ) 296-0520 

9330 Georgia Avenue, Silver Spring, MD 20910 - (301) 588-3748 

6671 Backlick Road, Springfield, VA 22150 - (703) 644-5500 

Plaza 38. 2442 Route 38, Cherry Hill, NJ 08002 - (609) 779-0023 

Callers outside metropolitan areas served by our stores 

Please call (301) 268-5801 

Career Opportunities Available * An Equal Opportunity Employer 



course of our work. While the presen- 
tation frequently touches on 
Smalltalk "motherhood," the prin- 
ciples themselves are more general 
and should prove useful in evaluating 
other systems and in guiding future 
work. 

Just to get warmed up, I'll start 
with a principle that is more social 
than technical and that is largely 
responsible for the particular bias of 
the Smalltalk project: 

Personal Mastery: // a system is to 
serve the creative spirit, it must be en- 
tirely comprehensible to a single in- 
dividual. 

The point here is that the human 
potential manifests itself in in- 
dividuals. To realize this potential, 
we must provide a medium that can 
be mastered by a single individual. 
Any barrier that exists between the 
user and some part of the system will 
eventually be a barrier to creative ex- 
pression. Any part of the system that 
cannot be changed or that is not suffi- 
ciently general is a likely source of 
impediment. If one part of the system 
works differently from all the rest, 
that part will require additional effort 
to control. Such an added burden 
may detract from the final result and 
will inhibit future endeavors in that 
area. We can thus infer a general 
principle of design: 

Good Design: A system should be 
built with a minimum set of un- 
changeable parts; those parts should 
be as general as possible; and all parts 
of the system should be held in a 
uniform framework. 

Language 

In designing a language for use 
with computers, we do not have to 
look far to find helpful hints. 



286 August 1981 © BYTE Publications Inc 



Circle 80 on inquiry card. 




COfTlPUTER DEVICES 




FEATURE PRODUCT 



$629.00 



S-100 PRODUCTS 




vsppm . w 

QUALITY RAM FROM SYSTEMS GROUP 

• Z-80 4MHZ operation with no wait states 

• IEEE compatible timing - 200 NS 4116's 

• Factory assembled, tested & burned in 

DMB6400'64K(Bank Select, shown) $749.00 

DM6400 64K 545.00 

DM4800 48K 520.00 

DM3200 32K 495.00 




CONFIGURE A COMPLETE S-100 SYSTEM 
WITH 2nd GENERATION' PRODUCTS 
FROM SYSTEMS GROUP. 

• CPC 2810 (shown) Z-80A processor board 
(4MHZ) with 4 serial & 2 parallel 

ports $369.00 

• CPC2813 - same as CPC2810 but 2 serial 
ports only $345.00 

• FDC2801/8 - 8" floppy disk controller 
board, up to 4 single/double sided drives, 
single or double density $349.00 

• [NO-2804 - 4 channel serial I/O 329.00 

• CRA-100-Cromix' adaptor board.. 45.00 

CALL US FOR OUR MOST 
CURRENT PRICES! 

"2nd Generation is a trademark of Measurement 
Systems and Controls. Cromix is a trademark of 
Cromernco, Inc. Tilt-Back is a trademark of 
Wabash. Inc. 



ADDS VIEWPOINT TERMINAL 

Detachable keyboard weighs only 2 lbs. 

110-19,200 Baud - RS-232C 

Cursor control keys - audible tone 

24 x 80 characters - 12" screen 

14 key numeric keypad 

7 switch selectable character sets 

Addressable cursor 

2 position screen tilt 
Normal or reverse video 
Half or zero intensity 

3 function keys (six functions) 
Lightweight (22 lbs. with keyboard) 
Switch select block or underline cursor 
Switch select blinking or steady cursor 



16K MEMORY <, OQ nn 
EXPANSION KIT $<*»•"" 

For Apple. TRS-80 keyboard, Exidy, and all 
other systems using 4116 dynamic rams or 
equivalent. All IC's are prime Mitsubishi MK 
4116-3. 

• 200 NSEC access, 375 NSEC cycle 

• Burned-in and fully tested 

• 1 ftdl year parts replacement guarantee 



wabash 




8" or 5 1 /j" flexible diskettes certified 100% 
error free with manufacturers 5 year limited 
warranty on all 8" media. Soft sectored in tilt- 
back* boxes of 10. 5Vi" available in 10 Sector. 
(Add $3.00 for plastic library cases) 

8" single sided, single density $29.95 

8" single sided, double density 37.95 

8" double sided, double density 48.95 

5 l A" single sided, single density 27.95 

5VS" single sided, double density 29.95 

8" DISK DRIVES 

Shugart 801R $390.00 

NEC FD1160 (double sided) 595.00 

Memorex MRX-101 8" Winchester style, hard 
disk drive, 10 megabytes $2,000.00 



fi502 PRODUCTS 




BETA 32K BYTE EXPANDABLE RAM FOR 
fi502 AND 6800 SYSTEMS 
AIM 65 KIM SYM PET S44-BUS 

• Plug compatible with the AIM-65/SYM expan- 
sion connector by using a right angle connec- 
tor (supplied). 

• Memorv board edge connector plugs into the 
6800 S44 bus. 

• Connects to PET using an adaptor cable. 

• Uses + 5V only, supplied from the host com- 
puter. 

• Full documentation. Assembled and tested 
boards are guaranteed for one full year. 
Purchase price is fully refundable if board is 
returned undamaged within 14 davs. 

Assembled with 32K RAM ^...$349.00 

& Tested with 16K RAM 329.00 

Bare board, manual & 6 hard-to-get parts. 99.00 
PET interface kit. Connects the 32K RAM board 
toa4Kor8KPET $ 69.00 

ROCKWELL AIM 65 




AIM 65 with IK ram $425.00 

AIM 65 with4K ram 485.00 

AIM power supply 125.00 

Professional AIM enclosure 169.00 

Budget AIM enclosure 50.00 

KIM enclosure 40.00 

SYM enclosure 30.00 



TERMS: Minimum order $15.00. Minimum 
shipping and handling $3.00. Calif, residents 
add 091 sales tax. Cash, checks. Mastercard. 
Visa and purchase orders from qualified firms 
and institutions are accepted. Product availabili- 
ty and pricing are subject to change without 
notice. 

INTERNATIONAL ORDERS: Add 15 % to pur- 
chase price for all orders. Minimum shipping 
charge is $20.00. Orders with insufficient funds 
will be delayed. Excess funds will be returned 
with your order. All prices are U.S. only. 



CCXnPUTER D6WC8 

ISO W.COUirtJ AVE. 

ORRRGE, CR 95668 

(714)633-7280 



Everything we know about how peo- 
ple think and communicate is ap- 
plicable. The mechanisms of human 
thought and communication have 
been engineered for millions of years, 
and we should respect them as being 
of sound design. Moreover, since we 
must work with this design for the 
next million years, it will save time if 
we make our computer models com- 
patible with the mind, rather than the 
other way around. 

Figure 1 illustrates the principal 
components in our discussion. A per- 



son is presented as having a body and 
a mind. The body is the site of 
primary experience, and, in the con- 
text of this discussion, it is the 
physical channel through which the 
universe is perceived and through 
which intentions are carried out. Ex- 
perience is recorded and processed in 
the mind. Creative thought (without 
going into its mechanism) can be 
viewed as the spontaneous ap- 
pearance of information in the mind. 
Language is the key to that informa- 
tion: 



• • • WRITE OR CALL FOR FREE CATALOG* • • 



The MAX BOX: Manufactured by ]ohn D. Oviens Associates. 8" dual drive cabinet com- 
plete with power supply & fan. Will hold Qumes, Shugarts or Siemens. Excellent design 

and engineering $ 325. i 

With2Shugart801R Drives. .$1,275. With 2 QUME Double sided drives. .51,680. § 



CALIFORNIA COMPUTER SYSTEMS HIGH IN QUALITY, LOW IN PRICE 

Z80 CPU, 4 Mhz, with one serial port; 12 slot S-100 mainframe, disk controller, 64K 

Dynamic Ram, CP/M2.2® SYSTEM 2210A $1,750. 

We configure complete systems with drives and additional I/O. 



IMS 5000 and 8000 Systems and IMS Memory 

Outstanding long term reliability and performance. These systems feature a Z80A CPU, 
S-100 bus; double density drives (either single or double sided), DMA disk controller, 64K 
RAM, 2 serial & 1 parallel port. Prices include the very finest implementation of CP/M® 
available in the entire industry. Hard disk anc multi user software options. 



Multi-User, Networking Operating System: TURBODOS 

Turbodos; Spectacular new CP/M® compatible operating system. Z80 code, interrupt 
driven. Up to 6X faster than CP/M®up to 35% increased disc capacity. IMS compatible. 
Multi-user (up to 16 users) $750. Single user $250. 



PER SCI— THE KING AND QUEEN OF DRIVES! 

Model 299B: Dual headed drives, total 3.2 MB unformatted $2,300. 

Model 277: Dual 8 inch drives, voice coil positioned, IBM compatible, 1600 K BYTES per 

drive, unformatted $1,245. 

Slimline cabinet and power for either 277 or 29? $ 300. 



GRAPHICS EQUIPMENT 

MICROANGELO $2,295. 

High resolution graphics system. 15" 22MHZ, green phosphor screen, 72 key keyboard; 

includes complete cabling and software. From SCION. Screenware PAK II $ 350. 

S-100 Graphics card $ 985. 



HIP AD DIGITIZER from Houston Instruments. Create graphics using stylus. Easier 
than joystick or keyboard input. For S-100, Apple, TRS-80, PET $755. 



GRAPHICS SOFTWARE. On line, real time, for the M9900 to drive the Microangelo. 
For use in design of PC board masks, IC masks and other applications $1,000. 



CAT 100 Full Color Graphics: Digital Graphics Complete S-100 color imaging system 
w/high performance video FRAME/GRABBER $1,875. 



MAURO MP-250B Proac Plotter: Uses standard paper, choice of pen colors and line 
widths, resolution is 200 steps per inch; .005" tracking error; RS232 $895. 



WE EXPORT: 



Overseas Callers: 



TWX 710 588 2844 



Phone 212 448-6298 or Cable: OWENSASSOC 



WE OFFER A FULL RANGE OF EXPERT CONSULTING SERVICES 



JOHN D. OWENS 

Associates, Inc. 

12 Schubert Street 
Staten Island, New York 10305 

1 44816283 212 448-2913 212 448-6298 



Purpose of Language: To provide a 
framework for communication. 

The interaction between two in- 
dividuals is represented in figure 1 as 
two arcs. The solid arc represents ex- 
plicit communication: the actual 
words and movements uttered and 
perceived. The dashed arc represents 
implicit communication: the shared 
culture and experience that form the 
context of the explicit communica- 
tion. In human interaction, much of 
the actual communication is achieved 
through reference to the shared con- 
text, and human language is built 
around such allusion. This is the case 
with computers as well. 

It is no coincidence that a computer 
can be viewed as one of the par- 
ticipants in figure 1. In this case, the 
"body" provides for visual display of 
information and for sensing input 
from a human user. The "mind" of a 
computer includes the internal 
memory and processing elements and 
their contents. Figure 1 shows that 
several different issues are involved in 
the design of a computer language: 

Scope: The design of a language for 
using computers must deal with inter- 
nal models, external media, and the 
interaction between these in both the 
human and the computer. 

This fact is responsible for the dif- 
ficulty of explaining Smalltalk to peo- 
ple who view computer languages in 
a more restricted sense. Smalltalk is 






explicit 
communication /" 




212 448-2913 



[ implicit 
i communication J 



Figure Is The scope of language design. 
Communication between two people (or 
between one person and a computer) in- 
cludes communication on two levels. Ex- 
plicit communication includes the infor- 
mation that is transmitted in a given 
message. Implicit communication includes 
the relevant assumptions common to the 
two beings. 



288 August 1981 © BYTE Publications Inc 



not simply a better way of organizing 
procedures or a different technique 
for storage management. It is not just 
an extensible hierarchy of data types, 
or a graphical user interface. It is all 
of these things and anything else that 
is needed to support the interactions 
shown in figure 1. 

Communicating Objects 

The mind observes a vast universe 
of experience, both immediate and 
recorded. One can derive a sense of 
oneness with the universe simply by 
letting this experience be, just as it is. 
However, if one wishes to par- 
ticipate, literally to take a part, in the 
universe, one must draw distinctions. 
In so doing one identifies an object in 
the universe, and simultaneously all 
the rest becomes not-that-object. 
Distinction by itself is a start, but the 
process of distinguishing does not get 
any easier. Every time you want to 
talk about "that chair over there," 
you have to repeat the entire process 
of distinguishing that chair. This is 
where the act of reference comes in: 
we can associate a unique identifier 
with an object, and, from that time 
on, only the mention of that identifier 
is necessary to refer to the original 
object. 

We have said that a computer 
system should provide models that 
are compatible with those in the 
mind. Therefore: 

Objects: A computer language should 
support the concept of "object" and 
provide a uniform means for referring 
to the objects in its universe. 

The Smalltalk storage manager pro- 
vides an object-oriented model of 
memory for the entire system. 
Uniform reference is achieved simply 
by associating a unique integer with 
every object in the system. This 
uniformity is important because it 
means that variables in the system 
can take on widely differing values 
and yet can be implemented as simple 
memory cells. Objects are created 
when expressions are evaluated, and 
they can then be passed around by 
uniform reference, so that no provi- 
sion for their storage is necessary in 
the procedures that manipulate them. 



When all references to an object have 
disappeared from the system, the ob- 
ject itself vanishes, and its storage is 
reclaimed. Such behavior is essential 
to full support of the object 
metaphor: 

Storage Management: To be truly 
"object-oriented, " a computer system 
must provide automatic storage 
management. 

A way to find out if a language is 



working well is to see it tne programs 
look like they are doing what they are 
doing. If they are sprinkled with 
statements that relate to the manage- 
ment of storage, then their internal 
model is not well matched to that of 
humans. Can you imagine having to 
prepare someone for each thing you 
tell them or having to inform them 
when you are through with a given 
topic and that it can be forgotten? 

Each object in our universe has a 
life of its own. Similarly, the brain 



• * • GREETINGS TO OUR FRIENDS IN CHILE* • • 



SD SYSTEMS 

Z80 STARTER KIT: single board compu- 
ter with RAM / ROM, I / O, display, key- 

bd, kluge area $360 

VFII: double density floopy controller kit, 

with software $390 

CPU Z80A, 4 Mhz, serial & parallel I/O 

IK on-board RAM, Z80 CTC $345 

EXPANDORAM II including high quality 

4116s $540 

Complete SD line available including kits 
and FACTORY Assembled and tested 
boards & systems at discount prices. 



TELETYPE 

Model 4320 AAA or AAK 
Model 43ASR, 8 level, 1" tape 



.$2,595. 



dBASE II Ashton-Tate $615. 

Brings power of mainframe database 
software to a microcomputer. Runs under 
CP/M® . Extremely easy to use. Manual 

and demo software $50. 

Money Back Guarantee 



MUSYS Single BD Computer 

Z80 processor, 64K Dyn RAM, Console 
serial port, S-100 parallel interface, 
Bootstrap PROM $1300. 



HAZELTINE1500 $ 925. 

1510 $1,030. 

1520 $1,265. 

220 volt models, add $100 

EXEC 80 $1,115. 

90 day on-site warrantee. 



IBM 3101 CRT Model 10 $1,250. 

Model 20 $1,450. 

Selectric-like, detached keyboard. 9x16 
dot matrix. Maintenance contract from 
IBM only $70 per yean 



ITHACA INTERSYSTEMS 

Inventory sale on board sets & systems 



MARINCHIP SYSTEMS M9900 

Uses TI9900 16 bit CPU. Full S-100, IEEE. 
Extensive software. Boards from $550, 
systems $4,995. 



TEXAS INSTRUMENTS Printers 

10% off list price on entire Tl printer line. 



CENTRONICS 737 $780. 



EPSON MX80 550. 

RS 232 Interface $ 50. 



CORVUS Hard Drives 

Model 11, Hard Disk System $4,820. 

Mirror Backup System $ 715. 



DMA-DOS NORTH STAR 8" Floppy 
Subsystem 

A new operating sytem, completely 
CP/M® compatible that allows use of 
both 8" (Shugart single sided, double 
density via Tarbell controller) and 5 l A" 
drives. Allows transfer of file from 8" to 
5Vi" and vice versa. Complete hardware, 
with software package . . . , $1,955. 



TARBELL 

Double density controller $435. 

Z80CPU 395. 



TEI MAINFRAMES, S— 100 

We are proud to announce that we are 
now a TEI stocking distributor. For the 
best in mainframes. . . .TEI! I 



TELEVIDEO CRTs 

912.. $780. 920. .$850. 



950. .$1,050. 



COMMUNICATIONS SOFTWARE 
from Hawkeye Grafix 

Enables communcations from a micro to a 
terminal or to another micro, mini or 
maxi computer. 
Object Code $75. Source Code $250. 



3M SCOTCH® Diskettes 

5 box minimum, price per box 
Model 740, 8" single sided, 

single density $27. 00 

Model 741, 8" single sided, 

double density 35.50 

Model 743, 8" double sided, 

double density 43.00 

Model 744-0, 5 l A soft sectored, single sided 
744-10, 5Vi", hard sectored, 
single sided 27.00 



Prices subject to change without notice 



JOHN D. OWENS 

Associates, Inc. 

SEE OUR AD ON FACING PAGE 



August 1981 © BYTE Publications Inc 289 



provides for independent processing 
along with the storage of each mental 
object. This suggests a third principle 
for object-oriented design: 

Messages: Computing should be 
viewed as an intrinsic capability of 
objects that can be uniformly invoked 
by sending messages. 

Just as programs get messy if object 
storage is dealt with explicitly, con- 
trol in the system becomes com- 
plicated if processing is performed ex- 
trinsically. Let us consider the process 
of adding 5 to a number. In most 
computer systems, the compiler 
figures out what kind of number it is 
and generates code to add 5 to it. This 
is not good enough for an object- 
oriented system because the exact 
kind of number cannot be determined 
by the compiler (more on this later). 
A possible solution is to call a general 
addition routine that examines the 
type of the arguments to determine 
the appropriate action. This is not a 
good approach because it means that 



this critical routine must be edited by 
novices who just want to experiment 
with their own class of numbers. It is 
also a poor design because intimate 
knowledge about the internals of ob- 
jects is sprinkled throughout the 
system. 

Smalltalk provides a much cleaner 
solution: it sends the name of the 
desired operation, along with any 
arguments, as a message to the 
number, with the understanding that 
the receiver knows best how to carry 
out the desired operation. Instead of a 
bit-grinding processor raping and 
plundering data structures, we have a 
universe of well-behaved objects that 
courteously ask each other to carry 
out their various desires. The 
transmission of messages is the only 
process that is carried on outside of 
objects and this is as it should be, 
since messages travel between ob- 
jects. The principle of good design 
can be restated for languages: 

Uniform Metaphor: A language 
should be designed around a power- 



ful metaphor that can be uniformly 
applied in all areas. 

Examples of success in this area in- 
clude LISP, which is built on the 
model of linked structures; APL, 
which is built on the model of arrays; 
and Smalltalk, which is built on the 
model of communicating objects. In 
each case, large applications are 
viewed in the same way as the fun- 
damental units from which the 
system is built. In Smalltalk especial- 
ly, the interaction between the most 
primitive objects is viewed in the 
same way as the highest-level interac- 
tion between the computer and its 
user. Every object in Smalltalk, even 
a lowly integer, has a set of messages, 
a protocol, that defines the explicit 
communication to which that object 
can respond. Internally, objects may 
have local storage and access to other 
shared information which comprise 
the implicit context of all communica- 
tion. For instance, the message + 5 
(add five) carries an implicit assump- 
tion that the augend is the present 



MAIL ORDER DISCOUNTS 




tipple computer 

* Sales and Service 
APPLE II PLUS 48K 



$1,099 



WE DISCOUNT PRICES — NOT SERVICE 




HARDWARE 

DISK II DRIVE & INTERFACE 499 

DISK II SECOND DRIVE 445 

BASF 5V 2 " DISKETTES (10) 25 

LANGUAGE SYSTEM W/PASCAL 395 

INTEGER BASIC FIRMWARE CARD 149 

APPLESOFT II FIRMWARE CARD 149 

CENTRONICS PRINTER INTERFACE CARD .179 
HIGH-SPEED SERIAL INTERFACE CARD ... 145 

GRAPHICS TABLET 649 

APPLE IEEE-488 INTERFACE CARD 369 

M&R SUP-R-MOD RF MODULATOR 30 

MICROSOFT Z-80 SOFTCARD SYSTEM 290 

MICROSOFT 16K RAM CARD 169 

VIDEX BO COLUMN BOARD 295 

HAYES MICROMODEM II 299 

AMDEX 13" COLOR MONITOR 429 

NEC 12" GREEN MONITOR 239 

SILENTYPE PRINTER W/INTERFACE 350 

EPSON MX-80 FT 649 

QUME SPRINT 5/45 PRINTER 2499 



SOFTWARE 



APPLE DOS TOOLKIT 65 

APPLE PLOT 60 

TAX PLANNER 99 

APPLE FORTRAN 159 

APPLE PILOT 125 

APPLE MUSIC THEORY 39 

APPLEWRITER 65 

DOW JONES PORTFOLIO EVALUATOR 45 

DOW JONES NEWS & QUOTES REPORTER . 85 

THE CONTROLLER 515 

VISICALC (16 SECTOR) 165 

VISIPLOT 149 

VISITREND/VISIPLOT 215 

DESKTOP PLAN II 159 

BPI BUSINESS SOFTWARE (EACH) 335 

SUPER TEXT II 125 

PROGRAMMA APPLE PIE 110 

EASYWRITER (80 COLUMNS) 219 

D.B. MASTER 180 

MICROSOFT FORTRAN 165 



y I v 

ATARI 



ATARI 800 32K* 



$759 



ATARI 400 (16K) 350 

410 PROGRAM RECORDER 69 

810 DISK DRIVE 499 

815 DUAL DISK DRIVE 1199 

16K RAM MEMORY MODULE 89 

850 INTERFACE MODULE 175 

830 ACOUSTIC MODEM 159 

825 PRINTER (CENTRONIC 737)* 650 

JOYSTICK PAIR 18 

LIGHT PEN 65 

ATARI VISICALC 169 

BASIC LANGUAGE 45 

ASSEMBLER EDITOR 45 

MUSIC COMPOSER 45 

STAR RAIDER 39 

COMPUTER CHESS 30 

BASKETBALL 30 

TELELINK 20 

•SPECIAL: Effective until 8/31/81 



computer ciq<z. inc. 

Authorized Apple Dealer & Service Center 

4688 CONVOY STREET, SAN DIEGO, CA 92111 

(714) 565-4062 



TO ORDER: Please send cashier's check, money order or personal check 
(allow 10 business days to clear). VISA and Master Card credit card service 
add 3%. American Express credit card service add 5%. Shipping, handling 
and insurance in U.S. add 3% (minimum $4). California residents add 6% 
sales tax. Foreign orders add 10% for shipping. Equipment is subject to 
price change and availability. All equipment carries factory warranty. Store 
prices differ from mail order prices. TELEX: 697120 DATAMAX-SDG 

CALL OR WRITE FOR A COMPLETE PRICE LIST 



290 August 1981 © BYTE Publications Inc 



Circle 65 on inquiry card. 



BASF FtotyDtak 
No. 



SU» FI«|4IMk 8 I 



ore than four decades of experi- 
ence in magnetic media-BASF 
invented magnetic recording 
tape, the forerunner of today's 
wide range of magnetic media, 
back in 1934, and was the first 
independent manufacturer of 
IBM-compatible floppy disks. 



Tough Tyvek sleeve— no paper 
dust, no static electricity. 



Special self-cleaning jacket and 
liner help eliminate data errors 
and media wear and tear. 




BASF BASF FlexyDisk 



Center hole diameter punched to 
more accurate standards than 
industry specifications, for top 
performance. 



Bi-axially oriented polyester 
substrate— for uniform and reli- 
able performance year after year. 



Cross-linked oxide coating -for 
low head wear and long trouble- 
free media life. 



Total capability -one of two man- 
ufacturers in the world that 
makes both 8" and 5.25" models, 
has tape and disk experience, and 
manufactures floppy disk drives. 



Double lubrication -lubricants 
both in the formula and on the 
disk surface, to minimize media 
wear due to head friction. 



Packaging to suit your 
requirements— standard flip-top 
box , Kassette 10® storage case, 
or bulk pack. 



100% certification -every single 
disk is tested at thresholds 2-3 
times higher than system require- 
ments, to be 100% error-free. 



For the name of your nearest 
supplier, write BASF Systems, 
Crosby Drive, Bedford, 
MA 01730, or call 617-271-4030. 




BASF 



Floppy Disks Mag Cards Cassettes Computer Tapes Disk Packs Computer Peripherals 



Circle 33 on inquiry card. 



value of the number receiving the 
message. 



Organization 

A uniform metaphor provides a 
framework in which complex systems 
can be built. Several related organiza- 
tional principles contribute to the suc- 
cessful management of complexity. 
To begin with: 




Figure 2: System complexity. As the 
number of components in a system in- 
creases, the chances for unwanted interac- 
tion increase rapidly. Because of this, a 
computer language should be designed to 
minimize the possibilities of such in- 
terdependence. 



Modularity: No component in a com- 
plex system should depend on the in- 
ternal details of any other compo- 
nent. 



This principle is depicted in figure 
2. If there are N components in a 
system, then there are roughly 
N-squared potential dependencies 
between them. If computer systems 
are ever to be of assistance in complex 
human tasks, they must be designed 
to minimize such interdependence. 
The message-sending metaphor pro- 
vides modularity by decoupling the 
intent of a message (embodied in its 
name) from the method used by the 
recipient to carry out the intent. 
Structural information is similarly 
protected because all access to the in- 
ternal state of an object is through 
this same message interface. 

The complexity of a system can 
often be reduced by grouping similar 
components. Such grouping is 
achieved through data typing in con- 
ventional programming languages, 
and through classes in Smalltalk. A 



class describes other objects — their 
internal state, the message protocol 
they recognize, and the internal 
methods for responding to those 
messages. The objects so described 
are called instances of that class. Even 
classes themselves fit into this 
framework; they are just instances of 
class Class, which describes the ap- 
propriate protocol and implementa- 
tion for object description: 

Classification: A language must pro- 
vide a means for classifying similar 
objects, and for adding new classes of 
objects on equal footing with the 
kernel classes of the system. 

Classification is the objectification of 
nessness. In other words, when a 
human sees a chair, the experience is 
taken both literally as "that very 
thing" and abstractly as "that chair- 
like thing." Such abstraction results 
from the marvelous ability of the 
mind to merge "similar" experience, 
and this abstraction manifests itself as 
another object in the mind, the 
Platonic chair or chairness. 




GRAPHIC 
SOFTWARE 

FOR 
MICROCOMPUTERS 



by B.J. Korites, PhD -a self-teaching guide that will showyou how 
to write graphics software on your microcomputer. Theory and 
program listings presented side by side. Contains 61 programs for 
2 and 3 dimensional graphics, isometric and perspective 
transformations, scaling, stretching, clipping, intersections, 
shading, tablet software, hidden line removal, dynamic simulation, 
applications to engineering, science and business. Practice 
problems for classroom use. Covers elementary to advanced 
concepts. Perfect for professionals, students and software 
developers. All programs in BASIC, written on the Apple II Plus 
48K but convertible to other systems. 



Book With program listings - $19.95 Disk (if programs - $18.95 Add $2 per item shipping in US and Canada, $12 elsewhere. Add $5 lor UPS. 

visa/mastercharge accepted. Call (517)934-0445 for faster delivery. 

KERN PUBLICATIONS • PO Box 1029A • Duxbury, MA 02332 (617)934-0445 



292 August 1981 © BYTE Publications Inc 



Circle 187 on inquiry card. 








$3398 

10M B 

HARD 
DISK 

YOU'VE BEEN 
WAITING FOR 



XCOMP introduces a complete micro-size disk 
subsystem with more... 

• MORE STORAGE 

• MORE SPEED 

• MORE VALUE 

• MORE SUPPORT 

S100 users . . . The XCOMP subsystem is now 
available with 1 megabytes of storage; 5 megabytes 
also available at $2,898.00. Compare the price and 
features of any other 5'/4-inch — or even 8-inch 
system, and you'll agree that XCOMP's value is 
unbeatable. 

OUTPERFORMS OTHER HARD DISKS 

Floppy disk and larger, more expensive hard disks are 
no match for this powerful little system. More data is 
available on every seek: 64K on 10MB and 32K on 
5MB. Faster seek time too — an average of 70MS. It 
provides solid performance anywhere with only 20 
watts of power. Data is protected in the sealed 
enclosure, and the landing zone for heads provides 
another margin of safety. The optional power board 
plugs directly into the S100 bus and provides power 
for the drive. 

FAST CONTROLLER 

The XCOMP controller is the key to this system's 
high efficiency operation. Speed-up features include 
interleave without table lookup, block-deblock with 
controller buffer, and read lookahead. OEMs world 
wide have already proven the outstanding perfor- 
mance of the XCOMP controller. 



MORE SOFTWARE 

Included with the system is software for testing, for- 
matting, I/O drivers for CP/M® , plus an automatic 
CP/M driver attach program. Support software and 
drivers for MP/M® and Oasis® are also available. The 
sophisticated formatting program assigns alternate 
sectors for any weak sectors detected during format- 
ting, assuring the lowest possible error rate — at least 
ten times better than floppies. 

WARRANTY 

The system has a full one-year warranty on parts and 
workmanship. 

ALSO AVAILABLE FROM XCOMP 

• General Purpose controllers (8 bit interface), with 
easy interface to microprocessor- based systems. 

• GP controller adapter that plugs directly into most 
Z80 computers. 

• ST/R GP controller for the 5MB and 1 0MB drive 
above, with ST506 type interface. 

• SG/R GP controller for SA1 000 interface. 

• SM/R GP controller for storage module drives. 

• ST/S, SG/S, and SM/S, same as above, for the 
S100 bus. 

Quantity discounts available. Distributor, Dealer, and 
OEM inquiries invited. 

See your local Dealer, or call: 

XCOMP, Inc. 
7566 Trade Street 
San Diego, CA 92121 
Tel: (714) 271-8730 
Telex: 182786 



Circle 405 on inquiry card. 




Classes are the chief mechanism for 
extension in Smalltalk. For instance, 
a music system would be created by 
adding new classes that describe the 
representation and interaction pro- 
tocol of Note, Melody, Score, Timbre, 
Player, and so on. The "equal 
footing" clause of the above principle 
is important because it insures that 
the system will be used as it was 
designed. In other words, a melody 
could be represented as an ad hoc col- 
lection of Integers representing pitch, 
duration, and other parameters, but 
if the language can handle Notes as 
easily as Integers, then the user will 
naturally describe a melody as a col- 
lection of Notes. At each stage of 
design, a human will naturally choose 
the most effective representation if 
the system provides for it. The princi- 
ple of modularity has an interesting 
implication for the procedural com- 
ponents in a system: 



Polymorphism: A program should 
specify only the behavior of objects, 
not their representation. 



A conventional statement of this 
principle is that a program should 
never declare that a given object is a 
Smalllnteger or a Largelnteger, but 
only that it responds to integer pro- 
tocol. Such generic description is 
crucial to models of the real world. 

Consider an automobile traffic 
simulation. Many procedures in such 
a system will refer to the various 
vehicles involved. Suppose one 
wished to add, say, a street sweeper. 
Substantial amounts of computation 
(in the form of recompiling) and 
possible errors would be involved in 
making this simple extension if the 
code depended on the objects it 
manipulates. The message interface 
establishes an ideal framework for 
such extension. Provided that street 
sweepers support the same protocol 
as all other vehicles, no changes are 
needed to include them in the simula- 
tion: 



Factoring: Each independent compo- 
nent in a system should appear in 
only one place. 



There are many reasons for this prin- 
ciple. First of all, it saves time, effort, 
and space if additions to the system 
need only be made in one place. Se- 
cond, users can more easily locate a 
component that satisfies a given need. 
Third, in the absence of proper fac- 
toring, problems arise in synchroniz- 
ing changes and ensuring that all in- 
terdependent components are consis- 
tent. You can see that a failure in fac- 
toring amounts to a violation of 
modularity. 

Smalltalk encourages well-factored 
designs through inheritance. Every 
class inherits behavior from its 
superclass. This inheritance extends 
through increasingly general classes, 
ultimately ending with class Object 
which describes the default behavior 
of all objects in the system. In our 
traffic simulation above, 
StreetSweeper (and all other vehicle 
classes) would be described as a 
subclass of a general Vehicle class, 
thus inheriting appropriate default 
behavior and avoiding repetition of 
the same concepts in many different 
places. Inheritance illustrates a fur- 





EDITOR, ASSEMBLER AND MORE! 



SOFTWARE DEVELOPMENT SYSTEM 

The Micro Works Software Development System (SDS80C) is a complete 6809 
editor, assembler and monitor package contained in one Color Computer program 
pack! Vastly superior to RAM-based assemblers/editors, the SDS80C is non- 
volatile, meaning that if your application program bombs, it can't destroy your 
editor/assembler. Plus it leaves almost all of 16K or 32K RAM free for your 
program. Since all three programs, editor, assembler and monitor are co-resident, 
we eliminate tedious program loading when going back and forth from editing to 
assembly and debugging! 

The powerful screen-oriented Editor features finds, changes, moves, copys and 
much more. All keys have convenient auto repeat (typamatic), and since no line 
numbers are required, the full width of the screen may be used to generate well 
commented code. 

The Assembler features all of the following: complete 6809 instruction set; 
complete 6800 set supported for cross-assembly; conditional assembly; local 
labels; assembly to cassette tape or to memory; listing to screen or printer; and 
mnemonic error codes instead of numbers. 

The versatile ABUG monitor is a compact version of CBUG, tailored for debugging 
programs generated by the Assembler and Editor. It features examine/change of 
memory or registers, cassette load and save, breakpoints and more. SDS80C 
Price: $89.95 



arO- 



CRACK THOSE ROMS! 



SOURCE GENERATOR: This package is a disassembler which runs on the color 
computer and generates your own source listing of the BASIC interpreter ROM. 
Also included is a documentation package which gives useful ROM entry points, 
complete memory map, I/O hardware details and more. A 16K system is required 
for the use of this cassette. 80C Disassembler Price: $49.95 



CBUG IS HERE! 

MONITOR TAPE: A cassette tape which allows you to directly access memory, I/O 
and registers with a formatted hex display. Great for machine language 
programming, debugging and learning. It can also send/receive RS232 at up to 
9600 baud, including host system download/upload. 19 commands in all. 
Relocatable and reentrant. CBUG Tape Price: $29.95 

MONITOR ROM: The same program as above, supplied in 2716 EPROM. This 
allows you to use the entire RAM space. And you don t need to re-load the monitor 
each time you use it. The EPROM plugs into the Extended Basic ROM Socket or a 
modified ROMPACK. CBUG ROM Price: $39.95 



LEARN BB09! 
6809 ASSEMBLY LANGUAGE PROGRAMMING, 

by Lance Leventhal, contains the most comprehen- 
sive reference material available for programming 
your Color Computer. Price: $16.95 



PARALLEL O! 

USE A PARALLEL PRINTER with your Color 
Computer! Adaptor box plugs into the serial port and 
allows use of Centronics/Radio Shack compatible 
printers with parallel interface. Assembled and 
tested. PI80C Price: $69.96 



THE 



w©m^^ p.o 



GOOD STUFF! 



3EK RAM! 

MEMORY UPGRADE KITS: Consisting of 4116 
200ns. integrated circuits, with instructions for 
installation. 4K-16K Kit Price: $39.95. 16K-32K 
Kit (requires soldering experience) Price: $39.95 

WE SHIP FROM STOCK! 

Master Charge/Visa and COO Accepted 



BOX 1 1 1 DEL MAR, CA 9201 4 71 4-942-2400 



294 August 1981 © BYTE Publications Inc 



Circle 232 on inquiry card. 









If your looking for 

reliability instead of promises and 

you need high performance at low 

prices, Chrislin Industries, Inc. 

can bring it to you! 






Chrislin Industries, Inc. 

31352 Via Colinas • Westlake Village, CA 91362 • 213-991-2254 • TWX 910-494-1253 CHRISLIN WKVG 



DEC, LSI, PDP are Trademarks of Digital Equipment Corp. 



Circle 55 on inquiry card. 



BYTE August 1981 295 



ther pragmatic benefit of factoring: 

Leverage: When a system is well fac- 
tored, great leverage is available to 
users and implementers alike. 

Take the case of sorting an ordered 
collection of objects. In Smalltalk, the 
user would define a message called 
sort in the class OrderedCollection. 
When this has been done, all forms of 
ordered collections in the system will 
instantly acquire this new capability 
through inheritance. As an aside, it is 
worth noting that the same method 
can alphabetize text as well as sort 
numbers, since comparison protocol 
is recognized by the classes which 
support both text and numbers. 

The benefits of structure for im- 
plementers are obvious. To begin 
with, there will be fewer primitives to 
implement. For instance, all graphics 
in Smalltalk are performed with a 
single primitive operation. With only 
one task to do, an implementer can 
bestow loving attention on every in- 
struction, knowing that each small 
improvement in efficiency will be 



amplified throughout the system. It is 
natural to ask what set of primitive 
operations would be sufficient to sup- 
port an entire computing system. The 
answer to this question is called a vir- 
tual machine specification: 

Virtual Machine: A virtual machine 
specification establishes a framework 
for the application of technology. 

The Smalltalk virtual machine 
establishes an object-oriented model 
for storage, a message-oriented model 
for processing, and a bitmap model 
for visual display of information. 
Through the use of microcode, and 
ultimately hardware, system perfor- 
mance can be improved dramatically 
without any compromise to the other 
virtues of the system. 

User Interface 

A user interface is simply a 
language in which most of the com- 
munication is visual. Because visual 
presentation overlaps heavily with 
established human culture, esthetics 
plays a very important role in this 



area. Since all capability of a com- 
puter system is ultimately delivered 
through the user interface, flexibility 
is also essential here. An enabling 
condition for adequate flexibility of a 
user interface can be stated as an 
object-oriented principle: 

Reactive Principle: Every component 
accessible to the user should be able 
to present itself in a meaningful way 
for observation and manipulation. 

This criterion is well supported by the 
model of communicating objects. By 
definition, each object provides an 
appropriate message protocol for in- 
teraction. This protocol is essentially 
a microlanguage particular to just 
that kind of object. At the level of the 
user interface, the appropriate 
language for each object on the screen 
is presented visually (as text, menus, 
pictures) and sensed through key- 
board activity and the use of a point- 
ing device. 

It should be noted that operating 
systems seem to violate this principle. 
Here the programmer has to depart 



CALL TOLL FREE 

1800228 4097 




Call Toll Free For 

"Unbelievable" 

Low Low 

Prices On These 

Lines: 

APPLE — ATARI — BASE 2 

CENTRONICS 
COMMODORE — DC HAYES 

HAZELTINE — LEEDEX 
MACROTRONICS — MAXELL 

MOUNTAIN HARDWARE 

NORTH STAR — PANASONIC 

SANYO — SYNCOM 






y©m 

6tf CTRONICS PLAXGAOUND 

1840 "O" Street Lincoln, Nebraska 68508 
In Nebraska Call (402) 476-7331 




296 August 1981 © BYTE Publications Inc 



Circle 132 on inquiry card. 



SPEND $62.40 TO 
THIS ADVERTISEMENT.* 



A salesman generating 1.5 million dol- 
lars in sales annually for his company 
does so at the rate of $12.48 per 
minute. That's expensive time — should it 
really be used in rummaging through filing 
cabinets, writing long reports or talking to 
dozens of people looking for one small, 
crucial piece of information? 

Of course not, so you hire an accounting 
staff, customer support personnel, and mar- 
keting people to support the business and let 
your salespeople sell. But the overhead takes 
a large slice of that $12.48. 

A Delta system can do the work of a 
swarm of secretaries, a fleet of filers, a ton of 
telephones — simultaneously. It's a highly 
developed work processing system that can 
maintain files, generate reports, process 
orders and do all routine office work with 
speed and accuracy. It lets your people get on 
with the business of making money. 

We at Delta Products have spent five years 
designing the most reliable, efficient Z80 
based microcomputer available on the mar- 
ketplace. It's fast— some models use multi 
processors to eliminate the delays associated 
with other multi user systems. It's expand- 



*(and save thousands later) 



able, allowing your Delta system to grow with 
your company's growth and change with 
your company's needs. And it's rugged; 
requiring a minimum of service or 
maintenance. 

But the soul of any computer system is the 
software; therefore, having perfected the 
hardware techonology, Delta is now dedi- 
cated to the development of application 
packages designed to warm the cockles of a 
corporate executive's heart. Our "Uni-form", 
for example, will keep purchase orders, ac- 
count statements, sales and shipping orders 
indexed, cross-indexed and filed in any man- 
ner required. 

And when your Delta system has helped 
your business grow, it's ready to grow right 
along with you — every Delta System is com- 
pletely expandable and configurable. 

You have spent five minutes reading this 
advertisement, at a cost of $62.40 in potential 
sales. Have you calculated what a Delta 
system can save your company? (Hint: a 
Delta system can pay for itself in less than 24 
hours of time saved.) 

Call us today for the name of your nearest 
Delta distributor. 




Circle 107 on inquiry card 



BYTE August 1981 



from an otherwise consistent 
framework of description, leave 
whatever context has been built up, 
and deal with an entirely different 
and usually very primitive environ- 
ment. This need not be so: 

Operating System: An operating 
system is a collection of things that 
don't fit into a language. There 
shouldn't be one. 

Here are some examples of conven- 
tional operating system components 
that have been naturally incorporated 
into the Smalltalk language: 

• Storage management — Entirely 
automatic. Objects are created by a 
message to their class and reclaimed 
when no further references to them 
exist. Expansion of the address space 
through virtual memory is similarly 
transparent. 

• File system — Included in the normal 
framework through objects such as 
Files and Directories with message 
protocols that support file access. 

• Display handling — The display is 



simply an instance of class Form, 
which is continually visible, and the 
graphical manipulation messages 
defined in that class are used to 
change the visible image. 

• Keyboard input— The user input 
devices are similarly modeled as ob- 
jects with appropriate messages for 
determining their state or reading 
their history as a sequence of events. 

• Access to subsystems — Subsystems 
are naturally incorporated as in- 
dependent objects within Smalltalk: 
there they can draw on the large 
existing universe of description, and 
those that involve interaction with 
the user can participate as com- 
ponents in the user interface. 

• Debugger— The state of the 
Smalltalk processor is accessible as an 
instance of class Process that owns a 
chain of stack frames. The debugger 
is just a Smalltalk subsystem that has 
access to manipulate the state of a 
suspended process. It should be noted 
that nearly the only run-time error 
that can occur in Smalltalk is for a 
message not to be recognized by its 
receiver. 



THE 



n 



COMPLETE 



SPELLING PROOFREADER and 
COMPUTER DICTIONARY 



The WORD is out! 
Works with the editor of your 
choice to find those lurking spell- 
ing errors and sneaky typos. 



SPELLING CHECKER 

• 45,000 word dictionary 

• Checks over ^0 pages/minute 

• Handles apostrophes, hyphens 

• Marks mistakes in file 

• CDOS ,m ,CP/M] m compatible 

• Needs only 32K system 



EXTRA FEATURES 

• Automatic rhyme finder 

• Crossword puzzle solver 

• Correct spelling finder 



1 Word counter 

1 Word frequency analyzer 

1 Dictionary builder 

AVAILABLE FOR: 

• 8" Single Density CP/M" 

— soon — 
i 5 1 /4" North Star* 
• 5Va" Superbrain tm 
1 Apple xm I Softcard {m CP/M 



OASIS SYSTEMS (71 4) 291 -9489 

2765 Reynard Way, San Diego, CA 92103 



Smalltalk has no "operating 
system" as such. The necessary 
primitive operations, such as reading 
a page from the disk, are incor- 
porated as primitive methods in 
response to otherwise normal 
Smalltalk messages. 



Future Work 

As might be expected, work re- 
mains to be done on Smalltalk. The 
easiest part to describe is the con- 
tinued application of the principles in 
this paper. For example, the 
Smalltalk-80 system falls short in its 
factoring because it supports only 
hierarchical inheritance. Future 
Smalltalk systems will generalize this 
model to arbitrary (multiple) in- 
heritance. Also, message protocols 
have not been formalized. The 
organization provides for protocols, 
but it is currently only a matter of 
style for protocols to be consistent 
from one class to another. This can be 
remedied easily by providing proper 
protocol objects that can be con- 
sistently shared. This will then allow 
formal typing of variables by pro- 
tocol without losing the advantages 
of polymorphism.