Skip to main content

Full text of "Compute! Magazine Issue 070"

See other formats




The Future Of Mass Storage: Microfloppies And Lasers 



$2.95 
March 
1986 
Issue 70 
Vol. 8, No. 3 

53,76 Canada (» 
02193 **■ 

ISSN 01 94-357 X 



COMPUTE! 

The Leading Magazine Of Home, Educational, And Recreational Connputing 

Atari SpeedCalc 

A Powerful Spreadsheet 
Program Inside For 400/800, XL, XE 



Switctibox 

Electric Pachinico ; 

For Commodore 64, 1 2^^v 
Amiga, Atari, Atari $T, 
Apple, And IBM PC/PCjr ' 

MultiMemory . 
For 64 And Apple 
Load Several BASIC 
Programs At Once. >. 

Atari BootStuffer * 
Fft 10 Boot Programs 
On A Single Disk! 

IBM Fractal Graphics 
fascinating Images. ^ 

With A New Math 

BASIC Sound . 

On The Atari ST N 
How To Make Music 
And Sound Effects m--' 

Requester Wlndo^ ^ 
in Amiga BASIC ^ 
Add Professional Features 
^ You^inivn Programs 






0^;# 



71486 02193 




Flight Simulator II 

Scenery Disks 

The Chatlenge of Accomplished Flight 

With a realism comparabte to (and in some ways even surpassing) 
$100,000 aircraft flight simulators, Flight Simulator II includes full 
flight instrumentation and avionics, and provides a full-color out-the- 
window view. Instruments are arranged in the format standard to 
modern aircraft. All the radios needed for IFR flight are included. 
Front, rear, left, right, and diagonal views let you look in any direction. 
Program features are clearly documented in a 96-page Pilot's Operat- 
ing Handbook. 

For training In proper flight techniques. Flight Simulator II includes 
another 96-page instruction manual, compiled by two professional 
flight instructors with over 8,000 hours flight time and 12,000 hours 
of aviation teaching experience. You'll learn correct FAA- 
recommended flight procedures, from basic aircraft control through 
instrument approaches. To reward your accomplishments, the 
manual even includes a section on acrobatic maneuvers, 

The Realism and Beauty of Flight 

Go sight-seeing over detailed, realistic United States 

scenery. High-speed graphic drivers provide an 
animated out-the-window view in either day, dusk, or 
night flying modes. 

Flight Simulator II features over 80 airports in four 
different scenery areas: New York, Chicago. Seattle, 
and Los Angeles. Six additional Scenery Disks covering P&'M 
the entire Western half of the United States are now ElHW 
available in IBM and C64/ 1 28 disk formats. 



Apple and Atari versions will be released soon. Each disk covers a 
geographical region of the country in detail, and Is very reasonably 
priced. 

The Pure Fun of "World War I Ace" 

When you think you're ready, you can test your flying skills with the 
"World War I Ace" aerial battle game. This game sends you on a 
bombing run over heavily-defended enemy territory. Six enemy 
fighters will attempt to engage you in combat as soon as war is 
declared. Your aircraft can carry five bombs, and your machine guns 
are loaded with 1 00 rounds of ammunition. 

See Your Dealer. Flight Simulator 11 is available on disk for the 
Apple II, Atari XL/XE, and Commodore 64/128 computers for 
$49.95. Scenery Disks for the C64 and IBM PC (Jet or Microsoft 
Flight Simulator) are $19.95 each. A complete Western U.S. Scenery 
six-disk set is also available for $99.95. For additional product or 
ordering information, call (800) 637-4983. 

Apple II n a tnidcm.irl( ol Apple Computer. Inc. 
Ann XL and XE are trademarks of Aran Corp. 
Commodore 64 and 1 26 are trademarks of Commodore Eleetronki Ltd. 



IBM PC IS a registered trademark of International Business Macfiir 



w 



^. 



m' 



iMfeUOGIC 



713 Edgebrook Drive 
Champaign IL 61820 

(217) 359-8482 Telet: 206995 

Order Line: (800) 637-4983 

'—pi in Illinois. Ala.'-'- ' "- ' 



\^fe dorit care 
which computer you owa 

\W11 help you 
get the most out of it 




CompuServe puts a wortd of information, communications, and entertainment at your fingertips. 

see your nearest computer dealer. To 
receive our informative brochure or to 
order direct call or write: 



CompuServe is the world's largest 
information service designed for the per- 
sonal computer user and managed by 
the communications professionals who 
provide business information services to 
over one quarter of the FORTUNE 500 
companies. 

Subscribers get a wealth of useful, 
profitable or just plain interesting infor- 
mation like national news wires, home 



shopping and banking, travel and sophis- 
ticated financial data. Plus electronic 
mail, national bulletin boards, forums 
(special interest groups), and a multi- 
channel CB simulator. 

You get games and entertainment, too. 
Board, parlor, sports, space and educa- 
tional games. Trivia and the first online 
TV-style game show played for real prizes. 

To buy a CompuServe Subscription Kit, 



CompuServe^ 

Consumer Intormalion Service. P O Box 20212 
5000 Arlington Centre Blvfl,. Columbus. OH 43220 

800-848-8199 in onio can 614-457-0802 



An HAR Block Company 



Look for Homework Helper and other 
Spinnaker products at these fine stores. 



ALABAMA 

AC-3 Computing 

Products 
Montgomery, AL 

ALASKA 

Computer Concepts 
Eagle River, AK 

ARKANSAS 

Arkansoft 
Harrison, AR 

ARIZONA 

The Computer Room 
FlagstaM, A2 

Mesa Computer Mart 
Mesa, AZ 

Compushare 
Phoenix, AZ 

Collegian Computer 
Phoenix, AZ 

Software City 
Tuscon, AZ 

CALIFORNIA 

Compard 
Ridgecrest, CA 

Software 1st 
Santa Rosa, CA 

CompulBrtime 
Citrus Heights, CA 

The Software Place 
Fairfield, CA 

Coast Computer 

Center 
Costa Mesa, CA 

Software Central 
Pasadena, CA 

H.W. Chris! Corp, 
Campbell, CA 

Calsoft 
Oakhursi, CA 

Dublin Computers 
Dublin, CA 

Brown Knows 

Computing 

Redlands, CA 

Software City 
San Diego, CA 

Personal Electronics 
Goieta, CA 

CONNECTICUT 

Software City 
West Hartford. CT 

Softown Inc. 
Danbury, CT 

DISTRICT OF 
COLUMBtA 

"UR" Computer/ 

Software Needs 
Washington, D.C. 

FLORIDA 

Software City 

Sarasota, FL 

Microline 

Fort Lauderdale, FL 

Personal Computer 

Store 
Coral Gables, FL 



Discount Software 
W. Palm Beach, FL 

Sunshine Discount 

Software 
Fort Lauderdale, FL 

Software Cellar 
Fort Lauderdale, FL 

GEORGIA 

Software House 
Jonesboro, GA 

Software City 
Sandy Spnngs, GA 

HAWAII 

Keystone Computer 

Center 
Kaneohe, HI 

Microcomputer 

Systems 
Honolulu, HI 

ILLINOIS 

Save on Software 
Lombard, IL 

Softwaire Centre 
Naperville, IL 

Softwaire Centre 
Niles, IL 

Computers Plus 
Chicago, IL 

Peripherals Plus Ltd. 
Champaign, IL 

Kappels Computer 

Store 
Belleville. IL 

Highland Computer 
Highland, IL 

A Byte Better 
Rockford, IL 
Ideal Computer 

Systems 
Kankakee, IL 

Farnsworth 

Computer Center 
Aurora, IL 

Areola Software Inc. 
Arcoia, IL 

Integrated Computer 

Systems 
Macomb, IL 

Midwest Information 

Systems 
Galesburg, IL 

Alpine Computer 

Center 
Rockford, IL 

The Computer Store 
Rockford, IL 

INDIANA 

Burkat Computer 

Center 
South Bend, IN 

The Game Preserve 
Indisnapotis, IN 

Micro Age Computer 

Store 
Indianapolis, IN 



KANSAS 

Software City 
Overland Parit, KS 

LOUISIANA 

Delta Computers 
Alexandria, LA 

MARYLAND 

Software City 
Gathersburg, MD 

The Program Store 
Kensington, MD 

MASSACHUSETTS 

Orchard Computer 
Hyannis, MA 

Software City 
West Springfield, MA 

Feranii - Dege 
Boston, MA 

The Computer 

Center 
Hanover. MA 

General Computer 

Store 
Hanover Mall Area 
Framingham, MA 

On-Line Computer 

Systems 
Andover, MA 
Orchard Computer 
Hyannis, MA 

The Whiz Computer 

Stores 
Westboro, MA 

Land of Electronics 
Saugus, MA 

MICHIGAN 

Micro Station 
Southfield, Ml 

Micro Station 
Troy. Ml 

Retail Computer 

Center 
Farmington Hills, 

Retail Computer 

Center 
Birmingham, Ml 

Retail Computer 

Center 
Garden City, Ml 

Inacomp Computer 
Dearborn, Ml 

Learning Center 

Limited 
Ann Arbor, Ml 

Micro Key 
Fenton, Ml 

Software Plus of 

Breton 
Village Mall 
Grand Rapids, Ml 

Krums Computer 

Center 
Battle Creek, Ml 

Computer Talk 
Rochester. Ml 

Software Trends 
Clawson, Ml 



Ml 



Creative Computers 
Grand Haven, Ml 

Software Library 
Keego Harbor, Ml 
Computers Today 
Holland, Ml 

MINNESOTA 

Computer 1 Inc. 
Baxter, MM 

Computer 1 Inc. 
Bemidj, MM 

Northwoods 

Computers 
Detroit Lakes. MN 
MISSOURI 
Software City 
St. Louis, MO 

Software To Go 
St. Louis, MO 

NEBRASKA 

The Computer Works 
Bellevue, NB 

Computer 

Connection 
Scottstjiuff, N8 

Software City 
Omaha, NB 

NEVADA 

Software City 
Las Vegas, NV 

NEW HAMPSHIRE 

Systematic Solutions 
Amherst, NH 

NEW JERSEY 

Computerland 
Silo Shopping Center 
Northfield. NJ 
The Program Store 
Eatontown, NJ 

Yudins TV Inc. 
Wyckoff, NJ 

Wolfsons Inc. 
East Orange, NJ 

The Program Store 
Wayne, NJ 
Computerland 
Somerville, NJ 

Software City 
Ridgefield, NJ 

Village Computer 
Cedar Knolls, NJ 

Software City 
Pompton Lake, NJ 

NEW YORK 

Riester's Computer 

Store 
Auburn, NY 

Computerland 
Little Neck, NY 

Micro Images 

Industries 

Flushing, NY 

Software Seller 
Harrison, NY 

Software City 
Tonawanda, NY 



Software Plus 
Albany NY 

Sound Software 
Salt Point. NY 

Compucon 
Smithtown, NY 

NORTH CAROLINA 

The Computer Store 
Laurinburg, NC 

Computer 

Alternatives 
Ashevitle, NC 

NORTH DAKOTA 

Ultra Inc. 
Bismark, MD 

Computer 1 Inc. 
Fargo, ND 

OHIO 

Diskcount Software 
Columbus, OH 

Chucks Computers 
Massillon, OH 

The Program Store 
Columbus, OH 
Computer 

Renaissance 
Columbus, OH 

Sotlware City 
Youngstown, OH 

Wyse Book and 
Office Supply 
Archbold, OH 

Holcombs 
Cleveland, OH 

Disk Drive 
Toledo, OH 

Liberty Computer 

Services 
Beilefontaine, OH 

Tech 2000 Micro 

Computer 
Springfield, OH 

Computerworld 
Alliance, OH 

OREGON 

The Users' Corner 
Medford, OR 

PENNSYLVANIA 

Country Computing 
Summit, PA 

De Re Computers 
Harrisburg, PA 

The Computing 

Source 
West Reading, PA 

Downington 

Computer Center 
Downington, PA 

RHODE ISLAND 

Microlimits 
Smithfield, Rl 

Software Connection 
Warwick, Rl 

SOUTH CAROLINA 

Software Haus 
Charleston, SC 



C C L Software 
Charleston, SC 

Software Solutions 
Westwood Plaza 
Charleston, SC 

Byte Shop 
Columbia, SC 

TENNESSEE 

Opus 2 
Memphis, TN 

MCS 
Knoxville, TN 

TEXAS 

Software Place 
Houston, TX 

The Software Place 
Webster, TX 

Norton Brothers 

Computer Center 
El Paso, TX 

Software City 
Austin, TX 

Software Store 
San Antonio, TX 

Software Init 
Wichita Falls, TX 

VIRGINIA 

Computerland of 

Norfolk 
Norfolk, VA 

Jack Harlman & Co. 
Roanoke. VA 

Software Center 
Vienna, VA 

Family Computer 

Center 
Fairfax, VA 

Computerland 
Winchester, VA 

Software City 
Richmond, VA 



BLOCKBUSTERS. 



SStjSa 







Ever run into a mental block while doing yourtiome- 
work? Like how to start an essay? Or solve a tough nncth 
problem? 

Well nowthere's help. Ttie HOMEWORK HELPERS'" 
from Spinnaker. They're designed to bust these blocks 
and help you produce your homework assignments. 

Through a unique system of prompts, the HOMEWORK 
HELPERSaskstimulating questions, inspire new ideas, 
and help you organize. And they cover two of the toughest 
homework challenges: writing well and solving math 
word problems. 

Take WRITING. It has a unique, 3-part program for 
developing essays and book reports. It gets you started 
by asking key questions and shows how to organize an 



outline. Then its built-in word processor actually helps 
you write, edit, and print out the final work. 

Then there's MATH WORD PROBLEMS. Its special grid 
system helps translate word problems into workable 
equations. It has a built-in calculator which shows the 
solution step-by-step and prints out homework calcula- 
tions ready to hand in. 

The Spinnaker 
HOMEWORK HELPERS 
arethe mental block 
busters that produce 
homework results. Look 
for them at your local 
software retailer. 



I SOOK REPORT 



CREATE IDEAS 



Whai is the Itieme- Ihe main l()ea-ol Great 
Eipectations? Type your answer 



Finding the llieme sometimes lakes a little liigging 
Press I cm I [h] Iot some i;ommon themes. 



Some coin:non Iheinesaie: the powerof love, the 
trr jmph of Dersislence. Itie beauty of nature, greed . 
irloleiancc. alienation, escape from corfDrmlly. the 
journey ol [lie 



Sf^ff)S^1MAB? 



We make learning fun. 

Spinnaker is a registered lrademar(< o( Spinnaker Software Corp. Homework Helper is a trademark of Spinnaker Software Corp. 
p, 1985 Spinnaker Software Corp.. One Kendall Square, Cambridge. f^A 02139. 



How to turn yoiir computer on. 



(The following is an actual 
conversation between Bantam Software 
and an unusually talkative 
persona! computer). 

BANTAM SOFTWARE: 
We always ask what turns 
people on. Now we want 
to know what turns yoti on 
PERSONAL COMPUTER: 
It's about time someone 
asked the real expert What 
turns me off is boring 
software. Boring, uninvolv- 
ing, predictable software. 
And cold rooms. Why is it 
always so cold in here? 
B: Games and Ahoy 
magazines called Sherlock Holmes 

in "Another Bow" one 
of the year's best. 
PC: Let me decide. 
Okay? (Disk inserted.) 
Well, this is anything 
but elementary. You're 
Holmes, Watson's at 
your side. And you 
determine your own 
fate in case after 
case. And look, you 
run into the likes of 
Picasso, Gertrude 
ry Ford, Louis 
'Armstrong. An(>^fuch graphics! These 
derive from early 20th century photographs. 
I don't have a clue how you did it, but you 
have a winner. Next case. 
B: 7726 Fourth Protocol, from Frederick 

Forsyth's gigantic best- 
selling book Games called 
it "nerve-tingling." Here 
you go. (Slides disk in.) 
PC: You mean circuit- 
tingling. If I knew I had 
to save the worid, 
'. would have gotten 
more sleep. All kidding 
aside, this involves 






H A N T .A, ,\1 
i;i [;C TRONIC 
I'llHLISHIXG 



nuc/earweapons. A British traitor. The KGB. 
And the subversion of NATO. This is a chal- 
lenge. Will it help if I read the book? 
(Loud explosion on screen.) 
Oh no! Does that mean I lost? 
B: No, but losing's the whole 
point of the next one. The 
Complete Scarsdale Medical 
Diet. You know the bestseller. 
PC: Why, do 1 look heavy? 
Never mind, let's have a taste. 
(Disk is in- 
serted.) This is 
'some menu. It 
helps you assess 
your goals. 
Monitor your 
progress. Mix 'n 
match meals from all five Scarsdale 
diets. Even prepares your shopping list. It'll tell 
you how much exercise you need to work off 
certain foods. Let's see about kiwi tart. . . 
B: We've got one other program. 
PC: No more. I'm exhausted. 
B: No...thisisarebate 
program. Just fill out the 
coupon and mail it with 
proof of purchase and 
you get $5.00 back. 
PC: Thank you. 
That's a nice offer. 
B: So, did we turn 
you on? 

PC: Yup. Now, please turn me off so 
1 can rest. I've got to do some running 
later on to work off that kiwi tart. 

Sherlock //oJm&- a\-aijable for: Apple //Seriu^. Commodore 6'1/128. 

IBM fT/PCjr. Macinlosh- 

.VjraJaJcAfi'c/Jc.l/O/er available tor: Apple //Series. IBM POFpr. 

TTjf Fourth Prolacnt available for roninuHlore fi-1 ■128- AvaiEabte soon for 

Apple //Series and IBM PDPCjr 

y mi W Banlam Books. Inc., VepL « .^^^^^^^^^^^^^^____ ^ 
I Narne__ — ~^22^^^~_Apl# J 

, Addreg ^ ""jwTIlZ^E I 

I riiv ^ ' '. . 1 1^ VH»6 Tlie warrants' card and I 

• resiricied by l*^^'>^ ^^j^ __ — — — -""" " ~ 




s 










r 10103^ 



COMPUTE! 



MARCH 1986 
VOLUME 8 
NUMBER 3 
ISSUE 70 



FEATURES 



18 The Future of Mass Storage . Selby Boteman 

26 The Computerized Home Kathy Yakol 

34 Switchbox Todd Heimarck 

65 SpeedCalc for Atari Kevin Martin and Charles Brannon 



REVIEWS 



53 The Works! for Commodore and Apple , . , James V. Trunzo 

53 Under Fire for Apple James V. Trunzo 

54 M-Disk for Atari ST George Miller 

54 Atari XM301 Modem Tom R. Halfhill 

60 EduCalc and NoteCard Maker Karen G. McCullough 

60 Hex for Atari ST George Miller 

62 Sylvia Porter's Personal Financial Planner Selby Bateman 



GUIDE TO ARTICLES 
AND PROGRAMS 



128/64/AT/AP/ 
PC/PCjr/AM/ST 

AT 



64/126/AP 

AP 

ST 

AT 
64/128/AP/PC/PCjr 

ST 
64/128/AP/PC/PCJr 



COLUMNS AND DEPARTMENTS 

6 The Editor's Notes Richard Mansfield 

10 Readers' Feedback The Editors and Readers of COMPUTEI 

64 HOTWARE 

1 12 INSIGHT: Atari— Atari Character Codes Bill Wilkinson 

1 14 The Beginner's Page: Cutting Strings Without Scissors Tom R. Halfhill 

115 Computers and Society: 

Humanizing the User Interface, Part 1 David D. Thornburg 

1 16 The World Inside the Computer: 

Snowflakes, Quilts, and Stained Glass Windows Fred D'Ignazio 

1 17 Telecomputing Today: Games Modem People Play Arlan R. Levitan 

118 IBM Personal Computing: The Ultimate Entertainment Center ... Donald B. Trivette 

1 19 Programming the Tl: IF-THEN Statements . C. Regena 



AT 



PC/PCjr 

Tl 



THE JOURNAL 



78 IBM Fractal Graphics Paul W. Carlson 

81 Commodore ML Saver Buck Childress 

82 Loading and Linking Commodore Programs, Part 1 Jim' Butterfleld 

85 Atari P/M Graphics Toolkit Tom R. Halfhill 

91 The New Automatic Proofreader for Commodore 64 Philip I. Nelson 

93 MuitlMemory for Commodore 64 and Apple Patrick Parrish 

96 Experimenting with SID Sound Mark A. Currie 

99 Mousify Your Applesoft Programs, Part 1 Lee Swoboda 

102 Atari BootStuffer Randy Boyd 

105 Requester Windows in Amiga BASIC Tom R, Halfhill 

107 Softkeys for Atari BASIC Raymond Citak 

1 10 BASIC Sound on the Atari ST COMPUTEI' s ST Programmer's Guide 

1 20 News & Products 

1 22 MLX: Machine Language Entry Program for Atari 

1 24 COMPUTEI's Guide to Typing In Programs 

1 26 CAPUTEI Modifications or Corrections to Previous Articles 

1 28 Advertisers Index 

TOLL FREE Subscription Order Line 
800-247-5470 (In lA 800-532-1272) 



PC/PCjr 

64/128 

64/128/V/+4/16 

AT 

64/128/V/+4/16 

64/AP 

64/128 

AP 

AT 

AM 

AT 

ST 



NOTE: See page 1 24 
before typing in 
programs. 



AP Appie. Moe Macintosh, AT 
Ata-i. ST, Atofi ST. V VIC-20, «4 
Gorrfmodor© 64, +4 Commodore 
Plijs/4. )« Commodore 16, 128 
Commodore 128, P PET/CBM, H 
Texas Instruments, PC IBM PC. PCjr 
IBM PCjr, AM Amiga. 'General 
Interest, 



COMPUTE! Publicationsjnc.® 

Pari o( ABC Contumer Mogailnai, Inc. ^^ 

One of lh« ABC Publlthing Compcnlei 

ABC Publishing, President, Robert G. Burton 

1330 Avenue of ttie Amerioos, New York. New York 10019 



C<»flPUTH The Journal for Progressive Computing (USPS: 537250) is published monthly by 
COMPUTE! Publications, Inc, 82B 7th Ave,, New York, NY 10019 USA. Phone: (212) 265-8360. 
EdilDrial Offices are located at 324 West Wendover Avenue, Greensboro, NC 27408. Domestic 
Subscriptions: 12 issues, $24. POSTMASTER: Send address changes to: COMPUTII Magazine, P.O. 
Box 10955, Des Moines, lA 50950. Second class postage paid at Greensboro, NC 27403 and addi- 
tional mailing offices. Entire contents copyright ©1986 by COMPUTE! Publications, Inc. AM riehts 
reserved, ISSN 0194-357X. 



Editor's Notes 



Now that the hubbub is dying down 
after the introduction of Atari's ST and 
Commodore's Amiga, those long- 
awaited, powerhouse, new-generation 
computers, perhaps it's a good time to 
reflect on their relative merits. Al- 
though not much software is yet avail- 
able to show them off to best 
advantage — a few adventure games, 
utilities, and applications programs so 
far — some conclusions can already be 
drawn. 

We've been writing and editing 
Amiga and ST books and articles here 
for some months, and our staff is al- 
ready segregating into camps. We've 
had camps, of course, for years: Apple 
enthusiasts. Commodore fans. Atari 
aficionados, IBM devotees, and assort- 
ed other, smaller, clusters of allegiance. 
It all makes for some spirited exchanges 
on the relative merits of the competing 
technologies and, we like to think, en- 
ergizes our writing and programming. 

For example, one of the major re- 
sponsibilities of our programming staff 
is transporting programs between ma- 
chines. We'll transport an arcade game 
with excellent graphics from its original 
home to several new computers with 
varying screen, color, sprite, character, 
and sound capabilities. This sort of 
thing throws the differences between 
computers into high relief. 

The Amiga and the ST are quite 
similar in many respects: Each has a 
68000 chip; 512K RAM (although the 
Amiga is advertised as having only 
256K RAM, since the rest is reserved for 
storing the disk-based operating sys- 
tem); SVz-inch disk drive; mouse; win- 
dows; pull-down menus; RS-232 port; 
parallel printer port; and high-resolution 
color graphics. 

The most striking difference, per- 
haps, is the price: with color monitor 
and disk drive, the Amiga costs $1,800, 
$800 more than the ST. For this extra 
money, you get multiprocessing, which 
allows you to run more than one pro- 
gram at a time. The Amiga also offers a 
more complex sound system with four 
voices in stereo to the ST's three in 
mono. The Amiga has 640 X 400 and 
640 X 200 resolution modes with 16- 
simultaneous colors, a 320 X 200 mode 
with 32 colors, and a total palette of 
4,096 colors. The ST has a 640 X 400 



monochrome mode, a 640 X 200 mode 
with 4 simultaneous colors, a 320 X 
200 mode with 1 6 colors, and a total of 
512 colors. 

Thus, some of the specs would fa- 
vor the Amiga if, for example, you need 
extraordinary degrees of color or reso- 
lution. Some argue that differences be- 
tween color number 3,067 and 3,068 
are extremely difficult to detect and that 
this palette represents overkill; others 
disagree. The Amiga has specialized 
chips dedicated to memory moves, fills, 
and other graphics and sound tech- 
niques. This frees up the 68000 to do 
other things while graphics are being 
manipulated (an important consider- 
ation on a computer with a bitmapped, 
graphics-oriented display). On the oth- 
er hand, the ST allows the 68000 to run 
somewhat faster than does the Amiga. 

An ST disk holds 360K, the Amiga 
880K (although double-sided ST drives 
with 720K are an option). The Amiga 
has built-in speech synthesis, but the 
ST has a built-in MIDI interface for 
controlling external synthesizers and 
drum machines. The ST has a built-in 
hard disk interface; the Amiga requires 
an additional interface. 

Many of the differences between 
the machines can be eliminated, how- 
ever, by upgrading, adding peripherals, 
cards, or options. For example. Com- 
modore will offer a plug-in MIDI inter- 
face, and, doubtless, speech synthesis 
will be made available for the ST. Com- 
modore has announced and demon- 
strated IBM compatibility via a software 
emulator, opening up a huge software 
base. Of course, ST developers are like- 
ly to be working on this, too. 

While not claiming that the COM- 
PUTE! staff represents a microcosm of 
the computer marketplace, we have 
heard effective defenses of both com- 
puters. One of our ST partisans says 
that the disk I/O is faster; software is in 
greater supply; the operating system 
and hardware have been around longer 
and are therefore more fully tested; the 
machine is easier to understand; there's 
more speed except for graphics-oriented 
computing; the keyboard is excellent; 
the debugger is better; nobody needs 
multitasking (who could stay in control 
while simultaneously supervising a 
spreadsheet and calling a bulletin 



board?); anything you want that the ST 
doesn't have you can add; and so forth. 

An Amiga owner insists that his 
computer can expect a great deal of 
software very soon (the ST was re- 
leased earlier, and much of its current 
software comes from Europe where the 
Amiga has yet to be introduced); the 
Amiga is hardly an untested technol- 
ogy — it's been in development for three 
years; the difference in the clock speeds 
is rendered irrelevant because of the 
layers of systems, software, languages, 
and applications above a clock; such 
things as area fill are built into the 
Amiga hardware which further 
counters any clock differences; adding 
on things not built into the machine 
results in a pile of extra cords and extra 
expense; built-in speech means that all 
programs can use that feature without 
worrying about compatibility; multi- 
tasking is quite useful — having more 
than one program resident in RAM 
avoids disk-swapping or rebooting and 
also allows unrelated software to act as 
if it were an integrated package. 

Rising to the occasion, the ST pro- 
ponent counters that provisions for 
multitasking are possible in the ST as 
well. And so it goes. 

At user groups, in magazines, and 
on telecommunications services around 
the country, advocates urge one anoth- 
er to get realistic and accept the fact that 
machine A is obviously better than B. 
Any comparison of them is contrapun- 
tal; any argument designed to demon- 
strate the superiority of one can be met 
by an equally convincing counterargu- 
ment. It's not surprising that this debate 
has vitality. After all, the COMPUTE! staff 
has been working closely with many 
different machines for years and, with 
rare exceptions, our Atari camp has 
never been able to convert the Commo- 
dore camp and vice versa, not to men- 
tion the solidity of Apple, IBM, and 
other allegiances. It appears that the ST 
and Amiga have raised new flags and 
are likely to perpetuate the friendly face- 
off that's been an energizing force in 
personal computing for a decade. 

Senior Editor 




6 COMPUTE! March 1986 



THE SHADOW 



$89.95 * HACKER PACKAGE $39.95 *GT PACKAGE 



$44.95 



Shadow is a new and revoiulionary piece of 
hardware that is used )o duplicate even the 
most protected sattware. Fitting Inside the 
disk drive (no soldering required). SHADOW 
tal(es complete control of all functions givinQ 
near 100% copies. 

Being the best utility available today, it will 
even copy the other copy programs. 

Because of the Shadow's unique abilities, we 
fee! DOS protection is a thing of the past. 




MeoGiSofl 

^^ LTD 



Shadow a disk while it loads, then read an 
exact list of: 

• Track, sector. ID, check sum, drive status 

• High and low track limits 

• Density use on each track 

• Halt tracks that are used 

• Command recorder shows commands that 
were sent to 1 541 while program was 
loading 

• RAM recorder records custom DOS 
Shadow-scan any disk, then read exact list of: 

• Valid tracks, half tracks, partial tracks and 
segments 

• Sync mark link, header block links and 
data block links 

• Track to track synchronization 
Exclusive snap shot recorder will give you an 
exact copy of the 1 541 RAM and can be 
viewed, saved or printed. Plus many more 
features included. 

'Requires Shadow 



P.O. Box 1080 • Battle Ground, Washington 98604 
1-800541-1541 
Canadian/Foreign Orders Call 
{206) 687-5205 



Highly sophisticated and integrated piece of 
hardware that turns you 1541 into something 
you've always wanted. 

• Track and sector display 

• Drive reset switch 

• Device number change 

• Half track indicator 

• Abnormal bit density indicator 

• Shadow on-off indicator 

The Shadow display will give you an accurate 
display of precisely what track you are 
accessing during a norma! load even if the 
program does a read past track 35. 
'Requires Shadow 




Order by ptione 24 hrs./7 days or send castifer's 
check/money order payabfe to Megasof t. Visa, 
MasterCard Include card number and expiration 
date. Add S3.50 shipplngfhandling for 
continental U.S., S5.50 for UPS air. CODs add 
S7.50, Canada add S10.00. Other foreign orders 
add $15.00 and remit certiiied U.S. funds only. 
Distributors Invited and supported. 






Publisher 

Foundsr/Edltor In Chief 
DIreclof of Admlnlsltotlon 
Senior Editor 
Managing Editor 
Executive Editor 



James A. Cosello 
Sobert C. Lock 
Alice S- Wolfe 
Richard Mansfield 
Kathleen Martinek 
Se'by Boteman 



Editor 

Assistant Editor 

Production Director 

Production Editor 

Edilor, COMPUTEI'S GAZETTE 

Technical Editor 

Assistant Technical Editors 

Program Edilor 

Asslstoni Editor. COMPUTEI'S 

GAZEnE 
AsslslanI Features Editor 
Programming Supervisor 
Editorioi Ptogforjimers 
fiesaorch/Copy Editor 
Copy Editor 
Suismissions Reviewer 
Progromming Assistonts 

Execulive Assistant 
Adminlsfrative Assistonts 

Associate Editors 



Contributing Editor 



Tom R. HalfhBI 

Philip Nelson 

Tonv ftoberts 

Gail Cowper 

Lance Elko 

Ottis fi, Cowper 

John Kfouse, George Miller 

Chariss Bronnon 

Todd Heimarck 

Kothv Vokal 

Patrick Parristi 

Tim Victor. Kevin Mykyfyn 

Jo^n i?ouleau 

Ann Dovies 

Mark Tuttle 

David Florence. David 

Hsnstey 

Debi NQsh 

JUia Fieming. iris Brooks, Mary 

Hunt. Sybil Agee 

Jim Buttsrfield 

To'onto. Canada 

Horvev Herman 

Greensboro, NC 

Fred D'lgnQ2io 

Roanoke. VA 

l>3vid Thomburg 

Los Altos. CA 

Bill Wilkinson 



COMPUTEI'S Book Division 

Editor 
Assistant Editor 
Director, Book Solos * 

Marketing 



Stephen Levy 
Gregg Keiier 

Steve Voyatzis 



Production iWanager 
Art & Design Director 
Asslstoni Editor. Art & 

Design 
Mechanical Art Supervisor 
Artists 
Typesetting 
Illustrator 



Irmo SwQln 
Janice I?, Fory 

Lee fMoei 

De Potter 

Debbie Bray. Dabney Ketrow 

Terry Cash, Carole [Xjnton 

Harry Blair 



Director of Advertising 

Soles 
Ptoduction Coordlnotor 



Ken Woodord 
Kathleen Hanlon 



Promotion Asslstani 



Caroline Dartt 



Customer Service Manager Dione Longo 
Deoler Sales Supervisor Orchid Tamayo 
individual Order Supervisor Judy Taylor 
Receptionist Anita Armfleld 

Woret^ouse Manager John Willioms 



Dota Processing Manager Leon Stokes 

Assistants Chris Coin. Steve Bowman 



James A. Caseiia. Preadent 

R. Steven Vetter. Vice President. Finance end Planning 



COfvlPUTEl Publications, Inc. publishes: 



COMHITE! 



COMPUIE'S 



COMPUTEI Books 

COMPUTE'S 
mMMM^WM DISK 

COMPUTEi's 

Apple Appllcailons Special 



Editorial offices: 



Corporate offices: 



Customer Service: 



32^1 West Wendover Avenue 

Suite 200 

Greensboro, NC 27408 USA 

825 7th Avenue 

New York. NV 10019 

21 2-265-8340 

eOO-346-6767 

(Ir) NY 212-887-8625) 



Coming In Future Issues 

Report From The Winter 
Cortsumer Electronics Show 

Commodore 64 Key Phantom: 
A Powerful New Technique 
For Dynamic Keyboard 
Programming 

SpeedScript Fontmoker 
For Atari 400/800, XL, XE 

Smooth-Scrolling Billboards 
For IBM PC & PCjr 

Adding System Power 
To Atari ST BASIC 



S m 



Audit Bareia 
of CLrcnIitlooi 



HAgailfK PuWishen ^isociatkm 



Subscription Orders 

COMPUTEI 

P.O. Box 10954 

Des Moines, lA 50340 

TOLL FREE Subscription Order Line 
800-247-5470 

In lA 800-532-1272 



COMPUTEI Subscription Rotes 
(12 Issue Yeci): 

us (one yr.) $2^1 

(two yrs.) $45 
(three yrs.) $65 
Canada ond Foreign 
Surface Mail $30 

Foreign Air 
Delivery S6S 



Advertising Sales 




1 . New England 

Jonathan M, Just 
Regional Manager 
212-315-1665 

2. Mid Atlantic 

John Saval 
Eastern Advertising 
Manager 
212-315-1665 

3. Southeast tr Foreign 

Harry Blair 
919-275-9809 



4. Midwest 

Gordon Benson 
312-362-1821 

5. Northwest/ 
Mountain/Texas 

Phoebe Thompson 
DanI Nunes 
408-354-5553 

6. Southwest 

Ed Winchell 
213-378-6361 



Director of Advertising Sales 

Ken Woodard 

COMPUTEI Home Office 212-887-8460 

Address all odvertlsing materials to: 

Kathleen Hanlon 

Advertising Production Coordinator 

COMPUTEI Magazine 

324 West Wendover Avenue 

Suite 200 

Greensboro. NC 27408 



The COMPUTE! subscriber list is made ava^lobie to carefully screened organtzations wi:h a product or serv-ce wtiich 
may De of interest to our readers. It you prefer not to receive sucri moilings. please send an exact copy of your 
subscription label to: COMPUTE! PO, Box 10955. Des Moines. lA 50950. Include a note indiCQtine your preference to 
receive only your subscription. 



Authors of monuscrlpts warrant that all materials submitted *a COf^PUTE' are original materiots with full ownership 
fights resident in said outhors- By submitting articles to COMPUTEI. authors acknowledge that such materiois. upon 
occeptance for publication, become the exclusive propehy of COfvlPUTE! Publications. Inc. f^o porion of this maga- 
zine nay be reproduced in any form without written permissicn from the publisher. Entire contents copyright © 19B6. 
COf^^UTE! Publications, Inc, l?ights to programs devefoped and submitted by outhors are explaned m our author 
contract. Unsolicited materiois not accepted for publication in COiviPUTEl will be returned it author provides a self- 
addressed, stomped envelope. Programs (on tape or disk) must accompany eoch submission Printed listings are op- 
tional, but helpful Articles should be furnished as typed copy (upper- and lowercase, please) with double spacing 
Each page of your article should beor the title oi the article, date and nome of the author, COMPUTEI assumes no 
liability for errors in orticles or advertisements. Opinions expressed by authors are not necessarily those of COtutPUTEl 



PET GSM. VIC-20 and Commodore 6d or© trademarks of Commodore 

BuE-ness Machines, Inc ond/or Commodore Electronics Limited 
Apple is a trademark of Apple Computer Company 
IBM PC ond PCji ore uodemorks o- l.nternotiorial Business Machines. Inc 



ATA(?I is Q trademark ol Atari. Inc, 
TI-W/'lA Is a trademark of Texas Instruments. Inc. 
Rodio Shock Color Computer Ls trodemart^ of 
Tandy. Inc. 




MacTalk: Telecomputing on 
the Macintosh 

Sheldon Leemon 
Arlan Levitan 

A complete guide to telecomput- 
ing on the Macintosh from choos- 
ing a modem and software to 
accessing information services and 
electronic bulletin boards. 
$14.95 ISBN 0-942386-85-X 




MACTALK 

TBiecompuHr>o on the Moclntotfi' 




nostmrt •eta Kff^^n V occtt 



COMPUTEI's Telecomputing 
on the IBM 

Arlan R, Levitan 
Sheldon Leemon 

The ins and outs of telecomputing 
on the IBM PC or PCjr, selecting a 
modem and evaluating terminal 
software, how to go online with 
the major information services. 
$14.95 ISBN 0-942386-96-5 



COMPUTEl'B 

rELECOMPUTINGI 

ON THE 




fha cornplBts QutW ta !e4ecsrTcijtng on H-* 
moown and sofTwara in annuls Hcmoti^ 



It's only a phone call away. 



COMPUTE! 's Telecomputing 
on the Commodore 64 

Edited 

Introduces readers to telecommu- 
nications, with sections on buying 
and using modems, accessing 
information services and bulletin 
boards, and uploading and down- 
loading files. There is also a disk 
available which includes the pro- 
grams in the book. 
$12.95 ISBN 0-87455-009-2 



COMPUTEI's 

TELECOMPUTING 

ON THE 

COMMODORE 



64 



iit r*«] to hhow to jton 
M»ecrr(]utnQ on ytw U— MluWiQ IMOd 



Telecomputing lets you call 
up computers around the 
world through a network of 
telephone lines. 

To get you started in tele- 
computing, COMPUTE! Books 
offers you five lop-selling books. 
Written for the Apple ll-series. 
Commodore 64, IBM PC and 
PCjr, and Macintosh, the books 
give you all the information you 
need, from selecting software to 
dialing large databases. 

To order your complete guide to 
telecomputing, give us a call. 
In the U.S., call toll free 
1-800-346-6767 (in NY call 
212-887-8525). 



COMPUTE! Publicationsjnc.® 

One of -he ABC Publishing Compo'^ies ^^^ 

Pvjbttfwi ot CO».*UlE' COMPUTE- J Gorene COMPyTf • nSar*tt» O* COMPUT?- Books ana COMPLTj' j AdoW *£X»CQ'orft 



COMPUTEI's Personal 
Telecomputing 

Don Stoner 

This comprehensive general guide 
to the world of telecomputing 
shows how to access databases, 
receive software, and commu- 
nicate with others using a personal 
computer, 
$12.95 ISBN 0-942386-47-7 



Personal 
Telecomputing 



COMWIB'i 




COMPUTEI's Guide to 
Telecomputing on the Apple 

Thomas E. Enright 
Joan Nickerson 
Anne Wayman 

An informative, easy-to-understand 
guide to telecomputing on the 
Apple: covers everything from 
selecting hardware and software to 
accessing large databases. 
$9.95 ISBN 0-942386-98-1 




Cvarvtrwg iou r«*d )o know to 
Ofum you ^C(d» I. H-. M. or Ic Td o 



COMPUTE! books are available In the U.K., Europe, the Middle 
East, and Africa Irom Holt Saunders, Ltd., 1 St. Anne's Road, 
Eastbourne, East Sussex BN21 3UN, England. 




Readers Feedback 



The Editors ond Readers of COMPUTE! 



// you have any questions, comments, or 
suggestions you would like to see ad- 
dressed in this column, write to "Readers' 
Feedback," compute!, P.O. Box 5406, 
Greensboro, NC 27403. Due to the volume 
of mail we receive, we regret that we 
cannot provide personal answers to tech- 
nical questions. 

A Few Helpful REMarks 

I suppose this isn't a new idea, but 
whenever I type in a program printed in 
COMPUTE!, I add one or two REM lines 
near the beginning to indicate the pro- 
gram's name, the date, and the page 
number where it appeared. That way, if 
I forget some command and can't get 
the program to work correctly, I can 
always find the COMPUTE! article which 
accompanied that program and reread 
the instructions. 

John Hibbs 

After a few weeks or months have elapsed, 
it's easy to forget exactly how a program 
works, even if it's one you wrote yourself. 
In most cases, you can't harm a program 
by adding a couple of REMs. However, 
you should be careful not to disturb exist- 
ing lines unless you know exactly what 
the program is doing. Also, this technique 
IS limited to BASIC programs. Some ma- 
chine language programs such as Commo- 
dore 64 SpeedScript begin with a line of 
BASIC (usually something like SYS206V 
$0 that you can load and run the program 
fls // if were BASIC. If you try to add a 
REM to such a program, it probably won't 
work at all. 

Computers For Charity 

I represent a charitable, nonprofit orga- 
nization that uses microcomputer 
equipment in virtually every aspect of 
its affairs. We would be grateful if your 
readers would consider contributing 
additional equipment. Donations of 
this sort can have substantial financial 
benefits. If you are in a position to 
contribute or would like more infor- 
mation, please contact me at the follow- 
ing address or call (617) 495-9020. 
Collect calls Will be accepted. 

Robert Epstein, Ph.D. 

Executive Director 

Cambridge Center For Behavioral Studies 

n Ware Street 

Cambridge MA 02138 



Virtually every locale has a variety of 
organizations which may benefit from 
contributions of computer equipment. Do- 
nations may also be tax-deductible. Any 
readers who want to find out what's avail- 
able in their area can contact the nearest 
chapter of the United Way for information 
about local charitable and volunteer 
organizations. 

Digitized Amiga Sound 

In the September 1985 issue of COM- 
PUTE!, you mentioned that the Amiga 
computer will be able to digitize music. 
If I were to plug the output from a 
stereo system or a radio into the Amiga, 
could it record the music and play it 
back exactly like the original? How 
many different voices does the Amiga 
computer have? 

Robert Patterson 

The answer to your first question is a 
qualified yes. The Amiga can play back 
digitized sound, but you can't plug your 
stereo output directly into an Amiga and 
expect to record music without additional 
hardware and a program to control it. The 
output from conventional sound equip- 
ment is an analog signal, whereas the 
Amiga, like other computers, deals only 
with digital information (binary I's and 
O's). Before doing anything else, you'll 
need to pass the analog signal through an 
analog-to-digital (A-to-D) converter to 
put it in a form the computer can use. 
That sounds more forbidding than it really 
is: The components for A-to-D converters 
are cheap and readily available, and it 
probably won't be long before you see 
reasonably priced plug-in digitizers for 
the Amiga. 

Assuming you can convert the in- 
coming signal to digital form, the com- 
puter must then sample the signal at a 
rapid rate — usually thousands of times 
per second. At each sampling interval, it 
stores a numeric value which represents 
the sound input at that point in lime. The 
more frequently you sample the sound, the 
higher the quality of reproduction — and 
the more memory is required. The Amiga's 
68000 microprocessor runs fast enough to 
sample incoming signals at an extremely 
high rate — rivaling the quality of compact 
disc sound— but even 512K of RAM isn't 
enough to record significant amounts of 
high-quality music. Remember that a 



compact disc can store only up to 75 
minutes of music with its capacity of 550 
megabytes (563,200IQ. At that sampling 
rate, a 512K Amiga could barely record 
four seconds of music. Of course, by low- 
ering the sampling rate (and accepting 
somewhat lower quality), that duration 
can be extended. 

At the end of the digital sampling 
process, the computer has thousands of 
sample values stored in memory, which 
can be saved to disk for future use or 
output directly through a sound channel. 
To output the digitized sound, you simply 
reverse the process, reading the stored 
data from memory, converting it from dig- 
ital to analog form, and sending the re- 
sulting signal to a conventional amplifier 
at the same rate it was sampled. The 
Amiga already contains circuitry that can 
perform the D-to-A conversion at the out- 
put end of the process, so sending digi- 
tized sound out doesn't require any extra 
hardware at all. 

To answer your second question, the 
Amiga has four independently program- 
mable sound channels (voices). However, 
it's difficult to compare them to sound 
channels on other computers because 
they're considerably more flexible than 
tone generators. Most computers are lim- 
ited to producing one or several basic 
waveforms, but the Amiga lets you define 
your own waveforms. And since one chan- 
nel can modulate (affect) another, it's pos- 
sible to create extremely sophisticated 
sounds. Any single channel can simulate a 
complex waveform, so individual chan- 
nels can make sounds which would re- 
quire several channels on other 
computers. Two of the four channels are 
assigned to each of the Amiga's stereo 
outputs, so realistic stereo effects are fair- 
ly easy to achieve. The Amiga version of 
"Switchbox," found elsewhere in this is- 
sue, creates stereo effects by switching 
sounds back and forth between the two 
stereo outputs. 

Moving The New 
Proofreader's Checksum 

When I use the "Automatic Proofread- 
er" with my Commodore 64, the check- 
sum is displayed too high on my screen 
to be visible. Is there any way to modify 
the program so it prints the checksum 
lower on the screen? 

Melvin Baral 



10 COMPUTEI March 1966 




-Jli> 



Va «»■■• 







pilots, do battle with enemy saucers and destroy enemy 
gun emplacements. 

We supply the Long Range Scanner, Dirac Mirror 
Shield and Anti-Matter Bubble Torpedoes . . . YOU 
supply the skill and guts! Tcike the challenge: The perils 
of Fractalus await you. 

CM/Xi* flTBRI OPPLI 

HescueonfhictalusI ^ t^ >>• 



YouVejoined an elite 

Rescue Squadron, flying to 

the hostile planet Fractalus 

to confront the ruthless 

enemy Jaggies head on. 

The mission is a treach- 
erous one for, as everyone 
knows, the cyanitric acid atmosphere on Fractalus is 
fatal and Jaggi saucers are cunning. You're needed to 
rescue Ethercorps pilots shot down and stranded on 
that brutal planet, and to help lead our forces to victory 
... for the merciless Jaggi onslaught must be stopped 
to preserve the future of our galaxy. 

Rescue on Fractalus! is a rescue and space action 
game with realistic 3-D flight simulation. You pilot your 
Valkyrie Fighter through the canyons and around the 
mountain peaks of the planet Fractalus to rescue fellow 

LucajsTiIni Canes. Rescue on Fractajusl, and all elements irfthe game faiitasyiT.H & S 1935 Ujcaafibn Ul. ILFU. AH Ri^ti Heserved. Epjic. Inc. Auihoraed Uwt ®; ReSBtotd Tbdepajfes of Epys. Int 





lamPUTBtSOFTWAPE 

1043 Kiel Ct., Sunnyvale. CA 94089 






Strategy Games for ttieAOton-Game Player' 



The problem you mentioii is typical of TV 
sets or monitors that suffer from severe 
overscan (they can't display all of the 
picture on the screen). If you can't adjust 
the picture to include the top screen line, 
you'll have to modify the program. In this 
issue, we're introducing the "New Auto- 
matic Proofreader" for Commodore com- 
puters, which works on the 64, 128, VIC- 
20, Plus/4, and 16. Though it's designed 
to print the checksum in the upper-left 
corner of the screen, the new Proofreader 
can be made to print it elseivhere. First, 
follow the instructions in the article for 
typing and saving the new Proofreader. 
Then reload it and make the following 
changes: 

• In line 80, change 20570 to 20551. 

• In line 110, change 22054 to 22035. 

• In line 190, change 19 to 0. 

Now resave the program, using a 
different filename so you can tell it apart 
from the original version. The modified 
Proofreader prints the checksum just be- 
low the last line entered, rather than at 
the top of the screen. You can either type 
the next line number over the checksum, 
or move the cursor down to the next blank 
line and then start typing. Since this mod- 
ification makes the Proofreader less 
convenient for listing and rechecking a 
group of existing program lines, you prob- 
ably won't want to make this change un- 
less it's absolutely necessary. 

Checking Apple DOS From 
BASIC 

How can an Apple I! BASIC program 
check to see which operating system is 
running? 

P. Nyman 

There are quite a few differences between 
DOS 3.3 and ProDOS, but with a little 
care, a BASIC program can run under 
either operating system. You can tell 
which system is active by PEEKing memo- 
ry location 48640. This is the start of the 
BASIC System Global Page in ProDOS. 
and contains operating system variables 
which a BASIC programmer might want 
to read or change. Since the page begins 
with a machine language JMP (jump) in- 
struction, this first byte has a value of 76 
under ProDOS. When you use DOS 3.3, 
the same byte contains 208. Here's a sim- 
ple routine that does what you want: 

10 IF PEEK(48640) = 76 THEN PRINT 
'TRODOS INSTALLED":GOTO 30 
20 PRINT "DOS 3.3 INSTALLED" 
30 REM PROGRAM CONTINUES HERE 



Atari Compiler Problem 

I own an Atari 800XL and frequently 
use Datasoft's BASIC Compiler to com- 
pile my own BASIC programs. I recent- 
ly tried to compile a public domain 
terminal program called "Amodem 
7.1," with unsatisfactory results. The 



compiler won't accept statements that 
GOTO or GO SUB a variable or expres- 
sion. The author of the terminal pro- 
gram used the common memory-saving 
technique of defining often-used num- 
bers as variables (CI = 1, and so on). I 
have converted the variables back to 
numbers, but the GOTO and GOSUB 
statements still refer to expressions (for 
instance, GOTO 3"100 instead of 
GOTO C3*C100). Can you write a rou- 
tine that will take me the rest of way, or 
lead me on the right track? 

Dennis Brenner 

Since we don't have the terminal program 
in question, we can't give a specific an- 
swer. However, it's not very practical to 
write a routine that will solve your prob- 
lem automatically. You'll need to analyze 
each of the problem statements to deter- 
mine whether it always branches to the 
same destination, or branches to different 
destinations depending on the controlling 
variable's value. To explain, say that you 
find the statement GOTO C3*C100 and 
discover that C3 = 3 and C100=100. If 
it's clear that the values of C3 and ClOO 
never change, you can replace the state- 
ment with GOTO 300. However, the pri- 
mary reason for using a variable 
expression with GOTO or GOSUB is to 
permit the program to branch to a variety 
of destinations depending on the vari- 
able's value. 

For example, say that you find the 
same statement (GOTO C3*C100) and dis- 
cover that C3 may have the values 1, 2, or 
3 when this statement executes. Program 
flow will branch to line 100, 200, or 300, 
depending on the value ofC3. In this case, 
you can't replace the expression with a 
constant, since that would limit the 
branch to only one destination. The best 
alternative is to substitute ON-GOTO 
and ON-GOSUB. For instance, the state- 
ment ON C3 GOTO 100, 200, 300 
branches to line 100 when C3 = l, line 200 
when C3 = 2, and so on. To make this 
work, you must determine all the possible 
values that the controlling variable (C3 in 
this case) might have, and compute all the 
destinations that might be generated by 
that expression. Once that's done, you'll 
know which line numbers to put at the 
end of the ON-GOTO or ON-GOSUB 
statement. 

Most BASIC compilers accept only a 
subset of all the commands in BASIC, so 
it's possible that yours might not handle 
ON-GOTO or ON-GOSUB, either. If 
that's the case, you could replace the orig- 
inal statement with a string of IF-THEN- 
GOTO statements (IF C3^1 THEN 
GOTO 100, IF C3^2 THEN GOTO 200, 
etc.). This construction is less efficient, 
but should work with almost any compil- 
er. Tradeoffs of this sort are inevitable 
when compiling programs that weren't 
designed to be compiled. 



Saving IBM PC Screens 

I'm writing a BASICA painting program 
for the IBM PC that does all the draw- 
ing with PUT commands. But I need to 
know how to save a picture to disk so 
my work isn't lost when I turn the 
computer off, I know you can store an 
entire screen in an array with a GET 
command like this: 

10 DIM V(4001) 

20 GET (0,0)- (639,199), V 

How can I save the contents of this 
array to disk? 

David Short 

It's a simple operation in BASICA. The 
VARPTR function can tell you the memo- 
ry location where any array is stored, and 
BSAVE can save the contents of any block 
of memory, including arrays or other vari- 
ables. Since each element of the array 
occupies four bytes, you must save 16004 
(4'4001) bytes of memory. Use 
VARPTR(V(0)) to find the location of the 
first elemejit in the array. This statement 
saves the array V in a file called 
PICTURE: 

30 BSAVE "PICTURE", VARPTR(V(a)) 
,16004 

Here's a complementary program to 
load the same picture from disk and dis- 
play it on the screen. Don't forget to 
DIMension the array before performing 
this operation. 

10 DIM V(4001) 

20 BLOAD 'TICTURE",VARPTR(V(0» 

30 PUT (0,0),V,PSET 



Embedded BASIC Words 

I usually pay little or no attention to 
spacing when typing BASIC programs, 
but when using "MLX 11" to type in a 
program from the December 1985 issue 
of COMPUTE!, I ran into a puzzling prob- 
lem. Everything worked fine until I 
tried to load data and received the mes- 
sage SYNTAX ERROR IN LINE 830. I 
rechecked the line and found that 
everything was correct, except that I 
hadn't used the same spacing shown in 
the magazine listing. When I corrected 
the spacing, the program worked per- 
fectly. After a little further investiga- 
tion, 1 discovered that the space causing 
the problem was between ST and AND. 
Why does that space make such a 
difference? 

Jim David 

Here's what that portion of line S30 looks 
like: 

IF ST ANDa<>B)THEN F = 2 

Both AND and ST are reserved words in 
Commodore BASIC, meaning that BASIC 
lets you use them for only one purpose. ST 
(STatus) is a reserved variable that indi- 
cates the status of input/output opera- 
tions like loading or saving to disk. AND 



12 COMPUTEI March 1986 



COMPUTEi's 

MM 




WJim 




Eyerf thing yoa need for successful, 
catertaiaittu, and chanenging 
programming on your Amiga, Mari 
ST, or Commoilore 128 comnuter. 



COMPUTEi's 128 Programmer's Guide 

ISBN 0-87455-031-9 
Editors of COMPUTE! 464 pages 

Written and compiled by the most technically proficient auttiors in 
consumer computing today, the technical staff of COMPUTE! 
Publications, this guide to the powerful Commodore 128 computer 
contains a wealth of information for every programmer. Explore 
BASIC 7.0 through countless hands-on examples and sample 
programs. Learn how to aeate dazzling graphics and sophisticated 
sounds in both BASIC and machine language. See how to program 
peripherals, such as disk drives, printers, and modems. Enter the 
world of CP/M, just one of the three modes of the 128. There are 
even chapters introducing you to machine language programming 
and the computer's method of managing memory. COMPUTEi's 
128 Programmer's Guide includes numerous appendices covering 
everything from en-or messages to memory maps. 
$16.95 



Look for these new books at a 
bookstore or a computer store near you. 
Or order directly from COMPUTE! Books. 
Call toll-free 1-800-346-6767. In NY call 
212-887-8525. 



Eacii (rook is carefuiiy written in 
COIiliPUTEVs iiyeiy, unOerstantiabie 
styie to iiein eyen beginning 
programmers iearn the ins and outs 
of their personai computers. 



COMPUTEi's ST Programmer's Guide 

0-87455-023-8 
Editors of COMPUTEi 

Complete and comprehensive, yet easy to understand, 
CXJMPUTEI's ST Programmer's Guide is a must-buy for any 
Atari ST owner. The technical staff of COMPUTE! Publications has 
put together a reference guide to programming that lakes the 
reader through every aspect of (his newest Atari personal 
computer. Logo and BASIC, the two programming languages now 
available for the machine, are explored in detail. From 
programming concepts to writing programs, the scores of ready-to- 
type-in examples show just what can be done, and how to do it 
Advanced features of this new-generation computer, such as GEM 
and TDS, the ST's user interface and operating system, are 
illusti'ated as readers write their own applications, \Mluable 
appendices (xovide information programmers need, including GEM 
VDI opcodes and a list of ST resources. 
$16.95 



COMPUTER'S Amiga Programmer's Guide 

0-87455-028-9 
Edited 

Covering AmigaDOS, BASIC, Intuition, and the other important 
programming tools which accompany the new Amiga, COMPUTEi's 
Amiga Programmer's Guide is a clear and thorough guide to the 
inner workings of this fascinating, new-generation computer. The 
great speed of its 68000 microprocessor, coupled with the 
versatility of the Amiga-specific graphics and sound chips, makes 
the Amiga one of the most powerful computers available today. 
Written by the technical staff of COMPUTE! Publications, the most 
technically knowledgeable authors in computing today, this book is 
your key to accessing the Amiga's speed and power. 

$16.95 (March Release) 



COMPUTEI Publications Jnc.® 

One 01 the A8C PuOistiing Componies ^^^^^ 



COMPLTTE! books are available in tlie U.K., Europe. Hie Micktie East, and 
Africa from Holt Saunders, Ltd.. 1 St Anne's Road. Eastbourne, East 
Sussex BN21 3UN, England. 



is a logical operator which in this case 
connects the value of ST with the value of 
the expression (loB). 

Typing STANDdoB) instead of 
ST ANDQoB) makes the computer see a 
third reserved word in the line — the nu- 
meric function TAN (TANgent). Since 
TAN, tike other functions, must be fol- 
lowed by something inside parentheses, 
the computer responds with a syntax error 
message when it finds the letter D instead 
of a left parenthesis. That's a nutshell 
explanation for the error. But you may 
still wonder why the computer sees TAN 
inside the word STAND, After all, the 
words ST and AND seem to be there as 
well. 

The short program below shows ex- 
actly why TAN appears. Don't worry 
about the fact that line 10 looks strange. 
We're not going to execute that line— it's 
only there to let us examine how BASIC 
handles these reserved words. 

10 :ST:TAN:AND::STAND;: 
20 PRINT CHR$(14);CHRS(147) 
30 FOR J = TO 19:FOKE 1024+J, 
PEEK(2049+J)rPOKE 55296 +J,1:NEXT 

After typing the program, enter 
GOTO 20 and press RETURN (don't start 
the program with RUN), litie 30 PEEKs 
the first 20 bytes of BASIC program space 
and displays their contents on the screen, 
showing you how the computer stores line 
10 in memory. As you'll see, the reserved 
variable ST is stored as the ASCII charac- 
ters S and T, exactly what you typed in. 
This is the way all variable names are 
stored. However, both TAN and AND are 
changed into one-byte tokens, which ap- 
pear here a$ reverse video characters. 
Most BASIC words are tokenized — com- 
pressed into a single numeric value — to 
save space and make BASIC run faster. 
Between the double colons we placed in 
the line as markers, you can see hfm the 
computer handles the character sequence 
S-T-A-N-D. When it tokenizes a BASIC 
line, the computer reads from left to right, 
just as you do. The initial S in STAND is 
left unchanged, since it isn't part of a 
keyword that can be tokenized. Next, the 
computer finds the characters T-A-N, 
which it replaces with the one-character 
token for TAN. That leaves the character 
D, which is also left unchanged. 

After TAN is tokenized, the computer 
can't possibly see ST or AND (T and AN 
are missing), so the line can't work as 
intended. In this case, it was coincidental 
that the combination of two reserved 
words made a third reserved word. How- 
ever, the same thing would happen if you 
omitted a space between ST and the logi- 
cal operator OR. When the computer 
scans the characters S-T-O-R, it changes 
the embedded keyword TO into a token. 
For similar reasons you should be careful 
not to use variable names like TOP, NOTE, 
or FORK, which also contain embedded 
BASIC words (TO, NOT, ajid FOR). 



Arabian Atari Revisited 

In the December 1985 "Readers' Feed- 
back" you printed a letter from Nour 
Abdullah Al-Rasheed asking how to 
make the cursor on his Atari computer 
move from right to left. He may want to 
consider a hardware solution. The im- 
ages displayed by a television set or 
monitor are placed on the screen by 
vertical and horizontal deflection cir- 
cuits. An experienced electronics tech- 
nician who's familiar with video 
displays should be able to examine the 
schematic for that device and determine 
which wires control horizontal deflec- 
tion. By rewiring that circuit, the techni- 
cian could bring about the desired 
change. This modification should prob- 
ably be considered permanent; and it 
may require some adjustment of nor- 
mally untouched interna! controls to 
get a satisfactory picture. While it might 
be possible to install a svritch that 
would let you flip back and forth be- 
tween display modes, the technician 
would have to use special insulating 
spacers and take pains to protect the 
operator from the very high voltages 
involved. 

Jim Taylor 

Thanks to you and the other readers who 

suggested this solution. As you point out, 
the circuitry involved carries extremely 
high voltages that can cause very serious 
injury, so this type of modification must 
be performed by a fully qualified tech- 
nician. Unless you fit that category, don't 
even consider poking around inside your 
TV or monitor. You may cancel any war- 
ranty which IS in effect, and run a serious 
risk of injuring yourself as well as the 
device. 

Refurbishing Tip 

I really appreciate the article "Refurbish 
Your 64" from the December issue of 
COMPUTE!. Here is an additional 
convenience feature. If you change line 
3470 to read as follows, you won't have 
to enter the direct mode statements 
(POKE 55,0:POKE 56,160:POKE 
643,160:POKE 644,1 60:NEW) after the 
program is run. 

3470 READ AOiIF A0 = 99999 THEN 
POKE253,2S3:SYS49194;POKE643,0 
:POKE644,160:NEW 

Albert Alarie 



Thanks for the tip. 



Tl Music 

I have seen TI-99/4A programs that 
create music with DATA statements. 
Please show me how this is done. 

Tim Huemmer 

Though the DATA statements play a part 
in the process, the TI actually makes 



sound with CALL SOUND. Here's the 
simplest form of the statement: 

CALL SOVND{d,f,v) 

The first value in parentheses (d) sets 
the duration for the sound. The second 
value (fi sets the frequency, and the third 
(v) sets the volume. CALL SOUND lets 
you produce as many as four tones at once, 
so with a statement like CALL SOUND 
(d,fl,vl,f2,v2,f3,v3) it's possible to create a 
three-note chord. In this case, fl, f2, and 
f3 represent the frequencies of the three 
notes, and vl, v2, and v3 represent their 
respective volumes. Of course, in a pro- 
gram you'd substitute real numbers or 
variables inside the parameters. 

Where do DATA statements come 
into the picture? In most cases, it's sim- 
plest to read the music data from DATA 
statements and assign it to variables in- 
side parentheses in CALL SOUND. This 
saves program space and makes the music 
data easier to understand and modify. 
Here's a short example of how it's done: 

100 V = 5 

110 FOR I-l TO 5 

120 READ D,F1,F2,F3 

130 CALL SOUND{D,Fl,V,F2,V,F3,V) 

140 NEXT I 

150 DATA 1500,262,330,390 

160 DATA 250,262,349,440 

170 DATA 1500,262,349,415 

180 DATA 250,277,349,415 

190 DATA 1500,277,370,466 

200 DATA 250,262,392,466 

This program plays five three-note 
chords. Line 100 assigns the value 5 to the 
variable V. Since the CALL SOUND state- 
ment ijses V to set the volume for every 
note, it stays the same throughout the 
program. Line 120 READs in new DATA 
items for each chord, setting the duration 
with the variable D and the three note 
frequencies with variables Fl, F2, and F3. 
The frequency values for the notes are 
found in the appendix in the TI User's 
Reference Guide. You can read more 
about TI sound in COMPUTEI's Pro- 
grammer's Reference Guide to the TI- 
99/4A by C. Regena. Several of her 
monthly columns in COMPUTE! have also 
covered this topic. 

Commodore B128 Users' 
Group 

I was glad to see that Jim Butterfield's 
dynamic keyboard articles (COMPUTE!, 
October-December 1985) included 
some references to the Commodore 
B128 (called the B700 in Europe). As 
you may know, the international B128 
user group is sending out 13,000 news- 
letter/membership applications to 
B128 owners in North America and 
B700 users in Europe. The group cur- 
rently has 1,500 members, and mem- 
bership is rapidly increasing. Our disk 
library is also off to a good start, and 
offers a variety of public domain 



14 COMPUTEI March 1986 



Explore Pascal with 




THE 



HANDB 




• !• 



from COMPUTE!. 



The Turbo Pascal Handbook 
Edward P. Faulk 

With The Turbo Pascal Handbook and Turbo Pascal from 
Borland International, you'll be gently guided, step-by-step, 
until you're creating your own powerful applications in this 
Impressive computer language, 
SI 4.95 ISBN 0-87455-037-8 



This information-packed book from COMPUTE! is an outstanding resource and 
programming guide. And it's written in COMPUTEi's bestseJIing style so that even 
beginning programmers can quickly and easily understand all the applications. 

Ask for The Turbo Pascal Handbook at your local computer store or bookstore. 
Or order directly from COMPUTES. Call toll free 1-800-346-6767 (In NY 212-887-8525) 
or mail the attached coupon with your payment (plus $2.00 shipping and 
handling per book) to COMPUTE! Books, P.O. Box 5038, F.D.R. Station, New York, 
NY 10150. 

Note: You'll need Turbo Pascal in order to use this book. The software Is not Included with The Turbo Pascal 
Handbook. 



r 



Vest Send me . 



My payment Is enclosed. 



copies of The Turbo Pascal Handbook at $ 1 4.95 eoch. 



ALL ORDERS 

MUST BE 

PREPAID IN 

US. FUNDS 



Subtotal 

NC residents add 4.5% sales tax 

Shipping and handling 



($2.00 per book in U.S. and surface 
mall; $5.00 per book airmail.) 
n Payment enclosed (check or money order) Total enclosed 

n Charge D Visa D MasterCard D American Express 



Account No, , 

Name 

Address 

City 



Exp. Date 



(Reqiiired; 



State . 



.Zip. 



Please allow 4-6 weeks (or delivery. 



36303711 



COMPUTE! Publicationsjnc.® 

One of the ABC Publishing Companies ^^^^ 

825 7tf> Avenue. 6th Floor, New York. NY 10019 

PuMsHai! ot COMPUTE!. COMfUTEi's Goistta. COMPUTEis Goiatta Disk. COMPUTEI Books, and COMPUTEI'S Apple Apoucations 



programs to members. Interested 
B128/B700 owners may obtain mem- 
bership information at the following 

address: 

B128/B7O0 User's Group 
Attn: Norman Deltzke 
4102 North Odeil 
Norridge, Illinois 
USA 60634 

Thanks to reader John A, Francis for sup- 
plying this information. 

Booting PCjr In 80 Columns 

I own an IBM PCjr, as do many of my 
coworkers. We would all like to know if 
there is any way to make the PCjr boot 
DOS 2.1 in an 80-column format in- 
stead of 40 columns. Presently, to get 
DOS in 80 columns, I execute the pro- 
gram "Rebound" which was published 
in COMPUTE!. I then press Fn-Break, and 
the DOS prompt appears in 80 col- 
umns. Can you show me a simpler 
way? 

Martin Gappa 

No tricks are needed to get 80 columns on 
the PCjr, since DOS has a command spe- 
cifically for that purpose. Just type MODE 
80 at the DOS prompt with the DOS disk 
in the drive. To get back to 40 columns, 
type MODE 40. Additional parameters let 
you shift the display left or right to center 



it on the screen. MODE 80,L shifts the 
display two characters to the left, and 
MODE 80,R shifts to the right. A third 
parameter, T, displays a test pattern on 
the screen for precise alignment. For ex- 
ample, MODE 80,R,T shifts the display to 
the right and prints the digits 0-9 eight 
times across the screen. Then you're asked 
if you can see the leftmost 0. If you can't, 
press N and the display shifts again fol- 
lowed by the same prompt. Press Y to 
return to the DOS prompt. 

You can make the computer automat- 
ically switch to 80 columns when it's 
turned on by using a batch file. To create 
the batch file, insert one of your disks with 
system files on it and enter the command 
COPY CON AUTOEXEC.BAT. Then type 
MODE 80 and press the F6 function key 
(Fn-6) followed by Enter. When the drive 
stops spinning, display the directory: You 
should see the file AUTOEXEC.BAT. This 
file IS automatically executed when you 
turn on the computer. For more infor- 
mation about batch files, see "Ail About 
IBM Batch Files" in the September and 
October 1985 issues of compute!. Since 
MODE is an external DOS command, you 
must also have the file M0DE.COM on 
the same disk. To add this feature to all 
your boot disks, use the COPY command 
to copy both AUTOEXEC.BAT and MODE 
.COM to each disk. @ 



COMPUTEI 
Subscriber Services 

Please help us serve you better. If you 
need to contact us for any of the 
reasons listed below, write to us at: 

COMPUTEI Magozln* 

P.O. Box 10954 

Des Moines, lA 50340 

or call the Toll Free number listed below. 

Change Of Address. Please allow us 
6-8 weeks to effect the change; send 
your current mailing label along with 
your new address. 

Renewal. Should you wish to renew your 
COMPUTEI subscription before we 
remind you to, send your current mailing 
label with payment or charge number 
or call the Toil Free number listed below. 

New Subscription. A one year (12 
month) US subscription to COMPUTEI is 

S24.00 (2 years, $45.00; 3 years, $65.00. 
For subscription rates outside the US, 
see staff page), Send us your name 
and address or call the Toil Free number 
listed below, 

DellveiY Problems. If you receive dupli- 
cate issues of COMPUTEI, if you experi- 
ence late delivery or if you have prob- 
lems witn your subscription, please call 
the Toll Free number listed below. 

COMPUTE! 
1-800-247-5470 

InIA 1-800-532-1272 



Help "Design" the On- Line Service of the Future! 



Answering these questions can help you get more out 
of your PC. . .and determine if you qualify for a valuable 
free offer . . 

• Take this opportunity to try the new service at no charge 
in exchange for your feedback on the survey 

• Join scores of PC owners in this exciting developmental 
opportunity It's like being there for the design of tiie PC or 
some new software. 

X. What make and model of PC do you own? 
D Commodore 64 or 128 D Apple II 
D IBf\/1 PC or Compatible D Other 



^* Do you own a disk drive? O Yes D No 

0» Do you own a modem? D Yes D No 

D No, but plan to buy 
within 6 months 

4« Have you ever tried an on-line service? D Yes D No 
If yes, would you consider using one? D Yes □ No 
If no, would you consider trying one? D Yes D No 

0-« Which of these credit cards do you use? 
n VISA □ MasterCard 

D American Express D None 



D« Please rate the following on-line services and 

features according to your own personal needs. (Use a 1 to 5 
point scale, where "5" means "extremely Important" and 
"1" means "not important at all.") 



Services Bate 1-5 

Current news/sports 

Banking services 

Encyclopedia 

On-line shopping 

Advice from 

computer experts 

Airline reservations 

On-line communications 
with other PC owners 



Rate 1-5 



Features 

Low cost- 
pennies/minute 

No monthly subscription 

feesorminimums 

Local phone access 

Fast and easy to learn, 
understand and use 

English language 
command structure 

Billable to credit card 



THANK YOU. Please print the following information, so we 
can contact you if you qualify for the free offer or if we 
have any questions. 



Address Apt. Wo 

City/State/Zip 

I ) 

Phone 

See if you qualify for a free offer on this new service. 
Complete and mail survey today to.. .On-Line Service 
Survey Attention : Steve Elliott, 625 N. Michigan Ave., 
Suite 1900, DepL 8803, Chicago, Illinois 60611. cm-lb 



16 COMPUTB Morch 1986 





^B oeaitir 



Now Get Up To 200 FREE Programs When You 
Subscribe to COMPUTE! Today 



Subscribe to COMPUTE! today and you'll be getting a lot more 
than just another computer magazine. That's because COMPUTE! 
comes complete with up to 20 FREE programs in each big issue. 

Subscribe now and you can depend on a steady supply of high 
quality, fun-filled programs like Cash Flow Manager, Speed Ski, 
Turtle Pilot, Boggier, Text Plot, Retirement Planner, and hundreds 
of other educational, home finance, and game programs the entire 
family can use all year long. 

The free programs alone are worth much more than the low 
subscription price. But there's more to COMPUTE! than just free 
programs. 

COMPUTE! 5 superb articles deliver the latest inside word on 
everything from languages to Interfaces.. .programming to disk 
drives, And our up-to-the-minute software reviews are must read- 
ing for any home user. 

Whether you're a novice or an experienced user, COMPUTE! is 
perfect for you. So subscribe today Return the enclosed card or 
call 1-800-247-5470 (in Iowa 1-800-532-1272). 



COMPUTE! Publicationsjncj 

One C the 4SC PuDi'S'1-^3 Ccrrccnes ™ 

825 7m Avenue. 6tn Floof. Hev ¥01*. NV I Dal? 

CutMTJM ;" "CW^J't CO***jtt' , &01*"w CC**VtE' ! <5aM"* tJ« CC**VIE So3*, arc CaM>uirf,*uo« 



eenticT taewK In a rbm- >' 

ir; X '.> •; 4H.VJ 

nQoasaoM 




** FREESORWARE ** FREE SOFTWARE ** FREE SOFTWARE * 




THE FUTURE OF 



MASS 

STORAGE 



Dramatic changes are occurring 
in the ways we store computer 
information. Technological ad- 
vances and lower production 
costs are affecting both magnetic 
and optical data storage media. 
Traditional 5Vi-inch floppy 
disks are giving way to SVi-inck 
microfloppies. Hard disk drives 
are rapidly becoming cost effec- 
tive for average users. And low- 
power lasers are making optical 
storage technology the medium 
of the future. Here's a look at 
how far and how fast data stor- 
age technology has come, and 
where ifs headed next. 



Selby Batemon, 
Features Editor 



Just when we think we're 
getting used to the pace 
of change, technology 
surprises us again. Con- 
sider the following impor- 
tant changes to the ways 
we store computer data: 

• Apple Computer 
introduces its UniDisk 
3.5, a 3 ¥2 -inch disk drive 
for the Apple He and the Ap- 
ple Ik computers that can store 
up to 800K (kilobytes) of infor- 
mation, more than five times the 
amount of the standard Apple 
574 -inch drives. 

• New 372 -inch drives are in- 
cluded as standard storage systems 
for Atari's 520ST and Commo- 
dore's Amiga, joining Apple's Mac- 
intosh which was introduced with 
the drive in 1984. Industry sources 
believe IBM will also begin using 
the faster, more powerful 3V2-inch 

drives sometime in 1986. 

• Blue Chip Electronics says it 
plans to offer a 3V2-inch disk drive 
for the Commodore 64, tentatively 
priced at about $100. Commodore 
insiders admit that they already 
have the technology to offer a 3V2- 
inch drive and a 10-megabyte hard 



disk drive for the 64 and 128 (al- 
though no plans to market these 
peripherals have yet been an- 
nounced). Atari also has been con- 
sidering a 3V2-inch disk drive for its 
line of eight-bit computers. 

• Haba Systems is marketing a 
low-priced ($699) 10-megabyte 
(lD,240-kilobyte) hard disk drive 
for the Atari ST. Prices for 10- and 
20-megabyte hard disks fall as low 
as $400 for some computers, Hard 
disks on a card are announced for 
the IBM PC. 

• Toshiba, Hitachi, Philips, and 
several other companies announce 
CD-ROM {Compact Disc-Read 
Only Memory) players that can 
store entire encyclopedias or mas- 
sive software libraries on just a por- 
tion of a 4% -inch optical laser disc. 

• Maxell Corporation shows a 
new 2V2-inch microfloppy disk 
drive that it plans to sell to manu- 
facturers for use in laptop comput- 
ers. The company also announces a 
5V4-inch eraseable, reusable optical 
laser disc, which is to be marketed 
by 1987, and a new high-density 
perpendicular magnetic recording 
disk that packs up to lOOK of data 
per inch. 

March 1936 COMPUTEI 19 




XREF128&XREF-64 

BASIC cross-reference 

Indispensible lool for BASIC 
programmers. Finds alt refer- 
ences to variables, constants & 
line numbers. Sorts in alptia- 
betical order. C-64 $17.95 
C-128 $17.95 




Reference Books ^ 



ASSBVIBLErnVDNITOR 

Macro assembler and extended 
monitor. Supports ail standard 
functions plus floating point 
constants. Monitor supports 
bank switching, quick trace, 
single step, more. $39.95 



LDA|c-p DEC 
I NX lisiY NOP 
ROR TYA 

,-,„, ERK JMP,.,„ 
ROLcTi^T., INC 



TAX 



STAsTY „„ 
PLA RTS CMPSTX 
SEC PLP SED 



SUPER PASCAL 

Full Pascal supports graphics, 
sprites, file management, more. 
Supports pointers, dynamic 
memory management, machine 
language. Compiles to fast 6510 
machine code, C-64 $59.95 
C-128 S59.95 



:3aT>3/;?^a3j5ai;: 



SUPER C COMPILER 

Full compiler, Kernighan & 
Ritchie standard, but without bit 
fields. Includes powerful editor 
(41 K source file); compiler, 
library (supports many func- 
tions) and linker. C-64 $79.95 
C-128 $79.95 





ANATOMY OF C-S4 Insidai's guide to the '64 
inlernals. Graphics, sound, I/O, kernal, memory 
maps, and much mora, Completa commenled 
■10M listings. 300pp $19.96 



tVE 8esl handbook 



ANATOMY OF 1541 
on this drive 
oxamples progi 
manted 1541 Rr 




k^leil with many 

^rC«s\ Fully com- 

50(J+pp $19.95 



MACHINE LANGUAGE FOR C-64 Learn 
6510 code S wrila last programs. Many samples 
,ind listings tor complela assembler, monitor 
and simiialor. 200pp $14.95 

GRAPHICS BOOK FOR C-64 Best relarance, 
covers basic and advanced graphics. Sprites, 
Hiros, Multicolor, 3D-graphics, IRQ. CAD, 
projections, curves, more. 350pp $19.95 

TRICKS i. TIPS FOR C-S4 CoilBcl.on ol 
oasy-to-use techniques: advanced graphics, 
improved data input. enhancBd BASIC, CP/M, 
oata handling and rriore. 275pp SI 9.95 

. . ■.:,..r.-;XV-;.>WJM..VN'>.-.- - ■ 



1541 REPAIR 1 MAINTENANCE Handbook 
on the drive's hardware. Includes schematics & 
lechniqufls to keep 1 541 running. Altgn drive W 
&w'o scope. Large handbook size. $19,95 

ADVANCED MACHINE LANGUAGE Sub- 
jects not covered elsewhere: video controller, 
interrupts, timers, fO, extensions to BASIC. Tips 
for the serious programmer. 210pp $14,95 

PRINTER BOOK C-S4A'IC-20 Understand 
Commodore, Epson compatible pnnters & 1520 
plotter. Utilities, screen dump, 3D-plot, com- 
mented MPS-S01 ROM listings. 330pp $1 9.95 

SCIENCE/ENGINEERING ON C.64 In- 
depth introduction to computers in science. 
Some topics covered are chemistry, physics, 
astronomy, eiectronicsS others. 350pp $19.95 

CASSETTE BOOK C-64/V1C-20 Make your 
cassette run faster than a disk dnval Cassette 
data-base, disk to tape backup, tape to disk, 
Fas'.Tapa operating system. 225pp $14.95 



f=ORTH LANGUAGE 

Based on Forth 79 (+ parts ot 
'83). Supports hires graphics 
and sound synthesizer. Full 
screen editor, programming 
tools, assembler, samples, 
handbook. $39.95 



wwi 




^S4S.«ijSSK5a^," 



"^ 



MASTER 

Professional development 
package for serious appli- 
cations. Indexed file system, full 
screen & printer management, 
programmer's aid, multi- 
precision math, royalty-free 
runtime, more. $39.95 



MASTER 

Professiona 

DevBlopmen! 

Package 



VIDEO BASIC 

Add 50-1- graphic, sound and 
utility commands to your 
programs with this super 
development package. Free 
distribution of RUNTIME version 
- no royaltiesi $39.95 




"^^ 



ADA TRAINING COURSE 

Teaches you the language of 
the future. Comprehensive 
subset of language. Includes: 
editor; syntax checker, compiler; 
assembler; disassembler, hand- 
book. $39.95 



ADA 
TRAIMING 
COURSE 



Productivity Tools \ 



TECHNICAL ANALYSIS SYSTEM 

A sophisticated charting and technical 
analysis system for serious investors. By 
charting and analyzing the past history of a 
stock. TAS can help pinpoint trends & 
patterns and predict a stock's future. TAS lets 
you enter trading data from Itie keyboard or 
directly from online financial services. $59.35 




PERSONAL PORTFOLIO IVIANAGER ^ 

Complete porlfolio management system tor 
the individual or professional investor. Allows 
Investors to easily manage their portfolios, 
obtain up-to-thc minute quotes & news, and 
perform selected analysis. $39.95 



Kimtma !■}>.■. 



CADPAK 

A deluxe graphics design and drawing 
package. Use with or without an optional 
lightpen to create highly-detailed designs. 
Willi dimensioning, scaling, text, rotation, 
object libraries, hardcopy. C-64 S39.95 

CM 28 S59.95 




DATAMAT 

Powerful, easy-to-use data management 
package using menu selections. Free-form 
design, 50 fields/record, 2000 records/disk. 
Sort on multiple fields in any combination. 
Complete selection and (ormatling for 
printing reports. $39.95 



^ ^"^^ ^ 




IDEAS FOR USE ON 0-64 Themes: auto 
axp«nses, calculator, racipa <ils, stock lists, dist 
planner, window acheftising, others. IncludBs all 
program Istings. 200pp $12.95 

COMPILER BOOK C-64/C-123 All you need 
to know about compilers: how Ihay work, 
creating your own and generating Itie tinal 
machine code. 3dQpp $19.95 

Adventure Gatrowrlter'a Handbook A 

stap-by-slep guide lo designing and writing your 
own adventure games. Adventure game gene- 
rator & tour example games. 200pp $14.95 

PEEKS Ji POKES FOR THE C.S4 Includes 
in-depth explanations ol PEEK, POKE, USR, 
an<3 other BASIC commands. Learn the "inside" 
tricks about your '64. 2Xf>s> $1 4.95 



OPTIONAL DISKETTES FOR BOOKS For 

your convenience, the programs contained in 
each ol our books are available on disi<etta. All 
program thoroughly tested & error-tree. Specify 
title ol book wtwn ordering. $T4J5esch 



C-128 INTERNALS Oelailed guide presents i 
the 123's operating system, explains the 
graphics chips. Memory Management Unit, and ; 
commented Isling of Kernal. SOO+pp $19.95;: 

1571 INTERNALS Insiders' guide lor novice : ■ 
and advanced users. Covers sequential & : ; 
relative files, and direct access commands, i; 
□escribes important DOS routines. Commented : ' 
IXiS listings. SOO+pp $19.95 \ : 

C-128 THICKS & TIPS Chock lull ol info for;: 
everyone. Covers BO column hi-res graphics, i; 
windowing, memory layout, Kernal routines,;: 
sprites aixJ mora. 300 pp $18.95 :; 

CP/M ON THE C-123 Essential guide to using 5 
CP/M on your 128. Simple explanations ol the i 
operating system, memory usage, CP/M utility i; 
pnjgrams, submit tiles and more. $19.95 I; 

COMPUTER AIDED DESIGN on your C-t 28 t 
or 64. Create a CAD system using orograms i; 
provided. Covers 3D objects & rotation, i 
MACHOS, hatching, looming, mirroring, line ;: 
widths, dashed lines, more.300 pages $19.95 i 



BASlC-128 is the complete compiler and development 
package for speeding up your BASIC programs. 

BAS1C-128 gives you many options; flexible memory 
management; choice of compiling in machine code, 
p-code or a mixture of both; use of a 40 or 80 column 
monitor; compiling in FAST-mode; etc. 

The extensive 80-page programmer's guide covers: all 
compiler options; error handling; array dimensioning; 
integer loops; interrupting compiled programs; BASIC 
extensions; memory usage; input/output handling; 80 
column hi-resolution graphics. 

BASI C-128 is the compiler for the programmer 
interested in optimizing the speed and preformance of 
their BASIC programs and protection of their invaluable 
programming techniques. C-128 $59.95 

ss5S;>C-64 $39.95 



XPER 

Capture your information on XPER's 
knowledge base and let this first expert 
system for Commoiiore computers help you 
make important decisions. Large capacity. 
Complete with editing & reporting. $59.95 



:W^Bt-^ 






POWERPIAN 

One of She most powerful spreadsheets with 
integrated graphics for your Commodore 
computer. Includes menu or keyword select- 
ions, online help screens. Held protection, 
windowing, trig functions and more. Power- 
Graph lets you create integrated graphs and 
ctiarts from your spreadsheet data. $39.95 




QUICXCXFYVZO 

Back up your valuable data with the fastest 
disk copier we've seen to date. Copies an 
entire disk in two and a fialf minules on two 
drives or three and a half on one. $19.95 




■4,^ 



CHARTPAK 

Make professional-quality pie, bar and line 
charts, and graphics from your data. Ini;ludes 
statistical functions. Accepts data from 
CalcResult and MulliPian. C-128 has 3X the 
resolution of the C-64 version. Outputs to 
most printers. C-64 $39.95 

C-12e $39.95 






Ordering Information^ 



Abacus Hi Software 




P.O Box 721 1 Grand Rapids, Michigan 49510 

For Postage and handling include $4.00 per order. Foreign orders Include 
$10.00 per item. Money order and checks in U.S. Dollars only. MasterCard, 
VISA and American Express acceded. Michigan residents please include 
4% sales tax. 

For fasf sen/ice call (616) 241-5510 Telex 709-101 

For free catalog, please return this coupon or a copy to: 
Abacus Software, P.O, Box 7211, Grand Rapids, Ml 49510 



PHONE: (616) 241-5510 



Mare 
AddtBss 
Cit y 
State 



2p- 



3/86 



• Sony announces a writeable 
optical laser disc storage system for 
computer use in business, science, 
and major archival applications ca- 
pable of storing up to 3.2 gigabytes 
(3,276 megabytes, or 3,354,624 
bytes) per disc. 



Virtually every week, another 
advance in data storage 
technology surfaces within 
the computer industry. What's go- 
ing to happen to all of the 5V4-inch 
floppy disks we're using now? Lis- 
ten to Maxell's Ted Ozawa, vice 
president of the computer products 
division: "While we expect floppy 
disks to continue as a major indus- 
try factor for at least the next ten 




Apple Computer's UniDisk 3.5 is a 
double-sided floppy disk drive that 
stores 800K of data, one of a growing 
number of 3'/2-inch drives for popular 
microcomputers. 



years, new technologies offering 
more portability or more storage 
capacity are being developed more 
quickly than previously 
anticipated." 

Ozawa's comments are being 
echoed throughout the computer 
industry as breakthroughs in stor- 
age technology are coupled with 
swiftly falling prices. Even casual 
computer users are beginning to 
think in terms of megabytes — and, 
with CD-ROMs, gigabytes. 

The computer industry is rap- 
idly advancing in two related areas 
of technology. The most immediate 
and visible changes are the ad- 
vances in magnetic technology, 
ushering in low-cost, high-capacity 
disks and drives for the mass mar- 
ket. At the same time, a second 
technology is gaining speed, less 

22 COMPUTEI Morch 1986 



visible but more important in the 
long run: laser discs designed for 
audio and video players are being 
tailored to computer data storage. 

To understand the economies 
of scale involved with recent data 
storage improvements, consider 
that a typical SVi-inch double- 
density IBM floppy disk holds ap- 
proximately 360K of information. 
(By comparison, a Commodore 64 
disk holds about 170K.) A double- 
sided SVi-inch disk contains ap- 
proximately 800-880K of data. And 
an optical laser disc typically holds 
550 megabytes, or the equivalent of 
almost 1,500 floppy disks (more 
than 3,500 Commodore 64 disks; 
more than 4,000 Apple 11 disks). 

Such capacities are a far cry 
from the data storage devices used 
by many of the early microcom- 
puter owners, A few years ago, 
modified audio cassette recorders 
were common storage devices on 
personal computers. They were in- 
expensive and usually reliable. Pur- 
chasers of Commodore VIC-20s, 
for example, and later Commodore 
64 buyers, generally used Commo- 
dore Datassette recorders as a way 
to get started in computing for a 
fraction of the cost of a disk drive. 

As with so much in the micro- 
computer field, magnetic tape stor- 
age was a descendant from 
mainframe computer systems. A 
cassette tape is a sequential access 
device. That is, tape moves sequen- 
tially across a recording head. In 
order to get to a program at the end 
of the tape, all of the preceding tape 
has to pass by the head first. The 
result is a frustratingly slow access 
time. More recent magnetic tape 
storage devices have used im- 
proved technology — data compac- 
tion, shorter loop tapes, and faster 
speeds — to remain competitive, at 
least as backup systems for hard 
disk drives. 

With the advent of circular 
magnetic disks, also descendants of 
mainframe systems, many com- 
puter users decided to switch to the 
new medium. Although more ex- 
pensive, random access storage of- 
fered significantly greater speed. A 
moveable read/write head could 
find information anywhere on the 
spinning disk almost instanta- 
neously. The first floppy disks were 
either 8 inches (from IBM) or 5^4- 
inches (from Shugart) in diameter. 



But the emerging micro industry 
quickly agreed on the smaller 5'A- 
inch (isks that predominate today. 



During the past three years, an 
even smaller-sized magnetic 
disk, the SVz-inch format, 
has gained popularity. With its faster 
access speeds, BOOK double-sided, 
double-density format, and sturdy 
plastic shell, the SVz-inch disk has 
definite advantages over the 5V4- 
inch standard. But when first intro- 
duced, so-called microfloppies 
came in at least three different 
sizes. Sony sold the 3V2-inch disk, 
Dysan offered its SVi-inch style, 
and Hitachi announced a 3-inch 
model. How did the SVi-inch disk 
become today's de facto standard? 
"The thing that happened was 
that Sony was very aggressive in 
promoting its format, not only to 
media [disk] makers but to drive 
makers," says David Berry, product 
manager for Maxell, a division of 
Hitachi. First Hewlett Packard and 
then Apple Computer adopted 
Sony's 3 'A -inch format, which cre- 
ated a snowball effect toward the 
Sony size. Hitachi still markets its 
3-inch model, primarily in Japan 




Maxell's new ultra-micro 2Vi-inch flop- 
py disk holds BOOK of unformatted data 
and IS planned for use in laptop com- 
puters and other selected markets. 



and Europe, notes Berry. In fact, 
Maxell just introduced an even 
smaller, 2 V: -inch disk, that it hopes 
to sell in selected market niches. 
"But," admits Berry, "we definitely 
think the 3V2-inch will be the domi- 
nant force." 

Regardless of their size, the 
physics of one floppy disk is similar 
to that of any other. An outer sleeve 
(vinyl for SVi-inch; hard plastic for 
3V2-inch) protects a circular disk 
that rotates on a disk drive's spin- 




maxell PiptaHaih, ItMMJing Mtk 




Looking similar to a standard 3V2-inch 
microfloppy, Maxell's new perpendicular 
recording disk stands magnetic particles 
on end to pack up to WOK of data per 
inch, about ten times the amount of a 
normal microfloppy. 




ning hub at hundreds of revolu- 
tions per minute. There is a ferrous- 
oxide coating on one or both sides 
of the disk. The drive's read/write 
head (or heads, if the drive is 
double-sided) can read and alter 
the arrangement of magnetic parti- 
cles .Information is recorded on the 
disk in concentric rings, or tracks, 
that are divided into arc-shaped 
sectors. Drive and disk manufactur- 
ers are continually improving this 
technology to allow increasing 
amounts of data to be accessed at 
faster speeds. The newest floppy 
disks are capable of megabytes of 
storage, such as the IBM AT's 1.2- 
megabyte floppy or Maxell's re- 
cently developed 10-megabyte 
metal-formula floppy disk, which 
contains 41.7K storage space per 
track and 120 tracks per side. 

The next quantum leap in mag- 
netic computer storage media is 
coming soon in the form oi perpen- 
dicular recording technology. Mag- 
netic floppy disks have heretofore 
used a standard metal oxide coating 
in which the particles lie horizon- 
tally on the disk surface. Perpendic- 
ular, or vertical, recording is 
analogous to the principle that more 
people can occupy a given space 
standing shoulder-to-shoulder than 
lying down side-by-side, explains 
Maxell's Ozawa, 

Picture the magnetic particles 
"like a thickly clustered crowd of 
people standing in a field," he says. 



Stripped-away views of two new 3'/2-inch Winchester-style 30- and 20-megabyte 
hard-disk drives from Peripheral Technology, Inc. Unlike floppies, these hard 
disks are nonremovable media. 



Maxell has developed a perpendic- 
ular high-density disk that allows 
lOOK of data per inch, almost a 
tenfold storage increase over cur- 
rent recording densities. The com- 
pany has worked with Hitachi to 
develop a metal-ferrite recording 
head that provides better head sur- 
face contact to read the densely 
packed particles. Other companies, 
chiefly Sony, Toshiba, and Matsu- 
shita, have issued technical papers 
and developed prototypes. But 
don't expect to see the perpendicu- 
lar disk on store shelves for awhile. 
Perpendicular recording has been 
on the drawing boards for several 
years, but still hasn't proven to be 
as cost effective or as easily pro- 
duced as traditional magnetic me- 
dia, says Maxell's David Berry. 

"There continues to be a lot of 
work by the media and drive peo- 
ple; however, the progress has been 
much slower than anticipated," he 
says. "It's a new technology, and 
the big thing today is the cost of 
storing per byte on any sort of me- 
dia. It's a price-performance ques- 
tion right now as to whether it can 
be made cost effective. We feel that, 
down the road, it will be the media 
and drive of the future." 

James Porter, head of the mar- 
ket research company, Disk/Trend, 
Inc., agrees that there's plenty of 
work ahead before perpendicular 
recording is durable and cost effi- 
cient enough to work. 



On another front, computer 
users are finding that Win- 
chester-style hard disk 
drives are increasing in per- 
formance as they drop in price. 
Lower prices and ease of use — es- 
pecially important with today's in- 
creasingly integrated, memory- 
hungry applications — are making 
hard disks attractive even to casual 
computer users, 

A hard disk spins wdthin a 
drive, much like a floppy, but at 
faster speeds (3,600 rpm, for ex- 
ample). However, hard disks have 
traditionally been nonremoveable, 
and their recording heads don't ac- 
tually touch the disk — instead, they 
float just above the surface. In the 
past, hard disks also cost thousands 
of dollars, were quite sensitive to 
dust and smoke, and were prey to 
"head crashes" that could ruin the 
whole disk. 

Improvements in technology 
are now bringing prices down, 
sometimes well below a thousand 
dollars. In addition, new SVi-inch 
hard drives are being introduced 
along with the standard 8-inch and 
5Vi-inch models. These new sys- 
tems are less prone to head crashes, 
have fewer problems with dust and 
smoke, and pack as much data into 
their systems as the older models. 
Prices for hard disks in the 10- 
or 20-megabyte capacities range 
from $400 to $1,500 depending on 
access time, capacity, and other fea- 

March 1986 COWPUni 23 



A new hybrid data storage device for 
IBM PCs and compatibles, the Clasix 
DataDrive Plus Series from Reference 
Technology combines a 550-megttbyte 
CD-ROM optical disc player in the 
same box with a 10- or 20-megabyte 
Iomega Bernoulli Box removable mag- 
netic cartridge. 



tures. Some 300,000 of the S'A-inch 
hard drives were shipped in 1985, 
while about three million 5V4-inch 
hard drives (under 30 megabytes) 
shipped worldwide during the 
same period. The numbers for SVi- 
inch hard disks should increase ap- 
preciably during 1986, notes Porter. 

Related to hard disk drives is a 
relatively new product, the Ber- 
noulli Box from Iomega Corp. The 
Bernoulli Box actually floats its disk 
on a cushion of air within the drive, 
and also allows the disk to be re- 
moved — hence, it offers the porta- 
bility of a floppy with the storage 
capacity of a hard disk. The floating 
disk also cuts down on the potential 
for destructive head crashes and the 
problems of dust and smoke. 

Some computer experts believe 
that by the year 2000, the days of 
magnetic computer data storage 
may be only an historical footnote. 
Major advances in the use of low- 
power lasers in audio and video 
players are being quickly applied to 
computer technology. One of the 
hottest consumer electronics items 
in recent years is the audio compact 
disc (CD). And later this year, com- 
puter users will get a chance to see 
what CD laser technology can do 
when linked with a computer — vir- 
tually any computer — as a CD- 
ROM storage device. 

The basic principle of CD 
ROMs is similar to the audio CD. A 
low-power laser beam reads micro- 
scopic pits that have been burned 
24 COMPUTE) March 1986 




into the disc itself. These pits — rep- 
resenting a series of ones and ze- 
ros — contain the data that in a 
magnetic medium would be formed 
by the arrangement of magnetic 
particles. The 4.7-inch CD-ROM 
discs contain a whopping 550 me- 
gabytes of data per disc. The first 
applications are likely to be ency- 
clopedias, such as the nine-million- 
word Academic American 
Encyclopedia, a 21 -volume refer- 
ence work that fits on just a quarter 
of one CD-ROM disc. 

The biggest problem with CD- 
ROM technology at this point is 
that the devices are read-only. 
Unlike the magnetic particles on a 
floppy or hard disk, once the .pits 
are burned into the surface of a CD, 
they can't be altered. But that limi- 
tation is already being challenged 
in the labs. 

Sony recently announced a 
writeable 12-inch optical disc sys- 
tem that can hold up to 3.2 giga- 
bytes of information. The disc is 
composed of two metallic elements 
sealed in a polycarbonate plastic. 
The laser beam writes information 
on the disc by turning the elements 
into an alloy which has different 
reflective properties. "This direct- 
seal method is more reliable and 
less costly than melt-type or bubble 
formation methods, which form 
gases during the writing process," 
says Robert Mesnik, Sony Infor- 
mation Products product manager. 
"The direct-seal method has a sim- 
ple structure with no air spaces 



which can cause degradation of 
information over time." 

This is a form of WORM 
(Write-Once, Read-Mainly) storage 
technology which offers high- 
density storage options for a variety 
of markets. The next step, however, 
is to create an optical technology 
that allows a laser to repeatedly 
write information on the same disc. 
Although not yet fully developed, 
an eraseable, reuseable SVi-inch 
optical disc has been announced by 
Maxell for distribution in 1987. But 
for now, CD-ROMs will remain 
read-only reference and archival 
storage devices. 

One of the first CD-ROM mod- 
els debuting in 1986 is Toshiba's 
XM-1000 drive, which will be able 
to access digital computer data and 
also play music — that is, it will be 
both an audio accessory and a com- 
puter peripheral. The unit will have 
a storage capacity of 600-680 me- 
gabytes and may enter the retail 
market at close to $1,000. Sony will 
also market its CDU-1 CD-ROM 
player in 1986. 

Five years ago, few computer- 
ists could have predicted how fast 
and how far data storage devices 
would come by the mid-1980s. Just 
as microcomputers themselves con- 
tinue to grow in capability and di- 
minish in price, so too will their 
storage devices expand to accom- 
modate bigger memories, more 
complex integrated software, and 
as-yet unheard of applications, © 



v^j 



With NRl training at tiome, you can . . . 

Move up to a high paying 
career servicing computers 



nn 



tDUl! 



jja«^3»S3i"»«« 



"I fh \ \ 






*.'//f£. 



•n. 



••'/ 



//•' 



And you can start by actually building NRI's 
16-blt IBM-compatible computer. 



You can create your omi bright, high paving 
future as an NKI trained computer senice tech- 
nician. The hijjSest grimth in jobs [between now 
and 11195. accniding to Department of Laburpre- 
dictiim.s, will iKCur in computer .seiTice and repiiir, 
where demand for trained technicians will double. 
There is still plenty of room for you to get in on the 
action— if you get the proper ti'aining now. 

Total computer systems 
training, only from NRl 

To learn how to work on computers, you 
have to get inside one. .And only NRl takes you 
inside a computer, with total systeins training that 
gives you handsKin experience witli computers, 
peripherals, and software. i\s part of your 
training, you'll build a Sanyo MBC-550-2, which 
experts have hailed as the "most intriguing" of all 
the new IBM-compatibles. 

Even if you've never had any previous 
training in electronics, you can succeed with NRl 
training. You'll start v\ith the basics, rapidly 
building on the fundamentals of electronics until 
you master advancL»d concepLs like digit;(l logic, 
microprocessor design and computer memory. 
You'll probe into electronic circuiLs, using the 
exclusive NRl Discovery L^'- and professional 
Digital Multimeter, that you keep. 

Learn to service today's computers 

You'll ;LS,senible Sanyo's intelligent keyboard, 
install tlie power .supply and disk drive, and attach 
the high reailullon monitor—all the while 
performing hands-cm experiments and demon- 
strations Uiat reinforce your skilLs. 

As you complete your Sanyo, you grasp the 
"secrets" that quality' you fur a new career. You'll 



learn to program in B.^SIC and machine l;mguage. 
You'll use utility programs to check out the Sanyo 
8088 microproce.s,sr)r (the same chip ascd in the 
IBM PC). ,\nd you al.sogel over Sl.ttOOwoi-th of 
software, including WordStar and CalcSt£u\ 
Learn the basics at home 

Most importantly, you'il understand the prin- 
ciples common to all computers. ( )nly a person 
who fully undei^tajids all the fund;mientals can 
hope to be able to tackle all computers. NRl m;ikes 
.sure that you'll gain the knowledge and .skills to 
maint;iin, tinuhleshcMit and .service computers. 

With XRi li-aining. you'll learn at home on 
your own time. That means your preparatinn for 
a new career or part-time job doesn't have to 
inteifere with your current job. You'll learn at 



yourcmn pace, in the comtbrt and convenience 
of youro^^■n home. No classrcxim pre.s.sures, no 
rigid night school .schedules. You're iilways 
bucked up by Uie NRl staff and youi' instnictor, 
who will an.swer questions, give \'ou guidance 
and he a\'ailable for speciii! help if \ou need it. 

Send for free NRl catalog 

i^et others wony about computers t;>king 
their jobs. With NRl tniining, you'll .soon have 
computers making good paying j{ibs for you. 
Sond the coupon today lor NRI's KXI-page 
catalog, with all the facts about computer hTiin- 
ing. If the coupon is missing, wiite to .N'Rl Schools. 
3939 Wisconsin .4ve.. Washingtoii, D.C, 20016. 

IBM is a Registered Trademark ol Internalionar Business 
Machines Corporation. 



n 



McGraw-Hiil Continuing Education Center 

3939 Wisconsin Avenue. Washington. DC 20016 
We'll give you tomorrow. 

;j CHECK ONE FREE CATALOG ONLY 
lI' Computer Electronics with Micmcompulers 

y Data Communicalions 

U Robotics a Industnal Controls 

D Color TV Audio, and Vidod System Servicing 

□ Elecironi: Design Tecnnology 

□ Digital Eleclronics 



i^nil 



Far Career courses 
approved ur^der Gl bill. 

Q check for oetails. 



□ CommuniMtions Electronics 
D Industrial Eleclronics 
C Basic Electronics 
i_ Telephone Servicing 
r] Small Engine Servicing 
D Appliance Senricing 



D Auloniotive Servicing 
D Air Conditioning. Heating. 
_ Retngeraiion. & Solar Tscfinology 
._ Building Construction 
^ Locksmilliinfl & Elecironic 
Securily 



Himti [Please Prinll 
Street 



Age 



U 



ity'Slatc'Zip 



Accredited by Jfie Nallonal Home Sludy COLircii 



199^6 



u 




26 COMPVTEI March 1986 



The 




HOME 



Kathy Yakal, Assistant Features Edi'or 



Perhaps you already have some 
"smart" appliances in your 
home — a coffeepot that 
comes on automatically at a preset 
time every morning; a clothes dryer 
that senses what kind of fabric is 
being dried and acts accordingly; 
lights that turn on at dusk and off at 
dawn to discourage burglars when 
you're out of town; or a microwave 
oven that does everything but get in 
the car and drive to the grocery 
store. 

The next step, it would seem, is 
to have all of these individual appli- 
ances controlled by a central unit, 
allowing you to talk to them 
through one keyboard, and which 
might even let them communicate 
with each other. The efforts of sev- 
eral manufacturers toward stan- 
dardization is bringing this science- 
fiction scenario closer to home. 

Many different home control 
units are now available. Some work 
through a personal computer and 
others are stand-alone units. They 
range in price from a few hundred 
dollars to a few thousand, and vary 
in the degree of technical expertise 
required to install them. Some are 
simple systems that work through 
existing household wiring via inex- 



pensive plug-in modules. Others 
require some knowledge of pro- 
gramming and skill with a solder- 
ing iron, but are suitable for more 
sophisticated applications. Despite 
these different features, the three 
most common functions of these 
systems are appliance control, ener- 
gy management, and home seouity. 

Home control can be a full-time 
job for a computer, especially 
if you're using it to manage 
energy consumption. So unless you 
bought your computer specifically 
for home control, you're limited to 
buying a stand-alone unit or a sec- 
ond computer, either of which can 
be major investments. 

Several home-control systems 
have been designed for the reason- 
ably priced Commodore comput- 
ers. You can still pick up a 
discontinued VIC-20 for under 
$100 at some stores, and a Commo- 
dore 64 for under $150. Dedicating 
such an inexpensive machine to 
one major function has proven very 
appealing to both manufacturers 
and consumers. 

For instance, the X-10 Power- 
house is a very easy-to-use, inex- 
pensive home control system that 



runs on the Commodore 64. The 
package consists of an interface box 
that plugs into the computer and 
software that runs the system. Up 
to eight different appliances can be 
set to turn on or off at specified 
times. The appliances must be 
plugged into modules available di- 
rectly from X-10 USA for $16.95 
each, or similar modules found at 
many electronics or hardware 
stores. (BSR modules are the most 
common.) 

No programming knowledge is 
necessary to use the X-lO's soft- 
ware. The opening screen shows 
nine icons representing different 
rooms in a house. After choosing a 
room, you "install" your own icons 
to show where appliances in your 
own house are. Then you simply 
set up a schedule for turning things 
off and on. The only time the sys- 
tem ties up the computer is when 
you're initially setting up or chang- 
ing the schedule, so you can contin- 
ue to use your computer as you 
normally would. 

The X-10 Powerhouse is also 
available for the Apple He and Ik, 
Macintosh, and IBM PC series. The 
Macintosh version lets you draw 
your own house plans with Mac- 
Draw and MacPaint instead of using 
the boilerplate menu. All versions 
retail for $150. And if you want to 
do more than simply control appli- 
ances, additional modules and con- 
trollers include a burglar alarm 
interface, a thermostat setback con- 
troller, a telephone responder 
(which lets you control your home 
from any phone), and a heavy-duty 
220-volt appliance module. 

Many of the modules that 
work with the X-10 are 
also compatible with a 
home control system called Home- 
Minder, from General Electric, The 
HomeMinder software also dis- 

March 1986 COMPUTE! 27 



plays graphic icons to help you set 
up the system. But unlike the X-10, 
the HomeMinder is a stand-alone 
unit that plugs into any color TV, 
Suggested retail price is $499. GE 
also sells a 25-inch color TV with 
the home control unit built-in for 
$1,200. 

Savergy, Inc., markets two 
home control units compatible with 
the Commodore 64 and VIC-20. 
The PowerPort, which sells for 
$99.95, can control up to eight 
small appliances. The CIM 112, 
selling for $479, can handle larger 
appliances such as washing ma- 
chines and water heaters. 

Genesis Computer Corpora- 
tion also has a line of inexpensive 
home control units for the Commo- 
dore 64 and VIC-20. The VlCon- 
troller ($69.95) uses BSR-type 
modules to automate lights and 
small appliances. COMsense 
($69.95), used in tandem with the 
VlControIIer, lets you set up a 
home security system by hooking 
up the computer to switches on 
doors and windows. It can also be 
programmed to sense things like 
temperature or moisture levels in 
the air or ground, which would sig- 
nal the VlControUer to turn on the 
lawn sprinkler or turn off the heat. 

The COMclock ($69.95) is a 
battery backup for the system. It 
automatically reboots the software 
used by the VlControIIer if there is 
a power interruption. Super Sched- 
ule Plus is a software package that 
integrates the operation of all three 
products, (COMsense and COM- 
clock are compatible with Savergy's 
products.) 

The Energy Manager, from 
Powerline Software, does not actu- 
ally control appliances, but is a soft- 
ware package that helps keep track 
of and analyze energy use in homes 
and small office buildings. It runs 
on the Commodore 64 and retails 
for $59.95, 

To justify the expense of adding a 
controller to your collection of 
home electronics, there has to 
be some reward. If it's primarily a 
home security system, or even just 
a unit that turns lights on and off, 
the rewards are obvious; security 
and convenience. 

Another tangible reward can 
come in the form of monetary sav- 
ings, if you buy a system geared 

28 COMPUTEI March 1986 




toward economizing your energy 
usage. John Helwig, of Jance Asso- 
ciates, Inc., has designed an inex- 
pensive, easy-to-install system that 
can save substantial amounts of en- 
ergy, especially if you have an all- 
electric home. 

"The utility companies are in a 
bind," says Helwig, "They sell elec- 
tric, and the electric they sell comes 
from the plants they build. Of 
course, they want to get away from 
the idea of building more plants. 
They want to sell you more electric, 
but they want to sell it to you at off- 
peak hours, because it is actually 
cheaper for them. 

"During the day, when every- 
one wants power, they have to run 
their most inefficient plants. They 
only run their most efficient plants 
at night. So although they want to 
sell more power — like any compa- 
ny, they want to sell more of their 
product — they want to sell it in off- 
peak hours. So the kick in it for 
them is, very simply, if they can get 
their customers to use electric at 
night, it's to their advantage." 

Helwig's energy management 
system, REDUCE (Reduction of 
Electrical Demand Using Computer 
Equipment), takes advantage of the 
time-of-day rates offered by many 
utility companies. (By lowering the 
hourly rates in evenings and on 
weekends, time-of-day rates en- 
courage people to limit their heavi- 
est electric use to off-peak hours.) 
REDUCE shuts things down during 
peak hours to make the most of 
these lower rates. In Helwig's own 
home, the system cut his electric 
bill by 40 percent last year. 

Helwig's system so impressed 
Pennsylvania Power & Light that the 
utility company is test-marketing it 



with a group of consumers who 
have a wide variety of house sizes 
and lifestyles (and no computer 
background). The testing is de- 
signed to see how much money 
REDUCE can save, and whether it 
creates any inconveniences. 

Compatible with the Commo- 
dore 64, REDUCE costs $250. In 
addition, Jance offers a Security 
Control System — a home security 
system with some home control 
features — for $195 (wired version) 
and $349 (wireless). It works on the 
64 and VIC-20. 

All home control systems have 
one thing in common. They 
must take analog infor- 
mation — anything read according 
to a scale, like degrees, volts, and 
pounds — and convert it into the 
digital information that computers 
can understand. 

One such converter is the 
ADC-1 Data Acquisition and Con- 
trol System ($449), from Remote 
Measurement Systems. It can be 
used with any RS-232-compatible 
computer, including the Commo- 
dore 64. 

One application for an analog- 
to-digital converter is thermostat 
control. If the temperature outside 
drops considerably, a house takes 
longer to warm up. The ADC-1, 
using a smart thermostat program, 
wouldn't let it cool down as much, 
so it costs less to reheat it. Or if the 
ADC-1 is connected to security sen- 
sors and it detects a back window 
vibrating, it might wait to see if the 
window vibrates again. If it senses 
another vibration, or if the window 
breaks, the unit might turn on a 
sequence of room lights to make it 
appear that someone is walking in 
that direction to investigate. 

The ADC-1 is currently being 
used for a tremendous variety of 
purposes in homes and business 
across the country. Amana, a major 
appliance manufacturer, has re- 
duced the time required to test 
room air conditioners from 20 min- 
utes to 2, using an ADC-1 and 
Commodore 64, A southern Cali- 
fornia architect uses the system to 
manage the components of a cus- 
tom-designed solar heating system. 
And an arboretum on Bainbridge 
Island, Washington, uses it to keep 
track of meteorological measure- 
ments. 



TAP THE POWER 

of the Cormnodore 128 



By the author of 
Machine Language 
for Beginners and 
Second Boole of 
Machine Language 



m 



"^mm^ 



M 



m 






IB 



msi 



Ricrutd MansMd 



Tm undtratavKM giAM to G502 nwhkw 
language pragranrnng an th> Cannnodare ^SB, 
IncuMs * sophMeaMd, kbal-baaKl »a» tniblii 

opWnMdforthMiiS. 



A CQMnrtl) ISOlS (MUCOIon 



S14.05 



128 Machine Language for Beginners 

Richard Mansfield 

One of the bestselling computer books ever has now been completely revised for the Commodore 128. 
Most commercial software is written in machine language because it's far faster and more versatile than BASIC. 
This new edition of Machine Language for Beginners is a step-by-step introduction to 8502 machine language 
programming on Commodore's 128 computer. 

The book includes everything you need to learn to effectively program the 128: numerous programming 
examples, memory management tutorials; a complete description of the many Kernal routines and other new 128 
features; numerous hints and programming techniques; and a dictionary of al! major BASIC commands and their 
machine language equivalents. It also includes a high-speed, professional-quality, label-based assembler, 
optimized to take advantage of the speed and extra memory of the 128. 
0-87455-033-5 

$16.95 

Like the other top-quality books from COMPUTE!, 128 Machine Language for Beginners brings you ready-to-use 
information in a clear, lively style that makes learning easy and enjoyable, whether you are a beginner or an ad- 
vanced computer user. 

An optional disk is also available u/hlch includes the assembler and example programs in the book. The 128 
LADS Disk Is fully tested and ready to load on the Commodore 128. It costs only $12.95 and saves you hours of 
typing time. 

Order your copy of 128 Machine Language for Beginners and the LADS Disk today. Call toll free 1-800-346-6767 
(in NY 1-212-887-852S) or mail your payment (plus S2.00 shipping per book or disk) to COMPUTEI Books, P.O. 
Box 5038, F.D.R. Station, New York, NY 10150. 



COMPUTE! Publications Jnc, as 



Or>e of tne ASC Put3isn-ng Cofnixinies 

825 71h Avenue, itn Floor. New York. NV lOOt*? 

PuOUnen tf COMPUTE- COypJT|i s Garens Ci>*>jTti j GoiiHe Ov CO^«nj'Ei Boctii ana COWRjfJi i Aope AeOCCTiyil 



COMPUTE! books are available in the U.K., Europe, the Middle 
East, and Africa from Holt Saunders, Ltd,, 1 St. Anne's Road, East- 
bourne, East Sussex BN21 SUN, England and in Canada from Holt, 
Rinefiart, & Winston, 55 Homer Avenue, Toronto, ON M8Z 4X6. 






THE CMO ADVANTAGE 



^ THE BEST PRICES! 

^ Next day shipping on all in stock 
Items. 

i^ Free easy access order inquify, 

V Orders from outside 

Pennsylvania save state sales 
tax. 

•^ Free technicial support with our 
factory trained technical staff. 

^ There is no limit and no deposit 
on COD. orders. 

^ There's no extra charge for using 
your MasterCard or Visa. Your 
card is not charged until we ship. 

^ No waiting period for cashiers 
checks, 

•' We accept purchase orders from 
qualified corporations. Subject lo 
approval. 

^ Educational discounts available 
10 qualified institutions. 

^ FREE CATALOG MEIV1BERSHIP 



ORDER LINE 



CALL TOLL-FREE 
1-800-233-8950 

Educational Institutions 
Call Toil-Free 

1-800-221-4283 

CUSTOMER SERVICE 

& TECH SUPPORT 

1-717-327-1450 
Dept. A203 



HOME COMPUTERS 






Computer Mail Order 
Dept. A203 

477 East Third Street 
Williamsport, PA 17701 

MEMBER OIREtT MARKETING ABSOCiiTICN 

CREDIT CARDS 




SHIPPrNG 



C>VfRSatJI 




Add 3%. minimum S7.0D shipping 
and handling on all orders. Larger 
shipments may require additional 
charges. 

All items subject to availability and 
phce change. 

HeturneO shipments may be sub- 
ject to a restocking fee. 



1-800-288-4559 

Other Provinces 

1-416-828-0866 

In Toronto 

TELEX: 06-218960 

2505 Dunwin Drive, 

tvlississauga. Ontario 

CanaiJa L5L1T1 

All prices shown are for U.S.A. 

orders, 

Call The Canadian Office for 

Canadian prices. 




ATARr 

130XE (128K1 CALL 

520ST (5 1 SK). CALL 

800XL &iK CALL 

1010 Recorder S49,99 

1050 Disk Drive CALL 

1020 Primer $29.99 

1027 Letler Qyalily Prinle: S129.D0 

1030 Direct Connect Modem . ,15999 
Software Specials 

8036 Ata-i Writer .. 524.99 

Star Raiders ,,.34.99 

Missile Command..... S4.99 

Defender.,,--,, S4.99 

Gataxian S4.99 

AsloroitJS S4.99 

Centipede,,, S4,99 

Miner 2049'er S4,99 

Eastern Front S4,99 

VisiCaic $39-99 

Arcade Champ 89.99 



ATARI 520-ST 
SOFTWARE 

SIERRA ON LINE 

Ultima II S39.99 

Gato , S29.99 

King's Ouesl $37 99 

BATTERIES INCLUDED 

D.E.G.A.S $29,99 

INFOCOM 

Zork I, II. Ill (ea.) S29.99 

Hitchiker's Quids .„., $29-99 

Wishbringer _ S29.99 

Suspended S37.99 

HABA 

Hippo-C - S44.99 

Haba Wriier S44.99 

MIRAOE CONCEPTS 

Espress S34 99 

MARK OF THE UNICORN 

Final Word S94.99 

Hex S29-99 

PC Iniercom 889.99 

V.I.P. 
Professronal CALL 



APPLE 

APPLE He CALL 

APPLE tic CALL 

MaclNTOSH CALL 

lie LCD Display CALL 

HAVDEN 

An Grabber S31 99 

Home 0esigr>,. S49-99 

Media Works. . S63 99 



PALADIN 



Crunch 512 



Macintosh Software 

Lotus Jazz CALL 

Mlcroioft Excel S2S9.00 

Living Videotext 

TtiinkTank S12 S159.D0 

ManhaHen Ready. Set. Go S79.99 

Crelghton Doveiopment 

Mac Spell $69 99 

Monogram Dollars & Sense, ..$99 99 
Peachtree Back to Basics ■ GLS 109,00 
PFS File & Report (New VersionlS1 1 9.00 
Silicon Beach Airtiorn S25.99 



^Z. commodore 

C12a Computer S269.00 

C1571 (Dish Drive tor C1281 SN£W 

:i902 (RGB 13" Monilor tor Ct2B|....SNEW 

C167I) (Modem tor Ct28) SNEW 

CBM 64 CALL 

C1S41 Disk Drive $199.00 

Ci53a Datasette S39,99 

M-801 Dot MatriK Prinler St 59.00 

MCS B03 Dot Matrix S179.0O 

Cie02 Color Monitor 5189.00 

C1B60 Auto Modem $59.99 

DPS not Daisy Primer S339.00 



PORTABLE COMPUTERS 



IVJ 



HEWLETT 
PACKARD 

41CV St 89.99 

41CX S249.99 

HP tie - S62.99 

HP t2C S89.99 

HP 15C S89.99 

HP 16C S89.99 

HPIL Module $98.99 

HPIL Cassette or Prinler S359.99 

Card Reader $143.99 

Extended Function Module. ...,,,,$63.99 
Time Module.. 553.99 

We ttock the lull Nne of 
HP calculator products 

SEQ 

PC-e401 LS CALL 

PC-8201 Portable Computer,. ..$319.00 

PC-B231 Disk Drive S599.00 

PC-fl221A Thermal Printers $149.00 

PC-8281A Data Recorder S99.99 

PC-8201-06 8K RAM Chips $79.99 

SHARP 

PC-1350 $149.00 

PC-12S1 $149,00 

PC-1500A .,,$169.00 

PC 12S0A $89,99 

Ce-125 Pnnter/Cassetie St 29.00 

CE-150 Color Primer Cass8itB,$149.00 
CE-161 18K RAM $129.00 



Professional SoItwarE 

Flee! System II w/Spellr-(i28)..,$49,9g 

Trivia Fever $29,99 

Word Pro 4 Plus/5 Plus each... $239,00 

Info Pro $179,00 

BRODERBUND 

The Print Shop -S29.99 

Music Shop...,., ,..,.., .,..$29.99 

File (64) , ,.$39,99 

buiwa^0|r£ujc»i 

PaperCMp w/Spell Pack $49,99 

The Consultant DBMS $37,99 

Bus Card II $119,00 

80 Col Display $99,99 



DISKETTES 



maxell 

S'/;" SS/DD (10) $24.99 

3'/3" DS/DD (10) $34 99 

SVi" MD-1 w/HardcasBS (10), -SI2-99 



5V." MD-2 w/Hardcases (10).. 

5V.- MC5.2-HD for AT (10) 

avi" 5 pack SS/DD 

iT4 Verbatim. 

51/4 ■■ SS/DD 


,819.99 
..$39.99 
..$15.99 

..$19 99 


SVs" DS/DD 


$24 99 


Disk Analyzer 


..$24.99 


Elephant 3W SS/DD 

Elephant 5y4" SS/SD 
Elephant Sl'i" SS/DD 


..$29.99 
..$13 99 
. $14.99 



Elephant 5Vj" DS/DD $1699 

Elephant Premium DS/DD $22.99 

51/." DS/DD floppy disks 

(Box of 10) $26.99 

DISK HOLDERS 

INNOVATIVE CONCEPTS 

Ffip-in-File 10 S2 99 

Flip-ln-File SO $17.99 

Filp-in-File 50 w/lock $24,99 

Fllp-in-File too $24.99 

AMARAY 

60 Disk Tub 5V<". $9.99 

30 Disk Tub 3V2" $9.99 



MODEMS 



Anchor 

Volksmodem $59.99 

Volksmodem 300/1200 $189 99 

Signalman Express $259,00 

Lightning 2400 Baud $399,00 

Expressi $199,00 

DIQITAL DEVICES 
AT300 ■ 300 Baud (Atari) $99,99 



(E Hayes 



Smarlmodem 300 $139.00 

Smartmodem 1200 $389.00 

Smaamodem 120OB $359,00 

Smartmodem 2400 ,.$599.00 

Micromodern lie ,,$149,00 

Smart Com II .--$89,99 

Chronograph , $199,00 

Transet 1000 $309.00 



Reach 1200 Baud Hall Card .. $399.00 



m» miCfiOBITS 

MPP-1064 AD/AA (C-64) 



$69 99 



Smart Cat Plus ., $299,00 

J-Ca1 $99.99 

Novation 2400 $549 00 

Apple Cat II $229,00 

212 Apple Cat II $379 00 

Apple Cat 212 Upgrade $229.00 

Macmodem S279.00 

Quadmodem II ^*5iK 

300/1200 $339.00 

300/1200/2400 $499,00 

TELELEARNING 

C64 300 Baud (Cioseoul) $39,99 

EVEREX 
1200 Baud Inlernal (IBM/PC) $199 00 



GRAPHICS 



■Polaroki 

Palette $1299.00 



DRIVES 



HARD 

f-MzGrt- 

10 meg Bernaulli Box $1899.00 

20 meg Bernoulli Box S2699,(» 

5 meg ■'MacNoulli' $1499 00 

fTAlLSaass 
TICHNOIOCIES 

25, 35. 50. 60 meg (PC) 
from $1299.00 

IRIWIH 

Tape Backup CALL 

— :^ffiVEREJ|- 

60 Meg Internal Backup System$799.00 

U-5CI 

10 meg Inlernal IBM ,,$399.00 

20 meg Internal ISM $549,00 

CORE 

AT2Q-AT72MB CALL 



FLOPPY 

INDUS 

Atari GT $219.00 

0-64 GI,. $219.00 



SDl C-64 Single $219.00 

SD2 C-64 Dual S469.00 



landari 

' (PC) $119.0(1 



MONITORS 



Amdek 

Vrdeo 300 Green $129.00 

Video 300A Ambar 1139.00 

Video 310A Amber TTL $169.00 

Color 3D0 Composila $169,00 

Color 500 ComposilB/RGB $289.00 

Color 600 HiRes. RGB $399^00 

Color 710 Ultra Hi-Res $439.00 

Color 722 Dual Mode $529,00 

NEC 

JB1270Qn275A (ea.) S99.99 

JB12eOGTTL $129.00 

JB1285G TTL St29.00 

JC1460 RGB $249,00 

JC1225 Composile SI 79,00 

miNCElDN 

MAX-12E Amber $179,00 

HX-9 9" RGB S469.00 

HX-9E Enhanced 5519,00 

HX-12 12" RGB S469.00 

HX-12E Enhanced S559.00 

SR-12 Hi-Res S599.00 

SR-ISP Professional $699,00 

115 12" Green $119.00 

116 12" Amber $129.00 

121 TTL Green S139.0O 

122 TTL Amber $149.00 

610 510x200 RGB $NEW 

620 640x200 RGB SNEW 

630 640x200 RGB $NEW 

640 720x400 RGB SNEW 

8400 Ouadchrome I $499,00 

8410 Quadchrome I! $339.00 

8420 Amberchrome , $179.00 

8S0O Quad Screen $1449.00 

JBacaar 

ZVM 1220/1230 {ea.l $99.99 

ZVM 1240 IBM Amber $149.00 

ZVM 130 Color $269.00 

ZVM 131 Color $249.00 

ZVM 133 RGB $429,00 

ZVM 135 RGB/Color $459.00 

ZVM 136 RGB/Color $599,00 



INTERFACES 



Multi WO (Apple II), $159.00 

Graphcard $79.99 

Seriall Card $99.99 

Microbuffer 11 + $169.00 

Miorobuffer 32K SI 89.00 

QUADRAM^ 

Mierofazer „,from S 139.00 

Efazer (Epson) from S79.99 

3£Oronge micro 

Grappler CD (C64) $89,99 

Grappler -t (Apple) $99,99 

Grappler 16K+ (Apple) $159,00 

DIGITAL DEVICES 

Ape Face (Atari) $49,99 

U-Print A (Atari) $54.99 

U-A16/Bu(ler (Atari) $74,99 

U-Call Inierlace (Alari) $39,99 

U-Prim C (C64) $49,99 

P-16 Print Buffer $74,99 

U-Print 16 apple lie $69,99 



as 



SS^SS 



PRINTERS 



Canon 

A40 CALL 

LBP-BAl Laser CALL 

#CITIZEN 

f^SP-10 (80 col.) $279.00 

I^SP-15 (132 col.) $389.00 

MSP-20 (80 col.) $349.00 

MSP-25 (132 col.) 5609,00 

CITOH 

Prowriler 7500 $179.00 

Prowriler 1550P $349,00 

Starwnler 10-30 $399,00 

corona 

Laier LP-300 52799,00 

DIABLO 

D2S Daisywhsel, $549.00 

636 Daisywhael $899.00 

O80IF Daisywtiee! , CALL 

d*isywriter 

2000 $749,00 

EPSON 

Homewriler 10, LX-eo, LX-90 CALL 

FX-86, FX-286, RX-IOO, JX-80 CALL 

DX-10. DX-20. DX-3S CALL 

SQ-2000, Hi-30, HS-aO. AP-SO CALL 

LQ-800, LQ-IOOO. LQ,1500. CALL 

6000 Letter Quality CALL 

6100 Letter Quality CALL 

6200 Letter Quality CALL 

6300 Letter Quality CALL 

5510 Dot Matrix ...CALL 

LEGEND 

808 Dot Matrix lOD Cps $179,00 

1060 Dot Matrix 100 cps $25900 

1380 Dot Matrix 130 cps $289,00 

1385 Dot Matrix 165 cps $339.00 

NEC 

8027 Transportable $199.00 

3000 Series S1099.00 

8000 Series $1399.00 

ELF 360 $449.00 

Pinwriter 560 $999.00 

OKJDATA 

182, 163. 192, 193. 2410. 84 CALL 

Okimate 10 (Specify C64/Atarl)$ie9,00 
Okimate 20 (IBM) CALL 

Panasonic 

KXIOBO SNEW 

KX1091 $259.00 

KX1092 S3S9.00 

KX1093 $479.00 

Ouadjel $399.00 

Quad Laser CALL 

a»SiLS£ER-REED 

500 Letter Quality $279.00 

550 Letter Quality $419.00 

770 Letter Quality $759.00 

SG-iOC (C64 Interface) CALL 

SB/SD/SG/SR Serres CALL 

Powenype Letter Quality CALL 

Texas Instruments 

TiaSO $529.00 

TiaSS $639.00 

Tiees $799.00 

TOSHIBA 

1340 (80 column) $469.00 

P341 (132 column) $949.00 

P351 (132 column) $1099.00 



PC COMPATIBLES 



SOFTWARE FOR IBM 







IBM PC SYSTEMS 

Configured to your 

specification. 
Call for Best Price! 

IBM-PC, IBIM-PC II, IBM-XT, IBM-AT 

mvfao 

KP-2000 Portable CALL 

Kaypra PC CALL 

ASHTON.TATE 

Framework II $399.00 

dBase III $369.00 

BORLAND 

Lightening $59,99 

Sidekick (unproiecied) $59.99 

flellex $59.99 

CENTRAL POINT 

Copy II PC-Backup $29.99 

DECISION RESOURCES 

Cliarl master $229,00 

Signmaster $169.00 

Diagram Master $219.00 

ENERTRONICS 

Enargraphics/PIol ..$289, (XI 

FOX a OELLER 

Quickcode 111 $169.00 

FUNK SOFTWARE 

Sideways $39.99 

HARVARD SOFTWARE 

Total Project Manager $269.00 

INFOCOM 

Cornerstone $279.00 

LIFETREE 

Voikswriier Deluxe... $159.00 

UVINQ VIDEOTEXT 

Think Tank $109.00 

Ready .,,$64.99 

LOTUS 

Symptiony CALL 

1-2-3 ,,..„, CAa 

MECA SOFTWARE 

Managing Your Money 2,0 S99.99 

MICROSTUF SOFTWARE 

Crosstalk XVI ..„. $89,99 

Crosstalk Mark IV $149.00 

Remote., $89.99 

MICRORIM SOFTWARE 

R:Base 4000 5249.00 

R:Base 5000 $389.00 

Clout 2.0 $129.00 

MICROPRO 

WordStar 2000 $249.00 

WordStar 2000 + 5299.00 

WordStar Professional, $199,00 

Easy $99.99 

MICROSOFT 

Word 5229.00 

rvlouse $139.00 

Flight Simulator $39,99 

MultiPlan $129,00 

M ULTIMATE 

Advantage $299.00 

Multi Mate Word Pmc $249.00 

On File _ $94.99 

Just Write $94.99 

NOUEMENON 

Intuit 569.99 

NORTON 

Norton Utilities 3.1 $59,99 

ONE STEP 

Golf's Best 539,99 

PEACHTREE SOFTWARE 

Peachtexi SOOO $199,00 

PFSilBM 

First Success VJIFIP $19900 

File/Graph (ea,) $79.99 

Report $74.99 

Write/Proof Combo $79.99 

PROFESSIONAL SOFTWARE 

WordpiuS-PC V//BOSS S249.00 

THE SOFTWARE CROUP 

Enabfe $259.00 

SATELLITE SYSTEMS 

Word Perfect 4.1 $219.00 

SORCtMdUS 
Accounting 

AP/ARi'GL/INU/Oe (ea.) $299.00 

SuperCalc (II $199.00 

EasyWriter II System $199.00 

Super Project $199.00 

SPI SOFTWARE 

Open Access $379.00 

SUBLOQIC 

Jet $39.99 

5th QENERATION 
Fast Back $119.00 



PC-138 Senes CALL 

PC-148 Series CALL 

PC-158 Series-.... CALL 

PC-160 Series CALL 

PC-171 Series CALL 

AT-200 Series CALL 

MBC 550-2 Single Dnve $649.00 I 

MBC 555-2 Dual Drive $949.00 

MBC 675 Portable CALL 

MBC775 $1699.00 

MBC 880 Desktop CALL | 

Safari (7300) CALL 

6300 CALL 

corono 

PPC400 Dual Portable $1289.00 

PPCXT 10 meg Portable $1989.00 

PC40022 Dual Desktop $1389.00 

PC400-HD2 10 meg $1939.00 

ITT 

ITT X-TRA 

2S6K. 2 Drive Syslom CALL 

256K.10 meg Hard Drive Syslem CALL 
XP5, 20 meg CALL 

Sperry-AT as low as $1749.00 

Sperry-IT as low as S2699.00 

Call tor Specific Configuration! 
All Models CALL 



MULTIFUNCTION CARDS 



Six Pack Plus $229.00 

I/O Plus II $139.00 

Advantage-AT $399.00 

Graph PaW64K $599.00 

MonoGrapti Plus 5399.00 

Preview Mono $299.00 

PC Net Cards $379,00 

5251/11 On-line $669.00 

5251/12 Remote 5579.00 

IRMA 3270....^^~ $879,00 

IRMA Print $999.00 

IRMA Smart Alec $779.00 

Edge Card $259.00 

Graphics Edge $259,00 

Magic Card II $169.00 

HERCI'LES 

Graphics $299,00 

Color $159.00 

ffilAssodaus 

IDEA 5251 $589.00 

MYLEX 

Trie Ctiairman $489.00 

PARADISE 

Color/Mono Card - $149.00 

Modular Graptiics Card $259.00 

Mulii Display Card $219,00 

Five Pack C. S... $129.00 

Bob Board $359.00 

Captain - 64 $199,00 

Captain Jr, l2aK 5199.00 

Graphics lilaster $469,00 

Quadport-AT .)~r^.. $119.00 

Llbeny-AT (128K) $349.00 

The Gold Quadboard $449.00 

The Silver Quadboard $239.00 

Expanded Quadboard 5209.00 

Liberty 5309,00 

QuadSprint $499.00 

QuadLink $399,00 

QuadCofor $199,00 

Quadjr, Expansion Chassis $419:00 

Fxpansion Chassis Memory $199.00 

Chronagraph $79.99 

Parallel Interface Board $64.99 

INTEL 

PCNCB087 5MHz 

PCNC80B7-2 a MHi CALL 

PCNCe0287 6 MHz TO" 

1010 PC-Above Board yOUR 

1110 PS-Above Board PC 

2O10 AT-Above BoanJ 




Dept. A203: 



All the exciting, 

entertaining, and 

educational games, 

applications, and utilities 

from COMPUTE! magazine 

are now available on disk 

for your Commodore, 

Atari, Apple, or IBM 

personal computer. 

The COMPUTE! Disk 



A new COMPUTE! Disk is published 
every month, rotating among the four 
major machines covered by COMPUTE!: 
Commodore 64 and 128; Atari 400/800, 
XL, and XE; Apple ll-series; and IBM PC, 
PCjr, and compatibles. 

Every three months you can receive 
a disk with all the quality programs from 
the previous three issues of COMPUTE! 
that will run on your brand of computer. 

Like the popular COMPUTE! 's Ga- 
zette Disk, the COMPUTE! Disk is ready- 
to-load and error-free. It saves you 
valuable hours of typing time and elimi- 
nates typing errors. 

With a subscription, you will receive 
one disk every three months for a total 
of four disks a year — for only $39.95. 
That saves you $20 a year off the single- 
issue cost 

Or you can order individual issues 
of the Disk for $12,95 a disk plus $2.00 
shipping and handling. 



Remember to specify your type of 
computer when ordering the COMPUTE! 
Disk. You'll find more information about 
this month's COMPUTE! Disk in this 
issue. (Note: You'll need the correspond- 
ing issues of COMPUTE! magazine to use 
the Disk since the disk will have no 
documentation.) 

For fastest service when ordering a 
subscription to the COMPUTE! Disk, call 
toll free 1-800-247-5470 (in Iowa 

1-800-532-1272). 

For more details or to order individ- 
ual issues of the COMPUTE! Disk, call 
our Customer Service Department toll 
free at 1-800-346-6767 (in New York 
212-887-8525). 

Please allow 4-6 weeks after placing an 
order for your first disk to arrive. 



COMPUTEi Publications JncS 



One Qf me ABC PuWsfimg Comoofties 

625 7!Ti Avenue, am Fioof, New York. NY 1 001 9 




HALSO runs on 64K. 



Serious runners know it takes more than great running shoes to improve performance. It takes knowl- 
edge. Now Puma gives you both. With the RS Computer Shoe. The first training shoe to combine advanced 
footwear technology' with computer technolog)'. 

The RS Computer Shoe has a custom-designed gate array built into its heel. This computer chip 
records )'our run, then communicates the results to any Apple HE, Commodore 64 
or 128, or IBN4 PC computer 
Asoftware program included with the shoe automatically calculates your time, distance 
and calories expended. Then graphically compares them to past performances and future goals. 

The RS Computer Shoe from Puma. We're so out front in technolog)', we put 
computers in the backs of our shoes. 





m\ 



The low cost of Commodore 
home computers prompted design- 
ers at Proteus Electronics, Inc., to 
develop the Simple Interface Data 
Acquisition System (AD AC) for the 
Commodore 64, 128, and VIC-20. 
The system consists of an interface 
($34.95) and an analog data acqui- 
sition conditioner ($64.95). The 
system can digitize up to 16 chan- 
nels of analog signals, making it 
appropriate for functions such as 
heating, cooling, solar control, volt- 
age measurements, robotics, and 
ufeather station monitoring. An Ap- 
ple version should be available by 
the time you read this for about 
$150. 



For a home control unit to appeal 
to many people who don't own 
personal computers, ease of in- 
stallation and use is crucial. Manu- 
facturers realize that, and continue 
to v^fork toward that goal. 

Voice recognition may be one 
method of operation that could ap- 
peal to people not enamored of 
keyboards. Magician Gus Searcy 
and West German programmer 
Franz Kavan have developed a 



home control system that uses 
voice recognition. Marketed by 
Mastervoice, the system is called 
Sidney, the Butler in a Box. Work- 
ing through existing household 
wiring, Sidney can dim and bright- 
en lights, answer the phone, act as a 
security guard, and turn household 
appliances off and on — all at the 
sound of its master's voice. A stand- 



alone unit, Sidney retails for $1,195, 
It's been predicted that eventu- 
ally we'll all have some kind of 
universal controller in our homes, a 
unit that des together all of our 
electronic appliances, entertain- 
ment equipment, and telephones. 
Fortunately, we can get a taste of 
the future right now with the easy- 
to-use products already available. 



For more information about products mentioned 
here, contact: 



General Electric Consumer Electronics 

Business Operations 
Portsmouth, VA 23705 

Genesis Computer Corporation 
1444 Linden Street 
P.O. Box 1143 
Bethlehem, PA 18018 

Jance Associates, Inc. 

P.O. Box 234 

East Texas, PA 18046 

Mastervoice 

10523 Humboldt Street 

Los Alamitos, CA 90720 

Powerline Software 

P.O. Box 635 

New Hartford. NY 13413 



Proteus Electronics, Inc. 
RD #2, Spayde Road 
Bellville, OH 44813 

Remote Measurement Systems 
2633 Eastlake Avenue E. 
Suite 206 
Seattle. WA 98102 

Savergy, Inc. 

1404 Webster Auentie 

Fort Collins, CO 80524 

X-W USA. Inc. 

185 A legrand Avenue 

Northvale, NJ 07647 



March 1986 COMPUTE) 33 



Switchbox 



Todd Heimarck, Assistant Editor 



Here's a challenging game of strategy 
that looks easy at first, but takes time 
to master and permits many varia- 
tions. The original program is written 
for the Commodore 128. We've added 
new versions for the Commodore 64, 
Apple 11, eight-bit Atari computers, 
IBM PC/PCjr and Atari 520ST, as 
well as an Amiga version with speech 
and stereophonic sound effects. 



Playing "Switchbox" is like putting 
dominos in place for a chain reac- 
tion — either you're setting them in 
position or you're knocking them 
over. Winning requires skill and a 
sense of when to go for points and 
when to lay back and wait for a 
better board. The goal is simple: 
You try to score more points than 
your opponent by dropping balls 
into a box full of two-way switches. 
Each switch has a trigger and a 
platform. If the ball lands on an 
empty platform, it stops dead. But if 
it hits a trigger, it reverses the 
switch and continues. In many 
cases dropping a single ball creates 
a cascading effect — one ball sets 
another in motion, which sets oth- 
ers in motion, etc., all the way 
down. 

Type in the program listing for 
your computer, and save a copy 
before you run it. If you're using a 
Commodore 128, enter the 128 ver- 
sion in 128 mode (not 64 mode). 
The Atari version runs on any 
eight-bit Atari computer with at 
least 16K of memory. The Apple II 
game works on any Apple II ma- 
chine, under either ProDOS or 
DOS 3.3. The IBM PC/PCjr version 
requires BASICA (PC) or cartridge 
BASIC (PCjr), and a color/graphics 



adapter on the PC. 

The Amiga version of Switch- 
box requires 512K of memory and 
Amiga BASIC by Microsoft (not 
ABasiC, the version supplied with a 
few very early Amigas). If you have 
only ABasiC, contact your dealer 
about getting an upgrade to Amiga 
BASIC. Before running the pro- 
gram, make sure that the Amiga's 
display is set for 80 columns of text 
(if it isn't, the numbers printed on 
the screen won't match the rest of 
the display). If you've previously 
changed the display to 60 columns, 
open the Preferences icon and 
change it back to 80, then close 
Preferences, activate BASIC and 
run the program as usual. 

Since the Amiga program 
doesn't use line numbers, we've 
placed small arrows in the listing to 
show you where each line ends. 
Don't try to type in the arrows: 
There's no such character in the 
Amiga's character set. Wherever 
you see an arrow in the listing, 
press Return (or move the cursor off 
that program line) to enter the line. 
It's important to include the colon 
(:) that appears after program labels 
{Nextround:, Setup:, and so on). If 
you accidentally omit the colon, 
you'll make it impossible for the 
computer to use that label correctly. 

Before typing in the 5 20 ST ver- 
sion you must turn off the buffered 
graphics by clicking on Buf Graph- 
ics in the Run menu. You can be in 
either medium or low resolution 
mode when typing in the program; 
but before running it, you must be 
in low resolution mode. This can be 
done by selecting Set Preferences 
from the Options menu on the 
desktop and clicking on Low. 



34 COMPUTEI March 1986 



A Box Of Switches 

Switchbox is a tale of twos; Each 
switch has two parts, two positions, 
two states, two paths in, and two 
paths out. The two parts are the 
platform and the trigger, A switch 
can lean to the left (platform left, 
trigger right) or to the right (plat- 
form right, trigger left): 



Figure 1 . Trigger States 



Before: 
Left switch 



After: 
Right switch 



^^ 



Z7 



9 



The trigger is weak, and al- 
ways allows balls to pass. But the 
platform is strong enough to hold a 
single ball. So the platform either 
holds a ball — it's full — or it does 
not and is empty. When a ball sits 
on a platform, the switch is said to 
be loaded, or full. 



Figure 2. Loaded Trigger 




Figure 2 shows a full switch 
over two empty switches. The plat- 
form holds a ball and leans to the 
left. The trigger extends to the right. 
Note that the switch on top has two 
pathways leading in, the left path 
and the right, and that the right 
path leading out is the left path into 



one of the switches below. The left 
path of the top switch leads into the 
right path of the other, the switch 
below and to the left. If you drop a 
ball down the righthand path, it 
hits the trigger and flips that switch 
to the right. Then it continues 
down, hits the lefthand trigger be- 
low and flips that switch as well. 
In the meantime, the ball on 
the platform is set in motion (when 
the switch is flipped) and then hits 
the trigger. The top switch is reset 
to point to the left. The second ball 
then drops a level to the platform 
below, where it stops. The playing 
field is composed of five levels, 
with four switches in the first level 
and eight in the bottom level. At the 
beginning of the game, there are no 
balls on the field — all platforms are 
empty — and the position of each 
switch is chosen randomly. 

Moving Down Thie Path 

Players alternate dropping balls 
into one of eight entry points. 
These balls (and others) may or 
may not make it all the way 
through the switchbox, to one of 
the 1 6 exit paths. Balls fall straight 
down (with one exception), so a 
ball's movement is always predict- 
able. When it hits an empty switch, 
one of two things can happen. If it 
lands on the empty platform, it 
stops dead in its tracks. But if it 
lands on a trigger, it falls through to 
the next level below. 

Moving balls always make it 
through loaded switches. Triggers 
allow balls to continue, and move 
the switch to the other position. If 
it's loaded, the dead ball on the 
platform is put into motion and it 
hits the trigger that just moved 
over. This makes the switch go back 
to its original position, but with an 
empty platform. So when a ball hits 
the trigger of a loaded switch, its 
motion continues unabated. The 
switch moves, the ball on the plat- 
form begins to fall and it hits the 
newly placed trigger. The newly 
emptied switch moves back again, 
and the two balls drop to the next 
level. 

There's one more possibility: a 
ball dropping onto a platform that 
already holds a ball. A platform 
can't hold any more than one ball, 
so when this happens one of the 
balls slides over to the trigger. So 



the ball does not move straight 
down — it slides over to the next 
pathway. This is the exception to 
the rule that balls drop in a straight 
line. Of course, when the ball hits 
the trigger, the switch changes po- 
sition, causing the other ball to drop 
and hit the trigger. 

The Chain Reaction 

At the game's start, all platforms 
are empty, so four of eight entry 
paths are blocked. Remember that 
your turn ends when a ball hits an 
empty platform and stops. As the 
switches fill up, the chances in- 
crease that a ball will descend 
through several levels. The goal is 
to score points by getting balls to 
pass all the way through the maze 
of the switchbox. The best way to 
collect a lot of points is to cause a 
chain reaction. 

A ball that hits a loaded switch 
from either side continues on its 
way. And the previously inert ball 
on the platform starts moving. One 
enters, two exit. If both of those 
balls encounter full platforms, four 
drop from the switches. The path- 
ways are staggered, so the effects 
can spread outward, vrith more and 
more balls cascading toward the 
bottom. 

Rather than taking an easy 
point or two, it's often worthwhile 
to build up layers of loaded switch- 
es. Watch out for leaving yourself 
vulnerable, though. Because play- 
ers take turns, you'll want to leave 
positions where your opponent's 
move gives you a chance to create a 
chain reaction. The best strategy is 
to play defensively. Look ahead a 
move or two, and watch for an 
opening that allows you to score 
several points at once. 

Four Quarters 

A game of Switchbox always lasts 
four rounds. In the first (equality), 
each exit counts for two points. 
Your goal is to score ten points. The 
second quarter has more points 
available, as well as a higher goal. If 
you look at the exits, you'll see that 
the further away from the middle, 
the higher the point value. The 
numbers increase in a "Fibonacci" 
sequence: 1, 2, 3, 5, 8, and so on. 
Each number is the sum of the pre- 
vious two (1 -1-2 is 3, 2-1-3 is 5, 3-1-5 
is 8, etc.). The target score in round 
two is 40, 



March 1986 COMPUTEI 35 



Uy^^cC' ^€t/mfu€4^ iAlm/^>€£i^na ^ ^omMt^tcm^^ 



■■WE MAKE YOUR COMPUTER 
FUN TO USE!" 



NO LABEL DISKETTES 

NL S'A"SSDO., .10.99 (Box 10) 
NL 5'A"DSDD... 15.99 [Box 10) 
'Free Diskette Writer PenI 
■Free Storage Case! 



DUST COVERS 

AUri 

520ST 11.95 

130XE 6.99 

BOOXL 6.9S 

1050 ,....6,99 

1025 79r 

Commodore 

C126 7.99 

1571MM1 6.99 

190? _ 10.95 

l70a 6-99 

C6OTpcS0 6.99 

Panasonic 

1090/1091 9-99 

1092 B.99 

1093 - 9-99 

Star MIcronics 

SG;SD10 8.99 

SG/SD15 9.99 

SRlO 9.99 

SH15 9.99 

OkidalB 

SM? 8.99 

83)93 9.99 

193 9.99 



PRINTING 
PAPER 

3000 SHEETS 

FANFOLD. .S42 76 
1000 SHEETS 

FANFOLD S19 75 

1000 SHEET LETTER S21 95 

200 SHEETS LETTER M 99 

150RAGSTATI0NARY S10.99 

MAILING LABELS llin) S9.95 



WICO Joysticks 

15-9714 Bal Handle 16.75 

50-2030 Boss 11.99 

50-2002 SuDBf 3-Way.... 19.99 



COMMODORE 

C-12e NEW CALL 

1571 Drive CALL 

1572 Drive , CALL 

1902 Monitor... CALL 

1670 Modern CALL 

C-64 Computer CALL 

1541 Drive 189, 

MPS801 Printer.,. LOW 

1702 Monitor 199 

Simon's Basic 24.75 

Assembler 64 34.75 

Super Expander 22.75 

Logo 64 49.75 

Pilot 64 38.75 



COMMODORE 
SOFT-WARE 



MICROPROSE (C-64) 

Kennedy Approach 21.75 

Crusade in Europe... 24.75 

Decision in Desert 24.75 

Solo Flight 20.76 

Nalo Commander 20.75 

Spillire Ace 18.75 

F-15 Slrike Eagle 20.75 

Hellcat Ace.,.,.: 18,75 

Aerojet 21.75 

Silent Service ..,.21.75 

CARDCO 

Digitizer Camera 189.95 

32K Printer Buffer 59.95 

Numeric Keypad 34.95 

CB/5 5-sl01 Board(64),,. ,54.00 
C6/2 2-slot Board(64)... .25.00 

S'More Basic; Rom 49.95 

Write Now-64 35.00 

Mail Now-64 - .-29,00 

Spell Now-64 29.00 

File Now-64 29,00 

Paint Now-64 29.00 

Calc Now-64 29.00 

Tax Sun/ival 29.00 

Super Printer Utility 27.95 

Write Now-Vic-20.... 29.95 

BRODERBUND 

Tne Pnnl Shop 28 75 

Graphics Library 18,75 

Graphics Libra ryll ... 1 9.75 
Graphics Library III .. . 19,96 

Karateka 19.75 

Casties Dr. Creep ... 19.75 

Bank St, Wriler 32.75 

LodSfunner 20.75 

Mask of the Sun 24.75 

Speiunker 19.75 

Serpent's Star 24.75 

Whistler's Brother ... 1 8.75 
aidBungelingBay,,. 18.75 



COMMODORE 

MPSlOOOPnmsr., 259 

C1350 Mouse 42 

C1700 12SKRAM .145 

C1750512KRAM. - 269 

JANE 35 

Perfect Wrilsr 49 

PerfeclCalC 49 

Perfect Filer 49 

SPINNAKER (C-64ROM) 

Cosmic Life ROM 19,75 

Jukebox 19,75 

Alphabet Zoo 17.75 

Alt in Color Caves 19.75 

Up for Grabs 19.75 

Delta Drawing 19.75 

Kids or Keys 16.75 

KindBrcomp.,, , 14.75 

Pacemaker 17.75 

Fraction Fever...., 17.75 

SSI (C-64) 

Colonial Conquest 24.75 

Wings of War 24.75 

Computer Ambush 34.75 

FtBid of Fire 24.75 

Fighter Command 36.75 

Kampfpruppe 36,75 

Mech Brigade 36,75 

Ivlarkel Garden 29,75 

Bix Gun Shoolout 24.75 
omputer Baseoall 24.75 

Computer Quarterback. .24.75 

Imperium Galaclum 24.75 

Phantasie 24.75 

Cartels & Cutthroats 24.75 

50 Mission Crush 24.75 

Ouestron 24.75 

INNOVATIVE CONCEPTS 

Fl p-n-File 10 3.50 

Fl p-n-File 15 8.25 

Fl p-n-File 25 Lock 17.95 

Fl p.n-File 50 17.25 

Fl p-n-File 50 Lock 22.95 

Flip-n-File Rom 17.25 

SCARBOROUGH (0-64) 

Build A Book 24.75 

Improved rvlasterlype 23.75 

NET WORTH 48.75 

Maslertype Filer 22.75 

Boston 64 Diet 27.75 

TRONIX 

S.A.M. -Atari... 38.50 

S.A M. -C-64 38.50 

PERSONAL PERIPHERALS 

Super Sketch 64 32.75 

Printer Utility 18.75 



BATTERIES INCLUDED 

Paper Clip 69,9; 

Spell Pak 34,9: 

Consultant 59.9; 

Paper Clip 

w/Spell Pak 75.9! 

Home Pak.-,. 34,9= 

Bus Card 129.9! 

80 Column Board, 109,9£ 

EPYX 

{C-54) 

Fast Load 26.75 

Breakdanco 23.75 

Greatest Baseball 24.75 

Summer Games 26,75 

SUB LOGIC (C-64) 

FlIgM Simulator U... .32.75 

Night Mission Pinball 20.75 

CONTINENTAL 

(C-64) 

Home Accountant 44.75 

19B4 Tax Advantage 35.75 

1 985 C-64 Bmk ol Software 1 6.95 

OR & D 

Copy Q 27.95 

GPC Printer Interface. ...65,00 

EASTERN HOUSE 

Rabbit C-64 19.95 

Rabbit VIC-20 19,95 

MAE C-64 27.95 

Telstar 64 19.96 

M.L. Monitor 64 1S.95 

KOALA 

(C-64) 
Koala Pad 59.9; 

COMPUTER 
CARE 

NORTONICS 

DISK DRIVE 

CLEANER 

WITH 
SOFTWARE 



REG. 49.95 

NOW 19.95 



BUY LYCO AND ENJOY 
* THE LOWEST PRICES * TOLL FREE ORDER LINE * 

* Free shipping on prepaid cash orders in U.S. * All IVlerchandise Factory Fresh * 

* 24 hrs. shipping on in-stocl< product -*• Access to our Multi Million S inventory * 
* No deposit on UPS C.O.D. orders * Orders outside PA save state sales tax * 

* Air freight service available ♦ Full IVIanufacturer's Warrranty apply! * Full accessory line in stock * 
* Purchase Orders Accepted from educational institutions! * We check for stolen credit cards! * 

* We ship to our servicemen overseas! * You'll love our Courteous Sales Staff! ■*■ 



AMERICA'S MAILORDER HEADQUARTERS 

LYCO COMPUTER 

WORLD'S LEADER IN SALES & SERVICE 



TO ORDER 
CALL TOLL FReE 
800-233-8760 

In PA1 717-327-1824 

Lyco Computer 

P.O. Box 5088 

Jersey Shore, PA 17740 



^E^woa ^<3/mfi4^U€/i tjM^ct/tAeMn^ 9P w^^ri^e/lein^ 



ay 



W91. 



.S233 



AXICM SEIKOSHA 

GP550AT (Alan) ?22 

GP550CD C.64 222 

GP700AT (Alaril 439 

GP700AP lApple) 139 

FIITE5CD (C^B4) 22f 



C. ITOH 

ProWrilar aSlOSpi^ 349 

1550Spt 489 

SiaiWiiier 769 

PrintMasler 929 



TOSHIBA 

P1340 469 

P35U '"9 

P341P 959 

P341S W9 

351 Sheel Feeder 529 



SAVE ."= PRINTERS 



CARDCO 




32K BUFFER. (C-64) - 


59 


CORONA 




LP300 Laser Prinler . 


2686 


200361 Toner Carlridge 


. .89 


EPSON 




FXB5 (N™| 


333 


LX80 


212 


Fxies (nbwi , 


464 


1X90 (Nb«) . 


226 


SQ200C (Nbw). 


Ibid 


JX80 


467 


Homewriler 10.. 


193 


CR-»Ala/i 


153 


Cn-220C-64 


163 


DX-IO (Neivi 


■A)/ 


DX.20 (New) 


297 


H&flO (Nevvi 


288 


LQISMP 


97S 


LQISOOS 


1039 


nx-ioo , 


a56 


FX-lOO* 


CAU 



CITIZEN 

MSP-IO 269 

MSP-15 358 

MSP.20 337 

MSP-25 495 

Sheeirdr (loraoi n>9 

Sheelldf (15/25). . . .199 

OKIDATA 

Qkimaie 10 ^'^r 

5i!rmate2D .CALL 

182 21* 

192 348 

193 563 

92P 349 

93P 56b 

84P. .-- 645 

92 Imagewriler 349 

'IBM versions also 

BROTHER 

HR-15XL-P 359 

HR.15XL-S 359 

HR-35P 839 

HR-35S 839 

2024L-P 949 

M1009-P 189 



JUKI 

Juki 6100 347 

RS232 Serial Board .55 

6100 ToctDf 1 19 

6100 Sneel Feoder .209 
Jyki 6300 767 

LEGEND 

880 - ™ 

1080 222 

1380 252 

1385 296 

LECcND 808 . 1=9 

DIGITAL DEVICES 

16K BUFFER 75 

32K BUFFER 69 

64K BUFFER -.125 

DIABLO 

□ 25 549 

630 API 1599 

630 ECS 1759 

DBO IF 2395 

P32C01 699 

P3B 1749 

C 150 999 

DX-35 1NEW) CALL 

AP-eO CALL 




SG-10 $208 

PANASONIC 

1091 233 

3131 (NEW) 269 

1092 373 

1093 426 

3151 Leller 426 

4K Bulter 65 

SILVER REED 

EXP400 249 

EXP500 295 

EXP550 399 

EXP770 749 

STAR MICRONICS 

SG-10 208 

S6-15 373 

SD-10 336 

SD15 -....-442 

SR-iO 493 

SR-IS - 5S3 

SB 10 595 

Power Type 303 

SG-10 C-54 (NEW) CALl 



MONITORS 


TAXAN 




PANASONIC 




Its 13' Grseen Composile. 


-CALL 


DTI300D13- HG&ComposB 


.247 


116 12' AiTitw! Ccmposile 


CALL 


OTW140 14- RGBrtlmposle 


329 


121 IZ' Gr«n nL 


135 


DTH103 10- RSa H. fte 


395 


122 12- Amsei HL 


145 


DTSlOl 10' CiMpesffi . 


175 


220 14' Cclcr CoiT'.pcis-ie 


259 


OT'OOOG 10' SGB 


166 


410 12- RGBH: Res IBM . 


.329 


7K-2H3P 12- Cola 


419 


420 12' RGB Super Hj IBM 


.-.409 


TBI20N',IPA 12- Gften 


.109 


440 12- RG8 Ullra Hi Pes. 


....555 


TRliOWBPA 12' Amber 


.109 


TuiSland 


35 


TRlffitW 12' Grsen iSM... 


.148 






TR122MYP 12- Amter IBM. 


.148 


ZENITH 

2!VM 1 22A Amber 


75 


SAKATA 




ZVM 123G Green 


. 75 


SG 1000 12" Green 


99 


ZVM 1 24 Ambor IBM 


129 


SA 1000 12- Amber 
SG 1500 12- Green TTL 


109 


ZVM 131 Color 


. .275 




ZVM 133 RGB 


389 


SA 1500 12' Amber TTL 


129 


ZVM 135 Composite . . . 


. 449 


SO 100 13' Color Camp 


209 




- 589 
95 




389 


ZVM 1220 


STSi Till Sland 


29 


ZVM 1230 


- -95 






ZVM 1240 


....149 


X-TRON 




TEKNIKA 




Comcoioi 1 Composne Greer. 


177 


MJtO Coiiposile 


17S 






MJ-22 RGB 


255 


NEC 








JB-1260 Green 


95 


AMDEK 




JB-1201 Green 

JO 1215 Color...., 


135 
.235 






JC 1216 RGB , 


.375 










JC 1460 Color 


265 




-156 






Color 300 Audio 
Color bOO Cnmposile . 


234 
369 


PRINCETON GRAPHICS 1 


Color 600 


397 


■MAX. 12 Arnbor 


1«:, 


Color 700 


495 


HX 12 RGB 


4t;5 


Color 710 


569 


SR 12 RGB 


-595 1 



DRIVES 



COMTEL 

Enhancer 2KM (c-64) 



INDUS 

GT ATARI 215 

GT COMMODORE 235 



SD1 Drr 
SD2 Dm 



MSD 

fC-64l 
(C-64J 



INTERFACING 




QRD 




DIGITAL DEVICES 


GPC<C-«4) 


...59 


U-Pr,nl C IC-64) 49 


CARDCO 




ORANGE MICRO 


G-Wiz (C-64) 

C/' + G IC-64) 

C/?PSlb-64)' 

C/?B..fC-64J. 


54 
...45 
...49 
....39 


Grapplw CD fC-64| 79 


TYMAC 






Connection (C-64) 


55 



MODEMS 



HAYES 

Smanmchdem 3O0 133 

Srnsnmwlerr, 1200 377 

Smartmcdem 12008 347 

Sm an modem 2400 59S 

MLcromodom HE 135 



MICROBITS 



TELE LEARNING 

Total Telecommiinicalions 
(C-64J 29,95 

AP-250 (300 Baud Apple) . 69 95 
IB.250 (300 Baud (SM) 69.95 



NOVATION 

US ROBOTICS IBM 300,"200 US-DOS e«t 319 
Password I200M , , 229 '^' 30O,'12O0 CPM-86 efl 319 

"assword I200f 229 '^M 300n200/24a) exl 529 

Password 300F 139 igu CPMM mi 325 

Autix)ial21!A 359 Macmodem 30<V1200 315 

??JJ5, Ill UpgradeAppleCatll ...225 

pcS :::::::::;:::::1b9 ^^Jf^-^^r'" 'II 

SIOO 379 -J-Cal FIS232 89 

Courier ■ 469 

Microlink 469 ANCHOR 

Telpac MS-DOS ?9 Volksmodem 65 

Volksmodem 12 186 



DISKETTES 




DENNISON 




SUNKVONG 






VERBATIM 




ELEPHANT 5'j ■ SSSD 


11.99 


SKC5-.- SSDD 


.11 99 


b'.'j 


■ SSDD 


13 99 


ELEPHANT 5'<" SSDD 


12.99 


SKC 5"=" OSDD 


1399 


5 I.J 


■ DSDD 


. 19.99 


ELEPHANT SVj • OSDD' 


1499 












PREMIUM 5U- SSDD 


13P9 


MAXELL 






BONUS 




PREMIUM 5".- DSDD 


.1599 


5'i- MDl 


.13-99 


5". 


SSOD..,- 

DSDD - 


...9.99 
..12.39 



TOLL FREE 1-800-233-8760 



^ 



TO ORDER 

CALL TOLL FREE 

800-233-8760 

Customer Service 1 -71 7-327-1 825 



or send order to 
LycD Computer 
P.O. Box 5088 

Jersey Shore. PA 
17740 



RISK FREE POLICY 

Ir^sioch i!emssh:pped wiihm S-i tioursoi order No OepnsiT on C D orders Free 
shipping on prepaid casrt orders witfitn ihe canTinenlal U S Volume discounts 
availaDle PA residenis aaa sales lax APO FRO and mrernattanal orders add 
55 OD pjus ^i^t for priorriy mail 5ervice Adi^eriised prices ^noinv iOji discouni lar 
casn. add i^'c for MasterCard or Visa Persoriai checks requne < weeks clearance 
Effore sfiippirig Ask aboui UPS Blue and Red label shipping All merchandise 
cained under manufacturer's warranty Free taialog with order All items subieci 
10 rhange -/jiihouT notice 



COMPUTE! Books Announces 



OUR FIRST EVER 

INVENTORY 

RELATION 



As computers come and go in industry 
popularity, we try our best to maintain 
a flow of excellent books for readers 
and users of the most popular personal 
computers. You'd be the first to agree 
that, simply because a particular com- 
puter is no longer produced, infor- 
mation on it is no less important to 
you. But we've found that when some 
computers lose mass appeal, or are no 
longer at the top of the current best- 
seller list, many book stores no longer 
wish to stock books on them. 

These books become arguably more 
valuable to those who need them . . . 



those who never got around to buying 
them ... or those who have bought 
their personal computer second-hand, 
but now can't find books about it. 

This sale is for you. It mixes the best 
of our backlist — from machine-specific 
to topical titles that never quite caught 
on — and gives you significant savings 
on dozens of COMPUTE! titles. Some 
quantities are very limited, so send in 
your order soon. Credit card or check 
with order only. Or call our toll free 
number: 1-800-346-6767 (in NY 
212-887-8525). 



Order any three from Group A for $24.95 (an initial savings of at least 30 per- 
cent), and receive up to three from Group B for $3.00 each. (A potential total 
savings of over $55,00!) All orders add $2.00 shipping and handling per book 
up to 5 books. Over 5 books, add $5.00 per order. 



Group A (Three for $24.95) 

First Book of Atari Graphics 
Second Book of Atari Graphics 

Commodore 64 Games for Kids 
All About the Commodore 64, Vol. 1 
First Book of Commodore 64 Sound and 

Graphics 
Reference Guide to Commodore 64 

Graphics 

Home Computer Wars 

Personal Telecomputing 

BASIC Programs for Small Computers 

Computing Together 

Programmer's Reference Guide to the 

TI-99/4A 
TI Games for Kids 
33 Programs for the TI-99/4A 
Guide to TI-99/4A Sound and Graphics 

First Book of VIC 
Second Book of VIC 
Third Book of VIC 
VIC Games for Kids 
Programming the VIC 

Arcade Games on the Timex/Sinclair 
Programmer's Reference Guide to the Color 
Computer 

AH sales final. No returns. All are new books in good condition. 



Special offer through March 15. Order four books 
for $34.95 from Group A** and choose up to six 
additional titles from Group B for only $3.00 each. 

**substantial savings . . . less than $8.75 each for values up to S24.95. 



Group B (Up to three for $3.00 each) 

First Book of Atari 

First Book of Commodore 64 

First Book of Commodore 64 Games 

Commodore Peripherals: A User's Guide 



First Book of Robots 
Home Energy Applications 
Beginners Guide to Buying a Personal 
Computer 

First Book of TI Games 

Extended BASIC Home Applications on 

the TI-99/4A 
Arcade Games on the TI-99/4A 



First Book of VIC Games 
Arcade Games on the VIC 
Second Book of VIC Games 



y 




or more 
on selected 



titles 



$1 .00 shipping/handling per book for 1-5 books, Over 5 books, S5.00 per order. 




Writing An Amiga Game 



Writing "Switchbox," our first 
game translation for the Amiga, 
posed a number of interesting pro- 
gramming challenges and proved 
to be an excellent way to become 
familiar with Microsoft's Amiga 
BASIC. To show off just a few ot 
the machine's special features, the 
Amiga version of Switchbox in- 
cludes fast graphics, stereo sound 
effects, and voice synthesis. 

The first thing you'll notice 
about the Amiga program is that it 
has no line numbers. Instead, 
meaningful labels like Setup:, Put- 
ball: and Nextround: mark subrou- 
tines and major program divisions. 
To improve the program's readabil- 
ity, meaningful variable names like 
Points, Round, Column and Row 
have also been used in a number of 
cases. If you're familiar with Com- 
modore 128 or 64 BASIC, you may 
find it interesting to compare one of 
those versions with this one. 
Though some routines have been 
repositioned, and the graphics tech- 
niques are very different, this pro- 
gram follows essentially the same 
logic as the original. 

Window Management 

Before creating any graphics, you 
must make some basic decisions 
about the screen itself. The four 
PALETTE statements in the Setup: 
routine specify colors for the new 
screen. If these are omitted, the 
Amiga uses the same colors that 
appear when you activate BASIC. 
The following statement creates a 
window for the game screen: 
WINDOW 2,"Switchbox"„0 



Philip i. Nelson, Assistant Editor 

The first parameter (2), creates 
a new output window specifically 
for this program's output. If you 
don't create a new window, all out- 
put goes to window 1, which is 
normally titled with the name of 
the current program. You could fol- 
low this statement with WINDOW 
OUTPUT 2, to direct all output to 
window 2. But that's done automat- 
ically when you open the window. 
When you close the window with 
WINDOW CLOSE 2 {see the Go- 
home: routine), output reverts to 
window 1 again. 

The second parameter in a 
WINDOW statement is a string that 
contains the window's title. 

The third WINDOW parame- 
ter, which is optional, specifies the 
window's size. Windows can be 
smaller than the actual screen. In 
this case, we needed a full-screen 
window, so we simply left out this 
parameter. The window automati- 
cally expands to the full size of the 
screen. 

The fourth WINDOW parame- 
ter also is optional. It specifies the 
window's type — that is, the win- 
dow's characteristics. Though it's 
often desirable to resize a window 
and move it around the screen, 
those features aren't needed for a 
game. To disable them, we specify a 
window type of 0. This creates a 
window that can't be resized or 
moved around with the Title Bar; 
can't be moved from the front to 
back of other windows with a Back 
Gadget; and can't be closed with a 
Close Gadget. However, Amiga 
BASIC'S normal menus are all left 



active, so the player can still stop 
the program by choosing the Stop 
option from the Run menu. 

In any program that includes 
speech, it's a good idea to include a 
short SAY statement at the very 
beginning of the program before 
opening any custom windows. 
When the Amiga encounters the 
first SAY statement, it tries to load 
the narrator device program from 
disk (the Amiga's speech synthesiz- 
er is implemented in software, not 
hardware). If it can't find the narra- 
tor on the currently mounted disk, 
it displays a requester box prompt- 
ing you to insert the correct vol- 
ume. If this happens after you've 
opened a new window, the request- 
er box may appear on the original 
output window, which is now in- 
visible. This can be very confusing 
to a new user, who may think that 
the system has crashed, when in 
fact it's just waiting for a response, 

Hl-Res Graphics 

The 128 version of Switchbox 
draws the playfield and animates 
the moving figures with traditional 
Commodore methods — PRINTing 
graphic characters on the text 
screen or POKEing them directly 
into screen memory. Since the 
128's text screen is divided into 25 
rows of 40 characters, it's a fairly 
simple matter to keep everything 
neatly aligned. Not so on the 
Amiga, which in this case presents 
a high -resolution graphics screen 
640 pixels wide and 200 pixels 
high. While it's possible to put 
characters on this screen with 



In round three the numbers are 
a bit lower. They increase arithmet- 
ically (1, 2, 3, 4, up to 8 in the 
corners). A goal of 20 points brings 
you to round four, where you can 
score big. Here the numbers are 
squares: 1, 4, 9, 16, 25, all the way 
to 64 at the edges. In rounds two 
through four, it's sometimes pru- 
dent to leave a middle path open 
for your opponent to score a few 



points, in order to gather a high 
score on the big numbers to the left 
and right. 

Each round lasts until one 
player has reached the goal. At that 
point the other player has one last 
turn before the round ends. It's pos- 
sible to win the round on this last- 
chance play; watch out for barely 
topping the goal and leaving a 
chain reaction open for the other 



player. An arrow points to the 
scoreboard of the player whose 
turn it is. On the other side of the 
screen, you'll see a number where 
the arrow should be. That's the goal 
for the current round (the Amiga 
version displays the goal on both 
sides of the screen, below the 
scoreboards). 

Bonus points are awarded at 
the conclusion of each round. Four 



40 COMPimi March 1986 



Atari 



=► • 



lodes 



Atari's new computer 
serious tlireat to Macintosh. 
Will ttie Amiga survive? 




The Atari 520 ST is a seri- 
ous challenge to the Apple 
Macintosh and will open 
up a major fight in the 
personal computer mariiet. 




By Joseph Sugarman 



Imagine this, tf 1 could 
offer you a Macintosh computer— (a com- 
puter that sells for over $2000)— for one third 
the price, you might wonder. 

But what if I offered you a better computer 
with none of the disadvantages of the Mac 
and what if I added new features which im- 
proved its speed and performance? That's 
exactly what Atari has done in an effort to 
grab the ball from Apple and really explode 
into the personal computer market. 

HEADING EFFORT 

Heading the effort at Atari is Jack 
Tramiel— the same man who built Com- 
modore into a billion dollar corporation, soid 
more computers than any other man in the 
world and believes in giving the consumer in- 
credible value without sacrificing quality. The 
new Atari is a perfect example. 

First, let's compare the new Atari ST to the 
Macintosh and the Commodore Amiga. Sorry 
IBM, we can't compare the ST to your PC 
because yours is almost five years old, much 
siower, and, in my judgement, over priced. 
Price The cheapest you can get the Macin- 
tosh with 51 2K of memory is $1800 with a 
one-button mouse, a disk drive and a 
monochrome monitor. The Amiga sells for 
$1995 with a two-button mouse, a disk drive 
and a color monitor. The Atari ST sells for 
$699 with a two-button mouse, a disk drive 
and a monochrome monitor and for $200 
more, a color monitor. Read on, 
Monitor With the Mac you can only use its 
9" monochrome monitor and with the Amiga 
you can only use its 12" color monitor. With 
the ST you have a choice of either a 12" 
monochrome or high-resolution color monitor 
or your own TV set. 

Resolution The number of pixels or tiny dots 
on a screen determine the sharpness of a 
computer monitor. The Mac has 175,104 pix- 
els and has one of the sharpest screens in 
the industry. The Atari ST has 256,000 pix- 
els or almost a third more than the Mac. And 
the Atari color monitor compared to the 
Amiga in its non interlace mode is 128,000 
pixels or exactly the same. 
Power All the computers have a 51 2K 
memory with a 68000 CPU operating with a 
32-bit internal architecture. But Atari uses four 
advanced custom chips which cause the 
CPU to run faster and more efficiently giving 
it some tremendous advantages. For exam- 
ple, it has a faster clock speed of 8Mhz com- 



pared to the Mac's 7,83 and the Amiga's 
7.16. And the speed of the unit is hardly af- 
fected by the memory requirements of the 
monitor which in the Amiga can eat up much 
as 70% of the unit's cycle time or speed. 
Keyboard This is the part I love. The Mac has 
a small 59-key keyboard and a mouse. That's 
all. The 95-key Atari has both a mouse, cur- 
sor keys, a numeric keypad and ten function 
keys. The keyboard looks fantastic and is 
easy to type on. Although the 89-key Amiga 
has almost all the features of the Atari 
keyboard, it looks like a toy in comparison. 
(Sorry Commodore, but that's my opinion.) 
Disk Drive The Mac's 3V2" disk drives run 
at variable speeds— slowing down as they 
run. The Atari S'/s" drives run faster at a con- 
stant speed— and quieter than any other unit. 
Features The Atari ST comes equipped with 
the same printer and modem ports as the IBM 
PC— a parallel and RS232C serial port. The 
Mac comes only with a tiny non-standard 
serial and modem port. The ST has a hard 
disk interface capable of receiving 1 million 
bits per second. There are two joy stick ports 
and a 128K cartridge port for smaller pro- 
grams or games. It has 51 2 colors {for the col- 
or monitor), it has a unique MIDI interface in- 
to which you can plug your music synthesizer 
and record or play back your music. 
Software Right now, the Mac has more than 
the Atari ST and the Amiga combined. The 
Atari is a new system but the track record of 
Atari's Jack Tramiel and the potential of the 
new unit is causing a flood of new software 
titles. In fact, I'll predict that eventually the 
Atari will have more software than the Mac, 
There are now hundreds of titles, from word 
processing to spread sheet programs, from 
graphics and games to data base 
management— all with those easy drop-down 
menus and windows. There's plenty from 
which to select now and plenty more to come. 

If you think I'm enthusiastic over the ST, 
listen to what the press is saying. Byte 
Magazine just called it the ' 'Computer of the 
year for 1986." Creative Computing exclaim- 
ed, "Without question, the most advanced, 
most powerful micro computer your money 
can buy." and finally, the Atari ST is the best 
selling computer in Europe and acclaimed, 
"The computer of the year," by the European 
personal computer press. 

I am going to make the ST so easy to test 
in your home or office that it would be a 
shame if you did not take advantage of my 



offer. First, I will offer the 
computer itself for only $299. You will need, 
in addition, either one or two disk drives and 
either an Atari monochrome or color monitor 
or your own TV. If you order with your credit 
card during our introduction I will ship your 
order and only bill you for the postage and 
1/3 the purchase price. I will also add a few 
softv/are packages free including "Logo"— a 
beginners programming language, a disk for 
programming in BASIC and Neochrome— a 
graphics paint program. 

COMPARE THE TWO 

After you receive the Atari ST, put it next 
to your Mac or Amiga or even IBM. See how 
extremely sharp the graphics appear, 
discover what a perfect word processor it is, 
how great the keyboard feels and finally how 
much taster and quieter it runs. 

If you're not convinced that the Atari is far 
superior to your present computer and a fan- 
tastic value, simply return it and I'll refund your 
modest down payment plus our postage and 
handling charges. If you decide to keep it, 
I'll bill your credit card account for the remain- 
ing balance and enroll you in our discount 
software club (a $50 value) that lets you buy 
software for up to 50% off the retail price. 

But act fast. We have only 2,000 units and 
1 ,000 free memberships that we will offer as 
part of this introductory program and we are 
certain they will go fast. Order today. 

To order, credit card holders call toll free 
and ask for product by number {shown in 
parentheses). Please add $20 per order for 
postage and handling. (If you pay by check, 
you must pay the full amount but we will pro- 
vide you with a bonus software package.) 
ST Keyboard, CPU & Mouse(4060M) S299 

Disk Drive (4056M) 199 

Monochrome Monitor {4057M) 199 

RGB Color Monitor {4058M) 399 

Note: A list of software will come with the unit. 

I3M IS a regisiered tfadernark of fntemaiionsi Business Machines 
Corp Commodate & A/niga are iracfema^hs olCcmmodore Eiec- 
tmnics L TD. Apple & Macintosh are irademaiks of Apple Com- 
puter, Ir^c. Atari. ST & Logo are trademarks ot Alan Corp 

PRODUCTS 
■ JHAT 
JHINK 

One JS&A Plaza 

Northbrook, Illinois 60062 

CALL TOLL FREE 800 228-5000 

IL residents add 7% sales lax. ©JS&A Group. Inc., 1985 




LOCATE and PRINT, the Amiga's 
character set includes no graphics 
characters. So 128 -style graphic 
techniques are useless unless you 
want a game screen that consists of 
X's, O's, and slash characters. In- 
stead, everything must be drawn 
with hi-res commands like LINE, 
PUT, CIRCLE, and PAINT (see the 
routine labeled Setup:). 

Repeated shapes are stored in 
an array with GET and then placed 
in several locations with PUT com- 
mands. PUT is used extensively in 
this game to create the moving 
balls, switches, and arrows, as well 
as to draw parts of the switchbox 
itself. Though it's one of Amiga 
BASIC'S slower graphics com- 
mands, PUT is more than adequate 
for a game of this type and much 
faster than the same commands in 
other BASICS. Thanks to the Ami- 
ga's fast 68000 microprocessor and 
custom graphics chips, this version 
runs much faster than the original, 
even though no particular attempt 
was made to optimize the pro- 
gram's speed. 

PUT has several different 
modes which determine what hap- 
pens when you PUT a shape into an 
area that already contains graphics 
data. The Amiga uses XOR (exclu- 
sive or) mode for PUT unless you 
specify otherwise. This mode is 
particularly useful for animation, 
since if you PUT the same shape 
twice into the same location with 
XOR, it erases itself without dis- 
turbing whatever was there before. 
Here's a typical use of PUT with 
XOR: 

PUT (140,5),LarTow;PUT (440,5),RarTow 

These statements, found in the 
Taketurn: routine, are performed on 
each new turn to make the player's 



arrows flip back and forth. If you're 
not familiar with XOR mode, this 
code looks confusing, since it PUTs 
both arrows on the screen no mat- 
ter whose turn it is. But we began 
the game by PUTting the left arrow 
in place when the screen was 
drawn. Thus, when the first turn is 
taken, the left arrow erases itself, 
and the right one appears. On the 
second turn the right arrow erases 
itself, and the left one appears, and 
so on. This shortcut eliminates the 
need for a separate routine to keep 
track of the arrows' display status. 

Speech And Stereo Sound 

speech and stereo sound effects 
may seem flashy, but the Amiga 
makes them quite easy to program. 
Amiga BASIC'S SAY TRANS- 
LATES command translates any 
English text into quite understand- 
able speech. And it's easy to flip 
sound effects from one stereo out- 
put to another by changing the final 
value in a SOUND statement. 

If your monitor has only one 
speaker, you'll probably want to 
defeat the stereo feature so that 
both players' sound effects can be 
heard through one output. This is 
easy to do. The Amiga has four 
sound channels, numbered 0-3: 
Channels and 3 always go to the 
left speaker, and channels 1 and 2 
go to the right. There are five 
SOUND statements in the program 
(in the routines labeled Switch:, 
Putball: and Score:). In each 
SOUND statement, the final pa- 
rameter controls whether the sound 
goes to the left or right output. For 
instance, the Score; routine contains 
these statements: 

SOUND j,l,64,Who 
SOUND j-f- 400,1,64,3 -Who 



The program variable Who 
equals when it's the left player's 
turn, and 1 on the right player's 
turn. Thus, when Who=0, the ex- 
pressions Who and 3— Who create 
sound in channels and 3, which 
both go to the left speaker. When 
Who = l, they output through 
channels 1 and 2, which go to the 
right speaker. To defeat the stero 
effect in these statements, replace 
Who and 3— Who with the values 
and 3, or 1 and 2, depending on 
which output you're using. Similar 
changes to the other SOUND state- 
ments will confine them to one 
speaker as well. 

If you don't specify otherwise, 
SAY commands cause the program 
to halt until the computer finishes 
saying the current phrase. But at 
certain points in Svritchbox, the 
computer talks "in the background" 
while it performs other program 
tasks. At the beginning, for example, 
you'll see it draw several graphics 
shapes while it pronounces the wel- 
coming phrase. This effect is also 
quite simple to achieve. 

Look at the first set of DATA 
statements in the Setup: routine: 
These values are stored in an inte- 
ger array (Voice%) for later use in 
SAY commands. Each element of 
the voice array controls a different 
aspect of the Amiga's speech, such 
as pitch, speaking rate, and so on. 
The next-to-last element in the ar- 
ray controls whether the program 
confinues while SAY commands 
are in progress. Setting this value to 
1 selects synchronous speech which 
proceeds in the background. Re- 
placing the 1 with a selects asyn- 
chronous speech mode, which halts 
program execution until the current 
phrase is finished. 



numbers appear below the score- 
cards. The first is simply the total so 
far. The second is the total plus a 
bonus of the goal for the round if 
the player's points are equal to or 
greater than the goal. For example 
if the goal is 20 and you get 18, 
there's no bonus. If you score 22, 
the bonus is the goal for that round 
(20) and you'd have 42 points. The 
third number under the scoreboard 
is the difference between scores for 



the rounds. If you win by two 

points, two is added to your score 
(and two is subtracted from the oth- 
er player). The final number is the 
grand total of the first three scores 
and bonuses. Rounds one and three 
are fairly low-scoring with low 
goals. You may want to seed the 
field with extra balls during these 
quarters, so you can collect more 
points in the second and fourth 
quarters. 



Variations 

Although the goal of the game is to 
score the most points, there's no 
reason you couldn't agree to play 
for low score. In a "lowball" game, 
you would try to avoid scoring 
points. You wouldn't necessarily 
play backwards, you would have to 
adjust the strategy of where to place 
the balls. Fill up the board as much 
as possible and leave your oppo- 
nent in a situation where he or she 



42 COMPUni March 1 986 



is forced to score points. 

The DATA statements at the 
beginning of the program (the Set- 
up: routine in the Amiga version) 
determine the goal for each round 
and the point values for the exit 
paths. You can prolong the game by 
doubling the goals; this also dilutes 
the value of a big score at the begin- 
ning of a round, preventing one 
player from winning on the first or 
second turn. An interesting varia- 
tion is to assign negative values to 
some slots. If some paths score neg- 
ative points, you are forced to think 
harder about where the balls will 
drop. 

In addition to the numbered 
keys (1-8), the plus (+) and minus 
(— ) keys are active. Pressing plus 
drops a ball at random down one of 
the eight entry paths. Pressing mi- 
nus allows you to pass your turn to 
your opponent. 

Once you've mastered the reg- 
ular game, you can add some new 
rules. Each player gets three passes 
per half, similar to the three ti- 
meouts in a football game. If you 
don't like the looks of the board, 
press the minus key to use one of 
your passes. After one player has 
skipped a turn, the other player 
must play (this prevents the possi- 
bility of six passes in a row). It's also 
a good idea to make a rule that a 
player can't pass on two consecu- 
tive turns. You can also give each 
player two random moves to be 
played for the opponent. In other 
words, after making a move, you 
could inform your opponent that 
you're going to give him one of 
your random moves and you would 
press the plus key. 

Here's one more change you 
could make: Instead of alternating 
turns, allow a player to continue 
after scoring. When a player drops a 
ball and scores some points, the 
other player would have to pass (by 
pressing the minus key). If the first 
player scores again, the opponent 
passes again, and so on until no 
more points are scored. 

Playing Solitaire 

To drop a ball, press a numbered 
key (1-8). If you're using a 128, ST 
or Amiga, the numeric keypad is 
convenient for choosing a move. By 
using the pass and random turn 
options, you can play against the 



computer. Here are the rules for 
soUtaire play: 

1 . The computer always scores 
first. At the beginning of every 
round, the computer plays random- 
ly until at least one point is ac- 
quired. Press the plus key for the 
computer's turn. You must contin- 
ue passing (skip your turn with the 
minus key) until the computer puts 
points on the board. 

2. After the first score by the 
computer, you can begin to play. 
When the computer has a turn, 
press the plus key for a random 
move. 

3. Whenever you make points, 
you must pass again until the com- 
puter scores. When the computer 
gets more points, you can begin to 
play again. This rule means you 
should hold back on the easy scores 
of a few points; wait until there's an 
avalanche available. 

4. If you're the first to reach the 
goal, the computer gets a last 
chance. Don't make this move ran- 
domly; figure out the best opportu- 
nity for scoring and play that move 
for the last-chance turn. 

In the interest of keeping these 
programs to a manageable length, 
no attempt has been made to pro- 
vide an "intelligent" computer op- 
ponent. Once you become familiar 
with the game, you might find it an 
interesting project to try adding 
some routines that give the com- 
puter a rational basis for picking 
one move over another. 

For instructions on entering tiiese listings, 
pleas© refer to "The New Automatic Proof- 
reader for Commodore" and "COWPUTEI's 
Guide to Tvping in Programs" in this Issue of 
COrviPuTEi. 

Program 1. Commodore 
1 28 Switchbox 

FP 10 DI^5SW('3,7,l),SP5(i),L13(3 
2 , 4 ) , ARS ( 1) , PT ( 4 , 1 6 ) , SC ( 
1,8) 

DE 12 SP$(0) = "{OFF]i*HRVS)g*3 
tOFFJi@r':SP$(l)="i@3 
iRVS)£(0FFj£" :AR5 (0)=" 
<I ID0WH}(2 LEFT)J^W!":A 
R^(l)="g03KfUPj [2 LEFT] 
( SPACE J U > " : QRal : PRINTCHR 
?(27);"M" 

EC 14 COLOR0,16:COLOR4,7:CQLOR 
5,7:TX=RND(-TI/137) 

QS 20 F0RJ=1T04;READPT( J,0) :RE 
M NAME AND GOAL 

XC 22 F0RK=lTO8:READL:PT{J,K+a 
)=L:PT(J,9-K)=L:NEXTK,J: 
REM POINTS 

RP 24 DATA 10jREH ROUND 1 ( EQU 
AL) 




"Switchbox" for the Commodore 128, a 
challenging strategy game. 

PE 25 DATA 2,2,2,2,2,2,2,2 

PF 26 DATA 40: REM ROUND 2 (FIB 

ONACCI) 
HP 27 DATA 1,2,3,5,9,13,21,34 
KJ 28 DATA 20: REM ROUND 3 (ARI 

THMETIC) 
BG 29 DATA 2,3,4,5,6,7,8,9 
EB 30 DATA B0:REM ROUND 4 (SQU 

ARES) 
SF 31 DATA 1,4,9,16,25,36,49,6 

4 
PB 40 SCNCLR:INPUT"PLAYER 1 " ; P 

15:INPUT"PLAYER 2";P2$:P 

15=LEFT5(P15,5) :P2$=LEFT 

$(P25,5):PRINTP1$;" VS " 

rP2 5 

JD 42 PRINT "IS THIS CORRECT?": 
GETKEYA5 :IFASC(A$ ) 089TH 
EN40 
PB 50 GOSUB500:GOSUB700:REM SE 

TUP 
HD 60 FORRR=1TO4:TX-1072+40*RR 

iPOKETX , 90 :P0KETX+22 , 90 
XG 62 GOSUB620:REM PUT SCORES 

{SPACE) AT BOTTOM 
SF 65 QR=1-QR:C0L0R5,7:TY=QR*2 
0:TX=28-TY:WINDOWTX,0,TX 
+2,1,1 :PRINTRIGHT5(STR$( 
PT(RR, 0) ),3) SPRINT" 
{2 HOME) ":TX=8+TY:CHAR1, 
TX,QR,ARS(QR) 
SK 70 GOSUB900:IFSC(1-QR,RR)=> 
PT(RR,0)THEN3002REM END 
5 space! OF ROUND 
AK 80 GOT065 
EX 300 FORJ=0TOl!FORK=5TO8!SC( 

J,K)=0:NEXTK,J 
QP 310 FORJ=0TO1 :F0RK=lT04sGL=' 
PT(K,0) fAC=SC{j,K) :SC(J 
,5)=SC(J,5)+AC:SC(J,6)= 
SC(J,6)-(AC=>GL)*GL:SC( 
J,7)=SC(J,7)+(SC(J,K)-S 
C(1-J,K) ) :NEXTK,J 
QB 320 FORJ=0TO1 :FORK=6T07:SC( 
J,K)=SC(J,K)+SC(J,5) :NE 
XTK, J 
SC 330 FORJ=0TO1 :FORK=5T07:SC( 
J,a)=SC(j,8)+SC(J,K) :NE 
XTK, J 
ME 340 COLOR5,12:FORJ=0TO1 :FQR 
K=5T08:YS=STR5{SC(J,K) ) 
:L=LEN(Y5) :TX=6+J*31-L: 
TY=3+K:CHAR1 ,TX,TY,Y5 rN 
EXTK, J 
CX 400 NEXTRR:REH END OF MAIN 

[SPACElLOOP 60-499 
EB 499 GETKEYA?:RUN 
BA 500 SCNCLR:PRINTSPC(11) :" 

B A3 [ RVS ] §03 ( OFF 1 " ; : FORJ 
= 1T07 :PRINT" 10FFUR3 
lRVS)i03"; : NEXT: PRINT" 
{0FF)gSi":LL=7 
QB 510 FORJ=0TO4:TX=9-2*J:TY=1 



March 1966 COMPUTEI 43 



+J*4:BX=TX+20+J*4:BY=TY 
+4 i WINDOWTX , TY , BX , BY : R$ 



CD 520 



BQ 530 



PM 540 



JP 550 



BF 560 



QS 
KX 



599 
600 



MA 620 



RK 630 



MC 



SX 700 



MX 


7lt) 


IIA 


720 


RM 


730 


SK 


740 



XJ 750 



BQ 



EQ 7 70 



KQ 77 5 



HK 780 



RE 790 



QJ 

RP 
BA 



JJ 900 



RC 910 



FX 915 



FK 920 



FORK=lT02:PRINT" 

12 spacesHrvsJ (off) " 

; :GOSUB600:PRINT"lRVS) 
(space] ":NEXT 
PRINT" iRVSjjC iOFF) " ; 
:GOSUB600 :PRINT" ( RVS I 

LL=LL+2 :PRINT"SRVSU 

iOFFji"; :GOSUB600:PRIN 

T"{LEFTjB*3{RVS)^*i 

(off J "r :NEXTJ 

WINDOWl,21,3a,23:PRINT" 

ERl "; :GOSUB600: PRINT" 

ERI" 

R?="lRVSiEUi [OFF}EEi":L 

L=LL41:PRIMT"gzr'r :GOSU 

B600:PRINT"(LEFT)EXl" :W 

IfJDOVJ0,0, 39,24 

RETURN 

F0RL=1T0LL:PRINTR$; :NEX 

T:RETURN 

COLORS, 12;F0RJ=1T0I6:K= 

PT{RR, J) :JJ=2+J*2 

1FK>9THENL=INT(K/10) :LS 

=MID5(STRS(L),2,l):ELSK 

L5=CHR?{32) 
640 C1!AR1,JJ,23,L?:CHAR1 ,JJ 

,24,RIGnT?(STRS(K), 1) :N 

HXTJ : RETURN 

FORJ=0TO4:SY=4+J*4:FORK 

=0TOJ+3 :SX=12-J*2+K*4:C 

HAR1,SX+1 ,SY-1, 

Wl'=lNTtRN[)( 1)*2) 

SW(J,K,0)=WP:SW(J,K,1)= 

:GOSUB800 

NEXTK,J 

FORJ=1TO8:POKE1074+J*2, 

48+J:NEXT 

FORJ=0TO1 :BX=J*3I :WINDO 

WBX,0,BX+7,7 
760 PRINT" {OFF) f BLK) ED| 

i RVS H PUR) n SPACES) 

lBLKigKi[PUR]EDiE5 II 

BFi " ; 

F0RK=1T04 :PRINT " ( RVS ) 

lBLK)gKjSOFF)(PUR)EKi 

(5 SPACES) (RVS) EKi";:NE 

XT 

PRINT '■{ RVS i (BLKjgKi 

[PUR)ECH0FF)g5 li(RVS) 

BV^lOFF) lBLK)iC3(RVS) 

E6 I3[0FF)EV|" r 

NEXT ! PRINT" U HOMEj":CO 

L0R5 , 5 

CHARl , 3 + { LEN ( PI S ) =5 ) , , 

Pl?,l 
791 CHARl, 34+ { LEN (P2 5) =5) ,0 
,P2$,1 
RETURN 

COLORS, 2 :CHAR1,SX,SY,SP 
$(WP) :RETURN 
FORJ=0TO3 2:LB(J,0)=0:NE 
XT:NB=1:POKE20B,0 
GETKEYA? : I FAS =" -"THENRE 
TURN : ELSEI FA$=" +"THENAS 
=STRS(INT(RND(1)*8+1) ) 
A=VAL(A?) :IF(A<1)0R(A>8 
)THEN910 

LB(0,0>=1:FORJ=1TO3 :LB{ 
0,J)=0:NEXT:LB(0,4)=10+ 
A*2 
D0:EX=1 

FORJ=0TO32:IFLB(J,0)TH 
ENEX=0:GOSUB1100 
NEXT : I FEXTHENEXIT 
LOOP: RETURN 

DY=LB(J,0) :DX=LB{J,1) : 
LY=LB(J,2) :NY=LB(J,3) : 



799 
800 



SF 


1000 


KR 


1010 


GP 


1020 


EF 


1030 


KJ 


1100 



NX=LB(J,4) :SM=1064+N'X+ 

LY*160+NY*40;IF(LY+NY) 

THENPOKESM,3 2 
GJ 1110 LB(j,3)=(Ny+l)AND3 :ONN 

Y+1GOTO1200, 1300 , 1400 , 

1500 
EE 1200 IFLY>4THENLB(J,0)=0:GO 

TO1700:REM SCORING ROU 

TINE 
QE 1220 POKESM+40,81:QNINTtRND 

(l>*3+l)GOT01 800,1810, 

1820 
QS 1300 VX=0:GOSUB1600:IF SW(W 

Y , WX , 1) AND ( SW { WY ,WX , ) 

=SD)THEN VX=1-2*SD:LB( 

J,1)=VX:LB(J,3)=NY+1 :L 

B ( J , 4 )=NX+VX : POKESM+40 

+VX,81 :GOTO1840 
EG 1310 IF SW(l-rY,WX,0)=SDTHENL 

B(J,0)=0;SW{WY,WX,1)=1 

:POKE SM+40,ai :GOT0183 


HC 1320 LB(J,3)=NY+l:POKESM+40 

,81 :0NINT(RND(1)*3+1)G 

OTOiaOO, 1810, 1820 
QD 1400 LB(J,1 )=0:LB(J,4)=NX+D 

X:POKESM+40+DX,ai :GOTO 

1850 
FD 1500 LB (J, 2 )=LY+1 : POKESM+40 

,81 :GOSUB1600:SW(',VY,WX 

,0)=i-SW(WY,WX,0) 
DA 1510 IF SW(WY,WX,1 )niENLB{N 

B,0}=1:LB(NB,1)=0:LB(N 

B,2)=LY;LB(NB,3)=0:LB( 

NB,4)=NX+2-SD*4:NB=NB+ 

1 :SW(WY,WX, 1 )=0 :POKESM 

-40+2-50*4,32 :GOSUB186 


PA 1520 SX=12-WY*2+WX*4:SY=4+W 

Y*4:WP=SW(WY,WX,0) :GOS 

UB800:GOTOia40 
FH 1600 WY=LY:JX=(NX/2)+LY-6:W 

X=INT( JX/2) :SD=JXAND1 : 

RETURN 
KX 1700 SF=iPTCRR,NX/2-l) 
RA 1710 SG=SC(QR,RR)+SF:C0L0R5 

,12 
GG 1720 TX=5+31*QR+(SG>9)+(SG> 

99)+(SG>999) 
QS 1730 TY=1+RR:A5=MID$(STRS(S 

G),2) 
JJ 1740 CHARl ,TX,TY,A5:SC(QR, R 

R)=SG:GOTO1870 
MJ 1300 SOUNDl, 4500, 8: RETURN 
CP 1810 SOUNDl ,9000, 8: RETURN 
FC 1820 SOUNDl, 6750, 8: RETURN 
AH 1830 SOUND2, 7500, 8, 1 ,6250,1 

25,1 ,1024:RETURN 
QD 1840 SOUND2,6000,12,2,4200, 

150,3 : RETURN 
EH 1850 SOUND2,30000,12,2,1000 

0,5000,3 tRETURH 
BX 1860 S0UND3, 1500, 24, 0,1450, 

25, 3: RETURN 
RQ 1870 SOUNDl, 12000, 24 :S0UND2 

,7500, 12,0, 7300, 25:SOU 

ND3, 9000, 18: RETURN 



Program 2. Commodore 64 
Switchbox 

RB 100 FORA=542 7 2TO5429 5:P0KEA 
,0:NEXT:POKE5429G,15;PO 
KE54277,24:POKE54284,26 

HE 110 V=54276:LB=54272:HB=LB+ 

1 
GP 120 DIMSW(4,7,1),SP?(1),LBC 
32,4),AR$(1),PT{4,16),S 

0(1,8) 
■RP 130 SP5(0)="EOFF}E*3(RVS] 



g*§{OFF)^@3":SP?(l)=" 

B@3(RVS)£(0FF}£":ARS( 

0)="<^ (down) {2 LEFT) J 

BW3":AR$(1)="^03K{UP] 
!2 LEFT) U>":QR=1 
CF 140 POKE53281,15:POKE53280, 

15 :P0KE646,6 zTX^RNDt -TI 

/137) 
BD 150 PORJ=1TO4:READPT(J,0) :R 

EM NAME AND GOAL 
SQ 160 FORK=lTOa:READL:PT(J,K+ 

8)=L;PT( J,9-K)=L:NEXTK, 

J: REM POINTS 
HH 170 DATA 1 : REM ROUND I ( EQ 

UAL) 
EE 180 DATA 2,2,2,2,2,2,2,2 
RX 190 DATA 40: REM ROUND 2 ( FI 

BONACCI) 
PH 200 DATA 1,2,3,5,8,13,21,34 
MD 210 DATA 20:REM ROUND 3 (AR 

ITHMETIC) 

KP 220 DATA 2,3,4,5,6,7,8,9 

SQ 230 DATA 80:REM ROUND 4 ( SQ 

UARES) 
ED 240 DATA 1,4,9,16,25,36,49, 

64 
XS 250 PRINT" iCLR)":INPUT"PLAY 

ER l";PiS 
PD 260 INPUT "PLAYER 2";P2$:P15 

=LEFT?(P1?,5) sP2$=LEFT5 

{P2?,5) :PRINTP1S;" VS " 

;P2$ 
BH 270 PRINT"IS THIS CORRECT?" 

:POKE198,0:WAIT198,1 :GE 

TA$:IFASC(A$) <>89THEN2 5 


EF 280 GOSUB4 50:GOSUB610:REM S 

ETUP 
KP 290 FORRR=1TO4:TX=1072+40*R 

R : POKETX , 90 :P0KETX+22 , 9 


HG 300 GOSUB560:REM PUT SCORES 

AT BOTTOM 
RK 310 QR=1-QR:P0KE646,6:TY=QR 

* 20 : TX= 28 -TY : CX=TX : CY=0 
GJ 320 M$=RIGHT5(STR5(PT(RR,0) 

), 3)+" [DOWN) (3 LEFT) 

13 SPACES) ":GOSUB1180 
GE 330 TX=8+TY:CX=TX:CY=0R!MS= 

AR5(QR) :GOSUB1180 
EA 340 GOSUB770:IFSC(1-QR, RR)= 

>PT(RR,0)THEN3 60:REM EN 

D OF ROUND 
HJ 350 GOTO310 
QP 360 FORJ=0TO1 :FORK=5T08:SC( 

J,K)=a:NEXTK,J 
HH 370 FORJ=0TO1 :F0RK=1T04:GL= 

PT(K,0) :AC=SC{J,K) :SC(J 

,5)=SC(J,5)+AC 
FF 380 SC(J,6)=SC(J,6)-(AC=>GL 

)*GL:SC(J,7)=SC(J,7)+(S 

C(J,K)-SC(1-J,K) ) :NEXTK 

,J 
AP 390 PORJ=OT01 :FORK=6T07 :SC( 

J,K)=SC(J,K)+SC(J,5} :NE 

XTK, J 
XS 400 FORJ=0TO1 :FORK=5T07 :SC( 

J,3)=SC(J,8)+SC(J,K) :NE 

XTK, J 
RJ 410 POKE646,ll ;FORJ=0TO1 :F0 

RK=ST08:Y?=STRS(SC(J,K) 

) :L=LEN(Y5) :TX=6+J*31-L 
HE 420 TY=3+K:CX=TX+(TX<20) :CY 

=TY: M?=YS :GOSUB1180 :NEX 

TK, J 
SC 430 NEXTRR:REM END OF MAIN 

(SPACE J LOOP 60-499 
XJ 440 PaKE198,0:WAIT198,l jRUN 
PQ 450 PRINT" (CLR) "; :PRINTSPC( 

11) ;"BAl!RVS)B03(0FFr'; 

:P0RJ=1T07 : PRINT" (OFF) 



44 COMPUTG1 March 1966 



ERKRVSJEOI" ; :NEXT:PRIN 
T"(0FFlESi":LL=7 
CQ 460 FORJ=0TO4:TX=9-2*J :TY=1 

+J*4:R5="- " 
CJ 470 F0RK=1T02 :CX=TX:CY=Ty+K 

-1 :M?="";GOSUB1180 
QP 480 PRINT" [2 SPACES) [RVS! 

[OFF) "; :GOSUB550:PRINT 

"(RVS) ":NEXT 
MB 490 CX=TX:CY=TY+K-1 :M?="":G 

OSUB1180 
XD 500 PRINT" iRVS)£ I OFF) "r 

:GOSU B5 50 ; PRINT" [RVS) 

B*l" :CX=TX!CY=TY+K!M$=" 

":G0SUB118a 
CA 510 LL=LL+2: PRINT "[ RVS )£ 

(OFF)£" ; :GOSUB550:PRIN 

T " [LEFT )6*H RVS )g*i 

[ OFF ) " ; : NEXTJ 

PRINT:PRINT"(RIGHT)iRi 

ISPACEJ"; :GOSUB550:PRIN 

T"ERi" 

R$ = " [RVS)EUH0FP)gE3":L 

L=LL+1:PRINT" E2i";:G0S 

UB550 :PRIKT " [LEFT ) EXl " 

RETURN 

FORL=ITOLL:PRINTR$r :NEX 

T; RETURN 

P0KE646,11 :F0RJ=1T016:K 

=PT(RR,J) :JJ=2+J*2 

IFK>9THENL=INT(K/10) :L$ 

=MID$(STR?(L),2,1) rGOTO 

590 

L5=CHR5(32) 

CX=JJ :CY=23 :M5=L5 :GOSUB 

1I80:CX = JJ:CY=24:M?=»RIG 

HT$(STRS{K),I)!G0SUBII8 



NEXTJ: RETURN 

FORJ=0TO4!SY=4+J*4:FORK 

=0TOJ+3 :SX=12-J*2+K*4 

CX=SX+1 !CY=SY-1 :M5=" ": 

GOSUBI180 

M5-" ":CX=SX+liCY=SY-l : 

GOSUB1180:WP=INT(RND(1) 

*2) 

SW(J,K,0)=WP:SW(J,K,1)= 

0:GOSUB760 

NEXTK.J 

F0RJ=lTO8:POKEia74+J*2, 

48+J :NEXT 

FORJ-0TO1 :BX=J*3I :CX=BX 

!CY=0 :M?^" " :GOSUB1180 

PRINT" (OFF) (BLK) EDi. 

(RVS) (PUR) 17 SPACES] 

(DOWN) (8 LEFT) [RVS] 

(BLKJgKl{PUR)^Dig5 I| 

BFi"; 

DQ 690 FORK=lT05:CX=BX:CY=K;MS 
a" " :GOSUB1180 :PRINT" 
(RVS) EBLK) EkKOFF) (PUR) 
EKi(5 SPACES) (RVS) iKi"! 
NEXT 

DA 700 CX=BX:CY=K:M?="":GOSUBI 
180 

GS 710 PRINT" (RVS) (BLK) EK| 

(PUR}gC3[OFF;g5 I3[RVS) 

BvKdownHs left3(offj 

[BLK}EC3(RVS)B6 I^lOFF] 

Evi" 

XC 720 NEXT:POKE646,4 

PD 730 CX=3+(LEN(P15)=5) :CY=0: 

M?="lRVS)"+Pl?+"{OFF) "t 

GOSUBliae 
HP 740 CX=34+(LEN{P25)=5) !CY=0 

:M5=" fRVS}"+P2S+" (OFF) " 

:GOSUB1180 
KE 750 RETURN 
RC 760 P0KE646,1 :CX=SX:CY=SY:M 

$=SP$(WP) :GOSUBlie0:RET 

URN 



MK 


520 


CD 


530 


QJ 


540 


AJ 


550 


SX 


560 


MM 


570 


GB 


580 


QH 


590 


KB 


600 


XJ 


610 


SR 


620 


XG 


630 


DM 


640 


SH 


650 


SC 


660 


JS 


670 


AG 


680 



MD 770 FORJ=0TD32:LB(J,0)=0iNE 

XT:NB=1 
AG 780 POKE198,0:WAIT198,1:GET 

A5 
RA 790 IFA5="-"THENRETURN 
MX 800 IFA5="+"THENA$=STR$(INT 

(RND(1)*8+1) ) 
HC 810 A=VAL(A5) !lF(A<l)0R{A>8 

)THEN780 
SH 820 LB(0,0)=l!FORJ=lTO3:LB( 

0,J)=0:NEXT:LB(0,4)=10+ 

A* 2 
EX 830 EX=1 
RM 840 FORJ=0TO32:IFLB(J,0)THE 

NEX=0 !GOSUB870 
BB 850 NEXT:IFEXTHENRETURN 
DR 360 GOTO830 
AM 870 DY=LB(J,0> :DX=LB(J,1) :L 

Y=LB(J,2) :NY=LBCJ,3) :NX 

=LB(J,4) 
SF 880 SM=1064+NX+LY*160+NY*40 

: I F ( LY+NY ) THENPOKESM , 3 2 
EF 890 LB(J,3)=(NY+1)AND3 :ONNY 

+1GOTD900,9 20,960,970 
BC 900 IFLY>4THENLB(J,0)=0:GOT 

O1030:REM SCORING ROUTl 

NE 
MS 910 POKESM+40,81 :ONINT(RND( 

1)*3+1)GOTO1080,1090,11 

00 
XR 920 VX=0:GOSUB1020:IF SW(WY 

,WX,1 )=0OR(SW(Wy,WX,0)= 

SD)=0THEN940 
HP 930 VX=1-2*SD:LB(J,1)=VX:LB 

(J,3)=NY+1:LB(J,4)=NX+V 

X : POK ES M+4 0+VX , 31 : GOTOl 

120 
HB 940 IF SW(WY,WX,0)=SDTHENLB 

( J , ) = : £W ( ITY , WX , 1 ) = 1 : P 

OKE SM+40,81 :GOTQ1110 
DP 950 LB(J,3)=NY+l:POKSSM+40, 

81:ONINT(RND( 1)*3+1)G0T 

01080,1090,1100 
JS 960 LB(J,1)=0:LB(J,4)=NX+DX 

: POKESH+40+DX ,81 iGOTOl 1 

30 
MQ 970 LB(J,2)=LY+1 :POKESM+40, 

81:GOSUB102 0:SW(WY,WX,0 

)=1-SW(WY,WX,0) 
AH 980 IF SW(WY,WX,1)=0THEN101 


MD 990 LB(NB,0)=l!LB(NB,l)=0:L 

B(NB,2)=LY:LB(NB,3)=0:L 

B(NB,4)=NX+2-SD*4 !NB=NB 

+ 1 

AC 1000 SW(WY,WX, 1 )=0:POKESM-4 

0+2-SD*4,3 2:GOSUB1140 
MC 1010 SX=!l2-WY*2+WX*4:SY=4+W 

Y*4:WP=SW(WY,WX,0) :GOS 

UB760:GOTO1120 
FA 1020 WY=LY:JX=(NX/2)+LY-6:W 

X=INT C JX/ 2 ) : SD=JXflNDl E 

RETURN 
SB 1030 SF=PT(RR,NX/2-l) 
GE 1040 SG=SC(QR, RR)+SF:POKE64 

6,11 
RJ 1050 TX=5+31*QR+(SG>9)+(SG> 

99J+(SG>999) 
EJ 1060 TY=1+RR:A?hMID?(STR?(S 

G),2) 
BE 1070 CX=TX !CY»TYiM$=A? iGOSU 

B1180tSC{QR, RR)=SGjGOT 

01150 
KK 1080 P0KELB,48:P0KEHB,4:P0K 

E?V,32 :P0KEV, 33 :RETURN 
QA 1090 P0KELB,97 :POKEHB,8!P0K 

EV,32 :POKEV,33 :RETURN 
BA 1100 POKELB,152 :P0KEHB,5:PO 

KEV,32:POKEV,3 3:RETURN 
FA 1110 POKEV,32:POKEV,33 :FORA 

=50TQ10STEP-1 :POKEHB,A 



:NEXT: RETURN 
HH 1120 RETURN 
PB 1130 POKELB,152:POKEHB,10:P 

OKEV , 128 : POKEV ,129: RET 

URN 
RM 1140 POKELB+7,0:POKEHB+7,2 : 

POKEV+7,128!POKEV+7,12 

9 s RETURN 
DR 1150 POKELB,195:POKEHB,16:P 

OKELB+7 ,135: POKEHB+7 , 3 

3 : POKEV, 32: POKEV, 33 :P0 

KEV+7,32 
QX 1160 POKEV+7,33:RETURN 
HE 1170 REM CHAR COMMAND 
FP 1180 POKE783,0:POKE781,CY!P 

OKE7 82,CXsSYS65520:PRI 

NTM?r : RETURN 




The Commodore 64 version of "Switch- 
box" makes good use of character 
graphics. 




"Switchbox" for eight-bit Atari 
computers. 



Program 3 

Version by Kevi 
Programmer 



Atari Switchbox 

n Mykytyn, Editorial 

M 100 OPEN #1, 4, 0, "K: ": SCR= 

PEEK (88) +25 fit PEEK (B"?) 

:PQKE 82,0:PDKE 752,0 
AL 120 DIM SW(4, 7) , SX <4, 7) ,S 

P* (6> , LB (32, 4) , ftR« (6) 

,PT(4, 16) ,SC(1,B) ,P1» 

(20) , P2S (20) 
AB 125 DIM M»(20) , T« (20) , Y« ( 

10) , R» ( 10) , L« ( 10} , A« ( 

5) 
6(127 FOR A-0 TO 1 : FOR B = 

TO B: SC (A, B) =0: NEXT B 

:NEXT A 
NJ 130 SP« ( 1,3)="<!!3><J>{:N>": 

SP*(4,6)="{N>tH>{[I>": 

AR*(1.3)="< ":AR«(4, 

6)=" >":QR=1 
88 140 SETCDLOR 4,3,2iSETCDL 

OR 2, 0, 8! SETCDLDR 1,0 

,ei 

EL 150 FOR J = l TO 4sREAD QsP 
T<J,0)-QiREM NAME AND 



March 1986 COMPUTEI 45 





QOAL 




-TY+K-l:M»-""sBOSUB 1 


U810 


A-VAL(A*) 


PB 160 


FOR K-1 TO a:REftD L:P 




180 


CAB20 


LB(0, 0) -IsFOR J-1 TO 




T(J,K + B) -LsPT (J, 9-t<) = 


flL 480 


PRINT " ■ "; :GQSUB 5 




3: LB(0, J)-0:NEXT J:LB 




LsNEXT KiNEXT J:REM P 




50:PRINT "■■■:NEXT K 




(0, 4) -10+At2 




QINTS 


6F 490 


CX = TX:CY = TY + K--l!M*="" 


01 830 


EX-l;EV-0 


BD 170 


DATA 10 




:GQSUB HB0 


CC 840 


FOR J-0 TO 32: IF LB< J 


HH 1S0 


DATA 2,2,2,2,2,2,2,2 


PS S00 


PRINT " {HJB "; iGOSUB 




,0) THEN EX-08BDSUB B 


BI 190 


DATA 40 




550!PRrNT "■tJ>":GX= 




70 


BB200 


DATA 1 , 2,3,5,8, 13,21, 




TX:CY=TY+K: M«="": QOBU 


L«;a50 


NEXT J:3DUND 1,0,0,0: 




34 




B 1 1B0 




SOUND 3, 0,0,0;SOUND 2 


AP 210 


DATA 2« 


EF 510 


LL-LL + 2: PRINT "<:H> 




, 100,4,EV:EV-ev-(EV>0 


10 220 


DATA 2,3,4,5,6,7,3,9 




Ca>";:BDSUB 550: PRINT 




) : IF EX THEN RETURN 


BH 230 


DATA B0 




'■{LEFT>{:£|>{:JJ"; :NEXT 


HC 860 


BOTO 830 


JA 240 


DATA 1,4,9,16,25,36,4 




J 


IG 870 


DY-LB(J,0> :DX-LB(J, 1) 




9,64 


BS 520 


PRINT iPRINT "CRI6HT> 




:LY-LB(J,2) : NY-LB (J, 3 


}\ 250 


PRINT "{CLEAR> "sPRINT 




CW> "i ! BOSUB 550:PRIN 




) :NX-LB(J,4) 




"PLAYER I " j : INPUT P 




T "<W>" 


Ki es0 


SM-SCR+40+NX+LY«160+N 




I» 


JPS30 


R«-" CU> CX>":LL = LL+1:P 




Yt40:IF (LY+NY) THEN 


HK260 


PRINT " {DOWNJPLAYER 2 




RINT " €Z>"; :GOSUB 55 




POKE SM,0 




" ; : INPUT P2«: IF LEN < 




0:PRINT "{LEFTJtC)" 


j}e90 


LB<J,3)-<NY+1 ) -4t ( INT 




Pl«) >5 THEN P1* = P1« tt 


HJ 540 


RETURN 




( (NY+1) /4) ) :0N NY+ 1 Q 




,5) 


nH 550 


FDR L-1 TO LLsPRlNT R 




OTO 900,920,960,970 


HP 264 


IF LEN(P2»)>5 THEN P2 




♦; :NEXT LsRETURN 


Pfl 900 


IF LY>4 THEN LB(J,0)- 




»-P2« ( 1 ,5t 


CD 560 


FDR J=l TO 16!K-PT<RR 




0:6OTO 1030:REM SCORI 


KA 266 


PRINT rPRINT PI*; " VS 




, J) : JJ=2+Jt2 




NQ ROUTINE 




■■;P2* 


LE 570 


IF K>9 THEN L=INT(K/1 


EI 910 


POKE 3M+40,B4!ON INT( 


NA 270 


PRINT "<:down>is this 




0) : T»-STR»{L) : L«-T« ( 1 




RND(n*3-(-l) BOTO 10B0 




CORRECT?":GET #1,A:IF 




, 1> :60T0 590 




, 1090, 1100 




CHR»(fl)<>"Y" THEN 25 


AB580 


L*=CHR»(32) 


KF 920 


VX-0: BOSUB 1020: IF SX 







ffi590 


CX=JJ:CY=22:M«=L«: BOS 




(MY,MX)-0 OR (SW(WY,M 


BH 2B0 


PDKE 752,l:BaSUB 450: 




UB lie0:CX=Jj!CY-23:T 




X)-SD)-0 THEN 940 




BDSUE 610:REM SETUP 




«-STR«(K) :M*=T«(LEN<T 


££930 


VX-I-2»SDsLB(J, 1)-VX: 


FJ 290 


FOR RR-1 TO 4!TX=SCR+ 




•) ,LEN(T«) )! BOSUB IIB 




LB (J, 3) -NY+1 : LB (J,4)- 




4a+40tRR! POKE TX,96:P 









NX+VX:PaKE SM+40+VX,8 




DKE TX+22,96 


M 600 


NEXT JjRETURN 




4: GOTO 1120 


PO 300 


BOSUB 560:REM PUT SCO 


[E610 


FOR J-0 TD 4!BY=4+J»4 


DH 940 


IF SW(WY,WX)-SD THEN 




RES AT BOTTOM 




: FOR K=0 TO J+3:SX-12 




LB(J,0)-0:SX (MY,MX)-1 


DA 310 


aR-l-DR:TY-QR»20:TX-2 




-J«2+K»4 




iPOKE SM+40,e4iGOTO 1 




B-TY!CX-TX!CY»0 


S620 


CX-SX+1: CY-SY-l:M»=" 




110 


LF320 


ri*-STR* (PT(RR,0) ) :n*( 




"SSOSUB 11S0 


i:O950 


LB(J,3)-NY+1:P0KE SM+ 




3,3)-" " 


Et 630 


M»«=" "sCX-SX + liCY-SY- 




40,84sON INT(RND(1)»3 


60 330 


BOSUB 1 le0sTX-a + TY:CX 




1:G0SUB 1 180: WP-INT <R 
ND(1) *2) 




+1) BOTO 1080,1090,11 




-TX:CY-0:M*-AR»(aR«3+ 






00 




l,0R*3+3) SBOSUB 11S0 


PF640 


gW(J,K)»WP!3XtJ,K)-0: 


CO 960 


LB{J, 1)-0:LB(J,4) -NX+ 


lA 340 


BOSUB 770; IF SC(l-aR, 




GOSUB 760 




DXsPOKE 3M+40+DX,a4:H 




RB) >tiPT ( RR, ) THEN 36 


01 650 


NEXT K:NEXT J 




OTO 1130 




0:REM END OF ROUND 


jg 660 


FOR J-1 TD S:POKE SCR 


ft 970 


LB(J,2)-LY+l!P0KE SM+ 


EF 350 


SOTO 310 




+50+J«2, 16+J: NEXT J 




40,e4iGOSUB 1020:SW(W 


JK 360 


FOR J-0 TQ 1 : FOR K-5 


JH670 


FOR J-0 TD 1:BX=JI31: 




Y,WX)-1-SW<WY,WX> 


FA 370 


TO Bs BC(J,K)i=0: NEXT K 

SNEXT J 

FOR J-0 TD 1 : FOR K"l 


i;i;6a0 


CX"BX:CY-0: M»- BOSU 

B 1180 


Bf 980 
AC 990 


IF SX(WY,WX)-0 THEN 1 

010 

LB<NB,0}-1: LBCNB, l)-0 


PRINT "tS i.-J:I:lrfi^} " ; 




TO 4: BL«PT ( K, 0) ; AC-SC 


IN 690 


FOR K-1 TO 5:CX-BXsCY 




tLB(NB,2>"LY:LB(NB,3) 




< J . K } : SC ( J . 5 ) sSC ( J 5) 




=K: M»-" " i eOSUB 11B0:P 




-0iLB(NB,4]-NX+2-SDt4 




+ AC 




RINT "<;Y>{6 SPACES> 




:NB-NB+1 


E6 380 


SC(J,6)=SC(J, 6)+(AC>- 




tB>"5:NEXT K 


i;ki000 sx (wy,wx)-0!Pqke bm- | 




QL) «BL:SC(J,7)=SC(J, 7 


BH 700 


CX-BX:CY-K;M*- GOSU 




40+2-SD*4,0:SD3UB 11 




) + (SC (J,K)-SCC l-J,K) ) 




B 1 180 




40 




:NEXT K:NEXT J 


KE 710 




EA1010 SX-12-WY«2+WX«4:SY-4 | 


PRINT " f a bl J:Trf=*.-1> " f 


l(C390 


FOR J-0 TO 1:F0R K-6 


FH 720 


NEXT JiFOR TK-1 TO LE 




+ WY«4! WP-SW(WY, WX) S B 




TO 7s3C (J,t<3-SC (J,K) + 




N<P1«) :Pl«(TK,TK)-CHR 




DSUB 760: BOTO 1120 




SC (J, 5) INEXT K:NEXT J 




»tASC(Pl«tTK,TK) )-«-12S 


EB 1020 WY-LY: JX- (NX/2) +LY-6 | 


U 400 


FOR J=»0 TO 1 ! FOR K-5 




) :NEXT TK 




:WX-INT(JX/2) iSD-JX- 




TD 7i SC( J, 8)=SC( J,a) + 


J« 725 


FOR TK-1 TO LEN{P2») : 




2« (INT (JX/2) ) I RETURN 




SC<J,K):NEXT K:NEXT J 




P2»(TK,TK) -CHR*(ftSC<P 


NE 1030 SF-PT(RR, NX/2-1 ) 


AP 410 


FOR J-0 TO 1 : FOR K-5 




2»(TK,TK> >+12B) :NEXT 


LK 1040 SS-SCCQR, BR) +SF 

JI 1050 TX-5 + 31«QR- {3B>9) -(3 




TO B: Y«=STR» (SCtJ.K) ) 
sL-LEN(Y») : TX-6+Ji31- 

L 


LO 730 


TK 

CX-3-<LEN(Pl*)-5) :CY- 

0;M«-Pl«;BaSUB 1180 


a>99) -»SB>999) 
JF 1060 TY-l+RRi A*-3TR*(SB> 


HP 420 


TY=3+K:CX=TX-(TX<20) : 
CY-TY:M*-Y«: BOSUB IIB 


PF 740 


CX-34-(LEN(P2*)-5) : CY 
-0:n«-P2«:OOSUB 1180 


IC 1070 C:X-TX:CY-TY:M»-A»:BO 
BUB llB0t3C(QR,RR)-S 
Q: SOTO 1 IHfl 


6D 430 


asNEXT KiNEXT J 

NEXT RR:REM END OF MA 


HN 750 
6L 760 


RETURN 

CX-3X; CY-3Y:M«-SP« (WP 


EJ 1080 SOUND 1,60, 10, 10:RET 
URN 


ne 440 


IN LOOP 

BET #l,TKsRUN 




>3-i-l, MPt3t-3) : BOSUB 11 
80iRETURN 


HI 1090 SOUND 1, 121, 10, 10SRE 
TURN 


(IB 450 


PRINT ■'<:CLEAR>"S :PRIN 


6L770 


FOR J-0 TO 32:LB(J,0) 


EF1100 SOUND l.ai. 10. 10SRET 




T "til SPACESXQl {[T} '■; 




-0: NEXT J ! NB-1 




URN 




:FOR J-1 TO 7:PRINT " 


tPTaa 


GET #1,A! A»-CHR»(A) 








tWJ <X> " ; :NEXT J:PRINT 


FE790 


IF A*-"-" THEN RETURN 


01 1110 FOR A-10 TD 30:5OUND [ 




" tE>" :LL-7 


NH 800 


IF A«-"+" THEN A»-STR 




1 , A, IZ, 10! NEXT AtSD 


ii 460 


FOR J"0 TO 4!TX-9-2«J 




*(INT(RND( 1 ) «a+l) ) 




UND 1 ,0,0,0! RETURN 




:TY-1+J«4:R»-" C-> " 


NAe0S 


IF fl«<"l" OR A«>"B" T 


KE 1 120 RETURN 


BE 470 


FOR K-1 TO 2:CX-TX!CY 




HEN 780 


18 1130 FDR A-40 TD 20 STEP 



46 COMPima March 1986 



-1:9QUND 1, A, 12, 10:N 

EXT AtSOUND 1,0,0,0: 

RETURN 
I1C1140 SOUND 2, 100,4, 15: EV- 

IHsRETURN 
A«1150 SOUND 1,121,10,10:80 

UND 3,81, 10, 10 
KI 1 1&0 RETURN 
IIK1170 REM CHAR COMMAND 
CP11B0 PDSITraN CX,CY:PRINT 
M»J : RETURN 

Program 4. Apple II 
Switchbox 

Version by Tim Victor, Editorial 
Programmer 

(D 100 DIM SW(4,7,1) ,SP*<1),LB(3 
2,4) ,AR»(1),PT(4, 16>,SC(1 
,B) 

U 110 SP«(0> = "-/A) ■':SP*(1) = " 
) I " + CHR» <34) :AR*(0) = 
"< — ■':AR»(1> = " — >":QR = 



1 



1 TO 4: BEAD FT £ J 



03 120 FOR J 

,0) 
iC 130 FOR K = 1 TO 8: READ L:PT 

(J,K + 8) - LtPT(J,9 - K) 

- L: NEXT K,J 

B4 140 DATA 10,2,2,2,2,2,2,2,2 
(IE 150 DATA 40,1,2,3,5,8,13,21,3 

4 
B5 160 DATA 20,2,3,4,5,6,7,8,9 
iE 170 DATA 90,1,4,9,16,25,36,49 

,64 
li 180 HOME : FLASH ; PRINT "REft 

DING DATA STATEMENTS- ONE 
MOMENT": NORMAL 
7! 190 IF PEEK (76B) < > 169 THE 

N POKE 230,64: BOSUB 970 
a 195 IF PEEK (190*256) = 76 TH 

EN PRINT CHR» (4) "PR#A«3 

SC": GOTO 210 
iC 200 POKE 54,92: POKE 55,3: CA 

LL 1002s POKE 6,0 
£1 210 TEXT ! HOME : INPUT "PLAY 

ER 1: ■';?!*: INPUT "PLAYE 

R 2: ";P2» 
!2 220 PRINT "IS THIS CORRECT?": 
GET fl*!A = ASC (A«) : IF 

A < > 89 AND A < > 121 TH 

EN 210 
E6 230 POKE 7,13B: BDSUB 350: GO 

SUB 530 
08 240 FDR RR = 1 TO 4: POKE 7,1 

38! VTAB RR + 1: HTAB 8: 

PRINT "+";: HTAB 30! PRIN 

T "+"; 
5B 250 BDSUB 490 
2D 260 POKE 7,141:QR = 1 - QRJ V 

TAB 1: HTAB 28 - QR » 2l! 
PRINT " ";PT(RR,0) ; " ";: 
POKE 7,138: HTAB 8 + QR 

« 20: PRINT AR*(QR) 
It 270 BOSUB 630: IF SC(1 - DR,R 

R) > = PT(RR,0) THEN 290 
2! 2B0 GOTO 260 
49 290 POKE 7,141: FOR J = TO 

1; FOR K * 5 TO B:SCCJ,K) 

- 0! NEXT K,J 

56 300 FOR J = TD 1: FOR K = 1 
TO 4:eL = PT(K,0):AC - S 
C(J,K):SC(J,5) = SC{J,5) 
+ AC!SC<J,6) = SC(J,6) + 
(AC > = QL) t BL:SC(J,7) 
= SC(J,7) + (SC(J,K> - SC 
(1 - J,K) ) : NEXT K, J 
IE 310 FDR J = TO 1: FOR K = 6 
TO 7:SC(J,K) = SC(J,Ki + 
SC(J,5) : NEXT K, J 
4S 320 FOR J = TO 1: FDR K = 5 
TO 7:SC(J,B) = SC(J,B> + 



4A 330 



C( 340 

« 341 

M 345 

54 346 

15 347 
C3 348 
Ei 350 
CE 360 

8S 370 



3 + K: VTAB 
PRINT Y»: N 



15: HTAB 16 
SAME OVER" 
HTAB 15: PRINT " 



3C(J,K): NEXT K,J 
FDR J = TO 1: FDR K - 5 

TO 8!Y« - STR« (3C(J,K)) 
:L - LEN (Y») :TX = 6 + J 
» 31 - L:TY = 

TY; HTAB TX: 
EXT K,J 
NEXT RR: VTAB 
: PRINT 
VTAB 17: 
PLAY AGAIN?" 
BET B»: IF B« 
45 
IF B» + "N" THEN ; HOME 

STOP 
IF G» = "Y" THEN RUN 
GOTO 345 
HOME : H6R2 
FOR 1 = TO 5: FOR J = 

TD 1 
HTAB 11 - I t 2; VTAB I 

4 + J + 2; PRINT "«■';: 



THEN 3 







TAB 27+1 
: NEXT 



« 2: PRINT "«" 



2C 380 
B4 390 



NEXT 
HTAB 10 



FOR I 
I * 



= TO 4 
2! VTAB I t 
(33) ; 



4+4: PRINT CHR» 

CHR* C34); 
" 400 HTAB 27 + I t 2: PRINT CH 

R* (37); CHR* (38)5 
BS 410 HTAB 9 - I t 2: VTAB I « 

4+5! PRINT CHR» (35); C 

HR« (36) ; 
E6 420 HTAB 2B + I t Z: PRINT CH 

R» (39) ; CHR* (40) 
12 430 NEXT 

1' 440 HCOLDRis 5: FOR I = TO 6 
87 



I « 14 TO 
» 14 STEP 2S 

28: VE •= VS 
B THEN VS - 



311 


460 


22 


470 


Dl 


480 


CB 


490 



: FOR HP 

171 + I 
7E 450 VS = I « 32 
+ 50: IF VS 

8 
IF VE > 182 THEN VE =• 182 
HPLOT HP.VS TO HP.VE: NEX 
T 

NEXT ! RETURN 
POKE 7,141: FOR J = 1 TO 
I6sK = PT(RR,J):JJ » 2 + 
J « 2 
41! 500 IF K > 9 THEN L = INT (K 
/ 10)!L« - STR* (L): GOTO 

S20 

3E 510 L* = " " 

58 520 VTAB 23: HTAB J J: PRINT L 

*: HTAB JJ: PRINT RIGHT* 
( STR* (K),!);: NEXT Ji R 

ETURN 
n 530 FOR J = TO 4:SY = 5 + J 
* 4: FOR K = TD J + 3: 

SX"12-J«2+K*4 
at 540 WP = INT ( RND (1) » 2) 
15 550 SW(J,K,0) = WP:SW(J,K,1) 

=> 0: BOSUB 620 
31 560 NEXT K,J 
«2 570 POKE 7, 141 
BB 580 VTAB 1: HTAB 12: 

1 TD 8: PRINT Jj 

T 
l( 590 VTAB 1: HTAB 3 - 

1«) = 5): PRINT Pl»; 
fD 600 HTAB 34 - ( LEN (P2«) = 

) : PRINT P2«; 
IB 610 RETURN 
27 620 VTAB SY: HTAB SX: PRINT 

P*(WP): RETURN 
CB 630 FOR J = TO 32!LB(J,0) 

0: NEXT :NB - 1 
4B 640 GET A»: IF A* 

RETURN 
Ff 650 IF A* = "+" THEN A* 

< ( INT ( RND (1) « 



FDR J = 
" " J : NEX 



( LEN (P 



THEN 



STR 

a + 1 



)) 

2F 660 A = 



VAL (A»! : IF A < 1 OR 



a 


6B0 


a 


690 


2C 


700 


1* 


710 


F3 


720 



A > B THEN 640 
F7 670 LB (0,0) - 1: FDR J - 1 TO 
3:LB(0,J) - 0: NEXT !LB( 

0,4) - 10 + A * 2 

EX = 1 

FOR J = TD 32: IF LB (J, 

0) THEN EX - 0: BOSUB 720 

NEXT S IF EX - THEN 680 

RETURN 

DY - LB(J,0)iDX = LB(J,1) 

:LY " LB (J, 2)! NY " LB (J, 3 

):NX = LB<J,4) : IF (LY + 

NY) THEN BOSUB 1060 
91 730 LB (J, 3) = NY + 1 - (NY = 

3) » 4: ON NY + 1 GOTO 74 

0,760,790,800 
El 740 IF LY > 4 THEN LB(J,0) = 

0: GOTO S40 
Ih 750 BDSUB 10B0: ON INT ( RND 

(1) t 3 + n 30T0 880,890 

,900 
E4 760 VX = 0: GOSUB 830: IF SM( 

MY,WX,1) AND (3W(WY,MX,0> 
- SD) THEN VX - 1 - 2 * 

SDsLB(J,l) » VX:LB(J,3) - 
NY + 1:BX - NX + VX!LB(J 

,4) - BX:BY = NY + LY t 4 
+ 3: 6DSUB 1090: GOTO 93 


7D 770 IF SW(WY,WX,0) = SD THEN 

LB<J,0) c= 0:SW(WY,MX,1) « 
1: GOSUB 1080: GOTO 920 
Fl 780 LB (J, 3) = NY + Is GOSUB 1 

080: ON INT ( RND (1) « 3 
+ 1) GOTO 860,890,900 

44 790 LB{J,1) = 0:BX = NX + DXt 

LB (J, 4) - BX:BY - NY + LY 
* 4 + 3: GOSUB 1070: BDT 

940 

84 B00 LB (J, 2) " LY + 1: BDSUB 1 
080: BOSUB a30:3W(UY, UX,0 
) - 1 - BW(WY,WX,0) 

a 610 IF SM(UY,MX,I) THEN LB(NB 
,0> » l!LB(NB,l) - 0!LBCN 
B,2) = LY:LB(NB,3) - 0i LB 
(NB,4) - NX + 2 - 3D « 4s 
NB » NB + l!SW(WY,WX,I) = 
0:BX - NX + 2 - SD t 4sB 

Y = NY + LY » 4 + 1: BOSU 
B 1070! BDSUB 950 

E9 820 SX = 12 - WY « 2 + WX t 4 
:3Y » 5 + WY t 4:WP " 9W( 
MY,WX,0): 80SU8 620: BOTO 
930 

5D 830 WY = LY!JX = (NX / 2) + L 

Y - 6:WX =. INT (JX / 2):S 
D - JX - INT (JX / 2) * 2 
! RETURN 

El B40 POKE 7,141:SF = PT{RR,NX 

/ 2 - 1) 
B* 850 SG = SC(QR,RR) + SF 

4F 860 TX = 6 + 31 « QR - LEN ( 

STR* (SB)) 
DC B70 VTAB RR + 1: HTAB TX : PR I 

NT SB:3C(QR,RR) - SB: POK 

E 7, 138: BOTO 960 
15 880 POKE 776,80: GOTO 910 

45 890 POKE 776, 160: BOTO 910 
21 900 POKE 776,201: GOTO 910 

69 910 POKE 781,200: POKE B41,l: 
POKE 849,196: POKE 798,9 

6: CALL 768: RETURN 
44 920 POKE 776,208: POKE 781,22 

0! POKE 841,5: POKE 849,4 

: POKE 798, 97i CALL 766: 

RETURN 
«3 930 POKE 776,232: POKE 781,25 

5: POKE 841,0! POKE 849,0 

1 POKE 798,240: CALL 768! 
RETURN 

Fft 940 POKE 776,216: POKE 781,24 
0: POKE B41,4! POKE 849,4 
: POKE 79B,240: CALL 7688 



March 1986 COMPUTil 47 



RETUFIN 
fB 930 POKE 776,160: POKE 7B1,16 

0; POKE 841,1: POKE B49,9 

6: POKE 798,240: CALL 768 

! RETURN 
ES 960 POKE 776,160! POKE 781,22 

0: POKE 841,6: POKE 849,6 

! POKE 798,97: CALL 768: 

RETURN 
a 970 FOR I = 768 TO 947: READ 

A: POKE I, ft: NEXT 
SF 9B0 FOR I = 24576 TD 24B31: P 

OKE I, 128: NEXT 
7B 990 FOR I = 24832 TD 250B7 ST 

EP 4: POKE 1,128: POKE I 

+ 1, 136; POKE 1 + 2, 170: 

POKE I + 3, 136: NEXT 
if 1000 FOR I '- 35328 TO 35439: 

READ A: POKE I, A: NEXT 
51 1010 FOR I = 35552 TO 35559: 

READ A I POKE I, A: NEXT 
F5 1020 FOR I = 35568 TO 35575: 

READ A! POKE I, As NEXT 
CI 1030 FOR r = 35704 TO 35711: 

READ Al POKE I , A: NEXT 
12 1040 FOR I = 36200 TD 36311: 

READ A: POKE I , As NEXT 
01 1030 FOR I = 36360 TD 36599: 

READ A: POKE I,Al NEXT i 
RETURN 
14 1060 BY = NY + LY « 4 + 28BX 

= NX 
II 1070 VTAB BY: HTAB BX: PRINT 

" "s RETURN 
C! 10B0 BX = NX:BY = NY + LY » 4 

+ 3 
FB 1090 VTAB BY: HTAB BX: PRINT 

"D"; RETURN 
BF 1100 DATA 169,1,141,88,3,160, 

0, 169 
58 1110 DATA 160,141,49,3,169,25 

5,141,39 
SB 1120 DATA 3,173,59,3,141,90,3 

,78 
5S 1130 DATA 88,3,144,12,185,0,1 

45,200 
M 1140 DATA 141,89,3,169,128,14 

1,88,3 
FC 1150 DATA 78,89,3,144,3,173,4 

8, 192 
\1 1160 DATA 162,0,232,208,253,1 

44,3, 173 
H 1170 DATA 48,192,162,139,232, 

208,233,238 
25 1180 DATA 90,3,208,211,24,173 

,59,3 
flC 1190 DATA 233,3,141,59,3,173, 

49,3 
31 1200 DATA 105,3,141,49,3,144, 

186,96 
iC 1210 DATA 8,5,0,255,216,120,1 

33,69 
2! 1220 DATA 134,70,132,71,166,7 

, 10, 10 
»1 1230 DATA 176,4,16,62,48,4,16 

.1 
44 1240 DATA 232,232,10,134,27,2 

4,101,6 
51 1230 DATA 133,26,144,2,230,27 

, 163,40 
F2 1260 DATA 133,8,165,41,41,3,5 

,230 
CC 1270 DATA 133,9,162,8,160,0,1 

77,26 
« 1280 DATA 36,50,48,2,73,127,1 

64,36 
il 1290 DATA 145,8,230,26,208,2, 

230,27 
B7 1300 DATA 165,9,24,105,4,133, 

9,202 
5B 1310 DATA 208,226,165,69,166, 

70,164,71 
i4 1320 DATA 88,76,240,253 
5C 1330 DATA 0,0,0,0,0,0,0,0 



II 1340 DATA 0,64,96,112,120,124 

,126, 127 
El 1350 DATA 127,63,31,15,7,3,1, 


E3 1360 DATA 64,96,112,120,124,1 

26,127, 127 
7D 1370 DATA 63,31,15,7,3,1,0,0 
!F 1380 DATA 127,126,124,120,112 

,96,64,0 
S9 1390 DATA 0,1,3,7,15,31,63,12 

7 
81 1400 DATA 126,124,120,112,96, 

64,0,0 
« 1410 DATA 1,3,7,15,31,63,127, 

127 
AB 1420 DATA 0,0,0,0,0,0,0,127 
n 1430 DATA 127,127,127,127,127 

,127,127,127 
EE 1440 DATA 0,0,28,62,127,62,28 

,0 
44 1450 DATA 
7C 1460 DATA 
7C 1470 DATA 

,B 
IB 1480 DATA 

24,0 
« 1490 DATA 0, 


II 1500 DATA 
FF 1510 DATA 
Fl 1320 DATA 

9t 1530 DATA 

2,60,0 
£? 1540 DATA 

,t> 
B4 1550 DATA 

126,0 
2? 1560 DATA 

60,0 
B2 1570 DATA 

8,0 
3B 1580 DATA 

0,0 
El 1590 DATA 

0,0 
Ai 1600 DATA 

2,0 
B5 1610 DATA 

,60,0 
IF 1620 DATA 

,24,0 
U 1630 DATA 

24,0 
At 1640 DATA 

02,102,1 
SD 1630 DATA 

,126,0 
i? 1660 DATA 

,0 
CB 1670 DATA 

2,62,0 
IC 1680 DATA 


4B 1690 DATA 
Fl 1700 DATA 

62,0 
73 1710 DATA 

02, 102,0 
CC 1720 DATA 

,0 
77 1730 DATA 

0,0 
44 1740 DATA 

, 102,0 
Ml 1750 DATA 
87 1760 DATA 

02, 102, 
ID 1770 DATA 

2,102,0 
41 1780 DATA 

2,60,0 
?l 1790 DATA 
,0 



0, 0, 0,0, 0,0,0 
0,0, 127, 127,0,0,0 
12,6, 127,127,6,12 

24,48,127,127,48, 

0,28,62,62,62,28, 

0,0,0,14,0,0,0 
0,0,14,0, 14,0,0 
60, 102,48,24,0,24 

60, 102,118,110,10 
24,28,24,24,24,60 

60,102,48,12,102, 

60,102,48,96, 102, 

48,56,52,126,48,4 

126,6,62,96,102,6 

60,6,62, 102, 102,6 

126,96,48,24, 12,1 

60,102,60,102,102 

60, 102, 102, 124,48 

24,48, 126, 126,48, 

124, 102, 102, 126,1 

62, 102,102,62, 102 

60, 102,6,6,102,62 

62,102,102,102, 10 

126,6,6,62,6, 126, 

126,6,6,62,6,6,0 
60, 102,6, Ua, 102, 

102, 102,102, 126,1 

24,24,24,24,24,24 

96,96,96,96,102,6 

102, 102,54,30, 102 







6,6,6,6,6,126,0 
102, 126, 102, 102, 1 

62, 102, 102,102, 10 

60, 102, 102,102, 10 

62, 102,102,62,6,6 



K 1800 DATA 0,60,102,102,102,54 

,108,0 
41 1810 DATA 0,62,102,102,62,102 

,102,0 

11 1820 DATA 0,60,102,12,48,102, 

62,0 
71 1830 DATA 0,126,24,24,24,24,2 

4,0 
FD 1840 DATA 0,102,102,102,102,1 

02,62,0 

12 1850 DATA 0,102,102,102,102,1 

02,24,0 
114 1860 DATA 0,102,102,102,102,1 

26, 102,0 
U 1870 DATA 0,102,102,102,60,10 

2, 102,0 
Bf 1880 DATA 0,102,102,102,60,24 

,24,0 
E£ 1890 DATA 0,126,48.24,12,6,12 

6,0 
5C 1900 DATA 0,0,0,0,0,0,0,0 
il 1910 DATA 0,0,0,0,0,0,0,0 
44 1920 DATA 0,0,0,0,0,0,0,0 
4« 1930 DATA 0,0,24,60,60,24,0,0 




Machine language creates the custom 
graphics in the Apple U version of 
"Switchbox." 




SI 
1&9 



ll^-w^--/^ ------- _ 

9371; 1-53223456789 



IBM PC/PCjr "Switchbox," a colorful 
tu>o-player game. 

Program 5. IBM PC/PCjr 
Switchbox 

Version by Tim Victor, Editorial 
Programmer 

PB 100 RANDOMIZE TIMER 

LD 110 SCREEN 1,0: CLS 

LO 120 KEY OFF 

SL 130 COLOR 7,0 

Jl 140 DIM B0X(4,7, 1) ,FALLIN6(32 

, 4! , POINTS (4,16), SCORE < 1 , 

8) 
Cfl 150 DIM S(250) ,LEFTSW(35) ,RIG 

HTSW < 35 ) , BALL ( 4 > , UNBALL { 4 

),LARR0W(35),RARR0H(35) 
SL 160 FOR J=l TO 4:READ POINTS! 

J,0) 
CK 170 FDR K=l TO 8: READ L: POINT 

S ( J , K+B> =L: POINTS ( J, 9-K) = 



48 COMPUTEI March 1936 



LsNEXT K,J 
BJ 130 DftTfl 10,2,2,2,2,2,2,2,2 
SP 190 DATA 40,1,2,3,5,8,13,21,3 

4 
01 200 DflTfl 20, 2, 3, 4, 5, i, 7, B, 9 
n 210 DATA B0, 1,4,9, 16,25,36,49 

,64 
>S 220 LOCATE l,l! INPUT "Player 

Is "jPl«iPl»"LEFT»(Pl»,5) 
D8 230 INPUT "Player 2: ";P2«:P2 

»=LEFT»{P2S,5) 
ICK 240 PRINT Pl»;" vs ";P2»:PRIN 

T "I» this correct? Cy/n) 

PP 250 YN»-INKEY«: IF YN*-"" THEN 

2S0 
OS 260 IF YN«="n" OR YN»"»"N" THE 

N 220 
PJ 270 RDUND=4 

H 280 CLS:GOSUB 970:003118 700 
EB 290 CLS:QOSUB 1030:GOSUB 540 
KP 300 PLAYER-" 1: PUT (225,1),RARR 

OWiFOR ROUND- 1 TD 4:S0SUB 
300 
PS 310 FOR 1-0 TO 1: CIRCLE (53+2 

S6«I, ie+RDUNDte>,2 
DL 320 PAINT (53+25611 , IB+ROUND* 

a>,3;NEXT 
U 330 PLAYER>=1 -PLAYER: LOCATE 1, 

9+PLAYERI21: PRINT SPACE* ( 

2) 
DA 340 PUT ( 60 , 1 ) , LARRQW t PUT ( 225 

, 1 ) , RARROW 
H 330 LOCATE 1 , 30-PLAYER«21 : PRI 

NT RIQHT«<STR»(PDINT3(R0U 

ND,0)) ,2) 
OE 360 BOSUB 1210: IF SCORE il-PLA 

YER , ROUND )< PD I NTS ( ROUND , 

) THEN 330 

FDR J-0 TO 1:FDR K-S TO 8 

SCORE CJ,K)-0: NEXT K,J 

FOR J-0 TO 1:FDR K-1 TO 4 

: BONUS-PO INTS(K,0)iAMT-3C 

ORE(J,K) 

SCORE ( J , 5 > -SCORE ( J , 5 ) + AMT 

:SCORe < J, 6) -SCORE < J, 6) -BQ 

NUS»(AMT>-BONUS) 

SCORE {J , 7) ^SCORE ( J , 7) +SCO 

RE(J,K) -SCORE! 1-J,K) : NEXT 
K,J 

FOR J-0 TO 1:FDR K-6 TO 7 

t SCORE (J , K) -SCORE (J , K) +SC 

0Re(J,5)iNEXT K,J 

FOR J-0 TO 1:FDR K=5 TO 7 

: SCORE t J , 8) -SCORE (J , B) +SC 

DRE(J,K);NEXT K,J 

FOR J-0 TO 1:F0R K=5 TD B 

i3C0RE*-9TR«(SC0RE(J,K) ) 

LOCATE K+6,1+Jt 34s PRINT S 

PACE* (3) 

LOCATE K+6,5-LEN (SCORE* )+ 

J*34: PRINT SCORE*; NEXT K, 

J 

NEXT ROUND : LOCATE 1 1 , 1 2 : P 

RINT "Pl«y aqaln? (Y/N^ " 

K*-INKEY*: IF K*="n" OR K« 

-"N" THEN CLSs END! ELSE IF 
K«-"y" OR K*-"Y" THEN RU 

NsELSE SOTO 480 
00 500 FOR J-1 TD 16:K=POINT3(RO 

UND, J):JJ-3+Jt2 
IF 510 LOCATE 24,JJ:IF K>9 THEN 

PRINT MID»(STR»tK) ,2, 1) ! 

ELSE PRINT " "! 
6K 520 LOCATE 25, JJs PRINT RIGHT* 

(3TR«(K),l)t!NEXT 
«F 530 RETURN 

SI 540 LINE (4,11)-(54,65),2,0F 
m 550 LINE (9,6)-(59,60),0,BF 
IE 560 LINE t9,6)-(59,60),l,B 
Bft 370 LINE (10, lB)-<5a,18),l 
EF 530 GET (4,6) - (59,65) ,SsPUT ( 

262,6) ,3,PSET 
NL 590 LOCATE 2, 5-LEN (Pl») /2: PRI 



KO 


370 


S\ 


380 


K 


390 


HF 


400 


HL 


410 


AD 


420 


JA 


430 


EK 


440 


HA 


450 


Hn 


460 


KS 


470 


PD 


4B0 



OP 


600 


FD 


610 


KC 


620 


£H 


630 



AC 640 



nc 


650 


JA 


660 


91 


670 


[0 


6B0 


NC 


690 


pp 


700 


BP 


710 


BD 


720 


NG 


730 


LF 


740 


10 


750 


HD 


760 


NB 


770 


BO 


730 


HF 


790 


LE 


800 


NL 


810 


65 


820 


OC 


B30 


OP 


B40 


NP 


850 


PI 


S60 


FB 


870 


HL 


880 


BB 


B90 


LJ 


900 


HD 


910 



EH 920 



IL 


930 


EP 


940 


NN 


950 


KH 


960 



NT PI* 

LOCATE 2,37-LEN{P2»)/2:PR 

INT P2* 

FOR J=l TD B:LOCATE 1,J»2 

+108 PRINT JsNEXT 

FDR SWITCHY=0 TO 4 

FOR SWITCHX-0 TD SWITCHY+ 

3 

WP=INTCRND(1)«2) iBOXtSWIT 

CHY, 3WITCHX , 0) -WP: BOX (SWI 

TCHY,SWITCHX,l>-0 

G05UB 670 

NEXT SWITCHX,SWITCHY:RETU 

RN 

SY=24+3WITCHY»32s SX-92-SW 

I TCHY* 1 6+9W I TCHX «32 

IF WP=0 THEN PUT (SX,SY), 

LEFTSW.PSET ELSE PUT (SX, 

3Y),RIBHTSW,PSET 

RETURN 

FOR 1=1 TO 10:LINE (1+155 

,52)-(I+lS7,51),2 

LINE (1+189, 20)-!I+191, 19 

) ,2: NEXT 

FOR 1=172 TO ia0:LINE (I, 

12)-(I+10,223 , 1 

LINE (I+1,11)-(I+3,10),2 

LINE {I,44)-(I-10,54),1 

LINE (I+l,43)-(l+3,42),2t 

NEXT 

LINE (iB6,21)-(200,22),l, 

BF 

LINE ( 166, 53) -{154, 54), 1, 

BF 

GET (172, 6)-(202,22), LEFT 

SM 

GET (154,3a)-(lB4,54),R:G 

HTSW 

ARC-3. 14159/2 

FOR 1=1 TD 2: CIRCLE (30,8 

) ,It4,3,ARC,ARC»2 

CIRCLE (68,6),I»4,3,ARC«3 

,ARCt4 

CIRCLE {231,B),I«4,3,0,AR 

C 

CIRCLE (243,6), 1*4, 3, ARC* 

2,ARC*3:NEXT 

LINE (30, 1)-(BB,4),3,BF 

LINE (231,n-(223,4>,3,BF 

LINE (61,9)-(67, 13),3,BF 

LINE (250,9)-(244,13),3,B 

F 

PAINT (74, 7), 3 

PAINT (237, 7), 3 

FDR 1=5 TO 17:LINE (53,11 

)-(64, I) ,3 

LINE (253, 11)-(247,I),3:N 

EXT 

GET (58,l)-(eS, 17),LARR0W 

GET (223, l)-(253, 17) ,RflRR 

OM 

RETURN 

' DRAW SWITCHBOX 



IN 970 CIRCLE ( 100, 100) , 3, 3 

BE 980 PAINT (100, 100), 3 

NE 990 SET (97, 97) - ( 103, 103) , BAL 

L 
AH 1000 PUT (97, 97), BALL, PRESET 
HL 1010 GET (97, 97) -(103, 103), UN 

BALL 
IB 1020 RETURN 
SB 1030 LINE (a0,24)-(87,39) ,1,B 

F 
K 1040 LINE (224, 24) -(231, 39), 1 

,BF 
m 1050 FOR 1=0 TD 7: LINE (81+1, 

23)- (96+1, B) ,1 
PH 1060 LINE (208+1, 8) -(223+1, 23 

>,l!NEXT 
PD 1070 GET (80, 8) -(103, 39) ,S 
HP 1080 FOR 1-0 TO 3: PUT {64-1*1 

6, I (32+40), Si NEXT 
HK 1090 SET (208, 8) -(231, 39), S 



JE 1100 FDR 1=0 TO 3:PUT <224+I» 

16, 1*32+40), Ss NEXT 
LK 1110 LINE (96,8>-{21S,15),0,B 

F 
DL il20 LINE (16, 168) -(23,183), 1 

.BF 
KI 1130 LINE (2BB, 168>-(295, 1B3) 

,1,BF 
H6 1140 FDR I-O TO 7:HNE (16+1, 

184) -(29, 197-1 ),1 
KK 1150 LINE (288+1, 1B4) -(282, 19 

0+1) ,1:NEXT 
BF 1160 FOR 1=0 TD 6: FOR HP=123- 

I«16 TO 1B7+I»16 STEP 32 
HF 1170 VS-H32-32: VE=VS+64: IF V 

S<8 THEN V3-3 
HE 1180 IF VEM86 THEN VE=1B6 
DK 1190 LINE (HP,VS)-(HP,VE),1:N 

EXT: NEXT 
IP 1200 RETURN 
IK 1210 'GAME STUFF 
FD 1220 FOR FBftLL=0 TO 32:FALLIN 

B (FBALL , 0) -0: NEXT: NEWBAL 

L=l 
LA 1230 A«="": WHILE A*=" " : A»=INK 

EY«:WEND 
BE 1240 IF A*""-" THEN RETURN 
n 1250 IF A*-"+" THEN A»=CHR* (I 

NT(RND<l)«8+49)) 
EI 1260 A=VAL{A*):IF A< 1 OR A>a 

THEN 1230 
HK 1270 FALLING (0,0)=1: FOR J-1 T 

3s FALLING (0, J )"as NEXT 
BE 1280 FALLING t0, 4) -10+A*2 
BL 1290 EXIT-0SWHILE EXIT-0SEXIT 

-1 
OH 1300 FDR FBALL=0 TO 32; IF FAL 

LINB (FBALL, 0)-i THEN EXI 

T-0SQOSUB 1320 
AA 1310 NEXT: WEND: RETURN 
FH 1320 DY-FALLING (FBALL, 0):DX=F 

ALLINB(FBALL, 1) ! LEVEL-FA 

LLING{FBALL,2) 
HA 1330 NY-FALLING (FBALL, 3) I NX-F 

ALLINS(FBALL,4) 
IH 1340 IF LEVELO0 OR NYO0 THE 

N GOSUB 1570 
AB 1350 NY-NY+1: FALLING (FBALL, 3) 

-NY AND 3; ON NY GOTO 136 

0, 1380,1420,1430 
FH 1360 IF LEVEL=5 THEN FALLING ( 

FBALL, 0)-0s GOTO 1500 
m 1370 BOSUB 1560! ON INT(RND(1) 

«3+l) BOTO 1SS0, 1590, 160 


etc 1380 VX=0: GOSUB 1540 
LC 1390 IF BOX(SWITCHY,SWITCHX, 1 

)-l AND BOX ( SWI TCHY, SW IT 

CHX,0)-SIDE THEN VX-1-2* 

SIDE: FALUNS (FBALL, 1 ) -VX 

: NX-NX+VX: FALLING (FBALL, 

4) -NX: BOSUB 1560: GOTO 16 

10 
OH 1400 GOSUB 1560: IF BOX (SWITCH 

Y,SWITCHX,0)-SIDE THEN F 

ALLINB (FBALL, ) -0: BOX (SW 

ITCHY, SWITCHX , 1 ) -1 ! GOTO 

1620 
PA 1410 ON INT(RND(1)«3+1) SOTO 

1SB0, 1590, 1600 
IB 1420 FALLING (FBALL, l)-0! NX-NX 

+DX! FALLING (FBALL, 4) -NX: 

GOSUB 1360: BOTO 1630 
PE 1430 FALLING (FBALL, 2) -LEVEL+1 

sQOSUB 1S60 
CL 1440 GOSUB 1340:BDX (SWI TCHY, S 

WITCHX , 0) -l-BQX (SWITCHY, 

SWITCHX, 0) 
DB 1450 IF BOX (SWITCHY, SWITCHX, 1 

)-0 THEN 1490 
01 1460 FALLING (NEWBALL,0) -Is FAL 

LINB (NEWBALL. 1 ) -01 FALLIN 

B (NEWBALL, 2) -LEVEL 
8L 1470 FALLING (NEWBALL, 3) =0: FAL 



March 1986 COMPUTBI 49 



HD 


1400 


00 


I490 


PD 


1S00 


M 


1510 


no 


1520 


AC 


1530 


Ln 


1540 


IL 


1550 


CO 


1560 


OE 


1570 


QO 


15B0 


KL 


1590 



cn i£i00 



DD 


1610 


IK 


1620 


GA 


1630 


F6 


1640 


U 


1650 



KI 1660 



LINB (NEWBftLL, 4 ) -NX+2-SID 
Et4 

BOX(SWITCHY,SWITCHX,l)-0 
t NEMBALL-NENBALL-fl ! QOSUB 

1640 
WP-BOX (SWITCHY, SWITCHX , 
)lGQSUB 670: SOTO 1630 
AMT-POINTS (ROUND, NX/2-1 ) 
I 3UBT0T-SC0RE (PLAYER, ROU 
ND)+flMT 
SUB«=STR» (SUBTOT) : LOCATE 

ROUND+3 , 7-LEN ( SUB« > +PLA 
YERt 32: PRINT BUB* 
SCORE (PLAYER, ROUND) -SUBT 
DT 

GOTO 1650 

SW I TCHY=LEVEL ! J X"NX /2+LE 
VEL-6 

SWITCHX=INT ( JX/2> ! SIDE=J 
X-INT(JX/2)»2! RETURN 
PUT <NX«8,e+LEVEL«32+NYt 
8), BALL, OR: RETURN 
PUT (NX*B,a+LEVEL»32+NY» 
B) , UNBALL, AND! RETURN 
FDR 1=0 TO 1: SOUND 8B0, 1 
; SOUND 32767, 1 : NEXT: RETU 
RN 

FOR 1^0 TO 1: SOUND 660,1 
: SOUND 32767, Is NEXT: RETU 
RN 

FOR 1-0 TO 1: SOUND 440,1 
! SOUND 32767,1: NEXT: RETU 
RN 

FOR 1=1 TO 6: SOUND 1100t 
RND ( 1 ) +37, 1 : NEXT: RETURN 
FOR 1=300 TO 200 STEP -2 
0: SOUND I,. Is NEXT: RETURN 
FOR 1=1 TO 6: SOUND 550tR 
ND ( 1 ) +37 , 1 1 NEXT: RETURN 
FOR 1=0 TO I: FOR J=440 T 

BB0 STEP S0: SOUND J,. 5 

1 NEXT J, I: RETURN 

FOR 1=0 TO 5: SOUND 330,. 
3: SOUND 440,. Ss SOUND 550 
,. Si NEXT 
SOUND 32767, 1: RETURN 



Program 6. Amiga 
Switchbox 

Version by Philip 1. Nelson, 
Assistant Editor 

'Switohbox for S12K Amlga- 
'3et Preferences for 80 columns'- 

Restart:*- 

CLBAR:Q08TIB Setup- 
Mai n.:- 

FOR Hound =1 TO 4- 
PUT C80,'(' + Round'8).Ball- 
PUT (BlB,7 + Round'8),Ball- 
QOSUB Values- 

SAY TRAKSLATE*(Intro*CRounii))- 
Keepgolng;- 

WlLO=l~Wlio 'alternate players- 
GOSUB Taketurn- 

IP SC(l-Wlio,Hound)=>PoliitsCRound 
,B) THEN ITextround- 
GOTO Keepgoing- 

Nextround:- 

FOR J = TO 1;F0R k=S TO 8- 

SCQ ,k) = 0:1IEXT :NEXT- 

FORJ=0 TO l:FORk=l TO 4- 

gx==PointsCk,0):a(;=aCG,k)'- 

8C(3,B) = SCa,6) + ao- 

SCa,6) = SCa,6) - (ao = >gx)*gx- 

Sca.T) = SCa.T) + aca.k) - SC(1 - j,k)- 

NEXT:]!raXT- 



FOR J = TO 1:F0R k = e TO 7- 

8C0,X) = SCa,k) + 8Ca,5)- 

KEXT;lSfBXT- 

FORj = 0TO l;FORk=B TO 7- 

SCa,8) = SCa,8) + SCa,k)- 

iJEXT:JrEXT-- 

FORJ-0TO 1- 

FOR k = B TO 8:yS = STR$(SCC],k))- 

x = LBNCy$):tx = e+J*64-x;ty = 4 + k- 

LOCATE ty,tx-l:PRraT SPACE*(2)- 

LOCATE ty,tx:PHINT yS- 

KEXT;irEXT- 

NEXT Round- 

Goh.oiner'- 

UffifE (240,70)-(362,100),2,bf- 

LOCATE 11,3S:PRIHT " Play again? "- 

texts =WlioS(ABSCSC(l,8)>SC(0,e)))- 

text$=textt+" wins this game.."- 

textt = text* +" How atout another?"- 

SAY TRANSLATE$(textS),Volce%- 

FOR j = TO 10:x8 = INKEY$:NBXT- 

Again :- 

xi = mKEYi:XE x* = "" THEN Again- 

SAY TRANSLATE$("OK."),Voice%- 

IF x« = "y" OR x«="Y" THEN WINDO 

W CLOSE 2:Q0T0 Restart- 

SAY TRAJTSLATE*{" Bye-bye,"),Voice 

%- 

WINDOW CLOSE a- 

EHD- 

Taketurn:- 

FOR J = TO nb:LB(],0) = 0:NEXT:nb = l- 

BAY TRAN3LATEfeCWlioSCWlio) + CHRt( 

46))- 

PUT (140,B),Larrow:PUT (440,B),Rarro 

w- 

FOR J-0 TO 9:X« = INKEY4:NEXT- 

Getkey:- 

at - INKE Yt :IF a« = " - " THEN RETURIT 

IFa$ = " + " THEN a* =STR$(INTCRND(1) 

•8 + 1))- 

a=VALCa$):IF (a<l) OR (a>8) THEN Get 

key- 

LB(0,0) = 1- 

F0RJ = 1 TO 3:LBC0J) = 0:NEXT- 

LB(0,4) = a+3- 

Moreballa:- 

ex=l:FOH j=0 TO nb- 

IF LBG,0) THEN ex = 0: QOSUB Moveone- 

NEXT:IF ex = THEN Moreballs- 

x = 0:FOR J = 13 TO 7 STEP -3:F0H k = 

X TO 15-x- 

PUT (Coliimn(k),HowC))+l),Blank,AND 

NEXT:x^x+ 1:NEXT:RETUR1I- 

Moveone;- 

(ly = LBa,0):dx = LBa,l):LY=LBa,2)- 
ny=LBa,3):nx=LBa,4)- 
IF ny THEN- 
PUT (ColuinnCnx),Row(ny + (LY*3))+l) 
.Blank.ASTD- 
END IF- 

LBa,3) = (ny+l) MOD 3- 
ON ny+1 GOTO Poa0,Posl,Poa2- 

Poa0:'- 

IF LY>4 THEN LBa,0)=0;QOTO Score- 

vx=0:GO3trB Whlchway- 

IF (SW(wx:,wy,l)) AND (SW(wx,wy,0) = 

sd) THEN- 

vx= 1 -2*ad:LBa,3)=ny+ l:LBa,4)-nx 

+ VX- 

QOTO Putball- 
ENDIF- 



IF SWCwx,wy,0) = sd THEN- 

LBO,0) = - 

S"W(wx,wy,X) = l:ny = ny+l- 

GOTO Putball- 

END LF- 

LB{J,3)=ny+l:Q0T0 Putball- 

POBl:- 

LBO , 1) - 0:LBa ,4) = nx + dx: GOTO Putbal 

1- 

Pcs2:- 

LBQ ,2) = LY + 1 : QOSUB WhioHway- 
SW(wx,wy,0) = l — SW(wx,wy,0) - 
IF SW(wx,wy,l) THEN- 
PUT (ColumnCLBG ,4) + 1 - ed'S), Row(ny 
+ CLY*3))),Blank .AUD- 
LBCnb,0) = 1 :LB(nb, 1) = 0:LB(nb,2) =LY- 
LB(nb,3) = 0:LB(nb,4) = nx+l-sd*S:nb 
= nb+l- 

SW(wx,wy,l) = 0- 
END IF- 

sx = XposCwx, wy) : ay = Ypoe(wx, wy)- 
wp = SW(wx,wy,0)- 
'Always fall tliru to switcli- 

Switch: - 

PUT (sx,By),Swblank, AND- 
ON wp + I GOTO Left.Right- 
Left:- 

PUT (sx,ay),Lswitch,OR:QOTO Bop- 
Right: - 

PUT Csx,sy),Rswltcli,OR- 
Bop:- 

SOUND 100,l,64,Who- 
SOUND 260,1,64,3-Who- 
HETURN- 

Putball:- 

SOUND INT(RND(l)'10)*C30*Lr) + 200,1 

,64,Who- 

PUT (Column(nx),How(ny+CLY*3)+l)) 

,Ball,OH- 

RETURN- 

Whiohway:- 

wx = LY:wy = INT((nx + LY-4)/2):sd=( 

nx + LY) AND liRETUHK- 

Score:- 

3f =Pointa(Round,nx+ l):sg=8C(Who, 

Round) +sf- 

tx-8 + 63'Who + (Sg>9) + (Bg>99) + (8g 

>999)- 

ty = 2 + Round: aS = MID« (STRS(sg) , 2)- 

LOCATE ty,tX:PRINT a*- 

SCCWho.Round) = sg- 

FOH j = 1600 TO 200 STEP -300- 

S0UNDJ,l,64,Who- 

SOUND J+400,1,64,3-Wlio- 

NEXT:RETURN- 

Values:- 
FOHJ = TO 1- 
k = 2 + 70*J:LOCATE lB,k- 
PRINT 8PACEt(3):L0CATE lB,k- 
PRINT RIQHT$(aTR8(PolntB(Round,0)), 
3)- 

ITEXT- 

F0RJ = 1 TO ie:k=PolntB(RoundJ)- 
in=6+j'3.7B- 
IP k>9 THBN- 
x = INT(k/10)- 
x:« = MIDS(8TR*(x),2, 1)- 
ELSE- 

x$ = CHRS(32)- 
END IP- 
LOCATE 22,m:PRXNT x*;- 



60 COMPUTEI March 1 986 



LOCATE 23,in:PHINT HIGHTKSTRSOl),! 

)r 
NBXT:RBTUHEr^ 

Setup :*- 

HAHDOMIZE TIMER- 
DIM Voioe%(6) 
FORJ^OTOe 
HEAD VolC0%a):Ni:XT 
DATA 110,0,150,0,22200,64,10,1,0 
Greet$ = "Hi. Welcome to Switclibox."^ 
PRIETT Greet* 

SAY TRAErSLATE8(Qreet*),Voice%- 
SCREEN 2,640,200,2,8- 
PALETTE 0, 0, 0, - 
PALETTE 1, 1, 1, 1- 
PALETTE 2, 0, .1, .7 - 
PALETTE 3, 1, 1, .13- 
WIBTDOW 2,"SwltGhbox",,0- 
DIM LarrowC30),Harrow(30),Wav%(2S6 
),Leftliunlt(400)- 

DIM Rlghtliuiik(400),Swtilank(100),Rs 
wltoli(200)- 
DIMLswitoli(200),Columii(16),RowC25) 

DIM Blani.(70),Ball(60),Piece(80)- 

DIM SW(8, S, 1),LBC32,4), PoilltB(4, 1 6),SC 

(1,8)- 

FOR J = TO 10:LIN'E (0,6)-(10J),3- 

UEXT- 

LIHE (10,3)-(20,7),3,tif- 

GET (0,0)-(20,10),Larrow- 

PUT (0,0),Larrow- 

FORJ = TO 10- 

LINE (20,B}-(10J),3- 

ETEXT- 

LINE (0,3)-C10,7),3,bf- 

QET (0,0)-(20,10),Rarrow'- 

PUT (0,0),Rarrow«- 

GET (8,2)-(22,9),Blank- 

CIHGLB (15,4),7,1- 

PAINT(ia,4),l- 

GET (e,0)-(2S,9),Ball- 

PUT (8,0),BaU'- 

FOR j = TO 127:Wav%a)=-127- 

Wav%0 + 128) = 127:l]i;XT- 

FOR J = TO 3:WAVi; j,Wav%- 

NEXT- 

DATA 10, "round 1, equal acores."'- 

DATA 2.2,2,2,2,2,2,2- 

DATA 40,"rouiid 2, fibonaclile seequeno 

e."- 

DATA 1,2,3,5.8.13,21,34- 

DATA 20, "round 3. arithmetic seequen 

oe."- 

DATA 2,3,4.6,6,7,8,9- 

DATA 80,"round 4. seequence of square 

s."- 

DATA 1,4,9,16,25,36,49,64- 

FOR j= 1 TO 4: READ Pointsa.B)- 

READ Introta)- 

FOR k = l TO 8:READ x- 

PolntsO,lc+8)=x:PointaO,9-k)=x- 

ITEXT k:NEXTJ- 

a = 21S:b = 2- 

FOHJ = 0TO4- 

a=a-30:b=b+30- 

FORk = 0TOJ + 3- 

XpoaCJ,k)=a+k'60- 

YposO,k)-b- 

NEXT:NEXT- 

k=0- 

FOR J = 70 TO 520 STEP 30- 

ColumnCk) =j- 

k = k+l:NEXT- 

k = 0- 

FOR J=4 TO 154 STEP 10- 

RowCk)=J:k=k+ 1;NEXT- 



Start:- 

SAY TRANSLATE $("PlrBt player's name 

?"),VoiCB%- 

INPUT"Name of Player l";p0t- 

3AY TRAETSLATEiC'Seoond player's na 

me?"),Volce%- 

INPUT"Name of Player 2";pl«- 

Wlio*(0) = LEFTSCp0t,6):VniotCl)=LEF 

T«Cp1«,6)- 

textS = VnioS(0) + " plays " + Who«(l)4-" 

. Is ttiia oorrect"- 

PRINT texts ; 

SAY TRANSLATES(textJ),Voice%- 

INPUT queryS:an8 — LBFTt(query$,l)- 

IF LEN(anS) = OR anS = "y" OR an8 = " 

Y" THEN Draw- 

GOTO Btart- 

Draw;- 

SAY TRANSLATE*("OK.").Voloe%'- 
CLS- 

LOCATE 1,6:PRINT Wlio«(0)- 
LOCATE 1.66:PRINT WiioS(l)- 
x=4:F0R j=0 TO 1 'score boxes- 
LINE Cx,12)-Cx+110,60),2,bf'ahadow- 
LINE (x + 6,10)-(x+120,68),3,bf'outli 
ne- 

LINE (i+16,14)-(x+110,48),0,bf'insl 
de- 

x = x+480:NEXT - 
x = l:FOR j = 24 TO 50 STEP 3.7- 
LOCATE 2 j:PRINT x- 
x-x + l:NEXT- 
LINE (180,0) -(182.40)„bf- 
GET (lB0,0)-(182,40),Plece- 
LINB (180,0)-(420,0)- 
FOR J = S10 TO 420 STEP 60- 
LINE a.0)-a + 2,12)„bf- 
PUT O,40),Pleoe- 
PUT O,100),Plece- 
NEXT- 

FOR J = 180 TO 420 STEP ae*- 
PUT CI,0),Piece,OR- 
PUT a,'i'0),Pieoe- 
PUT C],126),Pieoe- 
NSXT- 

PUT (120,lS6),Piece- 
PUT (lB0,100),Piece- 
PUT (450,100),Plece- 
PUT (460,126).Piece- 
ERASE Piece 'reclaim memory- 
FOR j = 30 TO 570 STEP 30- 
LINE a,15B)-a+2,170).l,M- 
NEXT- 

LINE (176,4) -(186.32),2,bf- 
LINE (416,4) -(426.32).2.bf- 
LIWB (17e.32)-(166,42).2- 
LINE 3TEP(0,0)-STEP(-10,0),g- 
LINE 3TEP(0,0)-STEP(36,-32),2- 
PAINT (17B,31),2- 
LINE (426.32)- (446,42), 2- 
LINE STEP(0,0)-STEP(10.0),2- 
LINE STEP(0,0)-STEP(-36.-32),2- 
PAINT (427.32),2- 
GET (1 36, 12) -(186,69), Lefthunk- 
GBT (416,I2)-(456,62),Righthunk- 
l = 106;r=446:k=42- 
P0RJ = 1 T0 4- 
PUT (l,k),Leftliiink,OR- 
PUT (r,k),Riglitliuiik,OR- 
l=l-30;r=r+30:k=k+30- 
NBXT- 

ERASE Lefth-unk,RightliuELk;- 
LINE (26,ie3)-(36,16B),2,bf- 
UNE (664,163) -(676,16B),a,M- 
GET (24B,32)-(299.40).S'wblank- 
FORJ = 0TO 18- 
LINE (270+j,40)-(260+j,32),3- 



NEXT- 

LINE (245,39) -(280,40),3,bf- 
GET (245,32)-(298.40),Rawitoh- 
PUT (184,32), Swblant.AND- 
FOS j = TO 20- 
LINE (164+J,32)-(193+J,40),3- 
NEXT- 

LINB (193,39)-(236.40),3.bf- 
GET (184.32) -(236,40),Lswitch- 
FOH m = TO 4:P0R n = TO m+3- 
sx=Xpos(m.n);sy=Ypos(m,n)- 
wp = 1KT(R1JD(1)'2)- 
3W(m,n,0)=wp- 
SW(m,n,l)=0- 

Wlio = l-Wlio:GOSUB Swltoll- 
NEXT n:NEXT m- 
PUT (140,6), Larro-w- 
RETURN- 




The Amiga version of "Switchbox" fea- 
tures speech and stereo sound effects. 




, -/' -'/ ~^^ ..X,' ~y/ \\_ 

J ? I- ^ Ml 1|2 



^m 



"Switchbox" for the Atari 520ST 
computer. 

Program 7. Atari 520ST 
Switchbox 

Version by Kevin Mykytyn, Editorial 

Programmer 

10 restoreidim sw(4,7,l),8pS(l),Ib(32,4),ai$( 

l),pt(4,16),sca,8):qr = l 
20 9p$(0) = " \ \_:spS(l)-"_//";aiS(0) = C 

HR$(4) + " ":arS(l)=" "+CHR$(3) 
30 color 1,1,1,1,1 :Q1=-2:Q2=0:FOR J = 

1 fo 4:Tead pt(j,0) 
40 for a = to l:foi b = to 8:sc(a,b)=0:ne 

xtmext 
St) for k = l to 7:read l:pt(j,k+7) = l:pl(j,8- 

k)"=l:next k,j 
60 data 10 
70 data 2,2,2,2,2,2,2 
80 data 40 

90 data 1,2,3,5,8,13,21 
100 data 20 
110 data 2,3,4,5,6,7,8 
120 data 30 
130 data 1,4,9,16,25,36,49 



March 19S6 COMPUTE] 51 



140 fullw 2:clearw 2;gotoxy 0,0;inpiit 'TL 

AYER l";pl$ 
150 input "FLAYER 2";p2$:pl$ = left$(p-iS, 

5):p2S = leftS(p2$,5)T)rlnl pl$;" VS ",-p 

2$ 
160 print 'IS THIS CORRECT7":GK=IN 

P(2):if gkoascCY") and gkoascC'y" 

) then 140 
170 gosub 410:gO9ub 510:color 1,1,1 
180 for rr=l to 4:color 5:goloxy 0,l + rr:pr 

int "*";:gotoxy 28,l+rr:print "*" 
190 gosub 450:rem put scores at bottom 
200 qr = 1 - qr:ty = qr*20:tx = 26 - ty :cx = tx 

:cy = 
210 color 5:inS = rightS(sti$(pt(rr,0)),2):gos 

ub 1110 
220 CX=-6+ty:cy=0;m$ = ar$(qr):go9ub 11 

10 
230 gosub 660;if 9c{l-qr,rr) >= pt(rr,0) th 

en 250:rem end of round 
240 goto 200 
250 for j=0 to l:for k=5 to 8:8C<j,k) = 0;ne 

xt k,j 
260 for j-0 to l:for k=l to 4:gl = pt(k,0):a 

c = 9c(j,k):Bc(j,5) = sc{j,S) + ac 
270 sc(j,6) = sc(j,6) - (ac> ■= gl)'gl:sc(j,7) = sc 

(j,7) + (sc( j,k) - 9c(l - j,k)):next k,j 
280 for j = to l:for k=6 to 7:9c(j,k) = se(j, 

k) + sc(j,5):next k,j 
290 for j = to l:for k=5 to 7:sc(j,8)=sc(j, 

8) + sc(j,k):next k,j 
300 for j = to l:for k=5 to 8:y$ = str${sc(j 

,k)):l=len(y$):tx=.5+j'28-l 
310 ty = 2 + k;cx = tx + (tx<20):cy=ty;m$ = 

y$:color 4:gosub 1110:next k,j 
320 next rr;rein end of main loop 
330 color 1,1/8 

340 gotoxy 9,10:print spc (19) 
350 gotoxy 9,ll:print " PLAY AGAIN? (Y/ 

N)" 
360 gotoxy 9,12:print spc (19) 
370 for a=78 to 231 step 153:linef a,100,a, 

109:next 
380 linef 78,100,231,100:Unef 78,109,231,10 

9 
390 a = inp(2):if a = asc("Y") or a = asc{"y'' 

) then clear:goto 10 else end 
410 dearw 2:color 4,1,6 
420 for i = l to 8:gotoxy 7 + 2*j,0;print j:ne 

xt 
430 for j = 82 to 227 step 18.125;linef j,0,j,l 

90:next 
440 linef 82,9,227,9:return 
450 for j = l to 14;k = pt(rr,j);jj=2 + j*2 
460 if k>9 then l = int(k/10);l$ = mid$(stT$ 

(l),2,l);goto 480 
470 lS = chrS(32) 

480 gotoxy jj,16:print l$;:cx=ji:cy=17 
490 gotoxy jj,17:print rightS(str$(k),l); 
500 next j:return 
510 gosub 580;for j = to 3:sy-4 + j*4:fo 

r k = to j + 3:9X = 12-j'2 + k*4 
520 cx=sx — l:ey = sy — 2:m$ = " ":g08ub 11 

lOiColor 0,0,0,0,0 
530 linef cx'9,cy*9-i-10,cx*9+3,cy*9+10: 

wp = int(rnd(l)*2) 
540 9W(j,k,0)-wp:sw(j,k,]) = 0:gosub 650 
550 next k,j:coIor 11 
560 cx=l:cy = 0:m$=pl$:gosufa 1110 
570 cx=29:cy = 0;m$=p2S:gosub lllOiretu 

rn 
580 linef 82,51,64,69:linef 64,69,64,172 
590 linef 64,87,46,105:linef 46,105,46,172 
600 linef 46,123,28,141:linef 28,141,28,172 
610 linef 228,51,246,69;linef 246,69,246,172 
620 linef 246,87,264,105:Unef 264,105,264,1 

72 
630 linef 264,123,282,141:linef 282,141,282, 



172 
640 return 

650 color 2:cx = 9X — 2:cy = sy — l;m$ = 9p$( 

wp):gosub lllOireturn 
660 for j = to 32:lb(j,0> = 0:nextritb = l 
670 a = inp(2);aS = chi$(a) 
680 if a$ = " — "then return 
690 if a$ = " + "then a$ = strt<int(md(l)*8 

+ 1)) 
700 a-val(a$):if (a<l)or(a>8) then 670 
710 lb(0,0) = l:for j = l to 3;lb(0,j) = 0;next:l 

b(0,4) = 10 + a*2 
720 ex = l 
730 for j=0 to 32:if lb<j,0) then ex = 0:gO9 

ub760 
740 next:sound l,0,0,0:if ex then return 
750 goto 720 
760 dy = lb(j,0):dx = lb(j,l):ly =lb(j,2):ny = 1 

b(j,3):nx = lb(j,4);QT = LY'4 + NY 
770 if (ly+ny) AND LY<4 then gotoxy nx 

+ ql,ly*4 + ny + q2:prinf " " 
780 color ll;lb(j,3) = (ny + l) and 3:on ny + 

1 goto 790,810,860,880 
790 if ly>3 then lb(j,0) = 0:goto 950:rem sc 

oring routine 
800 gosub 1120:on int(rnd(l)'3 + l) goto 10 

00,1010,1020 
810 vx = 0rgO9ub 940;if sw(wy,wx,l)=0 o 

r (sw(wy,wx,0)-9d)-0 then 840 
820 vx = 1 - 2*sd:lb(j,l> = vx:Ib(j,3) = ny + 1 
830 lb(j,4) = nx + vx:gotoxy nx + qH-vx,ly* 

4 + ny + q2-(qt<15);print "o":goto 10 

50 
840 if 9w(wy,wx,0)=8d then lb(j,0)-0:sw( 

wy,wx,l) = l:gosub I120:goto 1030 
850 lb(j,3) = ny + l:gDSub 1120:on infrndO 

)'3 + l) goto 1000,1010,1020 
860 lb(j,l)=0;Ib(j,4) = nx + dx:gotoxy nx + 

ql+dx,ly*4+ny+q2-(qt<lS):prin 

t "o" 
870 goto 1060 

880 if qt<15 then gosub 1120 
890 lb(j,2) = ly + l:gosub 940:sw<wy,wx,0) 

= 1 — sw(wy, wx,0) 
900 if sw(wy,wx,l)-0 then 930 
910 lb(nb,0) = 1 ;lb(nb,l) = 0:lb(nb,2) - ly:lb( 

nb,3) =0:lb(nb,4> = nx + 2-sd*4:nb = 

nb + 1 
920 sw(wy,wx,l) = 0;gotOxy nx + ql+2 — s 

d*4,ly*4+ny + q2-l:print"":gosubl0 

70 
930 sx=12 — wy*2+wx"4:9y=4+wy'4:w 

p = sw(wy,wx,0);gosub 650:goto 1050 
940 wy = ly:jx — int(nx/2) + ly - 6:wx = int(j 

x/2):sd = jx and l:return 
950 sf=pt(rr,nx/2-2) 
960 sg = sc(qr,rr) + sf 
970 tx = 3-f29*qr + (sg>9> + (sg>99) + <sg>9 

99) 
980 ty = rr + l:a$ = midS(str$(sg),2):color 6 
990 cx-tx;cy = ly:m$ = a$:gosub 1110:sc(qr 

,rr) = sg:gofo 1080 
1000 sound l,15,l,3:wave l,l,12,90,0;return 
1010 sound l,15,l,4;wave l,l,12,90,0;return 
1020 sound l,15,6,3;wave l,l,12,90,0;return 
1030 for a = 12 to 1 step-2;sound l,15,a,5: 

wave 1,1,10,20 
1040 next:return 
1050 return 

1060 wave 16,2,0,1000,3;return 
1070 wave 16,2,0,1 8000,5:return 
1080 for a = 7 to 1 step — l:sound l,15,l,a:w 

ave l,l,12,90,2;next 
1090 sound l,0,O,O:retum 
1100 rem char command 
1110 gotoxy cx,cy;print m$:relurn 
1120 gotoxy nx + ql,ly*4 + ny + q2-(qt<l 
5);prinl "o":return © 




,mr^- 



[WOPID 



23 PARK ROW, NEW YORK. N.Y. 10038 

800-221.8180 L^: 



OHDER 
TOLLFftEF 



•'»C-1 CAU: 

63J PJ« 




*1ZS&^^ 



$229» 



Cd 



A'AK UOAI coMfynt 
«'*# KHO t^w atnn 



W.9S 

Tuw TO tr coin HOMTO* ni- A£ 

T79.« 

mm 



pmnt rvH-iii amui uoHrroi 

ITRON IA-IIX HONrTOI 



jun v>6q uini auAirrr 

CPMMG OOHI gMOl DOT lunu 

hii^ HIT unit auAinv 
Toswi* fiwo'dot i*Aiwi( ' 

EnON tHCTWM LX-K MATVeX 

KJ-.--:trnri '17^^ .-in Mn MLX*. 



nn.95 

■529.95 
'M9.95 
S219.95 
•499.95 



Lji-n-,':,-!-j^r-!a 



lUOHT IWUUIO* I luC LMi 






-*1AU4.SJ 






luvamw aunt i iufi 
f^u'iSmI uStrMK-^eDroHi 

ATABWWttt Aior 



'2495 
^MW 
7495 
'M.95 
!ii95 
>3i95 
>2i95 
'39.95 
>2i95 
1^95 



HACKII ^J:lT^^rii^ 

KIHtlHOf Kod«(tiU-ia 
^.BOB .pn mn .-KV '•Jf.TTKjr 

WMTU' OAMtt Ipfk 

tmrrox Ei*ciu«^ti ajIi 
PAmcuT koniMt inc iyd*g _ 
»U*n H tViei Mlcio how 
ruOHT (HIVUlTOt H ije LOQiC 



»i9.9fi 

129.95 
>2i95 
W.95 

. nS95 
>ii95 
144.95 

^17.95 

EifHHU HJUUMa W<CW L*Mu* hahc 
■j 1* -_■ .«i3j« -'■"■sw' W.* MAvjr'iY.Va 



'UK 
'K.K 

>24« 

'U.K 
'U« 

L.J.||.l:.,l.iJJ.JUJlJJ5W»H 

'39.95 



M9 ETmi UOLt MIcrop^M 
EABOON I! CHIM HOMan 

lAU HAII< Epm 
r*Pt"«» I0<i«i*«p ir»ti!ua*a 



JET Srfjo logic 

nmo *akal tonopd utbt 

^iva' 'oca cji-vtr ?*> l.BKrASC*. ^4*W 
rrtata rUTOt * Vman k Urte- nn « 
.fn" Hw" vtv 'tv f^*!**" - . - "ir.TO 
wTOMliItt (HRH InhKom bu, » 

MMUl HiMAOB lAcKi L*»M hflK 

dtAH in Am^onloi* tUOK 

™^^-^_ju^«*.^ »J*9.95 

lAAW tUtini Bavtdton Auoc lu » 



t.. ' -ii.a i M.ii;.;i!fVj.m, ' l ffilllWrir'Ji.'onri-.iii^i 

■■*^i**^'»^********"******" JUKI tUntlKH Ho-aryJO^H iviJif 



ijT MU«R tOOnMOr n4vq«>' 

nitvnioH i«>ci 
HiretMun ouef I'^o^ 

tHim 1AM tKAnsVHMolBi^ 
HubC ¥fOtici •WMn 



'34.95 
■M.M 

'379« 



HW WfVl CUANIM4 KFT ht»od 




*129» 



19.95 
>U95 
W.95 

>59« 
>U,95 
, 'B« 
>599« 
'59.95 
79.95 
m9S 

^ eO*fJMODO« »« 
NtW |3*K PtmOtJAl COMW/ffB 



DtKini ITDRAOC Rmf Kir^g 

wtrvitMi HMtni itamd" 

UIJaDO ttUrTMOHHX9T«t 
IHAU COUfvTlR TAhl Kim 



WI Mimv A FUU UM( C* AUCTO WMO AW COMPuTIK in 
Evrfn f»AJX eUANO THrt LRTlNC A JulT A WAli SAMflE Ih 
Ot* '10000 000 (NWINTOffV PLTASf CALL in TCXl FPtE W Wmi 

TO ITS Kw puyzf^ Ok rrtwi hot irtiEO ih inn ao 



ALL PRODUCTS CARRY U.S. WARRATfTIES 

ALL DEFECTIVE PRODOCTS EXCHAWOED HTTH1N 30 DAVS 



52 COMPUTEI March 1986 



23 PARK ROW, DBT. C2, NYC, NY 10038 

MAME: - - . 

ADDRESS: . „ 

CtTV; _ _ STATE: ZIP: "^ 




Reviews 



The Worksl 

For Commodore And Apple 



James V. Trunzo 

Requiremenis: Commodore 64 or 128 (in 
64 mode) with a disk drive; or an Apple 11- 
series computer with at least 6iK RAM 
and a disk drive. Printer recommended. 



"Jack of all trades but master of none" 
is a saying that could be applied to a 
collection of programs entitled The 
Works! from First Star Software. How- 
ever, the saying would reflect only 
upon the level of sophistication of the 
individual programs making up The 
Works!, and should not be considered a 
criticism of the package as a whole. 

The Works! is a compendium of 
useful programs for computer novices 
fay Fernando Herrera, who first gained 
prominence with a program entitled My 
First Alphabet, winner of an Atari First 
Star Award. When considering The 
Works!, it is essential to keep in mind 
the audience for which it is intended. 

The package is subtitled "A Com- 
plete Collection of Home Software," 
and that's just what The Works! is — with 
an emphasis on "home." It contains 13 
programs divided into four main cate- 
gories: Tools, Organizers, Arts, and 
Learning, Under the heading of Tools, 
you find such programs as Letter Writ- 
er, Loans & Investments, Calculator, 
Weights & Measures, and Math Formu- 
las; the Organizers section includes 
Family Finances, Calendar Pad, Ad- 
dress Book, and Stock Portfolio; the 
Arts section has Graphics Painter and 
Music Composer; and the Learning sec- 
tion has Typing Teacher and Math 
Races. 

All of the programs that make up 
The Works! are completely functional. 
However, none of them are — nor do 
they pretend to be — the final answer in 
their genre. Letter Writer, for example, 
is a more-than-adequate word proces- 
sor for writing letters. It contains basic 
commands such as Move, Copy, De- 
lete, and Insert, as well as a number of 
print-formatting commands. You 
wouldn't use it to do a college term 



paper with elaborate footnotes, though. 

Similarly, all the other programs in 
The Works! provide a simple, working 
introduction to each type of software. 
They take advantage of the latest win- 
dowing techniques and are very easy to 
use. Also, there's a certain amount of 
integration among the programs. For 
example, when using Letter Writer, you 
can look up an entry in the Address 
Book program and merge it with a let- 
ter; or you can insert the result of a 
calculation done on the Calculator pro- 
gram into a report you are writing. 
You're also free to copy any of the 
programs onto a separate disk to be 
used apart from the rest, if you desire. 

The value of The Works! lies in this: 
It gives new users a taste of a wide 
variety of programs and introduces 
some of the useful functions that can be 
performed by a home computer. Fur- 
thermore, it does so at a reasonable 
cost, You could pay $100 or more for a 
sophisticated financial program and 
then discover that you don't need it or 
don't like to use it. Family Finances in 
The Works! gives you the opportunity to 
try a program of this type before you 
invest in a more expensive package. 

For those new to the world of com- 
puters and computer software. The 
Works! provides an easy entry into a 
sometimes bewildering domain. 

The Works! 

F(rs( Star Software, Inc. 

18 East 41st Street 

New York, NY 10017 

$49.95 



Under Fire 
For Apple 

James V. Trunzo 

Requirements: Apple Il-series computer 
ivith at least 64K memory and a disk drive. 
A joystick is required for the Apple //+, 
but is optional on the Apple He and He. A 



version for the Commodore 64 and 128 is 
scheduled for release this spring. 

If you're a war game buff and you've 
been waiting for the ultimate World 
War II infantry combat simulation, your 
wait may be over. Released by Avalon 
Hill, Ralph Bosson's Under Fire is an 
innovative milestone in all areas of 
computerized war gaming. It's one of 
the best war game simulations I've ever 
seen. 

In fact. Under Fire is more than just 
a game: It's a complete, open-ended 
system in the same vein as its board 
game predecessor, the award-winning 
Squad Leader. With the three disks that 
come with Under Fire — a master disk, a 
scenario disk, and a mapmaker disk — 
you can design your own scenarios as 
well as play the standard games. 

Although Under Fire is as complex 
as it is realistic, it is not a difficult game 
to learn (though playing and playing 
well are two different things). An ex- 
tremely well-written rule book, com- 
plete with a step-by-step scenario, 
helps you get under way and allows 
you to absorb details bit by bit as you 
become more immersed in the mechan- 
ics of the game. 

Under Fire lets you play solitaire or 
against another person, using one of 
nine prepared scenarios or one you 
have created yourself. You can assume 
command of men and weapons from 
the United States, Germany, or the So- 
viet Union. Each infantry squad, gun, 
and tank is individually represented on 
any one of three available maps: a situ- 
ational map, showing the large-scale 
picture; a strategic map, depicting a 
smaller, more detailed portion of the 
battlefield; and a tactical map that 
shows the terrain and units to a degree 
of detail that is hard to believe. Frankly, 
an entire review could be written on 
this program's graphics alone. 

Unprecedented Flexibility 

Under Fire is so flexible that it truly Hves 
up to Avalon Hill's boast that it's a 
"War Game Construction Set." When 
you combine the unit types, the terrain 
selections, the battlefield objectives, 
and the various orders of battle, there is 
almost no land engagement that cannot 



Morcri 1986 COMPUTEI 53 



be accurately simulated. That's why the 
nine scenarios provided are named 
after historical encounters; they repre- 
sent types of conflicts ranging from 
open-field firefights to house-to-house 
battles. You can attack or defend objec- 
tives, recreate breakthroughs, or enter 
into all-out slugfests. 

Lavish attention has been paid to 
details such as troop morale, training, 
supplies, skill levels, hidden units, line- 
of-sight fire, and animated combat. At 
the end of a battle, you get a complete 
report of men lost, men remaining, ar- 
mor lost, and other statistics. 

This review really just scratches 
the surface of Under Fire. For example, 
the Apple version even allov^'s for the 
optional use of a Mockingboard to en- 
hance the sound effects of raging bat- 
tles, Avalon Hill and designer Bosson 
have created what is sure to become a 
standard for computerized war games 
in the future. 

Under Fire 

Avalon Hill Game Company 

i517 Harford Road 

Baltimore, MD 222H 

$59.95 



M-O'isk 
For Atari ST 

George Miller, Assistant Technical Editor 

Requirements: Atari ST computer ivith at 
least 512K RAM; extra RAM recommended. 



Do you often find yourself wishing for 
extremely fast, temporary storage to 
supplement the floppy disk drive on 
your Atari ST? M-Disk, by MichTron, 
lets you set aside a portion of Random 
Access Memory (RAM) as a RAM disk. 
This area of memory is used Hke a disk 
drive, except it's much faster. By moving 
small, frequently used programs or data 
files into the RAM disk, you can speed 
up access and make disk-intensive pro- 
grams run more efficiently, {Of course, 
you still have to copy the programs or 
files you want to save onto a real disk 
before ending the session because the 
RAM disk disappears when power is 
shut off.) 

M-Disk is easy to use. Michtron's 
user manual, although small, is well- 
written. Installing the RAM disk is no 
problem. And since the ST's operating 
system (TOS) sees the RAM disk as just 
another floppy disk drive, transferring 
files from memory or floppy disk to the 
RAM disk is a snap. 



With M-Disk, you can specify the 
size of the RAM disk in 12K blocks up 
to a maximum of 800K, if your ST has 
this much memory available. Using the 
standard 520ST with 512K RAM, you 
can set up a RAM disk of 84K, or 11 1 K if 
no GEM desktop accessories are loaded. 

However, some larger application 
programs can't be used with a 512K 
machine and M-Disk due to memory 
limitations. For instance, it was almost 
impossible to use M-Disk with ST 
BASIC because BASIC normally leaves 
only about 5K free to begin with. If 
Atari carries through with plans to put 
TOS in Read Only Memory (ROM), 
more than 200K RAM will be freed up 
for such purposes. 

When TOS is available in ROM, or 
when you add more memory, M~Disk 
will become an indispensible accessory 
for your Atari ST. 

M-Disk 

MichTron 

576 S. Telegraph 

Pontiac, M! 4S053 

$39.95 



Atari XM301 
Modem 

Tom R. Halfhill, Editor 

Requirements: Atari 400/800, XL, or XE 
computer with at least 48K RAM and a 
disk drive. The 1200X1 requires a slight 
hardware modification (see text). 

If you've been waiting for a (nearly) 
painless way to get started in telecom- 
puting, the new Atari XM301 modem 
might be just the ticket. For about a 
quarter of what a bare-bones acoustic 
modem cost just a few years ago, the 
XM301 package includes a reliable, 300 
bits-per-second (bps), direct-connect 
modem with autoanswer and autodial; 
an easy to use terminal program with 
full upload/download capabilities; free 
introductory time on popular commer- 
cial information services; and a well- 
written manual that guides you step by 
step through the often-confusing world 
of telecommunications. 

Thanks to the latest modem-on-a- 
chip technology, the XM301 is just 
slightly larger and heavier than a pack 
of cigarettes. And that includes the 
power supply and interface, because 
the XM301 doesn't require a power 
supply and interface — it plugs directly 
into the Atari's serial input/output 
(SIC) port and draws its power from 



same. This is a major improvement 
over early Atari modems, which forced 
you to buy the $200 850 Interface Mod- 
ule and add yet another power trans- 
former to the existing clutter. 

Hooking up the XM301 takes just 
two steps. First, plug its permanently 
attached serial cable into the SIO port. 
Second, unplug the modular phone 
cord on your telephone and connect it 
to the XM30rs modular jack. 

The only complication is if you're 
using a 1200XL computer. The 1200XL 
designers wanted to discourage manu- 
facturers from making peripherals that 
drew power from the computer, so they 
added a current-limiting resistor to the 
SIO port which keeps devices such as 
the XM301 from operating properly. 
Fortunately, the fix is not difficult for an 
Atari service technician or experienced 
electronic hobbyist. According to Atari, 
resistor R53 on the SIO port must be 
bypassed or replaced with a jumper. 
Atari recommends that you take your 
1200XL into an Atari service center for 
this modification. (It won't affect any 
other operation of the computer.) 

Upload And Download 

Once the modem is hooked up, you're 
ready to run the terminal software in- 
cluded in the package, X£ Term. De- 
spite its name, X£ Term works on 
400/800 and XL series computers with 
at least 48K RAM as well as on the 
newer XE machines. The disk includes 
DOS 2.5 and an autoboot file that auto- 
matically runs X£ Term when you 
switch on the computer. 

Pop-up menus and single-keystroke 
commands make X£ Term extremely 
easy to use. Yet it's not a stripped-down 
terminal emulator; it's actually a fairly 
versatile program that contains enough 
features to satisfy most people's tele- 
computing needs. Earlier Atari terminal 
programs, such as the TeleLink I and 
TeleLink U cartridges, often were criti- 
cized for their lack of file transfer func- 
tions. XE Term is a sharp departure from 
the TeleLink series. Not only does it 
allow you to upload and download files 
with other computers, it even provides 
three different protocols (file exchange 
schemes) for this purpose. 

The simplest protocol is the ASCII 
transfer function. It's most often used 
for exchanging text files, such as docu- 
ments created with a word processor. 
You can also "capture" any incoming 
text with this option and send it to the 
disk drive or printer. ASCII transfers 
don't employ any error-checking, how- 
ever, so characters can get garbled if the 
phone line is noisy. 

The second transfer protocol in X£ 
Term is called XMODEM, a standard- 
ized scheme that is popular on many 



54 COMPUTE! March ^'}S6 



M 1 52K Lowest Price In The USA ! i 52k 

ATARr Computer System Sale 

• Students • Word Processing • Home • Business 




LOOK AT ALL YOU GET FOR ONLY ^ O" V 

IIMITEO CfUANTITjeS SYSTEAA PRICE LIST PRICE 

©Atari 130XE 152K Computer $249.00 

(D Atari 1050 127K Disk Drive 299.00 

©Atari 1027 Letter Quality 20 CPS Printer 299.00 

Atari Writer Word Processer 59.95 

Atari BASIC Tutorial Manual 16.95 

All connecting cables ST. V. interface included. — i^v* » i ^ 

t:.' Monitors sold separetly. T^/TALS 



INDIVIDUAL 

SALE PRICE 

$134" 

179" 

179" 

49" 

12" 



$923.90 $547.75 

CALL FOR 1027 PRINTER REPLACEAAENT OPTIONS 



SAVE 

OVER $100 

All 5 ONLY 

$39900 

SYSTEM 
SALE PRICE 



<3'ther Accessories List Saie 

iSr 12" Hi Resolution Green Screen Monitor $199.00 $79.95 

ij 13" Hi Resolution Color Monitor $399.00 $T59.95 



Add $9.95 for 
Connection Cables 

Add $30 for UPS 



15 DAT FREr TRIAL. We give voj 15 days to try out this ATARI COMPUTER SYSTEM! I H it doesn't meet your expectotions. just send it back to us prepaid 
and we will refund your purcfiase pricel ! 90 DAY IMMEDIATE REPLACEMENT WARRANTY, if any oi tfie ATARI COMPUTER SYSTEM equipment or 
programs foil due to faulty workmansfiip ormoferiol within 90 days of purchose we will reploce it IMMEDIATELY witfi no service charge! ! 



Best Prices • Over 1000 Programs and 500 Accessories Available • Best Service 
* One Day Express Mail * Programming Knowledge * Technical Support 



Add $25.00 for shipping and handling!! 

Enclose Cashiers Check. Money Order or Personal Check. Allow 14 
doys for delivery. 2 to 7 days (or phone orders. 1 doy express moil! 
We accept Viso ond MasterCard. We sfiip CO.D, to continental 
U.S. addresses only. Add SIO more if CO.D,, add S25 if Air Mail. 



COMPUTER DIRECT 

We Love Our Customers 

22292 N. Pepper Rd., Barrington, III. 60010 

312/382-5050 to ord 



Famous Smith Corona National Brand 

1 0" PRINTER SALE 

Belovsf y\fh€>lGsalG Cost Prices!!! 

• ONE YEAR IMMEDIATE REPLACEMENT WARRANTY 

• speed: 120 or 160 characters per second * Friction Feed/Tractor Feed — Standard 

• 80 character print line at 10 CPI * 1 Line Buffer, 2K Buffer on 120/160 CPS Plus LQM 

• Six pitches • Graphics capability • Centronics compatible parallel interface 

• Features Bidirectional Print, Shortllne Seek, Vertical And Horizontal Tabs 

Check these features & prices 

130 CT»S lO" Printer 




List 
$429,00 



?159 



SALE 

120 CPS + Letter QuaUty 
Mode 10*' Printer 



Lfst 
$449.00 



SUPER GRAPHICS 



^1 T9 

SALE ■ m ^^ 

160 CPS + Letter Quality 
Mode 10" Printer 



Tl-iis 
near 



emphasized 



Is a sample of our 
-letter-quality print. 

There is standard data 

processing quality priTit 



List 
$499.00 



ita.iic print 



SALE 



f199 



(IBM — Commodore ) 

Stza/W«ight 

Height 5.04" Width 16.7" 

Depth 13.4'Weight 18.7 lbs. 

Intsrnal Char. Coding 

ASCII Plus iSO 

Print Buffer Six* 

120 CPS: 132Byte$(1 line) 

120/160 CPS Plus IQM:2K 

No. of CKar. tn Chor. Sat 

96 ASCII Plus Internotional 

Craphici Capability 

Standard 60, 72, 120 DPI 

Horiiontal 72 DPI Vertical 

Pitch 

10, 12. 16.7, 5, 6. 8.3, Proportional Spacing 

Printing Malhod 

Impact Dot Matrix 



SPECIFICATIONS 



(Apple — Atari — Etc. ) 



Char. Matrix SIza 

9H X 9V (Stondard) to lOH x 9V 

(Emphasized & Elongote) 

Printing Faaturai 

Bi-directional, Short line seeking, Vertical 

Tabs. Horizontal Tabs 

Formi Typa 

Fontold, Cut Sheet. Roll (optionol) 

Max Paper Width 

11" 

Faadtng Method 

Friction Feed Std.; Tractor Feed Std. 

Ribbon 

Cassette — Fabric inked ribbon 

Ribbon Life 

4 million chorocters 



Interfaces 



Interface* 

Porallel 8 bit Centronics compatible 

120/150 CPS Plus NLQ: RS232 Serial inc. 

Character Mode 

10x8 Emphasized: 9x8 Staridord: 10x8 

Elongated; 9x8 Super/Sub Script (1 pass) 

Character Sal 

96 ASCII 

11x7 Inlarnatlonol Char. 

Line Spacing 

6/8/12/72/144 LPI 

Charactar Spacing 

lOcpi normol: Scpi elongoled normal: 12cpi 

compressed; 6 cpi elongated compressed: 

16.7 cpi condensed; 8.3 cpi elongated 

condensed; 5.12.5 cpi elongated proportional 

Cartridge Ribbon — List S19.95. Sals *12.9S. 



IBM $89.00 



Apple $59.00 



Atari $59.00 



Commodore $39.00 



Add $14.50 for shipping, handling and insuronce. Illinois residents 
please odd 6% tox. Add S29.00 for CANADA. PUERTO RICO. HAWAII. 
ALASKA. APO-FPO orders. Conodion orders must be in U.S. doNors, 
WE DO NOT EXPORT TO OTHER COUNTRIES, EXCEPT CANADA. 
Enclose Cashiers Check. Money Order or Personal Check. Allow 14 
days deliverv. 2 to 7 doys for phone orders. 1 day express moil ! 
VISA — MASTERCARD — C.O.D. No C.O.D. to Conodo or APO-FPO 



COMPUTER DIRECT 

We Love Our Customers 

22292 N. Pepper Rd., Barrington, III. 60010 

312/382-5050 to ord 



COAAMODORE 64 
COMPUTER 

(Order Now) 

$13995 

•C128Ditlct79'ea.* 

• Paperback Writer 64 $34.95 

• 10" Comstar 10X Printer $148.00 

• 13" Zenltli Color Monitor $139.95 

CALL BEFORE YOU ORDER 



COMMODORE M COMPUTER l139.tS 

You pay only Sf 39,95 whan you order the powerful 
8<K COMMODORE 64 COMPUTER! LESS Ihe value ol 
the SPECIAL SOFTWARE DSSCOUNT COUPON we pock 
wilh your coniputer thot allows you to SAVE OVER 
1250 off software sale prices!! With only JlOO of 
savings applied, your net computer cost is S39.95! I 

• C1M DOUBLf SIDED DISKS Tf EA. 

Gel these 5'/.' Double Sided Floppy Disks specially 
designed for the CommodorB 126 Computer (1571 OnV 
Drive). 100% Certified, lH»Hm» Warranty. 
Automatic Lint Cleaning Liner included. 1 Box of 10 - 
S9.90 (99' ea.), 5 Boxes of 10 - S44.50 (89' eo.), 10 
Bojes o( 10 -579.00 {79' ea,). 

13" ZENITH COiOR MONITOR t139.f S 

You pay only $139.95 when you order this 13" ZENITH 
COLOR MONITOR. LESS the value of the SPECIAL 
SOFTWARE DISCOUNT COUPON we pock with your 
monitor that allows you to save over S250 off softwore 
sole prices! ! With only $100 of savings applied, your 
nel color monitor coil is only $39.95. (16 Colors). 

Premium Quality 120-140 CPS 
Comatar 10X Printer *14S.O0 

The COMSTAfi lOX gives you o lO" corriago. 120-UO 
CPS. 9 X 9 dot matrix with double strike capability for 
18 X 18 do! matrix (near lefler quality), high resolution 
bit image (130 x 144 dot motrix). underlining, back 
spacing, left and right margin setting, true lower 
defenders with super and subscripts, prints standard, 
italic, block graphics and special choracters. It gives 
you print quolily and features found on printers 
costing twice as much!! [Centronics Parallel 
Inlerfacel List $399.00 $«tl* »14f .H. 

4 SLOT EXPANDER & U COLUMN BOARD $54.45 

Now you program 60 COLUMNS on the screen ol one 
lime! Converts your Commodore 64 to SO COLUMNS 
when you plug in Ihe 80 COLUMN EXPANSION 
BOARD!! PLUS 4 slot expander! UmHud Ouanittit 

» COLUMNS IN COLOR 
PAPERBACK WRITER M WORD PROCESSOR tji.f S 

This PAPERBACK WRITER 64 WORD PROCESSOR is Ihe 
finest available for the COMMODORE 64 computer! 
The ULTIMATE FOR PROFESSIONAL Word Processing. 
DISPLAYS 40 or 80 COLUMNS IN COLOR or block ond 
while! Simple to operate, powerful text editing, 
complete cursor and insert/delete key controls line 
and parogroph Insertion, outomatic deletion, 
centering, margin settings ond output to all printers) 
List $99.00. $ALE »$*.»$. Coupon S29.95. 



COMMODORE 64 
SYSTEM SALE 

Commodore 64 



Com. 1541 
Disk Drive 

13" Color 
Monitor 



Plus $30.00 S&H 



457 



PLUS FREE $49,95 Oil Baroni 
Adventure Program 



SPECIAL SOFTWARE COUPON 



We pack a SPECIAL SOFTWARE DISCOUNT 
COUPON with every COMMODORE 64 | 
COMPUTER, DISK DRIVE, PRINTER, I 
MONITOR we sell! This coupon ollowt you 
to SAVE OVER S2S0 OFF SALE PRICES!! 



(Examples) 


^^ 




PROFESSIONAL SOFTWARE 


COMMODORE 64 




Name 


Llll 


Sole 


Cpupor. 


foperback Writer 64 


S99.00 


539.95 


529.95 


Paperback Dotaba^B 64 


569-00 


S3J.95 


S24.9S 


Poperbock Dicfionory 


S2J.95 


S14.95 


SIO.OO 
Si6.95 


Tile Print Shop 


S41.95 


537,95 


HQllBy's Project 


S39.95 


S25.9S 


S24.95 


Prorlicofc Isprond sheet) 


S59.9S 


519.95 


514,95 


Pro^fommen Relsrence 


SH.95 


516.95 


SU 50 


Cuide 








Nine Princes in Amber 


S33.9S 


524.95 


521,95 


Super Bow) Sunday 


S30.00 


519.95 


517,95 


Flip i File Disk Filer 


S24.95 


SK.95 


512,95 


Deluxe Tape Cassele (plus 


589.00 


5Ja.95 


534,95 


FREE game) 








Pro Jt>yjlick 


519.95 


512.95 


510 00 


CofTupulcr Core Kit 


iii.li 


529.95 


524 95 


Dust Cover 


i 8.95 


5 6,95 


5 4.60 


injured Engine 


539. 95 


527.95 


534,95 


Pitslop II (Epyx) 


539,95 


522.95 


519,95 


Music Cnic 


559.95 


514.95 


512,95 


File Writer (by 


539.95 


529,95 


524,95 


Codewriter) 









(See over 100 coupon items in our catalogj 

Write or call for 

I Sample SPECIAL SOFTWARE COUPONI 



ATTENTION 

Computer Clubs 

We Offer Big Volume Discounts 
CALL TODAY! 



PROTECTO WARRANTY 

All Proiecfo's producJs tarry a minimuPrt 90 day warranty. 
If onything fails within 90 days from Ihe date of purchase, 
simply send your product to us via United Parcel Service 
prepaid. We will IMMEDIATELY send you replacement at 
no charge via United Porcel Service prepaid. This worronty 
proves once agoin that We Lovo Our CuMtOmmrs. 



C128 COMMODORE 

« COMPUTER 
(Order Now) 




Plus FREE »fr9.95 Tlmeworks 
Word processor. 

•34I)K1S71 Disk Drive $259.00 

• Voice Synthetiier t39.9S 

• 11" Amber Monitor m.fS 

PRICES MAY BE LOWER 



C12« COMMODORE COMPUTER t3l«.M 

We evpect o Jimitod supply for Chrislmas. We will ship 

on a (irst ordor basis. This all-new revolutionary 128K 

computer uses oil Commodore 64 software and 

accessories plus all CPM programs formatted for the 

disfc drive. Plus FIKl $U.11 Vmmwarkt 

Wordprot»ttor. 

List 1349.00. tAU tW.M. 

MOK 1171 COMMODORE DISK DRIVE »St.0O 

Double Sided, Single Disk Drive for C>128 allows you 
lo use C-)26 mode plus CPM mode. 17 times foster 
thon 1S4t, plus rutts oil 1S41 formats. 
List $349.00. Sals IUf.M, 

SUPER AUTO DIAL MODEM »».tS 

Eosy to use. Just plug into your Commodore 64 
computer ond you're ready to transmit and receive 
messages. Eosier to use than dialing your telephone, 
just push one key on your computeri Includes 
exclusive easy lo use program for up oitd down 
loodlng to printer and disk drives. Bmsi In U.i.A, 
ListS99.00. SALt IM.tS. Coupon S24.95. 

VOICI SYNTHESIZER t)f.«S 

for Commodore-64 computers. Just plug 11 in ond you 
con program words and sentences, odjust volume and 
pitch, moke talking adventure gomes, sound oction 
gomes and customized tolkiesM PLUS ($i9.9S ^iQluti) 
TEXT TO SPEECH progfom included FREE, just type a 
word and hear your computer tolk — ADD SOUND TO 
"ZORK", SCOTT ADAMS AND OTHER ADVENTURE 
GAMES! I [Disk or tope.) List SS9.00. SALE l».tS 

12" MAGNAVOX (NAP) SS COLUMN 
MONITOR WITH SOUND t7t.9S 

Super High Resolution green screen monitor. 80 
columns x 24 lines, easy to read, plus speoker for 
audio sound Included. FontQStlc value Lis) SI29.00 
Ssia >7f.». ICI28 cable $19.95. C64, Atorl cable 
$9.95) 

PRINnR/rrPEWIIITER COMBINATION Ittt.tS 

"JUKI" Superb letter quality, daisy wheel 
printer/typewriter combination. Two mochines In one 
— just flick ol the switch. 12" evtro lorge corrioge. 
typewriter keyboard, outomatic margin control and 
relocate key, drop in cassette ribbon! (90 day 
warranty) Centronics porollel or RS232 serial port built 
in (Specify) . list S349 .00. S AL[ ll».tS. (Lid. Qly.) 

11" ROB A COMPOSITE COLOR MONITOR llSt.fS 

Must be used to get 80 columns in color with 80 
column computers (CI 28 - IBM - Apple). 
(Add $14.50 shipping) 
List S399.00. SALE SUMS. 



• LOWEST PRICES • IS DAY FREE TRIAL 

• BEST SERVICE IN U.S.A. • ONE DAY EXPRESS MAIL 



PHONE ORDERS 

8a.m. - a p.m . WeekcJays 
9 o.m. - 12 noori Saturdays 



Add S!0,00 for shipping, handling and insurance. Illinois residents 
pleose odd 6% tax. Add S20.00 for CANADA. PUERTO RICO. HAWAII. 
ALASKA. APO-FPO orders. Conodion orders must be in U.S. dollars 
WE DO NOT EXPORT TO OTHER COUNTRIES EXCEPT CANADA. 
Enclose Cashiers Check. Money Order or Personol Check. Allow 14 
days lor delivery, 2 to 7 days for phone orders, 1 day express moil ! 
VISA — MASTER CARD — C.O.D. No C.O.D. to Conodo. APO-FPO 



' M DAY FREE REPLACEMENT WARRANTY 
• OVER SOO PROGRAMS • FREE CATALOGS 



We Love Our Customers 

Box 550. Barrington, Illinois 60010 

312/382-5244 to order 



electronic bulletin board systems 
(BBSs). XMODEM is somewhat slower 
than ASCII protocol, but it checks for 
transmission errors during the transfer. 
This makes it particularly useful for 
uploading and downloading such criti- 
cal files as programs. 

XE Term's third transfer scheme 
was a surprise — the A-protocol used by 
the CompuServe Information Service. 
X£ Term automatically recognizes A- 
protocol, so it's easy to download pro- 
grams and other files from Compu- 
Serve. 

The only drawback to XE Term's 



file transfer capabilities is its rather 
small buffer — only about 14K. Most 
Atari terminal programs have larger 
buffers. This restriction means that files 
longer than 14K must be broken up into 
pieces before uploading or downloading. 

Online Phone Book 

X£ Term strikes a balance between ease 
of use and full-featured telecommuni- 
cations. You can link up with Ataris, 
most other personal computers, infor- 
mation services, and BBSs of almost 
any flavor. But if the other computer is 
an oddball or a mainframe with unusu- 



Here are 86 reasons to 
buy at Elek-Tek, no! to 
mention the fastest 
delivery anywhere. 



BERNOULLI BOX 

1. 10 meg Vi height Drive for 
IBM-PC/XT/AT & 
compatibles S 167S 

2. 20 meg V; height Drive for 
IBIVI-PC/XT/AT& 
compatibles 2335 

3. Non-Boolat5(e Inlerface 

Card 104 

4. Bootatie Interface Card ...234 

5. 10 meg cartridges for above 

(3 pak special) 125 

14. Amd«k3iQA 

Amber Wonitor S 150 

15. GenancMultl 
Multilundion Board. 64K. . .135 

ie. Gansric Multl 3e4K 

MulliljncIiDn Board. 384K . . 175 

17. AST Sl« P«k + 
Mull.lunclior Board. 64K . . 125 

18. AST Six PaJc + (loadsd) 
MuMunaion Boara 384K . 290 

19. AST Mcgaplua II 
Muflilunction Board. 64K. . .270 

20. Ouodram Quidboard 
MuUilunclcn Board. OK . . . 195 

21. OuKJrBni Ouadbcurd 

Mulli Board, 64K/3B4K ..2W267 



Save 30% to 43% 

off Manufacturer Suggested Ret. prices on 
America^ most wanted Printers 




PRODUCTS FOR IBM-PC 



EPSON 

EPSON! "^'^ 

6. LX80 S21S 

7. LX90 220 

B. RX 100+ 300 

9. FX35 340 

10. FX IBS 475 

11. LQ 15O0 parallel CAU 

12. DXiODaiS) wrieel 1CCPS ...230 

13. DX20 Daisy Wh e^ 20CPS . . CALL 

22. OrehldTMh. 

PC Turbo 186 57D 

23. Paradise 

Modular Graphics Card ...290 

24. Herculas 

Monochrone Card 299 

25. Herculaa Colof 

Caor GraoriicCard 155 

26. Novation 4905921 

1200B int No Soltware 150 

witn MITE Software 165 

27. Novation 490605-1 
24003PS inc Mite Software .620 

26. Novation 490603 

V? Card Modem 2400 BPS 
No software 425 



UNBELIEVABLEm 
XEROX/DIABLO 

D-36 DalsyWheel 
35CPS 

Mfr. Sugg. Ret. $1495 

Elek-Tak Price $450 



P-38 Dot Matrix 
400 CPS 

Mfr. Sugg. Ret. $1995 

Elek-Tsk Price S600 



29. Novation 490603-1 

As abow inc MSDCS Sodwaie . . 490 

30. HayaBl200B 

Inlerr^al iriodem w/software . 359 

31. AT&T 4000 

300/1200 Ext Modem 335 

32. Hiy«l1200 

Esrtemal rrodem 380 

33. Hayn2400 

External modem 599 

34. US Robotics Courier 2400 
Em 24303 Smart Modem ... 460 

35. US Robotics Telpac 
Telecom m Software 75 

36. Toshiba ND04D 

V7 hi. DSDD Disk Drive 90 



■ Dy^an maxBll 



DISKETTES 



3M SONY 



MEMOREX 



l:TiM3 



3V^' SSDD 


23.00 


20.00 


23.00 


20.00 


20.00 






OSDD 


28.D0 


26.00 


30.00 


30.00 


24.00 






5V." SSDD 


17.00 


13.00 


13.00 


13.00 


11,50 


11.50 


11.00 


DSDD 


21.00 


17.00 


17.00 


16.00 


12.50 


14.00 


12.00 


SSDD96TPI 


24.00 


24.00 


24.00 






_ 


_ 


DSDD96TPI 


33,00 


29.00 


29.00 


_ 


_ 


_ 


_ 


5*4- DSDDHD 


36.00 


33.00 


34.00 


_ 


24.00 





24.00 


(For IBM ATI 
















B" SSDD" 


22.00 


29.00 


25.00 




19.00 







6- DSDD" 


26.00 


32.00 


29.00 


- 


aaoo 


- 


- 



Call for Quantity pricing lor W botes or more. 



3M DATA CARTRIDGES 



80 OCIOOA S 14.00 82. DC300XL S 21.00 84. DC600A S 23.50 

81, DC300A 16.00 93. DCSOOXUP 22.00 85. DC1000 15.00 

Call for Ooantfty pricltt g tor 10 cartridgas of morp. 86. DC2000 20.00 

CMl TOU FBtt aO(K21-12W EXCEPT 1 1 lll>Ol«, Al««lu CAHAHAW TOU. FREE B00-4SB-9133 

Cofp. AcctB. Imttri MlrtOra (ILOO. Vl*i or WUratCaU by M«ri or PUcm M*! C•»^^^ i Ct>*ct, ^vn- Orti . P^fvOi^ Cr<*Cli (3 wka fOiiWir) Adfl J4W t»! t\m.rr. |AK. HI, 

RR., C*f*rt* add fiOSa fttt Rvm) S1.CX] •«. kK > lAgg 4 tsm/^ SrtiCfn*nM to L H>dr*u add 7^ tii, Priat lubj. to ching*. WRfTt !cr rnM ciiilog. i^CTURtf POLJCY 
[MaclhiH OnlY' Uvt oratiKtM «w^ir_*a wm\tn U Oir* o( purchu* mht\ 4d«rilcil rvtrchitrKfiw f>nly Corrnutat and 1«n>* pwtohvnli rK:t«ci»d only m^tn dv^Ktiv* on anivkl 
(««*> I w(»ft «»•«' 3^»«rrt- o5»rwoW«ni covarad Iff irff —rrartir »U ILEK-Tlf. UEflCMAHDiSES BRAND tifm, flftST QU*.LltY AhD c6w?lETE, 0*lr*iy *"=>- 
laei u avIatWty. DUMI «*.T1Mi1T 

i J,JJi 




al requirements, you may need a pro- 
gram that provides more communica- 
tion options. 

To reach X£ Term's Options menu, 
you press O from the main Functions 
menu (a keystroke that Atari forgot to 
list on the Functions menu, by the 
way). The Options menu pops up and 
lets you change the input parity (none, 
even, odd, or clear); output parity 
(none, even, odd, or set); the duplex 
mode (half or full); and translation 
mode (ASCII and Atari ASCII, called 
ATASCII). You can also change the left 
screen margin from its normal indenta- 
tion of two characters. 

A few convenience features make 
XE Term even easier to use. You can 
save the communication settings to disk 
in a configuration file so the program 
always boots up the way you want it to. 
A dialing menu lets you switch be- 
tween tone and pulse dialing, store up 
to five phone numbers that can be di- 
aled with a single keystroke, or dial 
directly from the computer keyboard. 
When you're establishing a connection, 
all telephone sounds are routed 
through the TV or monitor speaker. 
That way, you can listen to the modem 
dialing the number and hear any busy 
signals, recorded messages, or humans 
that may be encountered on the other 
end of the line. 

Automatic log-on sequences can be 
programmed to speed up access to re- 
mote computer systems. For instance, 
you can tel! XE Tenn to dial your local 
CompuServe access number, type a 
CTRL-C to get CompuServe's atten- 
tion, and enter your ID number and 
password — all without any interven- 
tion on your part. You can also set up 
the modem for autoanswer mode in 
case someone wants to call your 
computer. 

A Few Extras 

The 50-page manual is very well-written 
and contains just about everything you 
need to know to use the XM301 modem 
and X£ Term. There's even a short glos- 
sary of telecommunication terms. For 
advanced users, a file on the XE Term 
disk contains technical information 
about the modem and its software in- 
terface. Another disk file, HANDLER- 
.OBJ, is the modem's device driver. This 
makes it possible for programmers to 
write their own custom terminal or BBS 
software for the XM301. 

On top of all this, you get introduc- 
tory offers to online services and dis- 
count coupons that by themselves are 
worth more than the cost of the XM301 
package. There's $15 worth of free time 
on CompuServe, a $20 discount for 
joining The Source, a $75 password and 
hour's time on Dow Jones News/ 



58 COMPUTE) March 19B6 



WITH THESE NEW IHTHODUCTOHY BOOKS FROM COMPUTE! BOOKS. 



These titles will tieip you unleash the power inside your computer. Whether you're an 
experienced programmer tearaing a new language or a beginner just starting out, these 
books will show you, clearly and ifuickly, how to get more than you ever thought 
possible from your computer. 



WE AMAZING AMIGA 



The Amiga: Your First Computer 

Dan McNeill 

Written in a lively and entertaining style, this book teaches 

everything a beginner needs to know to get started quickly 

with the Amiga from Commodore. You'll learn about setting 

up the system, some of the most popular types of software, 

and details about the hardware. 

ISBN 0-87455-0254 

$16.95 

Using AmigaDOS 

Arlan R, Levitan and Sheldon Leemon 
A comprehensive reference guide and tutorial to the 
powerful AmigaDOS— the operating system underlying the 
Workbench and Intuition— this book offers information 
useful to every Amiga owner. AmigaDOS, the alternative to 
the icon-based Workbench, lets you control the computer 
directly Using AmigaDOS defines and illustrates all DOS 
commands, and shows you how to create file directories, 
access peripherals, and run batch file programs. You'll learn 
why the system prompts you to swap disks, and how to 
avoid "disk shuffle," The screen- and line-oriented text 
editors, both overlooked in the user's guide which comes 
with the Amiga, are explained in 'detail. Numerous examples 
and techniques show you how to use AmigaDOS to make 
operating your computer even more convenient, A full 
reference section details each DOS command, giving you 
easy access to the complete AmigaDOS, 
ISBN 0-87455-047-5 
$14.95 



BRING THE ATARI ST ALIVE 



Introduction to Sound and Graphics on the 
Atari ST 

Tim Knight 

The ST, Atari's powerful new computer, is an esrtraordinariiy 

impressive sound and graphics machine. Easy to use, the 

ST can produce color graphics and sound. You'll find 

thorough descriptions of the computer's abilities, and the 

information needed to create a complete sound and graphics 

system. This is the perfect introductory reference to sound 

and graphics on the Atari ST 

ISBN 0-87455-035-1 

$14.95 



LEARH C 



From BASIC to C 

Harley M. Templeton 

This introduction to C takes you by the hand and shows 
how to move from BASIC to this increasingly popular 
language. BASIC programmers will find this approach 
designed just for them. Early chapters discuss C language 
equivalents for common BASIC statements and the 
similarities and differences between BASIC and 0. Later 
chapters teach everything you need to know to write, debug, 
and compile programs in C. 
ISBN 0-87455-026-2 
$16.95 



Visit your local bookstore or computer store to purchase any of these new, exciting books from 

COMPUTE! Publications. Or order directly from COMPUTE!. Call toll free 1-800-346-6767 

(in NY 212-265-8360) or mall your check or money order (including $2.00 shipping and handling per 

book) to COMPUTE! Books, P.O. Box 5038, F.D.R. Station, New York, NY 10150. 



COMPUTE! Publicationsjnc® 

One of the ABC Publishing Companies ^^^ 



825 7th Avenue. 6th Floor. Mew 



COMPUTE! books are available in the U.K., Eurape. the Middle East, and Africa 
from Holt Saunders, Ltd., 1 St. Anne's Road, Eastbourne, East Sussex BfJ21 
3UN, England and in Canada from Holt, Rinehart, & Winston, 55 Homer Ave., 
Toronto, ON IV18Z 4X6. 



Retrieval, a $10 coupon for joining Dia- 
log's Knowledge Index, and a free pass- 
word and month's access to Dun & 
Bradstreet's electronic edition of the 
Official Airline Guides. 

The Atari XM301 package is defi- 
nitely one of today's best values in 
telecomputing. 

Atari XM301 
Atari Corporation 
1196 Borregas Avenue 
Sunnyvale, CA 94088 
$49.95 



BduCalc And 
NofeCard Maker 

Karen G. McCullough 

Requirements: Commodore 64 or 128 (in 
64 mode} with a disk drive; Apple Il-series 
computer with at least 64K RAM and a 
disk drive; or an IBM PC/PCjr with a disk 
drive. The Apple version was reviewed. 

Recent attempts to teach computer lit- 
eracy have focused on familiarizing stu- 
dents with the software tools 
commonly used on personal comput- 
ers. To assist that effort, Grolier Elec- 
tronic Publishing, Inc. has released two 
programs: EduCalc and NoteCard Maker. 
Each is a simplified version of a popular 
type of software for personal computers 
and is aimed at junior to senior high 
school students. 

EduCalc is a spreadsheet — a 
stripped-down, bare-bones version of 
programs like VisiCalc, MuUiplan, and 
Lotus 1-2-3. Spreadsheets allow com- 
puters to perform sophisticated mathe- 
matical operations on large quantities 
of numbers. As with all spreadsheets, 
EduCalc lets you enter numbers, mathe- 
matical formulas, or text in rows and 
columns on the screen, Each piece of 
information is stored in a cell identified 
by a letter for the column and a number 
for the row. The numbers entered into 
the cells can be manipulated in various 
ways by other cells containing formu- 
las. The result of a particular operation 
is displayed in that formula's cell. 

EduCalc includes a tutorial which 
serves as an excellent introduction to 
spreadsheets in general as well as to 
EduCalc. It's simple, clear, and should 
make novices comfortable vi^ith the pro- 
gram in 15 to 20 minutes. A practice 
template lets you experiment with the 
program. Unlike more powerful spread- 
sheets intended for professional busi- 



ness applications, EduCalc is extremely 
easy to use. Menus guide you through 
lists of options, and various functions 
are displayed on the screen along with 
advice on using them. The program 
does a good job of protecting you 
against errors. 

No Shortcuts 

But there's a price for that simplicity. 
Where EduCalc is friendly to novice 
users, it may frustrate those who be- 
come more experienced with it. The 
program structure is rigid — there are no 
shortcuts. 

For example, to enter a formula to 
add up a column of numbers, you 
choose Enter from the Tool menu, 
move the highlighted cursor to the cell 
where the results are to be displayed, 
choose Formula from the Entry menu, 
and press S for sum. Then you move 
the cursor to the first cell of the column 
to be totaled, press RETURN, move the 
cursor to the last cell of the column, and 
press RETURN again. It sounds easy 
and logical, but it's also fnistratingly 
time-consuming if the column is 40 fig- 
ures long. 

There are other limitations as well. 
Only mathematical operations can be 
performed — there are no logical or 
lookup functions. And you can't jump 
directly to a specific cell on the spread- 
sheet — you must move there with the 
cursor. That can be very slow on a large 
sheet,, because the program redraws the 
screen each time the cursor moves off 
the edge. 

The EduCalc manual could use 
larger print, an index, and better expla- 
nations. For example, when you're sav- 
ing a spreadsheet on disk for the first 
time, the manual says the program 
should ask if you want to initialize the 
disk. But the program doesn't. Fortu- 
nately my disk was already initialized, 
so I had no problem reloading the 
spreadsheet. 

A Quick Organizer 

NoteCard Maker is a simplified database 
manager program. As its name implies, 
NoteCard Maker is intended to help stu- 
dents collect and organize information, 
especially when writing reports or term 
papers. It transforms the screen into a 
series of electronic note and bibliogra- 
phy cards. After entering information 
onto the cards, students can search for 
specific items or sort them in various 
ways. 

The tutorial that comes with Nofe- 
Card Maker is just as effective as Edu- 
Calc's. Most junior high school students 
will be comfortable with the program 
after 20 minutes' work. And if they 
forget what to do at any point while 
entering information, they can simply 



press CTRL-A to bring up a screenful of 
advice. 

The process of entering infor- 
mation and editing the cards is simple 
and straightforward, and once the cards 
are created, there are plenty of options 
for using them. Both notecards and bib- 
liography cards can be searched, sorted, 
viewed on screen, and listed on a 
printer. 

Like EdtiCalc, NoteCard Maker's 
main drawback is rigid structure. There 
are only three options for file size, and 
the size can't be changed once the file is 
created. Nor can you alter the format of 
the cards or bibliographic information. 
Also, NoteCard Maker lets you create a 
duplicate file without warning that a 
file of the same name already exists. 

Both EduCalc and NoteCard Maker 
are excellent programs for introducing 
students or nonces to spreadsheets and 
database managers. They also may be 
the solution if you need a simple 
spreadsheet or database without a lot of 
complex commands. For these purposes, 
both programs are effective tools. 

EduCalc 

NoteCard Maker 

Grolier Electronic Publislujig, Inc. 

95 Madison Avenue 

New York, NY 10016 

$49.95 (EduCalc) 

$59.95 (NoteCard Maker) 



Hex For Atari ST 



George Miller, 

Assistant Technical Editor 

Requirements: Atari ST computer and a 
joystick. 



Colors swirl about you, constantly 
changing patterns as the arena is affect- 
ed first by your magic, then by the 
magical powers of your opponent. 
Might this be the day that you divine 
the secrets of this mystical realm and 
emerge victorious, hailed by all as the 
most powerful magician in the universe? 




60 COMPUTil March 1986 



ATARI 
130XE 

ATARI 130XE Super 

Computer Package 

130XE Compuler 

1050 Disy Drtve 

1027 Pnrner 

Alariwriter 

CALL 

ATARI PRINTER 

INTERFACES 

Uprini A 54.95 

Uprint AW/16K . . . 79 95 
Uprini AW/64K . . . 99.95 

yPP1150 59.95 

INDUS GT 

□ ISKDRIVE.-.Call 

ATARI 130XE SUPER 

PRINTER PKGS. 
SG-IO Printer 

and U-Pnnt A . . . 279 
Panasonic 1091 

and U-Print A . . 309 
Super Printer Packages 
have no extra snipping 
charges or credit caret 
surcharges when ship- 
oed in Continsntal iJSA 

ATARI 130XE 
SOFTWARE 

BROOERBUND 

PnnlShDP 29 95 

Karaieka 2095 

Piinl Siiop 

Graph I, II. or III .. , 1995 
PrintShopComp. ... 27 95 

INFOCOM 

See Ccmmotfore 64 sec- 
Jion for items and prices 

ELECTRONIC ARTS 

Archonll 24.95 

Archon 19.95 

Seven Cil. of Gold ... 24.95 

Skylox 24 95 

PinballConsi 24 95 

One on One 24.95 

MICROPROSE 

Silent Service 23.95 

Gunship 23.95 

Accrqel 23 95 

F-l5Slrike Eagle ... 23 95 
Kennedy Approach ..23 95 
OSS 

Basic XE-Carl 52 95 

MAC 65 XL-Carl 49.95 

Action-Cart 49.95 

Basic XL-Cart 3995 

All Tool Kits 20.95 

BATTERIES INCLUDED 

HamePak 34 95 

Paper Clip 3995 

e-Graph 34.95 

SYNAPSE 

Syncalc 32.95 

Synlile 32.95 

Synlrend 25.95 

Syncatc Ttr^plales ... 16.95 
^oderunner Rescue . . 20 95 

ymdAheel 27.95 

Essex 27 95 

Srimsione 27.95 

SSE 

See Commodore 64 sec- 
tion for Hems and prices 

MISCELLANEOUS 130XE 

Hacker 19 95 

Amer Cross Ciry ... 19 95 
Right Simulalor II ... 34 95 

'Jllimall 37,95 

Jllimatll 37 95 

Jniverse 69,96 

Letter Perfect 39.95 

Data Perfect 39.95 

iHalleyProiecl 2795 

Ijltimal 2395 

Ultima IV 4195 

MHG Basic Comp . . . 69 95 



ATARI 
520ST* 

Atari S20ST- 

RGB System.-.Cail 
Atari 520ST-Mono- 
chrome Sys. . .Call 
SF314DS/DD 
1 Megabyte Disk 

Drive Call 

We warranty all 
520ST computers 
purchased from 
ComputAbility tor 

!^inety days. 
'Please call (or 
stock availability 

on Atari ST 
products before 
ordering by mall. 

ATARI 520ST 
SOFTWARE 

HABA SYSTEMS 

Hippo C 54 95 

Haba Write 54.95 

HabaCaic 54.95 

Haba Graph .54.95 

Haba File 54.95 

MISCELLANEOUS ST 

VIP Professional .... 129,95 

Ullimall 39 95 

Perry Mason 34 95 

Degas 27 95 

Far!nheil451 34,95 

Amazon ....... 34.95 

Hacker 29.95 

The Final Word 94.95 

DeiaVu 39.95 

PC/lnlercom 89.95 

HCK ...27 95 

Crimson Crown 27 95 

Mudpies 23.95 

King's Quest II Call 

Galo Call 

Boriowed Time 34.95 

Personal Prolog 79,95 

Personal Pascal 64.95 

Zoomracks Call 

Mi-Term 5495 

RegeniWoid 3495 

INFOCOM ST 

Deadline 34.95 

StarCfOSS 34.95 

Zork I. II. or III 29.95 

Witness 27.95 

Suspended 34.95 

Plaoelfall 27.95 

Sorcerer 29.95 

Seasialker 27.95 

Culthroais 27.95 

Hitchiker 27 95 

Suspect 2995 

Wishbringer 27.95 

Inlidel 2995 

Enchanter.., 2795 

Spellbreaker , 3495 

Mind Forever Voy ...3495 

AMIGA 

AMIGA PERSONAL 
computer* 

Call (or Hordwere and 
add-on peripherals prices 

AMIGA SOFTWARE 

Afchon 27.95 

ArllcFox 27.95 

Deluxe Paint 59,95 

Fin Cookbook 34 95 

One on One 27 95 

Seven Cities 27.95 

Skyfox 27.95 

Hacker 29.95 

Mindshadow 29.95 

•Please call for 

availability of Amiga 

products before 

ordering by mall 



-EST. 19B2 - 



We stock hundreds of 
programs for the Apple, 
Atari, C-64and IBM. 
If you don't see it listed here, 
don't hesitate "^ 

to call.,----'-|7jj3e I®' 



M»«*^ 



APPLE 

PRINTER 

INTERFACES 

AND BOARDS 

Apricorn Parallel 

w/Grapfiics 69.96 

Apricarn 16K Expansion 

Board 62.95 

Apricorn 80 

Column 8rd. . . .64.95 
Apricorn RS232 

Interface,.,,.,. 69. 95 
U-Prinl-Apple IIC 

W/64K 109.95 

U-Print-ApplellC 

W/16K 89.95 



LASER 3000 
PERSONAL 
COMPUTER 

Apple 2'- Compatible 
Buill-in Microsoft 

Basic in ROM 
Built-in RGB and 

Composite Video 
Buill-in SO Coljmn 

Display 
Built-in Centronics 

Printer Interface 
BjiH-in Numeric Keypad 
192K RAM 
Sun<][ed ProdiiCtiuity 

Software 
Disk Drive 
Alt this and more for the 

amaiing LOW pnce 



S399 



APPLE SOFTWARE 



BRODERBUND 

PnnlShop 33 95 

Print Shop Graphics 

I. II, or 111 1795 

Print Shop Comp 27 95 

Karateka 2195 

Carmen Sandiego 25 95 

Science Tool Kit 39 95 

Bank Street Writer ...44 95 

Fantavision Call 

ELECTflONIC ARTS 

Adventure Const 34.95 

Arction 11 27 95 

Bards Tale 29 95 

Imagic Football 24 95 

Auto-DucI 34 95 

Skylox 27 96 

Lords o1 Conquest ...27 95 

One on One 27K 

Ultima III 3995 

Ultima IV 39.95 

EPYX 

Balltlazei 2495 

Winter Games 2495 

Summer Games II 24 96 

Worlds Great/ 

Fooitiall 2495 

INFOCOM 

Sqq A\a{\^2Q^J secUonior 
ixems and prices. 

MICROPROSE 

See A i$ri } 30XE secUon to 

Items and pnces 

MINDSCAPE 

Color Me 2095 

Crossword Magic 34 95 

Halley Project 2995 

A View To Kill 27 95 

Racter 2995 

The Mist 27 95 

Perfect Score 4995 

VOOSOO Island 2795 



OAVIOSON 

Math Blaster 34 95 

Alge-Blaster 34 95 

Spell It 34 95 

Word Attack 34 95 

SIMON & SCHUSTER 

Typing Tulor III 34 95 

KobiasniAdv 2995 

WeMter Spell Chk ...34,95 
Webster Thesaurus ... 84 95 
LovejoySAT 4995 

SIR-TECH 

Wiiardry/Diara 23 95 

Wizardry/Legac¥.,..27 95 
Wizardry/Proving ...33 95 
Wizardry/Wernda ,..29 95 
Wizlprint 1995 

SSI 

See Commodore 64 sec- 
tion tor (ferns & prices. 
APPLE NIISEELLANEOUS 

Beach-Head 2395 

Beach-Headll 23 95 

Gamemaker 2795 

Hacker 2795 

Hardball 24 95 

Sundog 2795 

Paperclip 64 95 

DLM Snft*are Call 

The Works 34.95 

Star League Base. ...2395 

Educalc 34 95 

Friendly Filer 27,95 

Note Card Maker ... .2795 

Hayden Software Call 

Microleague Base ...2995 

Random House Call 

PfS Sottware Call 

Newsroom 39.95 

Gato 27 95 

Weekly Reader Call 



■EST. 1982 



COMMODORE 
128 

C-128 Computer. . Call 
1571 Disk Drive . . Call 
1902 Monitor .... Call 
1670 Modem , , . . Call 
Westridfle 6470 300/ 
1J00 Modem.. 179.35 



IBM PC 

IBM PC SYSTEMS 

Configured to your 

specific needs 

Call for lowest price on 

IBM-PC, IBM -XT 

or IBM-AT 

Corona PC-400 

Compatible . . Call 

Corona Portable PC 

Compatible . . Call 

PC Multifunction 

Boards 

We carry the 

complete line of 

AST, IHercules, 

Paradise, STB, 

and Ouadram 

Call for current 

prices 

IBM PC SOFTWARE 

Prinl Shop 39 95 

Prim Sl-op Graph I . . 27.95 
Bank Street Writer... 49.95 
Ancient Art of War . . 29.S5 

BORLAND 

Sidekick 37.95 

Turbo Pascal 49.95 

BLUE CHIP 

Saron 34.95 

Squire 34.95 

Millionaire 34.95 

Tycoon 34.95 

DIGITAL RESEARCH 
Call lor iterns and prices. 
INFOCOM 

See Atsn 520ST fcr items 

e/i<? prices 
LEADING EDGE 

Nutshell 69.95 

LE/WP Basic 67.95 

LE/Word Proc 
■i^Speller 169.95 

MICROPROSE 

F-15 Strike Eajle .... 23.95 
Kennedy Approach .. 27.95 

Acroiet 27.95 

Silent Service 27 95 

MICROSOFT 

Flight simulator 38 95 

Word 249 DO 

Mutliplan 134 95 

MINOSCAPE 

See Apple Section for 
iiems antf pffces- 

SIERRA 

King's Quest 34.95 

Kings Quest II 31.95 

Ultima II 39.95 

THOUGHTWARE 

Call (or Hems and prices. 

IBM MISCELLANEOUS 

PFS Call 

Gato 27.95 

Wizaidry 39.95 

Strip Poker 2795 

Electric Desk 204 95 

D-Baseill Call 

Sideways 39.95 

HomePak 34.95 

Sargonlll 34.95 

Peachtree Call 

del 34.95 

BPI Business Call 

\ewstoom 39.95 



COMMODORE 
128 SOFTWARE 

Multiplan64/I2B. 44 95 

Consultant 52 95 

Paper Clip 'Spell 54 95 

Swillcalc 49 35 

Wordwnter 49 96 

Dala Manager . . 49 95 

Fleet System II . . 44 95 

Superbase 128 . . 69 95 

Macn W128 , . ,, 34 95 



C-64 SUPER 

COMPUTER 

PACKAGE 

c-64 Compuier 

1541 Disk Drive 

803 Prinlcr 

ONLY *399 

c-64 SUPER 
PRINTER PKCS. 

SG-10£G-Wiz ... 279 
Panasonic 1091 S 

G-Wiz 309 

Legend IDBO S 

G-Wiz 269 

If Xatec Supergraptilc 

is desired add $10 

to package. 

Super Printer paci<3ges 

have no added shipping or 

ctisrge card surcharges 

erfded when shipped m 

Conlinenlal USA 

Westridge AA/AD 
Modem . . 49.95 
Cardco 
G-Wiz . . . S4.95 



GENERAL 
HARDWARE | 

SG-10 215 

SG-15 369 

SD-10 339 

SD-15 449 

SR-10 489 

SR-15 Call 

PRINTERS 

Panasonic 1091 245 

Legend BOS 169 

Legend 1060 209 

Poweilype, 309 

Juki 5510 389 

Epson Call 

PRINTER BUFFERS 

MIcrofazer From 169 

U-BuH 16K 79 95 

U-Bulf64K 99 95 

MODEMS 

US Robotics 2400 469 

Volksmodem T200 169 

Prometheus 1200 319 

Password 1200 209 

Novation Call 

PC Modems Call 

MONITORS 

Technika MJ.22RGB . . . . 269 

SakataSC-100 1G9 

Samsung ir Green.. 7995 
Samsung 12" Amb. . . 79.95 

Taxan Call 

Amdek Call 

Commodore 1802 169 



COMMODORE 04 SOFTWARE 



P.O. Bo« 17682. Milwaukee, Wl 53217 

QROEfl LINES OPEN 

Mon-Fri 11 a.m. - 7 p.m. CST • Sat. 12 pm. - 5 p.m. CST 



To Order Call Toll Free 

800-558-0003 






ACCESS 

Beach.Head 2195 

Beach.Headll 24 95 

Raid/Moscow 24,95 

MachV-Cart 2195 

INFOCOM 

Zork I 24 95 

Zork II. or III 2795 

Deadline 29.95 

Slarcross 29.95 

Witness a.95 

Planeilall 24.95 

Hitchiker 24 95 

Enchanter 24.95 

Cutthroats 24.95 

Sorcerer .29.95 

SpellOreakcr 29.95 

SSI 

Battallion 

Commander 24,95 

Battle of 

Antletnam 32.95 

Fighter Command 

(No Aiaril 37.95 

Norway 35 

(No Atari! 21.95 

Panzer Grenidier 2495 

USAAF 3795 

Breakthrough/ 

Ardennes 37,95 

Kampgruppe 37,95 

Phantasie 

(No Atari) 24,95 

Broadsides 24 95 

Carrier Force ...... .3795 

Comp Ambush 37.95 

Mech Brigade 

(No Atari) 3795 

Field of Fire 

(No Apple) 24 95 

Op. Mkt Garden 32 95 

Pro Tour Golf 

(No Atari) 2495 

Gemslone Warrior ...2195 

Imp Galaetom 24 95 

Compuier Baseball.. .24 95 
Comp auarierback...2495 



ELECTRONIC ARTS 

Adv. Conslruction ,,.29.95 
Mail Order Monster ..24.95 
Racing Destruction — 24.95 

Ulumalll 37.95 

UllimalV 4195 

Bards Tale 27 95 

See Atari 130XE section tor 
rest ot Items & prices. 

EPYX 

Eidolon 24 95 

KoronisBift 24.95 

Winter Games 24.95 

Apshai Trilogy 24,95 

Fast Load-Cart 24 95 

Program ( Tool Kll ....2995 

MICROPROSE 

See Atah t30XE section 
lor Items and prices. 

MISCELUNEOUS 

CQIWM0D0RE64 

Print Siiop 2895 

Cal-Kit 34.95 

Supert)ase64 4795 

Karaieka 20.95 

Hacker 2095 

Gamemaker 27.95 

Ultima II 37,96 

Karate Champ 25.95 

Essex 27.95 

Kung Fu/ 

Kung Fu Master 2595 

9 Princes of Amber ... 22 95 
Spy vs. Spy Vol. II ...2395 

MaxiGoll 2495 

Internarl Hockey 19 95 

The Fourfh Proto 23 96 

Blazing Paddles 2495 

Mirage Word 3495 

Mirage Database 3495 

Welcome Aboard 1995 

Super Huey 1495 

Spell It 3495 

Malh Blaster 3495, 

Word Attack 34 951 

Odesta Chess 4995 

Brimstone 2795 



For Technical Info., Order Inquiries, or for Wise. Orders 

414-351 -2007 



ORDERING INFORMATION: PleaseipidfyirilBin. For (a si delivery send cashier's check cr money arder Personal and company c:hecks allow 14busmessdays Id clear School PO s w^lcon^e: C.Q.O.chir]|iitiri 
O.ODJn Conijnenial USA include S3 00 far sollware orders. 4^: shipping lor hardware, minimum $4 00 Master Card and Visa ordersplease include cardj* explraimn dale and signature Wl residents plea&e inclL(te5^i 
sales tax HI.AK fPO.APO. Puerto Rico and Canadian orders, please add 5'-: shipping. mlnJnumSg,(n. All other rorilgnordiriidd 15% ihipplng. minimum S1Q.D0. All orders shipped □ U S A are shipped 

lirst class rnsured 11 S mail Jl larelgri shipping charge^^ exceed the minimum amouni. yoy wi[l be charged tlieaddilional amounl loget your package to yoj quickly and safely All goods are new and include lactory 
warranty. Due to our low puces all £ales are final Alt difntivi nturnx muii hivi i nturn lulhorizitliHi nunbir. Please call (414| 351 -^7 lo obtain an R. A. If or your return will not be accepted . Prices and availabilily subject lo 
change Without nonce 



Hex is a colorful and deceptively 
simple game. Your goal is to change the 
19 hexagonal blocks of the arena to 
green before your opponent — con- 
trolled by the computer — can turn 
them to purple. All it takes to change a 
block's color is to jump on it with your 
onscreen character. Each block changes 
color in a sequence displayed at the 
start of each level: green, then red, then 
purple, and finally blue before the se- 
quence repeats. Seemingly a simple 
enough task. 

Each of the 12 opponents you face 
employs a different strategy. Some op- 
ponents try to overpower you by the 
force of their magic, while others com- 
bine magic with cunning strategy and 
wisdom. If that isn't enough, at higher 
levels you may be confronted by sever- 
al rival magicians, all working against 
you. You must learn the game well and 
plan your strategy carefully on the low- 
er levels, because the computer be- 
comes relentless as you progress to 
higher levels. There is no margin for 
error. 

After successfully completing a 
round, you're offered the chance to 
learn a new magic spell. Each spell is 
costly, and you must exercise good 
judgment before undertaking the nec- 
essary instruction. Is the cost of the 
spell too high in energy points? Will it 
leave you too weak to face your next 
opponent? 

Fast reflexes won't help in Hex. In 
fact, the key to early success is to play 
slowly and carefully, considering each 
move, much as in chess. Don't let the 
speed at which the computer plays trick 
you into making quick decisions. 
You're facing an opponent who is ana- 
lyzing your tactics much faster than you 
can respond. Each rapid-fire move by 
the computer has a purpose; you must 
watch closely and try to disrupt its 
plans. 

Hex may be one of the most chal- 
lenging and fascinating strategy games 
yet devised for a computer. Although 
the game is simple to leam, you need to 
develop complex strategies to win con- 
sistently. You'll be amazed at how 
quickly your opponent ceases to be just 
a computer and seems to acquire dis- 
tinct personality traits of its own. 

Hex 

Mark of the Unicorn, Inc. 

222 Third Street 

Cambridge, MA 02142 

$39.95 



SyMa Porter's Personal 
Financial Pianner 



Selby Bateman, Features Editor 

Recjuirements: Commodore 64 or 128 (in 
64 mode or 128 mode); Apple Uc or lie 
with 1 28K RAM; or an IBM PC/PCjr with 
at least 12SK RAM. One or two disk drives 
are also required. Printer optional, but 
highly recommended. The Commodore 64 
version was reviewed. 



For many people, gaining control of a 
household budget is an exercise in frus- 
tration. Where do you start? How do 
you organize all those daily purchases, 
bill payments, unexpected expenses, 
and (far-too-few) paychecks into a co- 
herent picture? Faced with this confu- 
sion, many of us go from day to day and 
month to month with little idea how 
much we have, how much we owe, and 
what's left over for savings and long- 
term financial goals. This is especially 
critical now, when consumer debt is at 
an all-time high and personal savings 
have plummeted. 

The good news is that you can 
bring order to your financial chaos. Syl- 
via Porter's Personal Financial Planner is 
a well-organized, flexible, and sophisti- 
cated computer program that can make 
a major difference in your budgeting 
and planning efforts. The sobering 
news is that you're still going to have to 
invest a significant amount of time and 
concentration to set up your personal 
system and then use it on a regular 
basis. This isn't meant as a criticism of 
the Persona/ Financial Plajiner, however. 
It's simply a reality of personal financial 
planning in general, whether you man- 
age it with pen and paper or on a 
computer screen. 

Many people will be familiar with 
Sylvia Porter's name. She's been a re- 
spected and popular financial adviser 
for years — the author of a variety of 
articles and books, plus a nationally 
syndicated newspaper column, about 
budgeting, financial planning and man- 
agement, and economics. More recent- 
ly, she's lent her name and expertise to 
Sylvia Porter's Personal Finance 
Magazine. 

The editors of that magazine have 
contributed to the overall approach and 
content of the Personal Financial Plan- 
ner, which is supposed to be the first 
module in an integrated series of finan- 
cial planning and management pro- 
grams from Timeworks bearing Sylvia 
Porter's name. The next program, ten- 
tatively scheduled for this spring or 
summer, is Personal Investment Planner. 



Six Programs in One 

The strength of Personal Financial Plan- 
ner lies in its flexibility, integration of 
information, and its well-planned 
structure. Think of Persona/ Financial 
Planner as six interrelated programs 
which share all of your financial 
information: 

Transaction Manager: A program 
that lets you record and monitor all of 
your cash, bank account, and credit 
card transactions. 

Budget Manager: A budget plan- 
ning tool which automatically incorpo- 
rates information from the Transaction 
Manager. 

Asset/Liability Manager: An 
overview showing all that you own and 
all that you owe. 

Income and Expense Statement: 
A part of the program that lets you 
organize and then print out income and 
expense statements in a variety of 
ways. 

Balance Sheet: A similar compo- 
nent which allows you to arrange and 
print your asset and liability state- 
ments. 

Financial Planner: A long-range 
planning guide that helps you set goals 
based on your income, expenses, and 
your changing asset/liability picture. 

Pull-down menus and submenus 
make it quite easy to move around in 
the system. The documentation is clear, 
even for someone unfamiliar with 
computers. 

Backups Take Time 

Before you can begin using the pro- 
gram, you must initialize a data disk for 
each of the program managers — three 
data disks in all. On the Commodore 
64, this initialization process requires 
more than a half-hour to complete. A 
data disk can generally store up to 
1,250 transactions, so this initialization 
is only an occasional necessity. How- 
ever, making backup copies of your 
data disks (an important precaution) is 
also time-consuming. The backup pro- 
cess doesn't just add new information 
to the backup disk; it completely re- 
writes the disk each time you make a 
backup. Because of the delay, it's 
tempting to skip this step now and 
then — risking disaster if your original 
disk should get lost or crash. 

At least vfith the Commodore 64 
version, there are a few instances when 
the manual doesn't mention that disk 
swaps are necessary. However, 



62 COMPUTB March 1986 



onscreen prompts are very helpful here. 
And although the disk swapping can be 
an annoyance, the linutations lie with 
the 64 and 1541 disk drive, rather than 
with the program itself. Other com- 
puter versions, while functionally simi- 
lar, have more space for information 
storage than the Commodore 64 version. 

Once your data disks are prepared, 
your next step is to use the Transaction 
Manager to enter two-digit codes for up 
to five bank accounts (checking, money 
market, etc.) and up to ten credit card 
accounts, along with complete account 
information. As a part of this initial 
cataloging, you'll also set up a series of 
transaction/budget categories that 
you'll use with your various transac- 
tions. There are 14 major categories, 
including Income, Loans, Taxes, Gro- 
ceries, Residence, Utilities, Clothing, 
Transportation, Insurance, Recreation, 
Medical/Dental, Education, Miscella- 
neous, and Other. 

Each category has up to ten sub- 
categories — a total of 140 separate 
budget/transaction items. What's 
more, each can be individually tailored 
to your specific requirements, a very 
nice feature of this program. 

Why all of those categories and 
codes? If Personal Financial Planner was 
just a checkbook balancing program or 
a simple budget package, little cross- 
referencing would be required. But each 
of the categories you establish can be 
transferred among the Transaction, 
Budget, and Asset/Liability managers. 
Hence, the computer must have a good 
way of keeping track of each item. This 
is also important when you later want 
the program to find and print (on 
screen, paper, or disk) information on 
individual accounts, credit cards, or 
subcategories. Once you've set these up 
and used the program a couple of times, 
you'll find you're comfortable with the 
structure. And you can easily generate a 
printout of the different categories and 
codes for quick reference. 

Calculator And Notepad 

The initial effort it takes to establish 
budget categories is the most time- 
consuming aspect of Personal Financial 
Planner. Once that's done, much of the 
program transfers information auto- 
matically, or with just a few keystrokes. 
Templates automatically appear on the 
screen, letting you add, delete, and alter 
virtually any part of your budget. The 
program also lets you include infor- 
mation on automatic transactions — 
those recurring accounts such as rent, 
house payments, or loans — so that each 
month you don't have to enter all of the 
information by hand. 

Among the many features are pro- 
cedures for monthly reconciliation of 




bank statements; searching for, chang- 
ing, and printing out almost any part of 
your transaction, budget, or asset/liabi- 
lity data; automatically updating bud- 
get goals versus budget realities; setting 
up graphs and charts to show important 
aspects of your budget; tracking your 
financial inventory; and using financial 
planning worksheets that can be com- 
pared and contrasted with past, pre- 
sent, and future financial information. 

There are many nice touches in 
Personal Financial Planner. In addition 
to the flexibility within each of the 
manager sections, there's a calculator 
and a notepad which can be called up at 
anytime. Also, you can search and 
modify your data, print out checks, 
track and print out tax information, and 
produce custom-tailored financial 
statements. 

Timeworks and Sylvia Porter have 
created a serious tool with which indi- 
viduals and families can track just 
about any aspect of their finances. But 
for the program to be truly useful, 
you'll have to make a commitment to 
keep your transaction information up to 
date. And that means spending as 
much as an hour per week (sometimes 
more, depending on what you're doing) 
working with the Personal Financial 
Planner. 

If you devote this time to using the 
program, you'll have a clearer picture of 
your financial status than ever before; 
your budgeting will be tied in with your 
daily transactions; and you'll find your- 
self planning for the future with con- 
crete information. For those who have 
trouble budgeting, tracking their trans- 
actions, and planning toward financial 
goals, Sylvia Porter's Personal Financial 
Planner can be an excellent investment. 

Sylvia Porter's Personal Financial Planner 
Timeworks, Inc. 
444 Lake Cook Road 
Deerfield, IL 60015 
Commodore 64 version — $59.95 
Commodore 128 version— $69.95 
Apple Uc/Ue version— $99.95 
IBM PC/PCjr veTsion—$U9.95 



Save Your 
Copies of 
COMPUTE! 

Protect your back issues 
of COMPUTE! in dufoble 
binders or library coses. 
Bach binder or cose is 
custom-made in flag-blue 
binding with embossed 
wfiite lettering. Each holds 
a year of COMPUTE!. Or- 
der several and keep 
your issues of COMPUTE! 
neatly organized for quick 
reference. (These binders 
moke great gifts, too!) 




Binders Cases: 

$8.50 each; $6.95 each; 

3 for $24.75; 3 for $20,00; 

6 for $48.00 6 for $36,00 

(Please add $2.50 per unit 
for orders outside the U.S.) 

Send in your prepaid order 
with the attached coupon 



Mail to: Jesse Jones Industries 
P.O. Box 5120 
Dept. Code COTE 
Fhilladelphia, PA 19141 

Please send me COM- 
PUTE! D cases D binders. 
Enclosed is my ctieck or money 

order for S . (U.S. funds 

only.) 

Name 

Address 

City 

State Zip 



Satisfaction guaranteed or money 

refunded. 

Pleose allow 4-6 weeks for delivery. 



nv 

Thit Uiff 
Month Month 

Entortalnmeni 


Tttt* 


Software 

PublKhor 


Best Sellers 

Romark* 


1 


Syttemt 

1 1 i 


1 


1. 1. 

2. 2, 

3. 5. 

4. 

5. 4. 


MS Strike Eagle 
Karateka 
Ultima IV 

Silent Service 
Flight Simulator 11 


MicroPfose 

Broderbund 

Origin Systems, 

Inc. 

MicroPfose 

SubLogic 


Air combat simuiotion 
Action l<arate game 
Fantasy game 

Submarine simuSation 
Aircroft simulation 




• 
• 
• 

• 
• 




• 
• 
• 




1. 1. Typing Tutor III 

2. 2. Math Blasteri 

3. 3, New Improved 

MasterType 
A. 4. Music Construction Set 
S. IAmTheC-64 


Simon & Schuster 
Davidson 

Scarborough 

Eiectfonic Arts 

Creative/ 

Activision 


Typing Instruction program 
introductory moth program, 
ages 6-12 
Typing Instruction program 

Music composition program 
introduction to the C-64 




• 
• 
• 




• 
• 

• 


• 
• 


^. 1. 
2. 2. 
3. 

4. 4. 

6. 5. 


Print Shop 
The Newsroom 
Print Shop Graphics 

Library III 
Print Shop Graphics 

Library 
Three-In-One Bundle 


Broderbund 
Springboard 
Broderbund 

Broderbund 

Timeworks 


Do-it-yourself print shop 
Do-it-yourself newspaper 
Upgraded grophics library 

1 00 additionaf graphics 

Word processor 


• 
• 
■ 

• 


• 
■ 
• 




• 





CopYrlghl 19B5 by Billboard Publications, /nc. Compllsii by fhe BlUboard fleseorch Deparfwent and reprinted by permlsjton. Data as of i2/2i/SS (Bnterlalnment) and 
12/28/B5 (education and home management). 



The 1050 DUPLICATOR IS HERE... 

THE 1050 & 810 DUPLICATOR: The most powerful 
diskdrive copy system ever developed for ttie ATARI. 



The Duplicator 
for The fjew "ST" 

will be ovoiiQbie 
March 1st. 



The only Copy System You will 
ever need! 

What will it do? 

^ JJiB main purpose of the Duplicator Is to copy dlikil You will be 
able to copy jusr about any aiski The copies you make mil run on 
any Atari drive The Duplicator neecJnotbe present to run your 
bockijp copies Ttie Duplicator is luily automatic You need 
only insert source ona tiestination bislis Custom tormots will 
be reed and in turn reproOuced on tt^e backup copy bisk 
Our deyice will reproduce anyc ustom formot or tseovily 
copy guarded scheme, bad sectors double sectors. 
IV through 2^ sector format will present nooroblem 
to the Duplicator 

►■Vou if/Ill still ttave single density, and double 
density. When you hays a Duplicator mstoued in a 
tOSO drive that drive will be turneO info true double 
density You will haye twice the disk storage Your drive 
will be corr:pofible with other double dersily drives as The 
Rona Indus Percom etc 

HARDWARE POWSR 

Fully Compatible with the XL & New XE Series 




►H/gh ipeed rood A write. Your disk brive will reoa and load all 

o< your softwo'e. saving wear and tear on your drive The S10 

and 1050 anves now read one sector ot a tim-e This is stow 

and inefficient With the aupiicatar installed you will be 

able to read eighteen ssc'ors in the time it takes 

slanaora. unenhanced drives to read one 

► Included wllti every Duplicator will be user 

friendly disk software. A simple, menu driven 

program will Oilow you to copy oil o> your 

software A Doolicator enhanced drive niil 

oe a StMRT arive We plan to write many 

new ana exciting programs thai can only be 

run on an enhanced drive, eg sending a 

copy-guarded disk over the c'lone Srnce the 

drive IS now fully programmable, 'utwe upgrades 

can be made available to you on disks should the 

need arise No further hardware changes will ever be 

needed The Duplicator comes with a full hardware and 

software guarantee. 



$149 



95 



Specf'y TheS'Oof lOSOwtien on^enng 
Pfu$ $2 50 *Q{ ^hipptng r^ondlmg 

.V Y Sfc'e If&sia&nn oaa 7'^% Saie: Tax 

Oeaier tnqufres ore M^tcorr.e. Colt 'or QuonTfTy price quore 



EASY 5 MINUTE INSTALLATION 

NO WSiM TO VOUR DRIVE OR INCOMPATfBiUTY PROBLEMS CAN EVER ARISE AS A RESULT OF THE INSTALLATION OF OUR DUPLICATOR. 

IMPORTANT: ^"'V ° hardware device like the DUPLICATOR can backup heavily copy-guarded 
' disks. Don't be looted isy software programs Itial claim to do ttils. , 

- DUPLICATING TECHNOLOGIES inc 

l| Formerly Gardner Com puti ng 

99 Jericho Tpke., Suite 302A Jericho N.Y. 1 1 753 g;fi™« ».. (516) 333-5808. 5805, 5807 ^d wlSena. (516) 333-5950 

TIDMS: Wb oecepf Animlcon Cipren, visa. MotlvCora and C.O,a ordmt. Foralan ardert mutt balr} US. dollars. All ptrtonal chtckt allow U days to dear. We ship wHhln 24 ttourt. 




o 



o 



o 



SpeedCalc 

For Atari 



Kevin Martin and 
Charles Brannon, Program Editor 



In response to popular request, 

COMPUTE! presents this 

professional-quality 

spreadsheet program for Atari 

400, 800, XL, and XE 

computers with at least 48K 

RAM. Written completely in 

high-speed machine language. 

Atari SpeedCalc has all the 

important features you'd 

expect from a commercial 

spreadsheet program. In 

addition, its data files can be 

merged into text files created 

with the Atari SpeedScript 

word processor published last 

year in COMPUTE!. Atari 

SpeedCalc requires a disk 

drive, and a printer is optional 

but recommended. 



Have you ever planned a budget for 
your home or office? If so, you 
probably used some sort of work- 
sheet divided into rows and col- 
umns. Perhaps you wrote the 
months of the year along the top of 
the sheet and listed categories for 
earnings and expenses along one 
side. After entering data for each 
category and month of the year, 
you could calculate total income 
figures by adding or subtracting 
numbers in each of the sheet's 
"cells." 

That's a classic example of a 
worksheet. It lets you enter and 
organize data, then perform calcu- 
lations that produce new infor- 
mation. A spreadsheet program is an 
electronic version of the familiar 
paper worksheet. Since it does all 
the calculations for you at lightning 
speed, an electronic spreadsheet is 
far more convenient than its paper 
counterpart. And spreadsheet pro- 
grams also offer editing features 
that let you enter and manipulate 
large amounts of data with a mini- 
mum of effort. 

Atari SpeedCalc is an all ma- 
chine language spreadsheet pro- 
gram for Atari 400, 800, XL, and XE 
computers with at least 48K RAM. 
Though relatively compact in size, 
SpeedCalc is fast, easy to use, and 
has many of the features found in 
commercial spreadsheet programs. 



March 1986 COMPtnil 65 



Even better, if you print a SpeedCalc 
file to disk (see below), you can 
then merge it with a word process- 
ing document created with Speed- 
Script, COMPUTEl's popular word 
processor (see COMPUTE!, May 
1985, or SpeedScript: The Word Pro- 
cessor for Atari Computers, pub- 
Ushed by COMPUTE! Books). 

Working together, SpeedCalc 
and SpeedScript make a powerful 
team. You can merge a chart of 
sales figures into a company report, 
create a table of scientific data for a 
term paper, and manipulate numer- 
ic information in many other ways. 
In a sense, a spreadsheet program 
brings to arithmetic all of the flexi- 
bility and power that a word pro- 
cessor brings to writing. 

Preparing The Program 

Although Atari SpeedCalc is small 
in comparison to similar commer- 
cial programs, it is one of the long- 
est programs COMPUTE! has ever 
published. Fortunately, the "Atari 
MLX" machine language entry util- 
ity makes it easier to type a pro- 
gram of this size. Be sure to 
carefully read the Atari MLX article 
elsewhere in this issue before you 
begin. Here are the addresses you 
need to enter SpeedCalc with Atari 
MLX: 

Starting address: 8192 
Ending address: 16813 
Run/Init Address: 6192 

Next you'll be asked "Tape or 
Disk." SpeedCalc requires a disk 
drive, so type D. MLX will ask 
"Boot Disk or Binary File." Press F 
to select the Binary File option. (Al- 
though you could save SpeedCalc as 
a boot disk, it makes no sense, since 
such a disk cannot contain DOS, 
and DOS is necessary for file- 
oriented disk access.) 

The screen then shows the first 
prompt, the number 8192 followed 
by a colon. Type in each three-digit 
number showTi in the listing. You 
do not need to type the comma 
shown in the listing. MLX inserts 
the comma automatically. 

The last number you enter in 
each line is a checksum. It represents 
the values of the other numbers in 
the line summed together. Tf you 
type the line correctly, the check- 
sum calculated by MLX and dis- 
played on the screen should match 
the checksum number in the listing. 



If it doesn't match, you have to 
retype the line. MLX is not fool- 
proof, though. It's possible to fool 
the checksum by exchanging the 
position of the three-digit numbers. 
Also, an error in one number can be 
offset by an error in another. MLX 
will help catch your errors, but you 
still must be careful. 

If you want to stop typing al 
some point and pick up later, press 
CTRL-S and follow the screen 
prompts. MLX will ask you for a 
disk filename; use any legal Atari 
filename except AUTORUN.SYS. 
Remember to note the line number 
of the last line you entered. When 
you are ready to continue typing, 
load MLX, answer the prompts as 
you did before, then press CTRL-L. 
For a binary disk file, MLX asks for 
the filename you gave to the par- 
tially typed listing. After the LOAD 
is complete, press CTRL-N and tell 
MLX the line number where you 
stopped. Now continue typing as 
before. 

Saving The Finished 
Program 

When you finish all typing, MLX 
automatically prompts you to save 
SpeedCalc. For disks with Atari 
DOS 2.0, 2.5, or 3.0, save the com- 
pleted program with the filename 
AUTORUN.SYS. This aUows Speed- 
Calc to load and run automatically 
when you boot the disk. 

Because SpeedCalc requires a 
full 48K of RAM in order to work, 
you must always disable BASIC 
before loading or running Speed- 
Calc. On an Atari 400, 800, or 
1200XL, unplug the BASIC cartridge 
(or any other cartridge, for that mat- 
ter). On an Atari 600XL, 800XL, or 
130XE, unplug any cartridges and 
disable BASIC by holding down the 
OPTION button when you first 
svrttch on and boot the computer. If 
you forget to disable BASIC, Speed- 
Calc won't work correctly. 

To use SpeedCalc with an Atari 
DOS disk, you must save or copy it 
on a disk that also contains 
DOS. SYS and DUP.SYS. Since 
you've saved SpeedCalc as AUTO- 
RUN.SYS, it will automatically load 
and run when you turn on your 
computer with this disk in the drive. 
SpeedCalc should always be named 
AUTORUN.SYS in order to load 
properly with Atari DOS. If you 



want to prevent it from automatical- 
ly running for some reason, you can 
save it with another name, then re- 
name it AUTORUN.SYS later. 

If you're using Optimized Sys- 
tem Software's OS/A+ DOS or a 
compatible successor, you can give 
SpeedCalc any filename you like. 
Just use the LOAD command from 
DOS, and SpeedCalc will automati- 
cally run. Or you can give it a file- 
name with the extension .COM, 
such as CALC.COM. Then you can 
start up by just typing CALC at the 
DOS prompt. You can also write a 
simple batch file to boot up Speed- 
Calc automatically. Some enhanced 
DOS packages may use so much 
memory that they conflict with 
SpeedCalc. In this case, you'll need 
to use Atari DOS instead on your 
SpeedCalc disks. 

Note: The AUTORUN.SYS file 
on your DOS master disk is respon- 
sible for booting up the 850 Inter- 
face Module for RS-232 communi- 
cations. There is no easy way to 
combine the 850 boot program with 
SpeedCalc, so you can't access the R; 
device while using this program. If 
you need to send a SpeedCalc file to 
a serial printer or modem, print it to 
disk as explained below, then print 
or transmit the file data as you 
would any ATASCII text. 

The Atari SpeedCa/c 
Screen 

SpeedCalc uses the top line of the 
screen as the command line. This is 
where SpeedCalc displays messages 
and asks you questions. 

Screen lines 2-4 are the input 
buffer area. This is the work area 
where you enter and edit data. As 
you'll see in a moment, the input 
buffer also displays the data con- 
tained in the current cell. The work 
area cursor is a left arrow symbol 
(-). After you begin to enter data, 
most SpeedCalc commands (except 
for the cursor movement keys) are 
deactivated until you press RE- 
TURN to enter the data into the 
worksheet. 

The lower 19 screen lines are 
your window into the spreadsheet. 
Though the spreadsheet contains 
many rows and columns, only a 
few can fit on the screen at one 
time. By scrolling the screen back 
and forth with the cursor, you can 



66 COMPOTH March 1986 



From the publishers of COMPUTE! 




March 1986 
COMPUTE! Disk 



All the exciting programs from the past three issues of COMPUTE! are on 
one timesaving, error-free floppy disk that is ready to load on your Atari 
400/800, XL, and XE. The March 1986 COMPUTE! Disk contains the enter- 
taining and useful Atari programs from the January, February, and March 
1986 issues of COMPUTE!. This easy-to-use disk also features SpeedCalc, 
the spectacular new spreadsheet program written entirely in machine lan- 
guage for the Atari, and the latest version of SpeedScript, the bestselling 
word processing program. 

The March 1986 COMPUTE! Disk costs $12.95 plus $2.00 shipping and han- 
dling and is available only from COMPUTE! PubUcations. 

For added savings and convenience, you may also subscribe to the COM- 
PUTE! Disk. At a cost of only $39.95 a year (a $12.00 savings), you'll receive 
four disks, one every three months. Each disk will contain all the programs 
for your machine from the previous three issues of COMPUTE!. 

This is an excellent way to build your software library while you enjoy the 
quality programs from COMPUTE!, 

Disks and subscriptions are available for Apple, Atari, Commodore, and 
IBM personal computers. Call for details. 

For more information or to order the March 1986 COMPUTE! Disk, call toll 
free 1-800-247-5470 {in Iowa 1-800-532-1272) or write COMPUTE! Disk, P.O. 
Box 10036, Des Moines, lA 50340. 



COMPUTE! PublicationsJncS 



One of t^e ABC Pubhshing Companies 



move the display window to any 
part of the spreadsheet. 

The SpeedCalc worksheet con- 
sists of 50 vertical columns labeled 
with letters (AA, AB ... BX) and 100 
horizontal rows numbered from 
1-100. The rectangle where a row 
and column intersect is called a cell. 
Cells are where you store data. 
With 50 columns and 100 rows, the 
SpeedCalc spreadsheet has a maxi- 
mum of 5,000 (50*100) cells. Due to 
memory limitations, however, only 
about a third of these can actually 
contain data. But you may spread 
out the data over all 5,000 cells if 
necessary, depending on the format 
you need. 

Moving The Cursor 

Each cell is identified with the let- 
ters of its column and the number 
of its row. For example, the cell at 
the extreme upper-left corner of the 
sheet is called AAl, since it's in 
column AA and row 1, The cell 
below that is AA2. Moving one cell 
to the right from AA2 puts you in 
cell AB2, and so on. 

Your current position in the 
spreadsheet is shown by the high- 
lighted cursor. The simplest way to 
move around the sheet is with the 
cursor keys, which work just as 
they do when you're writing or 
editing a BASIC program. Press 



CTRL and the right cursor key to 
move right, and so on. Another 
way to move the cursor is with 
CTRL-H. Press CTRL-H once to 
"home" the cursor on the current 
screen: The cursor moves to the 
upper-left cell. Press CTRL-H twice 
in succession to move the cursor to 
cell AAl, the home position for the 
entire sheet. 

SpeedCalc also has a goto com- 
mand for moving the cursor over 
long distances. When you press 
CTRL-G, the command line dis- 
plays GOTO: followed by a cursor. 
The cursor generally indicates that 
SpeedCalc is waiting for data — in 
this case it expects the name of the 
cell where you wish to go. If you 
enter BA88 at this point, SpeedCalc 
moves the cursor to the cell at col- 
umn BA in row 88, adjusting the 
screen window as needed. Take a 
few moments to practice moving 
around the spreadsheet with all 
three methods; you'll be using 
them a lot. In a later section, we'll 
discuss how to change the size and 
format of a cell. 

Keyboard Commands 

SpeedCalc offers many different 
commands, a few of which are en- 
tered by pressing one key. How- 
ever, most commands are entered 
by pressing CTRL along with an- 



other key. CTRL-G, as you've seen, 
is the goto command. CTRL-A dis- 
plays the amount of free memory 
available, and so on. 

The most drastic command is 
CTRL-X, which exits SpeedCalc and 
returns to DOS. Since this effective- 
ly erases all data in memory, Speed- 
Calc prompts you with ARE YOU 
SURE Y/N? before it shuts down. 
To cancel the command, simply 
type N (or any key other than Y). If 
your Atari DOS 2.0/2.5 disk con- 
tains the file MEM.SAV (created 
with the CREATE MEM.SAV op- 
tion on the DOS menu), you can 
exit to DOS and then return to 
SpeedCalc — however, all spread- 
sheet data will be lost. To restart 
SpeedCalc from the DOS menu after 
exiting, select menu option M (Run 
At Address), then enter the address 
2000. If you're using OS/A+ or 
DOS XL, use RUN 2000 instead. 

If you press SYSTEM RESET in 
SpeedCalc, you'll see the message 
SYSTEM RESET TRAPPED. No 
spreadsheet data is lost. If you're 
using OS/A-h or DOS XL, type 
RUN 2000 to return to SpeedCalc. 

A few commands require you 
to press three keys at once. This 
sounds more awkward than it is in 
practice, since two of the three keys 
are OPTION and CTRL. For in- 
stance, the relative copy command 



SpeedCalc Keyboard Reference 



Use 



tgTillgH 



with most commands 



Ch^ng? Column 
Width 
w/Option; 
Changes all columns 



RtfcalcuUtion Text Color Luminance 

On /Off Increase 

w/Option; w/Option: Decrease 
Cheek Status 



ama 



Edit 
Cell—, 



L 



Change 
Cell 
Format • 



Goto Home 
Cell Cursor 



Print from AAl 
to Cursor 



Clear 

Spreadsheet 
"(w /Shift) 



EIQBO 



CLtftK 
< 



insiKT 

> 



JkSp 



Erok 



Available 
Memory " 



J£]E)0Q0C(D0S 



Return 



1 



Qssm 



Exit ■ 
SpeedCaJe 



Caps 



Disk J 
Directory 



Copv Block 
(Verbatim) 
w/Option: 
Relative 



ReosJculate 
'Now' 



Shift 



Clear Cell 
"Klear" 



Change 
Load Decimal 
Places 



Background Move Block 

Color (Verbatim) 

w/Option: w/Option; 

Previous Relative 
Color 



68 COMPUTEI March 1986 



is perfonned by pressing OPTION- 
CTRL-C (hold down the OPTION 
console key and CTRL, then press 
C). The table lists all the SpeedCalc 
commands, and the figure shows 
the keyboard layout with a descrip- 
tion of what each key does. We'll be 
discussing each command in more 
detail below. 

Three Data Types 

Before entering any data, you must 
know what kind of data SpeedCalc 
accepts. There are three different 
types: numbers, text, and formulas. 
Let's look at each type in turn. 

1. Numeric data consists of num- 
bers — the basic stuff that spread- 
sheets work with. SpeedCalc has a 
few simple rules for numeric data: 
A number must be a decimal value 
(base 10, not hexadecimal) com- 
posed of one or more digits from 
0-9, with an optional plus or minus 
sign. A decimal point is also option- 
al. If you include any other charac- 
ters in numeric input, SpeedCalc 
treats the entire input as text data 
(as explained below). Thus, the 
numbers 123, .001, and -65535 
are valid numeric data. The number 
65,535 is invalid because it includes 
a comma. 

The allowable range for num- 
bers in Atari SpeedCalc is similar to 
the range for Atari BASIC, roughly 
-1.7E-f 97 to 1.7E-H98. If a calcu- 
lation produces a number outside 
the allowable range, you'll see the 
message *ERROR* in the cell con- 
taining the formula. This doesn't 
happen very often, since SpeedCalc 
won't let you enter a number more 
than 36 digits long, and there's 
rarely a need to use such large 
numbers unless you're tracking the 
national debt. 

Although an input value can 
be up to 36 digits long, numbers in 
SpeedCalc calculations are accurate 
only to nine digits. This must be 
taken into account when doing any 
calculation involving large values. 
For example, you can enter the val- 
ue 1122334455.66 into a cell, and 
the cell holds the value with no 
rounding. However, if you use the 
value from that cell in a formula, 
the value is rounded to nine dig- 
its— 112233446.00— and the result 
of the calculation is accurate only 
for the first nine digits. 



You can enter values in scien- 
tific notation by following a num- 
ber with the letter E and the 
appropriate power of 10. For ex- 
ample, you can enter 1,234,000 as 
1.234E-I-06. However, scientific 
notation should generally be avoid- 
ed, since values outside the Atari's 
maximum range may crash the pro- 
gram (if this happens, press RESET 
and rerun the program from DOS 
as explained above). Since there's 
only room for about 36 digits, un- 
predictable results may occur if you 
enter any number in scientific nota- 
tion with an exponent greater than 
35 (E-H35). 

To see how entering numeric 
data works, let's enter the number 
123 in cell AAl. No special com- 
mands are required to enter data: 
Just move the cursor to AAl and 
begin typing. The left-arrow sym- 
bol shows the end of the data. 
While you're entering the number, 
it appears only in the input buffer 
near the top of the screen (the 
inverse-arrow cursor shows your 
cursor position). As soon as you 
press RETURN, the number ap- 
pears in cell AAl and the letter N 
appears at the upper right of the 
screen. The N signifies numeric, 
meaning that SpeedCalc has accept- 
ed the entry as valid numeric data. 
Move the cursor to a vacant cell, 
then move it back to AAl, The in- 
put buffer displays whatever data is 
found in the cell under the cursor. 
When the current cell is empty, the 
buffer is empty as well. 

If you want to change anything 
during data entry, press the BACK- 
SPACE key (BACKS on some Atari 
machines). BACKSPACE always 
deletes the character before the cur- 
sor (or has no effect if the cell is 
empty). Later on, we'll explain how 
to edit existing data. 

As you've seen, pressing RE- 
TURN enters a data item into the 
current cell. You can also end the 
input by pressing CTRL and a cur- 
sor key. The data is entered as if 
you had pressed RETURN, and the 
cursor moves in the indicated direc- 
tion. This feature is handy for en- 
tering a lot of data: Simply type the 
entry, move the cursor to the next 
cell, enter more data, and so on. 
2. Text data is not "data" in the 
strict sense, since SpeedCalc doesn't 



use it in calculations as it does num- 
bers and formulas. Text data is 
there only to help people under- 
stand what the other data means. 
Text may consist of comments, ti- 
tles, column headings, subhead- 
ings, or whatever you need to 
interpret the numbers and formu- 
las. As an example, move the cursor 
to cell AA2 (just under AAl) and 
type the following line: 
THIS IS A PIECE OF TEXT DATA. 

You can use the BACKSPACE 
key to erase mistakes while you're 
typing. When you press RETURN, 
SpeedCalc displays T (for text) in the 
upper-right corner. In this example, 
the cell isn't large enough to accept 
all the text, so only the leftmost 
portion appears in AA2. But even 
though you can't see it, all of the 
text is there. Move the cursor to 
another cell, then move it back to 
AA2. As soon as you return to AA2, 
SpeedCalc displays all the text in the 
input buffer area. 

3, Formula data is a mathematical 
expression or formula. It may be as 
simple as 2 -h 2 or as complex as 
your imagination (and mathemati- 
cal prowess) allows. The first char- 
acter in a formula must always be 
an equal sign (=). If you omit this 
symbol, SpeedCalc either signals an 
error or treats the data as text. 

The true power of a spread- 
sheet is that a formula in one cell 
can refer to another cell. This is 
easier to demonstrate than to ex- 
plain. Move the cursor to cell AA3 
and type the following line: 
= AAl* 25.01 -f-@SQR(4) 

As soon as you press RETURN, 
SpeedCalc displays F (for formula) 
in the upper-right comer of the 
screen and puts the result of the 
formula (not the formula itself) in 
AA3. If AAl contains 123, the val- 
ue 3078.23 appears in AA3. In plain 
English, this formula means "mul- 
tiply the contents of cell AAl by 
25.01 and add the square root of 4." 

Before we examine the formula 
more closely, here's a quick demon- 
stration of what makes a spread- 
sheet such a powerful tool. Move 
the cursor back to AAl and press 
CTRL-R. The command line dis- 
plays the message RECALCULA- 
TION IS ON, meaning SpeedCalc 
now automatically recalculates the 



March 1986 COMPUTll 69 



§SSS2L:«.«* 



aui exp«ft5«s lnc«w profTl 

January iai2.22 5*1.21 -tit. 11 

fSpch Sm.M 4M7.2 

April i4S«.22 7na.2. . 

tuv S12.ZI 24H.2I 1 
1*23.11 

jaiy 343. 4S f< 

OUSasT 617. M 1 

itxtM^r is^z.aa 123*. ea -7j 

412.44 a*««.«a ?si 

S77.85 9ma.«a 1122. ii 

Dicmfccr 23I«^«a 2m. M Z^—-f 

rOTOLi: 1S71«.75 4344S.T$ 2672S.5S 

auenaCE: 1427.14 laH.ii 24«».»s 



A typical screen from Atari Speed- 
Calc — a compact, powerful spreadsheet 
program written entirely in machine 
language. 




2a«« . «« 



-425. »» 
eza.«« 
-11.7a 

6472.*! 
1»11.9> 

lai.u. 
ibse.si 
i3«s.a« 
^741. a« 

7SS7.56 
8322. XX 

-32»-a« 



Atari SpeedCalc's input buffer always 
displays the contents of the data cell 
under the highlighted cursor. 



entire sheet whenever you make a 
change. Now change the number in 
AAl to 456 (simply move to the cell 
and start typing). The new result 
(1 1406.56) automatically appears in 
cell A A3. We'll explain more about 
automatic recalculation later. 

Note that the referenced cell 
must contain data that SpeedCalc 
can evaluate: a number or another 
formula. If the formula refers to an 
empty cell, or one that contains 
text, SpeedCalc signals the error by 
printing *ERROR* in the cell con- 
taining the incorrect formula. 

Mathematical Operators 

These symbols can be used as oper- 
ators in a formula: 
Operator Function 

+ addition 

— subtraction 

• multiplication 

/ division 

exponentiation 

= equality 

One factor that affects formu- 
las is precedence, or the order in 
which mathematical operations are 
performed. In SpeedCalc, formula 
operators have the same prece- 
dence as in ordinary math. 

The first operators to be evalu- 
ated — those with the highest prece- 
dence — are those enclosed in 
parentheses. Where one set of pa- 
rentheses encloses another, the ex- 
pression in the innermost set is 
evaluated first. The next operators 
to be evaluated are exponents. Mul- 
tiplication and division have equal 
precedence; both operations are 
lower than exponentiation. Addi- 



tion and subtraction have the low- 
est precedence of all. To take one 
example, SpeedCalc evaluates the 
formula =5*(8 + 3*-2r2-10/+2 
as the value 15, just as in ordinary 
math. Note how the result is affect- 
ed by the plus and minus signs 
before the two 2's. 

Functions 

Formulas may also include any of 
the functions listed here: 

@ABS( ) absolute value 

@AVE( ) average of a block of cells 

@EXF( ) natural exponent 

@INT( ) integer 

@LOG( ) natural logarithm 

@RNDO round to nearest integer 

@SGN( ) sign 

@SQR( ) square root 

@SUM( ) sum of a block of cells 

PI value of pi (3.14159265) 

All the functions except PI be- 
gin v«th the @ symbol and are 
followed by parentheses. The pa- 
rentheses of a function may contain 
a number or a formula. For ex- 
ample, the formula =@SQR(4) 
generates the square root of 4. The 
formula =@SQR(AA1) returns the 
square root of whatever value cell 
AAl contains. The function 
@INT() generates an integer 
(whole number) by truncating (dis- 
carding the fractional part of) a nu- 
meric value; note that this is 
different from rounding (for in- 
stance, the result of @INT( — 4.3) is 
—4, not —5). Use the rounding 
function @RND() to round a value 
up to the nearest whole number. 

The function @AVE() calcu- 
lates the mean average of the val- 
ues in a block (group) of cells. The 
function @SUM() calculates the 



sum of a block. Both functions re- 
quire you to define the block so 
SpeedCalc knows which cells to in- 
clude in the calculation. This is 
done by putting two cell names 
separated by a colon in the paren- 
theses. The first cell name defines 
the upper-left comer of the block, 
and the second defines the bottom- 
right comer. To define a block in a 
single column, specify the top and 
bottom cells in the column. For in- 
stance, @AVE(AA1:AD20) calcu- 
lates the average of all the cells 
from AAl to AD20. The function 
@SUM (AA1:AD20) calculates the 
sum of AAl through AD20, and so 
on. An error results if any cell in the 
block IS blank or contains text data. 

Editing The Sheet 

Editing is a very important spread- 
sheet function. The simplest way to 
change what a cell contains is to 
move to it and start typing. The old 
data in that cell is replaced by what- 
ever you enter. For instance, to re- 
place the contents of cell AAl with 
the number 456, move to that cell, 
type 456, and press RETURN or exit 
with a cursor key. Press CTRL-K 
(think of kill) to erase what's in the 
current cell. To erase everything in 
the sheet, press SHIFT-CLEAR. 
Before carrying out this drastic op- 
eration, SpeedCalc asks you to con- 
firm it by pressing Y or N. 

In some cases, only a minor 
change is needed. Edit mode lets 
you change the data in a cell with- 
out retyping the entire entry. To 
activate edit mode, move to the de- 
sired cell and press CTRL-E. In this 
mode, up and down cursor move- 
ment is disabled, and the left/right 
cursor keys move within the input 
buffer. Typing in edit mode inserts 
new characters in the line: Every- 
thing to the right of the new charac- 
ter moves right one space (unless 
the buffer is already full). Because 
all keys insert automatically, the 
CTRL-INSERT key combination is 
disabled: Press the space bar to in- 
sert a blank space. Erase unwanted 
characters with the BACKSPACE 
key or CTRL-DELETE, The CTRL- 
DELETE combination does not 
move the cursor: It simply pulls the 
text to the right of the cursor toward 
the cursor position. Since the cursor 
keys have a different function in 
edit mode, you cannot use them to 



70 COWPUTEI March 1986 



end the input. Press RETURN to 
enter the new data and escape from 
edit mode. 

SpeedCalc displays *ERROR* 
in a cell when you enter an errone- 
ous formula. Usually this means 
you've made a typing error in that 
celL or the formula refers to text or 
an empty cell. A line of asterisks 
(***•*****) signals that a number is 
too large to be printed in the cell. 
Though these messages appear in 
the cell area, no data is lost. You 
may move to the affected cell, view 
its contents in the input buffer, and 
make whatever correction is 
needed. 

Recalculation 

Recalculation is the very core of a 
spreadsheet. As you know, entering 
or editing a piece of data makes 
SpeedCalc perform a calculation and 
put the result in the cell under the 
cursor. In most cases, the new data 
relates to data in other cells, so 
you'll ultimately want to recalcu- 
late the entire spreadsheet as well. 
This can be done manually or 
automatically. 

To recalculate the spreadsheet 
manually, enter CTRL-N. Speed- 
Calc begins at AAl and recalculates 
every cell that contains data, plac- 
ing fresh results wherever needed. 
If you switch to automatic recalcu- 
lation mode, SpeedCalc automati- 
cally recalculates the entire 
spreadsheet each time you enter 
new data or edit what exists. When 
you press CTRL-R, SpeedCalc 
changes the recalculation status 
and displays it at the top of the 
screen. If automatic recalculation 
was turned off before, it is now on 
(and vice versa). If you aren't sure 
which mode you're in, press 
OPTION-CTRL-R; SpeedCalc dis- 
plays the mode without changing 

it 

Automatic recalculation can be 

fun to watch in a large spreadsheet: 
Every time you make a change, 
new results appear everywhere on 
the screen. However, the more data 
your spreadsheet contains, the 
longer it takes to update the entire 
sheet. For this reason, you may 
want to turn off automatic recalcu- 
lation most of the time, recalculat- 
ing manually whenever you need 
to view results. 

One problem with recalcula- 
tion arises from the order in which 



cells are calculated. Because only 
one cell can be calculated at a time, 
you must sometimes recalculate the 
entire spreadsheet two or three 
times to get correct results in every 
cell (this is common to all spread- 
sheet programs). For instance, say 
you have a formula in AAl which 
refers to a formula in AB15. When 
SpeedCalc calculates AAl, it must 
use the existing data from AB15 — 
which is probably out of date, since 
the formula in AB15 hasn't been 
recalculated yet. To avoid this prob- 
lem, you should always recalculate 
a sheet manually two or three times 
before printing it or saving it to 
disk. 

SpeedCalc offers a number of 
other features. Before experiment- 
ing with them, you should spend 
some time typing in a hypothetical 
spreadsheet — perhaps a fictitious 
yearly budget — to become thor- 
oughly familiar with the basic com- 
mands covered so far. Most 
importantly, create formulas using 
all the operators in different combi- 
nations. 

Change Format 

The default (normal) format for nu- 
meric data is flush right with 
rounding to two decimal places. In 
other words, the number is dis- 
played in the rightmost part of the 
cell, with two numbers after the 
decimal point. Text and formulas 
are also displayed flush right. 
SpeedCalc offers several commands 
for changing cell formats. 

Change Format (CTRL-F). This 
command changes the location of 
data in the cell. When you press 
CTRL-F, the SpeedCalc command 
line displays the question FOR- 
MAT: LEFT, CENTER, OR RIGHT 
JUSTIFY?. Press L, C, or R to move 
the data to the left, center, or right 
of the cell. 

Change Decimal Places (CTRL-.). 

SpeedCalc also lets you change the 
number of decimal places for any 
cell. The default number of decimal 
places is 2, but you may change it to 
anything from 0-15. Press CTRL 
and the period key (CTRL-.) to 
change this value: SpeedCalc 
prompts you to enter a number 
from 0-15. If you choose zero deci- 
mal places, any number in that cell 
is rounded off to the nearest integer 



(whole number). If you choose 15, a 
number in that cell is not rounded 
off at all — SpeedCalc displays it ex- 
actly as you entered it or as it was 
calculated from a formula. 
Width (CTRL-W). The width com- 
mand changes the width of an en- 
tire column of cells. Move the 
cursor to any cell in the desired 
column, then press CTRL-W. When 
SpeedCalc displays the prompt 
WIDTH:, respond with a number 
from 4-36. The entire screen is re- 
drawn to accommodate the new 
format, and may look very different 
depending on what value you 
chose. For instance, if you increase 
a column's width, the rightmost 
column of the former display may 
disappear: SpeedCalc only displays 
as many complete columns as it can 
fit on the screen. If you decrease the 
width of a column, you may see 
asterisks where numbers used to be 
(indicating the cell is now too small 
to display the entire number). To 
get rid of the asterisks, expand the 
column as necessary. 
Global Format (OPTION-CTRL- 
F). This is the same as the ordinary 
format command, but operates 
globally, changing every cell in the 
sheet instead of just one. 
Global Width (OPTION-CTRL- 
W). This is a global version of the 
width command. Every column in 
the sheet changes to the designated 
width. 

Screen Color And 
Luminance 

SpeedCalc makes it easy to change 
the screen background and charac- 
ter colors to your liking. 

Background Color (CTRL-B). 

Press CTRL-B to cycle forward 
through the available screen back- 
ground colors. 

Text Color (CTRL-T). This com- 
mand increases the luminance of 
characters on the screen, cycling 
forward through all of the available 
text colors. 

Previous Background Color 
(OFTION-CTRL-B). The reverse 
of CTRL-B, this command cycles 
backward through the range of 
background colors. 
Previous Text Color (OPTION- 
CTRL-T), The reverse of CTRL-T, 
this command cycles backward 
through the range of text colors. 



March 1986 COMPUTH 71 



Macro Editing 

After typing in a large spreadsheet, 
you may decide to make a major 
change. You may want to add new 
data somewhere in the middle, de- 
lete a section, or move a group of 
cells from one location to another. 
SpeedCalc's macro (large-scale) 
editing commands simplify such 
operations, affecting an entire block 
of cells at once. A block is simply a 
group of cells connected in rectan- 
gular fashion. You can define it as a 
single cell, a row or column, or any 
rectangular area within the 
spreadsheet. 

There are two ways macro 
commands work: verbatim or rela- 
tive. To take a simple example, say 
that cell AA2 contains the formula 
= AA1*5 and you want to move its 
contents to cell AB2. When this is 
done in verbatim mode, AB2 con- 
tains an exact copy of what was in 
AA2 (=AA1*5). Note that the cell 
name used in the formula does not 
change: The formula still refers to 
AAl. If you perform the same oper- 
ation in relative mode, the cell 
name in the formula is adjusted to 
fit the new location. In this case, 
AB2 would contain the formula 
= AB1*5. 

Copy (CTRL-C). The copy com- 
mand copies a block of cells into a 
different location without disturb- 
ing the original cells. Place the cur- 
sor on the upper-left comer of the 
block you want to copy, then press 
CTRL-C. SpeedCalc prompts you to 
move the cursor to the lower-right 
comer of the block you want to 
copy. Once the cursor is in place, 
press RETURN. Now SpeedCalc 
prompts you to move the cursor to 
the place where you want to put the 
block: This is the upper-left comer 
of the new position. Once the cur- 
sor is there, press RETURN again. 
The new data replaces whatever 
was contained in the designated 
cells. Note that if you define an 
impossible block (for instance, 
moving the cursor to the upper-left 
of the original position, rather than 
below and to the right), SpeedCalc 
does not copy any data. Press ESC 
if you change your mind and wish 
to cancel this command. 
Move (CTRL-M). This command 
works like a copy, but it fills the 
original cells with blanks. Though 



SpeedCalc has no express insert 
command, you can use this com- 
mand to make space for new data in 
the middle of a spreadsheet. Simply 
move everything below the inser- 
tion point down as far as you need. 
As with the copy command, you 
can press ESC to cancel this 
command. 

Relative Copy (OPTION-CTRL- 
C). This form of the copy command 
adjusts the cell names used in for- 
mulas within the copied block (see 
explanation above). When copying 
or moving data in relative mode, 
you may see some strange charac- 
ters displayed very briefly in the 
input buffer area of the screen; This 
harmless effect occurs because 
SpeedCalc uses that area for tempo- 
rary storage during these opera- 
tions, conserving memory for other 
purposes. 

Relative Move (OPTION-CTRL- 
M). This is the relative form of the 
move command. Cell names in for- 
mulas are adjusted to reflect the 
move. 

Memory Management 

SpeedCalc makes about 20K (rough- 
ly 20,000 characters) of memory 



available for data. As noted earlier, 
SpeedCalc lets you spread your data 
out over a much larger number of 
cells than you can actually fill with 
data. The extra space is provided to 
give you full control over the final 
format of the spreadsheet and to 
leave some elbow room for move 
and copy operations. 

Because memory is limited, 
you should keep careful track of 
how much is free while using the 
program. Press CTRL-A to display 
the amount of free memory. We 
suggest limiting your spreadsheets 
to 1,600 cells (equivalent to 40 rows 
by 40 columns). If you've filled 
nearly all of free memory, you may 
have to break the spreadsheet into 
two smaller sheets. 

Although SpeedCalc checks the 
amount of available memory and 
displays an error message if you 
run out, you should be careful not 
to exhaust free memory. Any move 
or copy operation in process will be 
aborted if sufficient memory is not 
available. 

Disk Operations 

SpeedCalc has three disk commands 
for saving and loading data from 



SpeedCalc Commands 



Command 

CTRL-A 

CTRl-B 

CTRL-C 

CTRL-D 

CTRL-E 

CTRL-F 

CTRL-G 

CTRL-H 

CTRL-K 

CTRL-L 

CTRL-M 

CTRL-N 

CTRL-P 

CTRL-R 

CTRL-S 

CTRL-T 

CTRL-W 

CTRL-X 

CTRL-. 

SHIFT-CLR 

OPTION-CTRL-B 

OPTION-CTRL-C 

OPTION-CTRL-M 

OPTION-CTRL-R 

OPTION-CTRL-T 

OPTION-CTRL-W 



Action 

available memory check 

next background color 

copy block verbatim 

disk directory 

edit current cell 

change cell format 

goto selected cell 

home cursor 

clear currentcell 

load SpeedCalc file 

move block verbatim 

recalculate sheet now 

print cells from AAl to cursor 

turn recalculation on/off 

save SpeedCalc file 

increase text luminance 

change column width 

exit SpeedCalc to DOS 

change decimal places 

clear spreadsheet 

previous background color 

copy block relative 

move block relative 

check recalculation status 

decrease text luminance 

change width of all columns 



72 COMPI^EI Morch 1986 



disk and displaying the disk direc- 
tory. The disk directory command 
is the easiest to use: Simply press 
CTRL-D. To save a spreadsheet to 
disk, press CTRL-S. SpeedCalc 
prints SAVE: on the command line, 
followed by a cursor. Enter a valid 
Atari filename (including D:) and 
press RETURN. (If you change your 
mind and decide not to save any- 
thing, press RETURN without typ- 
ing a filename.) If no disk error 
occurs while the spreadsheet is be- 
ing saved, SpeedCalc displays NO 
ERRORS in the command line and 
returns you to command mode. If 
there was an error, you'll hear a 
beep and see the message I/O ER- 
ROR # followed by an error num- 
ber in the command line. Your DOS 
manual explains the meaning of the 
various DOS errors. 

To load a saved file from disk, 
press CTRL-L. Again, you can can- 
cel the operation by pressing RE- 
TURN without entering a filename. 
SpeedCalc prompts you to enter the 
filename and displays the error sta- 
tus when the operation is complete. 
If an error occurs while loading, 
SpeedCalc clears the partially load- 
ed sheet to prevent a program 
crash. 

Printing 

SpeedCalc lets you print data to 
three different devices: to the 
screen for previewing output (E:), 
to a printer for permanent docu- 
mentation (P:), or to a disk file for 
integrating the data with a Speed- 
Script document {D:filename). 

To print a hardcopy of the 
spreadsheet to a printer, press 
CTRL-P and then enter P: when 
asked for (Device:Filename). Before 
using this command, you must posi- 
tion the cursor below and to the right 
of the block of cells you wish to print. 
The upper-left comer of the print- 
out starts at cell AAl. To preview 
the printed output on the screen, 
enter E: in response to the same 
prompt. 

You can also print SpeedCalc 
data to a disk file for use in a Speed- 
Script document. When SpeedCalc 
prints the prompt (Device:File- 
name), enter D:filename. The data is 
saved as a disk file of that name. 
Note that printing to disk creates a 
different type of file than saving to 
disk, and SpeedCalc cannot reload 



files in the print format. You should 
save files you wish to reload into 
SpeedCalc, and print files you vrish 
to load into SpeedScript. 

SpeedScrlpt Integration 

SpeedCalc sends data to the printer 
in simple, plain vanilla form. That 
may be fine for personal use, but if 
you're creating a document for oth- 
ers to view, you may want special 
features such as boldface, underlin- 
ing, italics, and so on. Since Atari 
SpeedScript — computei's popular 
word processor — already offers a 
way to access these features (and 
many more), no attempt has been 
made to duplicate them in 
SpeedCalc. 

No special tricks are needed to 
load a SpeedCalc file into Speed- 
Script. After printing the file to disk 
as explained above, exit SpeedCalc, 
then load and run SpeedScript. Now 
load the file as you would any 
SpeedScript document. The data ap- 
pears on the screen, ready to be 
edited in any way you wish. Again, 
keep in mind that SpeedScript can 
load only those files which have 
been printed to disk, not saved. 



Program 1 : Atari 
SpeedCalc 

Please refer to the "MLX" article In this issue 
before entering the following listing. 



ai92 

B17B 
8204 
8210 
8216 
8222 
8228 

az34 

6240 
eZ4& 
82S2 
e25B 
B2&4 
B270 
8276 
8282 
8288 
8294 

Bsee 

8306 
9312 
8318 
B324 
S330 
S33& 
8342 
S34B 
B334 
B3fi0 
B366 
B37Z 
B37B 
B384 
B390 
B396 
B402 
B40B 
0414 
8420 
e42<i 



: 165 


0B9 


201 


1B8 


240 


018, 


: 169 


063 


160 


094 


032 


089, 


: 033 


032 


02B 


033 


E69 


001 , 


: 141 


068 


002 


108 


252 


255, 


! 149 


063 


160 


035 


162 


000, 


!032 


089 


033 


032 


181 


035, 


! 032 


026 


035 


169 


066 


024, 


: 105 


001 


14! 


174 


065 


024, 


: 10S 


04 1 


133 


159 


169 


000, 


: 14! 


173 


065 


141 


173 


065, 


: 133 


158 


141 


049 


062 


169, 


: 187 


141 


176 


065 


169 


203, 


:20S 


054 


066 


141 


054 


066, 


:240 


030 


032 


108 


035 


165, 


:012 


141 


005 


033 


165 


013, 


I 141 


006 


033 


169 


004 


133, 


saiz 


169 


033 


133 


013 


169, 


!000 


141 


068 


002 


169 


001, 


! 133 


009 


032 


ISZ 


035 


032, 


:003 


03B 


032 


02 B 


033 


072, 


S032 


152 


033 


104 


174 


173, 


:032 


221 


173 


032 


240 


022, 


:202 


20B 


248 


201 


032 


144, 


J 230 


20i 


123, 


176 


226 


201, 


!091 


144 


004 


201 


097 


144, 


:21B 


076 


182 


036 


202 


138, 


: 0E0 


170 


169 


032 


072 


169, 


!112 


072 


189 


213 


032 


072, 


: IB9 


212 


032 


072 


096 


024, 


= 125 


008 


023, 


006 


007 


016, 


! 003 


019 


012, 


024 


028 


029, 


: 031 


030 


01 1 


005 


014 


002, 


:020, 


001 


018 


004 


013 


096, 


!0t3, 


017 


018, 


019 


020 


021, 


: 022, 


023 


024, 


02S 


016 


01 I , 


: 013 


14 


083, 


035 


067 


042, 


I 127 


040 


041, 


037 


178 


041, 


! 117, 


044 


244, 


045 


217, 


049, 


: 179, 


050 


084, 


054 


090, 


041, 


: 065, 


041 


1 13, 


041 


153, 


041 , 



, 133 
,101 
,052 
, 076 
,101 
, 176 
1 132 
, 040 
, 143 
, 046 
, 004 
, 239 
, 146 
, 176 
, 197 
,064 
,113 
,227 
,0 19 
,064 
, 020 
, 078 
, 143 
,015 
, 057 
, 234 
,010 
, 084 
, 025 
, 103 
, 039 
, 023 

, 0se 

, 050 
, 069 
, 20S 
, 168 
, 170 
, 214 
, 178 



84321 


035 


052 


096, 


052, 


149 


051, 


B43B: 


070 


033 


052, 


033, 


131, 


053, 


8444: 


054 


052 


01S, 


058, 


212 


045, 


8450! 


107 


037 


032 


064 


02 1 


032, 


84561 


026 


035 


032, 


003 


038 


032, 


8462] 


182 


035 


169 


063 


160 


072, 


84681 


162 


007 


032 


089 


033 


076, 


84741 


1 13 


032 


173 


252 


002 


201, 


84801 


255 


240 


249 


133 


146 


13B, 


8486 


072 


152 


072 


032 


125 


059, 


B492 


133 


151 


104 


168 


104 


170, 


8498 


165 


151 


096 


162 


002 


032, 


8504 


109 


058 


20S 


002 


162 


254, 


8310 


024 


138 


109 


0S2 


062 


,141, 


BS16 


052 


062 


096 


162 


002 


,032, 


BS2Z 


109 


, 058 


208 


, 002 


, 162 


. 234, 


B52B 


024 


, 138 


,109 


, 051 


,062 


,141, 


B534 


051 


, 062 


,096 


133 


204 


, 132, 


B540 


203 


142 


,030 


062 


, 169 


,000, 


85461 


133 


084 


133 


085 


169 


001, 


S5521 


141 


240 


002 


032 


140 


033, 


esssi 


160 


000 


140 


255 


002 


177, 


85641 


203 


240 


006 


032 


229 


05B, 


65701 


200 


20B 


246 


096 


162 


050, 


85761 


157 


180 


063 


202 


208 


250, 


85B2I 


169 


040 


141 


231 


065 


096, 


eSBQl 


160 


000 


169 


000 


145 


088, 


S3941 


200 


192 


040 


208 


247 


096, 


8600 


173 


065 


IBS 


201 


112 


240, 


8606 


009 


169 


063 


160 


025 


162, 


8612 


000 


032 


0B9 


033 


056 


032, 


8618 


078 


055 


144 


003 


076 


16S, 


8624 


039 


076 


175 


039 


032 


176, 


B630 


034 


141 


104 


186 


169 


094, 


86361 


141, 


105 


IBB, 


162, 


1 18 


169, 


8642: 


000, 


157 


105, 


ISB, 


202 


208, 


B648I 


248, 


160 


001, 


20B 


002 


160, 


S6S4: 


000, 


1S5 


104, 


18B 


009 


128, 


8660: 


153 


104 


188, 


032 


02S 


033, 


8666: 


141 


249 


065, 


185 


104 


IBS, 


8672: 


041 


127 


153 


104 


18B 


173, 


8678: 


249 


065 


174, 


154 


034 


221, 


8684: 


154 


034 


240 


035 


202 


20B, 


8690: 


248 


201 


032 


144 


216 


201, 


8696: 


125 


176 


212 


032 


176 


034, 


8702: 


141 


249 


065 


140 


250 


063, 


8708: 


206 


250 


065, 


162 


119 


189, 


8714: 


104 


18B 


201 


094 


240 


191, 


8720: 


202 


189 


104 


188 


157 


105, 


8726! 


188 


202 


236 


230 


065 


208, 


B732i 


244 


173 


249 


065 


1S3 


104, 


8738 


188 


200 


076 


207 


033 


202, 


8744 


13B 


010 


170 


189 


163 


034, 


8750 


072 


189 


162 


034 


072 


096, 


8756 


160 


000 


185 


104 


IBB 


201 , 


8762- 


094 


240 


006 


153 


000 


006, 


8768 


200 


208 


243 


169 


000 


153, 


8774 


000 


006 


140 


234 


065 


096, 


8780 


173 


054 


062 


240 


032 


192. 


B7B6 


000 


240 


001 


136 


076 


207, 


8792 


033 


173 


054 


062 


240 


,019, 


8790- 


IBS 


104 


18B 


201 


094 


240, 


8804 


241 


200 


076 


207 


033 


173, 


8810 


054 


062 


240 


003 


076 


207, 


8816 


033 


165 


146 


141 


252 


002, 


6822 


076 


052 


034 


192 


000 


,240, 


8826 


217 


136 


185 


104 


188 


201 , 


8834 


094 


240 


209 


152 


170 


189, 


6840 


105 


IBB 


157 


104 


188 


232, 


8846 


20 1 


094 


206 


245 


169 


000, 


8852 


157 


104 


188 


076 


207 


033, 


8B5B 


007 


155 


126 


02B 


029 


030, 


8864 


031 


254 


031 


034 


120 


034, 


8870 


104 


034 


104 


034 


075 


034, 


BB76 


0BB 


034 


125 


034 


072 


041, 


8882 


12B 


133 


131 


104 


041 


127, 


SBBe 


201 


096 


176 


013 


201 


032, 


SB94 


176 


006 


024 


105 


064 


076, 


8900 


201 


034 


036 


233 


032 


005, 


6906 


131 


096 


072 


041 


128 


133, 


S912 


151 


104 


041 


127 


201 


096, 


6918 


176 


011 


201 


064 


144 


005, 


8924 


233 


064 


076 


227 


034 


105, 


8930 


032 


005 


151 


096 


072 


13S, 


8936 


072 


173 


031 


062 


069 


079, 


8942 


037 


078 


141 


010 


212 


141, 


8948 


024 


208 


141 


200 


002 


173, 


B9S4 


052 


062 


069 


079 


037 


078, 


8960 


141 


023 


208 


174 


050 


062, 


8966 


189 


055 


062 


141 


19B 


002, 


8972 


169 


010 


141 


197 


002 


169, 


8978 


000 


141 


182 


002 


104 


170, 


89B4 


104 


064 


169 


064 


141 


014, 


S990 


212 


169 


230 


141 


000 


002, 


B996 


169 


034 


141 


001 


002 


173, 


9002 


048 


002 


133 


151 


173 


049, 


9008 


002 


133 


152 


160 


003 


169, 


9014 


194 


145 


151 


169 


192 


141, 


9020 


014 


212 


096 


169 


064 


141, 


9026 


014 


212 


173 


051 


062 


141 , 



, 163 

, 106 
, 176 
, 039 
, 174 
, 1B3 
, 163 
, 031 
, 169 
, 038 
, 106 
, 146 
,081 
,076 
,21B 
,099 
,093 
, 252 
, 206 
.191 
, 1B0 
, 076 
.116 
, 060 
. 166 
, 108 
, 190 
, 105 
, 107 
, 234 
, 150 
, 179 
,201 
, 144 
,047 
, 030 
,211 
. 052 
, 238 
, 126 
, 242 
. 103 
, 105 
, 004 
, 235 
, 140 
, 227 
, 004 
, 193 
, 147 
,24B 
, 172 
, 232 
, IS9 
, 122 
,045 
,013 
, 099 
. 061 
, 230 
, 157 
, 082 
, 006 
. 236 
, 0B3 
, 200 
.131 
, 160 
, 086 
, 035 
, 145 
, 017 
, 172 
,039 
,054 
,094 
, (35 
, 129 
, 245 
,05S 
, !60 
,047 
, 191 
, 208 
, 226 
.0B9 
.224 
, 1 15 
, 146 
,141 
, 18B 
, 105 
,068 
,016 
,044 
, 0B6 
, 139 
.022 
. 244 
.207 



Morctl 19B6 COMPUTH 73 



<?«32! 19B 
9B3B-. 052 
9a44l 149 
9338! 032 
90S&: 041 
90&2: 032 
9069: 032 
9B74J 126 
9080:062 
90061038 
9092: 159 
909S! 143 
9104: 133 
91 10:204 
9116:200 
9122:204 
9128: 169 
9134: 179 
9140:096 
9146:050 
9152:200 
9158:000 
9164: 179 
9(70: J33 
91 76: 105 
91621 105 
9188: 240 
9194:036 
9200:001 
9206:000 
9212:024 
921Bi 143 
9224:000 
92301 032 
9236: 024 
9242: 163 
924B! 074 
9234: 142 
9260: 024 
9266: 024 
9272: 142 
9278: 143 
9284: 142 
9290: 142 
9296: 000 
9302: 065 
9308: 170 
9314:200 
9320:010 
9326; 126 
9332:062 
933Bt 166 
9344: 170 
93S0J 142 
9356: 151 
9362: 177 
936S: 189 
9374: 065 
9380! 142 
9386:040 
9392:200 
9398:032 
9404: 240 
9410: 174 
9416: 240 
9422: 001 
9428: 201 
9434: 169 
9440! 028 
9446: 240 
9452:065 
9458:065 



9464: 
9470: 
9476: 
94S2: 
9488: 
9494: 
93001 
9506: 
9512: 
9318: 
9324: 
9530: 
9536: 
9542: 
9348! 
9554: 
9560: 
9566: 
9572: 
9578: 
95B4! 
93901 
9596: 
9602: 
9608: 
9614: 
9620: 
9626: 



174 
1 13 
029 
222 
141 
024 
065 
208 
065 
004 
014 
089 
095 
067 
003 
208 
162 
240 
249 
>6B 
004 
014 
089 
125 
000 
000 
107 
141 



, 002 


141 


200 


,002 


173 


020 


,062 


141 


197 


,002 


096 


1 16 


,063 


160 


226 


, 162 


002 


09B 


,089 


033 


032 


, 02B 


033 


081 


,095 


201 


089 


,208 


003 


221 


, IBS 


03 = 


076 


, 152 


033 


026 


, 141 


035 


169 


,009 


032 


014 


,033 


169 


044 


1 141 


144 


003 


,032 


182 


033 


,032 


003 


210 


, 165 


158 


133 


, 136 


165 


153 


, 133 


137 


169 


,000 


141 


103 


,062 


096 


173 


, 173 


065 


082 


,203 


173 


174 


,065 


133 


001 


, 160 


000 


152 


. 145 


203 


246 


, 20B 


251 


230 


,204 


166 


135 


,236 


176 


065 


,208 


242 


013 


,001 


141 


178 


,06S 


141 


095 


,063 


133 


134 


, 133 


135 


185 


,096 


032 


188 


, 03S 


076 


191 


,036 


165 


,088 


,024 


,105 


142 


, 133 


142 


, 165 


, 089 


, 105 


002 


, 133 


143 


160 


, 000 


, 174 


040 


,065 


169 


000 


, 133 


,131 


133 


, 152 


248 


165 


, 151 


024 


039 


,001 


133 


131 


, 165 


152 


155 


,000 


133 


152 


, 202 


206 


254 


,216 


162 


000 


,032 


018 


128 


,24B 


165 


151 


,024 


105 


195 


,133 


131 


165 


, 152 


105 


179 


,133 


152 


216 


, 163 


142 


030 


, 10S 


040 


133 


, 142 


165 


093 


, 105 


000 


133 


, 143 


160 


174 


,232 


224 


019 


.208 


218 


141 


,018 


036 


096 


, 165 


152 


001 


, 105 


144 


145 


. 142 


200 


012 


,151 


041 


240 


,074 


074 


003 


,074 


024 


103 


, 144 


145 


086 


,200 


165 


151 


,041 


013 


240 


, 103 


144 


145 


142 


096 


1B8 


, 165 


088 


103 


160 


133 


213 


, 163 


089 


105 


000 


133 


178 


, 160 


000 


169 


128 


145 


039 


,200 


145 


142 


200 


145 


018 


,200 


174, 


178 


063, 


169, 


234 


,141 


177, 


065 


1B9 


180 


064 


, 134 


151, 


074 


103 


000 


103 


,202 


169 


128 


145 


142 


024 


,202 


208 


250 


165 


151 


250 


,170 


189 


143 


062 


009 


177 


, 145 


142 


200 


1B9 


146 


036 


,009 


128 


145 


142 


200 


034 


,131 


189 


180 


065 


074 


179 


,202 


202 


169 


128 


143 


120 


, 200 


202 


016 


250 


166 


086 


, JS9 


180 


065 


024 


109 


090 


,065 


141 


177 


065 


232 


235 


, IBB 


065 


024 


109 


177 


128 


,201 


037 


144 


177 


202 


216 


,240 


065 


169 


128 


192 


076 


,20B 


001 


096 


145 


142 


034 


, 192 


040 


20B 


249 


096 


137 


, 180 


033 


173 


000 


006 


094 


,063 


201 


029 


240 


038 


231 


, 198 


032 


221 


, 19fl 


032 


025 


,007 


202 


208 


,24B 


169 


250 


, 208 


025 


173 


,234 


,065 


, 144 


,037 


176 


037 


, 160 


,000 


, 05S 


,006 


032 


000 


,037 


,032 


• 238 


,062 


208 


233 


, 169 


, 000 


, 156 


,002 


169 


002 


, 141 


,232 


, 24B 


, 173 


144 


062 


, 141 


,235 


,032 


,024 


032 


07B 


,053 


,032 


,016 


,055 


032, 


144 


051, 


076, 


012 


,032 


141, 


030 


062, 


140, 


004 


,062 


032, 


028, 


062, 


076, 


037 


, 060 


162, 


030 


169, 


000, 


160 


,246 


065, 


189 


180, 


065, 


134 


, 109 


246, 


065 


141 , 


246, 


0BS 


,201 


037, 


176 


003, 


202, 


200 


,239 


232, 


232 


142, 


2 = 0, 


057 


, 096 


032, 


109 


058, 


240, 


128 


, 162 


006, 


208 


002, 


162, 


078 


, 160 


137, 


169 


064, 


032, 


1 16 


,033 


032, 


028 


033, 


041, 


058 


,201 


076, 


240 


015, 


201 , 


124 


, 240 


015, 


20 1 


082, 


240, 


147 


, 076 


000, 


038 


162, 


012, 


111 


,006 


162, 


008 


208, 


002, 


164 


,004 


173, 


144 


062, 


041 , 


162 


, 141 


249, 


065 


138, 


013, 


172 


, 063 


141. 


249 


065, 


076, 


177 


,037 


032, 


109 


058, 


240, 


238 


, 162 


006, 


208 


002, 


162, 


144 


, 160 


177. 


169 


064, 


032, 


222 


,033 


032, 


224 


040, 


240, 


014 


, 160 


12B, 


169 


004, 


032, 


236 


,037 


032, 


056 


061, 


201, 


011 


,208 


111, 


192 


016, 


176, 


077 


, 173 


144, 


062 


041, 


012, 


175 


, 249 


063, 


1S2 


010, 


010, 


013 



9632 

9633 

9644 

9650 

9656 

9662 

9668 

9674 

9680 

96B6 

9692 

9698 

9704 

9710 

9714 

9722 

972B 

9734 

9740 

9746 

9752 

9738 

9764 

9770 

977A 

9782 

9788 

9794 

9800 

9806 

9812 

9S1S 

9824 

9830 

9836 

9B42 

9B48 

9854 

9860 

9866 

9872 

9878 

9884 

9890 

9896 

9902 

9908 

9914 

9920 

9926 

9932 

9938 

9944 

9930 

9956 

9962 

9968 

9974 

9980 

9986 

9992 

9998 

10004 

10010 

10016 

10022 

10028 

10034 

10040 

10046 

10052 

10058 

10064 

10070 

10076 

10082 

I00BB 

10094 

10100 

E0106 

10112 

10118 

10124 

10130 

10136 

10142 

1014B 

10134 

10160 

10166 

10172 

10178 

10184 

10190 

10196 

10202 

10208 

10214 

10220 

10226 



109 
02B 
:240 
: 109 
:000 
: 136 
:040 
:246 
! 185 
1095 
: 065 
: 145 
! 230 
!20a 
! 134 

: 160 

t lee 

:056 
: 160 
S065 
(234 
1065 
1 IBB 
:20B 
I 188 
:062 
000 
141 

: 141 
130 
1235 
I 141 
(015 
1014 
1240 
( 133 
1065 
t 173 



, 136 
, 198 
, 202 
, 168 
, 226 
, 009 
, 154 
, 048 
, 134 
, 007 
, 120 
, 1''7 
i 233 
. 241 
, 212 
, 132 
, 189 
,221 
, 120 
, 107 
, 199 
,017 
, 134 
,02B 
, 167 
,037 
, 19S 
,060 
,233 
, 0B1 
, 053 
, 178 
, 209 
, 131 
, 098 
,014 
, 148 
, 060 
, 039 
. 193 
,031 
,251 
,032 
, 182 
, 136 
,077 
, 181 
, 251 
,026 
,036 
,003 
, 244 
,016 
, 097 
, 166 
, 003 
, 098 
,113 
, 044 
, 183 
, 0B0 
, 239 

177, 065, 201 , 040, 176, 020 
076,035,038,224,000, 171 
020, 173, 177, 065, 024, 219 
246,065, 16B, 134, 169, 163 
013, 241, 065, 145, 142, 138 
202,208,250,096, 169,087 
036,237, 177,065, 141, 004 
065, 160, 005, 132, 135,037 
071,062, 133, 143,185,079 
062, 133, 142, 172, 177, 087 
174, 246,065, 149,000, 031 
142, 200. 202, 208, 250, 20 9 
135, 164, 135, 192,024,204 
224, 173,236, 063, 133, 115 
173,239, 065, 133, 135, 215 
000, 169, 000, 153, 104, 184 
200, 192, 120.208,248,248 

032. 073.055. 144. 047. 022 
002, 162,000, 173,232, 0B9 

201. 002.208. 009. 172. 023 
065, 177, 130, 141,234,097 
200, 177, 130, 157, 104,21 1 
232, 200, 204, 234, 065, 251 
244, 169, 094, 157, 104, 1 10 
174, 232, 063, 189, 140, 128 
141, 103, 188,096, 169, 161 
141, 103, IBS, 169,094, 103 
104, 188, 096, 169,000, 112 
S2B, 004, 160,002, 177, 032 
201,010,240,242, 173, 166 
065,074,074,074,074,028 
244,065, 162,255,201,250 
240,226, 177, 130,201, 177 
208,009, 174, 244, 065, 164 
016, 232, 142, 128, 004, 218 
127, 004, 200, 204, 234, 128 
240, 003, 202, 208, 229, 159 
244, 065, 240,030, 224, 194 



>:010 


, 010 


013 


249 


, 045 


141 , 


I: 249 


, 063 


173 


030 


, 062 


201 , 


1:006 


,240 


065 


173 


. 249 


065, 


): 141 


, 144 


062 


173 


, 173 


065, 


i: 133 


, 132 


173 


174 


, 065 


133, 


!: 133 


, 160 


001 


177 


, 132 


240, 


i!017 


, 133 


131 


136 


. 177 


132. 


ii 133 


, 130 


177 


130 


. 041 


003. 


):013 


, 144 


062 


145 


,130 


200. 


i: 165 


, 132 


024 


105 


.002 


133. 


!: 132 


, 145 


133 


105 


,000 


133, 


i: 133 


, 165 


133 


197 


. 159 


208. 


1:216 


, 0S4 


032 


078 


, 035 


076. 


ll 000 


, 038 


056 


032 


,078 


055. 


>: 144 


.010 


160 


000 


, 173 


249. 


: 063 


,013 


232 


065 


145 


130, 


1 076 


, 152 


033 


165 


,134 


141, 


■ 238 


,043 


165 


135 


, 141 


239, 


1065 


,169 


003 


141 


,177 


065, 


! 174 


, 178 


065 


134 


, 134 


172, 


: 179 


,065 


132 


135 


,152 


024, 


1 103 


,019 


141 


236 


,065 


189, 


1 1S0 


,065 


141 


246 


,065 


169, 


: 000 


, 236 


238 


065 


,208 


007, 


tl204 


,239 


065 


208 


,002 


169, 


1 128 


;i4i 


241 


043 


;i52 


024, 


: 105 


,005 


056 


237 


,179 


065, 


: 168 


,185 


071 


062 


r 133 


143, 


1 183 


,095 


062 


133 


, 142 


056, 


:032 


078 


035 


176 


005 


169, 


: 000 


076 


220 


038 


173 


232, 


: 045 


240 


108 


201 


002 


240, 


I 104 


173 


244 


065 


036 


237, 


1234 


065 


170 


232 


048 


048, 


1232 


173 


235 


065 


041 


012, 


1201 


00B 


240 


038 


176 


005, 


: 138 


074 


240, 


032 


170 


142, 


:242 


065 


173, 


241 


065 


172, 


: 177 


065 


145, 


142 


200 


202, 


:208 


250 


140, 


243 


065 


173, 


1246 


065, 


0=6, 


237 


242, 


063, 


: 170 


160, 


002, 


076 


167. 


038, 


1 174 


246, 


065, 


173 


177. 


065, 


1 141 


243, 


065, 


160 


002, 


177, 


: 130 


140, 


242, 


065 


172, 


243, 


:065 


013, 


241, 


065 


145, 


142. 


: 172 


242, 


065, 


238 


243, 


065. 


: 202 


240, 


009, 


200 


204, 


234. 


1 063 


208, 


228, 


032 


030, 


039. 


1076 


235, 


038, 


032 


186, 


039. 


1 174 


234. 


065, 


202 


202, 


202. 


! 236 


246, 


065, 


176 


003, 


076, 


I 097 


038. 


169, 


010 


013, 


241 , 


1065 


172, 


177, 


065 


174, 


246, 


: 065 


145, 


142, 


200 


202, 


208, 


: 230 


164. 


135, 


166 


134, 


200, 


: 204 


236, 


065, 


240 


005, 


132, 


1 135, 


076, 


033, 


038, 


172, 


179, 


1 065, 


132, 


135, 


173 


246, 


065. 


1024, 


109, 


177, 


065 


141, 


177. 


(065 


232, 


134, 


134 


224, 


051. 


t240 


039, 


189, 


180 


065, 


024, 



0232 

023B 
0244 
0250 
0256 
0262 
0268 
0274 
02B0 
0286 
0292 
0298 
0304 
0310 
0314 
0322 
0328 
0334 
0340 
0346 
0352 
035B 
0364 
0370 
0376 
0382 
0388 
0394 
0400 
0406 
0412 
0418 
0424 
0430 
0436 
0442 
0448 
0454 
0440 
0466 
0472 
0478 
0484 
0490 
0496 
0502 
0508 
0314 
0520 
0326 
0332 
0538 
0544 
0550 
0556 
0562 
0568 
0374 
0580 
0586 
0392 
0598 
0604 
0610 
0614 
0622 
0428 
0634 
0640 
0646 
0652 
0658 
0644 
0670 
0676 
0682 
06BS 
0694 
0700 
0706 
0712 
0718 
0724 
0730 
0736 
0742 
0748 
0754 
0760 
0766 
0772 
077B 
0784 
0790 
0796 
0802 
0808 
0814 
0820 
0826 



:000 


,240 


,026 


. 173 


128 


,004, 


!201 


,000 


,206 


,010 


169 


,014, 


: 153 


, 127 


,004 


,200 


174 


.244, 


:06S 


,232 


, 169 


016 


153 


127, 


1004 


200 


,202 


208 


249 


169, 


(000 


141 


, 12B 


004 


204 


234, 


:065 


240 


,012 


174 


043 


177, 


: 130 


201 


.014 


240 


008 


201, 


1 021 


176 


012 


200 


076 


096, 


: 040 


200 


177 


130 


201 


021 , 


: 144 


042 


136 


152 


200 


170, 


:202 


202 


189 


128 


004 


201, 


: 014 


240 


01 1 


144 


012 


201, 


1025 


20B 


020 


169 


016 


157. 


! 128 


004 


202 


016 


235 


202. 


: 157 


128 


004 


232 


169 


017. 


: 137 


12S 


,004 


208 


003 


254, 


: 128 


004 


, 134 


140 


234 


065, 


: 173 


12a 


004 


201 


000 


208, 


: 009 


169 


004 


133 


131 


169, 


: 127 


133 


130 


096 


169 


004, 


: !33 


131 


169 


126 


133 


130, 


:238 


234 


065 


096 


032 


109. 


:03B 


240 


005 


162 


005 


076, 


: 140 


040 


142 


013 


169 


064, 


: 160 


01 1 


032 


089 


033 


032, 


:224 


040 


160 


12S 


169 


004, 


:032 


000 


037 


032 


056 


061 , 


:201 


000 


208 


033 


192 


004, 


I 144 


049 


192 


037 


176 


045, 


:163 


134 


141 


178 


065 


173, 


:0S0 


062 


201 


003 


240 


007. 


1 152 


032 


126, 


033 


074, 


197. 


! 040 


152 


166, 


134 


157 


180. 


1 045, 


032 


012, 


037, 


165, 


134, 


:205 


250 


065, 


144 


007 


172, 


:250, 


065 


136, 


140 


178 


065, 


:032, 


050 


036, 


076 


152, 


033, 


: 169, 


001 


208, 


002 


169 


000, 


: 141 


245 


065, 


160 


000, 


140, 


1 240 


002 


149, 


032 


032, 


229. 


1058 


169 


126, 


032 


229 


058, 


1032 


028 


033, 


201 


155 


240, 


I 051 


201 


126, 


240 


036 


170, 


:041 


127 


201 


032 


144 


238. 


: 138 


174 


245 


065 


208 


008. 


:201 


048 


144 


228 


201 


058, 


! 174 


224 


166 


085 


224 


038, 


1 240 


218 


133 


128 


004 


032, 


1229 


058 


200 


208 


209 


192, 


! 000 


240 


205 


032 


229 


038, 


1136 


076 


244 


040 


162 


001 , 


! 142 


240 


002 


032 


229 


058. 


1 169 


000 


153 


128 


004 


140. 


1244 


065 


173 


128 


004 


096. 


! 143 


135 


201 


100 


240 


018, 


:230 


135 


173 


179 


065 


024. 


! 103 


018 


197 


135 


176 


006, 


5 238 


179 


045 


032 


188 


035, 


(096 


165 


135 


201 


001 


240, 


(016 


198 


135 


172 


179 


065, 


; 136 


196 


133 


144 


006 


206, 


: 179 


065 


032 


188 


035 


096, 


: 165 


134 


201 


050 


240 


035, 


:230 


134 


172 


240 


065 


196, 


:134 


176 


026 


236 


178 


065, 


! 174 


178 


065 


169 


000 


024, 


: 125 


180 


045 


232 


201 


037, 


: 144 


247 


202 


202 


228 


134, 


: 144 


233 


032 


050 


036 


096, 


: 165 


134 


201 


00 1 


240 


016, 


! 198 


134 


172 


178 


065 


136, 


: 196 


134 


144 


006 


206 


178, 


:065 


032 


050 


036 


096 


169, 


:064 


160 


018 


162 


006 


032, 


:0B9 


033 


032 


220 


040 


,169, 


: 004 


141 


,030 


062 


169 


, 127. 


: 141 


029 


,062 


032 


020 


.062, 


: 144 


078 


,056 


233 


065 


,048, 


: 073 


240 


,006 


,201 


002 


, 176, 


:067 


169 


,026 


, 141 


249 


, 065, 


1032 


,020 


,062 


, 144 


0S7 


, 056, 


(233 


,064 


,048 


,052 


,240 


, 050, 


i201 


,027 


, 174 


,046 


,024 


, 109, 


1249 


043 


,201 


051 


176 


,038, 


(141 


249 


,065 


032 


020 


,062, 


: 176 


030 


.032 


221 


060 


032, 


:036 


061 


.201 


000 


206 


020, 


: 192 


000 


240 


016 


192 


101, 


: 176 


012 


192 


083 


144 


011, 


: 169 


082 


141 


179 


065 


076, 


:034 


042 


074 


152 


033 


140, 


1 179 


065 


132 


135 


032 


012, 


1037 


173 


249 


063 


205 


250. 


: 065 


144 


010 


172 


250 


065. 


: 136 


140 


17S 


065 


076 


040. 


1 042 


141 


178 


065 


133 


134, 


:032 


182 


035 


076 


152 


033, 


: 173 


178 


065 


197 


134 


206, 


:023 


173 


179 


065 


197 


135, 



74 COMPUTEI March 1986 



10S32 
10S3S 
10B44 
10S50 
10SS6 
108^2 
10B6S 
10974 
10BB0 
10BB6 
IBBf 2 
10B9B 
10704 
10S(10 
107161 
10722 
10728 
10734 
10940 
10946 
10752 
10958 
10764 
10770 
10776 
109S2 
10738 
10794 
1 1000 
1 1006 
11012 
1 1018 
1 1024 
1 1030 
I 1036 
1 1042 
1 104S 
110S4 
1 1060 
1 1066 
1 1072 
1 107B 
1 1084 
1 1070 
1 1076 
1 1102 
1110B 
11114 
11120 
1 1126 
1 1132 
11138 
1 1 144 

I 1 150 
It 156 

II 162 
11 168 
11174 
11 1B0 

I I 186 

II 192 
1 117B 
11204 
1 1210 
11216 
1 1222 
1 122B 
1 1234 
1 1240 
1 1246 
1 1232 
1 1258 
I 1264 
11270 
11276 
112S2 
1 E2B8 
1 1274 
1 1300 
1 1306 
11312 
1 131G 
11324 
11330 
11336 
1 1342 
1 134B 
1 1354 
1 1360 
1 1366 
11372 
1137B 
1 1364 
1 1390 
11396 
1 1402 
1 1408 
1 1414 
1 1420 
11426 



: 20B 


016, 


167, 


001, 


141, 


176, 


025 




1065 


133, 


134, 


141. 


179 


065, 


035 




1 133 


135, 


032, 


1B2, 


033, 


076, 


193 




I 173 


17B, 


063, 


133, 


134, 


173, 


166 




: 177 


06S, 


133, 


135, 


076, 


032, 


232 




1020 


062, 


141, 


013, 


066, 


032, 


18B 




: 020 


062, 


141, 


014, 


066 


032, 


195 




1 020 


62, 


141, 


015, 


066 


032, 


202 




:020 


062, 


201, 


040, 


240 


003, 


162 




:076 


242, 


057, 


174, 


207 


042, 


164 




: 173 


013, 


066, 


221, 


207, 


042, 


074 




:240 


006, 


202, 


20B, 


245 


076, 


077 




:242 


057, 


173, 


014, 


066 


221, 


157 




: 216 


042, 


240, 


002, 


208, 


240, 


0S2 




! 173 


015, 


066, 


221, 


225 


042, 


138 




:20B 


232, 


134, 


131, 


224 


008, 


103 




! 176 


011, 


138, 


072, 


169 


000, 


230 




: 072 


076, 


lai. 


056 


104, 


133, 


036 




: 151 


032, 


020 


062 


166 


151, 


002 




1202 


136, 


010 


170 


189 


236, 


115 




1042 


072, 


189 


235 


042 


072, 


0B4 




: 07 6 


009, 


065 


067, 


073 


076, 


082 




:0e3 


083, 


082 


0B3 


065 


066, 


162 




t0BB 


07B 


077 


071 


0B1 


076 


161 




S085 


086 


083 


080 


0B4 


071 


201 




:07B 


082 


066 


077 


069 


1 17, 


21 1 




t 061 


180 


061 


063 


061 


1B6 


080 




:06t 


126 


061 


1'75 


061 


065 


063 




1061 


003 


044 


09B 


044 


032 


01B 




I 170 


043 


142 


016 


066 


140 


083 




1018 


066 


032 


02B 


062 


201 


155 




:0se 


20B 


063 


032 


020 


062 


197 




3 032 


170 


043 


142 


017 


066 


250 




1 140 


017 


066 


032 


028 


062 


I 13 




:201 


041 


208 


044 


032 


020 


062 




:062 


174 


016 


066 


202 


236 


022 




1017 


066 


144 


003 


076 


24Z 


076 




!0S7 


,172 


018 


766 


136 


204 


1S7 




1019 


,066 


144 


003 


076 


242 


090 




:057 


,232 


200 


165 


134 


141 


217 




I 247 


,065 


165 


133 


141 


248 


041 




106S 


, 134 


134 


132 


135 


076 


254 




!076 


,242 


057 


024 


032 


078 


073 




: 055 


, 144 


06B 


160 


000 


177 


194 




t 130 


,041 


003 


201 


001 


240 


192 




107B 


,200 


177 


130 


141 


250 


046 




r065 


, 162 


000 


200 


177 


130 


066 




tl57 


, 128 


004 


232 


200 


204 


007 




:250 


,065 


20B 


244 


173 


IS27 


037 




1062 


,072 


173 


,030 


062 


072 


077 




I 169 


,000 


157 


, 128 


004 


169 


237 




1004 


, 160 


128 


, 032 


000 


B37 


235 




I 104 


, 141 


030 


,062 


104 


141 


206 




1027 


,062 


165 


134 


205 


017 


242 




: 066 


240 


004 


230 


134 


024 


078 




:076 


173 


016 


066 


133 


134 


004 




: 165 


135 


205 


017 


066 


240 


222 




1 004 


230 


135 


024 


096 


036 


177 




:076 


173 


247 


065 


133 


134 


252 




! 173 


248 


063 


133 


135 


024 


IBB 




1032 


07B 


055 


076 


242 


037 


212 




: 162 


000 


032 


028 


062 


201 


163 




: 065 


240 


006 


201 


066 


20B 


214 




: 226 


162 


026 


142 


249 


065 


04B 




:032 


,020 


062 


201 


063 


144 


220 




1 214 


,201 


091 


176 


210 


056 


13S 




: 233 


,064 


024 


, 109 


249 


065 


176 




I 201 


,051 


176 


, 177 


141 


249 


219 




:065 


,032 


020 


,062 


176 


191 


010 




: 032 


, 221 


060 


,032 


036 


061 


188 




: 201 


, 000 


206 


, 181 


, 172 


000 


002 




:240 


, 177 


172 


, 101 


, 176 


173 


.029 




: 174 


247 


065 


076 


169 


001 


242 




: 141 


052 


066 


167 


000 


141 


063 




!fl53 


066 


032 


253 


042 


032 


234 




: 079 


043 


176 


062 


163 


Z17 


24B 




: 072 


, 163 


216 


072 


165 


215 


161 




! 072 


. 165 


214 


072 


165 


213 


163 




! 073 


, 163 


212 


, 072 


238 


032 


079 




:066 


,208 


003 


, 238 


053 


066 


164 




:032 


077 


043 


008 


104 


141 


177 




!249 


065 


104 


133 


224 


104 


165 




: 133 


225 


104 


133 


226 


104 


217 




! 133 


227 


104 


133 


228 


104 


227 




: 133 


229 


032 


ISl 


061 


173 


0B3 




!247 


,065 


072 


,040 


, 144 


194 


, 074 




: 173 


, 247 


065 


, 133 


,134 


173 


,241 




:24a 


,065 


133 


, 135 


,024 


032 


,215 




j07a 


, 055 


096 


, 032 


,004 


,044 


, 147 




1032 


, 253 


,061 


, 173 


,053 


,066 


, 228 




: 172 


0=2 


066 


032 


1B2 


060 


160 




:032 


172 


061 


076 


167 


011 


143 




: 141 


022 


066 


032 


063 


035 


223 




: 167 


123 


032 


227 


058 


169 


140 




:00a 


141 


020 


066 


169 


000 


024 




Sl41 


021 


066 


170 


160 


091 


019 




:167 


065 


032 


087 


033 


032 


052 




:220 


040, 


173 


128 


004 


206 


135 




: 003 


076, 


154 


045, 


141 


051, 


1 14 




; 066 


162, 


128 


160, 


004 


032, 


202 





1432: 126 
1436: 162 

1444:004 
1450:066 
1456:032 
1462: 162 



1468 
1474 
1480 
1486 
1472 
1498 
1504 
1510 
1516 
1522 
1528 
1534 
1540 
1546 
1552 
155S 
1564 
1570 
1576 
15B2 
15B6 
1594 
1600 
1606 
1612 
161B 



134 
065 
141 
134 
227 
065 
000 
032 
250 
071 
208 
237 
020 
012 
037 
076 
027 
065 
06S 
169 
206 
177 
000 
065 
208 
002 



1624! 047 
1630: 032 
1636: 165 
1642t00S 
1648: 165 
1654:019 
1660: 134 
1666: 173 
1672: 230 
1676! 03B 
16B4: 032 
1690: 133 
1696: 135 
1702:206 
1708: 167 
1714S033 
1720:035 
1726:038 
1732:035 
1738: 141 
1744: 240 
1750: 134 
1736! 141 
1762: 076 
1768: 253 
1774: 109 
1780:065 
1786: 163 
1792:076 
1798:003 
1B04: 004 
1810:255 
1B16: 176 
1822:236 
1828! 064 
)834:0e9 
1840:001 
1646:066 
1852: 167 
1858:032 
1864: 167 
1B70:032 
1876:032 
1882:221 
1888:206 
1894: 13B 
1700! 167 
1906:072 
1712: 104 
1918: 066 
1724:096 
1930: 033 
1936:028 
1942:067 
1748: 155 
19S4: 148 
1960: 031 
1966: 201 
1772: 066 
1978: 133 
19B4: 144 
1 990: 06S 
1996: 234 
2002: 065 
2008: 157 
2014:234 
2020: 157 



,058, 


167, 


065, 


160, 


077, 


057 


i: 


, 000 


032, 


0B9, 


033, 


169, 


147 


1. 


, 174 


020, 


066, 


172, 


021 , 


125 


1. 


,032, 


134, 


058, 


169, 


004, 


137 


1. 


, 218, 


058, 


032, 


144, 


058, 


222 


1. 


,004 


032, 


179, 


05S, 


165, 


050 


1' 


, 141 


017, 


066, 


141, 


238, 


173 


1 


, 165 


135, 


141 , 


019, 


066, 


033 


1 


,239 


065, 


169, 


001, 


133, 


176 


1 


,133, 


133, 


169, 


155, 


032, 


212 


1 


,038 


166, 


134, 


187, 


180, 


160 


1 


, 141 


246, 


063, 


170, 


167, 


066 


1 


, 157 


000, 


006, 


202 


167, 


006 


1 


, 157 


000, 


006, 


202 


016, 


147 


1 


,056 


032, 


076, 


033 


144 


077 


1 


, 173 


232 


065 


201 


001 


233 


1 


,035 


173 


246 


065 


056 


023 


1 


,234 


065 


170 


232 


04B 


232 


J 


,232 


173 


235 


063 


041 


01B 


1 


,201 


006 


240 


010 


176 


161 


1 


, 13B 


074 


240 


004 


170 


185 


1 


,072 


043 


162 


000 


240 


121 


1 


,032 


1B6 


039 


174 


234 


224 


1 


,202 


202 


202 


236 


246 


179 


1 


, 144 


Z07 


174 


246 


065 


189 


1 


,042 


157 


233 


005 


202 


124 


1 


,230 


240 


022 


160 


002 


182 


1 


, 130 


032 


204 


034 


157 


<140 


1 


, 006 


232 


200 


236 


246 


232 


1 


,240 


005 


204 


234 


065 


131 


1 


,236 


162 


000 


173 


255 


102 


1 


,20S 


251 


165 


017 


240 


213 


I 


, 187 


000 


006 


240 


006 


082 


I 


,229 


esB 


232 


208 


245 


090 


1 


, 134 


205 


017 


066 


240 


173 


1 


,230 


134 


076 


230 


044 


073 


1 


, 135 


205 


017 


066 


240 


190 


1 


,230 


135 


169 


001 


133 


053 


1 


, 169 


153 


032 


229 


030 


147 


1 


,029 


066 


04B 


003 


076 


029 


1 


,044 


169 


155 


032 


229 


243 


1 
1 


, 169 


004 


032 


218 


058 


185 


1 


, 203 


0SB 


173 


238 


065 


165 


1 


, 134 


173 


239 


065 


133 


,023 


i 


, 173 


051 


066 


201 


069 


, 103 


1 


,014 


167 


158 


133 


203 


043 


1 


,065 


133 


204 


032 


110 


133 


J 


,032 


028 


033 


032 


181 


021 


1 


,032 


026 


035 


032 


003 


107 


I 


, 032 


132 


033 


076 


182 


207 


1 


, 169 


000 


141 


234 


065 


10B 


1 


,253 


063 


032 


109 


05B 


108 


1 


, 003 


236 


233 


063 


163 


164 


1 


, 141 


255 


065 


165 


135 


101 


1 


,000 


066 


076 


015 


046 


068 


1 


, 152 


033 


169 


001 


141 


046 


1 


, 065 


141 


254 


065 


032 


034 


1 


,058 


208 


003 


206 


233 


067 


1 


,165 


134 


141 


255 


065 


061 


1 


, 135 


141 


000 


066 


032 


,037 


1 


,046 


173 


238 


063 


141 


,243 


1 


,066 


173 


237 


,065 


141 


, 197 


1 


, 066 


032 


088 


,046 


174 


, 162 


1 


, 065 


202 


236 


,003 


066 


,093 


1 


,021 


, 174 


, 000 


,066 


202 


, 167 


1 


,004 


, 066 


. 176 


,012 


, 169 


, 177 


1 


, 160 


203 


162 


004 


032 


165 


1 


,033 


032 


107 


048 


173 


,030 


1 


,066 


133 


134 


, 173 


002 


,061 


1 


, 133 


135 


076 


152 


033 


, 133 


1 


, 063 


160 


042 


, 162 


004 


, 166 


1 


,089 


033 


076 


,097 


046 


, 199 


1 


, 065 


160 


,002 


, 162 


004 


, 138 


1 


,087 


033 


, 032 


,003 


03B 


, 065 


1 


, 028 


,033 


, 174 


, 158 


,046 


, 059 


1 


, 158 


046 


,240 


,006 


,202 


,211 


1 


, 248 


, 076 


, 077 


,046 


,202 


,221 


1 


,010 


170 


169 


046 


072 


21 1 


1 


,076 


072 


169 


167 


046 


095 


1 


, 189 


166 


046 


072 


096 


003 


1 


,104 


16S 


134 


141 


001 


017 


1 


, 165 


135 


141 


002 


066 


20S 


1 


, 162 


253 


154 


032 


152 


227 


1 


,076 


113 


032 


007 


00S 


167 


1 


,029 


030 


031 


1S5 


027 


204 


1 


,042 


090 


041 


065 


041 


000 


t 


, 04 1 


1 13 


041 


133 


046 


19 1 


1 


, 046 


173 


007 


066 


201 


051 


i; 


, 176 


091 


173 


00B 


066 


237 


1" 


,101 


176 


084 


173 


005 


, 162 


1 


, 133 


134 


173 


006 


06b 


,006 


1 


, 135 


056 


032 


076 


055 


177 


1 


, 067 


160 


002 


173 


232 


,220 


1 


, 201 


002 


208 


009 


172 


, 103 


i: 


,065 


177 


130 


14 1 


234 


, 1 77 


i: 


,200 


162 


000 


177 


130 


, 172 


i: 


,000 


006 


232 


200 


204 


007 


1 


,063 


20B 


244 


167 


000 


134 


1 


,000 


006 


142 


234 


065 


060 


1 



12026: 032 
12032: 20B 
1Z03B: 007 
12044: 066 
12050: 055 
12036:007 
12062: 066 
1206BI035 
12074:024 
12080: 168 
12086:076 
12092:240 
12098:201 
12104:007 
12110: 141 
12116:056 
12122:066 
12128:000 
12134: 104 
12140:206 
12146: 188 
12152: 169 
12156:000 
12164:204 
12170:046 
12176:208 
12182:064 
121BB; 144 
12194! 162 
12200: 162 
12206:062 
12212:091 
12218:024 
122241085 
122301065 
12236: 066 
12242: 064 
12248: 046 
12254:032 
12260: 221 
12266: 000 
12272: 037 
12278:024 
12264: 000 
12290: 060 
12296! 240 
12302:208 
12306! 142 
12314: IBS 
123201 157 
12326: 169 
12332:092 
12338:020 
123441020 
12350:020 
123361 152 
12362: 145 
12366:006 
12374: 157 
12380: 167 
123861 164 
12392: 145 
12398: 003 
12404:024 
124I0S066 
12416:000 
12422: 141 
12428:205 
12434)048 
12440; 238 
12446: 065 
12432: 066 
12438:063 
12464; 065 
12470: 046 
12476: 066 
12482: 238 
124BBI 006 
12494: 020 
12500:066 
12306:066 
12512:066 
12518: 173 
12524: 173 
12530; 173 
12336: 173 
12542:032 
12548: 205 
12554: 005 
12560! 237 
12566:066 
12372:238 
12578; 141 
125B4! 141 
12590: 201 
12596: 238 
12602: 065 
12608: 066 
12614:065 
12620:066 



,057 
,003 
,066 
, 133 
,032 
,066 
, 133 
I 144 
,032 
, 145 
, 022 
,001 
,002 
,066 
,011 
, 237 
, 162 
, 006 
, 188 
,241 
, 169 
, 188 
, 133 
, 032 
, 032 
, 003 
, 208 
, 234 
, 000 
, 026 
, 201 
, 176 
, 101 
, 024 
,201 
, 056 
, 133 
, 165 
,020 
,060 
,208 
, 172 
, 109 
,032 
, 162 
,006 
,245 
,047 
,240 
,000 
, 000 
, 048 
, 062 
,062 
, 062 
, 140 
, 203 
,240 
,000 
, 126 
, 152 
,203 
,066 
, 109 
, 173 
,066 
,010 
,239 
, 047 
, 063 
, 141 
• 141 
, 141 
I 141 
, 173 
,240 
,007 
,066 
,238 
, 173 
, 173 
,308 
, 003 
, 007 
, 000 
,237 
, 180 
,255 
,066 
, 173 
, 240 
, 008 
, 005 
, 007 
,049 
,065 
, 141 
, 141 
,141 
,141 



047, 


173, 


032, 


039, 


133, 


134, 


135, 


024, 


174, 


055, 


133, 


134, 


135, 


024, 


237, 


032, 


078, 


055, 


132, 


200, 


047, 


173, 


096, 


173, 


240, 


001, 


0S6, 


237, 


066, 


173, 


006, 


066, 


000, 


J34, 


032, 


204, 


232, 


236. 


169, 


000, 


104, 


141, 


141, 


030, 


203 


167, 


028 


062, 


020 


062, 


076 


067, 


003 


076, 


201 


067, 


301 


066, 


134 


131, 


06S 


144, 


075 


056, 


151 


201 , 


109 


011, 


027 


144, 


233 


026, 


151 


138, 


151 


032, 


06 2 


176, 


032 


056, 


04 1 


192, 


101 


176, 


012 


066, 


182 


060, 


000 


189, 


032 


078, 


032 


028, 


162 


000, 


009 


032, 


006 


232, 


157 


000, 


032 


098, 


032 


098, 


032 


098, 


076 


136, 


234 


065, 


162 


000, 


007 


032, 


006 


232, 


141 


224, 


172 


,120, 


230 


,152, 


036 


,237, 


236 


065, 


004 


066, 


024 


107, 


066 


173, 


065 


176. 


173 


255. 


144 


074. 


005 


066. 


006 


066, 


007 


066. 


008 


066. 


005 


066. 


008 


23B. 


066 


208. 


205 


004. 


006 


066, 


253, 


065, 


236 


065, 


209 


076, 


066 


141. 


066 


141 , 


066 


141 , 


065 


141, 


046 


173, 


065 


240, 


206, 


007, 


006, 


066, 


202, 


238, 


066 


173, 


066 


173, 


066 


208, 


173, 


255. 


144, 


074, 


005, 


066, 


006, 


066. 


007 


066, 


008 


066, 



254 

047 
173 
032 
076 
173 
032 
180 
167 
145 
253 
232 
076 
005 
006 
141 
132 
034 
234 
137 
029 
062 
006 
032 
201 
04B 
046 
176 
20B 
032 
099 
233 
031 
066 
003 
024 
032 
078 
051 
061 
000 
033 
168 
032 
031 
048 
062 
167 
176 
20B 
006 
048 
048 
048 
047 
167 
167 
176 
208 
188 
240 
076 
255 
141 
056 
237 
000 
003 
065 
173 
173 
173 
173 
032 
205 
005 
237 
066 
238 
141 
141 
201 
005 
007 
006 
008 
003 
00B 
066 
205 
006 
003 
009 
209 
065 
173 
173 
173 
173 
032 



065 
173 
006 
078 
173 
008 
078 
053 
000 
132 
065 
065 
173 
066 
066 
012 
1B9 
157 
065 
104 
062 
167 
133 
078 
000 
201 
046 
230 
002 
020 
201 
064 
176 
162 
162 
105 
098 
048 
032 
201 
240 
152 
169 
190 
066 
232 
076 
104 
034 
242 
076 
032 
032 
032 
164 
000 
000 
034 
242 
096 
004 
173 
065 
009 
237 
065 
066 
076 
205 
2SS 
000 
238 
239 
1B0 
003 
066 
173 
240 
008 
005 
007 
049 
066 
066 
066 
066 
066 
206 
208 
004 
066 
066 
066 
076 
205 
255 
004 
23P 
010 
180 



1 10 
246 
015 
224 
091 
033 
242 
227 
144 
202 
178 
077 
011 
353 
031 
070 
025 
017 
137 
219 
037 
1 1 1 
002 
076 
245 
235 
083 
184 
033 
181 
17B 
127 
122 
137 
034 
202 
058 
246 
083 
071 
147 
163 
026 
236 
234 
132 
153 
132 
193 
109 
190 
138 
086 
092 
055 
060 
005 
065 
163 
014 
202 
079 
024 
190 
212 
1 19 
076 
136 
173 
077 
096 
086 
093 
1S6 
166 
043 
099 
019 
014 
149 
140 
007 
172 
166 
162 
172 
244 
215 
056 
175 
072 
070 
238 
235 
226 
233 
000 
242 
020 
037 



March 1986 COMPUTEI 75 



12626: 046, 173, 005,066, 20S, 003,065 


13226:001, 133, 134, 133, 135, 173, 111 


13826:238,251,033,202,208,238, 168 


12632: 066,240, 008, 23B, 003, 066, l?? 


13232: 173, 065, 133, 132, 173, 174, 002 


13832: 163, 136,056,229,203, 133, 162 


12638:238,007,066,208,237, 173,235 


13238:065, 133, 133, 160,001, 177, 0B3 


13838: 136, 165, 137, 233, 000, 133, 050 


12644:006, 066, 205, 000, 066, 240, 171 


13244: 132,240,053, 133, 131, 136,245 


13844: 137, 173, 173, 065, 133, 136, 089 


12650:020, 206, 006, 066, 206, 008, 106 


13250:177, 132,133, 130, 177,130,049 


13850: 173, 174,065, 133, 157, 160, 120 


12636:066, 173, 255,065, 141 ,005, 049 


13256:041,003,201,002,208,038, 181 


13836:001, 177,136,240,032,056, 182 


12662:066, 173,238,065, 141,007,040 


13262: 036,032, 078,035, 162, 000,077 


13862: 136, 177, 156,229, 130, 133,231 


12668:066,208, 209,076, 20 1 ,049, 165 


13268: 172, 234, 065, 177, 130, 141 , 107 


13868: 151,200, 177, 156, 229, 131 ,064 


12674tl73,003, 066, 1 41 , 005 , 066 , 072 


13274: 234, 065, 200, 177, 130, 157, 157 


13874:005, 131, 144,015, 136, 177, 166 


126801 173, 009, 066, 141 , 007,066, 0B6 


13280:000, 006,232, 200, 204, 234, 076 


13880: 156,056,229,203, 145, 156,233 


12666: 173,004, 066, 141 , 006,066, 086 


13ZB6:06S, 208,244, 169,000, 157,049 


13886:200, 177, 156,233,000, 145,205 


12692: 173, 010, 066, 141 ,008,066, 100 


13292:000, 006, 142, 234,065, 032,203 


13892: 156,200,240,003,200,208,051 


12698: 032, 180,046, 173,005,066, 144 


13298: 174,055, 165, 132,024, 103, 129 


13898:214,230,157,200, 165, 157, 173 


12704: 205, 255, 065, 240, 008, 206, lis 


13304:002, 133, 132, 144,002,230, 123 


13904: 197, 139,208,205,096, 169,090 


12710:005,066,206,007,066,208,212 


13310! 133,230, 135, 165, 135,201,229 


13910:062, 160,247, 162,002,032,239 


12716:237, 173,006,066,205,000,091 


13316: 101 ,208, 178, 169, 001 , 133, 026 


13916:089, 033, 032,028, 033, 04 1 , 092 


12722: 066, 240, 020, 206,006, 066, 014 


13322: 135,230, 134, 163, 134,201,24 1 


13922:095,201,089,208,003, 108,034 


1272B1 206, 008, 066, 173, 003, 066, 194 


13328:031,208, 166, 173,238,065, 149 


13928: 10,000, 076, 1 52 , 033 , 1 73 , 036 


12734: 141 , 005, 066, 173, 009, 066, 138 


13334: 133, 134, 173,239,065, 133, 131 


13934:247,065, 133, 134, 173,248,086 


12740: 141,007,066,209,209,076, 135 


13340: 135,056, 032,078, 055,076, 204 


13940: 065, 133, 135, 024, 032, 078, 071 


12746: 150,051,032,229,058,044,254 


13346: 152,033,032, 180, 053,024, 252 


13946: 055, 173,249,065, 141,232, 013 


12752:029,066, 016,005, 104, 104, 020 


133S2: 032,078,055, 169, 000, 168, 030 


13952:065, 173,251,065, 141,235,034 


12758: 076, 137,050,096, 169,064, 038 


1335S! 145, 132,200, 145, 132,032, 064 


1395B: 065, 173, 250,063, 141 ,234, 038 


12764: 160,043, 162,000,032,089, S94 


13364: 144, 051, 096, 169, 064, 160, 2 24 


13964: 065,076,242,057, 072, 165, 049 


12770:033,032,220,040,208,008,255 


13370:024, 162,008,032,089,033, 150 


13970: 134, 141,247,063, 165, 135,009 


12776: 169,000, 141,022,066,076, 194 


13376:032, 109,058,240,008, 173, 172 


13976: 141,248,065, 173,232,065,052 


12782: 152, 033,032,063,035, 173,2 14 


13382: 143, 062, 073, 235, 141, 143, 119 


13982: 14 1,249,065, 173,233,065,062 


12789:244,065, 1 62, 1 28 , 1 60, 004 , 2 39 


13388:062, 173, 143,062,240,006,250 


13988: 14 1 ,251 ,065, 173, 234,065, 069 


12794:032, 1Z6,05B, 169, 001, 162,0 30 


13394: 169,078,032,229,058,096,232 


13994: 141 ,250,065, 104,233, 065, 004 


12800: 008, 160,000, 032, 134, 058, 136 


13400: 169,070,032,229,058,032, 166 


14000:048, 187,240,006,201,002,092 


12806:032, 144, 058, 048, 126, 162, 64 


13406:229, 058,096, 238,054, 062,063 


14006: 176, 181, 169,026, 133, 134,233 


128 12: 001, 032, 199,058, 169, 234, 2 13 


134 12: 032, 205, 033, 206, 034, 062, 180 


14012:032,020,062, 233,064, 048, 133 


12818:032,204,049, 169,254,032,2 46 


13418: 173, 000, 006, 240,078, 201 ,036 


14018: 170, 240, 16B, 201, 027, 176, 152 


12824: 204, 049, 165, 136,032, 204,046 


13424:029,240,039, 174, 198,032,056 


140241 164, 024, 101, 134, 201, 03 1, 107 


12830:049, 163, 137,032,204,049, 154 


13430:221 , 198,032, 240,008, 202,251 


140301 176, 157, 133, 134,032,020.090 


12836: 160, 050, 185, 180 , 065, 032 , 1 96 


13436:208, 248, 169, 001 ,076, 156,214 


140361062, 176, 150,032,221,060, 145 


12842: 204, 049, 136, 208,247, 173,0 35 


13442:052, 173,234,063,20 1,037, 124 


140421032, 056, 06 1 , 20 1 , 000 , 20S, 00B 


12848: 173, 065, 133, 132, 173, 174, 130 


13448; 176,031, 160,000, 169,006, 186 


14048: 140, 192, 000,240, 136, 192, 100 


12854: 065, 133, 133, 160,001, 177,211 


13454: 032, 000, 037, 032, 028, 062, 077 


14034: 101, 176, 132, 132, 135,056, 194 


12860: 132, 240,022, 165, 132, 032, 15 


13460:208, 232, 169,000, 240, 002, 231 


140601032, 078, 035, 144, 007, 173, 213 


12866:204,049, 1 65, 1 33 , 032, 204 , 85 


13466: 169,002, 141, 232, 065, 024, 019 


140661232,065,201,001,208,003, 184 


12872:049, 136, 177, 132,032,204,0 34 


13472:032,078,055, 176,009, 173, 171 


14072:076, 109,034, 160,002, 162.043 


12878:049,200,177,132,032,204,104 


13478: 144,062, 141,235,065,076, 121 


140781000, 177, 130, 201, 010, 240, 244 


12884:049,163,132,024,103,002,049 


13484:183,052, 160,000, 177, 130, 106 


140841243, 177, 130, 137, 128,004.075 


12890: 133, 132, 165, 133, 105, 000,2 46 


13490: 041 ,252, 141,233, 065,032, 176 


140901200,232,204,234.065,208, 129 


12896: 133, 133, 165, 133, 197, 139,248 


13496: 174,055, 032, 144, 051 ,096, 224 


14096:244, 169, 00 0, 157, 128, 004. 206 


12902: 20B, 209, 169, 255,032, 204, 133 


13502: 174,244,065,202,202,202,255 


14102: 173, 029, 062,072, 173,030,049 


12908: 049, 165, 138, 133, 132, 165, 142 


13508:202, 189, 128,004,201,037, 189 


14108:062,072, 160, 128, 169,004, 111 


12914: 159, 133, 133, 160,000, 177, 108 


13314: 208, 1 18,232, 1B9, 128,004, 037 


14114:032, 000.037, 104, 1 41 , 030, 1 22 


12920: 132,032,204,049,200,208, 177 


13SZ0: 141,249,065,232, 189, 128, 188 


14120:062, 104, 141, 029,062, 173,079 


12926: 248, 230, 133, 163, 133, 197,208 


13526:004,056,233,016, 133, 152,040 


14126:247,063,133, 134,173,248,022 


12932: 137, 144,240,240,238, 173,024 


13332: 232, 189, 128, 004, 056,233, 038 


14132:065, 1 33 , 1 35 , 024 , 032 , 078,007 


12938: 029, 066,072, 169,001, 032,251 


13538: 016, 1 66 , 1 52, 240 , 006, 024 , 062 


14138:033, 173,249,065, 141,232,205 


12944:218,038,032,203,058,032,233 


13544: I 05, 010, 202, 208, 250, 133, 116 


14144:065, 173,251 , 065, 141, 233,226 


12950:026,035, 104, 141,029,066,039 


13550: 151 , 201,098, 176,079, 173,092 


14150:065, 173,230,065, 141,234,230 


12956: 032, 072,059, 032,003, 038, 136 


13556:249,065,201,013,240,073,061 


14156:065,096,008, 1 66 , 134 , 202 , 233 


12962:032, 182,035,096,032,017,044 


13362: 162,000, 160,000, 189, 128, 121 


14162: 134, 132, 169, 100, 133, I 33, 115 


12968: 039, 044,029,066,016, 005, 131 


13568: 004, 201, 037, 240, 008, 232, 2 10 


141 68: 024, 169, 000, 162, 008, 106, 045 


12974: 104, 104,076,075,051, 096, 168 


13374: 201, 014,240, 244,200,208, 089 


141741 102, 132, 144,003,024, 101,088 


129B0: 169,064, 160, 067, 162,000,034 


13580:241, 136, 140,249,065, 165,240 


141801 133, 202, 016, 245, 133, 133, 194 


12986:032,089,033,032,220,040, 120 


13586: 151 ,056, 237,249, 063, 133, 14 1 


14186: 166, 135,202, 138,024, 101, 104 


12992: 208, 008, 169, 000, 141, 022, 2 28 


13392: 151, 162,001, 160,001, 189, 176 


14 172: 132, 133,132, 165, 133, 105, 144 


12998: 066, 076, 132, 033, 032, 063, 108 


13596: 128, 004, 232, 201 , 01 4 , 240 , 08 1 


14198:000, 133, 133, 006, 132,038,0'. B 


13004: 035, 173,244, 065, 162, 128,2 43 


13604:248.201,037,240,006, 153, 153 


14204: 133, 165,133, 109, 174,065, 135 


13010: 160,004,032, 126,058, 169,247 


13610: 128,004,200,208,238, 169,221 


14210: 133, 133, 160,001, 177, 132,098 


13016:001, 162,004, 160,000,032,0 63 


13616:016, 166, 151, 153, 128,004, 154 


14216:208, 003,040, 024 , 096 , 170 , 1 65 


13022: 134,058,032, 144,058,048, 1B4 


13622: 200,202, 208, 249, 169,000, 058 


14222: 136, 177, 132, 133, 130, 134,216 


13028: 102, 162, 001, 032, 195, 058, 10 


13628: 153, 128,004, 140, 244,063, 026 


14228: 131,040, 144,020, 177, 130,022 


13034: 032, 166,030, 20 1 , 234 , 208 , 1 21 


13634:096, 198, 151, 162,000, 160,065 


14234104 1 ,003, 14 1 ,232, 063, 177, 043 


13040: 126, 032, 166, 050,201, 254,0 45 


13640:000, 189, 128,004,232,201,038 


142401 130, 04 1, 252, 1 4 1 , 235 , 065, 000 


13046: 20B, 1 19,032, 141, 035, 032, 045 


13646: 014,240,248, 201 , 037,240, 034 


142461 200, 177, 130, 141, 234,063, 089 


13052: 166,050, 133, 136,032, 166, 167 


13652; 006, 153, 104, 188, 200,208, 175 


142521056, 096, 032, 180,053, 173, 250 


13058: 030, 133, 137, 160,050, 032,0 52 


13658:238, 169,000, 153 , 1 04, 188 , 1 74 


14258: 232,063,20 1, 002,240, 030, 200 


13064: 166, 050, 153, 180,065, 136,2 46 


13664: 169,014, 141, 128,004, 166,206 


14264: 238,234,065, 238, 234, 065, 234 


13070: 20B, 247,032, 166,030, 201 , 150 


13670: 151, 169, 016, 157, 128, 004, 215 


14270: 160, 000, 163, 136, 143, 132, 160 


13076:255,240,024, 1 33 , 1 32 , 032 , 68 


13676:202, 208,250, 162,000, 164,070 


14276: 200, 165, 137, 145, 132, 136, 087 


13082: 166,050, I 33 , 1 33 , 032 , 1 66 , 1 94 


13682: 151, 200, 189, 104, 188, 133, 073 


14282: 173,232,065,013,235,065,217 


13083:050, 160,000, 14S, 132 , 032, 39 


13688: 128,004,240,004,232,200, 160 


1428B: 145, 136,200, 173,234,063, 137 


13094: 166,050, 160 , 001 , 1 45 , 1 32 , 1 80 


13694:208,244, 140,244,065,096,099 


14294: 143, 136,200, 162, 000, 189, 022 


13100:076,016,051, 165, 158, 133, 131 


13700:032, 140,033, 169,000, 133, 127 


14300: 000,006, 145, 136, 200,232, 171 


13106: 132, 165, 159, 133, 133, 160, 164 


13706:085, 133,084, 173, 1 73,063, 083 


14306:204,234,065,208,244,076,233 


13112: 000,032, 166,050, 145, 132, 069 


13712: 056, 229, t 36, 1 68 , 173 , 1 76 , 058 


14312:061,056,032, 128,036,238,035 


131 18: 200, 208, 248, 230, 133, 165,222 


137 IB: 065, 229, 137, 032, 162,053, 060 


14318:244,065,238,244,065,056, 126 


13124! 133, 197, 137, 144,240,240, 133 


13724: 167, 000, 141, 022, 066,096, 138 


14324: 173, 244, 063, 109, 234,063, 1 10 


13130:238, 173,029,066,072, 169,0 53 


13730: 032, 182,060,032, 190,060, 206 


14330: 141 , 234, 065, 172, 244,065, 147 


13136: 001, 032,218, 058, 032, 203, 112 


13736: 169,066, 133, 204, 169,031 , 172 


143361 173,234,065, 145, 136, 162, 147 


13142: 058, 044, 029, 066, 016, 003, 046 


13742: 133,203,032, 110,033,096,013 


143421000,200, 189,000,006, 145,034 


13148:032, 108,033,032,026,033, 104 


I 3748: 160, 001, 177, J 32, 240 , 23 1 , 097 


14348: 136,200,232,204,234,065,059 


13154: 104, 141,029,066,032,072,030 


13754s 169,000, 145, 132, 136, 145, 145 


14354: 208,244, 160,000, 165, 136, 163 


131601 059,032, 003,038, 076, 182, 238 


13760: 132, 177, 130, 041 ,003, 201 , 108 


14360: 145, 132,200, 165, 137, 145, 180 


13166:035, 169, 001, 032, 218,038, 111 


13766:002, 208,009, 200 , 1 77, 130 , ! 36 


14366: 132, 136, 173,232, 065,013, 013 


13172:032,203, 038,032, 026,035, 246 


13772: 168, 177, 130, 076, 213, 053, 253 


14372:233,065, 143, 136,200, 173,222 


13178: 169,065, 160, 136, 162,002,048 


13778:200, 177, 130, 133,203,024,053 


14378:244,065, 145, 136,200, 162,226 


13184:032, 089, 033, 032, 182, 033,019 


13784: 101, 130, 141,24 7,033, 165,029 


14384:002, 189, 126,004, 145, 136, 138 


13190:032,003,038,096, 173,029,2 49 


13790:1 30, 141, 250,053, 165, 131 , 068 


14390:200, 232, 236,244,065, 208,215 


13196:066,201, 128,096, 173, 143, 179 


13796: 141, 231, 03 3, 103, 00, 141, 151 


14396: 244, 165, 136, 024, 109, 234, 204 


13202: 062, 208,001 ,096, 169,065, 235 


13802: 248,053, 165, 137, 056, 237, 106 


14402:065, 144,006, 165, 137,201,016 


13208: 160, 119, 162,000,032,089,202 


13808:248, 033, 170,232, 160, 000,079 


14408: 186,240,015, 1 65 , 136. 024 , 070 


13214:033, 165, 134, 141, 238,063, 166 


13814: 185, 255,255, 153,255, 255,068 


14414: 109,234,065, 133, 136, 165, 152 


13220: 165, 135, 141 ,239,063, 169,034 


13820: 200, 208, 247, 238,248, 03 3, 166 


14420: 137, 105,000, 133, 137,096, 180 



76 COMPUTEI March 1986 



14426: ibf 
14432E000 
l,443B: 132 
14444:000 
144S0: 141 
14456: 177 
14462: 113 
144&B; 162 
14474: 006 
14480:208 
I44S6: 001 
14492: 236 
1449S: 000 
14504: 169 
14510: 029 
14S16; 062 
14522:201 
143281240 
14534:201 
14540:240 
14546:201 



14552 

145S8 
14564 
14570 
14576 
145B2 
145B8 
14394 
14600 
14606 
14612 
I46IB 
14624 
14630 
14636 
14642 
1464e 
14654 
14660 
14666 
14672 
1467B 
14684 
14690 
14696 
14702 
1470B 
14714 
14720 
14726 



:240 
: 144 
: 001 
: 109 
: 020 
: 076 
: 057 
i062 
:020 
:060 
I 162 
:232 
:20I 
:047 
:240 
:076 
:201 
J 194 
: 029 
:062 
: 042 
: IBS 
I 144 
; 207 
: 06 2 
I 165 
165 
165 
165 
240 



14732: 
1473BI 
14744s 
147501 
14756: 
14762: 
I476BS 
147741 
147801 
14786: 
14792: 
14798: 
14B04: 
14B10: 
14B16: 
14S22: 
14B2B: 
14B34: 
14B40: 
14846) 
14852: 
14eSB: 
14864: 
14870: 
14876: 
14BB2: 
14888: 
14B941 
14900: 
14906: 
14912: 
14918: 
14924: 
14930: 
14936: 
1494Z: 
14948: 
14934; 
14960: 
14966: 
14972; 
1497B: 
14984: 
149.90: 
14996: 
15002: 
1500B: 
15014: 
15020: 



072 
076 
060 
240 
128 
12S 
000 
032 
232 
104 
104 
104 
104 
104 
168 
072 
126 
174 
141 
004 
192 
153 
169 
063 
160 
007 
134 
144 
032 
044 
229 
203 
05B 
65 
032 
032 
032 
042 
031 
003 
170 
149 
066 
066 
120 
003 
173 
169 
026 



,255, 


141, 


252, 


00 2, 


169, 


054 




, t6B, 


145, 


132, 


200 


145, 


IIB 




, 169, 


064 


160, 


228 


162, 


249 




,032, 


0B9 


033 


163 


134, 


049 




i 17a 


063 


165 


135 


141 


171 




, 065 


162 


253 


134 


076 


241 


, 


,032 


186 


142 


252 


065 


148 




,000 


160 


000 


1B9 


000 


131 




,032 


204 


034 


201 


040 


143 




,001 


200 


201 


041 


208 


233 




, 136 


157 


000 


006 


232 


170 




,234 


065 


,208 


231 


192 


042 




,240 


003 


,076 


242 


057 


012 




,000 


072 


, 169 


000 


141 


, 207 




,062 


, 169 


,006 


141 


030 


, 099 




,032 


, 020 


, 062 


144 


,082 


, 070 




,045 


,240 


,078 


201 


,043 


,226 




,074 


,20t 


,046 


,240 


,070 


,039 




,080 


,240 


,037 


,201 


,040 


,229 




, 021 


,201 


, 065 


,240 


,011 


,214 




, 066 


,240 


, 007 


,201 


, 064 


,221 




r,0IS 


,076 


,242 


,057 


,032 


, 110 




, 05* 


,076 


,015 


,037 


, 169 


,225 




,072 


,076 


, IBl 


,056 


,032 


, 134 




,042 


,076 


,015 


, 037 


,032 


, 053 




, 062 


,201 


, 073 


, 240 


, 003 


, 071 




, 242 


, 037 


, 169 


006 


, 160 


, laa 




,032 


, 177 


, 060 


032 


,020 


, lie 




, 076 


, 015 


,057 


,064 


,003 


,023 




,021 


, 146 


, 101 


032 


,221 


,037 




,032 


,028 


,062 


240 


1 19 


, 043 




,002 


, 201 


, 043 


240 


ass 


,211 




,201 


, 045 


, 240 


050 


232 


, 002 




,042 


,240 


, 045 


232 


201 


,225 




,240 


, 040 


,232 


201 


094 


, 124 




,03= 


, 201 


, 041 


240 


003 


036 




,242 


, 057 


, 104 


240 


022 


023 




,001 


, 240 


,007 


072 


032 


097 




,037 


, 076 


,033 


ear 


23B 


225 




,062 


, 20B 


,003 


238 


030 


126 




,076 


, 013 


,037 


076 


186 


034 




,134 


207 


, 104 


072 


16B 


039 




, 119 


,062 


,221 


119 


062 


086 




,016 


032 


, 194 


037 


166 


189 




,104 


072 


, 168 


185 


119 


185 




,221 


119 


,062 


I 76 


240 


216 




,217 


,072 


, 165 


216 


072 


249 




,215 


072 


, 165 


214 


072 


251 




,213 


072 


, 165 


212 


072 


253 




,207 


072 


,076 


lai 


036 


117 




, 106 


076 


, 172 


061 


104 


125 




,240 


, 006 


,032 


194 


057 


229 




,139 


,057 


, 104 


032 


190 


232 




, 160 


,000 


■ IBS 


031 


066 


142 




,009 


,032 


, 176 


034 


153 


034 




,004 


, 200 


,208 


242 


153 


073 




,004 


, 140 


,244 


065 


162 


145 




, 189 


, 000 


,006 


240 


009 


10B 




■ 176 


, 034 


, 137 


000 


006 


075 




,20B 


, 242 


,076 


190 


052 


164 




, 133 


, 203 


, 104 


133 


204 


031 




, 133 


, 145 


, 104 


133 


224 


019 




, 133 


,225 


, 104 


133 


226 


107 




, 133 


, 227 


, 104 


133 


228 


117 




, 133 


, 229 


, 163 


145 


010 


236 




, 165 


, 204 


,072 


165 


203 


177 




, 1B5 


127 


062 


072 


185 


165 




,062 


072 


163 


212 


096 


201 




,252 


06S 


154 


169 


007 


039 




,244 


065 


160 


000 


185 


019 




,064 


153 


12B 


004 


200 


039 




, 007 


20B 


245 


169 


000 


057 




, 12S 


004 


076 


173 


037 


091 




,125 


032 


229 


0SB 


032 


149 




,035 


169 


,005 


162 


104 


04B 




,058 


032 


, 126 


058 


169 


1 19 




, 162 


006 


, 160 


000 


032 


145 




,058 


032 


,218 


058 


032 


060 




,038 


,048 


,019 


162 


007 


22B 




,195 


,058 


,032 


017 


059 


189 




,029 


,066 


,048 


006 


032 


027 




,05B 


,076 


,053 


058 


032 


060 




,058 


, 169 


,007 


032 


218 


24S 




, 169 


, 138 


, 133 


203 


169 


198 




,133 


,204 


,032 


110 


033 


147 




,028 


033 


,032 


026 


035 


01B 




,003 


,038 


,032 


152 


033 


12B 




, 192 


,033 


,096 


066 


05B 


059 




,046 


, 042 


, 169 


00B 


141 


042 




,20B 


, 173 


,031 


20B 


20 1 


196 




,096 


, 010 


,010 


010 


010 


001 




,096 


, 141 


,023 


066 


134 


242 




, 132 


, 150 


,096 


141 


024 


054 




, 142 


, 026 


,066 


140 


023 


,089 




,096 


, 173 


, 024 


066 


032 


,087 




,05B 


, 165 


, 149 


157 


068 


, 097 




, 165 


, 150 


, 157 


069 


003 


, 189 




,023 


, 066 


, 157 


072 


003 


, 142 




, 000 


, 157 


, 073 


003 


, 173 


,229 




,066 


, 157 


, 074 


003 


173 


, 159 





5026:025 
5032:003 
5038:228 
5044: 027 
5050; 096 
3036: 142 
5062: 142 
506B: 058 
5074: 076 
3080: 140 
5086: 173 
5092: 169 
5093:073 
5104:003 
51 10:OSB 
5116: 039 
5122: 121 
512B: 027 
5134: 000 
5140:003 
5146: 032 
5152: 174 
515B: 162 
3164:032 
5170:202 
3176: 173 
51B2:01 
5188:005 
5194: 128 
5200: 119 
5206:096 
5212:002 
S21B; 169 
5224) 059 
5230:252 
S2361 169 
5242:201 
3248:039 
5254: 133 
3260: 124 
5266:041 
5272: 173 
527Br 006 
3284:096 
5290: 141 
3296: 174 
5302: 044 
5308: 097 
5314: 002 
5320: 217 
3326: 000 
5332: 21 
3339:202 
5344; 096 
5350: 107 
5356: 117 



3362 
5368 
3374 
5380 

5386 
5392 
539B 
3404 
5410 
3416 
5422 
342S 
5434 
3440 
5446 
3452 
545B 
5464 
5470 
5476 
54B2 
3408 
5494 
SS00 
5506 
3512 
5518 
3324 
5530 
5536 
3342 
5548 
3334 
5560 
5566 
3372 
5578 
53B4 
5590 
3396 
5602 
360B 
5614 
5620 



: 12B 
: 122 
:053 
: 1 10 
: 128 
: 1 13 
:056 
: 128 
:074 
:e94 
: 073 
: 12B 
: 12S 
: 033 
: 077 
: 089 
: 12B 

157 
: 071 
: 129 

128 
:029 
: 002 
1 128 
:032 
: 128 
:O20 
: 128 
; 00B 
:0O1 
t 132 
:217 
: 000 
:031 
: 127 
:200 
: 160 
: 133 
I 244 
! 006 
: 036 
: 101 
: 030 

062 



, 066, 


157, 


075, 


003, 


169, 


161 


1' 


, 137, 


066 


003, 


032, 


096, 


019 




, 140, 


029 


066, 


096, 


142, 


123 




,066, 


096 


142, 


028, 


066, 


109 




, 162, 


000 


142, 


027, 


066, 


183 




, 028, 


066 


142, 


024 


066, 


164 




, 029, 


066 


096, 


032 


120 


1B7 




,169, 


012 


157 


066 


003 


173 




.188, 


038 


141 


120 


039 


100 




, 121, 


059 


142 


122 


059 


107 


i; 


,02B 


066 


032 


120 


03B 


203 


1! 


,000 


157 


072 


003 


157 


034 


1! 


,003 


169 


011 


157 


066 


217 


i: 


, 173 


120 


0S7 


032 


ISB 


063 


1 


, 172 


121 


059 


174 


122 


200 




, l^'S 


120 


039 


096 


140 


147 




,059 


142 


122 


059 


173 


182 




, 066 


032 


120 


05B 


169 


240 




, 137 


072 


,003 


157 


,073 


, 236 




, 169 


007 


, 157 


066 


,003 


, IBS 




, 188 


03S 


, 172 


121 


,059 


, 160 




, 122 


059 


,009 


,000 


,096 


, 2S2 




,007 


142 


, 123 


, 059 


, 133 


, 1 73 




,218 


058 


, 174 


, 123 


, 059 


,212 




,208 


,243 


, 076 


.203 


, 03B 


,032 




, 029 


,066 


, 133 


, 151 


,048 


, 160 




, 169 


,064 


, 160 


, 091 


, 162 


,222 




, 032 


089 


,033 


,096 


,201 


, 023 




, 20B 


010 


, 169 


064 


, 160 


06 1 




, 162 


007 


,032 


069 


033 


026 




, 169 


064 


, 160 


107 


162 


092 




,032 


089 


,033 


164 


151 


067 




, 000 


032 


162 


053 


096 


1 14 




, 032 


002 


000 


043 


173 


172 




,002 


201 


255 


208 


003 


023 




,000 


096 


173 


252 


002 


054 




, 253 


240 


249 


141 


124 


066 




, 169 


255 


141 


252 


002 


254 




,017 


032 


218 


059 


173 


014 




,059 


201 


192 


176 


016 


156 




,063 


201 


060 


208 


024 


247 




, 124 


059 


041 


064 


240 


101 




, 1*1 


190 


,002 


169 


000 


170 




, 173 


190 


,002 


073 


064 


010 




, 190 


002 


169 


000 


096 


016 




, 124 


059 


189 


241 


059 


014 




, 190 


002 


080 


010 


201 


213 




, 144 


006 


201 


123 


176 


183 




,041 


223 


201 


128 


240 


021 




,096 


072 


169 


100 


141 


243 




, 210 


162 


175 


142 


001 


144 




, 160 


128 


, 136 


208 


253 


043 




■ 22t 


159 


,20B 


243 


104 


094 




, 108 


106 


059 


128 


128 


097 




,043 


042 


Hi 


128 


112 


021 




, 155 


105 


045 


06 1 


I IB 


0B5 




,099 


12B 


126 


09B 


120 


191 




,032 


128 


051 


054 


027 


1B6 




, 050 


049 


044 


032 


046 


032 




, (2S 


109 


047 


123 


1 14 


144 




, 101 


121 


127 


116 


119 


226 




,037 


128 


04B 


055 


126 


047 




,060 


062 


102 


104 


100 


010 




, 130 


103 


1 15 


097 


076 


181 




, 058 


128 


128 


075 


092 


093 




, 079 


128 


0B0 


085 


155 


165 




,095 


124 


0S6 


128 


067 


123 




, 129 


066 


0B8 


090 


036 


092 




, 035 


038 


027 


037 


034 


117 




, 091 


032 


093 


078 


128 


023 




,063 


12B 


0B2 


128 


069 


121 




, 159 


0B4 


097 


0B1 


040 


120 




, 041 


039 


, 156 


064 


125 


139 




, 070 


072 


,068 


12B 


131 


218 




,0B3 


063 


,012 


010 


123 


2ia 




, 128 


Oil 


,030 


031 


015 


203 




,016 


021 


, 133 


009 


02S 


223 




,022 


126 


,003 


128 


128 


054 




,024 


026 


, 128 


12B 


133 


063 




.027 


128 


,253 


128 


000 


036 




,096 


014 


12a 


013 


12B 


043 




, 018 


128 


005 


025 


15S 


102 




, 023 


017 


128 


129 


12B 


090 




,234 


128 


125 


255 


006 


036 




,004 


128 


132 


007 


019 


212 




,170, 


032 


137 


221 


096, 


065 




,212 


133 


213, 


032 


170, 


050 




,096 


032 


230 


216 


160 


1 15 




,177 


243 


048 


006 


153 


053 




, 066 


200 


206 


246 


041 


224 




, 133 


031 


066 


169 


000 


240 




, 153 


031 


066 


169 


031 


094 




, 066 


096 


173 


029 


062 


036 




, 243 


173 


030 


062 


133 


230 




, 169 


000 


133 


242 


032 


026 




, 061 


032 


000 


216 


032 


071 




,061 


024 


173 


029 


062 


115 




, 242 


141 


029 


062 


173 


223 




, 062 


105 


,000 


141 


030 


1 10 




,096 


160 


000 


140 


030 


236 





5626 


066 


177 


243, 


5632 


001 


096 


169, 


5638 


066 


177 


243, 


3644 


204 


034 


i-ts, 


5650 


244 


096 


173, 


5656 


250 


160 


000, 


5662 


244 


032 


176, 


566B 


200 


208 


244, 


5674 


217 


164 


212, 


3680: 


163, 


212, 


041, 


56B6. 


062, 


170, 


016, 


5692 


169 


000 


149, 


3698 


006 


20S 


249, 


5704 


141 


019 


062, 


5710 


212 


162 


210, 


5716 


152 


221 


032, 


3722 


064 


061 


'73, 


5728 


006 


165 


212, 


3734 


212 


096 


163, 


5740 


133 


212 


096, 


5746 


212 


072 


240, 


5752 


169 


000 


032, 


575B 


016 


,006 


,163, 


5764 


133 


,212 


,096, 


5770 


176 


037 


096, 


3776 


032 


096 


218, 


5782 


032 


219 


219, 


3788 


032 


253 


061 , 


5794 


176 


,013 


,096, 


3800 


176 


,007 


,096, 


5806 


176 


,001 


,096, 


5812 


032 


, 182 


, 221 , 


5B13 


061 


, 032 


, 177. 


5824 


061 


096 


063, 


5830 


000 


000 


162, 


5336 


032 


167 


221, 


5842 


032 


1S7 


061, 


5848 


062 


032 


152, 


5854 


218 


032 


IBl , 


5860 


005 


181 


224, 


5866 


016 


,249 


,096, 


3872 


224 


,072 


lei. 


5B7B 


104 


, 149 


,212, 


5864 


096 


,000 


000, 


5890 


000 


,000 


238, 


5B96 


003 


,238 


030, 


5902 


004 


,201 


038, 


5908 


008 


,201 


,032, 


5914 


056 


233 


208, 


5920 


096 


000 


002, 


5926 


000 


000 


014, 


5932 


194 


114 


046, 


5938 


004 


00B 


198, 


5944 


IBB 


IBB 


1B9, 


5950 


169 


1B9 


189, 


5936 


190 


190 


190, 


5962 


191 


191 


191, 


3968 


104 


144 


184, 


5974 


068 


ize 


16B, 


5990 


072 


112 


152, 


3936 


036 


,096 


136, 


5992 


001 


,002 


,002, 


5998 


148 


,057 


, i'*a. 


6004 


156 


,061 


,163, 


6010 


215 


,061 


,046, 


6016 


044 


,000 


,000, 


6022 


034 


,033 


,035, 


6028 


037 


,033 


,038, 


6034 


040 


,033 


,041, 


6040 


.043 


,033 


,044, 


6046 


:046 


,033 


,047, 


6052 


:049 


, 033 


,050, 


60S6 


:052 


,033 


,053, 


6064 


:055 


, 033 


,056, 


6070 


:0S8 


, 034 


,033, 


6076 


:035 


, 034 


, 036, 


6082 


:038 


,034 


. 039, 


6089 


:041 


,034 


,042, 


6094 


:044 


, 034 


, 045, 


6100 


:047 


, 034 


, 04B, 


6106 


030 


034 


0=1, 


61 12 


053 


034 


= 4, 


6118 


036 


069 


oaa. 


612* 


116 


1 11 


032, 


6130 


033 


032 


065, 


6136 


121 


,111 


, 117, 


6142 


: 114 


, 101 


, 063. 


6148 


:047 


, 076 


,041, 


6154 


: 1 12 


,101 


, 101 , 


6160 


: 108 


,099 


,000, 


6166 


: 101 


, 101 


,100, 


6172 


:099 


,032 


,066, 


617B 


:046 


, 032 


, 077, 


6134 


: 103 


,1)0 


, 032, 


6 190 


:046 


,032 


, 066, 


6196 


: 110 


,111 


,110, 


6202 


:033 


, 0B4 


, 069, 


6208 


: 197 


,211 


, 197, 


6214 


: 1 14 


, 097 


,112, 


6220 


:046 


, 000 


,125, 



201 
255 
240 

243 
030 
177 
034 
096 
165 
127 
002 
212 
096 
041 
160 
1=1 
019 
009 
212 
160 
002 
182 
212 
032 
032 
176 
176 
032 
032 
032 
076 
169 
060 
080 
013 
032 
162 
221 
061 
149 
162 
212 
202 
000 
029 
062 
240 
036 
096 
040 
050 
066 
1 IB 
IBB 
189 
190 
191 
224 
20B 
192 
176 
003 
057 
06 1 
0=2 
033 
033 
033 
033 
033 
033 
033 
033 
033 
034 
034 
034 
034 
034 
034 
034 
034 
073 
068 
114 
032 
032 

0sa 

100 

12S 
067 
121 
097 
03B 
1 14 
000 
077 
212 
1 12 
099 



032, 


144, 


141 , 


030, 


008 


032, 


200 


208, 


066 


016, 


243 


240, 


145 


243, 


032 


210, 


213 


096, 


056, 


233, 


162, 


000, 


232, 


224, 


165, 


212, 


127 


133, 


061 


032, 


061 


032, 


062 


016, 


128 


133, 


041 


127, 


000 


165, 


160 


001, 


060 


104, 


073 


128, 


102 


218, 


253 


061, 


023 


096, 


022 


096, 


040 


219, 


192 


221 , 


205 


,222, 


242 


,057, 


210 


,160, 


032 


,216, 


000 


000, 


160 


062, 


243 


061 , 


013 


160, 


032 


219, 


096 


162, 


212 


202, 


005 


161, 


149 


ZS". 


016 


243, 


000 


000, 


062 


2aa, 


173 


12B, 


011 


176, 


233 


043, 


169 


05B, 


002 


000, 


150 


036, 


050 


056, 


010 


IBS, 


189 


189, 


199 


190, 


190 


191 , 


191 


064, 


008 


048, 


248 


032, 


232 


016, 


216 


000, 


003 


004, 


130 


061, 


171 


061, 


038 


000, 


033 


033, 


036 


033, 


039 


033, 


042 


033, 


043 


033, 


04B 


033, 


031 


,033, 


054 


033, 


037 


.033, 


034 


,034, 


037 


,034, 


040 


,034, 


043 


,034, 


046 


,034, 


049 


,034, 


0=2 


034, 


055 


034, 


084 


032, 


079 


033, 


101 


032, 


115 


117, 


040 


,089, 


000 


,083, 


067 


,097, 


083 


■ 112, 


097 


,108, 


032 


,075, 


1 14 


,116, 


032 


, 067, 


097 


,110, 


083 


,089, 


032 


,210, 


032 


,0B4, 


101 


,100, 


1 1 1 


,117, 



105 
196 
020 
038 
147 
086 
132 
018 
101 
130 
226 
038 
250 
099 
163 
237 
245 
253 
203 
122 
049 
171 
230 
173 
041 
038 
161 
041 
140 
154 
070 
146 
012 
252 
099 
208 
073 
182 
220 
193 
191 
038 
164 
10B 
043 
146 
20B 
102 
094 
1B8 
098 
076 
0B0 
178 
189 
201 
0B5 
040 
206 
1 16 
026 
135 
235 
039 
03B 
031 
098 
1 13 
128 
143 
138 
173 
133 
203 
169 

isa 

173 
188 
203 
218 
233 
248 
136 
229 
148 
109 
197 
071 
092 
047 
100 
213 
020 

ia4 

015 

059 
I 17 
245 
210 

068 



March 1986 COMPUTE] 77 



16226:032 
16232: 104 
16238: 1936 
16244: 114 
162S0: lai 
162S6: 077 
1626Z; 109 
1626B: 110 
16274: 116 



16280: 
162861 
16292: 

16298: 

16304: 

16310: 

16316: 

16322: 

1632B 

16334 

16340 

16346 

163S2 

1635S 

16364 

16370 

16376 

16382 

1638B 

16394 
16400 
16406 
16412 
16418 
16424 
16430 
E6436 
16442 
16448 
16454 



16460 
16466 

16472 
16478 
16464 
16490 
16496 
16502 
1650S 
16314 
16S20 
16326 
16332 
16S3B 
16344 

16330 
16556 
16562 
1656S 
16574 
165B0 
16386 
16592 
1659B 
16604 
16610 
16616 
16622 
1662B 
16634 
16640 
16646 
16632 
1665B 
16664 
16670 
16676 
16682 
16688 
16694 
16700 
16706 
16712 
167 IB 
16724 
16730 
16736 
16742 
1674B 
16754 
16760 
16766 
16772 
1677B 
16784 
16790 
16796 
16802 
16808 



I IS 

111 

0Be 
100 

032 

206 

II 1 
098 
133 
032 
206 
101 

0se 

082 
084 
032 
117 
089 
010 

010 
058 
0S8 
108 
10S 
032 
101 
105 
108 
041 
100 



105 
108 
;041 
:032 
: 114 
:000 
: 114 
:000 
s 107 
5 097 
: 000 
I 116 
1 116 
1 116 
: 114 

: 116 
: 10S 
: 117 
: 11 1 

I 103 
: 10B 
: 000 
: 113 
: 100 
: 114 
: 114 
: 101 
I 032 
: 116 
: 101 
: 097 
: 032 
: 114 
: 11 1 
; 116 
: 101 
: 105 
: 077 
: 117 
: 116 
: 116 
: 103 
: 03Z 
: 000 
: 105 
: 000 
: 032 
: 101 
1070 
: 10? 
: 101 
t 108 
:£46 
: 116 
: 101 
: 099 
: 046 
: lis 
: 213 



109 
097 
075 
117 
101 
046 
1 1 1 
121 
1 14 
044 
1 10 
069 
032 
207 
032 
1 17 
111 
080 
210 
032 
045 
000 
032 
038 
121 
1 14 
047 
101 

087 
000 
000 
099 
I 1 1 
079 
032 
099 
101 
062 
032 
099 
101 
062 
032 
I 14 
073 
1 14 
032 
032 
098 
070 
058 
044 
101 
032 
032 
102 
109 
102 
109 
097 
0B0 

lis 

097 
097 
000 
1 10 
1 14 
1 1 1 
1 14 
000 
099 
032 
112 
032 
119 
1 16 
1 1 1 

I 14 

II 1 
1 11 
104 
098 
0B0 
1 10 
080 
1 16 
1 18 
105 
101 
099 
097 
046 
032 
101 
032 
000 
1 IS 
210 



1 17 
1 IB 
032 
1 10 
100 
155 
1 IB 
032 
105 
032 
032 
155 
100 
20S 
097 
032 
111 
114 
197 
1 16 
09B 
067 
083 
032 
111 
101 
078 
114 
10S 
071 
0B2 
1 17 
1 10 
000 
040 
101 
1 10 
000 
040 
101 

I 10 
000 
078 

II 1 
047 
11 I 
066 
107 
I 1 1 
1 1 1 
032 
032 
1 14 
210 
074 
121 
09B 
032 
097 
099 
1 14 
105 
1 16 
1 10 
07B 
1 1 1 
1 1 1 
032 
032 
077 
1 17 
1 16 
032 
1 1 1 
032 
105 
1 IB 
1 IS 
032 
109 
116 
10B 
114 
103 
1 14 
1 1 1 
105 
108 
041 
097 
116 
046 
097 
100 
102 
133 
032 
206 



113 
101 
116 
032 
067 
155 
101 
099 
100 
I 1 1 

eeB 

104 

1 1 1 

212 

I 15 
1 14 
1 16 
101 
212 
1 1 1 
I 1 1 
076 
072 
065 
1 17 
063 
04 L 
1 14 
100 
111 
101 
108 
032 
0B3 
068 
0SB 
097 
076 
068 
0SB 
097 
079 
III 
1 14 
079 
1 14 
1 14 
101 
1 14 

I 14 
204 
193 
044 
103 
117 
063 

101 
100 
108 
101 

II 1 

lie 

097 

lis 

11 1 
117 
11 1 

101 
100 
1 1 1 
114 

I I 1 
10B 
102 
112 

II 1 
101 
111 
098 
032 
032 
11 1 
103 
046 
103 
032 
099 
101 
062 
108 
10S 
000 
032 
067 
105 
080 
210 
155 



1 16 
032 
1 1 1 
083 
097 
082 
032 
097 
103 
1 14 
076 
111 
1 19 
201 
032 
101 
046 
1 15 
213 
032 
111 
069 
069 

I 14 
032 
032 
0SB 

II 1 

I 16 
116 
099 
097 
105 
097 
101 
070 
109 

II 1 
101 
070 
109 
075 
032 

lis 

032 
032 
101 
121 
116 
109 
101 
101 
032 
103 
1 15 
000 
1 14 
101 
032 
1 15 
099 
103 
032 
102 
116 
103 
109 
1 10 
097 
1 IB 
1 15 
032 
101 
032 
1 1 1 
1 10 
032 
1 14 
1 1 1 
1 14 
1 1 1 
099 
1 10 
046 
110 
040 
101 
110 
000 
099 
110 
B7B 
083 
097 
108 
1 14 
197 
000 



032 


, 107 


052 


,096 


032 


,020 


112 


, 172 


108 


, 184 


101 


, 234 


097 


,190 


,114 


,201 


, 101 


,017 


032 


088 


047 


1 10 


10B 


031 


110 


230 


207 


219 


121 


017 


043 


196 


ISS 


063 


113 


1 12 


210 


000 


I 14 


05S 


1 16 


032 


065 


047 


069 


125 


101 


178 


1 IS 


002 


040 


203 


000 


055 


114 


036 


104 


020 


111 


227 


097 


203 


1 16 


161 


115 


100 


118 


193 


118 


250 


105 


07B 


101 


172 


097 


195 


1 18 


017 


105 


102 


101 


196 


046 


135 


101 


224 


046 


202 


069, 


150 


035, 


120 


097, 


016 


032, 


112 


033, 


187 


097, 


125 


102, 


243 


1 10, 


234 


111, 


160 


104, 


060 


116. 


224 


078, 


129 


032, 


237 


099, 


217 


112, 


241 


063, 


011 


101 , 


193 


032, 


020 


116, 


004 


101, 


091 


032, 


163 


104, 


1 10 


032, 


235 


116, 


062 


116, 


042 


101 , 


248 


111, 


0B2 


116, 


021 


102, 


072 


110, 


015 


113, 


108 


000, 


071 


099, 


068 


032, 


139 


116, 


126 


103, 


135 


102, 


122 


107, 


1 15 


116, 


091 


046, 


028 


116, 


103 


068, 


239 


058, 


172 


097, 


187 


082, 


253 


1 17, 


229 


103, 


253 


111, 


203 


112, 


09B 


108 


206 


101, 


185 


101, 


140 


212, 


019 


000, 


184 




Fractal 
Graphics 



Paul W. Carlson 



One of the hottest topics in mathe- 
matics these days is fractals — frac- 
tional dimensions. Fractals are being 
used for everything from simulating 
random plant growth to generating 
realistic planetary landscapes for sci- 
ence-fiction films and arcade games. 
This article, adapted from "Apple 
Fractals" in the September 1985 issue 
o/ COMPUTE!, introduces the fascinat- 
ing world of fractals with three pro- 
grams that work on any IBM PCjr or 
PC with color /graphics adapter. 



The term fractal was coined by Be- 
noit Mandelbrot, a pioneer in their 
study, to denote curves or surfaces 
having fractional dimettsion. The 
concept of fractional dimension can 
be illustrated as follows: A straight 
curve (a line) is one-dimensional, 
having only length. However, if the 
curve is infinitely long and curves 
about in such a manner as to com- 
pletely fill an area of the plane con- 
taining it, the curve could be 
considered two-dimensional. A 
curve partially filling an area would 
have a fractional dimension be- 
tween one and two. 

Many types of fractals are self- 
similar, which means that all por- 
tions of the fractal resemble each 
other. Self-similarity occurs when- 
ever the whole is an expansion of 
some basic building block. In the 
language of fractals, this basic 
building block is called the genera- 
tor. The generator in the accompa- 
nying programs consists of a 



number of connected line seg- 
ments. The curves that the pro- 
grams plot are the result of starting 
with the generator and then repeat- 
edly replacing each line segment 
with the whole generator according 
to a defined rule. Theoretically, 
these replacement cycles would 
continue indefinitely. In practice, 
the screen resolution linuts the 
number of cycles. 

The programs illustrate two 
types of fractal curves. The curves 
generated by Program 1 and Pro- 
gram 2 are self-contacting, while the 
curve generated by Program 3 is 
self-avoiding. A self-contacting 
curve touches itself but does not 
cross itself. A self-avoiding curve 
never actually touches itself al- 
though it may appear to because of 
the limited screen resolution. 




The Dragon Sweep 

Program 1 plots what Mandelbrot 
refers to as a "dragon sweep." It 
demonstrates in a step-by-step 
fashion how a fractal curve is filled. 



76 COMPUTEI March 1986 



The generator consists of two line 
segments of equal length forming a 
right angle. During each replace- 
ment cycle, the generator is substi- 
tuted for each segment on alter- 
nating sides of the segments, that is, 
to the left of the first segment, to the 
right of the second segment, and so 
on. Figure 1 shows the first few 
cycles of substitution. The program 
is written in BASIC so the plotting 
is slow enough to let you observe 
the development of the curve. 

The program prompts you to 
enter an even number of cycles (for 
reasons of efficiency and screen res- 
olution, only even numbers of cy- 
cles are plotted). When a plot is 
complete, pressing any key clears 
the screen and returns you to the 
prompt. I recommend starting with 
two cycles, then four, six, etc. It 
takes fourteen cycles to completely 
fill in the "dragon," but since this 
requires almost two hours, you will 
probably want to quit after about 
ten cycles. You can see the com- 
plete dragon by running Program 2, 
which always plots the dragon first 
in less than 30 seconds. 

Since it's not at all obvious 
how the program works, here's a 
brief explanation. NC is the number 
of cycles; C is the cycle number; SN 
is an array of segment numbers in- 
dexed by cycle number; L is the 
segment length; D is the segment 
direction, numbered clockwise 
from the positive x direction; and X 
and Y are the high-resolution 
screen coordinates. 



Lines 100-140 

Line 150 
Line 160 
Line 170 

Lines 180-220 



Lines 230-260 



Lines 270-290 



Lines 300-320 



Get number of cycles 

from user. 

Computes segment length. 

Sets starting coordinates. 

Sets segment numbers for 

all cycles to the first 

segment. 

Find the direction of the 
segment in the last cycle 
by rotating the segment in 
each cycle that will con- 
tain the segment in the 
last cycle. 

Increase or decrease X or 
Y by the segment length, 
depending on the segment 
direction. 

Plot the segment and up- 
date the current segment 
number for each cycle. 
If the segment number for 
cycle zero is still zero, do 
the next segment; other- 
wise, we're done. 




Eight Thousand Dragons 

Program 2 plots more than 8,000 
different dragons. It does this by 
randomly determining on which 
side of the first segment the genera- 
tor will be substituted for all cycles 
after the first cycle. The generator is 
always substituted to the left of the 
first segment in the first cycle to 
avoid plotting off the screen. Other 
than the randomization, this pro- 
gram uses the same logic as Pro- 
gram 1. The main part of this 
program is written in machine lan- 
guage to reduce the time required to 
plot a completely filled-in dragon 
from about two hours to less than 
half a minute. 

All the dragons are plotted 
after 14 cycles of substitution. All 
have exactly the same area, which 
equals half of the square of the 
distance between the first and last 
points plotted. All the dragons be- 
gin and end at the same points. 

When a plot is complete, press 
the space bar to plot another drag- 
on, or press the Q key to quit. 




Snowfiakes 

Program 3 plots what Mandelbrot 
refers to as a "snowflake sweep." 
The generator, shown in Figure 2, 
was discovered by Mandelbrot. The 



segments are numbered zero 
through six, starting at the right. 
The program is basically the same 
as Program 1. The variables NC, C, 
SN, D, X, and Y represent the same 
values except that the direction D is 
numbered counterclockwise from 
the negative x direction. For each 
segment, the accompanying table 
gives the value of RD (relative di- 
rection), LN (length factor), and SD 
(flags indicating which side of the 
segment the generator is to be 
placed). 



Figure 1: Substitution Cycles, 
Program 1 




Cycle 1 



Cycle 2 




Cycle 3 



/T 



/\ 



-^ 



Cycle 4 ^v 



Line 20 Reads values of SD and 

RD. Compute LN values. 

Lines 30-50 Compute delta x and delta 
y factors for each 
direction. 

Lines 60-100 Get number of cycles 

from user, 
Line 120 Sets starting coordinates. 

Line 130 Sets the segment numbers 

for all cycles to the first 

segment. 
Lines 140-170 Find the direction of the 

segment in the last cycle. 



Match 1936 OOMPUTB 79 



Lines 180-190 



Lines 200-220 



Compute the coordinates 
of the end of the segment, 
plot the segment, and up- 
date the segment numbers 
for each cycle. 
Same as lines 300-320 in 
Program 1. 

like Program 1, pressing any 
key when a plot is complete clears 
the screen and brings another 
prompt. 

Experiment 

I hope these programs encourage 
you to look further into the fasci- 
nating world of fractals. Don't be 
afraid to experiment with the pro- 
grams — try modifying the shape of 
the generator in Program 3, for ex- 
ample. Better yet, design your own 
generator. 

These programs just begin to 
explore the possibilities of fractal 
computer graphics. There is anoth- 
er whole class of fractals, those gen- 
erated by functions of complex 
variables. And then there are three- 
dimensional fractals. And then... 



Figure 2: Generator, Program 3 




Values For Program 3 



Segment 


Relative 


Length 


Side 


Number 


Ditection 


Factor 


Flag 


SN 


RD 


LN 


SD 








1/3 





1 
2 




7 


1/3 
\/l73 


1 
1 


3 


10 


1/3 





4 





1/3 





5 


2 


1/3 





^K;6 


2 


1/3 


1 



Program 1 : The Dragon 
Sweep 

BH 90 DIM SN(14):KEY OFF 
m 100 CLSi SCREEN 
PI 110 PR I NT "ENTER AN EVEN NO. 
F CYCLES (2 TO 14) " 



Dt 120 INPUT" OR ENTER 

fl ZERO TO QUIT: ";NC 
EH 130 IF NC = THEN KEY ON: END 
m 140 IF NC MOD 2 = 1 OR NC < 2 

OR NC > 14 THEN 100 
BL 150 L- 128: FOR C-2 TO NC STEP 

2sL-L/2!NexT 
K 160 )t»192:Y-133:CLS: SCREEN 2: 

PSET CX,Y),1 
DL 170 FDR C=0 TO NC: SN (C) -0: NEX 

T 
KJ 180 D=0:FDR C-1 TO NC: IF SN(C 

-D-SNCC) THEN D=D-l:GaTO 
200 
6C 190 D«=D+1 

SP 200 IF D=-l THEN D=7 
NI 210 IF D=B THEN D=0 
KC 220 NEXT 
OA 230 IF D=0 THEN X=X+L+L! BQTO 

270 
EB 240 IF D=2 THEN Y=Y+L:GQTa 27 


6S 250 IF D=4 THEN X=X-L-L:EQTO 

270 
m 260 Y=Y-L 
PL 270 LINE -(X,Y),l:SN(NC)-aN(N 

C)+l 
UP 200 FOR C-NC TO 1 STEP -I: IF 

SN(CJ<>2 THEN 300 
OH 290 SN(CJ=0:SN(C-1)=SN(C-1)+1 

SNEXT 
ES 300 IF SN(0>=0 THEN 1B0 
m 310 IF INKEY»="" THEN 310 
AC 320 GOTO 100 

Program 2: Eight Thousand 
Dragons 

PP 100 DEF SEB: CLEAR, !.H3FF0:N=&H 

4000 
LL 110 READ fl»!lF A*-"/" THEN 13 


LI 120 POKE N,VflL("8tH"+A«):N=N+l 

I GOTO 110 
OC 130 N-8iH440F:FQR K=l TO 15: PO 

KE N,0;N=N+1:NEXT 
HH 140 POKE &H4425,0 
IF 1S0 N=SiH4000:CALL N:PflKE tiH44 

25, 1 
U 160 A»=INKEY«:IF A»="" THEN 1 

60 
PI 170 IF A»=" " THEN 150 
ID 1S0 IF A*<>"Q" AND A«<>"q" TH 

EN 160 
IH 190 SCREEN 0:CLS:KEY ON: END 
EI 1000 DATA 1E,0E, IF, B8, 05,00, C 

D, 10,B0,3E 
DH 1010 DATA ZS,44,00,75,0B,B4,0 

0,CD,1A,89 
KF 1020 DATA 16, 23, 44, E8, 31, 90, B 

E,02,00,B9 
OE 1030 DATA 08, 00, Al, 23,44,33,0 

2,A9,02,00 
JE 1040 DATA 74,02,B2,01,A9,04,0 

0,74,02,86 
Hi 1050 DATA 01 , 32, D6, D0, Efi, Dl , D 

e,E2,EB,A3 
BJ 1060 DATA 23,44,24,01,88,84,0 

F, 44, 46, as 
FK 1070 DATA FE, 0F, 75, D3, BB, 00, 

6,33,C9,BA 
LI 1030 DATA 4F,ia,32,FF,CD,10,B 

9,0F,00,33 
KJ 1090 DATA F6,C6, 84,00,44,00,4 

6,E2,FS,C7 
Si 1100 DATA 06,1E,44,60,00,C7,0 

6,20,44,84 
Hf 1110 DATA 00,B8,01,0C,8B,0E, 1 

E,44,BB, 16 
DC 1120 DATA 20, 44, CD, 10, C6, 06, 2 

2,44,00,89 
LO 1130 DATA 0E,00,33,FF,BE,01,0 

0,BA,A5,0F 



KC 1140 DATA 44,80,FC,00, 75,ia,F 

E, 06, 22, 44 

a 1150 DATA 8A,85,00,44,3A,B4,0 

0,44,73,20 
L6 1160 DATA FE,0E, 22, 44,FE, 0E,2 

2,44,EB, 16 
91 1170 DATA FE,0E,22,44,BA,85,0 

0,44,3A,S4 
KK 1180 DATA 00, 44, 75, 08, FE, 06, 2 

2,44,FE,06 
DC 1190 DATA 22, 44, 80, 3E, 22, 44, F 

F, 75,07,06 

HN 1200 DATA 06,2Z,44,07,EB,0C,B 

0,3E,22,44 
in 1210 DATA 08, 75, 05, C6, 06, 22, 4 

4,00,47,46 
FE 1220 DATA E2, AB, EB, 02, EB, 9A,B 

0,3E,22,44 
CH 1230 DATA 00, 75, 06, FF, 06, IE, 4 

4,EB, 1E,80 
KP 1240 DATA 3E, 22, 44, 02, 75, 06, F 

F, 06, 20, 44 
IE 1250 DATA EB, 11,80, 3E, 22,44,0 

4,75,06,FF 
CO 1260 DATA 0E, IE, 44, EB, 04, FF, 

E, 20,44,88 
ID 1270 DATA 01 , 0C, 8B, 0E, IE, 44, 8 

8,16,20,44 
LL 1280 DATA CD, 10, FE, 06,0E, 44, B 

F,0D,00,BE 
KL 1290 DATA 0E, 00, 89, 0E, 00, B0, B 

0,00,44,02 
PI 1300 DATA 75, 0D, 06,84,00,44,0 

0,FE,85,00 
FN 1310 DATA 44, 4F, 4E, £2, EC, B0, 3 

E, 00, 44, 00 
•OK 1320 DATA 75, 02, EB, 9C, IF, CB, / 

Program 3: The Snowflcke 
Sweep 

DE 10 DIM DX(ll) ,DYtin:KEY OFF 
nC 20 FOR N = TO 6: READ SDtN>, 
RD (N) : LN (N) =1 I /3 ! I NEXTt LN ( 
2)-SQR(LN(in 
LC 30 A=0!FOR D=6 TO 11:DX (01=00 

S(A) :DY(D)-=SIN(A) 
}H 40 A=A+.52359879#!NEXT 
CK 50 FOR D=0 TO 5i DX (D) =-DX (D+6 
J ! DY <0) — DY (D+6) ! NEXT: X 1=5 
34lYl-147:TL=324 
06 60 CL5: SCREEN 
flB 70 PRINT"ENTER NUMBER OF CYCL 

ES ( 1 - 4 )" 
St. 80 INPUT " OR ENTER A 

ZERO TO QUIT: ";NC 
id 90 IF NC = THEN END 
Dfl 100 IF NC > 4 THEN 60 
OP 110 CLS: SCREEN 2 
CL 120 X=534:Y=147sTL~3242PSET ( 

X,Y),1 
CD 130 FOR C=0 TO NC: SN (C) =0: NEX 

T 
BI 140 D=0:L=TL:NS=0:FOR C-1 TO 

NC: I-SN(C>:L»L«LN(I):J=SN 

(C-l):NS-NS+SD{J)sIF NS M 

OD 2 - 1 THEN D»D+12-RD(I 

) :GaTO 160 
8E 150 D=D+RD(I) 
ES 160 D = D MOD 12 
OL 170 NEXT 
8» 180 X=X+1.33tL»DX(D):Y=Y-.5tL 

«DY(D):LINE - < X, Y) , 1 : SN (N 

C)=SN(NC}+lsFOR C = NC TO 
1 STEP -IsIF SN{C) <> 7 

THEN 200 
OB 190 SNfC>=0:SN(C-l)=SN(C-i)+l 

sNEXT 
HH 200 IF SN(0>=0 THEN 140 
KE 210 IF INKEYS-"" THEN 210 
PB 220 GOTO 60 
ftp 230 DATA 0,0,1,0,1,7,0,10,0,0 

,0.2,1,2 ^ 



80 COMPUTH Morch 1986 



Commodore ML Saver 



This short, useful program saves any 
machine language program directly 
from memory into a disk or tape file. It 
works on any Commodore 64 or 128 
(in 64 mode). 



There are many useful machine 
language (ML) utilities available in 
public domain collections, on com- 
puter bulletin boards, and in publi- 
cations like COMPUTE!. The most 
common way to place an ML pro- 
gram in memory is with a BASIC 
loader — a BASIC routine which 
READs the necessary values from 
DATA statements and POKEs them 
into memory. That method is fine 
for short ML programs, but can in- 
volve quite a delay when the ML 
program is long. It takes time, first 
of all, to load the BASIC loader. 
Then there's another wait while it 
POKEs everything into memory. 

A much faster technique is to 
load the ML from disk or tape di- 
rectly into memory. The only prob- 
lem is making the tape or disk file. 
Machine language monitors such as 
Supermon can save any ML pro- 
gram directly from memory. But if 
you don't have a monitor, or don't 
know how to use one, that's not a 
viable option, either. 

A Better Way 

"ML Saver" is a short BASIC utility 
that can save any machine lan- 
guage program on disk or tape di- 
rectly from where it resides in 
memory. After you type in and save 
ML Saver, load and run the pro- 
gram that creates the ML code you 
want to save. Make a note of the 



Buck Childress 



starting and ending addresses. If 
the ML is POKEd into memory with 
a FOR-NEXT loop, these addresses 
usually appear in the loop itself. For 
instance, if the loop is FOR J =49 152 
to 51000:READ Q:POKE ],Q:NEXT 
then you know the starting address 
is 49152 and the ending address is 
51000. Now check the SYS address 
used to activate the program. This 
is usually the same as the starting 
address (for example, SYS 49152), 
but some programs are activated by 
jumping to an address somewhere 
in the middle of the code. 

Once you have this infor- 
mation, you're ready to load and 
run ML Saver, The program asks 
you for the name you want to save 
the ML program under: Enter any 
name up to eight characters in 
length (extra characters are ig- 
nored). After you've supplied the 
name, enter D to save to disk or T 
for tape. Then enter the starting and 
ending addresses you wrote down 
earlier. ML Saver proceeds to save 
the ML code. 

After the file has been created, 
you can load it with LOAD"/!7e- 
name",8,l for disk or LOAD"/i7e- 
name",!,! for tape (of course, you 
should replace filename with the 
filename you used when saving the 
program). Then SYS to the correct 
address to activate the program. To 
do this under program control, put 
the following statements at the be- 
ginning of your program: 

10 IF J = l THEN 30 

20 J = l;LOAD"/!7«wme",8,l 

30 REM PROGRAM CONTINUES HERE 

When you run a program con- 
taining these lines, the variable J 



equals 0, so the computer falls 
through the IF test in line 10 and 
performs line 20, This line sets J to a 
nonzero value and loads the ML. 
After the load is complete, the com- 
puter automatically reruns the pro- 
gram beginning at line 10, but does 
not erase previously established 
variables. This time around, J 
equals 1, so the computer skips line 
20 and proceeds with line 10. @ 



Commodore ML Saver 

For Instructions on entering this listing, please 
refer to "The New Automatic Proofreader for 
Commodore" in this issue of compute!, 

FE 10 INPUT" {CLR) (CXDWN 3 PROG RAH 

NAME " ; PN5 : 1 FLEN ( PN5 ) > 8T 
HENPN?sLEFTS ( PN? , 8 ) 
JC 40 F0RJ=1T0LEN(PN5) :POKE203 
9 + J,ASC(MID|.(PN5.J-l) ) :N 
EXT J 
AM 50 PRINT" {DOWNj {RVSlDlOFFJI 
SK OR iRVSjTlOFFJAPE? " ,- 
GH 60 GETA$:IFA?=""THEN60 
HC 70 IFA?="D"THENDEVICE=8!GOT 

0100 
EC 80 IFA$="T"rHENDEVICE=l:GOT 

O100 
FH 90 GOTO60 
EC 100 PRINTA?!POKE780,15:POKE 

781 , DEVICE t POKE782 , 255 : 

SYS65466 
DB 110 POKE780,LEN(PN5) :P0KE78 

1 , 248 :P0KE782, 7 :SYS6546 

9 
FK 120 INPUT" (DOWNj BEG INNING A 

DDRESS";BA 
XA 130 HI='INT{BA/256) :LO=BA-(H 

1*256) 
MS 140 POKE251,LO:POKE252,HI 
PP 150 INPUT "(DOWN] ENDING ADDR 

ESS";EA 
SJ 160 HI=INT(EA/256) :LO=EA-(H 

I*256)+l 
PF 170 POKE780,251:POKE7B1,LO: 

POKE782,HI 
RF 180 PRINT" {DOWN} SAVING ML V 

ERSION OP ";PN5 
KX 190 SYS65496:END © 



March 1986 COMPUTE! 81 



Loading And Linking 
Commodore Programs 



Part 1 



Jim Butterfield, Associate Editor 



This series covers the ins and outs of 
loading, chaining, and overlaying 
programs on Commodore computers. 



The LOAD command seems easy 
enough to understand: It brings a 
program into memory from disk or 
tape. But it has special features and 
pitfalls. And when you cause one 
program to load another program, 
you enter the special field of chain- 
ing, overlaying, and bootstrapping. 
Let's take a close look at all of these 
operations, beginning with the 
LOAD command. 

LOAD performs some subtle 
tasks, including relocating a pro- 
gram if necessary and a delicatp job 
called relinking. There are special 
rules that apply when you load a 
program that was saved on a differ- 
ent type of Commodore computer. 
In fact, it sometimes works better to 
forget about LOAD and use a dif- 
ferent technique. And the LOAD 
command behaves differently 
when executed by a program than it 
does when you enter it directly 
from the keyboard. 

Most of the principles we'll 
cover in this series apply to pro- 
grams stored on both disk and tape. 
It's easier to give examples that ap- 
ply to disk systems, mostly because 
of the simplicity of setting up dem- 
onstration files. But you can still 
learn a lot about LOAD even if you 
don't have a disk drive. 

What LOAD Does 

When a LOAD command is execut- 
ed, the following things happen: 



• A PRG (PRoGram-format) 
file is brought into memory. Pro- 
gram is just the name for a certain 
type of file. The material contained 
in the file doesn't need to be a pro- 
gram. It could be a block of data, a 
screen, a character set, or anything. 

• If the LOAD command 
doesn't specify nonrelocation, the 
information is normally relocated. 
That is, no matter what memory 
location it was saved from, it's load- 
ed into memory beginning at the 
start of BASIC program space. 
PET/CBM computers are an excep- 
tion to this rule: They never relo- 
cate programs. There's also a 
special cassette format available on 
VIC-20 and Commodore 64 com- 
puters which forces nonrelocation. 
{Unfortunately, this format is not 
easy for the beginner to create.) 

• If the LOAD command speci- 
fies nonrelocation, the information 
is placed in memory at the same 
addresses from which it was saved. 
This is generally done by adding ,1 
at the end of the LOAD command. 
For example, LOAD "PR0G",8 
loads the file PROG from disk and 
relocates it in memory, but LOAD- 
"PROG", 8,1 loads without 
relocating. 

• If there were no errors during 
the load, the reserved variable ST is 
set to (for tape) or 64 (for disk). It's 
often a good idea to check ST after 
loading. You can't rely on BASIC to 
catch every conceivable load error, 
particularly with tape. If you're 
using a disk drive, it's a good idea to 
check the drive status or at least see 



if the red error light is flashing. 

• After the load is complete, the 
program is relinked (more about 
relinking in a moment). 

• If the LOAD command was 
issued in direct mode (from the 
keyboard), all variables are cleared 
and the BASIC start-of-variables 
pointer is set to the first byte past 
the last byte that was loaded. 

• If the LOAD command was 
issued by a program, variables are 
not cleared and the program auto- 
matically reruns from the begin- 
ning. This creates powerful 
opportunities, but requires some 
special handling to work correctly. 

After a load is finished, what 
ends up in the computer's memory 
isn't quite the same as what you 
originally typed on the keyboard. 
For one thing, keywords are token- 
ized — compressed into single-byte 
values. When you type in the letters 
P-R-1-N-T, the BASIC word PRINT 
is "crunched" together into a single 
byte which the computer recog- 
nizes as PRINT. And the picture is 
further complicated because differ- 
ent Commodore computers use 
slightly different tokenizing 
schemes (we'll return to this point a 
bit later). 

Relinking 

When a BASIC program is in mem- 
ory, each program line is linked to 
the next line by a chain of pointers 
(often called line links). At the start 
of each line there's a two-byte 
pointer that shows where the next 
line starts. The end of the program 



82 COMPUTEI March 1986 



is marked by a pointer that consists 
of two zeros. 

What's the purpose of the 
chain? When the computer runs a 
program, there are many times 
when it needs to find a line number 
quickly — to execute a GOTO or 
GOSUB, for example. Rather than 
wade through every character of 
every line, it can skip from one link 
to the next until it finds the line it 
needs. 

Each two-byte pointer shows 
the actual memory address where 
the next line begins, and these links 
are saved with the program. After a 
relocating load, which may bring 
the program into a different memo- 
ry area, the pointers may point to 
the wrong locations. To fix every- 
thing up, the computer automatical- 
ly relinks every line in the program 
after loading it into memory. 

Relinking is a simple job. The 
computer scans through each pro- 
gram line, looking for the zero byte 
that marks the end of that line. As 
soon as it finds this address, the 
computer knows where the next 
line begins — at the next byte past 
the first line's end. It then rewrites 
the link for the first line and leaps 
ahead to repeat the process. 

Relinking Problems 

Two things can go wrong during 
the relinking process. If you load a 
chunk of data that doesn't contain 
any zero bytes, the computer can't 
find any end-of-line markers and 
won't be able to relink at all. The 
second difficulty is fortunately 
quite obscure: There's a model of 
computer called the B system in 
North America and the 700 series 
in Europe. The most well-known 
model in the USA is the Bl 28 (not 
to be confused with the Commo- 
dore 128), but the comments here 
apply to all B and 700 models. 
When you save a BASIC program 
from these computers, the program 
is stored in an unusually low mem- 
ory address. Because the saved pro- 
gram contams zeros in unexpected 
places, other Commodore comput- 
ers can't make any sense of the 
chain. 

Let's create an unlinkable file. 
If you have a disk drive, enter the 
following statements in direct mode 
(without line numbers), pressing 
RETURN after each line: 



OPEN 8,8,8,"0:CRASHER,P,W" 
FRINT#8,CHR${1);CHR$(4); 
FOR 1 = 1 TO 

300:PRINT#8,CHR$t4);;NEXT 
CLOSE 8 

Don't forget to put a semicolon at 
the end of each of the two PRINT# 
statements. 

IF you LOAD "CRASHER",8 
the computer prints LOADING and 
READY, but the cursor doesn't re- 
turn. It's stuck in an endless loop, 
looking for the nonexistent zero 
that marks the end of the first 
BASIC line. This kind of crash is 
fairly common on cassette systems, 
when a bad load fills memory with 
garbage. It can also occur with disk 
if you forget to add ,1 to a LOAD 
command that requires relocation, 
loading something odd like a screen 
image into the BASIC program 
area. You can usually recover con- 
trol by pressing RUN/STOP-RE- 
STORE and entering NEW. 

Before we look at a solution to 
the second problem, let's talk about 
another area where incompatibility 
arises between machines. 

LOAD Address 
Incompatibility 

PET/CBM computers can't relocate 
programs at all. On a PET/CBM, 
BASIC program space starts at loca- 
tion 1025. Most other Commodore 
computers use a different address, 
meaning that the PET/CBM can't 
load programs saved on those com- 
puters. The program following this 
article is a converter to solve both of 
these problems. You'll need a disk 
drive to use it. 

The new file created by the 
program is loadable by any eight- 
bit Commodore computer. Since it 
sets the load address to 1025, 
PET/CBM computers can load it 
properly (all other models relocate 
it automatically). To make B128 
program files usable by other com- 
puters, it puts dummy link bytes 
(both containing a 1) at the begin- 
ning of each line. Remember, all 
these computers relink programs 
automatically, so this problem can 
be solved by putting any nonzero 
values in the links. 

This program works only with 
BASIC programs, since it stops at 
the two zero bytes that mark the 
end of the program. If there's some- 
thing more "pasted" onto the end 
of the BASIC text — a machine lan- 



guage routine, for example — it will 
not be copied. 

Alternative Method 

If you have access to the type of 
computer which generated the orig- 
inal program, there's an easier way 
to do the same thing. You can make 
a Commodore 64 emulate the 
memory configuration of another 
machine so BASIC programs are 
kept in a more compatible part of 
memory. If you move the start of 
BASIC to location 1025, the links 
•wiW be more conventional and the 
program will be PET-compatible. 

To make the area at 1025 avail- 
able for BASIC, we'll also need to 
relocate the screen to a new area. 
To fit the following commands onto 
two screen lines, you can abbrevi- 
ate PRINT as ? and POKE as P 
SHIFT-O: 

POKE56576,5:POKE 53272,4:POKE648,128 
rPOKE1024,0;POKE44,4:POKE56,128 

:PRINTCHR$(147):NEW 

The first three POKEs move 
the screen. The next three move the 
start and end of the BASIC area, 
and the last two commands clear 
the new screen and set up the new 
BASIC work area. 

Once you've entered the above 
commands, your Commodore 64 
emulates a PET/CBM's BASIC con- 
figuration. You may now convert a 
BASIC program into compatible 
format by loading it into the recon- 
figured machine and saving it 
again. By using this load/save se- 
quence, you're making several 
things happen. When you load the 
program, it's relocated into a new 
area. The chain links are then re- 
built to be compatible with the new 
memory space. When you save, the 
newly relocated program — com- 
plete with new links — is placed on 
disk or tape. 

The modified program seems 
the same, but it now has a "univer- 
sal" style. Whether you created it 
with the Converter program below 
or with the POKEs and LOAD/ 
SAVE sequence, it can now be load- 
ed into any eight-bit Commodore 
machine. Its addresses are directly 
compatible with the PET/CBM, 
and other machines will relocate 
the program as it loads. And we've 
eliminated the possibility of the pe- 
culiar B128 chain that confuses oth- 
er Commodore computers. 



March 1986 COMPUTEI 83 



Incompatible Tokens 

Some programs won't transfer from 
one machine to another because of 
differences in the BASIC tokens. 
You'll have little trouble with com- 
monly used commands such as 
PRINT and IF. The difference 
comes with more advanced com- 
mands that aren't part of every ver- 
sion of Commodore BASIC. If you 
write a program in CBM BASIC 4.0 
and use commands like DLOAD 
and SCRATCH, don't be surprised 
to find that it doesn't run properly 
on a Commodore 64. Those com- 
mands don't exist in the 64's 
BASIC, 

You might also be surprised to 
find that a Plus/4 or Commodore 
128 (in 128 mode) can't run the 
PET/CBM program either, even 
though both of those machines 
have DLOAD and SCRATCH com- 
mands. Why not? The commands 
are there, but they're represented 
by different token values. 

In such cases, you can't use 
LOAD and SAVE at all. What you'll 



have to do is detokenize the pro- 
gram by LISTing it to a disk file, 
then bring it back into memory 
with a "merge" method like the one 
described in "Commodore Dynam- 
ic Keyboard, Part 3" (COMPUTE!, 
December 1985). 

We've only scratched the sur- 
face of the many uses of the LOAD 
command. When we start to look 
into chaining, overlaying, and re- 
loading techniques, we'll discover 
that the LOAD command has 
amazing potential. 

Commodore Program 
Converter 

For instrudions on entering this listing, please 
refer to "The New Automatic Proofreader for 
Commodore" published in this issue of 
COMPLrrEi, 

CA 110 OPEt}15,8,15 

QA 120 INPUT "NAME OF PROGRAM" 

;N$ 

JA 130 OPEN 2,8,2, "0: "+N5+",P, 

R" 
KH 140 INPUT#15,E,E$,E1 ,E2:IF 

I SPACE ]E THEN PRINT E5 : 

STOP 
JC 150 INPUT"NAME OF CONVERTED 
PROGRAM"; C? 



BG 160 OPEN3,8,3, "0: "+C5+",P,W 

RF 170 INPUT#15,E,E?,Hl,E2!lF 
{ SPACE )E THEN PRINT E? : 
STOP 

JQ 180 Z?=CHR?(0} 

FA 190 REM! READ LOAD ADDRESS 

FX 200 GET#2,A?,B? 

DC 210 PRINT#3,CHR?(1>;CHR5(4) 

SR 220 REM: READ CHAIN 

CB 230 GET#2,A5,B5 

SS 240 IF LEN(A5)+LEN(B5}=0 GO 

TO 370 
GA 250 PRINT*3,CHR?(1};CHRS(1) 



REMj READ LINE NUMBER 

FOR J=l TO 2 

GET#2,A5:IF A5="" THEN 

lSPACEjA5=aS 

PRINT#3,A9; 

NEXT J 

REM: READ LINE 

GET#2,A5:IP AS="" THEN 

{SPACEjA5=ZS 

PRINT#3,A5,' 

IF A=25 GOTO 230 

GOTO 320 

REM:WIND UP FILES 

INPUT*i5,E,E?,El,E2: IF 

E THEN PRINT E?:STOP 
PRINT#3,Z5!Z?; 
CLOSE 3 
CLOSE 2 
CLOSE 15 ® 



CH 


260 


QG 


270 


HK 


280 


HQ 


290 


HJ 


300 


FE 


310 


JP 


320 


ES 


330 


SD 


340 


DJ 


350 


QB 


360 


EJ 


370 


AX 


380 


JF 


390 


JE 


400 


FF 


410 



(D 
T3 
(C 
C 


E 



a 




Program Your Own EPROMS 

^ VIC 20 -joQ c^ 

^C64 $99.50 

PLUGS INTO USER PORT 
NOTHING ELSE NEEDED. 
EASY TO USE. VERSATILE. 

• Read or Program. One byte or 
32K bytes! 

OR Use like a disk drive. LOAD, 
SAVE, GET, INPUT, PRINT, CMD 
OPEN, CLOSE— EPROM FILES! 
Our software lets you use familiar BASIC commands to 
create, modify, scratch files on readily available EPROM 
chips. Adds a new dimension to your computing capability. 
Works with most ML Monitors loo. 

• Make Auto-Start Cartridges of your programs. 

• The promenade" CI gives you 4 programming voltages, 
2 EPROM supply voltages, 3 intelligent programming 
algorithms, 15 bit ctiip addressing, 3 LED's and NO 
switches. Your computer controls everything from software! 

• Textool socket. Anti-static aluminum housing. 

• EPROMS, cartridge PC boards, etc. at extra charge. 

• Some EPROM types you can use with the promenade" 



2758 !532 ■t62732P 27128 

2S16 2732 2564 27256 

2716 27C32 2764 68764 

27C16 2732A 27C64 66766 



5133 X2ei6A' 

5143 52613- 

2815' 4801BP- 

2816- 
■Owwies eJec{r»c3!h^ s^aseaiii types 



Call Toll Free: 800-421-7731 
In California: 800-421-7748 



ES 



JASON-RANHEIM 

580 Parrott St, San Jose, CA 95112 



Nashua 



Boxed in tens, 
with envel- 
opes, labels, 
write protect 
tabs and Limi- 
ted Lifetime 

W^"^"^- 30. 50. 100. 

3y2"SS 1.75 1.69 1.59 

5V4"SS/DD .89 .84 .79 
SVrDS/DD .94 .89 .84 




Poly-bagged in quantities 
or 50. sold in quantities ol 
150 



51/4" SS/DD 
51/4" DS/DD 



250+ 500+ 

.54({ .53C 
.68( .64C 



RIBBONS 

Sold in sixes, price eacrt, 

Epson MX-70/80 . . 2.59 

Epson MX-100 .... 3.99 

Epson LO 1500 .... 4.99 
NEW 

Epson LX80 4.99 

OkidalafvlicroBOl/ 

82A/83A/92/92 ... 1.» 

NEW 

OkidaQ192/1S2 ... S.99 

Okideta Micro 

84/94 2.x 

Diablo Hyfype 11... 3.19 

NEC Spinwriler .... S.29 

C lloh Prowriler ... J.69 

APPLE IMAGEWHITER. 

Back 145 

Color 6-Pack 4.7S 



ROLLTOP 
FILES fry^ 




3V?" model 

holds 55 17.49 

IRelail Value $24,951 

SV." model 

holds 120 24.99 

IRelail Value S36-00) 



CALL TOLL FREE 1 800 USA-FLEX 

in llnois I MO-FOR-FLEX 7 lo 7 Cmlral Time 

or1(3t3)3St-3700 10 lo 3 Salurdsys 

USRkFLEX 

US N. Brandon Dftve GJendale Hfights, IL &0139 



S^iipping/handling addiTJon^i M^n^- 
Jiium orctef S5000 Visa. WasierCnrd 
and Prepaid ordefs accepted Coftw- 
fadons rated 3A2 or betler and govern- 
menl accounts are accepled on a nel 
30 basis CO.D orders add an addi- 
tional $5.00 Special handling charge. 
APO, FPO. AK. HI a PR orders add an 
Addriional 5% lo (tie lolal ordec amo jnt 
TO COVef PAL and insurance No Miles 
UK outside ol Illinois 



84 COMPUTEI March 1986 



Atari P/M Graphics Toollcit 



// you're mystified by Atari player/ 
missile graphics, this article is for 
you. With help from a toolkit of rou- 
tines written in BASIC and machine 
language, you'll soon be writing your 
own programs that move shapes of 
your own design anywhere .on the 
screen quickly and easily. For all 
400/800, XL, and XE computers with 
Atari BASIC. 



It's safe to say that no feature on 
Atari computers is as exciting and 
as frustrating as player/missile 
graphics. 

Exciting: P/M graphics pro- 
vides four larger objects called 
players and four smaller objects 
called missiles which can be dis- 
played in almost any shape or color 
and animated on the screen. You 
can even achieve 3-D effects by 
making the objects pass above and 
beneath background graphics and 
each other. 

Frustrating: Atari BASIC has 
no special commands for uskig 
P/M graphics, standard Atari man- 
uals don't cover P/M graphics, you 
can't set up P/M graphics in a pro- 
gram without worrying about lots 
of POKEs and protecting memory, 
and Atari BASIC lacks a straightfor- 
ward way to move a P/M object 
vertically or diagonally at speeds 
faster than a crawl. Furthermore, 
there's no easy method of design- 
ing player shapes without scrib- 
bling on graph paper and adding up 
binary bit values of bytes. 

"Atari P/M Graphics Toolkit" 
solves all these problems and more. 
It's a package of routines written in 
BASIC and machine language that 
can form the core of your own pro- 
grams. With the Toolkit, you can 
easily design your own shapes with 



Tom R. Halfhilt, Editor 



a joystick, then write simple BASIC 
programs that automatically set up 
P/M graphics and instantly move 
your objects anywhere on the 
screen. 

You've probably used or heard 
of similar programs in other maga- 
zines and books. In fact, several 
popular routines for animating 
P/M graphics appeared in early is- 
sues of COMPUTE! and are reprinted 
in various COMPUTE! books. But the 
P/M Graphics Toolkit offers these 
advantages: 

Special Features 

• The Toolkit setup/animation 
routine creates a true X-Y coordi- 
nate system for moving P/M ob- 
jects to any horizontal-vertical 
position on the screen. This system 
is patterned after the X-Y coordi- 
nates in Atari BASIC graphics 
modes, so if you know how to use 
the PLOT, DRAWTO, LOCATE, or 
POSITION commands, you should 
have no trouble animating P/M ob- 
jects with the Toolkit. 

• A machine language subrou- 
tine automatically clears out the 
P/M memory area in a flash, so 
your programs initialize faster. 

• The Toolkit routines work in 
single-resolution or double-resolu- 
tion P/M graphics modes, and in 
any screen graphics mode. 

■ Unlike most other programs 
of this type, the Toolkit lets you 
move any of the four missile objects 
as easily as any of the four players. 

• The Toolkit allows you to in- 
stantly change the shape or size of a 
P/M object by selecting from any 
number of previously designed 
shapes — even while the object is 
moving. 

• Because all of its machine lan- 
guage is written to be completely 
relocatable, you can add the Toolkit 



setup/animation routine to any 
BASIC program without fear of 
memory conflicts with other ML 
routines you may be using. 

• Best of all, using the Toolkit is 
a snap. Once the Toolkit setup/ani- 
mation routine is added to your 
program, initializing P/M graphics 
requires only one line of BASIC, 
and all of the animation and shape- 
flipping can be done with just a 
single BASIC statement. 

Getting Started 

All of these features are contained 
in the setup/animation routine list- 
ed below as Program 1 . This will be 
the basic building block of your 
own programs, so the line numbers 
start at 20000 to leave plenty of 
room for your own lines. 

Be sure to type in Program 1 
using COMPUTE!'s "Automatic 
Proofreader" utility, because the 
DATA statements in lines 20170- 
20590 are extremely critical — they 
encode the machine language for 
two ML subroutines. When you're 
done, store Program 1 on disk or 
tape with the LIST command, not 
SAVE or CSAVE: 

LlST'D-.filetiame.ext" for disk 
LIST"C:" for cassette 

This way, you can use the ENTER 
command {ENTER"D:filename.ext" 
or ENTER"C:") to merge the rou- 
tine with another program already 
in memory, as we'll demonstrate in 
a moment. 

A Single-Line Setup 

To create a program that uses 
player/missile graphics, you only 
have to call this routine once. The 
call should be as near to the begin- 
ning of your program as possible; 
the first line is ideal. Here's the 
proper format: 

10 GRMODE = 0:PMMODE = liGOSUB 

20050 



March 1986 COMPUTEI 85 



Set the variable GRMODE to 
whatever graphics mode you de- 
sire. Any valid number or expres- 
sion you'd use with the GRAPHICS 
statement will work. In the above 
example, we're asking the Toolkit 
routine to set up GRAPHICS 0. Set 
the variable PMMODE to the 
player/missile graphics mode you 
want: either 1 for single-line resolu- 
tion or 2 for double-line resolution. 
(If you aren't familiar with P/M 
modes, see "Atari Animation with 
P/M Graphics," a three-part series 
beginning in the September 1985 
issue of COMPUTE!. Even though the 
Toolkit routines automatically per- 
form the memory allocation and 
animation chores discussed in this 
series, I strongly recommend ac- 
quiring some background on P/M 
graphics.) 

The third statement in the 
sample line above actually calls the 
Toolkit setup/animation routine. 
Notice that it GOSUBs to line 
20050 instead of 20000. Lines 
20000-20040 are REM statements, 
and it's good programming practice 
to avoid a GOSUB or GOTO refer- 
ence to a REM because some people 
delete REM statements from pro- 
grams to save memory. 

When you call the routine in 
this manner, there will be a pause 
of several seconds as it loads the 
machine language into memory. 
Then, in rapid sequence, the rou- 
tine automatically protects the right 
amount of memory for the P/M 
mode you requested; instantly 
clears out any old data in that mem- 
ory area; performs all the POKEs 
necessary to set up P/M graphics; 
assigns colors to all four players 
and missiles; and switches to the 
graphics mode you requested. In 
other words, it does all of the dirty 
work for you. 

When the Toolkit routine is 
finished, a RETURN statement 
passes control back to whatever 
line follows the GOSUB. That's 
where the rest of your program 
should continue. Be sure to place an 
END statement at the end of your 
own program lines, but before line 
20000, so the Toolkit routine 
doesn't accidentally execute more 
than once. 

If you want to change the play- 
er colors from the colors assigned 



by the Toolkit routine, POKE your 
own color values into locations 
704-707. 

PMMOVE Magic 

After this simple setup, all it takes is 
one BASIC statement to move any 
player or missile anywhere on the 
screen. Here's the format: 

A = USR<PMMOVE,PL AYER#,SHAPE 
,SIZE,X,Y) 

Let's take a look at these parame- 
ters one at a time. We'll follow with 
a few examples. 

The variable A is a dummy 
variable required by the USR state- 
ment — with this routine, it returns 
no useful value. PMMOVE is the 
address of the machine language 
subroutine, and its value is auto- 
matically set when your program 
executes the GOSUB 20050 de- 
scribed above. (PMMOVE is actual- 
ly the address of PMMOVES, a 
string which holds the ML data.) 
Don't change the value of 
PMMOVE unless you enjoy watch- 



ing your computer crash. 

The remaining five parameters 
are under your control. You must 
assign values to these parameters 
yourself and always include them 
when calling the PMMOVE routine. 

PLAYER# should be a number 
from 1 to 8 that specifies which 
P/M object will be affected by the 
statement. Numbers 1 to 4 specify 
the four players, and numbers 5 to 
8 specify the four missiles. 

SHAPE is the address of the 
shape data for the player or missile. 
The best way to use this parameter 
is to specify the address of a string 
which contains previously created 
shape data. For background on de- 
signing player shapes, see Part 2 of 
the three-part series mentioned 
above. In a moment, we'll discuss a 
Toolkit utihty that lets you design 
your own shapes with a joystick 
and which calculates the shape data 
for you, The SHAPE parameter, in- 
cidentally, is what allows players to 
flip between different shapes even 



PMMOVE SCREEN COORDINATES 
SINGLE RESOLUTION 

0,0 

X 
Coordinate q 




255 



255,255 



DOUBLE RESOLUTION 

0,0 



Coordinate o 




255 



255,127 



127 



86 COMPUTEI March 1986 



while they're moving. Each time 
you move a player or missile, the 
PMMOVE subroutine erases the 
object's entire memory area and re- 
places it with the new image you 
select with the SHAPE parameter. 
If you don't quite follow this expla- 
nation, the example programs will 
clarify things. 

SIZE is the height of the player 
or missile in bytes. If the shape data 
referred to by SHAPE consists of 
eight bytes, you'd insert an 8 for 
this parameter. This makes it possi- 
ble to store the data for numerous 
player shapes in a single string, 
then select just the shape you want 
by pointing SHAPE to its position 
within the string and specifying the 
substring's length with SIZE. 
Again, the example programs will 
demonstrate this technique. 

The final two parameters de- 
termine the new position of the 
player or missile on the screen. X is 
the horizontal coordinate and Y is 
the vertical coordinate. Like the 
screen coordinates used by BASIC 
graphics commands such as PLOT 
and DRAWTO, position 0,0 refers 
to the upper-left comer. As the X 
coordinate increases, the P/M ob- 
ject moves from left to right; as the 
Y coordinate increases, the object 
moves from top to bottom. X values 
can range from to 255. Y values 
can range from to 255 in single- 
resolution P/M graphics or to 128 
in double-resolution P/M graphics. 
If the X or Y values exceed these 
ranges, the object eventually 
"wraps around" to the opposite 
side of the screen. But if you specify 
an X or Y value which is less than 0, 
an error results. 

The accompanying figure 
shows the layout of these coordi- 
nates. Notice how some positions 
are off the visible screen area. A 
quick way to make an object disap- 
pear is to move it to one of these 
"invisible" positions. (Another way 
is to specify for the SIZE 
parameter.) 

Frame Flipping 

Now for the fun stuff. The follow- 
ing examples show some typical 
ways to use the PMMOVE state- 
ment in your own programs. 

Program 2 demonstrates how 
to store a player shape in a string. 
After typing Program 2, LIST it to 



disk or tape, then merge it in mem- 
ory with Program 1 by using the 
ENTER command. When you type 
RUN, there's a pause as everything 
sets up, then a player in the form of 
a smiling face appears in the center 
of the screen. Here's how it works: 

Line 10 calls the Toolkit setup 
routine (Program 1), specifying sin- 
gle-resolution P/M and graphics 
mode 0. Line 20 dimensions the 
string variable SHAPE$ to hold 11 
characters, the size of the player (11 
bytes tall). Next it uses BASIC'S 
ADR function to set the variable 
SHAPE to the address of SHAPES, 
and sets SIZE to 11. Then it uses a 
FOR-NEXT loop to read the 11 
bytes of shape data in line 40 into 
SHAPE$. 

Finally, the PMMOVE state- 
ment in line 30 makes the player 
appear at position 127,127 (the cen- 
terpoint in single-res P/M graph- 
ics). Note that the PLAYER# 
parameter is 1; simply by changing 
this number to 2, 3, or 4, you can 
display any of the other players 
using the same shape data — try it. 
(By the way, you should press SYS- 
TEM RESET before rerunning this 
or any other program that uses 
player/missile graphics. Other- 
wise, the reserved P/M memory 
keeps growing until it consumes all 
the RAM in your computer.) 

The technique of storing player 
shape data in strings has some in- 
teresting applications. By storing 
several shapes in a single string and 
flipping rapidly between them, you 
can make your players come alive 
as they move about the SCTeen. 
Even a static player can seem to 
move as its shape continuously 
changes, much like frame anima- 
tion in a cartoon. To see an ex- 
ample, type in Program 3. LIST it to 
disk or tape, then merge it in mem- 
ory with Program 1 using the EN- 
TER command. When you type 
RUN, the program initializes for a 
few seconds, then displays a small 
explosion in the middle of the 
screen, hurling fragments in all di- 
rections. Yet, throughout this ani- 
mated sequence, the player object 
never moves. 

The secret is BOOMS, a 64- 
character string filled with eight 
player shapes in line 30. Each shape 
is eight characters long, as seen in 
the DATA statements in lines 



90-160. The PMMOVE statement 
in line 60 rapidly flips through all 
eight shapes in sequence because it 
is sandwiched within the FOR- 
NEXT loop between lines 40 and 
80, (The loop serves double duty; it 
also fades the explosion sound into 
silence.) Another FOR-NEXT in 
line 70 is a simple delay loop. To 
slow down the explosion sequence 
for a better idea of what's going on, 
change the 35 in line 70 to a larger 
number — say, 150, Also notice 
how the final player shape in this 
sequence consists of nothing but 
zeroes. This is another way of mak- 
ing the player object seem to disap- 
pear without moving it off the 
screen, 

Wliirling Dervishes 

Another fascinating application of 
this technique is to design players 
which change shape depending on 
which direction they're moving. To 
see an example, type in Program 4. 
As before, LIST the program to disk 
or tape, then merge it with Program 
1 using ENTER. 

When you type RUN, a red 
tank appears in the center of the 
screen. The low rumble of an idling 
engine can be heard in the back- 
ground. Plug a joystick into port 1, 
then try moving the stick right or 
left. Notice how the tank rotates 
clockwise or counterclockwise. In 
fact, it spins so fast it's almost a 
blur. 

The player isn't actually rotat- 
ing or moving, of course; it's simply 
changing shape many times per 
second, thanks to the SHAPE pa- 
rameter of the PMMOVE routine. 
The secret, again, is a string 
(SHAPES) which contains shape 
data for eight tank images, one for 
each of the eight possible direc- 
tions. Lines 40-80 read the joystick 
and determine which image should 
be displayed. 

Now push the joystick for- 
ward. The engine revs up and the 
tank obediently moves in the direc- 
tion it is pointed. You can drive the 
tank all over the screen. To see how 
this works, study lines 90-190. No- 
tice how the ON-GOTO statement 
in line 90 passes control to one of 
the lines from 120 to 190, depend- 
ing on which direction the tank is 
oriented. Each of these lines either 
increments or decrements the X and 



Marcfi 1986 COMPUTEI 6? 



Y coordinates to move the tank in 
one of the eight possible directions. 
Notice, too, how this entire 
program contains only the one 
PMMOVE statement in line 80— a 
single statement controls both the 
player's shape and its movement. 

Stepping On The Gas 

To make the tank move twice as 
fast, change lines 120-190 so the X 
and Y coordinates are incremented 
or decremented by 2 instead of 1. 
For still more speed, you can even 
change these values to 3. However, 
keep in mind that the movement is 
not quite as smooth as these step 
values are increased; the object 
seems to jerk along at higher 
speeds. A step value of 2 or 3 is a 
reasonable compromise between 
speed and loss of grace. 

Try changing the PLAYER# 
parameter in the PMMOVE state- 
ment to 2, 3, or 4 to see the other 
players in action. 

For an example of missile ani- 
mation, merge Program 5 with both 
Program 1 and Program 4. These 
lines let the tank fire a shot when 
you press the joystick button. The 
direction routine is very similar to 
the one in Program 4; in fact, it uses 
the same variable (DIR) to figure 
out which way the tank is pointing. 

Note how the missile shape 
defined in line 25 is only one byte 
long— CHR$(3). Unlike player ob- 
jects, which are eight bits wide, 
missiles are only two bits wide. You 
can't design a very fancy shape 
with only two bits to work with, so 
most programs use the missiles for 
such tiny shapes as projectiles, bul- 
lets, etc. A single byte is enough to 
define a missile shape for these pur- 
poses. Since all four missiles share 
the same memory area as a single 
player, defining missile shapes is a 
little different than defining player 
shapes. 

Rather than getting into a con- 
fusing discussion about missiles 
and bit manipulation, just remem- 
ber this: The shape bytes for the 
four missiles (accessed as PLAY- 
ER* 5, 6, 7, and 8 in the PMMOVE 
statement) should be 3, 12, 48, and 
192, respectively. For instance, the 
PMMOVE statements in lines 1100 
and 1110 refer to the first missile, 
PLAYER* 5, so its shape data in 
MISSILES is a 3. If you want to 



move the second missile, change 
the PLAYER* parameter to 6 and 

the shape byte in line 25 to 
CHR$(12). If you want to move the 
third missile, change the PLAYER* 
parameter to 7 and the shape byte 
to CHR${48). And if you want to 
move the fourth missUe, change the 
PLAYER* parameter to 8 and the 
shape byte to CHRS(192). These 
shape bytes will work with missiles 
in any of your own programs. 

Designing Player Shapes 

As a final touch, the P/M Graphics 
Toolkit includes a small utility for 
designing your own players. It's not 
very elaborate, but it's better than 
scribbling on graph paper and 
counting up "on" bits and "off" bits 
in your head. 

Like the other example pro- 
grams, the shape utility is based on 
the Toolkit setup/animation rou- 
tine. To prepare it, type in Program 
6 and merge it with Program 1. 
SAVE or CSAVE a copy of the 
merged program so you won't have 
to repeat these steps each time you 
want to use the utility. 

After typing RUN, select sin- 
gle- or double-resolution player/ 
missile graphics by pressing 1 or 2. 
The utility spends a few moments 
initializing, then displays a grid of 
dots along the left side of the 
screen. A cursor is at the upper-left 
corner; it's controlled by a joystick 
plugged into port 1. 

The grid represents a magni- 
fied view of an eight-bit-wide play- 
er strip, with one dot for each bit. 
Each horizontal row of eight dots, 
therefore, represents one byte of 
the player strip. Player strips are 
really 255 bytes tall in single resolu- 
tion or 128 bytes tall in double reso- 
lution, but there isn't room to 
display a grid that large on the 
screen. Still, the grid is tall enough 
to design player shapes for most 
purposes. 

To design a shape, just move 
the cursor anywhere on the grid 
and press the joystick button to set 
a bit. The dot changes to inverse 
video, and an actual-size player be- 
gins taking form in the blank area 
on the right side of the screen. Si- 
multaneously, a number represent- 
ing the byte value for that row of 
bits appears. Try moving the cursor 
and setting more bits; the byte val- 



ues keep changing. To erase a bit 
that you've set, position the cursor 
on it and press the joystick button 
again. With each change, the byte 
values are updated along with the 
actual-size player. 

When you're satisfied with a 
player shape, jot down the byte 
values. (You can ignore the zeroes, 
if any, above and below the shape.) 
These byte values represent the 
shape data for your player. To dis- 
play the player in your own pro- 
grams, just read the numbers into a 
string as demonstrated in Programs 
2, 3, and 4, Use the address of this 
string as the SHAPE parameter in 
the PMMOVE statement. The num- 
ber of shape bytes becomes the val- 
ue for the SIZE parameter. 

If you mess things up too badly 
when designing a player, you can 
erase the entire grid by pressing the 
E key. 

This is a bare-bones utility, but 
it's enough to get you started and 
take the bothersome paperwork out 
of defining player shapes. If you 
want, you can add more features of 
your own — commands to change 
player colors; to shift bit patterns 
left, right, up, or down; to flip the 
pattern as a mirror image; to auto- 
matically generate DATA state- 
ments of player shape bytes; and so 
on. 

A Bonus Routine 

Both machine language subroutines 
used by the Toolkit are designed to 
be as crashproof as possible. If you 
accidentally pass the wrong num- 
ber of parameters in a USR state- 
ment, the routines immediately 
clear all faulty values off the 6502 
stack and bounce back to BASIC. So 
if you call the PMMOVE routine 
and nothing happens, check the 
USR statement to make sure you 
included all of the parameters and 
that the parameters have legal 
values. 

You may find one of the Tool- 
kit machine language routines use- 
ful in other types of programs as 
well. PAGCLR is a general-purpose 
routine that rapidly clears a speci- 
fied number of memory pages with 
zeroes. For P/M graphics, this rou- 
tine erases any garbage data that 
may be cluttering the reserved 
memory area. But it's handy for any 
program that needs to clear out a 



88 COMPUni March 1<?86 



large amount of memory in a split- 
second. 

The ML data for PAGCLR can 
be found in the DATA statements 
in Program 1 at lines 20160-20240. 
Line 20060 reads this data into the 
string PAGCLRS, previously DI- 
Mensioned to 48 characters. The 
variable PAGCLR is set to the ad- 
dress of PAGCLR$. 

Here's the format for calling 
the PAGCLR routine: 
A = USR(PAGCLR,ADDRESS,PAGES) 

where PAGCLR is the address of 
the ML routine, ADDRESS is the 
starting address (in decimal) of the 
memory area you want to clear, and 
PAGES is the number of memory 
pages to clear (a page equals 256 
bytes). For example, the last state- 
ment in line 20130 clears either 
1,024 or 2,048 bytes starting at the 
memory address PMBASE, de- 
pending on whether the variable 
PAGES is set to 4 or 8 for double- or 
single-resolution P/M graphics. 

Caution: Don't use the 
PAGCLR routine for other pur- 
poses unless you understand exact- 
ly how it works. If misdirected, it 
can wipe out massive amounts of 
memory in an instant and crash 
your computer. 



For instructions on entering these listings, 
please refer to "COMPUTE! 's Guide to Typing 
In Programs" published in this issue of 
COMPUTE). 

Program 1 : P/M Toolkit 
Setup Routine 

HF 20000 REM ««« PLflYER/MISS 

ILE SETUP t*« 
Dt 20010 REM DEFINE PI1MODE tt 
BRMODE BEFORE CALL 

INQ THIS ROUTINE 
re 20020 REM PMMODE-1 FOR SI 

NBLE-RES P/M 
IP 20030 REM PMMGDE-2 FOR DO 

UBLE-RES P/M 
EL 20040 REM QRMODE-QRflPHICS 

MODE 
Bl 20050 DIM PABCLR» <4B) , PMfl 

OVE«<202) iPAQCLR-flD 

R (PAQCLRS) ! PMMQVE-A 

DR«PMMOVE») 
HL 20060 MT«0: RESTORE 20170: 

FDR X-1 TO 4B:READ 

AlPAOCLR* (X) -CHR* tA 

) 
Dft20065 MT-MT+A:NEXT X:IF M 

T-74B4 THEN MT»0:BD 

TO 20070 
IHI20066 PRINT "ERROR IN DAT 

A. . . LINES 20170-20 

240": STOP 
>F20070 FOR X-I TO 202:READ 
AiPMMOVE* tX)-CHR»< 

A> sMT-MT+ft! NEXT X 



JE 20073 IF MT023367 THEN P 

RINT "ERROR IN DATA 

. . . LINES 20260-205 

90" ! STOP 
OF 20080 IF PMMODE-1 THEN PA 

BES-a:DMfl-62; BDTO 2 

01 10 
OF 20090 IF PMMODE-2 THEN PA 

BES-4!DMA-46!S0Ta 2 

01 10 
MD 20100 RETURN 
W20110 POKE 5427"?, PEEKt 106 

)-PABES:POKE 106, PE 

EK(106) -PAQES:POKE 

207,PMMODE 
AE20120 QRAPHICS GRMODE 
Ofl 20130 PMBASE-PEEK (106) t25 

61POKE 539, DMfliPOKE 
33277, 3: X-U9R (PABC 

LR, PMBASE, PAQES) 
PN20140 POKE 704,6aiPDKE 70 

5,7B:PaKE 706,aa:PO 

KE 707,9BtREM P/M C 

0L0R9 
NI201S0 RETURN 

£] 20160 REM PAQCLR ML DATA 
11020170 DATA 104,201,2,240, 

16, 133 
CA20180 DATA 206,162,0,228, 

206, 208 
P1I20190 DATA 1,96,104,104,2 

32, 169 
Ad 20200 DATA 0,240,244,104, 

133, 204 
eN20210 DATA 104,133,203,10 

4, 104, 133 
CE 20220 DATA 205,169,0,168, 

170, 145 
HB 20230 DATA 203,200,208,25 

1 ,230,204 
FL 20240 DATA 232,228,205,20 

8,244,96 
BE 20250 REM PMMOVE ML DATA 
DC20260 DATA 104,201,5,240, 

18, 141 
OJ 20270 DATA 0,4,162,0,236, 


IK20280 DATA 4,206,1,96,104 

, 104 
EO20290 DATA 232,169,0,240, 

243, 104 
Ll)20300 DATA 104,201,9,144, 

9, 104 
Bi;20310 DATA 104,104,104,10 

4, 104, 104 
LA 20320 DATA 104,96,24,201, 

0, 240 
LA 20330 DATA 242,141,4,4,10 

4, 133 
HE 20340 DATA 206,104,133,20 

5, 104, 104 
KP 20350 DATA 14 1,5,4,104,10 

4, 141 
EK20360 DATA 2,4,104,104,14 

1.3 
PH20370 DATA 4,174,4,4,173, 

2 
H6203B0 DATA 4,157,255,207, 

224,5 
6C20390 DATA 176,2,144,5,16 

9,0 
LC20400 DATA 141,4,4,165,20 

7,201 
LI 20410 DATA 2,240,28,165,1 

06,24 
FA 20420 DATA 105,3,109,4,4, 

133 
CA 20430 DATA 204,169,0,133, 

203, 168 
HO20440 DATA 145,203,200,20 

8, 251 , 173 
1520450 DATA 3,4,133,203,24 

, 144 



Ll(2046e DATA 63,165,106,24, 

105, 1 
IK20470 DATA 133,204,169,12 

8, 133,203 
IJ 20480 DATA 173,4,4,240,21 

, 162 
ON 20490 DATA 0,163,203,24,1 

05, 128 
BB 20500 DATA 133,203,165,20 

4, 105,0 
LF 20510 DATA 133,204,232,23 

6,4,4 
BO 20520 DATA 208,237,160,0, 

152, 145 
16 20530 DATA 203,200,192,12 

7,208, 249 
LK 20540 DATA 173,3,4,201,12 

B, 144 
OF 20550 DATA 1,96,101,203,1 

33,203 
EI 20560 DATA 165,204,105,0, 

133,204 
Fft20570 DATA 160,0,204,5,4, 

240 
CE205B0 DATA 8,177,205,145, 

203, 200 
KF 20590 DATA 24,144,243,96 

Program 2: Player Shape 
Demo 

KK 10 PMMDDE-1 : BRMODE-0: BQSU 

B 20050 
JL 20 DIM SHAPE* ( 1 U : SHAPE-A 

DR (SHAPE*) :SIZE-11:RES 

TORE 40:FOR X-1 TO 11: 

READ A: SHAPE* <X)-CHR* ( 

A) :NEXT X 
OH 30 A-U3R<PMMaVE, 1, SHAPE, S 

IZE, 127, 127) 
HB 40 DATA 24,60,126,90,219, 

255, 219, 195, 102,60,24 
DH 50 END 



Program 3: Explosion 
Animation Demo 

KI 10 PMMDDE-2SBRMODE-0! BDSU 

B 20050 
FA 20 SETCOLOR 2,0,0:POKE 70 

4, 72 

!«30 DIM BOOM* (64) : BOOM-ADR 

(BDDM*) ; RESTORE 90:FOR 

X-1 TO 64:READ AiBOOM 

• (X) -CHR* (A) : NEXT X 

OD 40 FOR VOLUME-14 TO STE 

P -2 
CI 50 SOUND 0,90,0, VOLUME: SO 

UND 1 , 100, 4, VOLUME 
KH 60 A-USR(PMMQVE, 1 ,B00M,8, 

127,64) 1 BODM-BDOM+B 
BD 70 FOR DELAY-1 TO 35: NEXT 

DELAY 
HP 80 NEXT VOLUME 
LL 90 DATA 0,0,8,28,28,8,0,0 
EK 100 DATA 0,8,34,92,20,34, 

8,0 
IL110 DATA 8,65,4,168,20,1, 

64,8 
AB 120 DATA 148,1,20,160,1,2 

0, 1, 136 
IE 130 DATA 145,74,32,130,65 

,2,84, 137 
HO 140 DATA 72,1,64,0,130,1, 

8,82 
HI 150 DATA 129,0,0,0,0,128, 

1,66 
BF 160 DATA 0,0,0,0,0,0,0,0 
6P 170 END 



March 19B6 COMPUTE) 89 



Program 4: Tank Animation 
Demo 



Kl 10 PMriODE-2l6RMODe-0l 

B 200S0 
M.20 DIM SHAPE* (64) I Sir 

RESTORE 2101 FOR X- 
ii4iREAI} Ai SHAPE* ( 

HR*(A)lNEXT X 
1130 DIB«1 I X«127l Y-64iS 

0, 180,6,3 
H40 S-BTICK(0) I IF S-11 

N DJR-DIR-1 
EiS0 IF S-7 THEN DIR-Dl 
IS 60 IF DIR<1 THEN DIR- 
BH 70 IF DIR>8 THEN DIR* 
J 80 A-USR(PMHOVE, 1, ADR 

PE»(DIR«8-7) > ,SIZE 



BOSU 

E-8l 
1 TO 
X)-C 

OUND 

THE 

R+1 
8 
1 
(SNA 

,x,y 
1.1 

120 
70,1 

D 1, 



) 
M90 IF S"14 THEN SOUND 
20,6,6lON DIR GOTO 
, 130, 140, 1S0, 160, 1 
80, 190 
FN 100 IF S-15 THEN 90UN 

iB0,6,3lQQTO 40 
CF 110 ODTD 40 
LH 120 V-Y-llQOTD 40 
1)1.130 X"X + t r Y-y-li0OTQ 40 
LF 140 X-X-t-liQOTO 40 
DL 1S0 X"X + 1| Y-Y+1 I BOTO 40 
LJ 160 Y-Y+1 1 BOTO 40 
DP 170 X-X-1: Y-Y+liSOTO 40 
LL 180 X-X-liQOTO 40 
ED 190 X-X-1: Y-Y-llQOTD 40 
CC 200 REM ttt TANK SHAPES ( 

CLOCKWISE N-NE-E-3E-3 

-SM-M-NM t** 
LO210 DATA 8,8,42,62,62,62, 

62,34 
FB 220 DATA 9,26,60,127,254, 

60,24, 16 
BF 230 DATA 0,252,120,127,12 

0,232,0,0 
FD 240 DATA 16,24,60,254,127 

,60,26.9 
nC2S0 DATA 34,62,62,62,62,4 

2,8,8 
10260 DATA 8,24,60,127,254, 

60,88, 144 
1X270 DATA 0,63,30,254,30,6 

3,0,0 
M2e0 DATA 144,88,60,254,12 

7,60,24,8 



Program 5: Missile Demo 

LF 25 DIH MISSILE* (1 ) tMISSIL 

E»( 1 )>CHR* (3) 
OD 85 IF STRie(0)-0 THEN GOS 

UB 1000 
119 1000 ON DIR GOTO 1010,102 
0, 1030, 1040, 1030, 106 
0, 1070, 1080 
DX-0!DY"-2s aOTD 1090 
DX»2«DY--2iBOT0 1090 
DX-2lDY-0: BOTO 1090 
DX-2iDY-2: BOTO 1090 



KL 101 

HO 102 

FA 103 

FD 104 

FC 105 

IC 106 

IB 107 

HE 106 

JP 109 



DX-0:DY-2;BOTO 1090 
DX--2: DY-25BOTO 1090 
DX--2IDY-0ISOTO 1090 
DX--2:DY--2 

MX-X;MY-Y: FOR SHOOT- 
1 TO 15 
SH1100 A-USR(PMM0VE,5, ADB<M 
I3SILE*) , 1,MX,MY) :MX 
-MX+DX;MY-MY+DV: NEXT 
SHOOT 
HH1110 A-USR(PMMaVE,3, ADR (M 
ISSILE*) ,0,0,0) iRETU 
RN 



Program 6: P/M 
Shapemaker 



Bf 10 SRAPHICS 21SETCOLOR 2, 
0,0iPOKE 752, l:POSITIO 
N 3,2i7 #6j"P/M SHAPEM 
A K E R " 
10:20 ? "D SINSLE RESOLUTION 
"I? "B DOUBLE RESDLUTI 
ON" 
CD 30 OPEN #1,4,0, "K: "I? " 

PRESS O OR B" i 
PC 40 SET #l,AtIF A-49 THEN 

PMMODE-1 t 0OTO 70 
IB 50 IF A-50 THEN PMM0DE-2i 

OOTO 70 
AD 60 aOTO 40 
HJ 70 7 "t3 BPACESJPLEASE HA 

IT "iQRMODE-0tGOSUB 

20050 
JL 30 DIM CURS0R*(2) ,aLD*(2) 
,BIT(8> , BYTE* (24) I CURS 
OR* ( 1 , 2) -"HtLEFTJ " : OLD 
•(1,2>-". CLEFT J " 
6IC90 RESTORE 1001 FDR N-1 TO 

BiREAD AiBIT (N)-A:NEX 
T N 
HP100 DATA 128,64,32,16,6,4 

,2,1 
mil0 POKE 752, 1 iSETCOLOR 2 

,0,0:FOR N-1 TO 24i? 

" 0">BYTE*<N) 

-CHR«(0) iNEXT NlCX-2i 

CY-0 
EI 120 A-U3R (PMMOVE, 2, ADR (BY 

TE«) , 24, 170, 12B/PMM0D 

E) 
HH 130 POSITION 24,201? "[IRA 

SE PLAYER" 
KE140 LOCATE CX , CY, A: OLD* ( 1 

J-CHR*(A) JPOSITION CX 

,CYl7 CURSOR*) 
FE 150 S-STICK<0) :FOR N-1 TO 
25iNEXT Ni IF S-14 TH 

EN 220 
LC 160 IF S-7 THEN 240 
DC 170 IF S-13 THEN 260 
OD160 IF 8-11 THEN 280 
ec 190 IF STRIB(0) -0 THEN 300 
AK 200 IF PEEK(764)-42 THEN 

POKE 764,255i7 CHR* ( 1 

25):BaTQ 110 
BC210 GOTO 1S0 
Ft 220 IF CY-0 THEN 150 
CH230 ? OLD*j sCY-CY-liQOTO 

140 
R240 IF CX-9 THEN 150 
CF250 ? OLD*! iCX-CX + liGOTQ 

140 
CJ 260 IF CY-22 THEN 150 
CJ 270 ? OLD*; iCY-CY+liQOTO 

140 
P[ 280 IF CX-2 THEN 150 
CL 290 ? OLD*! iCX-CX-lsBOTO 

140 
OA 300 IF 0LD*(1)-"H" THEN O 

LD* ( 1 > - " . " i BYTE* ( C Y+ 1 

, CY+1 ) -CHR* (ASC (BYTE* 

(CY+1) )-BIT(CX-l) > iBO 

TO 320 
OF 310 0LD*(1)-"B":BYTE» (CY + 

1, CY+1 J -CHR* (ASC (BYTE 

*(CY+1) )+BIT (CX-1) ) 
BO 320 POSITION ll,CYi7 " 

t4 SPACES>"iPOSITION 

11,CY|7 ASC (BYTE* (CY+ 

1) ) :POSITIDN CX.CV 
EL 330 A-USR(PMMQVE, 2, ADR(BY 

TE*) ,24, 170, 12S/PMM0D 

E) 
SB 340 IF STRIO (0)-0 THEN 340 
6H 350 BOTO 150 © 



PREMIUM QUAUTYI LIFETIME WARRANTYI 

DISK SALE! 



, 1 7rom M , 

33cj 



Mid« b» top mHwlKtv>*ri, rwl "(•c^ntf*-' W 
TlUT vonl ^< H tarrrvM Untr UOMt. bill vtwut , 



DlfNi n~Ml«i_ Ikbdari ar mUtMmitm CrrtW>4. 

KMKtOad LOCn, mm 1r**. MdHtr lACh 
TltfACIIOh CUANAHTCII FAST 4« HDU> 
tHIPPIMQ- '•OJlID- cBiMi cam^l* mH* tlrw 
■BULK' *yn Mi. ajLfc. 



: 3.^11 ':■ l:;itUfriri -IZl 45t K: li: 3S: Kc 
S; 8t1:r Sr;- i.;( tjnjLL:,! -J]! isC^i^ ti- iOi Hi 
DS'OD 191 HI* l>CAtMraJii3L»»Lini'5;c!6Cc Xi b6; MIL 



/•C h.DEHSlIY 1[irlSWtIiLlTl2iS{2lZ 2iC 20^ 133 



■ initio fps'diirk tU\ 



4: 'li: 1: J I: 16: SgtdrY BULK tr EQIII! 



5!c UIIUe ^iC 



at '!U mi St 



?4C ??5;n IJTOMB 



139 I9S:I9} ^30 IIT 



COMPUTER SUPPLfES AT WHOLESALE PRICESt 
UNirlLC-lO. ■bran' ilarvfi c»4i. haU* 10 ditki ^9^ l{>^5Ci«ch 
UNIFILE-70,Ck« "rHp-r.-W«". hotdt TO {IHk» M-M 3* i7.M«**h 
UNiriLE IDO. •• lock *>>d k»T. n«ld4 too dliki, S:i.U 34/lll^S'** 
UNjriLE-4ia for *0'M*C" dllJi*, t!l[l-lYp* it,ZS a*$7.«p*rtl 
UP41 NOTCH, f«r AcitiJr CammodoFF. 4cct(««» 2nd «id« o1 dh.k 19 

UHiPAK Dis Hrrrt: waileihs. \fu i^a 5'^." flHh* m ts 

HOW TO OflOrR: K.T kT HC-V.tk-4Jrrt>-C0D c wvd chn* wHa OTttr. 

4*,Uini iJKHH A ttrwt •**■*•. H.nlRiumt.A.r S3I>-W[CUI»HIP 
OCtW »CCOUIfT TO SCHOOtH * L4ft£I FIRMtl iMWmi^n purth«* 
Blitt 1 ICK! J mtmn*"^ M *«T Mll.l«lton <»««iIm! l*nd (« *« 
riTH mHM too*! vl auanri — p>lln mnd ■iplFillon CaMl! 

\^r800)343-0472 



UNITECH 



mMA5S:f617rUNl-TEC>|- 

20 u HURLETST, 

CAMBRID'CE, MA 02141 




STATE-OF-THE-ART 
MAGNETIC MEDIA 



^ 



• With Hub Rings 

• Write Protect Tabs 

• Enveiopes 

• User iD Labeis 

• In Factory Seaied 
Poly Pacl(* of 10 



(YOU GET EVERYTHING BUT THE BOX) 
Prices are per Disk 


OTY 


50 


100 


5D0 


1000 


SSDD 


.59 


.56 


.52 


.49 


DSDD 


.64 


.61 


.57 


.54 



Library Case Holes 15 Distollcs. Only $1 00! 
pluisSOC S&H 

ThG 100 File. Only SIO 951 plus $^ 00 S & H 

100% ERROR FREE — LIFETIME WARRANTY 

Mm order S25 00 Add 10% (or less man 50 
diskelles Shipping and Handling: S4.00 per 100 
diskelles Reduced shipping lor larger quanti- 
ties C O D add a 00 Cash or certided check 

"^ too, -—• 

Precision Data Products 

I" O. Bo\ Blfcl, Grand RapiJv. Ml 49J08 
IMfiMSi-Ji!'' • Michigan I 800.6l:.2i6B 

Duiiidc MKhigjii i.soo.:js«;(i 



f 



J 




Foolish to 
pay more. 

Dangerous 
to pay less. 



• QUALITY MEDIA 

■ LIFETIME 
REPLACEMENT 
GUARANTEE 

■ HUB RINGS 
•TYVEC EPS. 

• WRITE PROTECTS 



1-50 

.79 

.89 

1.09 

1.99 



51 + 
.69 
.79 
.99 

CALL 



5.25' SSDD 

5.25 DSDD 

PC FORMAHEO 

AT1.2MB/3.5 1D(IVIac) 

PO- Box 883362 
LA. Dl a/>l/cuin ^^'^ Francisco. CA 94168 
^ DIAi.Hallll' In California 4 15.550-06 12 

coMPuiEnsimv USA orders 800-431 -6249 

In Canada 403-428-6229 

Add S3 00 sliipDng and handling per ICO Disi*elle3 

COD ac3d SI 95 [CA residenis add 6 5".. sales \a%t 

VISA MC COD 



90 COMPUTEI Morch 1986 



The New Automatic Proofreader 

For Commodore 



Philip I. Nelson, Assistant Editor 



Now it's easier than ever to type in 
Commodore programs published in 
COMPUTE!. This completely new ver- 
sion of the Automatic Proofreader is a 
significant improvement over the old 
Proofreader and catches almost any 
typing mistake that can be made. A 
single version now works on the Com- 
modore 6i, 128, VIC-20, Plus/4, and 
16. Starting with this issue, all BASIC 
programs published in COMPUTE! for 
these computers are listed in the new 
Proofreader format. They cannot be 
checked with the old Proofreader. 



"The New Automatic Proofreader" 
is a short error-checking program 
that helps you type in COMPUTE! 
program listings without typing 
mistakes. The Proofreader conceals 
itself in memory and doesn't inter- 
fere with the program you're typ- 
ing. Each time you press RETURN 
to enter a program line, the Proof- 
reader displays a two-character val- 
ue called a checksum in reverse 
video at the top of your screen. If 
you've typed the line correctly, the 
checksum on the screen matches 
the one in the printed listing — it's 
that simple. You don't have to use 
the Automatic Proofreader to enter 
COMPUTE!'s printed listings, but do- 
ing so greatly reduces your chances 
of making a typo. 

Getting Started 

First, type in the Automatic Proof- 
reader program below exactly as it 
appears in the listing. Since the 
Proofreader can't check itself before 
it exists, type carefully to avoid mis- 
takes. Don't omit any lines, even if 
they contain unfamiliar commands 
or you think they don't apply to 
your computer. 



When you're finished, save at 
least two copies on disk or tape 
before running it for the first time. 
This is very important because the 
Proofreader erases the BASIC por- 
tion of itself when it runs, leaving 
only the machine language (ML) 
portion in memory. 

When that's done, type RUN 
and press RETURN. After an- 
nouncing which computer it's run- 
ning on, the Proofreader installs the 
ML routine in memory, displays the 
message PROOFREADER AC- 
TIVE, erases the BASIC portion of 
itself, and ends. If you type LIST 
and press RETURN, you'll see that 
no BASIC program remains in 
memory. The computer is ready for 
you to type in a new program 
listing. 

Entering Programs 

Once the Proofreader is active, you 
can begin typing in a BASIC pro- 
gram as usual. Every time you fin- 
ish typing a line and press 
RETURN, the Proofreader displays 
the two-letter checksum in the up- 
per-left corner of the screen. Com- 
pare this checksum with the two- 
letter checksum printed next to the 
corresponding line in the COMPUTE! 
program listing. If the letters match, 
you can be pretty certain the line is 
typed correctly. Otherwise, check 
for a mistake and correct the line. 
The Proofreader ignores space 
characters that aren't enclosed in 
quotation marks, so you can omit 
spaces (or add extra ones) between 
keywords and still see a matching 
checksum. For example, these two 
lines generate the same checksum: 

10 FRINT'THIS IS BASIC" 

10 PRINT 'THIS IS BASIC" 

However, since spaces inside 
quotation marks are generally sig- 



nificant, the Proofreader pays at- 
tention to them. For instance, these 
two lines generate different 
checksums: 

10 PRINT'THIS IS BASIC" 

10 PRINT'THIS ISBA SIC" 

A common typing mistake is 
transposition — typing two succes- 
sive characters in the wrong order, 
like PIRNT instead of PRINT or 
64378 instead of 64738. The old 
Commodore Proofreader couldn't 
detect transposition errors. Because 
the new Proofreader computes the 
checksum with a more sophisticat- 
ed formula, it is sensitive to the 
position of each character within the 
line and thus catches transposition 
errors. 

The Proofreader does not ac- 
cept keyword abbreviations (for ex- 
ample, typing ? instead of PRINT). 
If you prefer to use abbreviations, 
you can still check the line with the 
Proofreader: Simply LIST the line 
after typing it, move the cursor back 
onto the line, and press RETURN. 
LISTing the line substitutes the full 
keyword for the abbreviation and 
allows the Proofreader to work 
properly. The same technique 
works for rechecking a program 
you've already typed in: Reload the 
program, LIST several lines on the 
screen, and press RETURN over 
them. 

If you are using the Proofread- 
er on the Commodore Plus/4, 16, 
or 128 (in 128 mode), do not perform 
any GRAPHIC commands while the 
Proofreader is active. When you per- 
form a command like GRAPHIC 1, 
the computer moves everything at 
the start of BASIC program space — 
including the Proofreader — to an- 
other memory area, causing the 
Proofreader to crash. The same 



March 1986 COMPUTEI 91 



thing happens if you run any pro- 
gram that contains a GRAPHIC 
command. The Proofreader deallo- 
cates any graphic areas before in- 
stalling itself in memory, but you 
are responsible for seeing that the 
computer remains in this 
configuration. 

Though the Proofreader 
doesn't interfere with other BASIC 
operations, it's always a good idea 
to disable it before running any oth- 
er program. Some programs may 
need the space occupied by the 
Proofreader's ML routine, or may 
create other memory conflicts. 
However, the Proofreader is pur- 
posely made difficult to dislodge: 
It's not affected by tape or disk 
operations, or by pressing RUN/ 
STOP-RESTORE. The simplest 
way to disable it is to turn the com- 
puter off, then on again. 

A gentler method to disable 
the Proofreader is to SYS to the 
computer's built-in reset routine. 
Here are the SYS statements re- 
quired for various Commodore 
computers: 

Computer Reset Command 

64 SYS 64738 

128 SYS 65341 

VIC-20 SYS 64802 

Plus/4 SYS 65526 

16 SYS 65526 

Inside The Commodore 
Proofreader 

Writing a machine language pro- 
gram that works on five different 
computers is no small task. The first 
hurdle is finding a safe place to put 
the code. Though the cassette buff- 
er is an obvious choice, it's located 
in different places on various ma- 
chines, and putting ML there cre- 
ates problems for tape users. 
Instead, the Proofreader uses 256 
bytes of BASIC programming space. 
Before it installs the routine in 
memory, the Proofreader checks 
which computer you're using. Then 
it stores the ML at the bottom of 
BASIC memory and protects itself 
by moving the computer's start-of- 
BASIC pointer to a spot 256 bytes 
higher in memory. Once that's 
done, the Proofreader activates the 
ML routine and erases itself with 
NEW. Note that because the Proof- 
reader overwrites its first few 
BASIC lines, it's critical not to de- 



lete anything from the first portion 
of the program. 

The ML portion of the Proof- 
reader wedges into one of the oper- 
ating system's built-in routines 
(CRUNCH). The system calls 
CRUNCH every time you enter a 
line from the keyboard (it can be a 
numbered program line or a direct 
command without a line number). 
Before the computer digests the 
line, it uses CRUNCH to convert 
BASIC keywords like PRINT into 
tokens — one- or two-byte numbers 
that represent the keyword. By 
changing the CRUNCH vector to 
point to the ML checksum routine, 
we can make the computer figure 
the checksum before it tokenizes 
the line with CRUNCH, 

The checksum routine initially 
sets the checksum to equal the low- 
byte and high-byte values of the 
current line number. Then it scans 
the line, multiplying the ASCII val- 
ue of each character by its position 
in the line and adding the result to 
the two-byte checksum as it moves 
down the line. After scanning the 
whole line, the Proofreader per- 
forms an exclusive or operation on 
the two bytes of the checksum and 
displays the final result as two al- 
phabetic characters in reverse vid- 
eo. Though the final checksum 
could have been displayed as a 
two-digit hexadecimal number, the 
Proofreader uses letters so that no 
harm will be done if you acci- 
dentally press RETURN over the 
line containing the checksum. 

Once this is done, the Proof- 
reader restores everything to nor- 
mal and jumps to CRUNCH, which 
handles the line as usual. 

Commodore Compatibility 

If you own a Commodore 64, you 
may already have wondered 
whether the Proofreader works 
with other programming utilities. 
The answer is generally yes, if you 
are using a 64 and if you activate 
the Proofreader after installing the 
other utility. There's no way to 
promise, of course, that the Proof- 
reader will work with any and ev- 
ery combination of utilities you 
might want to use. Any program 
that disturbs the CRUNCH vector 
or the memory area where the 
Proofreader resides will probably 
crash the system without delay. 



When using the Proofreader 
with another utility, you should 
disable both programs before run- 
ning a BASIC program. 

The New AutomatFc 
Proofreader For Commodore 

10 VEC=PEEK(772)+256*PEEK(773) 

;L0=43 :HI=44 
20 PRINT "AUTOMATIC PROOFREADE 

R FOR ";:IF VEC=42364 THEN 

[space] PRINT "C-64" 
30 IF VEC=50556 THEN PRINT "VI 

C-20" 
40 IF VEC=35158 THEN GRAPHIC C 

LRsPRINT "PLUS/4 S, 16" 
50 IF VEC=17165 THEN L0=45 :HI= 

46:GRAPHIC CLR : PRINT"! 28 " 
60 SA=(PEEK(L0)+256*PEEK(HI) )+ 

6:ADR=SA 
70 FOR J=0 TO 166: READ BYT : POK 

E ADR,BYT:ADR=ADR+1:CHK=CHK 

+BYT:NEXT 
80 IF CHK<>2a570 THEN PRINT "* 
ERROR* CHECK TYPING IN DATA 
STATEMENTS": END 
90 FOR J=l TO 5:READ RF,LF,HF: 

RS=SA+RF:HB=INT(RS/256) :LB= 

RS-C256*HB) 
100 CHK=CHK+RF+LF+HF:POKE SA+L 

F, LB: POKE SA+HF, HB :NEXT 
110 IF CHKO22054 THEN PRINT " 

♦ERROR* RELOAD PROGRAM AND 

(SPACEJCHECK FINAL LINE":EN 

D 
120 POKE SA+149,PEEK{ 772) : POKE 

SA+150,PEEK{773) 
130 IF VEC=17165 THEN POKE SA+ 

14,22: POKE SA+18 , 2 J : POKESA+ 

29,224:POKESA+139,2 24 
140 PRINT CHR$(147) ;CHR?(17}r" 

PROOFREADER ACTIVE": SYS SA 
150 POKE HI,PEEK(HI)+1:P0KE (P 

EEK(LO)+2 56*PEEK(HI))-l ,0:N 

EW 
160 DATA 120,169,73,141,4,3,16 

9,3,141,5,3 
170 DATA 88,96,165,20,133,167, 

165,21,133,168,169 
180 DATA 0,141,0,255,162,31,18 

1,199,157,227,3 
190 DATA 202,16,248,169,19,32, 

210,255,169,18,32 
200 DATA 210,255,160,0,132,180 

,132,176,136,230, 180 
210 DATA 200,185,0,2,240,46,20 

1 ,34,208,8,72 
220 DATA 165,176,73,255,133,17 

6,104,72,201,32,208 
230 DATA 7,165,176,208,3,104,2 

08,226,104, 166, 180 
240 DATA 24,165,167,121,0,2,13 

3,167, 165, 168, 105 
250 DATA 0,133,168,202,208,239 

,240,202,165,167,69 
260 DATA 168,72,41,15,168,185, 

211,3,32,210,255 
270 DATA 104,74,74,74,74,168,1 

85,211,3,32,210 
280 DATA 255,162,31,189,227,3, 

149,199,202,16,248 
290 DATA 169,146,32,210,255,76 

,86,13 7,65,66,67 
300 DATA 68,69,70,71,72,74,75, 

77,80,81 ,82,83,88 
310 DATA 13,2,7,167,31,32,151, 

116,117, 151,128,129,167,136 

,137 (S 



92 COMPimr Morch 1986 



MultiMemory 

For Commodore 64 And Apple 



Patrick Parrish, Programming Supervisor 



This short utility partitions free mem- 
ory so several BASIC programs can be 
loaded into your computer at once. 
Among other things, it's a great aid 
during program developtnent — you 
can keep a couple of BASIC program- 
ming utilities at hand as you work, or 
test alternate versions of new routines 
before adding them to your main pro- 
gram. The Apple version works on all 
Apple U series computers with either 
DOS 3.3 or ProDOS. 



The idea of partitioning memory 
into several modules 'which can 
contain separate programs is not 
new — Charles Brannon relied on 
BASIC pointers to split the PET into 
four 8K blocks with "Quadra-Pet" 
(COMPUTE!, June 1981), and Feeman 
Ng later partitioned the 64 into 
three 12K blocks with "Triple 64" 
(COMPUTEI's GAZETTE, April 1985). 
Much like these earlier programs, 
"MultiMemory" divides free mem- 
ory in your Commodore 64 or Ap- 
ple into independent workspaces. 
Three partitions are set up in the 64, 
and four in the Apple. As before, 
you can load different BASIC pro- 
grams into the computer at once. 
These could be utilities, applica- 
tions, or games. And, once again, 
you can save and load programs 
from any of these areas without 
affecting the others. 

But MultiMemory goes one 
step further. Not only are the 
BASIC programs in each module 
protected from one another, but the 
variables generated by each are 
protected as well. Any program can 



change a variable's value without 
affecting identically named vari- 
ables that may exist in other parti- 
tions. That means there's even less 
chance of conflict between the pro- 
grams, allowing you more flexibili- 
ty when using MultiMemory. 

Entering MultiMemory 

The BASIC languages in the 64 and 
Apple were both written by Micro- 
soft, Inc. and thus share numerous 
similarities. Nowhere is this more 
clearly seen than in a section of 
memory called zero page (locations 
0-255), where many BASIC point- 
ers are stored. If you compare de- 
tailed memory maps for these 
computers, you'll find that many 
zero-page pointers, though located 
at slightly different addresses, are 
the same on these two machines. 
MultiMemory takes advantage of 
this by using identical zero-page 
pointers in the 64 (locations 43-56) 
and in the Apple (locations 
103-116) to split up free memory. 
As a result, the 64 and Apple ver- 
sions of MultiMemory are alike in 
many ways. 

Whether you have a 64 or an 
Apple II series computer, Multi- 
Memory is entered in the same 
fashion, Both versions contain short 
machine language routines entered 
by a BASIC loader. Carefully type 
Program 1 for the 64 or Program 2 
for the Apple and save a copy to 
disk or tape before running it for 
the first time. 

When you run MultiMemory, 
line 100 sets the top of BASIC 
memory for the first partition. This 
is memory location 16384 (64*256) 



on the 64 and location 8192 on the 
Apple (we'll see why later). 

Line 110 POKEs the machine 
language routine in lines 150-330 
into a safe place in memory. On the 
64, it's placed at the top of BASIC 
RAM (40769) just below BASIC 
ROM (40960), On the Apple, it re- 
sides at location 38251 just below 
DOS (38400). These areas are rela- 
tively safe from memory conflicts. 

Line 120 checks to see if the 
machine language data has been 
correctly typed. Lines 130 and 140 
place zeros in three sequential loca- 
tions at the start of each memory 
module. The first zero is required to 
indicate the start of BASIC. The 
second and third zeros NEW each 
memory module. Finally, the NEW 
command in line 140 clears the 
BASIC loader from memory and 
leaves us in module 1, 

Three Or Four Computers 

To access any module on the 64, 
type SYS 40769 and press RE- 
TURN. The cursor will disappear. 
Now, pick a work area by typing 1, 
2, or 3. For a test, let's choose parti- 
tion number 2. A tone sounds as the 
partition number is displayed on 
the screen. That's all it takes to 
switch modules. 

If you're using an Apple, type 
CALL 38251 and press RETURN. 
Choose among work areas 1 to 4. 
Again, for a test, specify number 2. 
A tone sounds, the partition num- 
ber is displayed, and we're ready to 
program. 

When you type LIST, you'll see 
that module 2 is empty. Now type 
PRINT FRE(O) to determine how 
much memory is available in this 



March 1 986 COMPUTE] 93 



module. The 64 should show about 
16K free, and the Apple about 8K. 
On either machine, there is plenty 
of room for a short BASIC program 
and its variables. To see that both a 
program and its variables remain 
intact within a particular module, 
let's enter and run a program in 
module 2 and then do the same in 
module 1. 

While in module 2, type and 
run this program: 

10 REM EXAMPLE 2 
20 AS = "MODULE #2" 
30 FOR ! = 1 TO 20;NEXT I 

After running this program, 
type PRINT A$,I and press RE- 
TURN. You should see this; 



MODULE #2 



21 



Save this program to disk or tape 
with the filename "P2." 

Now let's go to another mod- 
ule. Before we do this, list the pro- 
gram in module 2 so that it's at the 
bottom of the screen. Now type 
SYS 40769 on the 64 or CALL 
38251 on the Apple and choose 
module L 

Independent Variables 

After entering module 1, type LIST 
to prove that our first program has 
been left behind in module 2. 
Again, if you wish, type PRINT 
FRE(O) to determine the amount 
memory available in this module. 
The 64 should show about 14K and 
the Apple approximately 6K. 

Program "P2" should still be 
on the screen. Even though it was 
listed in module 1, it remains visi- 
ble if you switch partitions without 
clearing the screen. This makes it 
possible to copy program lines from 
one module to another with the 
screen editor. Simply use the screen 
editing keys to cursor up to line 10. 
Change the 2 in this line to a 1 and 
hit RETURN to enter this line in 
memory (Apple useis must cursor 
to the end of the line before press- 
ing RETURN, of course). Line 10 is 
now copied into memory in module 
1 without disturbing line 10 in mod- 
ule 1. 

If the BASIC screen prompts 
do not obscure the other program 
lines, you can copy them to module 
1 in the same manner. At any rate, 
hnes 20 and 30 should read: 

20 A$ = "MODULE #1" 
30 FOR 1 = 1 TO 10:NEXT I 



As you did before, run the pro- 
gram and then type PRINT A$,I. 
The result is: 
MODULE #1 11 

Save this program on disk or tape 
as "PI." 

Now, go back to module 2 with 
SYS 40769 or CALL 38251 and type 
LIST. You should see program 
"P2" on the screen unchanged. 
Print the values for A$ and 1. You'll 
see they still have the values they 
had when we left module 2. 

Applications 

As you can imagine, this process 
can be very valuable if you're writ- 
ing and debugging your own pro- 
grams. Suppose you're writing a 
program in module 1 and you need 
a subroutine from a BASIC program 
you have on disk. Maybe you aren't 
sure which disk the program is on. 
On the 64, normally you'd have to 
save the program currently in 
memory before looking at the disk 
directory, because the directory 
overwrites the BASIC workspace. 
(On the Apple, this wouldn't be a 
problem, since the disk catalog is 
not loaded into the BASIC work- 
space.) 

With MultiMemory, you can 
nimbly jump to another module, 
load the directory there to find the 
program you need, and then load it 
into that module or the third mod- 
ule, leaving the directory intact. 
And, once you've found the sub- 
routine you need from your earlier 
program, you can list it on the 
screen, shift back to the first parti- 
tion, and copy the lines by RE- 
TURNing over them. 

Now suppose that some bug in 
your program keeps the subroutine 
from working as you expected. 
Since variables retain their values 
within each program module, you 
can test each routine separately, 
compare the resulting variables, 
and make changes to your working 
version where needed. 

With all this jumping from 
module to module, you might loose 
track of which partition you're in. 
To find out, you can type PRINT 
PEEK(40914) on the 64 or PRINT 
PEEK(38339) on the Apple. 

In addition to aiding program 
development, MultiMemory can be 
used to hold a few BASIC programs 
that can be run individually. For 



instance, you might have a series of 
BASIC programs that, in sequence, 
manipulate data stored on disk. The 
first program could read in the data, 
manipulate it, and then write the 
results back to disk. In turn, a sec- 
ond or third program (or on the 
Apple, even a fourth) stored in the 
other workspaces could do the 
same. Or you could designate one 
BASIC workspace for data storage, 
much like a RAM disk. 

Before undertaking any so- 
phisticated programming applica- 
tions with MultiMemory, however, 
you should consider how it works 
and keep in mind a few restrictions 
on its use. 

Memory Ceilings 

As mentioned earlier, MultiMemory 
uses a series of BASIC pointers in 
zero page to set up each workspace. 
The values required by these point- 
ers for each module are stored in a 
lookup table at the end of the pro- 
gram. Whenever you SYS or CALL 
MultiMemory, it stores the current 
zero-page values in positions with- 
in this table which correspond to 
the current module. The program 
then waits for you to specify the 
next module. 

When you pick a module, Multi- 
Memory reads the zero-page point- 
er values for the module and places 
them in their proper zero page loca- 
tions. The pointers transferred are 
the starting addresses for the loca- 
tion of the BASIC program, the ar- 
ray and nonarray variables, the 
string variables, and the top of 
BASIC memory. 

The barriers separating the 
partitions were selected to keep 
MultiMemory compatible with 
most programs. On the 64, the first 
module runs from memory loca- 
tions 2048-16383; the second, from 
16384-32767; and the third, from 
32768-40768. Partitions are placed 
on 16K boundaries because the 64's 
VIC-II chip can address only one 
16K block at a time. The VIC-Il chip 
is responsible for handling the 64's 
video display — such things as 
sprite shapes, screen memory, and 
character data. 

On the Apple, the first module 
runs from memory locations 2048- 
8191; the second, from 8192- 16383; 
the third, from 16384-27317; and 
the fourth, from 27318-38250. 



94 COMPUTEI Morch 1986 



Note that the location of mod- 
ule 2 coincides with the Apple's 
first high-resolution graphics page. 
That means any programs which 
use the hi -res graphics page should 
be loaded into another module. 
And, of course, any programs load- 
ed into module 2 will likely be 
erased if a program in another mod- 
ule uses the hi-res page. 

Program 1 : MultiMemory 
For Commodore 64 

For instnjctions on entering this listing, please 
refer to "The New Automatic Proofreader for 
Commodore" In this issue of COmwjtei. 



POKE56,64:CLR 

FORI=40769TO409 59 :READA 

:POKEI,A:X=X+A:NEXT 

IFX<>22456THENPRINT"ERR 

OR IN DATA STATEMENTS , " 

:STOP 

POKE16384,0:POKE16385,0 

:POKE163e6,0 

POKE32768,0 :POKE32769,0 

:POKE32770,0:NEW 

DATA 174,210,159,189,21 

0,159,170,160,0,185 

DATA 43,0,157,214,159,2 

32,200,192,14,208 

DATA 244,32,228,255,41, 

15,240,249,201,4 

DATA 176,245,72,72,169, 

35,32,210,255,104 

DATA 24,105,43,32,210,2 

55,169,13,32,210 



XA 


100 


CR 


110 


DH 


120 


KA 


130 


RA 


140 


JD 


150 


QJ 


16,0 


SG 


170 


BA 


180 


QR 


190 



BG 200 
CF 210 
CR 220 
HS 230 
PX 240 
PK 250 
MQ 260 
RA 270 
XD 280 
DD 290 
HJ 300 
JK 310 
GE 320 
OR 330 



DATA 255,32,14 

,170,142,210,1 

DATA 210,159,1 

189,214,159,15 

DATA 0,232,200 

08,244,96,169, 

DATA 168,153,0 

192,25,144,248 

DATA 15,141,24 

10,141,5,212,1 

DATA 84,141,15 

39,141,1,212,1 

DATA 20,141,4, 

1,141,4,212,16 

DATA 0,134,251 

0,208,253,232, 

DATA 250,230,2 

1,201,4,208,24 

DATA 0,141,4,2 

,14,28,1 

DATA 8,3,8,3,8 

,0 

DATA 64,0,64,1 

3,64,3 

DATA 64,0,128 

28 , 1 , 1 28 , 3 

DATA 128,3,128 

,159,65,159,65 



3,159,104 

59,189 

70,160,0, 

3,43 

,192,14,2 



,212,200, 

,169 

,212,169, 

69 

,212,169, 

69 

212,169,2 

2 

,160,0,20 

208 

51,165,25 

2,169 

12,96,1 ,0 

,3,8,0,64 

,64,3,64, 

0,128,0,1 

,3,128,65 
,159 



Program 2: MultiMemory 
For Apple 

For instructions on entering this listing, please 
refer to "COfv/lPUTEI's Guide to Typing In 
Programs" In this Issue of computei. 

B6 100 HIMEM: B192 

B! 110 FDR I = 38251 TO 38399: R 

EAD A: POKE r,A:X - X + A 

I NEXT 
46 120 IF X < > 16759 THEN PRINT 



"ERROR IN DATA STATEfieNT 

S.": STOP 
!F 130 POKE 3192,0: POKE 8193,0: 

POKE B194,0 
Bi 140 POKE 1£>3S4,0: POKE lbZB5, 

0: POKE 16386,0! POKE 273 

18,0: POKE 27319,0: POKE 

27320,01 NEW 
B3 150 DATA 174,195,149,189,195, 

149,170, 160 
Ci 160 DATA 0,1SS, 103,0, 157,200, 

149,232 
!f 170 DATA 200,192,14,208,244,1 

73,0,192 
SZ 180 DATA 201,128,144,249,141, 

16,192, 170 
*l 190 DATA 41,15,240,241,201,5, 

176,237 
H 200 DATA 72,32,58,255,169,163 

,32,237 
CI 210 DATA 253,138,32,237,253,3 

2, 142,253 
BB 220 DATA 104,170,142,195,149, 

189,195, 149 
31 230 DATA 170,160,0,189,200,14 

9,153,103 
49 240 DATA 0,232,200,192,14,208 

,244, 165 
C7 250 DATA 105,133,175,165,106, 

133, 176,96 
71 260 DATA 1,0,14,28,42,1,8,3 
2F 270 DATA 8,3,8,3,8,0,32,0 
♦7 280 DATA 32,0,32,1,32,3,32,3 
a 290 DATA 32,3,32,0,64,0,64,0 
H 300 DATA 64,1,64,3,64,3,64,3 
BE 310 DATA 64,182,106,182,106,1 

82. 106, 183 
Jf 320 DATA 106,185,106,185,106, 

IBS, 106,107 
»? 330 DATA 149,107,149,107,149 



PRINTERS 



LX90 

NSflO letieiiet 

JX80 

FX185 

LOISOO(PAR) , , 

FXB5 331,95 

LXIO 210 95 

STAH MICRONtCS 



SG10 

SGIOC 

SG15 

SDlO 

S015 

SR10 

SH15 

Power type 

MSP10. 
MSP15 



CITIZEN 



S?10 95 
231 9b 
, . 368.95 
321 95 
440 95 
468 95 
581 95 
299 95 

SJM 95 
- 438 95 



MSP20 438.95 



MSP25 

1091 
1092 
1093 
3151 
3131 

Okimate 10 

0Kimale20 

182 

192 

193 

84 

808/NLQ 

1080 MQ 

1380 

13SI05 

6000 
6100 
t3CC 



PANASONIC 



OKIDATA 



LEGEND 



JUKI 



2000 



TOSHIBA 



DAISrWRITER 



54G 95 

$231 95 
3ES 95 
424 95 
424 95 
259 05 

SI 70 95 
209 95 
.. 219 95 
349 95 
. 514 95 
640.95 

S14995 

205 95 
. - - 259 95 

294 y5 

SI89 95 
3?§95 
769 95 

SI 289 95 
599-95 

S739 95J 



N.E.C, 

2030 $699,951 

2050 699.951 

3530 1309.95 

3550 1389.95 



MODEMS 



$179 95 
299 95 
399 95 
59 95 



ANCHOR 

VolkmpOem 1 2 
Signalman Express 

Lighming 240O 
Weslridge 

DIGITAL DEVICES 

300 Baud (Aianl $98 95 

HAYES 

300 S137 95 

300/1200 386 95 

i20OBw/sollware 378 95 



1200B 

NOVATION 

SmanCai Plus (12001 
Professional' 2400 

SUPRA 

MPPIOOOE rf,l,iri 
MPP1064(C 541 

CAL-ABCO 

Smart Team 1200 

C.D.I. 



349 95 



S3C9 95 
629 95 



54 95 



S199 95 
S59 95. 




SUPRA 

MIPI150 $15 95' 

DIGITAL DEVICES 

. 849.95 



UPrinl/Port. 
UPrinl/16K 

UFrin.I.'64K 

CARDCO 

AT-1 (Alan) 

TYMAC 

Epson 

PAR (Centronics SIP.) . 



69 95 
79 95 



$48,95 
. . 48.95 



DISKETTES 



^BONUS 


5'/* 


V/?^ 


SE.'DD 


S 9 50 


- 


DS/DD 


13 50 


— 


NO LABEL iwin P«n& Fiip.nlilei 


SS/DD. 


SIO 50 


^ 


DS/DD . 


14.50 


— 


MAXELL 






MDl 


$1595 


Z?% 


I.ID? 


19 95 


.■^RS?^ 


MEMDHEX 






SS/OD 


512.50 


29,95 


DS/OD 


16,50 


34 95 


ff30/20SS/DD. 


— 


fi9 9!j 


FF50/205S/DD 


36-95 


— 


■F50/20DS/DD 


42.95 


_ 


^Diskettes Carry 9 


UfeemeWarraittyJ 



' MONITORS ^ 




^a»12E ™NCETON 


$189 95 




HX9. 


459 95 




HX-9E . 


51995 




HX-12 


46995 




HX-12E .. 


555.95 




SR-12 


58995 




Sfl12E 


649.95 




1201 lllietrii NEC 


$99 96 




1205(Aril)ef) 


99.95 




1280 (TIL Green) 


14895 




1285{TTL Amber) 


148.95 




1460 


269 95 




1401 (B.G-B ( 


659 95 




ZVM 122/123^^'"''^*' 


S 74 95 




ZVM 124 (TTL Amber) 


149.95 




ZVM 131 IflGB) 


279 95 




ZVM 135 (RGB/Color) 


459 95 




W.10 TEKNIKA 


S178 95 




VJ-22 


254.95 




3000 AMDEK 


SI 16 96 




300A 


12695 




3104 


144 35 




Cjlor 300 


175 95 




Calor 500 


33995 




Colo; BOO 


39895 




Color 700 


468-95 




Color 710 


- 538.95 




■Color 722 


57995/ 





c r, „ AST , 

Sii Pack Plus S239.95 

Aflvantage (AT) 399.95 

Graph Pah 589.95 

Preview 299,95 

Mono Grapti Plus 383.95 

5251/11 799.95 

5251/12 579,95 

EVEREX 

Color Card S295.95 

WagicCard 185 95 

HERCULES 

Color S169.95 

Graphics 289 95 

PARADISE 

Five Pack $159 9b 

Mono 149.95 

Modular Graphics 279.95 

Mith Display 209.95 

TECMAR 

Graphics Master S459.95 

C£plaifl64,. , $189-95 



WESTERN REGION 
1-800-351-3455 



lnCACaU:1-8DD-}31-3422 





WESTERN 
REGION 

11327Tr]<leCen1er Drive 
Suile 335 

Ranclio CordDva. CA 95670 
j;uSUmer Ssruce: S16-635-3455 



ORDER TOLL FREE ^.IK?^".' 



"Where Prices are Born, Not Raised." 

H/7E HOUSE 
COMPUTER 

\z Deccfr^ 3- C C (xce'v rte« trt^ti onjui a>tM4 uw tf^i Bret J300 inirw c&rii.r>e*iis u s * 
APO ira fK ordBs *»»«)» nurtteU for Pror«y Wa JOa J"l OQ p« rtuWeC Ffw ffv«w; 
^ PA res<lems. P* >Bw*ntj »o 6% uiniz> JUiaefeatvtDfMuCsmun Wrt sprftfU nnbe 




EASTERN^ 
REGION 

P.O 6014025 

WilSamsport. PA 17701 

Customer Service: 

717-322-77DD^ 



MASTER CARD 4% VISA 4% 



AIVIERICAN EXPRESS 5% 



Experimenting 
With SiD Sound 



This versatile program for the Com- 
modore 64 lets you experiment tvith a 
wide variety of sound effects and lis- 
ten to hozv they sound in a prepro- 
grammed song. 



The Commodore 64's SID (Sound 
Interface Device) chip offers the 
ability to create a great number of 
rich, distinctive sounds. But sound 
programming involves so many dif- 
ferent parameters (controlling val- 
ues) that testing even a few 
different combinations can con- 
sume a lot of time. This program 
lets you change and experiment 
with any of the SID parameters 
quickly and easily. Once you have 
designed a sound, you can test its 
actual effect by playing it in a pre- 
programmed song. 

Type in and save a copy of the 
program before running it for the 
first time. When you type RUN, the 
main menu displays 12 choices: 



Mark A. Currie 



option 1 lets you select one of four 
different SID waveforms — triangle, 
sawtooth, pulse, or noise. Each has 
its own distinctive tone. If you se- 
lect the pulse waveform you must 
also set the pulse width to some 
nonzero value with Option 2. Op- 
tions 3 and 4 permit you to adjust 
the ADSR (attack/decay/sustain/ 
release) envelope of the sound. 
Each of the four ADSR parameters 
can be set separately to any number 
from 0-15. 

Attack controls the rate at 
which the sound rises from zero to 
full volume. Decay controls the rate 
at which it falls from the level it 
reached at the end of the attack 
cycle to the volume level set by the 
sustain setting. Sustain sets the vol- 
ume level the note will maintain 
from the end of the decay cycle 
until the note is turned off. And 
release controls how fast the note 
fades away after it's turned off. 
Since all four ADSR settings con- 



1 WAVEFORM 
3 ATTACK/DECAY 
5 LOUDNESS 
7 RING MODULATION 
9 PLAY MUSIC 
11 QUIT 



2 PULSE WIDTH 
4 SUSTAIN/RELEASE 
6 SYNCHRONIZE VI lo V3 
8 FILTERS 
10 ZERO VARIABLES 
12 LIST OF EFFECTS 



The first eight options let you 
design a sound by changing one or 
more of the SID chip's parameters. 
In each case, the computer tells you 
what range of values is allowed and 
prevents you from entering illegal 
values, If you select an option and 
decide not to change anything, 
press RETURN without entering 
any value. Let's look at each option 
in turn. 



tribute to the ultimate result, it may 
take some experimenting to find 
exactly the envelope you want. Op- 
tion 5 sets the SID's master volume 
control, accepting values from (si- 
lence) to 15. 

As you may know, the SID 
chip has three separate voices or 
tone generators. Option 6 permits 
you to synchronize two of these 
voices (1 and 3)^ producing effects 



which neither voice could produce 
alone. Note that voice 3's frequency 
must be set to some nonzero value 
before synchronization can work. 
This program lets you set voice 3's 
frequency to an unchanging value 
or to values that vary along with 
voice I's frequency changes. Op- 
tion 7 selects ring modulation: This 
effect is generated much like syn- 
chronization, but produces quite 
different effects. Again, you must 
set voice 3's frequency to a static 
value or an offset of the frequency 
for voice 1. 

Note that while this program 
uses only voices 3 and 1 for syn- 
chronization and ring modulation, 
you may use these effects with oth- 
er voice combinations in your own 
programs. In this case, voice 3's 
frequency affects voice 1. With the 
same techniques, you can affect 
voice 2 by voice I's frequency, or 
affect voice 3 by voice 2's frequen- 
cy. No matter which combination is 
used, you must supply frequency 
values for both of the voices 
involved. 

Option 8 controls the filter, al- 
lowing you to change six different 
parameters. You may turn four dif- 
ferent types of filters on or off and 
set the overall cutoff frequency and 
resonance for the filters. Filtering 
permits only certain specified fre- 
quencies to pass unchanged. Fre- 
quencies outside the specified 
range are much quieter or inaudi- 
ble. You can choose from four types 
of filters: low-pass, band-pass, 
high-pass, and notch-reject. When 
a filter is on, you can also choose an 
overall filter resonance value. 



96 COMPOTEI March 1956 



Resonance emphasizes frequencies 
near the cutoff frequency of the 

filter. 

Customized Music 

When you select Option 9, the pro- 
gram plays a song using the sound 
you have designed. Don't be dis- 
couraged if the results aren't exactly 
what you expect at first. Sometimes 
a minor change in only one or two 
parameters (particularly those con- 
trolling the ADSR envelope) makes 
a big difference in the ultimate 
effect. 

Option 10 clears all sound pa- 
rameters to zero to clear the slate 
for a new sound. Note that the SID 
chip produces silence when every 
parameter is zero: The least you 
must do to produce a sound is turn 
on a waveform, set the volume to a 
nonzero level, and define some sort 
of ADSR envelope. To help you get 
started, this program begins by 
choosing maximum volume, a pulse 
waveform (with pulsewidth of 
2048), an attack value of 1, and a 
decay of 9. 

After designing a sound that 
you like, you may wish to use it in a 
program of your own. Option 12 
generates two lists for that purpose. 
The first list summarizes the sound 
parameters currently in effect. The 
second list includes all the SID con- 
trol locations and indicates which 
values to POKE into each register to 
reproduce the current sound. Al- 
though this program makes only 
one voice audible, you can achieve 
even more interesting effects by ac- 
tivating more than one voice at a 
time. 

Sound Experimenter 

For Instructions on entering this listing, pfease 
refer to "The New Automatic Proofreader for 
Cornmodore" in this issue of compute!. 

DA 100 POKE53280,6:PRINT"iCLR) 
[7 D01VNi"SPC(9)"C64 SOU 
ND EXPERIMENTS":FORT=lT 
O1300:NEXT 

GG 1X0 L1 = 15:W1=:65:A1 = 25:D1 = 9: 
S1=0:W2S="PULSE":P1=204 
e;L2=15:F15="NO":P2%=B 

JK 120 PRINT" (GLRj (down) 
15 SPACES IfRVS) 
(5 SPACES JSOUND EFFECT 
{SPACE} MENU I 5 SPACES J 
(OFF) (4 DOWN)" 

GE 130 PRINT" {RVS)1{0FF) WAVE 
F0RM(9 SPACES] {RVS) 2 
I OFF) PULSE WIDTH 
(DOWNj 

KK 140 PRINT" lRVS33[OFF) ATTA 
CK/DECAYt5 SPACES H RVS ) 
4 I OFF} SUSTAIN/RELEASE 



PD 15£ 



QC 160 



BK 170 



QX 180 



KB 


190 


QA 


200 


FS 


210 


RQ 


220 


as 


230 


PB 


240 


SX 


250 


xs 


260 


HS 


270 


FC 


280 


QK 


290 


DJ 


300 


XX 


310 


GE 


320 


BF 


330 


EE 


340 


HS 


350 


EX 


360 


DA 


370 


FX 


380 


FC 


390 


JH 


400 


GX 


410 


AE 


420 


PC 


430 


QK 


440 


FD 


450 


RG 


460 



(SPACE) (DOWN) 

PRINT" (RVS35[0FF1 loud 

NESS (9 SPACES) (RVS i 6 

(OFF) SYNCHRONIZE VITOV 

3 

PRINT" (RVS)7(0FF) RING 

M0DULATI0N(2 SPACES) 
(RVS)8(0FF) FILTER/RESO 
NANCE (DOWN) 

PRINT" (RVS)9(OFP) MUSI 
C PLAYER(5 SPACES] f RVS) 
10 (OFF} ZERO VARAIABLES 

[DOWN] 
PRINT" JRVS)II(OFF) QUI 
Tll2 SPACES) (RVS) 12 
{OFF} LIST OF EFFECTS 
ioOWNj" 

INPUT" [2 D0WN}ENTER NUM 
BER OF YOUR SELECTION"? 
A 

ON A GOTO520,340,220,28 
0,790,3 70,630,820,1370, 
1030,1670,1040 
GOTO120 

PRINT"(CLR) (2 DOWN)SET 
( SPACE ) ATTACK VALUE BET 
WEEN & 15" 
PRINT" [DOWN (CURRENT VAL 
UE OF ATTACK IS";(A1-D1 
)/16 

INPUT "[ DOWN )"; A3 :A2=A3* 
16 
PRINT" (2 DOWN) SET DECAY 

VALUE BETWEEN & 15" 
PRINT "{DOWN (CURRENT VAL 
UE OF DECAY IS"; 01 
INPUT "{D0\™)";D1 !A1=A2+ 
Dl :GOTO120 

PRINT"(CLR}(2 D0WN]SET 
( SPACE JSUSTAIN VALUE BE 
TWEEN & 15" 
PRINT "(DOWN) CURRENT VAL 
UE OF SUSTAIN IS";(S1-R 
1)/16 

INPUT" (DOWN ) " ; S3 :S2=S3* 
16 

PRINT" (2 DOWN 3 SET RELEA 
SE VALUE BETWEEN S 15 

PRINT" {DOWN) CURRENT VAL 
UE OF RELEASE IS";R1 
INPUT " ( DOWN ) " r Rl : S1 = S2 + 
Rl :GOTO120 

PRINT"(CLR} [3 DOHN)SELE 
CT A PULSE WIDTH BETWEE 
N 6, 4095" 

PRINT" (2 DOWN (current P 
ULSE WIDTH IS", -PI 
INPUT" (DOWNj ":P1 ;P2%=!=P1 

/256:P3%=Pl-2 56*P2%:GOT 
0120 

PRINT"{CLR)|3 DOWNJDO Y 
OU WANT SYNCHRONIZING?" 
INPUT "TYPE Y OR N " ; B? 
IFBS="N"THENW1=W1AND253 
:S2=0!GOTO120 

IFBS="Y"THENW1=(W1AND25 

1)OR2:GOTO420 

GOTO380 

PRINT" (2 DOWN (PRESENT F 

REQUENCY OF V3 (VOICES) I 

S " ; V4 

INPUT" (2 DOWNjENTER PRE 

QUENCY FOR V3 " ; V4 :V3=IN 

T(V4*16.4) 

V4*=V3/256:V5%=V3-(256* 
V4%) 

PRINT" (2 DOWN (DO YOU WA 
NT V3 TO BE OFFSET 
PRINT "FROM FREQUENCY OF 
VI BY" 



SM 


470 


XX 


480 


BE 


490 


CM 


500 


JB 


510 


JP 


520 


GG 


530 


PP 


540 


MX 


550 


SE 


560 


BF 


570 


SM 


580 


RH 


590 


XC 


600 


KD 


610 


HJ 


620 


m 


630 


HA 


640 


AQ 


650 


FB 


660 


QQ 


670 


BB 


680 


KD 


690 


SS 


700 


XG 


710 


FE 


720 


RA 


730 


QE 


740 


CC 


750 


BB 


760 


KQ 


770 


FC 


780 


SR 


7 90 


RE 


800 


PE 


810 


DS 


820 


GJ 


830 


XG 


840 


DC 


850 


FG 


860 



PRINT "AMOUNT YOU JUST E 

NTERED?" 

INPUT" {DOWN 3TYPE Y OR N 

";CS 
IFC$="N"THENS2=0 :G0T012 


IFC$ = "'Y"THENS2=1 
GOTO! 20 

REM SET UP WAVEFORM TYP 
E 

PRINT"{CLR( (2 DOWN)ENTE 
R THE FIRST LETTER OF T 
HE"! PRINT "TYPE OP WAVEF 
ORM YOU WANT: 
PRINT" {DOWN }TRIANGLE, S 
AWTOOTH, PULSE, NOISE." 
PRINT" {DOWN }WAVEFORM IS 

NOW SET TO ";W2$ 
INPUT" (DOWN) ";WS 
IFWS="T"THENW1=17 sW2$=" 
TRIANGLE" 

IFW5="S "THENW1=33 !W2$=" 
SAWTOOTH " 

IFW$="P"THENW1=65 !W2$=" 
PULSE " 

IFW5="N"THENW1=129:W2$= 
"NOISE" 

IFW1=6SGOTO340 
GOTO120 

PRINT"(CLR((2 DOWN) IF Y 
OU SELECT RING MODULATI 
ON THEN" 

PRINT "WAVEFORM WILL BE 
(SPACE 3 SET TO TRIANGLE 
INPUT" [2 DOWN (DO YOU WA 
NT RING MOD? TYPE Y OR 
(SPACE In" ;RS 
IFR5="N "THENW1=W1AND113 
!S2=0:GOTO120 
1PR?="Y"THENW1=21 :W2|=" 
TRIANGLE " : GOTO690 
GOTO630 

PRINT" { DOWN }FREQUENCy 
F V3( VOICE 3) IS NOW SE 
T AT ";V4 

INPUT" {DOWN }SET PREQUEN 
CY OF V3 ";V4 tV3=INT(V4 
*16.4) 

V4%=V3/256 :V5%=V3- ( 256* 
V4%) 

PRINT" (2 DOWNJDO YOU WA 
NT FREQ. OF V3 TO" 
PRINT "TO BE OFFSET FROM 

VI BY" 
PRINT "AMOUNT YOU JUST E 
NTERED" 
INPUT" (2 DOWNJTYPE Y OR 

N ";0? 
IF 0?="N"THEN S2=0:GOTO 
120 

IF 0$="Y"THEN S2=l 
GOTO120 

PRINT"[CLR){2 DOWN) LOUD 
NESS IS NOW SET AT";L1A 
ND15 

INPUT" {2 DOWNJSET LOUDN 
ESS BETWEEN & 15";L2 
Ll=LlAND240tLl=L2+Ll :GO 
TO120 

PRINT"(CLR( (2 DOWN)ENTE 
R FIRST LETTER OF TYPE" 
: PRINT "OF FILTERING YOU 

WANT: 
PRINT"{D0WN}L0WPAS3, BA 
NDPASS, HIGHPASS, 
PRINT "OR NOTCH FILTER 
{ DOWN ] " 
PRINTFIS;" FILTERING IS 

BEING USED NOW. 
INPUT "{ DOWN 3tO turn FIL 
TERING OFF ENTER 0";F$ 



March 1986 COMPUTE! 97 



HS 870 IFF5="0"THENL1=L1AND15; 

R2=0:F15="NO"iR6=0 
QB 880 IFFS="N"THENL1=L2+80:R2 

=1:FI$="B0TCH" 
PJ 890 IFF5="L"THEN L1=L2+16 :R 

2=1:F1$="L0WPASS" 
CG 900 IFF$="B"THEN L1=L2+32!R 

2=1 :F1$= "BANDPASS" 
BC 910 IFF?="H"THEN L1=L2+64:R 

2=1 :F1 $= "HIGHPASS " 
QR 920 FRINT"{CLR3{2 D0WN}CUT0 
FF FREQUENCY IS NOW SET 
AT";F 
MB 930 PRINT" {2 DOWN} INPUT CUT 

OFF FREQUENCY 
AB 940 INPUT"BETWEEN & 2047 

(SPACE J CYCLES" ;F 
AG 950 F1%=F/3:F2%=F-(8*F1%) :F 

$="7" 
HE 960 PRINT" (2 DOWN J DO YOU WA 

NT TO SET RESONANCE 
FF 970 INPUT"TYPE Y OR N";R$ 
BH 980 IFR$«"Y"GOTO1000 
FJ 990 R6=1:R5=0jGOTO120 
CH 1000 PRINT "( DOWN }RES0NANCE 
I SPACE) IS NOW SET AT " ; 
R5 
KC 1010 PRINT" (2 DOWN J SET RESO 

NANCE BETWEEN £, 15 
KG 1020 INPUTR5:R6=R5*16+l:GOT 

O120 
PR 1030 CLR:F15="NO":GOTOI20 
ER 1040 REM PRINT LIST OF SOUN 

D EFFECTS 
JG 1050 PRINT "{CLR3{D0WN}WAVEF 

ORM TYPE IS ";W2? 
SX 1060 IF W2$="PULSE"THEN PRI 

NT"PULSEWIDTH is ";P1 
JC 1070 PRINT"! DOWN lATTACK IS 
(SPACE)"; (A1-D1)/16;" 
[2 SPACES J DECAY IS " ; D 
1 
KE 1080 PRINT" { DOWN JSUSTAIN IS 
";(S1-R1)/16:" RELEAS 
E IS ";R1 
QP 1090 PRINT"{DCWNiLOUDNESS I 

S SET TO "rLlANDlS 
AA 1100 I FR2 =000701 140 
HP 1110 PRINT "{ DOWN }"F1?" FILT 

ER BEING USED WITH 
EM 1120 PRINT "CUTOFF FREQUENC 

Y OF ";F 
JJ 1130 PRINT" (DOWNIRESONANCE 

(SPACE) IS ";P.5 
MF 1140 IFW1AND2TKENPRINT" 

( DOWN 3SYHCHR0NI ZING IS 
ON":GOTO1170 

cs 1150 ifw1and4thekprint" 

Idown3ring modulation 
(spacejis cn":goto1170 

CQ 1160 GOTO1190 

BH 1170 PRINT "P0KE54286 WITH"; 

V5%;"£. POKES4287 WITH" 

,-V4%r 

PP 1180 PRINT" (4 SPACES )T0 SET 

V3 FREQ TO";V4;"HZ 
JK 1190 IFS2=1THENPRINT"FREQUE 
NCY OFFSET IS BEING US 
ED. 
' KH 1200 IFS2=1THENPUINT"SEE PR 
i OGRAH LINES 1640-1660 

t GS 1210 INPUT" (DOWN} PRESS RETU 
RN TO CONTINUE ";R8 
EE 1220 PRINT" [CLR)(DO''m) VOICE 
113 fIGHTjVOICE 2 
13 RIGHT) VOICE 3 
(3 RIGHT) VALUE TO 
( DOWN ) " 
JQ 1230 PRINT"REGISTER 

(2 RIGHT JREGISTER 
(2 RIGHT JREGISTER 



{2 RIGHT) BE POKED 

( DOWN 3 " 
SC 1240 S(0)=P3%sS(l)=P2%:S(2) 

=W1:S(3)=A1:S(4)=S1 
BQ 1250 FORS=0TO4 
KH 1260 PRINT 54274+3,54281+3, 

54288+S,S(S) sNEXT 
DO 1270 PRINT"(2 D0WN3FILTERIN 

G & LOUDNESS" 
EK 1280 PRINT 5429 3 ; TAB ( 30 ); F2 

% 
HK 1290 PRINT 54294 r TAB ( 30 ) ;F1 

« 
QS 1300 PRINT 54296, • TAB ( 30 ) ;H 
EP 1310 PRINT" {DOWN JRESONANCE 

(SPACE 3 & VOICE TO BE F 

ILTERED 
HH 1320 PRINT"54295" rTAB(30)! 

( SPACE )R6AND2 40 
KD 1330 PRINT"ADD 1 TO 54295 F 

OR FILTERING VOICE 1 
DG 1340 PRINT "ADD 2 TO 54295 F 

OR FILTERING VOICE 2 
MR 1350 PR:NT"ADD 4 TO 54295 F 

OR FILTERING VOICE 3 
SA 1360 IN UT "PRESS RETURN TO 

(S "ACEjCONTINUE ";R8:G 

OTOl 20 
SK 1370 RE=54272!RESTORE 
GB 1380 P0RR=54272 TO 54296: P 

OKER, 0! NEXT 
SD 1390 REM ENTER SOUND EFFECT 

S INTO SID 
BD 1400 POKERE+2,P3% :P0KERE+3, 

P2% 
BB 1410 P0KERE+5,A1 !P0KERE+6,S 

liPOKERE+14,V5% 
JF 1420 POKERE+15,V4*:POKERE+2 

1,F2*!P0KERE+22,F1% 
KQ 1430 POKERE+23,R2:POKERE+24 

,L1 
CG 1440 READN,D;IFN=0THENPOKER 

E+24,0:GOTO120iREM PLA 

Y MUSIC 
DP 1450 H=INT(N/256) !L=N-(256* 

H) :DUR=1600/D 
AA 1460 P0KERE+1,H:P0KERE,L:P0 

KERE+4,W1 
FC 1470 IF S2=l GOTO1630 
EM 1480 FOR T=1T0DUR:SEXT 
DR 1490 IFWK1GOTO1510 
JB 1500 POKERE+4,Wl-l 
SQ 1510 PORT=1TO20:NEXT:GOTO14 

40 
JE 1520 DATA10814,e,11457,8 
DF 1530 DATA12860, 4, 12860, 16,1 

4435,8,17167,8,10814,4 

,11457,8,10814,8 
RQ 1540 DATA9634,4,9634,16,114 

57,8,8101,8,3583,4 
DM 1550 DATA10814, 8, 11457,8 
MG 1560 DATAl 2860, 4, 12860, 16,1 

4435,8,17167,8,10814,4 
,11457,8,10814,8 

GS 1570 DATA9634,4,9634,16,H4 
57,8,8101,8,8583,4 

KB 1580 DATA12360,4,17167,16 

QR 1590 DATA21269,4,2i269,16,2 
1269,8,19269,8,17167,4 
,12860,8,12860,8 

HR 1600 DATA14435, 4, 17167, 16,1 
7167,8,14435,8,12860,4 
,10814,4 

GH 1610 DATAl 0814, 4, 10814, 16,1 
0814,8,9634,3,10814,4, 
12860,8,10814,8 

SC 1620 D;,TA9634,4,9634,16,H4 
57,8,8101,8,8583,4,0,0 

MM 1630 REM DEVELOP OFFSET PRE 
QUENCY 

KM 1640 Fl=H*256+L!Fl='Fl-V3!lF 



F1<0THENF1=0 
RA 1650 V4%=Fl/256: V5%=Fl-(25 

6*V4%) 
QQ 1660 POKERE+14,V5%:POKERE+l 

5,V4%sGOTO1480 
QK 1670 END @ 



To receive 

additional 

information from 

advertisers in 

this issue, use 

tlie liandy reader 

service cards in 

the bacl< of 
the magazine. 




ISOBAR.. .cleans up your line 
power! The most complete 
computer protection available 

More features to prevent errors, false printout, 
disc skips! Only ISOBAR has 3-way spike pro- 
tection, noise suppression for RFI PLUS isolated 
filter banks! Individual filter banks isolale eacti 
load from otfier loads minimizing data errors of 
any kind. MOV surge suppressors arrest botli 
common mode and differential mode surges. 
L/C filter network rejects radio frequency noise 
at any amplitude. Toroidal coils ! 



IVtodel IBAR 2-6 

(2 outlets, 6 ft. cord) 

Only $59.95 



Mcxlel IBAR 4-6 

(4 outlets, 6 ft. eord) 

Only S79.95 



Model IBAR 8-15 (8 outlets, 15 ft. cord) 
Only 3109.50 



Order toll free 1-800-662-5021 

IN ILLINOIS, CALL 1-312-648-2191 OR MAIL COUPON 



INDUS-TOOL, 730 W. Uke Street 
Depl. C!, Chicago. IL 60606 

Enclosea is $ 



D MasterCard or □ Visa 
Card no 



or charge on 
Expires 



Send tnodel # 



Name _ . 

Company _ 

Address 

Ciiy 



Zip 



98 COMPUTB Marcfi 1986 



Mousify Your Applesoft Programs 



Here's the first installment of a two- 
part tutorial on interfacing and using 
a mouse with your Apple 11 computer. 
Though a mouse is preferred, you can 
use the techniques shown here to sub- 
stitute a joystick or game paddles for 
the mouse. 



Allow me to introduce a new 
word — mousify. Don't try to look 
that up in a dictionary — it's not 
there, at least not yet. Though Ap- 
ple didn't invent the mouse, their 
Macintosh was the first popular 
home computer that qsed one; and 
it has changed the way that we 
interface with computers. So the 
need for the word mousify — to add 
mouse control to computer hard- 
ware or software — may grow. 

A Mouse For Apple il 

Apple II computers don't come 
with a mouse, but it's now possible 
to add one. If you have an Apple II, 
II+, or He, you'll need an interface 
card {Apple product A2M2050, 
$149.95 including the mouse). The 
interface is built into the lie, so you 
only need to buy the mouse device 
(Apple product A2M4015, $99.95). 
Attaching a mouse to your Ap- 
ple II is only half the battle. To your 
computer, a mouse is merely anoth- 
er input device, like a joystick. 
Many new programs have the abili- 
ty to accept mouse input. But there 
are thousands of existing programs 
that were written before the mouse 
appeared on the scene. Most com- 
mercial programs are written in ma- 



Lee Swoboda 



chine language and protected from 
unauthorized access so, unless you 
are an expert machine language 
programmer, you won't be able to 
mousify them. However, Applesoft 
BASIC programs can easily be 
mousified. 

Pages 35-40 of the AppleMouse 
11 User's Manual, which comes with 
the mouse, give a brief description 
of how to use the mouse in a BASIC 
program. But the two examples are 
trivial and the text fails to mention 
some of the "features" that make 
mousifying an Applesoft program 
difficult. For example, you must use 
the INPUT statement to obtain 
mouse position parameters. Unfor- 
tunately, the INPUT command 
erases one line of screen text. In 
addition, your program must set the 
computer to receive input, which 
disconnects the keyboard. Mixing 
mouse and keyboard input requires 
switching input control between 
the mouse and the keyboard. Not 
only that, you have to use GET 
statements for keyboard input, 
which can be exasperating. Using 
these techniques quickly turns your 
BASIC program into a Rube Gold- 
berg contraption of INPUTs, GETs 
and PRINT D$'s. But there's a bet- 
ter way to handle the mouse. 

Fortunately, Apple's input and 
output (I/O) are memory-mapped, 
meaning that the keyboard and 
each character on the 40-column 
screen are at specific locations in 
Apple's main memory. Applesoft's 
PEEK and POKE commands let us 
examine and change characters on 
the screen without having to use 



INPUTS, GETs or PRINTs. This is 
especially important when using 
the mouse, since it lets you zoom 
quickly to any point on the screen 
to change a character, rather than 
perform complex string manipula- 
tions. 

Practical Application 

Let's see how this works. Type in 
and save Programs 1 and 2, then 
load and run Program 2, which cre- 
ates a text file for Program 1 to read. 
When that's done, load and run 
Program 1. You'll see an input 
screen, typical of what might be 
used in an address book program 
that lets you store and recall names 
and addresses. (Of course, this pro- 
gram is just for demonstration; you 
can't use it to create a real address 
file.) 

In a typical program, the com- 
puter would make you reenter an 
entire line to correct a misspelling 
or other error. Program 1 lets you 
point directly at an error with the 
mouse, and change only the incor- 
rect character. The initial screen 
display should contain this 
information: 

ENTER INFORMATION 

FIRST NAME ... COMPUTE! 

LAST NAME .... REEDER SERVICE 

STREET P.O. BOX 2141 

CITY RANDOR 

STATE PA 

ZIP 19089 

TELEPHONE 1-800-334-0868 

ERASE QUIT DONE HELP 

Notice that the word READER 
is misspelled REEDER. That's the 
mistake you'll correct. Also notice 
there are three flashing rectangles 

Morcfi 1986 COMPUTB 99 



on the screen. The rapidly flicker- 
ing rectangle in the upper-right cor- 
ner is produced when Program 1 
obtains mouse input (lines 
10150-10160). This effect is always 
present, but is unimportant to the 
present discussion. The flashing C 
at the beginning of the word COM- 
PUTE! is the cursor. The blinking 
reflex Q in the upper left comer of 
the screen is the mouse pointer. The 
mouse moves the mouse pointer 
around the screen. 

Move the mouse so the mouse 
pointer replaces the second E in 
REEDER and press the mouse but- 
ton. The computer immediately 
moves the cursor to the same spot. 
Now type the letter A (upper or 
lower case) to correct the spelling 
mistake. That's all you need to do 
to correct the error. You can also 
use the arrow keys to move the 
cursor (Apple II uses the CTRL-J 
and CTRL-K keys to simulate the 
up and down arrow keys of the lie 
and lie). But the mouse moves the 
cursor much more rapidly, and is 
far more intuitive to use. 

Now move the pointer to the 
word DONE in the strip menu at 
the bottom of the screen, and press 
the button. The computer reads the 
information from screen memory 
and, in this case, redisplays the up- 
dated information. Of course, in a 
working program you would re- 
place lines 30120-30190 with rou- 
tines that store the data for later 
recall. You can move the mouse 
pointer or cursor anywhere on the 
screen, but line 10710 of the pro- 
gram prevents you from typing 
anything outside the text area. 

How The Program Works 

Let's take a closer look at the signif- 
icant portions of Program 1. Lines 
130 and 10000-10830 are the most 
important. Line 130 sets the sensi- 
tivity of the mouse. When Ml has a 
value of 20, the pointer moves to 
any part of the 40-column screen as 
the mouse moves within a 5 X 8 
inch area. Give MI a larger value to 
make the mouse less responsive. 

Lines 10070-10090 activate 
the mouse. Input control is trans- 
ferred from the keyboard to the 
mouse, until line 20030 returns 
control to the keyboard. Lines 
10150-10270 calculate the horizon- 
tal and vertical position of the 



mouse and determine whether the 
mouse button has been pushed. 
Line 10170 and lines 10440-10760 
handle input from the keyboard. 
Note that input control remains 
with the mouse at this point: The 
program does not use the statement 
PRINT D$"IN#0" to return control 
to the keyboard. This is the key to 
the simplicity of Program 1, since it 
avoids the problems normally en- 
countered when using GET and 
PRINT commands with DOS. 

Line 10220 and lines 
10230-10270 move the cursor to 
the same position as the mouse 
pointer when you press the mouse 
button. Lines 10320-10390 posi- 
tion the mouse pointer and return 
to line 10150 to read the mouse 
again. If you don't press a key or 
the mouse button, the computer 
stays in the loop from 10150 to 
10390, reading the mouse and re- 
positioning the mouse pointer. 
Lines 10590-10620 position the 
cursor. This routine is activated 
only when you press an arrow key 
or the mouse button. Lines 
10640-10690 change all upper- 
and lower-case and all inverse 
characters to flashing. 

Substituting A Joystick Or 
Game Paddies 

If you don't have a mouse, you can 
use a joystick (or, less conveniently, 
game paddles) to achieve the same 
effects. With a few modifications. 
Program 1 can be made to accept 
joystick or paddle input. Here are 
the steps to follow: 

1. Delete lines 120, 130, 10001- 
10090 and 20220. 

2. Modify the following lines as 
shown: 

CB 10150 X0=PDL(0) 

M 10160 Y0-PDL(U 

Al 10170 IFB0>127THEN10440 

«9 10180 Y0-INT(Y0/10)+1 

47 10200 X0=INT(X0/6)+l 

if 10220 IFB0<t2aTHEN10320 

32 20030 REM 

3. Add the following lines: 

iD 10165 B0=PEEK (-16384) 
54 10215 B0-PEEK (-16287) 

After making these changes, 
resave Program 1, using a different 
filename to distinguish it from the 
original version. When you run it, 
the joystick moves the mouse 
pointer around the screen and the 



button works just like the mouse 
button. At this point you might 
wonder why anyone would buy a 
mouse, since a joystick or game 
paddle seems to work as a substi- 
tute. Part of the reason is simply 
preference — many people find that 
a real mouse "feels" better and is 
therefore more convenient than a 
joystick. More significantly, most 
commercial programs that accept 
mouse input do not recognize input 
from a joystick or paddles. If you're 
writing programs strictly for your 
own use, a joystick may serve the 
purpose; but if you buy commercial 
software that requires a mouse, you 
may have no choice. 

Using a mouse is a new expe- 
rience for many Apple II owners. I 
hope this program inspires you to 
mousify some of your own pro- 
grams. In Part 2 of this article we'll 
expand the capabilities of Program 
1 to let you use the mouse to delete 
and insert blocks of text. 



Program 1 . Apple II Mouse 
Demonstration 

For instructions on entering this listing, piease 
reter to "COWPUTEI's Guide to Typing in 
Programs" published (n this issue of COmputei. 

BD 120 30 - 2: REM 3LDT CONTAIN! 
NG MOUSE 

D7 130 MI - 20s REM MOUSE SEN3IT 
IVITY 

5fl 140 D» - CHR* (4) 

BC 150 REM 

B7 160 REM READ DflTfl FILE 

M 170 REM 

Cit 180 PRINT D»"OPEN TEXT" 

3! 190 PRINT D»"REflD TEXT" 

it 200 INPUT NF«,NL»,AD»,CI«,3T» 
,ZI«,TE« 

a 210 PRINT D«"CLOSE TEXT" 

87 220 REM 

2S 230 REM DATA ENTRY SCREEN 

B! 240 REM 

*F 250 HOME 

411 260 Yl - 4: XI - 1S:C0 - 160 

3! 270 INVERSE 

D7 280 PRINT " ENTER 

INFORMATION 
2C 290 VTAB 24s PRINT " MENU! E 
RASE iaUIT DONE HELP 
"» 
C4 300 NORMAL 
Ji 310 VTAB 4: HTAB 1 
f4 320 PRINT "FIRST NAME . . " 
Ci 330 PRINT "LAST NAME ..." 

3C 340 PRINT "STREET " 

Bi 350 PRINT "CITY " 

IF 360 PRINT "STATE " 

34 370 PRINT "ZIP .." 

17 3B0 PRINT "TELEPHONE ..." 

3A 390 VTAB 19: HTAB 10: INVERSE 

: PRINT "^")i NORMAL 
Bl 400 PRINT " IS MOUSE POINTER" 
3C 410 VTAB 211 HTAB 14i INVERSE 

J PRINT " "M NORMAL 
3! 420 PRINT " 13 CURSOR" 
2S 430 VTAB 4 
!E 440 HTAB 15: PRINT NF» 



100 COMPUTE March 1966 



ii 450 HTftB 15: PRINT NL« 

i1 460 HTAB 15: PRINT flD» 

El 470 HTAB 15: PRINT CI* 

H 480 HTAB 15: PRINT ST* 

71 490 HTAB ISs PRINT ZI« 

5? 300 HTAB 15: PRINT TE« 
73 99*?9 REH « 10000 
I? 10000 REM 

E4 10001 REM 



2? 10010 REM MOUSE ROUTI^ES 

E4 10020 REM 

39 10040 REM 

M 10050 REM TURN MOUSE "ON" 

4? 10060 REM 

m 10070 PRINT D«"PR#"Sfll PRINT 

CHR« (1) 
CB 10080 PRINT D«"PR«0" 
19 10090 PRINT D*"IN»"S0 
17 10100 BOTD 10590 
:; 10110 REM 

i! 10120 REM DETERMINE POSITION 
91 10130 REM OF MOUSE 
JD 10140 REM 

iC 10150 VTAB 1: HTAB 40 
77 101i0 INPUT ""5X0,Y0,B0 
7D 10170 IF B0 < THEN 10440: R 

EM KEY PRESSED? 
Dl 10180 Y0 - INT (Y0 / MI) +1 
7B 10190 IF Y0 > 24 THEN Y0 - 24 
M 10200 X0 - INT (X0 / MI) + 1 
75 10210 IF X0 > 40 THEN X0 - 40 
IB 10220 IF B0 > 1 THEN 10320; R 

EM BUTTON PRESSED? 
B9 10230 IF Y0 - 24 THEN 20030 
63 10240 Yl - Y0!X1 - X0 
7a 102S0 POKE V0,C0 
4B 10260 C0 - 'C2 
n 10270 QOSUB 10800 
F2 10280 eOTD 10620 
49 10290 REM 
ED 10300 REM POSITION MOUSE POIN 

TER 
in 10310 REM 

B4 10320 IF V0 - VI THEN C2 - CI 
Bl 10330 POKE VI, C2 
« 10340 VI - 1023 + 128 t (Y0 - 

1) + X0 
IF 10350 IF Y0 > a THEN VI - VI 

- 984 
K 10360 IF Y0 > 16 THEN VI - VI 

- 984 
27 10370 C2 - PEEK <V1) 
44 10380 POKE VI, 160 
l« 10390 IF C2 " 160 THEN POKE V 

1,30 
n 10400 OOTO 10150 
31 10410 REM 

11 10420 REM KEYBOARD INPUT 
41 10430 REH 

F9 10440 C3 = PEEK £ - 16384) 

77 10450 POKE - 16368,0 

»C 10455 IF C3 > 223 THEN C3 - C 

3 - 32: REM CONVERT TD 

UPPER CASE 

48 10460 IF C3 > 159 THEN 10710 
CI 10470 IF C3 - 141 THEN XI - 1 

5iYl - Yl + It IF Yl > 
10 THEN Yl - 4i REM RET 
URN KEY 

49 10480 IF C3 - 139 THEN Yl - Y 

1+1: REM DOWN ARROW 

12 10490 IF C3 - 138 THEN Yl - Y 

1 - li REM UP ARROW 
SF 10500 IF C3 - 149 THEN XI - X 

1 t- li REM RI3HT ARROW 
71 10510 IF C3 - 136 THEN XI - X 

1 - li REM LEFT ARROW 
54 10520 IF Yl > 24 THEN Yl - 24 
K 10530 IF Yl < 1 THEN Yl - 1 
9C 10540 IF XI > 40 THEN XI - 40 
El 10350 IF XI < 1 THEN XI - 1 
SD 10560 REM 

H 10570 REM POSITION CURSOR 
U 10580 REM 



A4 10390 POKE V0,C0 

Ct 10600 QOSUB 10800 

42 10610 C0 - PEEK (V0) 

9E 10620 IF V0 - VI THEN C0 - C2 

44 10630 REM CHANQE TD FLASHINB 

CHARACTER 
B7 10640 CI • C0 
23 106H0 IF CI > 127 THEN CI - C 

1 - 64 
7F 10660 IF CI > 64 THEN CI - CI 

- 64 

D9 10670 IF CI > 9S THEN CI = CI 

- 32 

4B 10680 IF CI < 64 THEN CI - CI 

+ 64 
Ca 10690 POKE V0,C1 
CE 10700 SOTO 10130 
4B 10710 IF XI < 15 OR Yl < 4 OR 

Yl > 10 THEN 10150 
DE 10720 QOSUB 10800 
DC 10730 POKE V0,C3 
51 10740 ca " C3 

CE 10750 IF V0 - VI THEN C2 - C3 
IC 10760 XI " XI + 1: IF XI > 39 

THEN XI - 39 
67 10770 SOTO 10590 

16 10780 REM CALCULATE V0 

6E 10790 REM (VIDEO BUFFER ADDRE 

S3) 
61 10800 V0 • 1023 + 128 * (Yl - 

1) + XI 
28 10810 IF Yl > a THEN V0 - V0 

- 984 
7f 10820 IF Yl > 16 THEN V0 • V0 

- 984 

SB 10830 RETURN 

n 19999 REM M20000 

lA 20000 REM 

»E 20010 REM STRIP MENU 

2A 20020 REM 

C2 20030 PRINT D»"IN4»0" 

CI 20040 IF X0 > 8 AND X0 < 14 T 

HEN NF» - ""iNL« - ""lA 

D» - ""iCI» - ""iST« - 

"":ZI« - ""iTE« - ""I Q 

OTO 2S0 
IF 20050 IF X0 > JS AND X0 < 20 

THEN HOME ■ END 
73 20060 IF X0 > 21 AND X0 < 26 

THEN 30030 
711 20070 IF X0 > 27 AND X0 < 32 

THEN 20100 
71 20080 VTAB 1: HTAB 40: PRINT 

D»"IN#"S0! QDTO 10150 

17 20090 REM HELP TEXT 

CD 20100 VTAB 12: HTAB 1 

BA 20110 PRINT "THE FLASHINB REF 

LEX (-") IS THE MOUSE" 
75 20120 PRINT "POINTER AND TKE 

FLASH INS RECTANQLE IS" 
4B 20130 PRINT "THE CURSOR. TO 

MOVE THE CURSOR TO THE" 
34 20140 PRINT "ENTRY YOU WANT T 

D CHANQE, USE THE ARROW 

II 

4E 20150 PRINT "KEYS OR USE THE 
MOUSE TO MOVE THE MOUSE 

■ i 

47 20160 PRINT "POINTER, THEN PR 
ESS THE MOUSE BUTTON TO 

ir 

E6 20170 PRINT "MOVE THE CURSOR 

TO THAT POINT. TYPE" 
Ee 20180 PRINT "NEW OR CORRECTED 

DATA, THEN MOVE THE" 
31 20190 PRINT "MOUSE CURSOR TO 

'DONE' IN THE MENU" 
4( 20200 PRINT "BELOW AND PRESS 

THE MOUSE BUTTON TO" 
(4 20210 PRINT "ACCEPT THE ENTRI 

ES ABOVE. " 
D9 20220 PRINT D«"IN#"S0 
D3 20230 BOTO 10150 
90 29999 REM #30000 



II 30000 REM 

26 30010 REM EXAMPLE 

2B 30020 REM 

ftl 30030 Yl - 4: B03UB 63050: NF» 

- A» 

2C 30040 Yl - Si GOSUB 63050: NL« 

- A» 

91 30050 Yl - 6: QOSUB 63050: AD» 

- A« 

IC 30060 Yl > 7: QOSUB 63050: CI* 

- A* 

E9 30070 Yl - 8: QOSUB 630501 ST* 

- A* 

11 30080 Yl - 9: QOSUB 63050: Z I* 

- A* 

17 30090 Yl - 10: QOSUB 63050: TE 

• - A« 
2E 30100 REM BO TO REMAINDER OF 

YOUR PROGRAM 
IC 30110 REM FOR EXAMPLE ... 
36 30120 HOME 
5E 30130 VTAB 10 
EE 30140 PRINT NF«" "NL» 
38 30150 PRINT AD* 
I» 30160 PRINT CI»", "ST«" "ZI* 
K 30170 PRINT TE* 
C* 30180 CALL - 198: CALL - 198 
89 30190 END s REM END OF EXAMPL 

E 
n 62999 REM #63000 
24 63000 REM 
2C 63010 REM SUBROUTINE TO "READ 

M 

IF 63020 REM STRINGS FROM THE 

!3 63030 REM VIDEO BUFFER 

44 63040 REM 

IF 63050 VTAB 24: FLASH t PRINT 

" WORKINQ . . . 

"|: NO 

RMAL » VTAB It HTAB 1 
C9 63060 A* " "" 
FC 63070 REM CALCULATE V0 
55 63080 REM (VIDEO BUFFER ADDRE 

SS) 
M 63090 V0 - 1037 + 128 « (Yl - 
1) 

12 63100 IF Yl > 8 TKEN V0 - V0 

- 984 
44 63110 IF Yl > 16 THEN V0 - V0 

- 984 

2F 63120 FDR 1 - 1 TO 23 

67 63130 C0 - PEEK (V0 + I) 

DB 63140 IF C0 - 160 AND PEEK (V 

+ I -f 1) > 160 THEN 6 

31901 REM END IF TWO BL 

ANKS 
F9 63160 IF C0 > 128 THEN C0 " C 

- 128 
FS 63170 A* •< A* -f CHR* (C0) 
D3 63180 NEXT I 

C2 63190 IF RIGHT* <A*,1) « CHR* 
(32) THEN A* - LEFT* ( 

A«, LEN (A*) - 1)1 BOTO 
631901 REM REMOVE TRftI 

LINQ BLANKS 
66 63200 RETURN 



Program 2. Sample Screen 
Maker 

51 10 D* - CHR* (4) 

17 20 PRINT D»"OPEN TEXT" 

EF 30 PRINT D»"WRITE TEXT" 

EA 40 PRINT "COMPUTE!" 

8! 50 PRINT "REEDER SERVICE" 

Fl 60 PRINT "P.O. BOX 10958" 

E3 70 PRINT "DES MOINES" 

ca 80 PRINT "lA" 

FC 90 PRINT "50950" 

£9 100 PRINT "1-B00-346-6767" 

CC 110 PRINT D«"CLOSE TEXT" 



March 1986 COMPUTE! 101 



Atari BootStuffer 



This short, handy program for all 
eight-bit Atari computers lets you 
store as many as ten boot programs on 
a single disk and execute any of the 
programs just by pressing one key. A 
disk drive is required. 



If you're like many Atari computer 
users, you probably have a number 
of disks that contain nothing but a 
single boot program. Even if you 
don't mind the expense of storing 
only one program per disk, that's 
not a very efficient arrangement. 
"Atari BootStuffer" allovk's you to 
put as many as ten boot programs 
on a single disk (depending on how 
long each program is), and still use 
each program as if it weve alone on 
the disk. 

Type in Atari BootStuffer from 
the listing below, and save it. As 
listed here, the program works on 
an Atari 800 with an 810 disk drive. 
If you have an XL or XE model, 
change the numbers in line 750 as 
shown in the REM in line 740. If 
you have a 1050 disk drive with 
DOS 2.5 or 3.0 and wish to use 
enhanced-density, change lines 
1140, 1170, 1300 and 1340 as indi- 
cated in the REM lines in the pro- 
gram listing. Changing those lines 
gives you 1040 sectors per disk (of 
course, this is not possible on an 
810 disk drive, which doesn't sup- 
port enhanced-density). 

Creating A BootStuffer 
Disk 

Before running Atari BootStuffer, 
format a disk to be used as the 
special BootStuffer disk. Now run 
the program and insert the freshly 
formatted disk in the drive. When 
you press the space bar, the screen 
turns green and the drive spins for 



Randy Boyd 

about one minute. When the screen 
turns red, the special disk is ready 
to use. Reboot the system: The 
computer loads and executes a ma- 
chine language program which lets 
you use the BootStuffer disk. When 
the prompt appears, you can press 
S to save a program on the disk or 
press L to load and run a program. 

Since you just formatted the 
disk, it doesn't yet contain any pro- 
grams you can load. Press S to 
choose the save option. The pro- 
gram indicates how many sectors 
are free in the current block and 
asks whether you want to load the 
target program from disk (press D) 
or cassette (press C). From that 
point onward, simply follow the 
prompts on the screen: The target 
program is loaded into memory and 
saved on the boot disk, I: a load 
error occurs, the screen flashes red 
and the program starts over again. 
By repeating this process, you can 
save as many as ten boot programs 
on one disk (of course, the number 
of programs you can fit on one disk 
depends on how long they are). 

BootStuffer prepares the disk 
by dividing it into ten blocks num- 
bered 0-9, each containing 255 sec- 
tors. Since it uses the operating 
system boot routines, this program 
is not able to read sectors 256, 512, 
768 or 1024, The BootStuffer code 
occupies the 13 lowest-numbered 
sectors on the disk, so a single- 
density disk can store programs 
only in sectors 13-255, 257-511 
and 513-720. An enhanced-density 
disk with 1040 sectors can use all of 
the single- density sectors plus sec- 
tors 513-767, 769-1023 and 1025- 
1040. 

It's important that you arrange 
the boot programs to fit into the 
BootStuffer disk without wasting 



too many sectors. The program tells 
you how many sectors are left in 
the current block, and how many 
sectors are in the program you're 
trying to save. If a program is too 
large to fit in the current block, 
BootStuffer prompts you to save a 
smaller program in that block. If 
you don't have a smaller program, 
you can press N to advance to the 
next block. However, skipping to 
the next block wastes the free sec- 
tors remaining in the last block. If 
you try to save a program that re- 
quires more space than is left on the 
disk, BootStuffer generates a DISK 
FULL message and permits you to 
save a smaller program in the same 
space. 

When you name a program to 
be saved on the disk, make sure the 
name is ten characters or less. Once 
you have saved as many programs 
as you want, put the BootStuffer 
disk in the drive and reboot the 
system, then press L to choose the 
load option. The contents of all ten 
blocks are displayed, and you're 
prompted to choose which program 
you want to execute. Press a num- 
ber key from 0-9: The program in 
that block automatically loads from 
disk and executes. Blocks that don't 
contain a program are marked as 
empty. Don't select an empty block 
from the load menu; You may cause 
the system to crash. 



Atari BootStuffer 

For instructions on entering this listing, please 
refer to "COMPUTE !'s Guide to Typing In 
Programs" published in this issue of computei. 

(L 50(B FOR X-163e4 TO 179201 
POKE X,0iNEXT X 

SASlfl ? "PLftCE FORMATTED DI 
SK IN DRIVE" 

EM S20 ? "PRESS SPACE BAR"i? 
I? ■'■'LEASE WAITB" 



102 COMPUTEI March 1986 



>H 530 

OAS40 

U5S0 

AI 560 
BP 570 
IK 5B0 
LB 590 

U &00 

eo 610 

IH 620 
LC 630 

CI 634 

LO 636 

0E63B 

HI 640 

a 630 

JB 660 
n670 
JO 680 
EC 690 

11)700 
JK 710 

LI 720 
IE 730 



IF PEEK{7 
GOTO S30 
ST-1536:P 
POKE 712, 
READ j! IF 
OTO 380 
POKE 3T,J 
SOTO 5S0 
ST"163B4 
READ J: IF 
OTQ 620 
POKE ST, J 
aOTD 390 
X-USR(153 
7 :7 sPRI 
KE 712,64 
? "PRESS 
R ANOTHER 
POKE 764, 
764)-2SS 
IF PEEK(7 
QQTD 620 
END 

REM ttt D 
ttttttt 



64) -233 THEN 

DKE 710, 192: 
192 
J--1 THEN G 

:3T-gT+l 



J"-2 THEN S 

sST-ST+l 

6) 

NT "DONE":PQ 
iPQKE 710,64 
SPACE BAR FO 

COPY" 
235: IF PEEK ( 
THEN 636 
64>"33 THEN 

ISK SAVER «t 



DATA 
,3, 1 
9, 1, 
DATA 
0,3, 
9,12 
DATA 
40, 1 
1,5, 
DATA 
241, 
83,2 
45 

DATA 
REM 
«**« 
DATA 
.34, 
,0,1 
DATA 
7,23 
15 



104, 16 
33,240, 
141,1,3 

10,3, 1 
169,87, 
, 133,24 

64, 133 
41,4,3, 
3,24, 16 

12B, 13 
103,0, 1 
2B,238, 



9,0, 

141 , 

., 141 

69, 4 

141 , 

S, 16 

,241 

165, 

p5,24 

;3,24 

33, 2 

10, 3 



141, 1 1 
4,3, 16 

9, 141, 
2, 3, 16 
9 

. 165,2 
241, 14 
0, 105 
0, 165, 
41,32, 
, 198,2 



20 
*»* 
**« 

67 
6,1 
43, 

20 
0,2 
208 



8,223,96,-1 
. BOQTSTUFFER * 
t 

MZ, 0,6, 6, 6, 76 
162, 0, 160,0, 169 
,231 

90, 192,0,208,24 
IS2, 165,252,201 
3,237,76 



E VERS. 

"S 177 



,15, ZBU, Z-i/ , fb 

REM FDR XL/XE VEI 

C4 SPACES>THIS IL .. . 

,197 

DATA 247,242 

iTA 0, 169, 35, 133,251 
69, 6, 133, 252, 169, 19 
i i 1 _ '>aa 'y 1 A 1 1 OQ "J 



CB 810 



CH 820 



KB 830 



LH 840 



IB 850 




EK 1 120 



DATA 2 

10, 3,32, 145, 8,96 

, 10, 3, 201 
REM FDR ENHANCED 
SITY CHANGE LINE 
TO DATA 16 
DATA 208 

DATA 208, 12, 173, 1 
,201 

REM FOR ENHANCED 
SITY CHANGE LINE 
a TO DATA 4 
DATA 2 

62,2 



238, 

173 

DEN 
114 



DEN 
117 




March 1966 COMPUra 103 



IK 1400 DATA 227, 198, 253,208 
,250, 96, 1A5, 223, 32,2 
4S,8, 165,226,32,245, 
B, 165 

BP1410 DATA 227,32,243,8,16 



AF 1420 



FB 1.430 




lU 1520 



CO 1S30 



DP 1540 



KE 1350 



KD 1S60 



NP 1370 



BB 13B0 



CP 1590 



FN 1600 



LA 1610 




U 1620 



206, 1 

2 



DATA 21 
, 193,21 

, 161, i; 

, 68, 32 
m 1630 DATA 7'i 



55,20B 

10,207, 199, 210 
05, 173,207, 235 
55, 76,41,79,65 



BK 1640 



HB 1630 



K 1660 



LO 1670 



m 1680 



lU 1690 



1700 



IIP 1710 



HJ 1720 



IL 1730 



'9,82,32,83,41, 
69, 32,63, 155,6 
>5, 83,83,32 
.9, 82,32,68,41, 
, 75, 32,63, 155,4 
197,77,80,84 
39,32,32,32,32, 
,48,32,49,46, 19 
80,84,09,32 
32,32,32,32,32, 
, 50, 46, 197, 77,8 
89,32,32,32 
32,32,32,30,32, 
, 197,77,80, B4,8 
32,32,32,32 
32,31 , 32, 52,46, 
-7 a a DA no T"?.T 



65, 86, i 

7, 41, 6: 

DATA 71 

73,83, 

8,46, 1' 

DATA 8' . 

32,32, 48,32, 49 

7,77,88 "" 

DATA 3: 

49,32, 

0, B4,8 




This Publication 
is available in 
Microform. 




University Microfilms 
International 



PICiK send idditional infiifmiilKin 

fc« 

N>inc 



tnsliluliori— 

Sireet 

Ci[> 

Smc 



3Ca Niinh Zab Road 

DrpI PR. 

Am ArtMii. Mt JKIOti 



.i,p_ 



Save Your Copies of COMPUTE! 

Protect your back issues of COMPUTE! 
in durable binders or library cases. 
Each binder or case is custom-made 
in flag-blue binding with embossed 
white lettering. Each holds a year of 
COMPUTE!. Order several and keep 
your issues of COMPUTE! neatly or- 
ganized for quick reference. 
(These binders make great 
gifts, too!) 




Cases: 

$6.95 each; 
3 for $20.00; 
6 for S36.00 



Binders 

$8.50 each; 
3 for S24.75; 
6 for $48.00 



(Please add S2.5a per unit for orders 
outside the U.S.) 

Send in your prepaid order with the 
attached coupon 



Mail to: Jesse Jones Industries, P.O. Sox 5120, 

Dept. Code COTE, Philadelphia, PA 19141 

Please send me COMPUTE! D cases D binders. 

Enclosed is my check or money order for $ (U.S. funds 

only.) 

Name 



Address 

City 

State _ 



Zip. 



SQtislQction guaranteed or money refunded 
Piease allow 4-6 weeks for delivery 



104 COMPUTE! March 1986 



Requester Windows 
In Amiga BASIC 



Tom R. Halfhill. Editor 



Here's how to add your own custom 
requester loindows to any Amiga 
BASIC program. Like dialog boxes on 
the Macintosh, recjuesier windows 
allow your programs to flag errors or 
request confirmation before carrying 
out important functions. The routine 
is written for Microsoft Amiga BASIC, 
which is now being shipped in place 
of MetaComCo ABasiC and is avail- 
able as an upgrade to early Amiga 
owners. 

Amiga BASIC is the most powerful 
BASIC interpreter supplied with 
any personal computer on the mar- 
ket. Written by Microsoft, it com- 
bines in a single language almost 
every feature found in IBM PC Ad- 
vanced BASIC plus Microsoft 
BASIC for the Macintosh. In fact, 
many IBM BASICA and Macintosh 
BASIC programs will run on the 
Amiga with minor modifications. 

However, Amiga BASIC does 
lack two key statements found in 
Macintosh BASIC: DIALOG and 
BUTTON. Both are important for 
writing BASIC programs which re- 
tain the mouse-and-window user 
interface common to the Macintosh 
and Amiga Workbench. Fortunate- 
ly, both commands can be simulat- 
ed fairly easily with Amiga BASIC'S 
WINDOW and MOUSE statements. 



In Macintosh BASIC, the DIA- 
LOG command lets a program open 
a dialog box (a small window) like 
those displayed by the Macintosh's 
operating system whenever the 
user must choose between two or 
more options. Dialog boxes also 
flag errors and alert users when 
they're about to activate a function 
that has irreversible conse- 
quences — such as quitting a pro- 
gram without saving the data on 
disk. For example, if the user pulls 
down a menu and selects Quit, a 
dialog box might open up and ask, 
"Quit program? (Data file not 
saved.)" Below this message is 
usually a pair of small boxes or 
circles called buttons which might 
be labeled OK and CANCEL. 
Pointing and clicking the mouse on 
the OK button exits the program; 
pointing and clicking on the CAN- 
CEL button cancels the Quit func- 
tion and returns to the main 
program so the user can save his 
data if desired. 

In Amiga BASIC, the DIALOG 
and BUTTON commands must be 
simulated by a routine that uses the 
WINDOW and MOUSE state- 
ments. For greater convenience, the 
routine can be written as a subpro- 
gram, another advanced feature in- 
cluded in Amiga BASIC. Sub- 



programs are similar to 
subroutines, except they can have 
local variables. These are variables 
which are independent of the main 
program. For instance, if your main 
program uses a variable X for some 
purpose, a subprogram can also use 
a variable named X and it is treated 
as a separate variable. If the subpro- 
gram changes the value of its vari- 
able X, the main program's variable 
X is unaffected, and vice versa. On 
the other hand, a subprogram can 
also specify shared variables, some- 
times known as global variables — 
those which are common to both 
the subprogram and the main 
program. 

A major advantage of subpro- 
grams is that you can build up a 
library of useful routines on disk 
and add them to any new programs 
you write. This saves you the trou- 
ble of writing the same subpro- 
grams again and again. Although 
you can do the same thing with 
ordinary BASIC subroutines, 
there's always the chance that a 
subroutine variable might conflict 
with an identically named variable 
in your main program. Since sub- 
program variables are local, you're 
freed from this worry. Subpro- 
grams are truly programs within a 
program. 



March 1986 COMPUTEI 105 



The Requester Subprogram 

On the Amiga, dialog boxes are 
called requesters. Probably the most 
frequently encountered requester is 
the one that pops up when the 
Amiga asks you to insert a different 
disk. For the sake of consistency, an 
Amiga requester generally appears 
as a small window in the upper-left 
comer of the screen, has a title bar 
labeled System Request, has two or 
three buttons, does not have a re- 
sizing gadget or close gadget, and 
cannot be moved elsewhere on the 
screen. 

The "Requester Window Sub- 
program" listed below duplicates 
most of these features. It creates a 
window that appears in the upper- 
left comer of the screen (or up to 
the full width of the screen in low- 
resolution modes); the window has 
a title bar labeled Program Request 



(to distinguish it from System Re- 
quest windows); there is no resizing 
gadget or close gadget; and the 
window cannot be moved else- 
where on the screen. Unlike system 
requesters, this requester always 
displays two buttons, and they're 
always labeled OK and CANCEL, 
The subprogram lets you dis- 
play one or two lines of your own 
text in the Program Request win- 
dow. The maximum number of 
characters allowed in each line de- 
pends on whether the Amiga has 
been set for 60- or 80-column text 
with the Preferences tool. If Prefer- 
ences is set for 60 columns, each 
requester line can be up to 3 1 char- 
acters long. If Preferences is set for 
80 columns, each line can be up to 
39 characters, (You can adjust the 
subprogram for either mode by 
changing a single program state- 



Requester Window Subprogram 

HequeeterSub: 
SUB Requester STATIC 
SHABED requeetlS.requestSt, answer:' Glotal variables. 
' Add screen parameter if needed to next line. 
WIHUOW 2,"Program Hequest",(0,0)-C311,46),16 
' Following lines truncate prompts if too long. 
' If Preferences Is set for 60 columns, 
' use niaxwidtli=IN'TCWIMDOW(2)/10) for next line; 
' otherwise use maxwidtli = IlsrTCWlHT)OW(2)/8). 
maxwldth -INT(WINDOW(2)/10) 
request I $ = LEFT6(Teque8tl $ , maxwldth) 
requestSS = LEFTS(reque8t2$ ,maxwidtli) 
PRINT requ8StlJ:PRIKrT requaat2t 
' This section draws buttons. 
LINE {12,20)-C50,38),l,b 
LINE (ie2,20)-(228,38),l,b 
LOCATE 4,1:PRINT PTAB(20);"OK"; 
PRINT PTAB(160);"CAI]'CEL" 
' This section gets input. 
reqSoop: 
WHILE MOtrSE(0) = 0:WEND:' Wait for button click, 
ml = M0USECI):m2 =■ M0USE(2) 

IF ml>12 AMD mi<S0 AND m2>20 AND m2<38 THEN 
anBwer=l:' OK was selected. 
LINE (12,30)-(60.38),I,bf:' Flash OK box. 
WHILE MOUSK(0)<>0;WEND:' Walt for button release. 
WINDOW CLOSE 2:EXIT SUB 
ELSE 
IF ml>152 AND ml<228 AND in2>20 AND in2<38 THEN 
answer = 0:' CANCEL was selected, 
LINE (IB2,S0)-(228,38),l,bf:' Flash CANCEL box. 
WHILE MOUSE(0)<>0:WEND;' Wait for button release. 
WINDOW CLOSE 2;EXIT SUB 
ELSE 

GOTO reqloop 
END IF 
END IF 
GOTO reqloop 
END SUB 






[^ 



A short subprogram lets you quickly and 

easily add custom requester windows io 
your awn Amiga BASIC programs. 



ment; see the remarks in the list- 
ing.) If you try to display a line of 
text which exceeds these limits, the 
subprogram leaves off the extra 
characters. Since you won't know 
how Preferences is set if you're 
writing programs that might be 
used by other people, it's safest to 
assume 60 columns and restrict 
each line of your message to 31 
characters. 

Opening a Program Request 
window is this simple: 

reque9tl$-="This is the Hrsl line," 
reque9t2S="This is the second line," 
CALL Requester 

The two lines of your message 
are defined in the string variables 
requestl$ and recjuest2$, and the 
CALL statement runs the subpro- 
gram (similar to GOSUB). The sub- 
program opens the requester 
window and waits for the user to 
click on the OK or CANCEL button. 
Clicks outside the buttons are ig- 
nored, although a click outside the 
requester window itself deselects it 
as the active window. It can be 
reselected, of course, by clicking 
within the window. 

If the user clicks on OK, the 
subprogram returns a value of 1 in 
the variable answer. If the user 
clicks on CANCEL, answer equals 
0. In either case, the subprogram 
closes the requester window after 
the button click and passes control 
back to the line following the CALL 
Requester statement. By testing an- 
swer, your program can branch to 
different routines to handle the us- 
er's response as required. 

Hints For Use 

Here's an example. Suppose your 
BASIC program sets up a Project 



106 COMPOra March 1986 



menu with a Quit selection (a con- 
sistent feature in Amiga software). 
When your MENU statement de- 
tects that Quit has been selected, it 
can G06UB Quit: 

Quit: 
MENU OFF:CLS 
reque8tl$="Quit program?" 
request2$="(OK exits to Workbench or 

CLI.Y' 
CALL Requester 
IF answer =0 THEN RETURN 
SYSTEM 

If the user selects Quit by acci- 
dent or changes his mind, he can 
click on CANCEL and no harm is 
done — the Quit routine merely RE- 
TURNS. Otherwise, a click on OK 
stops the program and exits BASIC 
with the SYSTEM command. Of 
course, you could also include a 
check to see if any data created with 
the program has been saved, and if 
necessary prompt the user to save it 
before quitting. 

There are only two more de- 
tails to keep in mind when using 
the requester routine. First, the 
WINDOW statement near the be- 
ginning of the subprogram opens 
WINDOW 2. If there's a chance 
that your program might already 
have two or more windows open 
when the requester is called, 
change this statement to WINDOW 
3, or WINDOW 4, or whatever is 
necessary to avoid a conflict. 

Second, the WINDOW state- 
ment defaults to the primary 
(Workbench) screen. That means 
the requester window always pops 
up on the primary screen. If your 
main program creates a secondary 
screen with the SCREEN statement, 
you'll want the requester window 
to appear on that screen instead of 
the primary screen. Otherwise, the 
requester will be invisible. To make 
the requester window appear on 
your program's secondary screen, 
append the screen's number to the 
WINDOW statement. 

For instance, if your program 
creates a secondary screen vrith a 
statement such as this: 
SCREEN 1,320,200,1,1 

change the WINDOW statement in 
the requester subprogram as 
follows: 

WINDOW 2,'Trograin Reque8t",(0,0)- 
(311,45),16,1 

This makes sure the requester will 
be visible. @ 



Softkeys 

For 

Atari BASIC 



Raymond Citok 



This labor-saving utility adds auto- 
matic line numbering and 19 prepro- 
grammed "soft" keys to your Atari 
computer. Even better, the soft key 
assignments are compatible with 
coMPUTEi's "Automatic Proofread- 
er." For any Atari 400/800, XL, or XE 
computer with at least 48K RAM. 



If you write your own BASIC pro- 
grams or enter the programs listed 
in COMPUTE!, you'll welcome any 
utility that cuts down on your typ- 
ing time. "Softkeys For Atari 
BASIC" does exactly that — it gives 
you automatic line numbering and 
19 preprogrammed soft keys that 
enter an entire BASIC word with 
just one keystroke. And there are 
two extra soft keys you can pro- 
gram for your own use. 

Type in the program below 
and save it on disk or tape before 
running it for the first time. If you 
plan to use it along with the "Auto- 
matic Proofreader" to type in a 
COMPUTE! program, you should 
load and run Automatic Proofread- 
er at this point. {Of course, this 



program works on its own, even if 
you're not using the Proofreader; 
but when the two are used togeth- 
er, you must install the Proofreader 
first.) 

Now load and run the Softkeys 
program. It begins by asking you 
for the starting line number of the 
program you'll be typing in. Enter 
that number and press RETURN. 
Now you're asked to enter the in- 
crement (how much the line num- 
ber increases between one line and 
the next). Most programs published 
in COMPUTE! are numbered in incre- 
ments of ten, but you should al- 
ways check the program listing to 
make sure. This number can be 
changed if the listing later changes 
to a different increment or skips 
some line numbers. 

Automatic Line Numbering 

After you enter this information, 
Softkeys installs its machine lan- 
guage portion in memory, deletes 
its BASIC portion, and leaves the 
computer ready for you to use. On 
the line below the READY prompt 
you'll see the first line number fol- 
lowed by a space. Type in the first 
line from the program listing, then 



March 1986 COMPUTE! 107 



press RETURN to enter it in memo- 
ry. The computer automatically 
prints the next line number and 
waits for you to enter the next line. 

If the computer detects an error 
in the line, it prints the line again 
and shows where the error oc- 
curred. To retype the line, simply 
press SHIFT-DELETE, type in the 
correct line number and reenter the 
line. If you prefer, you can move 
the cursor back to the old line as 
usual correct it, and press RETURN 
again. Just as in normal screen edit- 
ing, the cursor can be anywhere on 
the line when you press RETURN. 

The SHIFT-DELETE key com- 
bination also lets you perform sev- 
eral other tasks. If the program 
listing skips line numbers, press 
SHIFT-DELETE, then enter the 
new line number and continue typ- 
ing as before. You can also use 
SHIFT-DELETE to enter any 
BASIC command from direct mode. 
For example, you may want to con- 
tinue typing a program that you've 
partially entered and saved. Run 
Softkeys and answer the prompts 
as you did when you began typing 
the program. When the READY 
prompt comes back, press SHIFT- 
DELETE, then enter the command 
you would ordinarily use to load 
the program. After the program 
loads, the computer finds the last 
line number used in the program 
and automatically continues num- 
bering from that point. 

If you press SHIFT-DELETE 
and then change your mind, press 
RETURN without typing anything 
else: The correct line number 
reappears. 

At times you'll need to change 
the line number increment midway 
through the program. To do this, 
press BREAK to disable Softkeys, 
then enter a USR statement in this 
format: 
U=USR(39300,Hne number, increment) 

The increment parameter speci- 
fies the desired new increment val- 
ue, which takes effect after the next 
line is entered. The line number pa- 
rameter must be included, but it has 
no effect. The program continues 
v«th the line number in use before 
the USR. For example, if you've 
been numbering lines by tens until 
you reach line 500 and wish to 
switch to increments of five, get a 
blank line by pressing SHIFT-DE- 



LETE when the computer prints 
500, then enter the statement 
U = USR(39300,100,5). After this, 
the prompt for line 500 returns, but 
the next line number is 505. 

Softkey Assignments 

A softkey is a preprogrammed key 
combination that lets you print a 
complete BASIC command with a 
single keystroke. This program cre- 
ates a number of softkeys that let 
you enter commonly used com- 
mands quickly and easily. The soft- 
keys are all entered by pressing 
CTRL along with another key. The 
accompanying table lists all of the 
built-in softkeys. 

When Softkeys is active, you 
can enter any of the 19 keywords 
shown in the table by pressing 
CTRL along with the indicated key. 
If you press CTRL-F, the computer 
prints FOR, and so on. This saves 
typing time and helps eliminate 
errors (the computer never types 
PRIMT instead of PRINT, for ex- 
ample). Note that STRIG and 
STICK both include a left 
parenthesis. 



Atari Softkeys 


Softkey 


Command 


CTRL-A 


GRAPHICS 


CTRL-C 


COLOR 


CTRL-D 


DATA 


CTRL-E 


PEEK 


CTRL-F 


FOR 


CTRL-G 


GOTO 


CTRL-I 


INPUT 


CTRL-K 


STICK! 


CTRL-L 


LOCATE 


CTRL-N 


NEXT 


CTRL-O 


POKE 


CTRL-P 


POSITION 


CTRL-R 


READ 


CTRL-S 


SOUND 


CTRL-T 


STRIG( 


CTRL-U 


GOSUB 


CTRL-W 


DRAWTO 


CTRL-7 


PRINT 


CTRL-RETURN 


RETURN 



Though 19 softkeys are built 
into the program, you can add two 
more of your own. To do this, you'll 
need to supply new values in the 
DATA statements in lines 1100 and 
1180. Each line contains 10 values. 
The first value is the keyscan code 
generated when you press a key. 
Before you can program your own 
softkey, you need to know the 
keyscan code for the key combina- 
tion you want to use. 



For example, let's say you want 
to program the CTRL-V key combi- 
nation to print the keyword SAVE 
followed by a quotation mark 
(SAVE"). To find the keyscan code 
for the CTRL-V combination (or 
any key combination), type the fol- 
lowing statements in direct mode 
(without a line number) and press 
RETURN: 

FOR J = l TO 1E9:PR1NT PEEK(764) 
:NEXT J 

The computer prints the key- 
scan code for whatever key or key 
combination is currently pressed. 
Try pressing different keys to see 
the numbers change. The number 
that appears when you press the 
desired combination is the keyscan 
code you need to use. In this case 
CTRL-V generates the keyscan val- 
ue 144, so you should replace the 
first value in line 1100 with 144. 

Encoding The Softkey 

The next nine values in line 1100 
represent the ATASCII values of 
the characters the computer should 
print when you press the designat- 
ed softkey. The ATASCII values for 
the SAVE" character sequence are 
83, 65, 86, 45, 34. Including the 
keyscan code, that comes to 6 val- 
ues: Since you don't need the last 
four values in that line, make them 
all zeros (this DATA statement 
must have exactly ten values, even 
if you don't need to use all ten). 
When you're finished, line 1100 
should look like this: 
1100 DATA 144,83,65,86,45,34,0,0,0,0 

To use your new softkey, sim- 
ply rerun the program and try it 
out. By repeating the process, you 
can change line 1180 to add anoth- 
er, giving you a total of 2 1 softkeys. 
When programming a new softkey, 
note that you must include a space 
(character 32) if you want the cur- 
sor to move right one space after 
printing a keyword. 

Occasionally, a program re- 
quires you to type in a character 
that requires a CTRL-key combina- 
tion already used by Softkeys. Dis- 
able Softkeys by pressing BREAK, 
then enter the line. After that's 
done, you can reactivate the utility 
with a USR command as described 
above. 

The machine language portion 
of this program resides in high 
memory just below the display hst 



108 COMPUTEI March 1986 



in GRAPHICS 0. Use caution if you 
run a program and later issue the 
USR command to activate this utili- 
ty. If the previous program used 
high memory for any purpose, the 
computer may crash. 

Once you're satisfied with all 
the softkey assignments, you may 
want to convert the machine lan- 
guage portion of this program to a 
binary object file on disk. To do 
this, first run the BASIC portion, 
exit to DOS, select the Binary Save 
option, and save memory from 
$9984-$9BFl. 

Softkeys For Atari BASfC 

For instructions on entering this listing, pleoso 
refer to "COMPUTEI's Guide to Typing In 
Progfams" in this issue of compute!. 

BI 10 DIM A»(3):? CHR»(125): 
7 t? "POKING DATA. . . P 
LEASE WAIT" 
PE 20 FOR J-39300 TD 39921:R 

EAD AiPOKE J.AiNEXT J 
11130 ? CHR»{125) 
Cn 40 TRAP 40:POSITION 2,2;? 

"WHAT LINE NUMBER TO 
START WITH"; : INPUT LN 
LH 50 TRAP 50:POSITION 2,4:? 

"WHAT INCREMENT"; : INP 
UT INC 
(E i0 IF LN>=t32767 OR INO-3 

2767 THEN 30 
U 70 IF INC<-0 OR LN<0 THEN 

30 
fiP B0 TRAP 40000:? CHR»(125) 

:? 
FO 90 IF PEEK<1614)»93 AND P 
EEK(I615)»A THEN A»-"fl 
RE": GOTO 110 
BJ 100 A»-"IS":60TQ 120 
US 110 ? "THE AUTOMATIC PROD 

FREADER PROGRAM AND" 
P« 120 ? "THE AUTONUMBER PRO 

SRAM WITH ";CHR»(34) ; 

"S0FT";CHR»<34) 
IIP 130 7 "KEYS ";A«;" NOW RE 

ADY FOR YOUR INPUT. " 
01 140 7 "USE ■ = l ; l ^:r« TO DIS 

ABLE THE PROGRAM. " 
116 150 7 "USE U»USR(39300, In 

, inO TO ENABLE. " 
BB 160 U-USR(39300,LN, INC) :N 

EW 
!1 170 DATA 104,104,141,223, 

153, 104 
BE 100 DATA 14 1,222,133,104, 

141 , 221 
KB 190 DATA 153,104,141,220, 

153, 173 
fJ 200 DATA 36,2,133,208,173 

,37 
FJ210 DATA 2,133,209,169,5, 

133 
FN 220 DATA 194,133,206,173, 

8,2 
FJ 230 DATA 14 1,233,154,173, 

9,2 
CI 240 DATA 141,234,154,169, 

193, 141 
ft/* 2S0 DATA 8,2,169,154,141, 

9 
Fn 260 DATA 2,174,6,228,232,. 

142 
(11270 DATA 188,154,174,7,22 

8, 142 



M 280 DATA 189,154,169,224, 

141,54 
CQ290 DATA 2,169,153,141,55 

.2 
FK300 DATA 160,3,162,154,16 

9,7 
nF310 DATA 32,92,228,96,0,0 
FI 320 DATA 0,0,164,208,166, 

209 
61:330 DATA 169,7,32,92,228, 

173 
Flt340 DATA 233,154,141,8,2, 

173 
flC 350 DATA 234,154,141,9,2, 

169 
CC 360 DATA 0,133,17,141,255 

.2 
II 370 DATA 141,240,2,133,77 

, 104 
DJ 380 DATA 64,8,72,152,72,1 

38 
6J 390 DATA 72,165,85,201,2, 

208 
EII400 DATA 25,173,242,2,201 

, 12 
Jn410 DATA 208,18,169,23,22 

9,84 
JE 420 DATA 48,12,165,194,20 

1,93 
IJ430 DATA 208,6,165,206,24 

0,11 
CJ 440 DATA 198,206,104,170, 

104. 168 

JJ 450 DATA 104,40,76,98,228 

, 160 
6A 460 DATA 1,177,136,16,13, 

173 
EO470 DATA 222,153,133,212, 

173, 223 
KB 480 DATA 153,133,213,24,1 

44, 55 
CH 490 DATA 165,136,133,204, 

165, 137 
1.6500 DATA 133,205,160,1,17 

7, 204 
1(6510 DATA 48,26,136,177,20 

4, 133 
66 520 DATA 2 12,200,177,204, 

133,213 

OD530 DATA 200,177,204,24,1 

01 , 204 
i.F540 DATA 133,204,165,205, 

105, 
fC550 DATA 133,205,208,224, 

24, 165 
SJ560 DATA 212,109,220,153, 

133, 212 
CI1570 DATA 165,213,109,221, 

153, 133 
PB5B0 DATA 213,32,170,217,1 

65, 212 
LL 590 DATA 41,15,133,206,23 

0, 206 
lA 600 DATA 162,0,181,213,41 

, 240 
PC610 DATA 208,4,224,0,240, 

9 
HP 620 DATA 74,74,74,74,9,48 
LP 630 DATA 32,183,154,181,2 

13,41 
16 640 DATA 13,9,48,32,183,1 

54 
CK650 DATA 232,228,206,208, 

223. 169 

6K660 DATA 32,32,183,154,16 

9,5 
«1 670 DATA 133,194,133,206, 

76, 40 
NP6B0 DATA 154,168,138,72,1 

52, 32 
RJ 690 DATA 0,0,104,170,96,8 
6E 700 DATA 72,138,72,152,72 

,44 



OD710 DATA 9,210,16,22,162, 


J6720 DATA 189,16,155,205,9 

, 210 
flJ 730 DATA 240,21,160,0,232 

,200 
00 740 DATA 192,11,208,250,2 

24,231 
CI 750 DATA 208,236,104,168, 

104, 170 
PH 760 DATA 104,40,76,0,0,23 

2 
6J 770 DATA 189,16,155,240,6 

,32 
PH 780 DATA 183,134,24,144,2 

44, 162 
IIB 790 DATA 126,142,31,208,1 

73, 1 1 
»f80a DATA 212,205,11,212,2 

40, 251 

Ojei0 DATA 202,202,16,241,1 

04, 168 

LP 820 DATA 104,170,104,40,1 

04, 64 

fA830 DATA 146,67,79,76,79, 

82 

F6 840 DATA 32,0,0,0,0,186 

HI 830 DATA 68,65,84,65,32,0 

FO 860 DATA 0,0,0,0,189,71 

KB 870 DATA 79,84,79,32,0,0 

JO 880 DATA 0,0,0,128,76,79 

HP 890 DATA 67,65,84,69,32,0 

no 900 DATA 0,0,138,80,79,83 

BE910 DATA 73,84,73,79,78,3 

2 

BC 920 DATA 0,168,82,69,65,6 

a 

OH930 DATA 32,0,0,0,0,0 
FC940 DATA 190,83,79,85,78, 

60 
FE930 DATA 32,0,0,0,0,173 
UN 960 DATA 83,84,82,73,71,4 


F6 970 DATA 0,0,0,0,141,73 
NH 980 DATA 70,80,85,84,32,0 
Jl(990 DATA 0,0,0,136,80,79 
IH 1000 DATA 75,69,32,0,0,0 
P6 1010 DATA 0,0,170,80,69,6 

9 
EJ 1020 DATA 75,40,0,0,0,0 
DO 1030 DATA 0,163,78,69,88, 

84 
BA 1040 DATA 32,0,0,0,0,0 
Hfl 1050 DATA 166,80,82,73,78 

,84 
HJ 1060 DATA 32,0,0,0,0,133 
0111070 DATA 83,84,73,67,75, 

40 
a 1000 DATA 0,0,0,0 
UN 1090 REM CHANBE NEXT 10 B 

YTES TD INSERT YDUR 

OWN "SOFT" KEY. 
(IK1100 DATA 173,83,84,82,73 

,71,40,0,0,0 
AS 1110 DATA 0, 139,71,79 
ND1120 DATA 83,85,66,32,0,0 
fi;il30 DATA 0,0,174,68,82,6 

5 
Ilhll40 DATA 87,84,79,32,0,0 
DE1150 DATA 0,140,82,69,84, 

85 
II11160 DATA 82,78,32,0,0,0 
11111170 REM CHANGE NEXT 10 B 

YTES TD INSERT YOUR 

OWN "SOFT" KEY. 
061180 DATA 168,82,69,65,60 

, 32, , 0, 0, 
HB 1 190 DATA 0,191 
DB 1200 DATA 71,82,65,80.72, 

73 
EL 1210 DATA 67,83,32,0,184, 

70 
K1220 DATA 79.82,32,0 © 



Morcti 1986 COMPUTEI 109 



BASIC Sound 
On The Atari ST 



Almost any music or sound effect can 
be created with the WAVE and 
SOUND commands in Atari SI 
BASIC. This article shows how to get 
started with ST sound and includes 
sample sound effects and a simulatea 
piano program. The article is an ex- 
cerpt from the newly released COM- 
PUTEl's ST Programmers Guide (by 
the editors 0/ compute!, $16.95). 



The Atari 5 20 ST cor\ tains a General 
Instruments sound chip that has 
three voices (sound channels) and a 
range of eight octaves. In fact, it's 
the same sound chip found in the 
MSX-standard computers sold in 
Japan and Europe. The chip's best 
feature is that it supports envelope- 
oriented sound — you can create a 
sound by defining the shape of its 
envelope. This allows considerable 
flexibility when designing sound 
effects and musical instrument 
tones. However, for programmers, 
it also requires more work than the 
SOUND command found in Atari 
BASIC for the eight-bit computers. 
There are two sound com- 
mands in ST BASIC: WAVE and 
SOUND. WAVE controls the make- 
up of the sound; 



WAVE sound type, envelope, shape, period, 
delay 

Some of these parameters re- 
quire values that toggle certain bits 
to activate certain functions. If 
you're not familiar with bit ma- 
nipulation, refer to Figure 1, The 
first step is to decide which func- 
tion(s) you want to select. Then add 
up the bit values — not the bit num- 
bers — corresponding to those func- 
tions. The resulting number is what 
you use for that particular parame- 
ter in the WAVE statement. 

For instance, the first parame- 
ter, sound type, controls whether a 
voice is set to noise, tone, or both. 
Bits 0-2, when set, turn on tone 
output for voices 1-3. Bits 3-5, 
when set, select noise output for the 
three voices. Both tone and noise 
may be turned on at the same time. 
Here are some example bit values: 

WAVE 1 — turns on tone for voice 1 
WAVE 3— turns on tone for voice 1 and 

voice 2 
WAVE 8 — turns on noise for voice 1 
WAVE 15 — turns on tone and noise for 

all three voices 

Bits 0-2 of envelope determine 
which of the three voices is con- 
trolled by the envelope generator. If 
a bit is set, its corresponding voice 



Figure 1 : Bit Values 



Bit numbers 
Bit values 



7 6 


S 


4 


3 


2 


1 






128 



I 

64 



32 



I 
16 



is controlled by the envelope 
generator. 

The third parameter, shape. 



Figure 2: Available Envelopes 



Time 
Envelope No. Envelope Shape 






10 



11 



12 



13 



14 






110 COMPUTEI March 19B6 



controls the way the sound's vol- 
ume rises and falls. Figure 2 gives 
the possible values for this parame- 
ter and shows the shape of the sub- 
sequent sound. 

Each of the envelope-shape 
drawings is a graph of volume over 
time. Take a close look at envelope 
zero and imagine what kind of 
sound it would make. The first 
thing to notice is that as soon as the 
sound begins, volume is at maxi- 
mum. As time passes, the volume 
slowly fades away until it reaches 
zero. This type of sound is made by 
a piano. The hammer hits the string 
and almost immediately the vol- 
ume reaches its maximum. The vi- 
bration of the string continues and 
slowly decays. 

As you can see from Figure 2 
envelopes 8, 10, 12, and 14 art 
repetitive. The sound continues tc 
surge and fall long after the WAVE 
command is given. 

The period parameter sets the 
period of the envelope, which is 
how fast the sound cycles. The larg- 
er the period, the longer the note 
takes to repeat. The last parameter, 
delay, controls the amount of time 
the program waits before executing 
the next BASIC command. Period is 
measured in one-fiftieth of a second 
increments, To hear a couple of in- 
teresting sound effects produced by 
WAVE, type in Program 1, "Heli- 
copter," and Program 2, "Ding." 

SOUNDing Off And On 

The other music command, 
SOUND, turns on one of the voices 
for a specified duration. Its syntax 
is: 

SOUND voice, volume, note, octave, 
duration 

Voice selects which voice you 
want to turn on (1-3). Volume can 
be any number from (off) to 15 
(loudest). Note is a number from 1 
to 12 and corresponds to the 12 
notes in a scale (C, C#, D, D#, E, F, 
F#, G, G#, A, A#, B). The octave 
ranges from 1 (lowest) to 8 (high- 
est). Duration can be any number 
from 0-65535. Each increment cor- 
responds to one-fiftieth of a second. 

Program 3, "Piano," uses the 
SOUND and WAVE commands to 
simulate a piano. Although it's in- 
tended as a sound demonstration, it 
also shows how to use other tech- 



niques, such as graphics and read- 
ing the mouse from BASIC. 

You can run Program 3 in any 
graphics mode. When the piano 
keyboard appears on the screen, 
point to any key with the mouse 
and press the mouse button. The 
corresponding note is played. 

Before typing in and running 
Program 3, you must make sure 
there's enough free memory avail- 
able in BASIC. At this vmting (mid- 
December), all 520STs were being 
shipped with the operating system 
(TOS) on disk. Later versions of the 
520ST may be shipped with TOS in 
Read Only Memory (ROM). Until 
then, however, TOS must be load- 
ed from disk into Random Access 
Memory (RAM). Because of the 
large amount of memory this re- 
quires, only a small area of storage 
remains for BASIC programs. 
When TOS and BASIC are loaded 
into a 520ST with 512K RAM, only 
about 5K is free for BASIC— 
enough for a program about 20 
lines long. To check how much 
memory is available, load BASIC 
and type PRINT FRE(O). 

Fortunately, there is a way to 
increase the amount of free memo- 
ry by 32K. Normally, when win- 
dows are manipulated, the previous 
screen is saved in memory because 
part of it may be covered by a win- 
dow and have to be restored later. 
The technique of saving the screen 
to memory is called buffered graph- 
ics. Although it can be quick and 
convenient, it requires 32K of mem- 
ory to hold the screen. 

If the buffered graphics option 
is turned off, 32K of memory is 
freed for BASIC. Click on Buf 
Graphics in the Run menu to toggle 
the buffered graphics on and off. 
This should increase free memory 
to 37986 bytes for BASIC programs. 

Building The Piano 

Let's trace through Program 3 to see 
how it works. Line 10 dimensions 
two arrays, B% and W%. These 
hold the note values of the black 
and white keys, respectively. 

Next, the subroutine DRAW- 
SCREEN is called. ST BASIC allows 
the use of labels instead of line 
numbers for many of its commands 
that need to make a reference to a 
line, like GOTO and GOSUB. 
Whenever you use a label in a line. 



make sure it is separated from the 
rest of the line with a colon. 

The DRAWSCREEN subrou- 
tine (beginning at line 150) draws 
the piano keyboard. The first com- 
mand of DRAWSCREEN sets the 
color of all screen output to black. 
Using only a single color for draw- 
ing ensures that the program wdll 
work in all graphics modes. The 
COLOR command also sets the fill 
pattern to solid. FULLW expands 
the window to full size, and 
CLEARW cleare it. 

The remaining commands of 
the DRAWSCREEN subroutine cre- 
ate the piano keyboard. Since there 
is no box drawing command in ST 
BASIC, we will simulate one using 
the LINEF command and FILL 
commands. LINEF draws a line be- 
tween any two pairs of coordinates. 
The sjmtax is: 
LINEF xcoordl, \/cooril, xcoordl, ycoordl 

Next, line 20 calls the subrou- 
tine SETARRAY, which reads the 
note values of the black and white 
keys into the integer arrays B% and 

W%. 

Reading Thie Mouse From 
BASIC 

Now that the screen is set up and 
the arrays have been initialized, it's 
time to read the position of the 
mouse and check if the mouse but- 
ton is pressed. This is done in the 
subroutine labeled READMOUSE 
at line 90. There is no BASIC com- 
mand to read the mouse, so we 
must use one of the computer's Vir- 
tual Device Interface (VDI) rou- 
tines. VDI routines are part of the 
computer's operating system. 

The procedures necessary to 
call VDI routines are beyond the 
scope of this article, but basically 
involve POKEing various parame- 
ters into certain memory locations. 
These memory locations are not ab- 
solute addresses — instead, they're 
accessed via a reserved variable in 
ST BASIC named CONTRL. The 
ST automatically assigns an address 
to this variable which corresponds 
to the entry point into the VDI. By 
POKEing values into offsets from 
this address, various VDI routines 
can be executed. 

The VDI routine for reading 
the position of the mouse and de- 
termining whether the mouse but- 



March 1 984 COMPUTE! 1 1 1 



ton is pressed has an opcode of 124, 
so we POKE CONTRL,124. We 
must tell the VDI routine that no 
other parameters are being passed, 
so two more POKEs are necessary: 
POKE CONTRL+2,0 and POKE 
CONTRL + 6,0. Now we can call 
the VDI routine to read the mouse. 

To read the horizontal and ver- 
tical position of the mouse, PEEK 
PTSOUT and PTSOUT+2, respec- 
tively. If the mouse button is 
pressed, PEEKing INTOUT will 
give a value of 1; otherwise, a zero 
is rehimed. (PTSOUT and INT- 
OUT, like CONTRL, are also re- 
served variables for accessing VDI 
routines.) 

The main loop of the piano 
program (line 30) simply wails until 
a mouse button is pressed. Once the 
button has been pressed, the verti- 
cal coordinates are checked to see if 
they are in the range of the piano 
keyboard (line 50), Then the verti- 
cal position is used to determine 
whether the key pressed is black or 
white (lines 50 and 60). If a black 
key is pressed, the note is calculated 
using the array B%; otherwise, the 
array W% is used. 

Line 70 breaks the note value 



down into note and octave and 
then, using the SOUND command, 
plays the note. 

Line 80 sets the envelope 
shape to zero. This creates a note 
with a similar shape to a piano's 
envelope. Program execution is 
then sent back to the main loop to 
check the mouse button again and 
SOUND another note when it is 
pressed. 

Program T : Helicopter 

10 for a = 1000 to 643 step -2 

20 wave 8,3,14,a 

30 for td = l lo 100:next:next 

40 for a = 643 to 1000 step 2 

SO wave 8,3,14,a 

60 for td = l lo 100;next:next 

70 sound l,0:5ound 2,0 

Program 2: Ding 

10 for a= 1 lo 12 

15 sound l,15,a,7 

20 wave 1,1,14,5,1 

30 for td = l lo 100:next:next 

40 golo 10 

Program 3: Piano 

10 dim b%(16>,w%(16) 
20 gosub DRAWSCREEN:gosub 
SETARRAY 



30 gosub READMOUSE:if button = 

fhen 30 
40 if y<70 or y>120 then 30 
50 if y<100 then n=b%((x-16)/16.25) 
60 if y>99 then n=w%((X"4)/I6.25) 
70 sound l,15 + lS*(n = 0),n-12*int((n-l) 

/12),3 + int((n-l)/12) 
80 wave l,l,0,1000a:goto 30 
90 READMOUSE; poke contrl,124 
100 poke conlrl-l-2,0:poke ccntrI-t-6,0 
110 vdisysW) 

120 X =peek(ptsout);y =peek(ptsout -(-2y 
130 button = peek(intout) 
140 return 
150 DRAWSCREEN: color 1,1,1,1,1 ;fullw 

2:clearw 2 
160 for a =50 to 100 step 50 
170 linef 2a,a,280,a;next 
180 for a = 20 to 280 step 16.25 
190 linef a,50,a,100:next 
200 for a = l to Il:read 9 
210 gosub 250aiext:retum 
220 data 32.5,48.75,81.25,97.5 
230 data 113.75,146,25,162,5 
240 data 195,211,25,227.5,260 
250 linef s,50,s,78 
260 linef s,78,9-l-8,78 
270 linef 8 + 8,78,9 + 8,50 
280 fill s + l,5I:filt s + 5,51 
290 return 
300 SETARRAY; for a=l to 16:read 

w%(a):next 
310 for a = l lo 16:read b%(a):next 
320 return 

330 data 1,3,5,6,8,10,12,13 
340 data 15,17,18,20,22,24 
350 data 25,27 
360 data 2,4,0,7,9,11,0,14,16 
370 data 0,19,21,23,0,26,0 © 




INSIGHT: Atari 



Bill Wilkinson 



Atari Character Codes 



Last month's discussion about 
where and how to place things in 
memory served as a good lead-in to 
this month's topic; character codes. 
If you've read the heftier reference 
material, including COMPUTE! 
Book's Mapping the Atari, you may 
have discovered that your eight-bit 
Atari computer actually uses three 
different types of codes to represent 
the various characters (letters, 
numbers, punctuation, graphics 
symbols) it works with. All of these 
codes assign a unique number to 
represent each character, but the 
three codes are incompatible with 
each other because they use differ- 
ent numbering schemes. 

The most commonly encoun- 
tered code is called ATASCII, which 



stands for ATari-version American 
Standard Code for Information In- 
terchange. Except for the so-called 
control characters — such as carriage 
return, tab, and so on — ATASCII is 
compatible with standard ASCII. 
(Why Atari chose to modify the stan- 
dard is anyone's guess,) ATASCII is 
the character code used by PRINT, 
INPUT, CHR$(), ASC(), and most 
external devices such as printers 
and modems. 

For example, in ATASCII (and 
ASCII), the code for uppercase A is 
65. You can verify this in BASIC: 

PRINT CHR$(65) 
or 

PRINT ASCC'A") 

Virtually every Atari BASIC 
book (even Atari's own) shows the 



character represented by each 
ATASCII code. You can also run 
Program 1 below to display each 
character and its code. (Press 
CTRL-1 to pause and continue the 
display.) 

Screen Codes 

The second character code found in 
your Atari is the keyboard code. The 
keyboard code for any character is 
actually the value read from a hard- 
ware register in memory when the 
key for that character on the key- 
board is pressed. Program 2 below 
lets you find the keyboard code for 
any character. Just for fun, try some 
of the keys or key combinations 
which don't normally produce 
characters, such as CTRL-SHIFT- 



112 COMPUTEI March 1986 



CAPS). Neat, huh? 

Finally: screen codes. This term 
refers to the byte value you must 
store in memory to display the de- 
sired character on the screen. 
"What?" you ask, "How do those 
differ from the ATASCII codes?" 
After all, to put the string BANANA 
PICKLE PUDDING on the screen, 
all it takes is a simple BASIC 
statement: 

PRINT "BANANA PICKLE PUDDING" 

And besides, aren't the charac- 
ters in quotes supposed to be 
ATASCII codes? Good questions. 
Now for some complicated 
answers. 

Actually, if the original Atari 
designers had thought just a little 
harder and added just a few more 
logic gates to the thousands already 
in the ANTIC and GTIA chips, 
ATASCII and screen codes could 
have been one and the same. It's 
siirular to the mistake of making 
ATASCII incompatible with ASCII. 
Sigh. But we're stuck with what 
we've got, so let's figure out how it 
works. 

For starters, consider GRAPH- 
ICS 1 and GRAPHICS 2, the large- 
size character modes. You may 
have noticed that in either of these 
modes you can display only 64 dif- 
ferent characters on the screen. 
Now, if you recall last month's 
demo programs, note that we can 
specify the base address of the char- 
acter set. That is, we can tell ANTIC 
where the character set starts by 
changing the contents of memory 
location 756 (which is actually a 
shadow register of the hardware lo- 
cation which does the work — see 
Mapping the Atari for more on this). 

In a sense, the ANTIC chip is 
fairly simplistic. When it finds a 
byte in memory which is supposed 
to represent a character on the 
screen, it simply adds the value of 
that byte (multiplied times eight, 
because there are eight bytes in the 
displayable form of a character) to 
the character set base address. This 
points to the memory address for 
that particular character. Ex- 
cept... well, let's get to that in a 
moment. 

Exception To The Rule 

Because we want GRAPHICS 1 and 
2 (with their limited sets of 64 dif- 
ferent characters) to display num- 



bers and uppercase letters (omitting 
lowercase letters and graphics), for 
these two modes it makes sense 
that the character set starts with the 
dot representation of the space 
character and ends with the under- 
line — codes 32 through 95, 
respectively. 

But why are these 64 charac- 
ters the only ones available in 
GRAPHICS 1 or 2? Because the up- 
per two bits of a screen byte in these 
modes are interpreted as color 
information, not as part of the char- 
acter (see the modification to Pro- 
gram 3 below). So only the lower 
six bits choose a character from the 
character set. Six bits can represent 
only 64 possible combinations, 
■which is why these modes can dis- 
play only 64 characters. Bit pattern 
000000 becomes a space, 100101 is 
an E, and 111111 becomes an un- 
derline, and so on. 

When you use GRAPHICS 
(normal text), however, there is a 
strange side effect. In this mode, 
only the single upper bit is the color 
bit (actually, it's the inverse video 
bit). This leaves 7 bits to represent a 
character, so we can have values 
from to 127 decimal (0000000 to 
1111111 binary, $00 to $7F hex). 
Again, this value — after being 
multiplied by eight — is added to 
the value of the character set base 
address. But which numbers in that 
to 127 range represent which 
characters? 

Well, we already know what 
the first 64 characters are — since 
the Atari's hardware limitations 
dictate that they must be the same 
as in modes 1 and 2. So the next 64 
are the other characters. Program 3 
illustrates how the ATASCII char- 
acter set is linked to the screen set. 
Note how all the characters are pre- 
sented twice, once in screen code 
(i.e., character ROM) order and 
once in ATASCII order. For some 
additional fun and info on modes 1 
and 2, change line 10 to GRAPH- 
ICS 1 . (Do not change it to GRAPH- 
ICS 2 unless you put a STOP in line 
65 after the first FOR-NEXT loop.) 
Do you see what I mean about the 
upper two bits being color 
information? 

Now you know why there are 
three different character codes used 
in your computer. How can you 
take advantage of this information? 



Well, if you combine this knowl- 
edge vidth the programs I presented 
last month, you could invent your 
own character set and design a 
word processor for some foreign 
language. (If you come up with a 
good Cyrillic character set, let me 
know.) 

Actually, if you own an XL or 
XE machine, you have a second 
character set already built in. Just 
add this line to Program 3: 
20 POKE 756,204 

This tells the operating system 
and ANTIC that the base of the 
character set is at $CC0O, which is 
where the international character 
set resides. Someday you might 
find some use for these characters. 
How vriU you know untU you try? 

For Instructions on entering those listings, 
please refer to "COMPUTEI's Guide to Typing 
In Programs" In this Issue of computei. 

Program 1 : ATASCII Codes 

a 10 BRAPHICS 

KK 20 FDR 1-0 TO 255SPRINT I 

1(30 IF 1-155 THEN PRINT "C 
RETURN3"lQQT0 30 

IC 40 PRINT CHR«(27) |CHR»(1) 

DN 50 NEXT I 

IIH60 REM USE CQNTROL-1 TO P 
AUSE 

Program 2: Keyboard Codes 

eC 10 DIM HEX«(16) iHEX«-"012 

34S6789ABCDEF" 
PK 20 POKE 764,253 
LL 30 KEYC0DE"PEEK<764> 
eC 40 IF KEYCaDE-2SS THEN 30 
NFSS HI-INT(KEYC0DE/16) ILOW 

-KEYCODE-li*HI 
U 60 PRINT "KEYCODE» HEX «"| 
01170 PRINT HEX«(HI + 1,HI + 1) ; 

H£X«(LaM-M,LOW-t-l) ; 
10 80 PRINT ", DEC 1 HAL ■' ; KEY 

CODE 
IIE90 aOTD 20 

Program 3: Screen Codes 

DC 10 QRAPHICS 

BP30 SCREEN-PEEK (SB) +2B6«PE 

EK(B?) 
BB40 REM FtRSTt SCREEN COD 

E ORDER 
EBS0 FOR C-0 TO 2S5iP0KE SC 

REEN+C,C 
01 60 NEXT C 
CO 70 HEM THENttS SPACE9>ATA 

sen ORDER 
m B0 SCR2-SCREEN-t-40tB 
BH 90 FOR C-0 TO 25SiCHAR-C 
HP 100 IF 0127 THEN CHAR-C- 

127 
EK110 IF CHAR<32 THEN CHAR- 

C+64iGGT0 140 
KB 120 IF CHAR>95 THEN CHAR- 

CiGOTD 140 
HE 130 CHAR-C-32 
JB 140 POKE SCR2+C,CHAR^ 
61 150 NEXT C 

BH 999 GOTO 999: REM WAIT FOR 
BREAK KEY © 



March 1966 COIHPUTEI 113 




The Beginners Page 



lom R. Holfhill. Editor 



Cutting Strings Without Scissors 



Now that we've covered the funda- 
mentals of creating string variables 
over the past few columns, we can 
start exploring some of the more 
powerful string manipulations 
available in BASIC. Practically all 
BASIC languages have commands 
and functions for slicing strings of 
characters into smaller pieces, past- 
ing two or more strings together to 
make longer strings, extracting cer- 
tain sections from within strings, 
and inserting or replacing portions 
of strings. Some B ASICs even have 
commands for rapidly searching 
through strings to find certain se- 
quences of characters. 

Since it may not be apparent 
why you'd want to do any of these 
things in your own programs, we'll 
show some common examples for 
each technique as we go along. In 
general, these functions give your 
programs the power to manipulate 
strings of characters for sorting, 
screen formatting, printing, storing 
and retrieving information, and 
other text-oriented operations. 

Slicing Up Strings 

Microsoft-style BASICs — such as 
those included with Commodore, 
Apple, IBM, Atari ST, and Amiga 
computers — generally have three 
functions for extracting shorter 
strings from longer strings: LEFTS, 
RIGHTS, and MID$ {pronounced 
"left-string," "right-string," and 
"mid-string"). TI BASIC has only 
one string function, SEG$, which is 
very similar to MID$. Atari BASIC, 
found on the 400/800, XL, and XE 
computers, handles string manipu- 
lations quite differently, as we'll see 
next month. 

LEFTS and RIGHTS are easy to 
visualize: They extract characters 
from the leftmost and rightmost 
sections of a character string, re- 
spectively. You simply follow the 
keyword with the string variable 
you're extracting from and the 
number of characters you want to 



extract. For example: 

10 A$= "GEORGE WASHINGTON 

CARVER" 
20 PRINT AS 
30 B$ = LEFT$<A$,6» 
40 PRINT B$ 
50 B$ = RIGHT$(A$,6) 
60 PRINT B$ 
70 PRINT AS 

When you type RUN, you should 
see this on the screen: 

GEORGE WASHINGTON CARVER 

GEORGE 

CARVER 

GEORGE WASHINGTON CARVER 

To see how LEFTS works, look 
at the statement B$=LEFT${AS,6) 
in line 30. It grabs the leftmost six 
characters of A$— GEORGE— and 
stores them in BS. Line 40 confirms 
this by printing B$. To extract the 
phrase GEORGE WASHINGTON 
from AS, we could change line 30 to 
read B$ = LEFTS(AS,1 7)— keeping 
in mind that spaces count as charac- 
ters, just like letters, numbers, and 
symbols. (Of course, you can use 
your own variable names for AS 
and B$ as long as you stick to this 
basic format.) 

RIGHTS is the opposite of 
LEFTS: It extracts the rightmost 
number of characters in A$ that you 
specify in the RIGHTS statement. If 
you change line 50 to read B$ = 
RIGHT$(A$,17), the result is 
WASHINGTON CARVER. 

Line 70 shows that AS remains 
intact after sections of it have been 
extracted with the LEFTS and 
RIGHTS functions. LEFTS and 
RIGHTS actually copy sections of 
the string into B$, rather than cut- 
ting the sections out. 

Putting Lefty To Woric 

If you specify a value in a LEFTS or 
RIGHTS statement that is greater 
than the length of the string — in 
this case, say, BS=LEFT$(AS,35)— 
most BASICS return all of A$ in BS, 
the equivalent of BS=AS. This can 
happen in a program when you're 
unsure about the current length of 



A$, or if you're using a variable for 
the number parameter in a LEFTS 
or RIGHTS statement and the vari- 
able somehow is increased beyond 
the length of A$. If you specify a 
zero for this number — as in B$ = 
RIGHTS(AS,0)— most BASICs re- 
turn a null (empty) string. 

If the number you specify in 
the LEFTS or RIGHTS statement is 
greater than 255, you'll probably 
get an error. Most Microsoft BA- 
SICs don't allow strings longer than 
255 characters, so any reference to 
numbers greater than 255 in string- 
manipulation statements is invalid. 
Exceptions are the latest and most 
advanced Microsoft BASICs, such 
as Macintosh Microsoft BASIC and 
Amiga BASIC. They allow strings 
up to 32,767 characters long. 

Of the two functions, LEFTS is 
probably uSed more often than 
RIGHTS. One practical application 
of LEFTS is to truncate user input to 
a predetermined length. For in- 
stance, let's say you're writing a 
program that asks for the user's 
name. At some point your program 
prints the name on the screen, but 
you want to limit the name to ten 
characters to keep from messing up 
your screen formatting. The solu- 
tion is a line such as INPUT MY- 
N AME$ : MYN AMES = LEFT${M Y- 
NAME$,10). Note that in this case, 
the original content of MYNAMES 
is lost, because the LEFTS function 
stores the leftmost ten characters 
back into MYNAMES. 

Here's another application for 
LEFTS: Suppose your program asks 
the user a yes or no question. You 
can evaluate the answer with a line 
such as INPUT ANSWERS:IF LEFTS 
(ANSWERS, 1) = "Y" THEN GOTO 
1000 (assuming that line 1000 is the 
beginning of your "Yes" routine). 
That way, your program responds 
correctly whether the user types Y, 
YES, YEAH, YEP, YES SIR, or even 
YOU BET. © 



lid COMPimi March 1986 




Computers and Society 

David D. Thornburg, Assoclote Editor 



Humanizing The User Interface. Part 1 



Computers should be easy to use. 
Somehow this seems an obvious 
requirement for a product, yet 
many computer users are frustrated 
at the cumbersome nature of the 
programs they use day in and day 
out. 

In previous columns, I've ar- 
gued the case that computers 
should be transparent to their us- 
ers — that the computer should dis- 
appear into the background, freeing 
the user to interact directly with the 
application. A key to transparent 
computing is the user interface — 
the vehicle through which the user 
interacts with the computer. The 
user interface has three compo- 
nents — input, output, and content. 

Input generally involves the 
communication of physical motion 
from the user to the computer, sig- 
naling the computer to perform 
various activities. Typing on a key- 
board, speaking into a microphone, 
or drawing a line with a finger on a 
touch tablet are all ways of using 
physical movement to convey infor- 
mation to a computer. 

Output consists of messages 
communicated from the computer 
to the user's senses. The most 
often-used sense is vision — usually 
the screen display. 

Content is the purpose of the 
computer activity — the manage- 
ment of text, the computation of 
spreadsheets, or the creation of 
graphic images, to name just a few. 
Although input flows from the user 
to the computer, and output goes 
from the computer to the user, the 
communication of content is purely 
inferential. In other words, the user 
has an internal model of what the 
computer program is doing, or how 
it is doing its task. To use a program 
successfully, it's not important if 
the user's model of what is happen- 
ing is accurate. All that's important 
is if the model is consistent with the 
program's behavior. 



Joy Or Pain 

When we're working with a pro- 
gram that has a well-balanced user 
interface, computing is a joy. When 
the user interface is bad, we may 
think that computing just isn't 
worth the effort. 

Fortunately there are a few 
good programs available that show 
how easy computers can be to use. 
Most users of The Print Shop (from 
BrOderbund) would agree that this 
product is wonderfully easy to use. 
Many people probably haven't read 
the instruction manual. This prod- 
uct also has good input and output 
interfaces that step the user through 
the creation of customized greeting 
cards, posters, banners, calendars, 
etc. This product is one of the top 
sellers of all time, so the role of a 
good user interface cannot be under- 
estimated. 



Human Computer 

Input O c:::zsC> 001111 D 



Output 



<3:zzzz] 



Content {S^ <5s:i5> ^ 



Quite often, software designers 
try to make their products easy to 
use by designing them to work with 
a modem input device like a mouse 
or touch tablet. Unfortunately, this 
isn't enough. For a computer appli- 
cation to appear transparent, the 
input, output, and content of the 
system must be meshed to create a 
combined ambience that is both 
natural to the user and appropriate 
to the task at hand. For example, 
any attempt to design input devices 
independently of the applications 
that use them is risky at best. A 



program that lets numbers be en- 
tered with a joystick may be appro- 
priate for a game in which the 
joystick is used to select the number 
of players, but it is clearly the 
wrong approach for a financial 
analysis package that requires al- 
most constant entry and update of 
numbers. 

One reason I invented the 
KoalaPad was to make computers 
easier to use. Yet input devices like 
the KoalaPad are not enough by 
themselves. They can play an im- 
portant role only when their use is a 
complementary part of the design 
of the whole product. This is why 
some people are frustrated by the 
Macintosh — not all Mac software is 
easy to use. It's true that this com- 
puter (and the Amiga) is capable of 
supporting tremendously powerful 
and easy-to-use software; but it's 
also true that many programs fall 
short in this important area. 

It's hard to design a good user 
interface. Millions of dollars went 
into the research at Xerox that led to 
the desktop metaphor — the use of 
windows and pop-up menus that 
are now becoming commonplace. It 
took a heavy investment to bring 
the KoalaPad and Muppet Learning 
Keys to market. The cost of devel- 
oping a good program for a person- 
al computer can easily exceed 
$100,000. (Remember this the next 
time you think software costs too 
much!) 

As difficult as this task may 
seem, those of us involved with 
computer software development 
owe it to our customers to make 
ease-of-use our top priority. The 
market slump of 1984 and 1985 
showed that the public is unviolling 
to blindly accept everything thrown 
its way. 

Next month we'll explore one 
model of human behavior that pro- 
vides valuable clues in the search 
for the best user interfaces. © 



March 1966 COMnilE) 115 




The World Inside the Computer 



Fred D'Ignazio, Associate Editor 



Snowflakes, Quilts, And Stained Glass Windows 



Recently I reviewed the new Amiga 
fron:\ Commodore on public TV's 
Educational Computing. Afterward, I 
hoped to have a few days to play 
with the machine before returning 
it. But I hadn't reckoned with my 
kids. 

They were hooked on the Ami- 
ga's mouse, windows, and brilliant 
colors the first time I turned on the 
computer. They played with it con- 
stantly. The only time I got on the 
machine was after their bedtime. 

My children's favorite program 
was Electronic Arts' Deluxe Paint. It 
is the most spectacular microcom- 
puter paint program I have ever 
seen. With its animated, cycling 
colors and its dozens of drawing 
and painting tools, it even sur- 
passes the MacPaint program on 
the Macintosh. It is so seductive 
and so much fun to use that it quali- 
fies as "computer popcorn" (see my 
column on "Computer Popcorn," 
COMPUTE!, January 1984). Once you 
start using it, it's almost impossible 
to stop. 

Like my children, I quickly fell 
in love vnih the program. But I still 
had a nagging doubt. Computer 
popcorn is scrumptious. But is it 
also nutritious? How could my chil- 
dren and I use the program to feed 
our minds and imaginations? Could 
the program teach us to be artists? 

Just A Doodler 

So many computer art programs are 
of the easy-draw variety, like easy- 
cook microwave ovens and easy- 
play organs. They get you started 
drawing, playing, and having fun 
in no time at all. Then, bonk!, you 
bump into the limitations of your 
own skills, abilities, and imagina- 
tion. You've become a super doo- 
dler, but you aren't any closer to 
making professional drawings, pic- 
tures, or art. That's because creativ- 
ity programs, in general, are tools, 
not teachers. They are enormously 
enticing tools, but they can never 



replace a certain amount of training 
or skill. 

Like many people whose artis- 
tic aspirations far exceed their abili- 
ties, I found this situation extremely 
frustrating. And I wondered how 
my children could acquire the sldlls 
to use this program properly. I 
couldn't teach them the skills, and 
neither could the program. 

Then, suddenly, a solution ap- 
peared. One night my six-year-old 
son Eric was scribbling away on the 
Amiga with Deluxe Paint. "Do you 
like my picture?" he said, turning 
toward us. My wife and I looked 
up. We were astounded. From 
across the room, Eric's glowing pic- 
ture resembled a stained-glass win- 
dow. It could have adorned a 
medieval cathedral. It was 
beautiful! 

Later, as I was falling asleep, I 
realized Eric had helped me stum- 
ble onto a way out of my dilemma. 
What we needed were images — 
images drawn from the real world 
and from works of art. We could 
study these images, copy them, and 
use them as inspiration to build 
new pictures of our own. 

The Butterfly Maiden 

The next day I went to the local 
library and checked out books on 
embroidery, quilting, needlepoint, 
and nature. The books were filled 
with images — colorful pictures of 
the diverse designs and patterns 
that man and nature can devise. 
These were to be our teachers. 

When I showed these images 
to my children, I concentrated on 
patterns and shapes that were sym- 
metrical and geometric. Eric and 
my daughter Catie could draw 
these images effortlessly with the 
tools in Deluxe Paint. Catie espe- 
cially liked the totem-pole faces on 
blankets woven by the Chilkat In- 
dians of the Pacific Northwest; the 
brilliant colors and intricate geo- 
metric patterns found in nine- 



teenth-century American pieced 
quilts; and pictures of the Butterfly 
Maiden, a Hopi kachina doll from 
northeastern Arizona. 

I liked a tapestry, Nightsun, by 
the German artist Dirk Holger. Eric 
liked the Resurrection angels, 
saints, and serpents he found on 
stained-glass windows from South 
Africa, the French Loire, and Dub- 
lin, Ireland. 

As we tried to copy these pic- 
tures, and those of Persian lions, 
helix-shelled snails, and the swirl- 
ing atmosphere of Jupiter, we found 
that some images were easier to 
work with than others. Anything 
made with needlework, stitching, 
or embroidery was especially nice 
because the graph-paper patterns 
resembled pixels on the computer 
screen. Pure colors were easier than 
complex shadings and color blends. 
The blocky nature of many images 
was easy to reproduce on the com- 
puter, and big patterns made by 
endlessly repeating little patterns 
were easy to build using copy and 
paintbrush commands. 

The next day, we went out- 
doors to look for images on our 
own. Our field trip turned up all 
sorts of new shapes: water spurting 
from the garden hose, wedding 
cakes at a local bakery, pine cones, 
and wildflowers. We carried many 
of these objects to the computer 
and tried copying their basic pat- 
terns. And at night we went back 
outdoors and looked up at the stars. 
When we grew cold, we came in- 
side and drew dot-to-dot con- 
stellations. 

We had found a solution to our 
problem. We had taken a first step 
toward becoming computer artists. 
And we did it by feeding our imagi- 
nation fresh images, and by study- 
ing and copying these images to 
uncover their underlying patterns 
and designs. <8 



116 COMPUTB March 1986 




Telecomputing Today 



Arlan R, Levitan 



Games Modem People Play 



When most people think about tele- 
computing, the first things that 
probably come to mind will be 
downloading public domain pro- 
grams from electronic bulletin 
boards, retrieving stock quotes and 
financial information from com- 
mercial information services, or 
communicating with other hobby- 
ists via Special Interest Groups 
(SIGs). Modems are often viewed 
as strictly utilitarian pieces of com- 
puter gear. 

But there i& a lighter side to 
telecomputing — multiple-player 
teleganning. 

The first multiplayer telecom- 
puting game I can recall involved a 
group of five or six people who 
were logged onto an online confer- 
encing service playing Dungeons 
and Dragons. Players in California, 
Illinois, and New York were explor- 
ing the Stygian depths of under- 
ground catacombs created by a 
Dungeon Master running the 
whole show from the keyboard of 
his Apple II in Austin, Texas. 

The CompuServe Information 
Service was one of the pioneers in 
developing multiplayer online 
games. CompuServe currently of- 
fers a half-dozen or so such diver- 
sions to its subscribers. The blast- 
and-bum crowd can choose among 
multiple flavors of interstellar con- 
flict: SpaceWars, MegaWars I, and 
MegaWars III. These games vary in 
both depth of play and the number 
of players who may simultaneously 
participate. MegaWars 111 is the 
clear heavyweight of the group. It 
has multiple game phases, includ- 
ing violent battle and economic 
warfare, and up to a hundred play- 
ers can be pounding away at their 
keyboards at once. 

Those with more pedestrian 
tastes may opt for a game of multi- 
player blackjack, trading quips with 
the dealer and other players as elec- 
tronic gambling chips trade hands. 



Wheel Of Misfortune 

Not all attempts at multiuser games 
are smash hits. CompuServe's lat- 
est creation is You Guessed It!, a TV- 
style quiz game in which players 
form teams and take turns attempt- 
ing to answer questions while ig- 
noring incredibly bad jokes 
delivered by an eerily obnoxious 
electronic master of ceremonies. 
The winners garner points that may 
be used to purchase gifts offered by 
sponsors, whose commercials regu- 
larly interrupt the game. 

I tried You Guessed It! for about 
two hours, racking up what I 
thought was a respectable number 
of points. Then 1 eagerly issued the 
command that would transfer me to 
the "prize room" where players can 
trade points for their heart's desire. 
But the only prize 1 qualified for 
was a bumper sticker that adver- 
tised one of the You Guessed It! 
sponsors. To be fair, it did appear 
that if I played for another hour or 
two I could lay my hands on a 
baseball cap which sported (you 
guessed it) another advertiser's 
logo. 

One of the more interesting ex- 
periments in telegaming that I've 
seen is a moderately obscure pro- 
gram called COMM-BAT, marketed 
by Adventure International. Some 
friends and I purchased copies of 
COMM-BAT for our Atari 800s back 
in early 1981 when 300 bits-per- 
second (bps) modems were still hot 
stuff for home use. 

COMM-BAT lets two comput- 
ers hook up over phone lines and 
presents each player with a battle- 
field map. The adversaries send 
tanks armed with rockets and lasers 
scurrying about in search of the 
enemy's base. When a player's base 
is destroyed, the game ends. The 
programs on both ends of the tele- 
computing link communicate with 
each other, updating the current 
battle information displayed on the 



screens. Players can also send in- 
sults and ultimatums to each other 
during the game. 

A Reunion Battle 

COMM-BAT does have its limita- 
tions. The character graphics are 
crude, but intentionally so. Ver- 
sions of COMM-BAT were written 
for TRS-80, Apple, and Atari com- 
puters, and owners of these differ- 
ent systems could play COMM-BAT 
with each other and see identical 
displays on their screens. The big- 
gest drawback was that the game 
progressed rather slowly due to the 
300 bps modems. 

Just for grins 1 pulled out my 
old copy of COMM-BAT and called 
one of my ex-buddies, now a resi- 
dent of Denver, Colorado and a 
fellow user of GTE's PC Pursuit 
service (see "Telecomputing To- 
day," December 1985). We cranked 
up our Ataris (now equipped with 
1200 bps modems), linked up via 
PC Pursuit, and had a jolly old 
transcontinental hme blasting the 
daylights out of each other. The 
extra speed of the 1200 bps mo- 
dems and a noise-free connection 
transformed a mildly interesting 
game into good, clean Ramboesque 
fun. Out of curiosity, I called Ad- 
venture International and found 
that COMM-BAT is still available. 
The $49.95 price gets you all three 
versions of the program, 

I'd like to hear about any other 
commercial or public domain tele- 
computing games that you may 
have encountered. I seem to recall 
some implementations of chess and 
Battleship having been done in the 
past. I'll compile a list and publish 
the results in a future issue. 
Contact Levitan on The Source 
aCT987), CompuServe (70675,463), 
or Delphi (ARLANL). © 



March 1 986 COMPUTBI 1 1 7 



IBM Personal Computing 



Donold B. Trivette 



The Ultimate Entertainment Center 



Picture yourself in front of a 26- 
inch color monitor — shoes off, feet 
up, remote control in hand. But this 
is not just any remote control. This 
is a special remote unit that controls 
all of the components in your enter- 
tainment/computing system. 

You push the TV button and 
bring up World News Tonight on the 
monitor: Peter Jennings reports that 
the stock market has soared to new 
highs. As he fades into a commer- 
cial, you decide to call Dow Jones 
News/Retrieval to see how your 
own stocks did. But first, you push 
the compact disc button to fill the 
room with a Beethoven symphony 
so real that you wonder where the 
orchestra is hiding. Then you press 
the VID2 key to put the computer 
video on the screen. You reach for 
the PCjr's wireless keyboard and 
start the appropriate communica- 
tions program; then you press TV to 
return to the news while the com- 
puter retrieves the quotes. 

At the next break, you display 
the Dow Jones results onscreen 
with the VID2 key. After the news- 
cast, you press the VCR STOP, RE- 
WIND, and PLAY keys to view the 
"M*A*S*H" rerun you've been tap- 
ing from an independent station. 
But first, you check the progress of 
the cassette tape you've been record- 
ing from an FM stereo broadcast. 

This isn't a pipe dream — this is 
RCA's Dimensia. Billed as intelli- 
gent audio/video, it integrates nu- 
merous components into a single 
system commanded from a single 
remote control. The heart of the 
system is a 26-inch stereo monitor/ 
receiver. Once you acquire the 
monitor, you can add other compo- 
nents according to your needs and 
budget. Current Dimensia compo- 
nents are an AM/FM receiver/ 
amplifier, a compact audio disc 
player, a cassette tape recorder, two 
phonographs, a graphic equalizer, 
and several models of stereo VHS 
video recorders. 



Connection Options 

RCA designed the Dimensia system 
so you can also connect non- 
Dim ensia components, including 
home computers. The PCjr, with its 
wireless keyboard, is a particularly 
good choice; it can be connected in 
three ways. Like most home com- 
puters and videogame machines, 
the PCjr can be hooked up to a TV's 
antenna terminals with an RF mod- 
ulator. Since the Dimensia system 
allows multiple antennas — selected 
by remote control — you can switch 
between the PCjr's screen, cable 
service, and a satellite dish. 

The PCjr also has a composite 
video output that can be connected 
to one of the monitor's three video 
input jacks. The PREVIOUS 
CHANNEL key lets you instantly 
switch between a TV program and 
the computer screen, so you can 
watch Dynflsfy and play King's 
Quest at the same time, 

A third connection option is 
the Dimensia's RGB direct-drive 
video input. Although the Dimen- 
sia's RGB connectors aren't com- 
patible with the PCjr's RGB plug, 
the signals are compatible. Radio 
Shack sells a four-conductor, color- 
coded patch cable that can be modi- 
fied by anyone handy with a 
soldering iron to make the 
connection. 

For everything but text, the Di- 
mensia's composite video is as clear 
as the RGB mode, and it has an 
added advantage: You can record 
its output with a video cassette re- 
corder. This means you can run 
programs on the PCjr and record 
the results on the VCR, which is 
perfect for putting titles on your 
home videos. You can also dub 
stereo audio from a compact disc 
player, the AM/FM tuner, the cas- 
sette recorder, or the phonograph. 

A Piqued PCjr 

Since both the Dimensia and the 
PCjr keyboard use an infrared re- 



mote control, there is the possibility 
of conflict. 1 couldn't find any but- 
ton on the Dimensia's 52-key re- 
mote controller that the PCjr would 
recognize, but the computer was 
well aware that strange infrared 
signals were reaching its sensor. It 
squealed like a perturbed pig every 
time I used the Dimensia remote. 
This is easily and permanently 
solved by amputating Junior's little 
beeper — something I had intended 
to do for months anyway. 

There's another annoying as- 
pect of the PCjr you may want to 
fix, even if you don't have the Di- 
mensia monitor. The joystick is not 
a wireless device and the cable that 
connects it to the computer is too 
short to reach across the room. 
Once again, it's Radio Shack to the 
rescue with its ten-foot joystick ex- 
tension cord. Of course, this cord 
was designed for Tandy computers 
and the connections are not com- 
patible with the PCjr's unusual 
plugs, so it's back to the soldering 
iron. Simply chop the joystick cable 
about eight inches from where it 
connects to the computer and sol- 
der a sub-D nine-pin connector 
(also available at Radio Shack) on 
each end, being careful to keep the 
pin numbers and wire colors con- 
sistent. It works perfectly. 

The complete Dimensia sys- 
tem with all the components can 
cost as much as $5,000 — but don't 
hesitate to haggle. The more com- 
ponents you buy, the better deal 
you can get. 

Besides its flexibility, the Di- 
mensia also may be the world's 
most user-friendly entertainment 
center. Although not documented 
in the manuals and unknown to 
sales people, the monitor displays a 
help screen aaoss the bottom of the 
picture when you press AUX 0. 
Drop by a dealer and try it. © 



1 1 8 COMPUTEI March l<>a6 




Programming the Tl 



C- Regena 



IF-THEN Statements 



IF-THEN statements are conditional 
transfer commands that make it 
seem as if computers can think, IF a 
specified condition is true, THEN 
the program skips to a certain line 
number elsewhere in the program; 
otherwise, the program simply con- 
tinues to the next line as usual. TI 
BASIC also allows an ELSE state- 
ment as part of IF-THEN. It takes 
this form: 
IF condition THEN Unel ELSE line! 

IF the condition is true, THEN the 
computer goes to Unel, or ELSE the 
computer goes to line!. If the op- 
tional ELSE is omitted, control 
merely passes to the following line. 
Here's a common example: 

200 IF SCORE = 10 THEN 900 
210 PRINT SCORE 

This statement says that if the value 
of the variable SCORE is equal to 
10, then the program should con- 
tinue at line 900. Otherwise, the 
program continues to the next line 
and prints the score. 

You can use the other relation- 
al operators to define conditions in 
IF-THEN statements, too; 

300 IF A<B THEN 700 

400 IF X>Y THEN 200 ELSE 580 

500 IF J<>8 THEN 800 

In each case, the computer 
evaluates the condition — the ex- 
pression between the words IF and 
THEN. If the expression is true, it 
has the value of — 1. If the expres- 
sion is false, it has the value of zero. 
Therefore, a statement such as this 
is valid: 
320 IF A THEN 400 

This doesn't look like the more 
common relational examples, but it 
implies that if A is equal to — 1, 
then the program goes to line 400. 
The condition may look more 
complex. If you keep in mind that 
true is — 1 and false is zero, you can 
usually follow the logic. An ex- 
ample is: 
150 IF (A = B)-I-C THEN 200 



The part within the parentheses 
(A = B) is evaluated first. If A equals 
B, then the expression is — 1 (true); 
if A does not equal B, the expres- 
sion is zero (false). This value is 
then added to the value for C, If the 
result is —1, the condition is true 
and control passes to line 200. 

Simulating AND/OR 

Most other versions of BASIC allow 
the use of AND and OR in IF- 
THEN expressions. TI BASIC does 
not, but we can translate. Again, 
keep in mind that — 1 indicates true. 
Suppose we want to test the 
conditions A=B and C=D. If both 
are h-ue (IF A = B AND C = D), then 
we want the program to continue at 
line 700. Here's one way to do this: 
IF (A = B) + (C-D)--2 THEN 700 

If both conditions are true, each will 
yield — 1 values, so the total will be 
-2. 

Here's an equivalent way to 
make this test: 
IF -<A = B)*(C = D) THEN 700 

Notice that —1 times —1 is -HI, so 
the negative sign in front converts 
the whole expression to —1 for 
true. 

The word OR is used when one 
condition OR the other condition is 
true, but not both: 
IF (X<Y) OR (X>Z) THEN 300 

This can be translated to TI BASIC 

like this: 

IF (X<Y)-I-(X>Z) THEN 300 

Program control transfers to line 
300 only if the expression evaluates 
to — 1. This happens if only one of 
the conditions in parentheses is 
true (and thus — 1) and the other is 
false (equal to zero). 

Even more complex IF-THEN 
statements are possible by consid- 
ering different combinations of + 
and * in evaluating conditions. Sup- 
pose after a CALL KEY statement 
the user may press either ENTER or 
any of the number keys. Here's the 



easiest way to set up the logic: 

200 CALL KEY(0,K,S) 
210 IF K = 13 THEN SOO 
220 IF K<48 THEN 200 
230 IF K>57 THEN 200 

Or you can combine the IF state- 
ments like this: 

210 IF (K<>13)-I-(K<48)+(K>57) THEN 
200 

Algebra Drill 

The sample program this month is a 
simple drill for beginning algebra 
students who are learning to add 
signed numbers. This program il- 
lustrates the use of several kinds of 
IF-THEN statements. 

Lines 200 and 230 show two 
ways to check the length of the 
numbers to see if a randomly cho- 
sen number is negative. If neces- 
sary, a plus sign is added to the 
number. 

Lines 280 and 300 determine 
the answer depending on the value 
of SUM. 

If the answer is zero, line 360 
skips the procedure for choosing 
the plus or minus sign in the an- 
swer. If the student needs to choose 
the sign, line 420 makes sure he or 
she presses either the plus sign or 
the minus sign. All other keys are 
ignored. Line 490 then receives the 
number keys pressed. 

Line 530 checks the student's 
answer and branches appropriate- 
ly. Line 590 waits for the student to 
press the ENTER key before 
continuing. 

If you wish to save typing ef- 
fort, you can obtain a copy of "Add- 
ing Signed Numbers" by sending a 
blank cassette or disk, a stamped, 
self-addressed mailer, and $3 to: 

C. Regena 
P.O. Box 1502 
Cedar City, UT 84720 

Adding Signed Numbers 

100 REM ADDINQ 5IBNED NU 

HBERS 
110 CALL CLEAR 



March 1986 COMPUTE! 119 



120 


PRINT "ADDING 


SIBNED 


320 


TA-B-LENCS*) 




460 




NUnSERS": : s 




330 


PRINT iTAB(4)fA« 


S00 


CALL HCHftR(23,TA+J,K) 


130 


SCDRE°0 




340 


PRINT :TAB<4);B« 


510 


T*-T*!<CHR»<K> 


140 


FOR PR0B=1 TO 


10 


350 


PRINT TAB (3) i " " i : ! 


520 


NEXT J 


150 


T»-"" 




3&0 


IF SUM-0 THEN 450 


530 


IF 3UM<>VAL<T»JTHEN 5 


1&0 


RftNDOMIZE 




370 


CALL KEY(0,K,S) 




60 


170 


A=INT<19*RND) - 


f 


3S0 


CALL HCHAR (23, TA,45) 


540 


PRINT J s "CORRECT! " 


180 


B"INT(1<?«RND)- 


9 


390 


CALL HCHAR(23,TA, 32) 


550 


SCORE-SCGRE+1 


190 


A»-9TR*(fl) 




400 


CALL HCHAR(23,TA,43> 


560 


PRINT s "THE SUM IS "j 


200 


IF LeN(A«)-2 THEN 220 


410 


CALL HCHAR(23,TA,32) 




5* 


210 


A«»" + "S,fl* 




420 


IF (K<>43) + (K045) --2 


570 


PRINT ;: "PRESS <ENTER 


220 


B«-STR»(B> 






THEN 370 




>. " 


230 


IF LENCB*) >1 THEN 250 


430 


CALL HCHflR(23,TA,K) 


580 


CALL KEY(0,K,S) 


240 


B»--' + "8<B« 




440 


T«-CHR« (K) 


590 


IF K013 THEN 580 


2S0 


PRINT "ADD" 




450 


FOR J-1 TO LEN(S«)-1 


600 


CALL CLEAR 


2i0 


SUM-PH-B 




460 


CALL KEY(0,K,S) 


610 


NEXT PROB 


270 


S»-STR»(SUM) 




470 


CALL HCHAR(23,TA+J,63 


620 


PRINT "OUT OF 10 PROB 


2S0 


IF SUMO0 THEN 


300 




> 




LEMS, " 


290 


S«-" "JtS* 




480 


CALL HCHAR<23,TA+J,32 


630 


PRINT : "YOUR SCORE IS 


300 


IF SUFK-0 THEN 


320 




) 




";SCGRE: : : 


310 


S«-" + "(<S» 




490 


IF (K<4B)+(K>57)THeN 


640 


END (g 



News & Products 





precise editing of pitch, start time, dura- 
tion, and key-strike velocity; and the 
Phrase Editor allows copying, moving, 
deleting, combining and modifying 
musical phrases of any length. Also 
included is a text and graphics editor for 
creating diagrams or comments with a 
song file. 

MIDI Ensemble runs on the IBM 
PC; list price, $495. 

Sight & Sound Software, 3200 S. 
166th St., New Berlin. WI 53151 
Circle Reader Service Number 201. 


base management program for small 
business use. 

Regent Software, 7131 Owensmouth, 
#45A, Canoga Park, CA 91303 
Circle Reader Service Number 202. 


Of Nordic Gods On The 64 

Eurosoft International, a software pub- 
lisher that specializes in introducing 
European software products to North 
America, has announced the release of 
Valhalla. Winner of the 1984 British 
Microcomputing Game of the Year 
Award, Valhalla is an animated, inter- 
active game involving Nordic mytholo- 
gy. Thirty-six mythological characters 
are featured, each with a different per- 
sonality. The player interacts with each 
of these in pursuit of the lost treasure of 
Valhalla. The mythological characters, 
shown using the "MoviSoft" animation 
technique, can either help or hinder 
your quest depending on their disposi- 
tion and your actions. 

Valhalla is available for the Com- 
modore 64 at a list price of $24.95. 

Eurosoft International, 114 East 
Ave., Norwalk, CT 06851 
Circle Reader Service Number 200. 


Home Inventory Package 
For The 64 

What's Our Worth?, from ADITA Enter- 
prises, is a program designed to help 
you do a complete inventory of your 
personal belongings. Screen instruc- 
tions and prompts make it very easy to 
enter items into inventory, read all 
items, search for specific information, 
change or delete items, and make a 
backup data disk. 

What's Our Worth? is available by 
mail order, and retails for $19.95. 

ADITA Enterprises, 116 Bermondsey 
Way N.W., Calgary, Alberta, Canada T3K 
IV 4. 
Circle Reader Service Number 203. 


Word Processor For Atari ST 

Written by the developers of Atari- 
Writer and AtariWriter Plus, Regent 
Word is a sophisticated, easy-to-use 
word processing program for the Atari 
ST. It features 80-column editing, func- 
tion key-driven commands, local and 
global searches, multiple type fonts, 
print preview, and a communications 
package. It retails for $49.95. 

Regent Spell is an expandable spell- 
ing checker for Regent Word. The pro- 
gram is shipped with 30,000 words; 
another 30,000 can be added. Mis- 
spelled words are highlighted in con- 
text. Commands can be issued via the 
ST's mouse or though single key- 
strokes, It also retails for $49.95. 

Regent Software is also in the pro- 
cess of designing Regent Base, a data- 


IBM PC MIDI Editor 

MIDI Ensemble, a new software pack- 
age from Sight & Sound for owners of 
musical equipment with a MIDI inter- 
face, consists of three main program 
modules; Recorder, Event Editor, and 
Phrase Editor. The Recorder module 
can be used for recording and overdub- 
bing tracks; the Event Editor enables 


Educational Enchantment 

Sunburst has released The Enchanted 
Forest, a mathematics learning program 
with a fairy tale setting for grades four 
and up. The game begins when the 
witch of the forest transforms all of the 
forest animals into geometric shapes of 
different sizes and colors and hides 
them in ponds. Players travel through 



120 COMPUTfl March 1986 



the forest with 12 friends, using the 
concepts of conjunction, disjunction, 
and negation to break the witch's 
spells. 

The Enchanted Forest was written 
by Dr. Jerzy Cwirko-Godycki, author of 
more than 40 children's books. It's 
available for the 64K Apple II+, He, 
and Ik; and the IBM PC and PCjr. The 
$59 list price includes a backup disk 
and teacher's guide. 

Sunburst Communications, 39 Wash- 
ington Avenue, Pleasantville, NY 10570. 
Circle Reader Service Number 204. 

Beach-Head Sequel For Atari 

Beach-Head 11, Access Software's sequel 
to the popular Beach-Head game, is now 
available in a version for the Atari 
400/800, XL, and XE series with at least 
48K of RAM. Like its predecessor, 
Beach-Head U is a Worid War II era 
arcade game that is set on the beaches 
of Europe. The sequel has several new 
features including voice synthesis, mul- 
tiple play screens and play levels, sound 
effects, and animation techniques. 

Beach-Head U for Atari lists for 
$39.95. It has previously been released 
in versions for the Commodore 64/128 
and Apple 11 series. 

Access Software hic, 2561 South 
1560 West, Woods Cross, UT 84087. 
Circle Reader Service Number 205. 

Munching On The Apple 

Munchers and Troggles abound in the 
world of Word Munchers, an education- 
al game for grades one through five 
from Minnesota Educational Comput- 
ing Corporation. Players earn points by 
making their Munchers eat words with 
a particular vowel sound while avoid- 
ing the enemy Troggles. Teachers can 
determine which vowel sounds are 
used and can control the level of word 
difficulty. Approximately 1,700 words 
of varying difficulty are included. 

Word Munchers runs on all Apple II 
computers with at least 64K RAM; joy- 
stick is optional. Suggested retail price, 
$49. 

Minnesota Educational Computing 
Corporation, 3490 Lexington Avenue 
North, Si. Paul, MI 55112. 
Circle Reader Service Number 206. 

Commodore Chemistry 

Simon & Schuster has released a Com- 
modore 64 version of the Chem Lab 
educational program for ages nine 
through twelve. The program contains 
50 chemistry experiments with three 
levels of difficulty. Al! experiments are 
simulations of real experiments with 
actual results. Players can work their 
way up from Lab Assistant to Nobel 
Prize Winner. 



The computerized laboratory 
comes equipped with on-screen simula- 
tions of; two robot arms for handling 
chemicals and equipment, five different 
pieces of lab equipment, plus three 
Bunsen burners and separate dispens- 
ers for gases, liquids, and solids. The 
chemical reactions are animated and 
change color, glow, melt, boil, and ex- 
plode. On-screen messages tell the 
players what has been created. 

Chem Lab for the Commodore 64, 
with its 96-page user's guide, sells for 
$39.95. Apple II and IBM PC/PCjr ver- 
sions are also available. 

Simon & Schuster Computer Soft- 
ware, 1230 Avenue of the Americas, New 
York. NY 10020. 
Circle Reader Service Number 207. 



Candalf The Sorcerer For 64 

A spellbound treasure is hidden in a 
castle surrounded by scaly tailed lizard- 
men. You, Gandalf the Sorcerer, must 
protect the treasure by using magic 
powers from a shining star. Such is the 
scenario of Gandalf the Sorcerer, Ty- 
mac's new adventure game for the 
Commodore 64. The game is for one 
player and requires a joystick. Three- 
dimensional graphics are featured. 

Suggested retail price is $39.95. 

Tymac Controls Corporation, 127 
Main Street, Franklin. N] 07416. 
Circle Reader Service Number 208. 




The lizardmen ambush the castle in Gandalf 
the Sorcerer. 



Paper Airplane Kit 

Simon & Schuster has released The 
Great International Paper Airplane Con- 
struction Kit, a set of paper airplane 
templates based on the bestsellingbook 
by the same name. The program con- 
tains over a dozen full-page paper air- 
plane designs from biplanes to space 
shuttles. It also comes with a library of 
airplane graphics to embellish the air- 
planes with insignias, logos, windows, 
engines, pilots, and stewardesses. Also 
included is a step-by-step manual with 
instructions, suggestions, and a history 
of paper aviation. 

The Great International Paper Air- 
plane Construction Kit runs on the Ap- 



ple II series with 64K RAM ($34,95); on 
the IBM PC, PC-XT, PC AT, and PCjr, 
with DOS 2,0 or higher and color/- 
graphics card ($34.95); on the Macin- 
tosh with 128K RAM ($39,95); and on 
the Commodore 64 or 128 ($29,95). 

Simon & Schuster, 1230 Avenue of 
the Americas, New York, NY 10020. 
Circle Reader Service Number 209. 



New From Mindscape 

In Dick Francis' High Stakes, a new inter- 
active text adventure from Mindscape, 
you are a wealthy English horse owner 
who must foil a sinister plot to cheat 
you. Based on the book by the popular 
mystery writer, Dick Francis, the game 
involves gambling and intrigue. 

Also new from Mindscape are The 
American Challenge: A Sailing Simula- 
tion, which recreates the America's Cup 
sailing race, for one or two players; and 
fames Bond 007 Goldfinger, an interac- 
tive text adventure involving travel, ex- 
otic weaponry, and the loves of the 
legendary 007, 

Each game lists for $39.95 and runs 
on the Apple 11 and IBM PC computers. 

Mindscape Inc., 3444 Dundee Road, 
Northbrook, IL 60062. 
Circle Reader Service Number 210. 



Educational Programs For 
Pre-School, High School 

Grover and Ernie from "Sesame Street" 
enliven two new educational games 
from CBS Learning Systems. Grover's 
Animal Adventures takes preschoolers 
into four different animal environ- 
ments: the African Grasslands, the At- 
lantic Ocean, a North American forest, 
and a barnyard. Children select animat- 
ed animals and objects and place them 
in the appropriate environment on 
land, in water, or in the sky. In Ernie's 
Big Splash, children help Ernie find his 
Rubber Duckie by building a pathway 
that leads from the Duckie's soap dish 
into Ernie's bathtub. Both games are for 
ages four to six; each lists for $14.95. 

CBS has also released Mastering 
the ACT (American College Testing As- 
sessment), a self-paced preparation 
course for high school students that 
was developed by the National Associ- 
ation of Secondary School Principals. 
The program features full-length simu- 
lated ACT pre- and post-tests which 
provide self-scoring and detailed error 
analysis. Development exercises cover 
English, math, social studies, and natu- 
ral sciences. For the Commodore 
64/128 ($79,95), the Apple II series, 
and IBM PC and PCjr ($99.95 each). 

CBS Learning Systems, One Fawcett 
Place, Greenwich, CT 06836. 
Circle Reader Service Number 211. 



March 1986 COMPUTH 121 



MLX 



Machine Language 
Entry Program For Atari 



Charies Bronnon. Program Editor ■ 

MLK is a labor-saving utility that allows 
almost fail-safe entry of machine lan- 
guage programs published in COMPUTE!. 
You need to know nothing about machine 
language to use MLX— it was designed for 
everyone. 

"MLX" is a new way to enter long 
machine language (ML) programs with 
a minimum of fuss. MLX lets you enter 
the numbers from a special list that 
looks similar to BASIC DATA state- 
ments. It checks your typing on a line- 
by-line basis. It won't let you enter 
illegal characters when you should be 
typing numbers. It won't let you enter 
numbers greater than 255 (forbidden in 
ML). It won't let you enter the wrong 
numbers on the wrong line. In addition, 
MLX creates a ready-to-use tape or disk 
file. 

Using MIX 

Type in and save MLX (you'll want to 
use it in the future). When you're ready 
to type in an ML program, run MLX. 
MLX asks you for three numbers: the 
starting address, the ending address, 
and the run/init address. These num- 
bers are given in the article accompany- 
ing the ML program presented in MLX 
format. You must also choose one of 
three options for saving the file: as a 
boot tape, as ■ lisk brnarj' file, or as boot 
disk. The article with the ML program 
should specify which formats may be 
used. 

When you run MLX, you'll see a 
prompt corresponding to the starting 
address. The prompt is the current line 
you are entering from the listing. It 
increases by six each time you enter a 
line. That's because each line has seven 
numbers — six actual data numbers plus 
a checksum number. The checksum 
verifies that you typed the previous six 
numbers correctly. If you enter any of 
the six numbers wrong, or enter the 
checksum wrong, the computer rings a 
buzzer and prompts you to reenter the 
line. If you enter it correctly, a bell tone 
sounds and you continue to the next 
line, 

MLX accepts only numbers as in- 
put. If you make a typing error, press 
the DEL/BACK SPACE; the entire 
number is deleted. You can press it as 
many times as necessary back to the 
start of the line. If you enter three-digit 
numbers as listed, the computer auto- 
matically prints the comma and goes on 



to accept the next number. If you enter 
fewer than three digits, you can press 
the comma key, the space bar, or the 
RETURN key to advance to the next 
number. The checksum automatically 
appears in inverse video for emphasis. 

MLX Commands 

When you finish typing an ML listing 
(assuming you type it all in one ses- 
sion), you can then save the completed 
program on tape or disk. Follow the 
screen instructions. If you get any errors 
while saving, you probably have a bad 
disk, or the disk is full, or you've made 
a typo when entering the MLX program 
itself. 

You don't have to enter the whole 
ML program in one sitting. MLX lets 
you enter as much as you want, save it, 
and then reload the file from tape or 
disk later. MLX recognizes these 
commands: 

CTRL-S Save 

CTRL-L Load 

CTRL-N New Address 

CTRL-D Display 

To issue a command, hold down 
the CTRL key {CONTROL on the XL 
models) and press the indicated key. 
When you enter a command, M1J( 
jumps out of the line you've been typ- 
ing, so we recommend you do it at a 
new prompt. Use the Save command 
(CTRL-S) to save what you've been 
working on. It will save on tape or disk, 
as if you've finished, but the tape or 
disk won't work, of course, until you 
finish the typing. Remember to make a 
note of what address you stop at. The 
next time you run MLX, answer all the 
prompts as you did before — regardless 
of where you stopped typing — then in- 
sert the disk or tape. When you get to 
the line number prompt, press CTRL-L 
to reload the partly completed file into 
memory. Then use the New Address 
command to resume typing. 

To use the New Address com- 
mand, press CTRL-N and enter the ad- 
dress where you previously stopped. 
The prompt will change, and you can 
then continue typing. Always enter a 
New Address that matches up with one 
of the line numbers in the MLX-format 
listing, or else the checksum won't 
work. The Display command lets you 
display a section of your typing. After 
you press CTRL-D, enter two addresses 
within the line number range of the 
listing. You can break out of the Usting 



display and return to the prompt by 

pressing any key. 

Atari MLX: Machine 
Language Entry 

For Instructions on entering this listing, pieose 
refer to "COMPUTE I's Guide to T/ping In 
Programs" in this issue of computei. 

DB 100 GRAPHICS 0tDL = PEEK(56 
0) +256*PEEK (561 ) +4i PQ 
KE DL-1,71:P0KE DL+2, 
6 

NJ110 POSITION B,0!? "MLX": 
POSITION 23,0:7 "fEOi 

0« ? 

? "Starting Address"; 

: INPUT BESS? " Endin 

g Address" ;: INPUT FIN 

;? "Run/Init Address" 

; J INPUT STARTftDR 

DIM ft (6) , BUFFER* (FIN- 

BEE+127> , T* (20) , F« (20 

) ,CI0«t7> , SECTOR* (12B 

) ,DSKINV»(6) 

OPEN #1,4,0, "K: ":? s ? 

("Eiape or Eisk:"; 
BUFFER*=CHR*(0) : BUFFE 
R« tFIN-BEB+30)=BUFFER 
«; BUFFER* (2>=BUFFER*: 
SECTOR*=BUFFER* 
ADDRsBeG:C10«="hhh" :C 
10* (4>=CHR* ( 170) : CIO* 
(5) ="Ly" :Cia* (7) =CHR* 
(228) 

GET #1,MEDIA:IF MEDIA 
084 AND MEDIA068 TH 
EN 170 

? CHR*(MEDIA) !? : IF M 
EDIflOASC ("T" ) THEN B 
UFFER*=" ":GOT0 250 
BEG-eEe-24:BUFFeR«=CH 
R»(0) : BUFFER* (2)=CHR* 
< INT( (FIN-BEQ+127) /12 
8) ) 

H=INT (BEE/2Si) : L=BEG~ 
H«256: BUFFER* (3)=CHR« 
(L) : BUFFER* (4)=CHR* (H 



K 120 

DD 130 
]J 140 

m 150 

U 170 
PO 180 
PL 190 

KF 200 

EC 210 

PB 220 

BP 230 

%l 240 
HI 250 
00 260 
U 270 



> 

PINIT=BEG+8:H=INT (PIN 
lT/256) :L=PIN1T-H«256 
: BUFFER* (5) =CHR* (L) : B 
UFFER*(6)=CHR* (H> 
FOR 1=7 TO 24:READ A: 
BUFFER* ( I) -CHRS (A) iNE 
XT I:DATA 24,96,169,6 
0,141,2,211, 169,0, 133 
, 10, 169,0, 133, 11, 76,0 

.0 

H= I NT (ST ART ADR/256) : L 

=ST ART ADR-H* 256: BUFFE 

R*(15)-CHR*(L) iBUFFER 

t ( 19) =CHR* (H> 

BUFFER* (23) =CHR* (L) s B 

UFFER* (24) =CHR* (H) 

IF MEDIAOASC ( "D" ) TH 

EN 360 

? :? "Boot Kisk or Bi 

nary Sile:"; 

GET «1,DTYPE:IF DTYPE 



122 COMmn^g March 1986 





06B AND DTYPEO70 TH 




"IncorrBCf ■|CHR«<253 




" trying to access"!? 




EN 270 




) t I? iBOTO 370 




F*:CLOSE #2!? sBOTO 


£1(280 


7 CHR«{DTYPE) ! IF DTYP 


EK S30 


FOR W-15 TO STEP -1 




760 




E-70 THEN 360 




iSOUND 0, 30, 10,MiNEXT 


KC 880 


REM Mn.I.>^<^:1-J^ 


PJ 290 


BEG=BEG-30i BUFFER»=CH 




M 


l«890 


IF READ THEN ? 5? "Re 




R$ (0) : BUFFER* <2>=CHR« 


ft 540 


FOR I-i TO 6: POKE ADR 




ad Tap«" 




<INT< (FIN-BEG+I27)/12 




(BUFFER* >+ADDR-BEG+: - 


KI 900 


? 1? J? "Insert, Rewi 




8} ) 




t,fi(I)>NEXT I 




nd Tape."!? "Press PL 


16 300 


H"INT<BE6/256) s L=BeG- 


KBSS0 


ADDR-ADDR+61 IF ADDR<= 




AY "i : IF NOT READ TH 




H*2S6jBUFFER* (3)=CHR« 




FIN THEN 370 




EN ? "!< RECORD" 




(L) ! BUFFER* <4 ) =>CHR* (H 


sn S60 


GOTO 710 


LP 910 


? I? "Press l:»i*<i!;r wh 




) 


fl 370 


N-0JZ-0 




en ready: " ; 


HH310 


PINIT=STflRTftDR:H=INT! 


PHse0 


GET #i,A! IF A«1SS OR 


JH920 


TRAP 940! CLOSE #2: OPE 




PINIT/256) : L=P1NIT-H« 




A-44 OR fl-32 THEN 670 




N #2,8-4«READ, 128, "C: 




2S6i BUFFER* (5) -CHR* (L 


FB 590 


IF A<32 THEN N=-A!RET 




":? :? "Working " 

GOSUB 9701 IF PEEK(195 




) lBUFFER»{6)-CHR«(H) 




URN 


m 930 


SO 320 


RESTORE 330: FOR 1=7 T 


EB 600 


IF A0126 THEN 630 




) >1 THEN 960 




O 30!REflD fl:BUFFER*(I 


KL 6 10 


SOSUB 6901 IF I"! AND 


HH 940 


CLOSE »2!TRAP 32767:? 




)=CHR*<ft) -NEXT I 




T-44 THEN N--I1? CHR* 




"Finished."!? t? iIF 


Eft 330 


DATA 169,0,141,231,2, 




(126) 1 18OTO 690 




READ THEN LET READ=0 




133, 14, 169,0, 141,232, 


6N 620 


GOTO 570 




iBOTO 360 




2, 133, 15, 169,0, 133, 10 


%i 630 


IF A<48 OR A>S7 THEN 


HF930 


END 




, 169,0, 133, 11,24,96 




5B0 


CD 960 


? 1? "Error "j PEEK (19 


01340 


H-INT<BEG/256) : L=BEG- 


AM 640 


? CHR»(A+RF> j :N=N«10+ 




5) 1 " when reading/Hrl 




H«256:BUFFER* (a)-CHR« 




A-48 




ting boot t«pe"j? i CL 




(L) ! BUFFER* (1 5) =CHR*( 
H) 


ES650 


IF N>255 THEN ? CHR* { 
253) ; I A=126lBaT0 600 
Z=Z+1: IF Z<3 THEN 580 
IF Z-0 THEN ? CHR* (25 
3))lBDT0 570 


ne 970 


OSE #2iB0T0 890 


DD 350 


H-=INT<STflRTflDR/256) :L 
=STARTftDR-H«256iBUFFE 
R*<22)=CHR* (L) {BUFFER 


EN 660 

JH670 






e»2 openc^d RERD=0 f^oK 


l-M»[-»J 1 —1 1 II 1 ■ 1 


t^FF 




* (26»=CHR* (H) 


KC6S0 


? ", "j : RETURN 


EA9B0 


X-321REM FllB«2,*20 


JP 360 


GRAPHICS 0:PDKE 712,1 


11(1690 


POKE 752,1:F0R 1=1 TO 


EF990 


ICC0M-B34! ICBADR-8361 




0:PQKE 710, 10:POKE 70 




3:? CHR*(30) i sGET #6 




ICBLEN-B401 ICSTflT=835 




9,2 




,T;IF T044 AND TOSS 


ND 1000 


H=INT (ADR (BUFFER*) /2 


j(;370 


? ADDR, "1 ", iFOR J=l T 




THEN ? CHR*(A) ; sNEXT 




56) : L=ADR( BUFFER* )-H 




O 6 




I 




*256:P0KE ICBADR+X,L 


KF ^80 


GOSUB S70SIF N=-l THE 


PI 700 


POKE 752,0!? " "jCHR* 




:PQKE ICBADR+X+1,H 




N J-0-lsGQTO 380 




(126) ; I RETURN 


FH 1 1 


L=FIN-BEB+1 :H=INT{L/ 


BF 390 


IF N=-19 THEN 720 


en 710 


GRAPHICS 0IPDKE 710,2 




256) SL»L-H«256!P0KE 


SI 400 


IF N=-12 THEN LET REA 




6:POKE 712,26:PQKE 70 




ICBLEN+X,L:PDKE ICBL 




D=l!BQTa 720 




9,2 




EN+X+1,H 


At 410 


TRAP 410! IF N=-14 THE 


FF720 


IF «EDIA=ASC("T") THE 


KS 1020 


POKE ICCOM+X, 11-4«RE 




N ? s? "Nbh Address"; 




N 890 




ADi A-USR(ADR (CIO*) , X 




! INPUT ADDRi? iGOTO 3 


m 730 


REM ■iSHGM 




J 




70 


m 740 


IF READ THEN ? :? "Lo 


BG 1030 


POKE I95,PEEK( ICSTAT 


JD420 


TRAP 327A7ilF NO-4 T 




ad File"!? 




) ! RETURN 




HEN 4B0 


IS 730 


IF DTYPEO70 THEN 104 


U 1040 


FiEM ■■-]44<>]:»A[iB 


AJ 430 


TRAP 430:? :? "Displa 
ysFrom'-; : INPUT F: ? , " 
To"!i INPUT TsTRAP 327 
67 


AE 760 




? !? "Enter AUTORUN.S 
VS ■for automatic use" 
:? :? "Enter filename 


ec 1 050 

HE 1060 
FC 1070 


IF READ THEN 1100 

? :? "Format Disk In 

Drive 1? (Y/N) t " ; 
GET #1,A:IF A07B AN 


ni 440 


IF F<BEB DR F>F!N OR 
T<BEE DR T>FIN OR T<F 
THEN ? CHR* (253) ; "At 


GF 770 


s INPUT T* 
F*-T«tIF LEN(T«)>2 TH 
EN IF T*<1,2)<>"D!" T 


EC 1080 


D A089 THEN 1070 

7 CHR*(A} I IF A = 7a TH 

EN 1100 

? !? "Formatting " 

! XIO 254, #2, 0,0, "D: " 




least "j BEEs ", Not M 
ore Than ";FIN:GQTO 4 
30 


KI 780 


HEN F»="D: ":F«<3)=T« 
TRAP 870! CLOSE #2:0PE 
N #Z,8-4«READ,0,F«:? 


£P 1090 








:? "Working..." 




!? "Format Complete" 


m450 


FOR I=F TD T STEP 6:? 






. T 




! 7 I ; ": " ; : FOR K=0 TO 


JII790 


IF READ THEN FOR I "= 1 
TO 61GET •2,AsNEXT I: 

rTt ^t ^r f^ ^"b p^ jv 


ftC 1100 


NR=INT((FIN-BEB+127) 




5;N=PEEK (ADR(BUFFER« 






/I 28) i BUFFER* (FIN-BE 




J+I+K-BEB) :T*""000"-T 
*(4-LEN(STR» (N) ) > =STR 


PO B00 


GOTO 820 

PUT #2,2SS!PUT #2,255 




G+2)=CHR«(0) J IF READ 
THEN ? "Reading, , . " 
iGOTO 1120 
7 "Writing. . . " 
FOR 1=1 TO NRsS=I 
IF READ THEN BDSUB 1 


HA 460 


*(«) 

IF PEEK(764)<25S THEN 


DJ 810 


H=INT(BEB/256) ! t_=BEG- 
H«256:PUT #2,L:PUT #2 


LE 1110 




BET #l,AiPOP s POP :? 
I GOTO 370 




,H!H=INT (FIN/256) : L=F 
lN-Ht236!PUT #2,LlPUT 

«2,H 
GOSUB 970: IF PEEKC195 
) >1 THEN 870 
IF STARTADR"0 OR READ 

THEN 850 
PUT «2,224:PUT #2,2sP 


Lt 1120 
to 1130 


F11470 

EA480 


? T«5 ", "; :NEXT Ks? CH 
R* ( 126) ; iNEXT I:? : ? 
;GDTO 370 
IF N<0 THEN ? iGOTO 3 


IIFe20 
IFB30 


PL 1140 


220s BUFFER* ( I « 128- 12 
7)=SECTOR»sGDTO 1160 
SECTDR«=BUFFER* (1*12 
8-127) 




70 


F1Q40 


M 11S0 


GOSUB 1220 


I1H4 90 


A(J)=N!NEXT J 




UT #2,225!PUT «2,2iH= 


DN 1160 


IF PEEK{DSTATS)<>1 T 


JI1500 


CKSUM = ADDR-INT tADDR/2 




INT (ST ART ADR/ 256) ! L=S 




HEN 1200 




56)t256:FOR I-l TO 6! 




TARTADR-H*256! PUT #2, 


FB 1170 


NEXT I 




CKSUM=CKSUM+A ( I ) : CKSU 




L:PUT «2,H 


Sfl 1180 


IF NOT READ THEN EN 




M-CKSUM-256t <CKSUM>25 






D 




5>tNEXT I 


HH 830 


TRAP 327671 CLOSE »2! ? 


m 1190 


7 :? :LET READ=0:GQT 


KK S10 


RF-I28:S0UND 0,200,12 




"Fini shed. ": IF READ 




360 




,8lE0SUe S70:SOUND 0, 




THEN ? 1? iLET READ=0 


IS 1200 


? "Error 00 disk ace 




0,0,0:RF-0i? CHR*(126 




I GOTO 360 




BBs."i? "May need fa 




) 


«F860 


END 




rmatting. "sBOTD 1040 


CN520 


IF NOCKSUM THEN ? :? 


fO 870 


? "Error ";PEEK(195>; 


n 1210 


REM 



March 19B6 COMPUTEI 123 



K 122f 

ni;1;T.llh*<:i5 
IB 1230 REM Drive ONE 
IH 1240 REM Pass buffer in S 

ECTOR* 
IIP 1250 REM sector « In vari 

able S 
Efil260 REM READ-1 for read, 
H 1270 REM REflD-=0 for write 
BK 1280 BASE = 3t256 
SL 1290 DUNIT=BftSE + l: DCOMND = 

BASE-t-2! DSTflTS = BfiSE + 3 



KL1300 DBUFLQ-BASE + 4:DBUFHI 

-BASE+5 
A11310 DBYTi.0 = BASE + 8!DBYTHI 

-BASE+9 
Jfl 1320 DAUX1«'BASE + 10!DAUX2= 

BASE+1 1 
PK 1330 REM DIM DSKINV«{4J 
Eft 1340 DSKINV«-"hLS"i DSKINV 

«(4)=CHR«(22e) 
PF1350 POKE DUNIT, 1 : A=ADB(S 

ECTOR*) s H=INT ( A/25t} 

I L=A-256«H 



B? 1360 


POKE DBUFHI.H 


CO 1370 


POKE DBUFLO.L 


PD 1380 


POKE DC0MND,87-5tREA 

D 

POKE DAUX2, INT(S/2S6 


AA 1390 




) I POKE DAUX1,S-PEEK< 




DAUX2) t256 


M 1400 


A-USR (ADR<DSKINV«) > 


xe 1 4 1 


RETURN 



COMPUTES's Guide 
To Typing in Programs 



Computers are precise — type the pro- 
gram exactly as listed, including neces- 
sary punctuation and symbols, except 
for special characters noted below. We 
have implemented a special listing con- 
vention as well as a program to check 
your typing — "Automatic Proofreader, 

Commodore, Apple, and Atari 
programs can contain some hard-to- 
read special characters, so we have a 
listing system that indicates these con- 
trol characters. You will find these 
Commodore and Atari characters in 
curly braces; do not type the braces. For 
example, {CLEAR} or {CLR} instructs 
you to insert the symbol which clears 
the screen on the Atari or Commodore 
machines. For Commodore, Apple, and 
Atari, a symbol by itself within curly 
braces is usually a control key or graph- 
ics key. If you see (A}, hold down the 
CONTROL key and press A. This will 
produce a reverse video character on 
the Commodore (in quote mode), a 
graphics character on the Atari, and an 
invisible control character on the Ap- 
ple. Graphics characters entered with 
the Commodore logo key are enclosed 
in a special bracket: [<A>]. In this case, 
you would hold down the Commodore 
logo key as you type A. Our Commo- 
dore listings are in uppercase, so shifted 
symbols are underlined. A graphics 
heart symbol (SHIFT-S) would be listed 
as S. One exception is {SHIFT- 
SPACE}. When you see this, hold down 
SHIFT and press the space bar. If a 
number precedes a symbol, such as {5 
RIGHT}, {6 S}, or [<8Q>], you would 
enter five cureor rights, six shifted S's, 
or eight Commodore-Q's. On the Atari, 
inverse characters (white on black) 
should be entered with the Atari logo 
key. 

Any more than two spaces will be 
listed. For example, {6 SPACES} means 
press the space bar six times. Our list- 
ings never leave a space at the end of a 
line, instead moving it to the next print- 
ed line as {SPACE}. 



Atari 400/800/XL/XE 



When you see 
fCLEAR} 

<:up> 

CDOWNJ 
€LEFT} 
<RIBHT} 
{BACK S} 
{DELETE} 
{INSERT> 
{DEL LINE> 
{INS LH«> 
{TABJ 
{CLR TAB> 
{SET TAB> 
{BELL} 
{ESO 



Type 



ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
ESC 
ESC 



SHIFT < 
CTRL - 
CTRL ^ 
CTRL + 
CTRL » 
DELETE 
CTRL DELETE 
CTRL INSERT 
SHIFT DELETE 
SHIFT INSERT 
TAB 

CTRL TAB 
SHIFT TAB 
CTRL 2 
ESC 



See 

K CI ear Screen 

t Cur sor Up 

+ Cursor Down 

t- Cursor Left 

•* Cursor Right 

A Backspace 

ZM Delete character 

U Insert character 

C9 Delete line 

Q Insert line 

^ TAB key 

Q Clear tab 

a Set tab stop 

Q Ring bu22er 

^ Escape key 



Press: 



See; 



I SH[Fr i 



aR/HOME 



CLR/HOME 



SHIFT 


t CRSR i 




t CRSR i 






SHIFT 


— CRSR — 



-i-CRSR — 



c 



CTRL 9 


CTRL 1 


CTRL 1 ; 

I 



m 



m 



Commodore PET/CBM/VlC/64/1 28/16/+4 

WhenVbu 
Read: 

%*^ 

{ Fl ) 

( R } 

{ F3 ) 

( M \ 

( F5 } 

{ F6 ) 

{ F7 } 

~{ F8 t 
< 



WhenVbu 
Read: 

{CLR} 

{HOME} 

{UP} 

{DOWN} 

{LEFT} 

{RIGHT) 

{RVS} 

{OFF} 

{BLK) ■ 

{WHT} 

(RED) 

{CYN} 

{PUR} 

(GRN) 

{BLU) 

{YEL} 



Press: 




CTRL 


* 




CTRL 


5 






CTRL 1 


i 



CTRL 


7 


CTRL 


a 



IS 



COMMODORE 


i 


COMMODORE 




COMMODORI 


|3 


COMMODORE 




1 COMMODORE 




[COMMODORE 




COMMODORE 




COMMODORE 




fl 




SHIFT j fl 




(3 




SHIFT B 




f5 




SHIFT (5 




f! 




SHIFT t! 




A 





See: 
□ 



E3 

■I 
□ 






124 COMPUTE! March 19S6 



The Automatic Proofreader 

This month, we are featuring a com- 
pletely new Proofreader for the Com- 
modore 64, 128, VIC, Plus/4, and 16. 
Please refer to "The New Automatic 
Proofreader for Commodore" article 
elsewhere in this issue for more infor- 
mation. Type in the appropriate pro- 
gram listed below, then save it for 
future use. On the Atari, run the Proof- 
reader to activate it, then enter NEW to 
erase the BASIC loader (the Proofread- 
er remains active in memory as a ma- 
chine language program). Pressing 
SYSTEM RESET deactivates the Proof- 
reader. Use PRINT USR(1536) to reen- 
able the Atari Proofreader. The Apple 
Proofreader erases the BASIC portion 
of itself after you RUN it, leaving only 
the machine language portion in mem- 
ory. It works with either DOS 3.3 or 
ProDOS. Disable the Apple Proofread- 
er by pressing CTRL-RESET before 
running another BASIC program. The 
IBM Proofreader is a BASIC program 
that simulates the IBM BASIC line edi- 
tor, letting you enter, edit, list, save, and 
load programs that you type. Type 
RUN to activate. 

Once the Proofreader is active, try 
typing in a line. As soon as you press 
RETURN, a hexadecimal number (on 
the Apple) or a pair of letters (on the 
Atari or IBM) appears. The number or 
pair of letters is called a checksum. 

Compare the value provided by 
the Proofreader with the checksum 
printed in the program listing in the 
magazine. In Commodore listings, the 
checksum is set off from the rest of the 
line Vkith rem. This prevents a syntax 
error if the checksum is typed in, but 
the REM statements and checksums 
need not be typed in. 

In Atari, Apple, and IBM listings, 
the checksum is given to the left of each 
line number. Just type in the program, a 
line at a time (without the printed 
checksum) and compare the check- 
sums. If they match, go on to the next 
line. If not, check your typing: You've 
made a mistake. On the Atari and Ap- 
ple Proofreaders, spaces are not count- 
ed as part of the checksum, so be sure 
you type the right number of spaces 
between quote marks. The Atari Proof- 
reader does not check to see that you've 
typed the characters in the right order, 
so if characters are transposed, the 
checksum stil matches the listing. Be- 
cause of the checksum method used, do 
not use abbreviations, such as ? for 
PRINT, The IBM Proofreader is the 
pickiest of aU; it will detect errors in 
spacing and transposition. Be sure to 
leave Caps Lock on, except when typ- 
ing lowercase characters. 



IBM Proofreader Commands 

Since the IBM Proofreader (Program 2) 
replaces the computer's normal BASIC 
line editor, it has to include many of the 
direct-mode IBM BASIC commands. 
The syntax is identical to IBM BASIC, 
Commands simulated are LIST, LLIST, 
NEW, FILES, SAVE, and LOAD. When 
listing your program, press any key (ex- 
cept Ctrl-Break) to stop the listing. If 
you enter NEW, the Proofreader will 
prompt you to press Y to be especially 
sure you mean yes. 

Two new commands are BASIC 
and CHECK. BASIC exits the Proof- 
reader back to IBM BASIC, leaving the 
Proofreader in memory. CHECK works 
just like LIST, but shows the checksums 
along with the listing. After you have 
typed in a program, save it to disk. 
Then exit the Proofreader with the 
BASIC command, and load the pro- 
gram into the normal BASIC environ- 
ment (this will replace the Proofreader 
in memory). You can now run the pro- 
gram, but you may want to resave it to 
disk. This will shorten it on disk and 
make it load faster, but it can no longer 
be edited with the Proofreader. If you 
want to convert a program to Proof- 
reader format, save it to disk with SAVE 
"filename",A. 

Program 1 : Atari Proofreader 

By Charles Brannon, Program Editor 

i0e QRAPHICS 

110 FOR I-1S36 TO 1700IRE 

AD AiPOKE I.AiCK-CK+A 

iNEXT I 
120 IF CKO19072 THEN ? " 

Error in DATA St«tBina 

nts. Chvck Typing. "i 

END 

130 A-USR(1336) 

140 ? «7 "Automatic Proof 

reader Now Activ*t«d. 
II 

150 END 

160 DATA 104,160,0,165,26 

,3,201,69,240,7 
170 DATA 200,200,192,34,2 

08,243,96,200, 169,74 
1B0 DATA 153,26,3,200,169 

,6, 153,26,3,162 
190 DATA 0,189,0,228,157, 

74,6,232,224, 16 
200 DATA 208,245,169,93,1 

41,78,6, 169,6, 141 
210 DATA 79,6,24,173,4,22 

B, 105, 1 , 141,95 
220 DATA 6,173,5,228,105, 

0,141,96,6,169 
230 DATA 0,133,203,96,247 

,238, 125,241,93,6 
240 DATA 244,241,115,241, 

124,241,76,205,238 
250 DATA 0,0,0,0,0,32,62, 

246,8,201 
260 DATA 155,240,13,201,3 

2,240,7,72,24, 101 
270 DATA 203,133,203,104, 

40,96,72, 152,72, 13B 
2B0 DATA 72,160,0,169,128 

, 145,88,200, 192,40 



290 DATA 208,249,165,203, 

74,74,74,74,24, 105 
300 DATA 161,160,3,145,88 

, 165.203,41, 15,24 
310 DATA 105,161,200,145, 

88, 169,0, 133,203, 104 
320 DATA 170,104, 16B, 104, 

40,96 

Program 2: IBM Proofreader 

By Charles Brannon, Program Editor 

J1C 10 'Automatic Proofreader Ver 
si on 3.0 (Lines 205,206 ad 
d»cf/190 del»ted/470,490 ch 
anged from V2.0> 
LD 100 Din L«(500),LNUIi(50£l):COL 
OR 0,7, 7: KEY aFF:CLS:MAX= 
0:LNUI1<0)=6SS36! 
PK 110 ON ERROR GOTO 120: KEY 15, 
CHR»(4)+CHR*t70):ON KEYd 
5) GOSUB 6401 KEY (IS) ON: 
GOTO 130 
BE 120 RESUME 130 

JJ 130 DEF SES=«cH40:W=PEEK<&H4A) 
IH 140 ON ERROR GOTO 650:PRINTtP 

RINT-'Proof reader Ready. " 

KB 150 LINE INPUT L»: Y=CSRLIN-1N 

T(LEN<L»)/W}-1; LOCATE Y, 1 

M 160 DEF SEG=0sPQKE 1050, 30s PO 

KE 1052, 34: POKE 1034, 0:PD 

KE I055,79:POKE 1056, 13: P 

OKE 1057, 28: LINE INPUT L« 

:DEF 5EB:IF L«-"" THEN 15 



K 170 IF LEFT»(L»,1)=" " THEN L 

»-MID»CL«,2) :0OTO 170 
NN 180 IF VAL(LEFT»(L«,2) )=0 AND 
HID«{L»,3,1)=" " THEN L* 
"'HID»<L«,4) 
Nt 200 IF ASC(L»)>57 THEN 260 'n 
□ line nufliber, ttierefors 
command 
J6 205 BL<»INSTR(L«, " "):IF BL-0 
THEN BL»«L»:BDTO 206 ELSE 
BL»»LEFT«<L»,BL-n 
SH 206 LNUM-=VALCBL*)!TEXT»=MID»( 

L*, LEN (STR* CLNUM) ) +1 } 
06 210 IF TEXT*-"" THEN BOSUB 54 
0;1F LNUM-LNUM(P) THEN QO 
SOB 5609 GOTO 150 ELSE 150 
m 220 CKSUM-0:FOR 1=1 TO LENtL» 
) : CKSUM= (CKSUM+ASC: (M1D« (L 
•, I))tl} AND 255: NEXT: LOG 
ATE Y,l: PRINT CHR*(65+CKS 
UM/16)+CHR*(65+(CKSUM AND 
13J)+" "+L» 
J£ 230 BOSUB 540! IF LNUM(P)=LNUn 
THEN L»(P><=TEXT«iBOTO 15 
'replace line 
CL 240 QOSUB 5S0:8OTO 150 'inser 

t the line 
M 260 TEXT«="":FOR 1=1 TO LEN(L 
•)!A-ASC<M1D»(L», DJsTEXT 
•~TEXT«+CHR*(A+32»(A>96 A 
ND A<123)) :NEXT 
LP 270 DELIt1ITER=INSTR{TEXT«, " " 
) |CDMMAND»=TEXT»!AR0*=""I 
IF DELIMITER THEN COMMAND 
•-LEFT* (TEXT*, DELIMITER-1 
) 1 ARS*-MID* ( TEXT* , DELIMIT 
ER+1) ELSE DELIMITER-INST 
R(TEXT*,CHR*(34) ):IF DELI 
MITER THEN COMMflND*-LEFT» 
(TEXT*, DELIMITER-1 ) : ARH«= 
MID* (TEXT*, DELIMITER) 
fC 280 IF CDMMAND»<>"LIST" THEN 

410 
11 290 OPEN "acrns " FOR OUTPUT A 

S «1 
LH 300 IF ARB*"-"" THEN FIRST=0SP 
-MAX- l! GOTO 340 



March 1966 COMPUTil 125 



IJ 310 DELIMITER=INSTR(ARa», "-") 

! IF DELIMlTER=a THEN LNUfl 
-VAL ( ARS* ) ! QOBUB 54B : F I RS 

T~P«BOTO 340 
BP 32a FIRST=-VAL{LEFT*(ARQ»,DELI 

M I TER) ) ! LAST=VAL (M I D» ( ARS 

*,DELIMITER+1>) 
EC 330 LNUM=FIRST:GDSUB 540JFIRS 

T-PiLNUM-LAST:QaSUB 540! 1 

F P-g THEN P-MAX-1 
BD 340 FOR X=FIRST TO PsN*=MID«{ 

gTR*(LNUM<X>),2)+" " 
KA 350 IF CKFLAB-0 THEN ft»"""sSO 

TO 370 
PF 360 CKSUM«0!fl»i=N»+L«tX) iFOR I 

-1 TO LEN(A»):CKSUM-(CKBU 

M+ASC<MlD«tA»,I)>tIl AND 

235: NEXTi A«-CHR* (65+CKSUM 

/16)+CHR«(63+(CKSUK AND 1 

5>)+" " 
DD 370 PRINT «1 , A*+N»+L» (X) 
J J 380 IF INKEY«<>"" THEN X^P 
OF 390 NEXT : CLOSE »I:CKFLAG=0 
M 400 SOTO 130 
PD 410 IF COMMAND*="LLIST" THEN 

OPEN "Iptlj" FOR OUTPUT A 

S #l!aOTO 300 
HI 420 IF COMMAND*^ "CHECK" THEN 

CKFLAB-1 I OOTO 290 
«« 430 IF COMMAND»<>"SAVE" THEN 

4S0 
CL 440 SOSUB 600: OPEN ARQ» FOR 

UTPUT AS IHiflRS»<-""»QOTD 

300 
QE 450 IF COMMAND«<>"L0AD" THEN 

490 
Pfi 460 GOSUB 600: OPEN ARB* FOR I 

NPUT 69 #liHAX-0:P-0 
M 470 WHILE NOT EOF (1): LINE INP 



UT #l,L«iBU-INSTR(L*, " ") 
iBL»-LeFT« (L*, BL-1 > I LNUfl ( 
P>-VAL {BL»> I L* (P) -MID»(L« 
,LEN (8TR» ( VAL (BL«) ) ) +1 > I P 
-P+1 : WEND 
KK 480 MAX=P!CLDSE ttlsQOTO 130 
ej 490 IF COMMAND»«="NeW" THEN IN 
fnJT "Er««« program - Arm 
you ■urB"jL»iIF LEFTStL*, 
l)-"y' OR LEFT»{L«,1)-"Y" 
THEN MAX»a» LNUM (0) -65S36 
! I SOTO 1301 ELSE 130 
CL 300 IF CDHIiAND«="BASIC- THEN 
COLOR 7, 0,01 ON ERROR BDTO 
0iCLSiEND 
XC 310 IF COMHAND«<>"FILES" THEN 

520 
m 515 IF ARB*""" THEN ARS«""Ai " 

ELSE SEt-ltBOSUB 600 
10 517 FILES ARQAiBOTO 130 
DD 320 F>RINT"Bynt«x errQr":aOTO 

130 
BQ 540 P-0! WHILE LNUM>LNUM(P) AN 
D P<MAXtP-P+ljWENDiRETURN 
HI 560 hWX-MAX-liFOR X-P TO MAX I 
LNUM (X) -LNU« CX+1 > «L« tX) -L 
•<X+l)iHEXTtRETURN 
BK 580 MAX-MAX+llFOR X-MAX TO P+ 
i STEP -liLNUMCX>-LNUM<X- 
l>iL«(X)-L»<X-l)iNEXTiL*( 
P)-TEXT»I Lf*JM (P)-LNUMlR£T 
URN 
6A 600 IF LEFT«(ARG«,1)<>CHR*(34 
> THEN 520 ELSE ARQ«-MII}« 
<ARQ«,2) 
U 610 IF RIBHT*(AR8«,1)-CHR»(34 
) THEN ARB*-LEFT»(ARB*,LE 
N<ARG«)-'l) 
Lfl 620 IF 3EL-0 AND INSTR<ARS»," 



."!-« THEN flRB»-ARa«+-.Bfl 

S" 
ID 630 SEL-0 1 RETURN 
Ml 640 CLOSE «llCKFLAe-0tPRINT"S 

toppsd." I RETURN 130 
H 650 PRINT -Error «"|ERRilS8UH 

E 150 

Program 3: Apple 
Proofreader 

By Tim Victor, Editorial Programmer 

10 C = 0: FDR I = 76B TO 7feB + 

68: READ AiC = C -4^ Ai POKE I 

,A: NEXT 
20 IF C < > 7258 THEN PRINT "ER 

RDR IN PROOFREADER DATA STAT 

EMENTS": END 
30 IF PEEK (190 » 256) < > 76 T 

HEN POKE 56,0: POKE 57,3: Cfl 

LL 1002: GOTO 50 
40 PRINT CHR« {4); "IN#A»300" 
50 POKE 34,0: HOME : POKE 34, li 
VTAB 2: PRINT "PROOFREADER 

INSTALLED" 
60 NEW 

100 DATA 216,32,27,253,201,141 
110 DATA 208,60,138,72,169,0 
120 DATA 72,189,255,1,201,160 
130 DATA 240,8,104,10,125,255 
140 DATA 1,105,0,72,202,208 
150 DATA 238,104,170,41,15,9 
160 DATA 49,201,59,144,2,233 
170 DATA 57,141,1,4,138,74 
190 DATA 74,74,74,41,15,9 
190 DATA 48,201,58,144,2,233 
200 DATA 57,141,0,4,104,170 
210 DATA 169,141,96 © 



CAPUTE! 



SpeedScript Update 

There is an error in the correction to 
Apple SpeedScript from the "Speed- 
Script 3.0 Revisited" article in the 
December 1985 issue (p. 90) which 
causes the page number to repeat 
continuously when the # format- 
ting command is used. In line 1C88 
of the listing, the 9D should be a 
9C, Load SpeedScript back into Ap- 
ple "MLX" and enter the following 
replacement line: 
1C88: AC E5 IE DO 9C AE E6 IE EC 

After making the correction, be sure 
to use the MLX Save option to save 
a new copy of SpeedScript. 

The item in the January 1986 
"Reader's Feedback" column (p. 
10) that told how to make Commo- 
dore 64 SpeedScript 3.0 default to 
disk for saving and loading had 
transposed digits in the middle 
POKE address. The line should 
have read: 



POKE 4904,234: POKE 4905,169: POKE 
4906,68 

This modification works for all up- 
dates of version 3 (3.0, 3,1, or 3.2). 

Atari Solitaire 

The Atari listing for this game from 
the January 1986 issue (Program 2, 
p. 48) has a typographical error in 
line 910. The third character in S$, 
which defines the card suits, should 
be {.} instead of the apostrophe 
shown. CTRL-period is the dia- 
mond graphic character. 

Formatted Printouts For 
Commodore 

There are two errors in the DATA 
statements for this program from 
the January 1986 issue (p. 99). In 
line 540, the null string, "", should 
come before the item "BLACK" 
rather than after it. In line 640, the 
last item in the line should be " T " 
rather than a null string. 



Skyscape For iBIM & Apple 

Certain combinations of date and 
time inputs cause syntax errors in 
the IBM and Apple versions of this 
astronomy program from the No- 
vember 1985 issue (p. 62). To cor- 
rect this, change CC <= to CC 
<= 1 in line 2060 of the IBM ver- 
sion (Program 3) and line 1770 of 
the Apple version (Program 4). 

Memo Diary 

The Commodore version of this 
calendar utility from the December 
1985 issue (p. 65) won't work with 
tape. Tape users should modify the 
OPEN statement in line 3170 as 
follows: 

OPEN l,l + 7*Dl,8*DH-l,F$-rG$: 

Author Jim Butterfield also recom- 
mends that line 660 be replaced 
with 660 REM. With this change 
the calendar file will always be 
updated. © 



126 COMPUTEl March 1986 



Classified 





SOFTWARE 




Animal Records maintained with "PETIGREE" 
for the C64. Produces Litter, Awards, Breeding 
Show, Individual Records, Pedigree Charts, 
$69.95. GENEALOGY SOFTWARE, FOB 1151, 
PORT HURON, Ml 48061, (519) 344-3990. 




TI-99/4A NEW STATES AND CAPITALS GAME 

Hi-Res map of USA. Send $12 for cass. 

Or $1 for more info, to: TRINITY SYSTEMS 

1022 Grandview, Pittsburgh, PA 15237 

TI-99/4A Software/Hardware bargains, 
-iard-lo-find items. Huge selection. 
Fast service. Free catalog. D.E.C., 
Box 690, Hicksville, NY 11801 






FREE SOFTWARE CATALOGl 

Call Toil-Free 1-800-554-1162, Tevex, Inc. 
Save Vj off retail prices. We carry SSI, 
Elect. Arts, Infocom, and many more! 




PROGRAMS FOR THE TANDY 1000 
Send $1 for list of educat. & entertainment 
jrograms. Refundable with first purchase. 
SODA POP SW, FOB 653, Kenosha, WI 53141 


COMMODORE: TRY BEFORE YOU BUY. Top 25 
best-selling games, utilities, new releases. Visa, 
MasterCard. Free brochure. Rent-A-Disk, 908 9th 
Ave., Huntington, WV 25701 (304) 522-1665 




FREE APPLE SOFTWARE 

Over 1,000 Public Domain Programs on 50 

diskettes, $5 each, plus $1 shipping per order. 

Send $1 for catalog, refundable. 

C & H ENTERPRISES 

Box 29243, Memphis, TN 38127 


INTEREST CALCULATIONS. 

MAl-2.10 lets your computer help atialyze 
investment decisions. Calc; future value, present 
value, annuities, sinking funds, loan pymt 
sched., -i- more! Menu driven/Simple. IBM 
ck/mo. Muriier Associates, Inc., Dept. A5, 
P.O. Box 79314, Houston, Texas 77279 
(713) 784-4348. 

• • IBM-PCjr. OWNERS * * 

Learn (o unleash jr's hidden powers! 
How-to info from jr. experts, software tips, 
freeware, best buys and more! Send $1.50 for 
singie issue or $18/yr. (12 issues) to: 
JR. NEWSLETTER, Crider Associates, 
Box 163, Southbury, CT 064 B8 




LOTTO PICKER. Improve your chances for those 
Million Dollar Jackpots! Picks LOTTO, WlN-4, & 
3aUy Numbers. All USA & Can. games incl. 
Expandable! IBM/C64/TI99 $29.95. Order Now! 
l-SOO-341-1950 Ext. 77. Mail Orders: Ridge, 170 
Broadway, #20]-C, NYC, NY 10038. Catalog. 

SAVE MONEYI EASY TAX SIMPLIFIES THE 15 

■nosl common IRS tax forms. Faster, line 


by line preparation on saecn and printer. 
Commodore 64, disk. Send $39.95 plus $2 s/h io 
Hybrid Software, 1739 Schilder Lane, 
Waveriy, OH 45690 

PROJECT PLANNING/MANAGEMENT using 


FREE PROGRAMS! Apple/IBM PC/ TI99/ 
Timex/C64/ + 4/ 16/ V20/ Adam/TRS80 III/ 
4/ 1 00/200/CoCo/PC3/MCI O/PCj r. Send 
stamps! EZRAEZRA, Box 5222 TM, San Diego, 
CA 92105 




he Cb4, bA, or <^1ZS. Uata sheet tor bAbh - 
Prgm for $106.95 (CA res. add 6% sis tx). 
LAWCO, Dept. C, Box 2009, Manteca, CA 95336 




TEACHERS - MAGNUM GRADEBOOK 
prepares student reports ol assignments, 

scores, averages. J. KNOWLES, 1025 Darling St„ 
Ogden, Utah 84403. Specify Commodore 64 or 
Apple He. Check or Visa: $29. 

DISCOUNT SOFTWARE: Amiga/ Apple/ 
Atari/C64-1 28/IBM PC-PCjr/TRS-80/Timex/ 
Sinclair, Free Catalog: WMJ DAT SYSTEMS, 4 
Butterfly Dr„ Hauppauge, NY 11788 




Senealogy Program for the C64. "FAMILY 
TREE" wilt produce Pedigree Charts, Family 
3roup Records, Individual FJes, Indexes, Searches 
o! Ancestors. LDS version available, "The Best" 
genealogy program for the 64. $49.95, 
GENEALOGY SOFTWARE, POB 1151. PORT 
HURON, MI 48061, (519) 344-3990. 


COMPUTEl Classified is a low-cost way to tell over 350,000 microcomputer owners 
about your product or service. 

Rates: $25 per line, minimuin of four lines. Any or all of the fifst line set in capital letters at no charge. Add $15 

per Hne for boldface words, or $50 for the entire ad set in boldface {any number of lines.) 
Terms: Prepayment is required. Check, monev order, American Express, Visa, or MasterCard is accepted. Make 

checks payable to COMPUTB Publications.' 
Fofmt Ads are subiect 1o publisher? approval and must be either typed or legibly printed. One line equals 40 

letters and spaces between words. Please underline words to be set in boldface. 
General InfofmaWor; Advertisers using post office box numbers in their ads must supply permanenl address and 

telephone numberSn Orders will not be acknowledged. Ad will appear in nexl available issue after receipt. 
Closing: lOlh of the third month preceding cover date (e.g., June issue closes March 10th). Send order and 

remiltance to: UzTry Blair, Classified Manager. COMPUTE!. P.O. Box 5406. Greensboro. MC 27403. To place an 

ad by phone, call Harry Blair at (919} 275-9809. 
Notice: COMPUTE! Publications cannot be responsible for offers or claims of advertiser, but will attempt to screen 

out misleading or questionable copy. 



MISCELLANEOUS 



HELP IS ON THE WAYI 

Just call 1-800-334-0868 to get your free 
copy of the latest COMPUTE! Books Catalog! 
If you need help in getting information on 
all of the latest COMPUTE! book dtles 
available plus all COMPUTE! backlist titles, 
call us today! 

Maxell MDl, $1.29-MD2, $1.99. Dysan 104/10, 
$1.79-104/20, $2.39. Shipping $3.75. Also 
Verbatim, IBM, 3M, BASF. TAPE WORLD. 220 
Spring St., BuUer, PA 16001, 1-800-245-6000. 
Visa, MC. 

DISK SALE! - SS/DD 35-trk for Apple w/sleeve 
& label-10/$5.80, bulk.I00/$45. Standard 
SS/DD w/sleeve & label-10/$7.50, bulk- 
I00/$59, DS/DD w/sleeve & labe!-10/$8.50, 
bulk-100/$67. 31/2" SS for Mac-10/$19.99. 
PREMIUM QUALITY, LIFETIME WARRANTY! 
Money-back satisfaction guarantee! Min. order 
$20. Send check or pay by MC/VISA/AE $3 
shipping, + $2 if C.O.D. - UNITECH, 20 Hurley 
St., Cambridge, MA 02141. (800) 343-0472, in 
Mass. (617) "UNI-TECH", 

EARN MONEY, PART OR FULL TIME, AT 

HOME with your computer-manual & forms- 
$9.95, Write Computer Programs for Profit! 
How-to guide with forms, letters, tips-S7.95. 
Also-Computer Consultant Handbook. How to 
earn $ consulting with business-$7.95. JV Tech, 
P,0, Box 563, Ludinglon, Ml 49431 

Save money shopping via your Home Computer. 
Use phone modem for automatic shopping. 
Send $3,00 for catalog and details to: 
ZAK, 7787 Stout, Detroit, Mi 48228 

PROGRAMMERS . . . COPYRIGHT YOUR 
PROGRAMS. Protect your work, included: docu- 
mentation, forms & list of SOFTWARE CO.S all for 
$7. Blue Cavern Software, 558 J St., Chula Vista, 
CA 92010 

Discount computer printer ribbons for all 
makes/models Ex: Epson 1500 Nylon $6.99, 
Catalog: TWS 1314 4th Ave., Coraopolis, PA 
15108 (412) 262-1482 Visa or MasterCard, 

COMMODORE DUPLICATOR 64 

Now you can back-up copy 

guarded software on the C64. 

Our Disk-Based Duplicator is Now 

Available At A Remarkable Price , . . 

$34.95 . . . plus $2.50 shipping. 

Major Crdit Cards 4c C.O.D. orders 

accepted. We ship within 24 hrs. 

DUPLICATING TECHNOLOGIES, INC., 

99 Jericho Tpke., Suite 302A, 

Jericho, New York 11753. Daily (516) 333-5808; 

Eve/Wknds (516) 333-5950 



March 1986 COMPUTB 127 



'•^^i-*!'!', 



B«ri»*t.-.^- 



W» HUlll 



M 



THE AMAZING VOICE MASTER® 

Speech and Music Processor 

^ Your computer can talk in your own 
voice. Not a synthesizer but a true digitizer 
that records your natural voice quality— and in 
any language or accent. Words and phirases can 
be expanded without limit from disk. 

^ And it will understand what you say. a 

^^ real word recognizer for groups of 32 words or 
phrases with unlimited expansion from disl< 
memory. Now you can have a two way conver- 
sation with your computer! 

^ Easy for the beginning programmer 

with new BASIC commands. Machine language 
programs and memory locations for the more 
experienced software author. 

^ Exciting Music Bonus iets you hum or 

^^ whistle to write and perform. Notes literally 

scroll by as you hum! Your composition can be 
edited, saved, and printed out. You don't have to 
know one note from another in order to write 
and compose! 

Based upon new technologies invented by COVOX. One low 
price buys you the complets system— even a voice controlled 
black-jack game! In addition, you will receive a subscription to 
COVOX NEWS, a periodic newsletter about speech technology, 
applications, new products, up-dates, and user contributions. 
You will never find a better value for your computer. 

wlMLY (pOS-vt) includes all hardware and software. 
For telephone demonstration or additional information, call 
(503) 342-1271. FREE audio demo tape and brochure available. 
Available from your dealer or by mail. When ordering by mail add $4.00 
shipping and handling ($10.00 for foreign, $6,00 Canada). 

The Voice Master Is available for the C64, C128, alt Apple ll's, and Atari 
800, 800XL and 130XE. Specify model when ordering. 



I For Faster Service on Credit Card Orders only: 

ORDER TOLL FREE 1-800-523-9230 



COVOX INC. 



(503) 342-1271 



675-D Conger Street, Eugene, OR 97402 

Telex 70601 7 (AV ALARM UD) 



Advertisers 
Index 



Readvr S«rvlc» Numb«r/AdvBrHser 



Pag* 



102 Abacus Software 


, 


, , , . 20-21 


103 Bantam Software 


4 


104 Blackship Computer Supply 


90 


Commodore 


BC 


105 CompuServe 


1 


ComputAbllity 


61 


106 Computer Direct 


. , , . 55-56 


107 Computer Moil Order 


, , . . 30-31 


Covox Inc 


nc. , , , 


128 


108 Duplicating Technologies 


64 


109 Elek-Tek, Inc 




58 


IIOEPYX 




11 


1 1 1 Indus-Tool 




98 


1 12 Jason-Ranheim 




84 


113 J&R Music World 




52 


JS&A 




41 


Lyco Computer 




, , , . 36-37 


1 U MegaSoft, Ltd 




7 


NRI Schools 




25 


On-Line Service 




16 


115 Precision Data Products . 




90 


116 Protecto 




57 


117 Puma 




33 


Spinnaker 




2-3 


1 18 Strategic Simulations, Inc. 




IBC 


1 19 subLOGIC Corporation , , 




IPC 


120Unitech 




90 


USA*FLEX 




84 


121 White House Computer , 




95 


Classified Ads 1 27 


COMPUTE! Books Inventory Sole 38-39 


COMPUTE! Books New Spring Releases 59 


COMPUTE! Disk 32.67 


COMPUTEf's Programmer's Guide 13 


COMPUTEI's Telecomputing Books Collection . 9 


COMPUTE! Subscription 17 


1 28 Machine Language for Beginners 29 


The Turbo Pascal Handbook 16 



COMPUTE! 



SUBSCRIPTION SAVINGS CARP) 



Check one box: 

D Pavment Enclosed 

D Bill Me 

□ Check Here If Renewal 

SAVE EVEN MORE: 
D 2 Years/$45.00 

Please check i( you own a 
APPLE D 01 ATARI D 02 
64 003 VIC2on« 
IBM a 05 TEXlNSDofj 



OTHER- 



_99 



DDon'lyel have one 
Name 



Address . 
Ciiy 



_Zip. 



You'll receive 1 year 

of COMPUTE! 

for only 

$24.00. 

That's a savings of 

32% OFF 

the cover price. 



State 

Foreign and Canadian subscribers, 
please add S6 (U.S.) per year postage. 
Oiler subiect to change wilhout notice. 



.J1205 



COVER PRICE 
FOR 1 YEAR 

YOUR PRICE 



YOU SAVE 



$35.40 



$24.00 



32% 



Only $24.00 for 12 issues 



NO POSTAGE 

NECESSARY 

IF MAILED 

IN THE 

UNITED STATES 



BUSINESS REPLY MAIL 

FIRST CLASS PERMIT NO., 7478 DES MOINES. IOWA 



POSTAGE WILL BE PAID BY ADDRESSeE 



COMPUTE! 

PO BOX 10954 

DES MOINES, IOWA 50347 



COMPUTEi's 

FREE Reader Information Service 

Use these cards to request FREE information about thie products ad- 
vertised in this issue. Cleariy print or type your fuli name and address. 
Only one cord should be used per person. Circle the numbers that 
correspond to the key number appearing in the advertisers index. 

Send in the card and the advertisers will receive your inquiry. Al- 
though every effort is made to insure that only advertisers wishing to 
provide product information have reader service numbers, compute! 
cannot be responsible if advertisers do not provide literature to 
readers. 

Please use these cords only for subscribing or for requesting product 
information. Editorial and customer service inquiries should be ad- 
dressed to: COMPUTE!, P.O. Box 5406, Greensboro, NO 27403. Check 
the expiration date on the card to insure proper handling. 

Use these cards and this address only for computei's Reader Infor- 
mation Service. Do not send with payment in any form. 

COMPUTE! 

101 102 103 10<1 105 106 107 106 109 110 111 112 113 114 115 116 117 

118 119 120 121 122 123 124 125 126 127 12S 129 130 131 132 133 134 

135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 

162 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 

169 170 171 172 173 174 175 176 177 178 179 ISO 181 182 183 184 185 

186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 

203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 

220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 

237 238 239 240 241 242 243 244 246 246 247 248 249 250 251 252 253 

Ci' !i; !i ' , -r..;- .L r ■ r- .■■ •!. '.uDscripiiof, to ::''.>A\ .t vou wili be biiiea 'o' .Jlf 



Please let us know. Do you 



own: 
D 

270 

n 

272 

a 

27J 

D 
276 

D 
278 

D 

290 



Apple . 
Atari _ 



plan to buy: 



D 

271 



Commodore 
IBM 



TI-99/4A 
other _ 



Cspecity modeJ) 



D 
273 

D 

276 

a 

277 

D 

279 
D 

2s; 





Please print or type name and address. 
Limit one card per person. 

Name 




Address 


City 




Stote/Province 


Zip 


Country 



Please include ZIP Code 



Expiration <l/30/S6 



C03S6 



SUBSCRIBE TO COMPUTE! 



My Computer Is; 
01 n Apple 02 n Atari 
04nVIC-20 05 D IBM 
99 D Other 



03 D Comnnodore 64 
06 n TI-99/4A 
D Don't yet have one. 



For Fastest Service, 

Call Our Tol^F^•• 

US Order Line 

300-334-0868 

In NC call 91V-27S-«M)« 



n $24.00 One Year US Subscription 
n $45.00 Two Year US Subscription 



(Readers outside of the US, please 
see our foreign readers subscription 
cord or inquire for rotes). 



Nome 










Address 


City 


State 




Zip 


D Payment Enclosed 
Charge my: D VISA 
Account No. 


n Bill me 
D MasterCard 


D American Express 
Expires / 





Your sul?5cnptJon will begn wftti the rvext ovoilable issue, Piease aiiow d-6 weeks for delivery ot first issue. SuDscnptJon fxices 
subject to chQr>ge of any time 

Th& COMPUTE! subscriber list is made ovatloOle to carefiily scrgioned orgonizafions wtfti a product or service which moy be of 
interest to our readers, if you pi'efer not to receive such moilings, please checlc this Pok P, Ji3a^ 



Race 

Stamp 

Here 



COMPUTEI Reader Service 

P.O. Box 2141 
Radnor, PA 1 9089 



NO POSTAGE 

NECESSARY 

IF MAILED 

IN THE 

UNITED STATES 



BUSINESS REPLY MAIL 

FIRST CLASS PERMIT NO. 7478 DES MOINES, IOWA 



POSTAGE WILL BE PAID Bf ADDRESSEE 



COMPUTE! 

PO BOX 10954 

DES MOINES, IOWA 50347 



ONLY 
A FANTASY GAMER 



•mm'-r^ 






If exploring eerie duflieons filted 
with monstere is your idea of fun, 
we've got two fantasy games that'll 
have you floating on cloud nine. Each 
breaks new ground in role-playing 
games with special features: 
WIZARD'S CROWN~ lets you resolve 
combat two ways: The computer 
can do It quickly, or you can per- 
sonally direct it with a multitude of 
tactical options. 

RINGS OF ZILFIN" adds unprece- 
dented realism to fantasy gaming 
with Its superb graphics. The fully 
animated scrolling screen grants you 
step'by-step control of the action. 



iiai!!!!,'s^!H\i!m.'iRni. 




The gates df heaven are yoiir 
local cqmputer^ftware or game 
store.' Enter tfmjn today. 

If thefe are niiconvenlent stores near 
you. VISAS M/C holders can order these 
$39.95 games by calling toll-free 800- 
443-0100, x335. To order by mail, send 
your check to; STRATEGIC SIMULATIONS, 
INC., 883 Stierlin Road, Building A-200, 
Mountain View. CA 94043. (California 
residents, add 7% sales tax.) Please 
specify computer format and add S2.00 
for shipping and handling. 

All our games carry a "14-day satis- 
faction or your money back" guarantee. 

WRITE FOR A FREE COLOR CATALOG 
OF ALL OUR GAMES TODAV. 



SERIES 
AND 
C-64'r 



■-■l^rai^ 




APPLE and COMMODORE SA are traflemar1« of Apple Compyicr. Inc. and Commodore Elcaronics. Ltd,, respectively, 

RINGS OFZILFIN includes graphics routines from Penguin Software s Graphics Magician? 



01 985 by Strategic Simulations. Inc. All rights rescrwd 



'TT^ws^'— i^:^r 



.':''t,' 



-f • - -*.»r 



(■' 



.-/ 



If 



All you need ta do this 



f 

* • 










■Y. 


' 




. 


• ',■ 


4, 


>r- 


^ 


'■ ^ 




; i 


• > 








1.^ 






K 




*' 










»• 

Tf 




.^ 








fix an engine 




graph a spreadsheet 





1 

f 

: 




^1 H 






i 



compose a song 



P"^' mSS -^aau o 



J 



•;ip%±'."W 



,rs'l&f', 






Jrii"!.. 






'i-H*M n^'>^*'^''i>-t J p5^ I 



.write Q novel 




point a picture 





I. .i^nipmk J it^JT-TT^^^;;-^ 





YOurbonldng 



ieorn to fly 



organize a data base 



:s:crv 



forecaslsales 





^^K' H^M 




■ k 


* 13- 

1 -if h 






\wL 











5 I9SS, Commodore ESecrronics limiretS 
S> CP/M is regiiterecj Trademori^ o( oigifoi Heseorch. mc, 

6 Appje is a reg srered iroaemart of Apple CompuTer. inc 
^ ilM is a regisrered Trodemork ot 

internoTioi^i Sosiness MQchtnes Cofporarion 
1^ CommoOOre 6i is a regisiered ipodemark af Commodore flecrronics Ifd 



When it comes to personal computers, you 
want the smartest, of a price that makes sense. 
The new Commodore 1 28'" system has a 
powerful 128K memon/ expandable by 512K. , ■ 
An 80-column display and 64, 128 and CP/M® 'k 
modes for easy access to thousands of edu- 
cdtionol, business and home programs. And a 
keyboard, with built-in numeric keypad, that 
operoteswith little effort. 

Or if the Commodore 128 is more machine 
than you hod in mind, you cpn pick up the . 
Commodore 64? The Commodore 64 is ' 
■I, our lower- priced model geared to more 
fundamental, basic needs. 

Discover persono I computers that- - j 
do more for you. At prices you've ■^~': 
been waiti'^q^for. Frotn the company 
that sells iTiore personal computers ' * 
■ than IBM® or Apple® 



COMMODORE 128 AND 64^ PERSONAL COMPUTERS 

A Higher Intelligence' ^ w^-'-^U^i'^,,;,