The #1 Magazine For Atari Computer Owners
0 M
Ec/mMR 1989
ISSJM 79 r-^
1 I i ' J i
Vf^^ '
WW
CGVlkAGh
'fKYklPII;
Afflli'ihlll;/
K>I;I;IIII;1K'Q
kUOU'i'ill
OOUBIE TH£ SrORAOf CAPACfmOF YOUR MfGAFKE HAffD DftfVff
THETCUCK
I
ON A COMPUTER NEAR YOU
|
IBM |
APPLE II |
MAC |
C64 |
AMIGA |
ATARI ST |
|
|
SCRABBLE® |
$39.99 |
$39.99 |
$39.99 |
$29.99 |
$39.99 |
$39.99 |
|
MONOPOLY® |
$39.99 |
DEC |
$29.99 |
$39.99 |
$39.99 |
|
|
RISK" |
$39.99 |
$39.99 |
$39.99 |
$29.99 |
$39.99 |
$39.99 |
|
CLUE MASTER DETECTIVE |
$39.99 |
$39.99 |
$29.99 |
$39.99 |
$39.99 |
Monopoly*© 1935, 1985. Produced under license from Parker Brothers, division of Tonka Corporation. Risk - © 1959, 1989. Used under license from Parker Brothers.
Clue® Master Detective - © 1988. Produced under license from Parker Brothers, division of Tonka Corporation, and Waddlngtons Games Limited.
Scrabble • Licensed by Selchow and Rlghter Company, a subsidiary of Coleco Industries, Inc. Scrabble board design © 1948 Selchow & Rkjhter Company.
Distributed by:- VIRGIN MASTERTRONIC INTERNATIONAL Inc.
18001 Cowan, Irvine, California 92714 U.S.A.
Telephone (71 4) 631 -1 001 Telefax (71 4) 631 -1 004
CIRCLE #101 ON READER SERVICE CARD.
to
.Leisure Genius
EDITORIAL
FRANK COHEN
e made a very, very costly mistake," said Sam Tramiel, president of Atari Corp., when asked about Atari's purchase and eventual dumping of the Federated Group retail chain. "We are computer /consumer electronics people, not retailers. In the future, we will stay in our field only."
Tramiel's words fell on a receptive audience of Atari enthusiasts at a recent news conference on GEnie, the modem information service. Questions ranged from TOS 1.4 operating system availability to technical specifications for new Atari equipment. Missing from the news conference, however, was mention of recent events confounding Atari Corp.'s efforts to rebound from a slow year of ST sales. Late last year, Tramiel announced an end to the DRAM memory chip crisis, which was blamed for shortages of ST machinery at U.S. computer dealers. In the wake of that shortage, new production quotas and sales employees were devoted to building a healthier U.S. dealer channel and reviving the enthusiasm that had slipped away.
With many supply problems resolved, the beginning of 1989 saw a resurgence of optimism. But the year couldn't be finished without some serious setbacks for Tramiel. The American sales and marketing team of Mike Dendo (vice president, sales) and Joe Mendolia (vice president, marketing) walked off their jobs just three weeks prior to the news conference. Insiders report infighting between Dendo and other Atari executives. Lacking a sales and marketing group, how does Tramiel expect to make good on his vision of building a strong American base for Atari? Tramiel's news conference comments were short and abbreviated when discussing the Federated Group mistake. Not discussed was Tramiel's recent loss of a court case against the former top officials at Federated Group. In August, Atari Corp. was ordered to pay severance and benefits totaling about $600,000 to former Federated President Kieth Powell and former Vice President Merrill Lyons. But Atari maintains that it was duped into buying an overvalued company by Federated officials. "[The Federated] only really cost us $100 million, but we cannot look backward, only learn from the mistake and not do it again," said Tramiel. One might wonder what the American ST market would be like if the same money was pushed into advertising, marketing and product development.
With the new decade rushing up to meet us, the eyes and ears of Atariland are waiting for Tramiel to pull a white rabbit out of his hat. Tramiel has promised new equipment, dealer promotions, hardware and software improvements and overhauled marketing to make 1989 the year of the Atari resurgence. The sheer variety of Tramiel's pledges makes one wonder if any of his ideas /
will materialize. e\ : /
7
MASSAGING YOUR MEGAFILE 1 1 4
TURTLE GROOVES 1 0
Finally, a "three across" directory utility. You'll never again have the
filenames scroll off the screen.
by Matthew J. W. Ratcliff
10
E) Turtle Grooves
Keeping a marble rolling on a track made up of movable tiles is challenge
enough — but how will you fare with two marbles? Three? This
commercial-quality game includes an editor for creating
your own screens.
by Greg Knauss
■» Assembler/ Editor Reference, Part 2
The complete overview of the commands and functions of the Atari
Assembler/Editor cartridge is concluded.
by Matthew J. W. Ratcliff
y> Skyriser
It ain't easy to build a skyscraper. It's even tougher when you have to
beat trie competition.
by Frank Martone
22 ACCESS to Computers
How one Atari club brings smiles to the faces of underprivileged
children.
by Tom Arterburn
24 Dialog Boxes with GFA BASIC 3.0
Part 2 of this helpful tutorial completes our discussion of this segment of
GEM programming with GFA BASIC.
by David Plorkin
Ht 34t
w Truchet Tiles
A fascinating look at a graphics system designed to portray binary data in
visual form.
by Frank Kweder
36
Software Engineering:
Development Life Cycles
Various types of software-development cycles are discussed in this
month's installment of the popular series.
by Karl E. Wiegers
114
Massaging Your Megafile
Everything you need to know to more than double the storage capacity of
your Megafile 20 hard drive.
by Gregg Anderson
122
s The DEGAS Elite Image Generator
This desk accessory communicates directly with DEGAS Elite, allowing
you to create image data files from your pictures.
by Robert Birmingham & Richard Leinecker
WHAT'S NEW IN CONSUMER ELECTRONICS 58
SYMBOL-GUIDE
|E7h| This program runs In both color and mono. ,■== , It Is available In type-In lorm & on the disk.
If F jj This program runs In color only.
.•^. It Is available In type-In form S on ihe disk.
jl ,,j| This program runs In mono only.
,;=a It Is available In type-In lorm & on Ihe disk.
F=a This program runs In both color and mono. b=J It Is available only on the disk.
(Ho Image) This article does not have an associated program.
I This program runs In color only. 1 It Is available only on the disk.
I This program runs In mono only. I It Is available only on the disk.
This program runs on 8-bit Ataris
33 HiSoft BASIC by Ian Chadwick
72 The ST Gameshelf
This month, Lost Dutchman Mine, Battle Chess, World Karate Championship, Renegade and Thunder Blade. by Peter A. Smith, Frank Eva and Steve Panak
80 Summer Games by Matthew J. W. Ratcliff
30 Database DELPHI by Michael A. Banks
44 The End User by Arthur Leyenberger
|?7mI 48 C-manship fc=s by Clayton Walnum
50 Personal Publisher by Donovan Vicha
52 lan's Quest by Ian Chadwick
1 00 From Over the Big Water by Marshal M. Rosenthal
1 06 The Compukid Connection by D. A. Brumleve
I 1 8 Boot Camp by Frank Cohen
00 120 BASIC Training ,1=^.1 by Clayton Walnum
DEPARTMENTS
3 Editorial by Frank Cohen
6 Reader Comment
8 News Clips
111 M/L Editor by Clayton Walnum
1 26 Disk Contents
1 28 Footnotes by Karl E. Wiegers
1 30 ST Gossip From Hollywood byTG
ANALOG
COMPUTING
STAFF
Publisher
LEE H. PAPPAS
Executive Editor
CLAYTON WALNUM
Art Director
LEW BRYANT
Associate Editor
ANDY EDDY
Managing Editor
DEAN BRIERLY East Coast Editor
ARTHUR LEYENBERGER
West Coast Editor
CHARLES F. JOHNSON
Contributing Editors
MICHAEL BANKS, FRANK COHEN, MATTHEW J. W.. RATCLIFF
D.A.BRUMLEVE, IAN CHADWICK,
FRANK COHEN, MAURICE MOLYNEAUX,
STEVE PANAK, MARSHAL M. ROSENTHAL,
GEORGE L. SMYTH
Cover Photography
GARRY BROD
Illustrations
DALE CORY
STEPHEN STERLING
CATHY KOSTREBA
Cover Illustration
MAURICE MOLYNEAUX
Copy Chief
SARAH WEINBERG Copy Editor
ALYSON GOULD
Editorial Assistants
PATRICIA KOURY
CATRINA MASON
ROBIN THOMPSON
Chief Yypographer
DAVID BUCHANAN
Typographers
B. MIRO JR.
QUITA SAXON
LIGAYA RAFAEL
LARRY GANNON
Vice President, Production
DONNA HAHNER
Production Assistant
STEVE HOPKINS
Advertising Production Director
JANICE ROSENBLUM
Advertising Production Coordinator
MAGGIE CHUN National Advertising Director
JAY EISENBERG
(213) 467-2266
(For regional numbers, see right)
Subscriptions Director
IRENE GRADSTEIN
Analog Computing Published By L.F.R.lnc.
President
JIM KOHLS
Vice President, Sales
JAMES GUSTAFSON
Vice President, Client Relations
VINCE DELMONTE
Corporate Director of Advertising
PAULA THORNTON
Corporate Editorial
TIM CON AWAY
DECEMBER 1989 ISSUE 79
Where to Write
All submissions should be sent to: ANALOG Computing, P.O. Box 1413-M.O., Manchester, CT 06040-1413. All other editorial material (letters, press release, etc.) should be sent to: Editor, ANALOG Computing, 9171 Wilshire Blvd., Suite 300, Beverly Hills, CA 90210.
Correspondence regarding subscriptions, in- cluding problems and changes of address, should be sent to: ANALOG Computing, P.O. Box 16927, North Hollywood, CA 91615. or call (8!"o> 760-8983.
Correspondence concerning a regular column should be sent to our editorial address, with the name of the column included in the address.
We cannot reply to all letters in these pages, so if you would like an answer, please enclose a self-addressed, stamped envelope.
An incorrectly addressed letter can be delayed as long as two weeks before reaching the proper destination.
Advertising Sales
Address all advertising materials to:
Paula Thornton — Advertising Production
ANALOG Computing
9171 Wilshire Blvd., Suite 300
Beverly Hills, CA 90210.
Permissions
No portion of this magazine may be reproduced in any form without written permission from the publisher. Many programs are copyrighted and not public domain.
Due, however, to many requests from Atari club libraries and bulletin-board systems, our new poli- cy allows club libraries or individually run BBSs to make certain programs from ANALOG Computing available during the month printed on that issue's cover. For example, software from the July issue can be made available July 1.
This does not apply to programs which specifi- cally state that they are not public domain and, thus, are not for public distribution.
In addition, any programs used must suite that they are taken from ANALOG Computing Maga- zine. For more information, contact ANALOG Computing at (213) 858-7100, ext. 163.
Subscriptions
ANALOG Computing, P.O. Box 16927, North Hollywood, CA 91615; (818) 760-8983. Payable in U.S. funds only. U.S.: $28-one year, $54-two years, $76-three years. Foreign: Add $10 per year. For disk subscriptions, see the cards at the back of this issue. . ,
Authors
When submitting articles and programs, both program listings and text should be provided in printed and magnetic form, if possible. Typed or printed text copy is mandatory, and should be in upper- and lowercase with double spacing. If a sub- mission is to be returned, please send a self- addressed, stamped envelope.
For further information, write to ANALOG Computing, P.O. Box 1413-MO, Manchester, CT 06040-1413.
JE Publishers Representative
6855 Santa Monica Blvd., Suite 200 Los Angeles, CA 90038
Los Angeles
San Francisco
Chicago
Denver
New York City
— (213) 467-2266
— (415) 864-3252
— (312) 445-2489
— (303) 595-4331
— (212) 724-7767
ANALOG Computing (ISSN 0744-9917) is published monthly by L.F.P., Inc., 9171 Wilshire Blvd., Suite 300, Beverly Hills, CA 90210. © 1989 L.F.P., Inc. Return postage must accompany all manuscripts, drawings, photos, disks, etc., if they are to be returned, and no responsibility can be assumed for unsolicited materials. All rights reserved on entire contents; nothing may be reproduced in whole or in part without written permission from the publisher. U.S. subscription: $28 for one year (1 2 issues), $52 for two years (24 issues), $76 for three years (36 issues). Foreign subscription: Add $10 per year. Single copy $3.50 (add $1 for postage). Change of address: Six weeks advance notice, and both old and new addresses are needed. POSTMASTER: Send change of address to ANALOG Computing Magazine, P.O. Box 16927, North Hollywood, CA 91615. Second-class postage paid at Beverly Hills, CA, and additional mailing offices.
EADER OMMENT
A Thank-You
Every so often there are comments in print about the poor support many software publishers provide for their products. I would like to take this opportunity to sin- gle out two companies for their excellent v product support. They are ISD Marketing for Calamus and VersaSoft for dBMAN V.
I had been having problems with differ- ent functions of both products. After con- tacting both companies about the problems, both supplied me with updated versions of their programs. The only charge was post- age, which is more than reasonable.
I live in a remote area of Alaska that is accessible only by air travel for most of the year. The nearest Atari dealer, Far North Atari, is 180 miles southeast in Fairbanks and is an excellent source of help. But they cannot be expected to provide software sup- port. Having companies like ISD and Versa- Soft makes it more enjoyable owning a computer.
—Ken Springer Bettles, AK
Users' Groups, Where Art Thou?
Would it be possible for ANALOG Computing to periodically (even monthly?) publish a listing of Atari users' groups and bulletin board systems. Such a listing would serve as a directory to help put Atari "loners" in touch with other users in their areas while also giving users' groups and BBSs the exposure they need to attract new members.
—Edward Brown Indianapolis, IN
ANALOG Computing used to carry such a listing, and we think it might be a good idea to start it again. However, such a list- ing is possible only for users ' groups; BBSs are started and discontinued so often that any listing we could print would be woe- fully out of date by the time it got to you. If you have an Atari users ' group, send the name of the group along with the address to which people should write for informa- tion to: ANALOG Computing, Users' Group Listing, P.O. Box 1413-M.O., Man- chester, CT 06040-1413. Make sure you tell us whether you 're an 8-bit or ST group.
DVT vs. ICD
This letter is in reference to Frank Co- hen's article on the World of Atari Show at Disneyland from the September '89 issue of ST-LOG. First, I would like to point out that the ICD FA-ST Tape Backup does not use "audiotapes." While our data cassette uses the same type of "Phillips compact cassette" shell used by audiotapes, the me- dia and hardware inside the shell are very different.
Frank's comparison of our ICD FA-ST Tape Backup system to the Seymor/Radix DVT also incorrectly leads people to believe that the DVT is faster than the ICD prod- uct. In spite of the claims made in their flyer, DVT is now said to make backups at 300K per minute, about one-third the speed originally advertised. That makes the ICD FA-ST Tape system about 2,000% faster. —Tom D. Harker, President ICD, Inc.
Converter Problems
The Ultimate Graphics File Convenor (ANALOG Computing, May '89) listing was printed incorrectly. When I unscram- bled the listing and typed it in, the program got confused when trying to load Newsroom files and also when going from Graphics 8 to Newsroom. Please talk to Dr. Brilliant and have this program corrected, since it seems to be a very useful utility.
—Dave Faxon Kingston, NH
The Doc Replies
Yes, indeed, there are problems with UGFC. The problem arose because I had a disk failure just before I finished the pro- gram. I thought I had reconstructed the pro- gram, but in fact I had used an earlier version, which was written to be used only with a specific Newsroom picture file. The lines below correct the problems. Load the original UGFC program and delete lines 5050 to 5130 and line 6015. Then enter the lines below and resave the program.
—Lee Brilliant, M.D. Granada Hills, CA
631 IF T0=4 AND C0LR-C0LL>247 THEN COL R=C0LR-1
632 RETURN
681 IF T0=4 AND C0LR-C0LL>247 THEM COL L=C0LL+1
682 RETURN
5058 C011NT=(N~1)/32:G05UB lBBJGO'iUB 13
828 t? M6;CHRS(125)
5060 DIRS (11 ="♦": DIRS 176801 ="*" I DIRS (2
>=DIR$: GOSUB 10000
5070 G0SUB 180: IF X=255 THEN 5280
5080 L0=X: GOSUB 1 80 : HI = S : GO SUB 180 i OFF
=X
5898 SECT2=SECT : BYTE2=BYTE ! SECT=L0+256
*HI:BYTE=0FF+1:IF BYTE>128 THEN BYTE=1
:SECT=SECT+1
5180 GOSUB 10800: GOSUB 188:R0UT=X:G0SU
B 180 :R0M8=X: GOSUB IBB : COLL -X I GOSUB 18
8!C0LR=X
5110 C=INT ( (C0LR-C0LL1 /8 J < I : R=R0WB~R0M
T+l : ADrADR (DIRS1 : SIEE=:C*R : C0UHT=8 ! RCOU
NT=8 : OFF=4O*(R0HT-l) +INT (COLL/8)
5115 0FF1=0FF
5128 5TART=AD+0FF:TERMINATE=8: GOSUB 38
0 : SHIFT=COLL-INT (COLL/8) *8 : IF SHIFT=8
THEN 5125
5122 FOR N=l TO SHIFT: A=U5R (ADR tRORS) ,
ADR (DIRS), 7688): NEXT N
5125 A=USR (ADR (0RA$) , ADR (DIRS) , PEEK (88
3 +256*PEEK(89) , 7680)
5130 SECT=SECT2:BYTE=BYTE2:G0T0 5888
5200 IF MlFS (BYTE; BYTElOCHRS (255) THE
N 5080
3005 A=U5R (ADR (HOWES) , ADR (CURSORS) , 153
6, LEH (CURSORS) > ! A=USR (1560, 0, 8, 191,247
%'"
9818 D=4 : FLAG=8 : C0LL=8 i R0WT=B : C0LR=247
:R0HB=19i:POKE 764, 33: GOSUB 588
9142 D=C0LL-8:IF B<8 THEM C0LR=C0LR~Di
C0LL=8
Magniwriler Appreciation
Wow! This is great! Thanks so much. ST Writer was already my favorite word proces- sor. Now you give me large print, too!
I am partially sighted, with about 4% of normal vision, if such a thing can be quan- tified. My optic nerve did not develop, or was partially destroyed, due to a high fever I had as an infant. To a normally sighted person, I imagine that my vision would seem to be like looking through the wrong end of a powerful telescope. Everything is small.
The Atari ST and your Magniwriter of- fer visually impaired people a low-cost al- ternative to other large-print computer- writing approaches, and may even help many to become more self-sufficient employment wise. Thanks very much.
—Sam Wells Glendale, CA
Sam, we are absolutely delighted that we've been able to provide you and other visually impaired Atari users with a pro- gram to make your word-processing tasks easier. Thanks for writing.
ALL LETTERS TO BE
CONSIDERED FOR PUBLICATION
SHOULD BE ADDRESSED TO:
ANALOG, READER COMMENT
P.O. BOX 1413-M.O. MANCHESTER, CT 06040-1413
DECEMBER A.N.A.L.O.Q. Computing
8
I-*
by Matthew J.W. RatcliH
DlR3 is a three-across directory listing utility for all Atari-compatible disk operating sys- tems, including SpartaDOS X— the super DOS in a cartridge from ICD.
It is frustrating to list the directory of a disk, only to have the most important files scroll off the top of the display. For this rea- son, by using DIR3, three filenames may be listed across the Atari 38-column display, with the standard left margin set at the sec- ond column. There isn't room, however, for the file size or for the indicator (an asterisk) for a write-protected or locked file. If a file is protected, the first character of the name will be listed in reverse video. File size will remain a mystery, however. If this data is necessary, use your DOS's standard directory listing command.
When first loaded from DOS, DIR3 will display the default directory search specifi- er. You will be prompted for the drive num- ber with the current default shown in square brackets. Type the desired drive number and press Return, or type Escape twice and Re- turn to exit the program. Press only Return to accept the current drive number. You will then be prompted for a "search specifica- tion." Enter the template specification for the files you are interested in seeing (such as " * .BAS" for all BASIC programs). Do not type a drive specifier at this prompt. The drive number has already been set and will be merged with the specification. Press only Return to keep the default, displayed at the top of the screen.
If you would like a hard copy of the direc- tory on the printer, answer yes to the next prompt by typing an uppercase or lowercase "Y" and pressing Return. Any other input is assumed to be "no." The directory will be listed to the display and to the printer if this option is enabled.
The filenames are formatted into three fields, neatly outlined by Atari's graphic characters for the display. Printer output uses
normal printable ASCII characters, since the graphic characters would garble the hard copy.
DIR3 keeps track of how many lines it has output. If any filenames are about to scroll off the top of the display, you are prompted to press Return to continue or Escape to exit. The escape key will send control back to DOS without clearing the screen. (Some DOSs always clear the screen after a machine-language program has executed, however.) The return key will allow the DIR3 list to continue until another scroll prompt is necessary or the end of the directory is reached. This prompt is displayed after the complete disk directory has been listed. At this point, pressing Return will restart DIR3 with the previous settings as defaults. Press Escape to exit to DOS. Note that the scroll prompt is not presented if the printer has been enabled.
DIR3 is especially well suited to Sparta- DOS X users, since this DOS can handle up to 1,400 files in a single directory. Because DIR3 will put 66 files on the screen before scrolling, Atari DOS users may list an entire disk to a single display. Most Atari-compat- ible DOSs have a limitation of 64 files per disk, b
Matthew J.W. Ratcliff is an electrical engineer at McDonnell Aircraft in St. Louis, Missouri. An experienced assembly lan- guage, C and Ada programmer on IBM and main-frame computers, he still enjoys de- veloping new programs and articles for the 8-bit Atari home computer. He has been an Atari enthusiast since 1982.
(PROGRAM LISTINGS CONTINUED ON PAGE 84)
DIR3 is especially well
suited to
SpartaDOS X
users, since this
DOS can handle
up to 1,400 files
in a single
directory.
Because DIR3
will put 66 files
on the screen
before scrolling,
Atari DOS users
may list an entire
disk to a single
display.
DECEMBER A.IM.A.L.O.Q. Computing
Atari Donation
Atari Corp. recently donated a complete Mega ST4 desktop-publishing system to Recording for the Blind (RFB), an organiza- tion that records books to tape for listening by the visually impaired. The system is used to aid RFB in keeping track of their many volunteer activities. The photo shows Jack Tramiel explaining the new system to Joanne Sweet, the RFB studio director. The shelves in the background are filled with book- recording projects in progress.
CIRCLE #131 ON READER SERVICE CARD.
VOICE DEVELOPMENT SYSTEM
■ ■'■'■■ :"' ■■:■■■■--'-'"; ■ ■■■ ■ ■■■■■■■:■:;:: ' ' "^ :
Thursday, September 14, 1989
7IJ
wmaimi wmsEM ranmBja MEma KsaEM mmtdi fflMMsm mamai bmhi BMnara, n'iwiui BHusoa iHaiBa Ksraa 'tssDMa!
nnmrnnnrann
Suit
GO -GO ST
Music Software
Musicode has announced the release of its Kl-VDS voice-development system, a com- bination editor, librarian and sequencer designed for use with the Kawai Kl instru- ments. Features of this integrated package in- clude quick displays, click-and-drag graphic envelope editing and organization of your patches into libraries and banks with sorting and filtering.
The sequencer is available from any point in the program, and new patches may be edit- ed while the sequencer is running. The se- quencer supports standard MIDI files for exchange of data between different MIDI systems.
Using eight edit buffers, the user may edit, randomize and mix patches. Patches may also be swapped between libraries and banks. All the program's functions may be accessed with the mouse or from the keyboard. The Kl-VDS sells for $89.
Musicode
5575 Baltimore Drive, Suite 105-127
La Mesa, CA 92042
(619) 469-7194
CIRCLE #130 ON READER SERVICE CARD.
Atari Go-Go
Maxwell CPU has started shipping their new ST program, Go-Go ST, which allows you to run any program with a single click of the mouse. Programs in a program list are displayed in the Go-Go window as buttons. Several program lists may be created and saved with one of them auto-loading at boot- up. Also available when using Go-Go is a special "log" file that lets you keep track of how much time you've spent with each pro- gram, convenient for client-billing purposes. Go-Go ST is priced at $34.95.
Also available from Maxwell CPU is the MegSTender, a keyboard extension cord for the Mega ST line that comes in 6-, 8-, 12- and 25-foot lengths. Prices range from $16.95 to $24.95.
Maxwell CPU
507 W. Baseline
Lafayette, CO 80026
(303) 665-4849
CIRCLE #133 ON READER SERVICE CARD.
DECEMBER A.IM.A.L.O.Q. Computing
Tractor Tape
If you're getting tired of single-item feed- ing on your printer when you want to print such things as checks, business cards and envelopes, you might want to take a look at a new product from ProExcel, Inc. Their Tractor Tape can be attached to the sides of the items you wish to print, allowing them easy transport through your printer. Accord- ing to ProExcel, the tape is safe and will not damage your print material. Better still, the tape is reusable. Using the same adhesive found on 3M's Post-It notes, Tractor Tape comes in 25-foot, % -inch-wide rolls and fits most regular tape dispensers. The price is only $4.95 per roll.
ProExcel, Inc.
P.O. Box 15236
Lakewood, CO 80215
(800) 748-3935
CIRCLE #132 ON READER SERVICE CARD.
New Release From Psygnosis
From the guys who brought you Menace, a previous Psygnosis release, comes Blood Money, which, according to the manufac- turer, "plunges you into a maelstrom of de- struction that burns out your monitor with graphics in stunning colors, assaults your ears with the most exciting sampled soundtrack you've ever heard and challenges all your game-playing skills in ways you've never even dreamt possible." Blood Money has a two- player cooperative mode and involves using strategy as well as arcade action as you try to get through four alien-safari missions. Each planet features its own graphics. You can embark on this safari for about $45.
Psygnosis Limited
Century Buildings
Tower Street
Liverpool L3 4BJ
England
CIRCLE #129 ON READER SERVICE CARD.
liliLLHJaiLlMHPl LM>M«lil3SEEIESlfe=
DECEMBER A.IM.A.L.O.G. CompuCing
A
GAME
O F
STEADY
PANIC
BY GREG KNAUSS
^rom the title sc *'le **for
Press H to ,oad We ^es *& Sl5^ffl°Use b«-
y°" Want *>d Press £ ^^ set- Use the ^ y0Ur °*°
fCONrihlllmL. 1
I
^^^^.o,
BY MATTHEW J. W. RATCLIFF
I
I
I
I
I
I
II
/EDITOR REFERENCE, PART II
Debugging
Your assembly language programs are bound to have some bugs. Luckily, Asm/Ed provides a method for testing assembled ob- ject code. When at the Asm/Ed EDIT prompt, type BUG and press Return. You'll be presented with the DEBUG prompt.
The debugger uses short one- or two- letter commands, some followed by an op- tional hexadecimal address. Below is a com- plete list of the commands.
X— Exit from the debugger.
DR— Display the contents of the 6502 registers:
OR
A=BB X=10 Y=20 P=B0 5=0F
A is the accumulator, X and Y are the in- dex registers, P is the processor status reg-
ister (which includes the carry flag, zero flag, etc.) and S is the stack pointer.
CR— Change the contents of any of the 6502 registers.
The specified values are stored in the registers in the same order the registers are displayed by the DR command. In the above example, the accumulator is unchanged, the X register receives a 1, the Y register a 2, the status register remains unchanged and the stack pointer is adjusted to DE.
D— Display memory.
"D3000,0" displays memory location $3000. When the second parameter is less than or equal to the first, only one location is shown. "D3000,3010" displays memory from locations $3000 through $3010. En-
ter D by itself, and the next eight locations (in this case, $3011 through $3018) will be displayed. If only the second parameter is omitted, a default of eight memory locations is displayed:
03000
3000 10 40 20 22 34 11 12 FE
Note that the output of the debugger is always in hexadecimal. All input address- es and register values must be specified in hex as well.
C— Change memory.
C3B34<21,23,,2E
The command itself is immediately fol- lowed by the starting hexadecimal address to change. The values to be placed in mem- ory, starting at the first location, are sepa- rated by commas. Two consecutive commas
• •###••<
DECEMBER A.N.A.L.O.Q. Computing
8
IF YOU DO NOT
KNOW THE ABSOLUTE ADDRESS OF A
NEEDED LABEL, THEN YOU SHOULD GO
BACK TO THE SOURCE CODE, MAKE THE
CHANGES THERE AND REASSEMBLE.
tell the debugger to skip over that memory location, leaving it unchanged. In the above example, memory location $3034 receives $21, $3035 receives $23 and $3037 gets $2E. M— Move memory.
Moeee<G7oe,e8ee
The above tells the debugger to move memory from locations $0700 through $0800 to memory beginning at location $0600. The destination address ($0600 in this case) must be less than the first source address ($0700) or greater than the ending source address ($0800). If the source and destination areas of memory overlap, you may get unexpected results.
V— Compare two blocks of memory (verify).
< ■ ^ "'■-%■■'
You might, for example, use this to com- pare two slightly different versions of the same program to see where something has changed.
V7880<7188,7123
The above command tells the debugger to compare memory from $7100 through $7123 to memory at $7000. Any memory lo- cations that do not match are shown side by side:
U780B<7180,7i23 7181 08 7881 21
In the above comparison, all memory from $7100 through $7123 matched memo- ry from $7000 through $7023, except at one
• :- .
DECEMBER A.IM.A.L..O.Q. Computing
_8_
THE A S S E M B L E R / E O I T O R REFERENCE, PART 2
location. Memory location $7101 contained a $0, while $7001 contained a $21.
L— List memory with disassembly.
The "L" command is one of Asm/Ed's most powerful. It can be used to disassem- ble your operating system ROM (beginning at $C000) to see what some of the routines look like. It can be used to disassemble ob- ject files loaded into memory to see how they work. Here are some examples:
L7000— List memory with disassembly (as many lines that will fit on the screen) beginning at $7000.
L— List memory with disassembly start- ing at the next location (picking up where the previous L command left off).
L7000,0 or L7000,7000-List and disas- semble $7000 only.
L2300,2400— List and disassemble mem- ory from $2300 through $2400.
When the debugger comes across data that cannot be disassembled (such as data tables or strings, for example), it will print a series of question marks. Otherwise, the data is shown in hexadecimal, as well as in its equivalent assembly mnemonic form:
L.5008,08 A9 8 A LDA tt$8A
A— Assemble a single instruction.
This comes in handy when you want to test a small patch to a program. Simply type A and press return to get into the single- line assembly mode. You must first speci- fy an address, followed by a less-than character (<) and the assembly instruction. To assemble to successive memory loca- tions, subsequent entries require only the less-than character followed by the assem- bly instructions. For example:
SOONER OR LATER,
YOU'LL GET TIRED OF
USR ROUTINES
(MOSTLY BECAUSE
THEY ARE SO
DIFFICULT TO DEBUG).
5B0KLDY $1234 50O1 AC3412 <INY 5004 CB
In the above example, we have assembled LDY $1234 and INY into consecutive mem- ory, starting at $5001. Note that here your assembly instructions must use the dollar sign to indicate hexadecimal. Press Return on an empty line to exit the mini-assembler. You cannot refer to labels in the program, since the debugger doesn't keep track of them. If you do not know the absolute ad- dress of a needed label, then you should go back to the source code, make the changes there and reassemble.
G— Execute instructions beginning at a particular address.
Type the letter "G" followed by the first execution address. The program will con- tinue to run until the system crashes, you press the break key, or a BRK (break) in- struction is executed.
T-TRACE.
Type the letter "T" followed by the ad- dress at which to begin execution. The in- struction will be executed, immediately followed by a dump of the instruction (list a single line with disassembly) and the CPU registers. This continues until a BRK in- struction is executed or you press the break key.
S— Step singly through instructions.
Sometimes you need to test a single in- struction at a time. The debugger's step command is used for this task. Enter "S" followed by the address to begin execution. The effects are the same as the TRACE command, except the debugger stops exe- cution after each assembly instruction. Type "S" and Return repeatedly to continue single-stepping through the program.
X— Exit the debugger and return to Asm/Ed's editor.
Error Codes
The error codes between 128 and 255 are the same as those in your Atari BASIC reference manual. These are generally in- put/output errors associated with CIO (cen- tral input/output) utility operations, the heart of your Atari's operating system.
There are 19 other error codes that you may encounter while assembling or debugging your programs:
1— The memory available is insufficient for the program to be assembled.
2— For the command "DEL xx,yy," the line number xx cannot be found.
3— There is an error in specifying an ad- dress (mini-assembler).
4— The file named cannot be loaded (wrong file format).
5— Undefined label reference (you prob- ably misspelled a label in your program).
6— Error in syntax of a statement (miss- ing operand or misspelled assembly mnemonic).
7— Label defined more than once.
8— Buffer overflow. (I'm not certain what this means.)
9— There is no label or"*" before "=". (An equals sign was found in the first field of a line of code. All equals signs must be preceded by either a valid label or an asterisk.)
10— The value of an expression is greater than 255 where only one byte was required, (e.g. , LDA #LABEL, where label is an ad- dress of some memory location greater than 255).
11— A null string has been used where invalid.
12— The address or address type specified is incorrect (e.g., LDA (PGZRO),Y would result in this assembly error if the label PGZRO was not an address of a memory location less than 256).
13— Phase error. An inconsistent result has been found from pass 1 to pass 2 (e.g., two bytes were reserved for some label on the first pass, but on the second pass only one byte was needed. This is avoided by minimizing forward references and by defin- ing all known labels at the top of the file before any assembly code. You will get this error a lot as you learn the language).
14— Undefined forward reference (e.g., misspelled label or reference to a label not defined).
15— Line is too large.
16— Assembler does not recognize the source statement.
17— The line number is too large (32767 is maximum).
18— LOMEM command was attempted after other command(s) or instruction(s). LOMEM, if used, must be the first com- mand after entering the Asm/Ed editor.
19— There is no starting address (e.g., you forgot the " * " directive at the top of your program).
DECEMBER A.N.A.L.O.Q. Computing
THE ASSEMBLER/EDITOR REFERENCE, PART 2
8
B\-\
IF YOU DIDN'T PAY MUCH ATTENTION TO ANALOG'S "MASTER
MEMORY MAP"
SERIES, I STRONGLY
RECOMMEND THAT
YOU GO BACK AND
READ IT.
Expressions
The assembler can perform many useful computations for you. The operators recog- nized and the operations they perform are as follows:
+ Addition
- Subtraction * Multiplication
/ Division
& Logical and
Expressions may not contain parentheses, and they are always evaluated left to right. (There is no precedence placed on opera- tors.) Some examples follow:
|
100 |
STORAGE = $4000 |
|
110 |
*= STORAGE + SlO |
|
200 |
JMP START+20 |
|
300 |
LDA ttSTORAGE&SOFF |
|
310 |
LDX ttSTORAGE/SiOO |
|
320 |
LDA «3*15 |
USR Routines
The USR command of Atari BASIC al- lows you to call assembly language routines. These routines can perform special func- tions to vastly improve the performance of BASIC. For example, assembly USR rou- tines may be implemented for Player/Mis- sile graphics movement, sort algorithms or high-speed disk I/O functions.
Assembly code won't normally be load- ed as part of your BASIC program. It must be loaded using a routine in BASIC, plac- ing the data values into strings or POKE- ing it into safe RAM, for example. You may place up to 256 bytes of assembly code into Page 6 (beginning at memory location 1536). If you do not use the cassette (C:), up to 128 bytes of code can go into Page 4 (beginning at memory location 1024), the cassette buffer. If your code is "position in- dependent" (relocatable), it may be loaded
into a BASIC string.
What is position-independent assembly code? Such a program may have no JMP or JSR instructions (with the exception of JSRs to ROM addresses that are guaranteed not to move). So how do you implement loops? Use branch instructions. If your code gets much larger than 256 bytes, writing position-independent code can be difficult. The largest routine I've ever written of this type was 410 bytes long. You may also "relocate" your code. This requires a fore- knowledge of all the JMP and JSR instruc- tions in your code. You may then load the object code into a string, determine its start- ing address, and then POKE adjusted ad- dress values in for all the JMP and JSR instructions. This is no small task and is sel- dom used. Generally, your USR routines will be fairly small and can be written in a position-independent manner.
The format of a BASIC USR command is:
A=USR(ADRIPARAM1,PARAM2,PARAM3)
The first parameter, ADR, is the starting address of the assembly code you wish to execute. The values following are parameters that are passed to the assembly code on the system stack after being con- verted to integers. The variable A takes on an integer from memory locations $D4 and $D5 (low byte, high byte). This is how you return a value to BASIC.
Let's write a USR routine to add two in- tegers and return the result. Our BASIC program might look like this:
10 TRAP 1000
20 OPEN tti,4,0,"D:MYU5R.0BJ":
REM Our USR code in a file
30 TRAP 70
40 FOR 1=1 TO 6: GET 111, A: NEXT
I: REM Ignore 6-byte load hea der of file 50 1=1536: REM usr routine was
assembled for Page 6
60 GET »i,A:P0KE I, A : 1=1+1 : GO
TO 60:REM End of file error w
ill terMinate our entry of th
e progran
70 CLOSE «1
80 PRINT-INPUT NUMBER 1 ";:IN
PUT Nl
90 IF N1<0 OR Ni>65535 THEN ?
"OUT 0FRANGE":GOTO 80 100 PRINT "INPUT NUMBER 2 "J : INPUT H2
110 IF N2<00R N2>65535-N1 THE N ? "OUT OF RANGE":G0T0 100 120 SUM = USRC1536, Nl, N2 ) 130 PRINT "NUMBER "jNlj" PLUS
";N2j" EQUALS ";SUM 140 END
10O0 PRINT "COULD NOT FIND US R ROUTINE FILE" 1010 PRINT "MYUSR.OBJ" 1020 END
Now we need to write an assembly lan- guage program with Asm/Ed that imple- ments this USR routine. It will accept parameters Nl and N2 off the stack (two two-byte integers), add them, and return the result to SUM through memory locations $D4 and $D5. Our code might appear as shown in Listing 1.
Enter this program with Asm/Ed and ex- ecute the instructions in the first two com- ment lines. When you get an assembly with no errors, your file D:MYUSROBJ should be ready to test with the BASIC program.
Work at this until it performs as expect- ed. As you become more adept at writing USR routines, you may wish to develop util- ities for converting .OBJ files into a series of BASIC DATA statements, so you can simply READ and POKE them without us- ing messy file I/O to initialize the USR rou- tine. It takes a relatively long time to install USR routines by poking them into memo- ry or strings, but once in place, they exe- cute amazingly fast.
You will find that USR routines are dif- ficult to debug since you need to initialize and call them from BASIC. If you mess up the stack or some other operation, the com- puter usually crashes inexplicably. It isn't easy to debug USR routines from DEBUG, because you will have to write sophisticat- ed test routines to stuff all sorts of test values on the stack.
Stand-Alone Assembly
Sooner or later, you'll get tired of USR routines (mostly because they are so diffi- cult to debug). When you do, it is time to take the plunge into writing a stand-alone assembly language program. Then you will get into the complexities of keyboard input, screen output, disk I/O and printer output from the Asm/Ed environment. Complete libraries of routines, such as a "graphics package" that performs the equivalent of BASIC'S GRAPHICS, COLOR, PLOT and DRAWTO, will become a necessity. This is where ANALOG'S Boot Camp series will help the most. In the months to come you will learn everything from keyboard input to floating-point processing, all from the as- sembly language level.
As an example of a stand-alone assem- bly language program, and an illustration of its raw speed, we present the following demonstration. First, type this BASIC pro- gram and run it. While it executes (if will take about 12 minutes), read the remainder of this article to see how the same functions can be performed in assembly language:
DECEMBER A.IM.A.L..O.Q. Computing
8
THE ASSEMBLER/EDITOR REFERENCE, PART
18 DINDEX=88:REM Screen RAM p ointer
28 SCREEN=PEEKCDINDEX)+256«PE
EK(DIHI>EX + 1)
38 FOR X=8 TO 255
48 A=X
58 FOR V=8 TO 255
68 POKE 5CREEN+Y,A
78 NEXT Y
88 NEXT X
At location DINDEX is a two-byte "pointer." Memory locations 88 and 89 hold the address of the beginning of screen RAM. The equation in line 20 calculates the variable SCREEN, which we use as a direct pointer for the POKE in line 60. In our assembly language equivalent of the above program, this problem is even easi- er to solve. (This is seldom the case, how- ever; most things are harder to do in assembly language. This demonstration is designed specifically to show the strengths and speed of assembly language.)
Next, two loops are set up. The inner Y loop is used to POKE the current value of X into the first 256 screen RAM locations. You will see these characters fill the top por- tion of your display. All ATASCII values from zero through 255 are POKEd, with the help of the X loop. The variable A was used simply for a more symmetrical comparison with the assembly code to follow.
Let this BASIC program run to comple- tion. Time it carefully. When you finally get the READY prompt, reboot your computer with Asm/Ed and enter this equivalent as- sembly language program:
Public Domain Software
#57 - Tease Me Adult Animation (Color Only)
#393/394/533 - PrintMaster Graphics
#400 - 7 Disk Labeling Programs (w/100 Labels $6.95)
#443 • Intersect RAM Baby (RAM Disk/Print Spooler)
#475 - Werty's House of Horror (Adult Game, Color)
#500/600 - Publishing Partner Fonts
#511 - Dungeon Master Maps for Levels 1-7
#512 - Dungeon Master Hints/Character
#555 - The Assistant Chef - Electronic Cookbook
#557 - Children's Programs (Color Only)
#567/728 - Accessories
#575 - Sheet V2.0 - Shareware Spreadsheet
#588 - Pac Man, Hangman and 5 others (Color Only)
#599 - PageStream Fonts, Font Converter
#655 - ST Writer V3.0 w/Spell V2.8
#690 - Opus V2.10 GEM Spreadsheet (1 Meg/DBL)
Introductory Offer - Above Disks Just
$2.99 Each
ST Xformer Cable $19.95
Run 8 Bit programs on your ST! Use 5 1/4" or 3 1/2" Disks. Loads & Runs protected disks. Receive the latest version of ST Xformer FREE with purchase of cable when you mention this ad.
Call or Write for FREE Catalog (800) 347-6760
BRE Software Dept.STL 352 W. Bedford, Suite 104 Fresno, CA 93711
Customer Service (209) 432-3072 Shipping $2.50 Ground / $4,00 2nd Day Air
8 ;LI5T8Di screen. asm
1 ; ASM, ,8Di SCREEN. OBJ
2 *=$3408
3 RUNAD=$2E8
18 dindex = 88 } Screen RAM
pointer
28 ; He don't have to compute
SCREEN; we use post indexed addressing
38 START LDX 88 ; Initialize variables for loops 48 LDV 88
58 STORE TXA ; Place sere en character into A register 68 PUTIT STA (DINDEX) ,Y ; Pla ce character on screen 78 INV ; Next scree n location 88 BNE PUTIT •, V register
"wraps around" to zero after
255 98 INK
188 BNE STORE 118 RTS trol to DOS 128 *= RUNAD 138 .H0RDSTART
NEXT X Return con
So we can l
oad and run fron DOS
Now execute the two commands in the first two comment lines at the top of the list- ing. If you get no assembly errors, you will have a file SCREEN.OBJ that is ready to load and run. Go to DOS and execute a bi- nary load of the file SCREEN.OBJ. It will run immediately after loading and return control back to DOS after performing all 65,536 "POKES" of characters to screen memory. Did you catch it? You probably didn't if you blinked. This version of the program takes barely a second to run! If you want to watch the show for a while and exit to DOS when a key is pressed, for exam- ple, modify your program as follows:
|
15 CH = " |
764 |
i |
Keyboard buf |
||
|
fer |
|||||
|
101 |
LDA |
8255 |
|||
|
102 |
CMP |
CH |
I |
keypressed? |
|
|
183 |
BEG |
START |
/ |
Nope, |
loop |
|
184 |
STA |
CH |
t |
Yes, |
clear o |
|
ut key buffer |
and exit |
to DOS |
List this version to disk and reassemble it. When loaded from DOS, it will POKE all those ATASCII patterns to the screen continuously until you press a key on the keyboard. To randomize the show, make these changes:
|
16 |
RANDOM = 53778 ; |
Always |
|
|
a randoM |
number here |
||
|
58 |
STORE |
||
|
68 |
PUTIT |
LDA RANDOM ; |
Get a r |
|
andon fi |
11 character |
||
|
61 |
STA |
CDINDEX),Y ; |
Place c |
|
haracter |
on screen/PX |
CIRCLE #1 03 ON READER SERVICE CARD.
Notice how I always added a meaningful label for each important memory location. Avoid the use of code, such as LDA 53770. The proper use of labels makes it much eas-
ier to see exactly what your program does and how it does it.
If you didn't pay much attention to ANALOG'S "Master Memory Map" se- ries, I strongly recommend that you go back and read it. Even if you do not understand it all, you will learn a lot. A good memory map is the key to unleashing all the power of your computer. As a 6502 assembly lan- guage reference manual, I use 6502 Assem- bly Language Programming by Leventhal. This is a general reference for the 6502 microprocessor and does not have any specifics on the Atari computer. It does de- tail all the 6502 assembly mnemonics and provides examples of multiply, divide and other useful routines.
When you find that Asm/Ed is too slow to suit your tastes as you build larger and more sophisticated programs, consider up- grading to MAC/65 (sold by ICD). This macro assembler supports the use of INCLUDE files, allowing you to easily im- port "canned" routines that have already been debugged. Its MACRO capabilities al- low you to define high-level constructs that vastly simplify the development of assem- bly programs. With a good MACRO library (such as the MAC/65 Toolkit from ICD or QuickCode from Stardust Software), your assembly source code will resemble BASIC or some other high-level language while re- taining all the power and speed of pure as- sembly language. MAC/65 is the fastest native 6502 assembler I have ever used, bar none. (Mad Mac for the Atari ST will as- semble 6502 code at a speed that blows the doors off MAC/65; but that's a whole new ball game.)
Welcome to the fast and complicated world of assembly language programming. I hope this guide will inspire you to put that inexpensive Asm/Ed cartridge to work on all those fantastic ideas that the old faithful Atari BASIC could never handle. «
Matthew J.W. Ratcliffis an electrical en- gineer at McDonnell Aircraft in St. Louis, Missouri. An experienced assembly lan- guage, C and Ada programmer on IBM and main frame computers, he still enjoys de- veloping new programs and articles for the 8 bit Atari home computer. He has been an Atari enthusiast since 1982.
01-K
1
S K Y K I S E *
UUtttmn.",
St
I
Welcome to the mad building game of Skyriser, a two-player game that requires two joysticks and fast reflexes. The object is to be the first person to successfully construct a skyscraper to the top of the screen, and al- though that may not sound too challenging, you and your competitor must watch out for dangerous flying planes and explosions.
At the beginning of the game, each player is given a building, a purple one for player 1 and a white one for player 2. Inside a box located at the center top of the screen, several symbols flash on and off in a random pattern. The actions these symbols represent may be good or bad. The symbols are:
* An up arrow
* A down arrow
* A bomb
* A question mark
To activate a symbol, press the joystick but- ton. If you push your button when the up ar- row is displayed, your building will get higher. If you push the button when the ar- row is facing down, your building will shrink. If you happen to push the button when the bomb symbol is shown, you will lose your entire building. Pushing your button on a question mark can cause two different ac- tions. If the question mark just flashes, you've avoided any action. But most of the time, it will cause an airplane to zip across the screen. If your building is too high, the plane will hit it, and you'll lose your entire build- ing. There are times when you get lucky, of course, and the plane passes overhead, just missing your building.
The plane can affect only the building of the person who made the mistake of pushing on a question mark. Your opponent's build- ing is not affected.
The first building to reach the top of the screen wins. (It is possible to tie.)
|
■EaJK'tJIrl 1 EERE <4> |
||||||||||||
|
II |
1 |
1 |
| |
Bggl |
I |
1 |
1 |
1 |
l |
|||
Skyriser includes a difficulty feature. The harder levels offer more rapidly changing symbols. There are three levels to choose from: easy, intermediate and hard. Use your joystick to move the flashing cursor to your selection and push the joystick button. I recommend easy for children, intermediate for the average adult and hard for people with a real competitive spirit, m
Frank Martone is 20 years old and has an associate degree in liberal arts from Suffolk Community College in Selden, New York. He plans to obtain a B.A. in advertising.
(CONTINUED ON PAGE 20)
Complete ATA P
12 ISSUES ONLY $28
INTRODUCING
ANALOG'S NEW
EXTENDED
FORMAT?
128 FACT-FILLED PAGES
BRINGING YOU THE
LATEST FROM BOTH THE
WORLD'S OF 8-BIT
AND ST! FIN ALLY, ONE
PUBLICATION GIVING
YOU THE COMPLETE
ATARI COVERAGE
YOU NEED!
tlNPk-OG
COMPUTING
P.O. Box 16927 North Hollywood CA 91615
□
12 Issues $28
CDKYY
GET THE NEW ANALOG COMPUTING ON DISK!
□ 12 ISSUES OF ANALOG COMPUTING WITH 8-BIT DISK-ONLY $79! cdkyy
□ 12 ISSUES OF ANALOG COMPUTING WITH ST DISK-ONLY $79! cdkyw
|
NAME |
||
|
address |
||
|
CITY |
STATE |
TIP |
|
□ PAYMENT ENCLOSED |
D BILL ME |
|
|
CHARGE MY □ VESA |
UMC |
|
|
# |
FXP |
SIGNATURE
MONEY BACK ON UNUSED PORTIONS OF SUBSCRIPTIONS IF NOT SATISFIED! FOREIGN- ADD $10. MAKE CHECKS PAYABLE TO LFP, INC. YOUR FIRST ISSUE WILL ARRIVE IN 6 TO 8 WEEKS. WATCH FOR IT! OFFER EXPIRES FEBRUARY 28, 1 990
8
IT
S K Y B I S £ R
!
SO
LISTING I: BASIC
AE 10 REM XMMlOOtXICXXXXXXXXXKXXXXXXMXXXX
PE 20 REM * 5KYRI5ER5 *
YL 30 REM * by *
AM 40 REM * Frank Martone *
FW 50 REM * *
BS 60 REM * COPYRIGHT 1989 *
YQ 70 REM * BY ANALOG COMPUTING *
AL 80 REM XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
BG 90 REM
OF 100 GOTO 490
DJ 110 XX=4:TI=0:P1H=21:P2H=21:P1W=0:P2H=
8:TIE=8:B00M=8 SPOKE 710,101:POKE 711,1
4 ZF 120 SOUND i,8,0,0:TI=TI+i:IF TI>TD THE
N GOSUB 430 KG 130 POSITION 6,P1H:? »6; "B" ! POSITION 1
3,P2H:? «6;"Qm:poke 77,o:sound 0,0,0,0
RI 140 IF »X=3 AND STRIGC0)=O AND STRIGC1
)=0 THEN BOOM=liGOSUB 300 BX 150 IF XX=3 AND STRIGC1)=0 THEN GOSUB
370
:8 THEN GOSUB
THEN P1H=P1 2:S0UND 8,P1H+
QI 168 IF XX=3 AND STRIGC0)
300 ZG 170 IF STRIGC0)=O AND XX=i
H-1SF0R D=15 TO 0 STEP
58, 10, D." NEXT D DG 180 IF STRIGCO)=0 AND XX=2 THEN POSITI
ON 6,P1H:? «6; P1H=P1H+1!F0R D=15 T
0 0 STEP -l-.SOUND 8, D+90, 10, D ! NEXT D EB 190 IF P1H>21 THEN POSITION 6,P1H:? US
;"H,,:P1H=P1H-1 MS 200 IF P2H>21 THEN POSITION 13,P2H:? U
6;"B":P2H=P2H-l
EZ 210 IF STRIGC11=0 AND XX=1 THEN P2H=P2
H-liFOR D=15 TO 0 STEP -2IS0UND 0,P2H+
50,10,DiNEXT D OJ 220 IF STRIGti)<>0 OR XX<>2 THEN 230 YD 225 POSITION 13,P2Hi? «6; P2H=P2H+1
!FOR D=15 TO 0 STEP -liSOUND 0, D+90, 10
,D:NEXT Di GOSUB 430 LS 238 IF P1H=3 AND P2H=3 THEN TIE=1:G0T0 1940
LV 240 IF P1H=3 THEN P1H=1:G0T0 1940 NA 250 IF P2H=3 THEN P2W=1:G0T0 1940 EM 260 IF XX=4 AND STRIGCO)=0 THEN GOSUB
750 IM 270 IF XX=4 AND STRIGC1)=0 THEN GOSUB
860 MT 280 GOTO 120 IY 290 REM ****PLAYER 1 BUILDING DESTROYE
DXKXX UB 300 FOR D=15 TO 8 STEP -i:POKE 708, D+4
0: SOUND 0,D*444,8,D:SOUND 1,100, 8, DiNE
XT D: SOUND 1,8,8,8 MH 318 FOR R=P1H TO 21: POSITION 6,R:? »6;
"l": POSITION 6,R:? tt6;M0":FOR D=l TO 5
iSOUND 8,D,8,DiNEXT D
BS 320 POSITION 6,R:? tt6j" "SPOKE 788, RND
CO)*10+50:IF R<8 THEN POSITION 6,R:? tt 6...,„
HA 338 NEXT RiSOUND 8,8,8,8
MH 340 P1H=21:P0KE 708,137 : POSITION 6,22:
? »6;,,B":IF B00M=1 THEN GOTO 370 IP 350 BOOM=0: RETURN JN 360 REM ****PLAYER 2 BUILDING DESTROYE
1/ JC X Jt'Jt1
UP 370 FOR D=15 TO 8 STEP -UPOKE 708, D+4
0:SOUND 0,DW444,8,D:S0UND 1,100,0, DiNE
XT D:S0UND 1,8,0,8 UE 380 FOR R=P2H TO 21: POSITION 13,R:? »6
J'-l-'SPOSITION 13, RS? «6;"6":F0R D=l TO 5:50UND 0,D,8,D:NEXT D LE 390 POSITION 13, R:? tt6j" ":P0KE 708, RN
DC03»10+5Q:IF R<8 THEN POSITION 13, R:? »6;" !" GU 400 NEXT R:SOUND 0,0,8,8 MR 418 P2H=21:P0KE 708,137 UR 420 POSITION 13,22:? tt6; "f\" i B00M=8 : RET
URN QD 430 XX=INT(RNDC0)*4)+l:P0SITI0N 18,4:?
86;" " BJ 440 IF XX=1 THEN POSITION 10,4:? 86jMX
DI 450 IF XX=2 THEN POSITION 10,4:? 86j"& ii
(CONTINUED ON PAGE 91)
2D
DECEMBER A.N.A.L.O.G. Computing
Increase your publishing
power.
Migraph Hand Scanner"
Add scanned graphics to all your projects quickly and easily with the Migraph Hand Scanner.
The Hand Scanner provides a scanning window over 4" wide with four scanning resolutions: 100, 200, and true 300 and 400 dots per inch. It also offers adjustable contrast, three dither settings for scanning halftones, and a special setting for line art.
Build your own library of images. Logos, photographs, books, illustrations . . . provide you with an unlimited supply of art.
Touch-Up,™ Migraph's high resolution image editor, lets you scan and edit your images. Powerful editing tools include crop, invert, resize, flip, cut and paste, multiple zoom levels, a full array of paint tools, and much more.
When your images are "pixel perfect", import them into your favorite ST publishing programs like Calamus, Fleet Street, PageStream, and Publisher ST. In addition, several
save formats let you use your images on the PC and Mac.
The Migraph Hand Scanner and Touch-Up. Powerful tools for professional publishing.
See your dealer today for more details or call us direct. Dealer inquiries invited.
For all Atari ST and Mega systems with monochrome or color monitors, 1 MB memory and 3.5" DS disk drive.
A
*$Qp
^viiGimph;
200 S. 333rd St., Suite 220 Federal Way, WA 98003 (206)838-4677 (800) 223-3729 (Pacific Standard Time)
c Copyright 1989 Migraph. Inc The Migraph logo is a registered trademark and Touch- Up is a trademark ol Migraph. Inc
CIRCLE #105 ON READER SERVICE CARD.
J often look down at my Atari and won-
I der where I would be today if I had had
I access to a computer at a younger age.
I What if, instead of faithfully watching
| Leave It To Beaver every day after school, I could have explored the countless adventures contained in a personal computer?
It disturbs me to think of the time I wasted during my younger years sitting on the living- room floor, hunchbacked and stupefied while sitcom after sitcom blinked in front of my face.
Today I think of my computer as an exten- sion of my personality. Where my computer is located, how it is set up, how it is main- tained, the software I prefer and, of course, the seemingly endless amount of stored in- formation all say something about who I am.
There is a computer club in my area that shared some of these ideas with a group of underprivileged children during a computer symposium the group held at a local meet- ing hall.
Giving up time with their families, not to mention time they could have devoted to themselves, the members of ACCESS (Atari Computer Club East Side Scene) ventured into the rain one early November morning with a mission in mind: Shielding their com- puters from the rain, they trekked to the Fair- view Heights, 111., city hall to conduct the second annual Big Brothers/Big Sisters Com- puter Symposium, a program the youth or- ganization's officials applauded.
ACCESS President Tom Guelker told me the purpose of the symposium was to give the children participating in the BB/BS program in his club's area a chance to learn something about the machines that will influence them so much in the future.
Interviewing him in the basement of his home in Collinsville, 111. , I started to identi- fy with what he thought his Atari computer could do for an underprivileged child.
"I want to steer these kids toward the good way of life, get them on the right track. A computer can get their brains working a lit- tle bit as opposed to a television set that they'll just sit and stare at all day."
I asked Guelker what made him get in- volved with the BB/BS organization and found that he had a genuine interest in the
development of our youngsters, especially those who are disadvantaged.
"I've always had a soft spot in my heart for disadvantaged children," Guelker said. "They really have a challenge ahead of them. It makes it even worse when they're missing a parent, as with these kids. With the finan- cial difficulties experienced by many single parents, many of these kids won't have the chance to actually own a computer. And if they don't have some exposure to computers by the time they get to high school, they will be at more of a disadvantage."
Expanding on the use of computers in to- day's high schools was John Sullivan, an 18-year-old member of ACCESS. In telling me about himself, he offered some interest- ing thoughts on the importance of computer knowledge in high school.
"I use my 800 a lot for writing reports," Sullivan said initially. He said having his own computer gave him the extra time at home to complete his classwork, much of which in- volved computers.
"It's important to know how to use them because you can do so many things on them if you put your mind to it. It's just mathe- matics."
Sullivan, who plans to attend pilot train- ing school after graduation, said the kids who are not computer literate have a rough time in high school.
"When I took computer math, which is just basic programming, there were a lot of kids who took it because they needed a computer credit and they really had a rough time. The same went for an English class I took that required basic computer skills; the same kids were having problems."
Sullivan said his school uses computers in accounting, drafting, math, English and, of course, data processing.
It's obvious basic computer skills are some- thing every high school student can benefit from. But according to Barbara Cempura, ex- ecutive director of the Southern Illinois Big Brothers and Big Sisters organization, her members, who range in age from seven to 14, can benefit from computer training right now.
"It's a very positive experience when a young person can sit down to learn a new kind of skill and is able to achieve some suc-
cess with it. I think that builds self- confidence and gives the youngster a certain sense of control. Being able to do something, and seeing that there is a positive reaction from someone, gives them the encourage- ment to continue," Cempura said. "This was a very special type of activity for the kids. Generally, our activities include baseball games, art museums, etc. We do try to do things that are educational as well as recrea- tional, but they are always designed for them to have fun."
Cempura told me that this particular out- ing, and others like it, is geared specifical- ly for the children without Big Brother or Big Sister companions. She explained that there are many children who fall into this category.
"Right now we have about 140 kids in our area without big brothers or sisters," Cem- pura said. "I really appreciate the fact that [ACCESS] came to us first and asked if they could do something like this. I was really im- pressed that they brought all their computers to the meeting area, set them up and then took the time to do some training with the youngsters. The time, the giving of them- selves and the sharing of their talents was greatly appreciated."
Like Cempura said, many of the kids in- volved in the Big Brothers/Big Sisters pro- gram, although at an obvious disadvantage with only one parent, at least have the ad- vantage of sharing a few hours a week with their Big Brother or Sister; however, the chil- dren in attendance at the seminar were even more unfortunate because they had yet to be matched with a companion.
Research has shown that although not all children from single-parent homes need a big brother or sister, they are more likely to have problems with their self image and confi- dence. They tend to experience trouble in school, loneliness and low aspirations for the future. The interest and care shown by com- panionship have been proven to raise self- esteem and confidence in the child's earlier years.
What can a computer do for an under- privileged child? I'm neither a computer wiz- ard nor a psychologist, but it seems to me, after listening to the children and the mem- bers of ACCESS describe the symposium, the
DECEMBER A.IM.A.L.O.Q. Computing
computers came to reflect the children's own personality. They made the computers do what they wanted them to do. Whether it be acting out aggression in a harmless yet mayhem-ridden video program or expressing their feelings with the help of a speech syn- thesizer program, the children, whether they knew it or not, exhibited self-expression, one of the most important aspects of child de- velopment.
According to Paula Cobb, coordinator for the Best St. Louis BB/BS office, who accom- panied the children to the symposium, it was very helpful to them.
"I thought they loved it. They were very enthusiastic. The one thing that impressed me was their attention span. The children were very interested in the computers and kept their attention on them most of the time we were there," Cobb said.
Admitting that she didn't know a great deal about computers, Cobb said she was certain the hand-eye coordination skills necessary in playing some of the computer games were helpful to the children.
"One game the kids loved that really seemed challenging was the karate (Karate- ka) program. I remember the guys in partic- ular liked this game. For a while it seemed to be the only thing being played," Cobb said. "There were also some educational programs the kids worked with, which seemed benefi- cial. The word games and some of the art- work and graphics they worked with really seemed to help them express themselves."
Keeping in mind the symposium was be- ing conducted by a computer users' group, not trained child-development instructors, Cobb's next remarks were complimentary.
"I thought the ACCESS group showed great patience and kindness in demonstrat- ing to each of the children how to operate the computers. I think the kids will remember that."
When asked about his knowledge of child development and his objectives in organiz- ing the seminar, Tom Guelker, the automo- bile mechanic from Collinsville, 111., and president of ACCESS, came clean and described some of his hidden motives for holding the training session.
"Since I became president of ACCESS in
DECEMBER A.N.A.L.Q.Q. Computing
BY TOM ARTERBURN
Atari Computer East Side Scene (A.C.G.E.S.S.) paves the way for underprivileged children to learn more about Atari computers
1986, I've always thought community involve- ment and community relations something I wanted our group to get involved in," Guelk- er said. "It allows people to learn more about our group and computer enthusiasts in gener-
{CONTINUED ON PAGE 1 13;
Using Dialog Boxes with GFA BASIC 3.0, Part 2
by David Plot kin
GFA BASIC 3.0 comes with an RCS, but unless I missed something, it doesn't come with any instructions on how to use it. Most of it is fair- ly intuitive, but I want to cover the most important aspects of its use so that you will understand how I built the sample dia- log box.
Figure 1 shows the RCS. You will notice two main areas: the icons on the left side of the working window and the icons across the bottom. These have been numbered. I will discuss each one briefly, starting with the icons on the left side, which are used to modify the objects' appearances and at- tributes. To select one of these items, click on it and a box will open, showing your options:
1. Modifies the background color. If the color is set to white, no pattern will show, regardless of what is chosen in 2.
2. Modifies the background pattern.
3. Modifies the text color.
4. Modifies the text size (two sizes are available) and text writing mode (replace, transparent, etc.).
5. Sets the alignment for text (within a box-type object) and objects within the di- alog box (centered, left aligned, bottom, etc.).
6. Sets flags and states. As mentioned last month, the flags are EXIT, EDITABLE and SELECTABLE. The states select such at- tributes as SHADOWED, OUTLINED and CHECKED.
7. Sets the border color for box-type objects.
8. Sets the thickness of borders for box- type objects.
The Dialog Box Objects
Across the bottom of the screen are the dialog box objects (numbered nine through 19). To move an object into the dialog box, click and drag the appropriate item from the bottom of the screen into its position in the dialog box. To modify the object with the icons at the left side of the screen, you must click on the object to select it, then select the icon you want to use to modify the ob- ject. Objects can have their size modified by clicking on the object to select it, then clicking and dragging to the new size the
dark box in the lower-left corner of the ob- ject. An object can be moved within the di- alog box by clicking on it to select it, then dragging the object to its new position.
Objects with strings or single characters in them can have their text modified by double-clicking on them to open a dialog box for input. Editable text fields can have all their fields set (template, validation and initial string) by double-clicking on them to open a dialog box. One bug I've discov- ered is that if you've modified a G Text-
or G Boxtext-type object and then go to
modify a G_FTEXT or G_FBOXTEXT (editable) object, the first two fields (tem- plate and validation) are missing from the dialog box. To work around this, you must close the dialog box you are working on (use the Close item under the File menu), then reopen it.
The 11 objects at the bottom of the screen are somewhat bewildering, but many of the objects are identical except for the default setting of the Type item under the Options menu. Object types can be changed by selecting the Type item; the choices are shown below:
9. Button— This is a G Button-type ob- ject. The Type item presents two options: String (no border) and Button (has a border).
10. String— This is a G_Button-type ob- ject, identical to 9.
11. Edit— This can be one of four differ- ent object types, depending on the Type item selection. If you select Text, you get
a G TEXT-type object (noneditable). If
you select Boxtext, you get a G_BOXTEXT-type object (noneditable with a border). If you select Ftext, you get a G_FTEXT (editable) object, and if you select Fboxtext, you get a G_FBOXTEXT- type object (editable with a border).
12. Identical to 11.
13. This object can take on one of three object types, depending on the Type item selection. If you select I-Box, you get an object of type G IBOX (box with invisi- ble interior). If you select Box, you get an object of type G BOX. Finally, if you se- lect Boxchar, you get an object with type G BOXCHAR (box with a single charac- ter inside).
14. This object is identical to 13.
15. Text— This object is identical to 11.
16. This object is identical to 13.
17. Boxtext— This object is identical to 11.
18. This object is an icon. No icon editor is included with the RCS; however, you can import icons from other sources by using the Load item under the Options menu.
19. This object is a bit image. No bit- image editor is included with the RCS; how- ever, you can import bit images from other sources by using the Load item under the Options menu.
You should notice that one of the things you can set for each object is the object's name. While this is optional, you should do it for an important reason. Under the Global menu there is an item called Output. Click- ing on this item brings up a dialog box where you can choose to have the RCS write out a GFA .LST file, which can be merged into your program. This file equates varia- bles to the numbers assigned to each ob- ject by the RCS. It is obviously much easier to refer to the object in your program by name, rather than by number. However, the .LST file uses the names you gave the ob- jects as the variable name, so you should name each object (and don't use spaces in the names). To see an example of this, check out the procedure Initialize in the sample listing. The comments were modi- fied to note what each field is used for (the RCS doesn't provide very informative com- ments as part of the .LST file).
Using the Dialog Box
Now that we've gotten all that out of the way, it's time to see exactly how to retrieve information from editable fields, exit but- tons, radio buttons, up/down buttons and sliders. We'll look at each section of the ac- companying listing.
The first line of the program dimensions two arrays for the two sets of radio buttons. As we'll see later, it is much simpler to use radio buttons if the object values of the ra- dio buttons are contained in arrays. The next line calls the procedure that sets up the sim- ple menu at the top of the screen and is fol- lowed by a line that calls the procedure to initialize the variables. The bulk of the procedure Initialize is the modified listing
DECEMBER A.N.A.L.O.Q. Computing
file written out by the RCS, as described above. The last part of this procedure places the object values for the radio buttons into their arrays. Notice that the variable values set earlier in Initialize are used here.
The next line calls the procedure to open a window, clear it and give it a title. Now we are ready to load our resource file, which is accomplished by the procedure Id resource. In this procedure, we first re- serve some memory for the resource file:
RESERVE PRE COJ- 30000
Then we use RSRC_LOAD to attempt to load the resource file called BENEFITS.RSC. If we are successful, we proceed, but if not (the value returned is zero), we give back the memory and end the program:
IF RSRC-L0RD("BEHEF1TS.RSC")=8
ALERT 3,"Resource file not found", 1," STOP ", ax
RESERVE F!(EC0)t300GO
EDIT EHDIF
The next task is to determine the address of the resource and place that address into the variable adr%:
~RSRC .. i,ni)l)R [0, 0, adrx)
Finally, we need to find out the width of the box that contains the "importance" slid- er, less the width of the slider itself. This number will be used in calculating the new position of the slider when it is dragged by the user:
Didthx=OB_UCadrX, inparentX)- 0B_H(adrX, IMPSLIDES1
Returning to the first portion of the pro- gram, the last lines of the main program simply tell GFA to jump to the procedure respond menu when a menu item is
selected and then enters a loop to test for a menu selection. Since there are three menu items, there are three main parts to
procedure respond menu. The first
responds when the user clicks on the "Di- alog Tutorial" item under the Desk menu and simply puts up an alert box. The last one responds when the user clicks on
"Quit" by jumping to procedure pgm end.
This procedure gets rid of the resource, recovers memory, closes the window and returns to the editor.
It is the second menu item, "Add Info," which puts the dialog box into motion. In
show resource, the centered coordinates
of the dialog itself are calculated by a call to FORM_CENTER. The GET command is used to store a copy of what is on the screen where the dialog box will be drawn. This will be used later to restore the screen after we are done with the dialog box. The next five lines use the CHAR command to place an empty string in each editable field. You could just as easily place a non-empty string in each field to initialize it, but again, be careful not to try to put in a string that is too long. Remember that since these are editable fields, you must use the double braces with CHAR.
The next two lines set the number of de- pendents, depnumfc, equal to zero and then
place that number in the boxed text field designed for that purpose. The number depnum % is first converted to a string with $TR$, then placed in the text field using CHAR with only a single set of braces. Next we stuff the number 50 into the slid- er and set its starting position. The exact steps used here will be discussed in more detail in the section on sliders. The FORM__DIAL command with a parameter of one draws an expanding box on the screen, and OBJC_DRAW puts the dialog box on the screen.
The Repeat/Until loop drives the whole process. The first line of the loop uses FORM^DO to tell AES to handle the dia- log box. The FORM_DO command returns the number of the exit object on which the user clicked, and depending on that value, we want to take different actions.
DECEMBER A.IM.A.L.O.O. Computing
ST
USING DIALOG BOXES WITH G F A BASIC 3
PART 3
FIGURE 1
Desk File Global Edit Options Hierarchy
Desk File Global Edit Options Hierarchy
|
t |
R8WSK HMfltS |
|
Hanei Address: City: ^ |
State: Zip |
|
Nunber of Children |
-1 1 \*\ |
|
Inportance of Plan: |
- pfBWJffl jnm 1 1 |
Hedical Plan TTaTinrTTirTlfTTinTI
Dental Plan
main man
FIGURE 2 1
The Up and Down Buttons
When we click on the "+" or "-" but- tons for the number of dependents, we want the number displayed in the center box to change. The dialog box can't handle this on its own; we must exit the dialog box, ad- just the number and reenter the dialog box. For this reason, these two buttons are "touchexit" buttons. As discussed previous- ly, when you click on a touchexit object, the dialog box is exited immediately, with- out waiting for the button to be released.
In our sample program, the dialog box is entered (FORM^fO), and if the "+" button is selected, the depnumJo variable is incremented. A test is made to ensure that the variable is within legal limits, and it is adjusted if it isn't. The new value of
depnum% is placed back into the box:
CHARCOB-SPECtadl-X, depnbrslS!) =STR$Cdepnunx)
And the box is redrawn to show the new number:
•-OBJCDRAW Cadrx, depnbrsU,
Note that although we exited the dialog box as soon as the touchexit button was clicked, the dialog box was still visible on the screen because we never erased it. Once we are done processing the button, we reenter the dialog box by reexecuting the F07?M__DO command within the repeat loop. One of the side effects of using a touchexit button here is that the numbers
will change as long as the user holds down the left button.
The previous section illustrates one of the things that confuses people who are programming their own dialog boxes for the first time. From the user point of view (which is what they have been up till now), everything appears to be handled by the di- alog box, when in fact, a great deal is be- ing handled by the program itself.
The next eight lines of the program han- dle the case where the user selected the "-" button.
Sliders
Sliders are interesting and useful con- structs, so we'll cover them next. The first thing you need to know is that the slider box itself is a touchexit object. When the user clicks on it, the dialog box is exited. How do you get the effect of dragging the slider around inside the larger box? This is done with the AES function GRAF_SLE>EBOX. This function allows the user to drag a child object (the slider box is a child of the box it resides in) inside a parent object. When the user releases the mouse button, GRAF_SLIDEBOX returns the new posi- tion of the child object. Let's illustrate. First, we'll call GRAF_SLIDEBOX:
si iderposx=GRAF_SUDEBOX (adrx, inparents, inpslideft, 61
The first parameter is the dialog box ad- dress; the next one is the object number of the parent object, followed by the object number of the child object and then a flag. If the flag is zero, the user can drag the child around inside the parent on a horizontal axis (left and right). If the flag is one, then the user can drag the child around inside the parent on a vertical axis (up and down). The function returns the position of the child ob- ject (slider) inside the parent object and is always a number from 0 (left or up) to 1,000 (right or down).
The next step is to convert the returned number (0-1,000) to the new X coordinate of the slider:
neupos^uidthx/iflOOMsliderposr.
Thus, we get a ratio of the actual width of the parent object, less the width of the child object (defined as width %) to the max- imum range:
widthx/lflBB
This number is then multiplied by the ac- tual slider position (sliderposfc). For ex- ample, if the width is 200 and the returned position was 500 (halfway to 1,000), then the new position of the slider relative to the
DECEMBER A.IM.A.L.O.Q. Computing
ST
USING DIALOG BOXES WITH GFA BASIC
O , PART
parent object would be 100 or exactly half- way across, just as you'd expect.
Then, we use OB_X to set the new coor- dinates of the slider:
0B_X(adrx, inpsl ideS)=neuposx
Now we need to convert the new slider position, as given by sliderpos% (which can vary from 0-1,000), to a number in our range (0-100). This is simple:
mport^sliderposX/lQ
We then put this new number back into the slider:
CHAR COB-SPEC (adrx, inpslideS)} =STRSCinportZ)
The "+" and "-" buttons associated with the "importance" slider work some- what similarly to the slider, except that GRAF_SLIDEBOX\f> not required. These buttons are again touchexit, as were the but- tons for the number of dependents. Once the user clicks on one of these buttons, the program takes over. In the case of clicking on "-", a certain amount is subtracted from the slider position:
SUB sliderposx,10
The number subtracted should be no less than the total range (1,000) divided by your total range (100 in this example). If the num- ber is smaller than this ratio (ten, in case you can't find your calculator) then the slid- er number won't change every time you click on the "+" or "-" buttons. This is because, as noted above, we divide the new slider position by ten before we put the number back into the slider. We again test to make sure that sliderpos % hasn't moved outside the legal range, correct it if it has, then calculate the new slider positic
newposK=widthx/10OO*sliderpos;< 0B_XCadrx, inpsl ide$)=neuposx
Does this look familiar? It should; it's the same equation used for the slider. Finally, we use exactly the same steps as with the slider to position the slider, calculate the new value and place it in the slider box. It is then redrawn to show the new value with OBJC__DRAW.
The next 13 lines of the listing handle the case of the user clicking on the "+" button.
It's Okay to Quit
When the user clicks on the OK button,
the procedure hndl ok takes over. The first
line calls FORM-DIAL again, this time with the first parameter of two, to create the shrinking rectangle. The screen is then re- stored with PUT. The next order of busi- ness is to return the OK button back to the
nonselected state:
~0BJC_CHANGE(adrX, exit_objz, 0, xv., yx,ux, \\y., 0, 0)
Note that we are not bothering to redraw the button in its new state (last parameter is zero) because the dialog box is no longer on the screen. We now recover the data that was entered into the edit fields using state- ments such as:
nnS=CHAR(C0B_SPECUdrx, naneS)))
Remember that since we are using edita- ble fields, we must use the form of the CHAR command with two sets of braces. Once we have recovered the information into strings, we print them on the screen.
Don't Touch That Dial!
Now we are ready to handle the two sets of radio buttons. We'll need a variable to hold which radio button was selected, so we zero that variable out first. We'll do the three "medical" radio buttons first, so we need to step through them and test each one to see if it was selected:
FOR cnt&=l to 3
Remember that in Initialize, we placed the values of the radio button objects into the array medrbtn&. Thus, medrbtn&(l) contains the value of the "Plan A" radio but- ton (which happens to be 9). In order to find the state of the "Plan A" radio button, we need to use the OB STATE function:
0B_STflTECadrx,nedrbtn& Cents))
Here medrbtn&(cnt&) contains the suc- cessive values of the medical radio buttons as the FOR loop is executed successive times. To find out if the selected state of a radio button has been set (and thus that ra- dio button is the one selected; remember, only one radio button in a set can be select- ed at a time), we use the function BTST, which checks to see if a particular bit is set. In our case, we want to see if bit 0 is set (because bit 0 is the selected state, as not- ed last month in the section on states):
IF BTST C0B_SThTE CadrK, nedrbtnS CctnS) 1 , 0)
select«=nedrbtnS CctnS) ENDIF
iar, except for one thing. Note how the second-to-last parameter in the OBJC_CHANGE function is 32. Previous- ly, we had used zero. We are changing the object state to 32 because the radio buttons in this dialog box are shadowed, which is state= 32. Thus, 32 is what we must change them back to in order to turn off the select- ed state. If we Had changed them back to 0, we would lose the shadowing.
The next 16 lines of code in the sample listing perform the same task for the dental plan buttons, except that there are only two of them. Finally, the last four lines of the program recover the number of dependents from the box and the importance of the plans from the slider and print them on the screen,
Some Closing Thoughts
The dialog box used in this program was quite complex in order to illustrate the many things you can do with a dialog box. Most of your dialog boxes will be simpler, since you won't need everything (editable fields, text, buttons, radio button, sliders and up/down buttons) in one box. And, although this article has been long, the actual expla- nation of how the dialog box works was quite short.
Finally, you will notice that the sample dialog box doesn't actually do anything use- ful. This was deliberate. The program is al- ready long enough without adding the necessary code to make it useful too. Ob- vious extensions would be to store the num- bers and editable text fields in an array, so that the data would not simply be thrown away when you clicked on OK. Additional buttons such as "Next" or "Previous" could let you move through the database, recover- ing the contents of each field from the ar- rays and placing them into the dialog box Fields before drawing the dialog box.
Now that you know how to use dialog boxes with GFA BASIC, let's see some GFA programs that use these handy GEM devices. After all, it's the right way to get information from the user.
Next, we want to see which radio button was selected and handle the results ac- cordingly:
IF selectSOO ! a radio button was selected "so retrieve the text of the radio button neds=CHflRCOB_SPECCCadrK, selects)) PRINT "Medical plan selected: ";ned$ ■ change the radio button back to nonselected -OBJC-CHflNGECadrX, selects, 0, XX, UX.UZ, hz, 32, 0)
PRIHT "No nedical plan uas selected" EMDIF
This section of code should look famil-
David Plotkin is a chemical engineer cur- rently working as a data analyst for the Hu- man Resources department of the Chevron Corporation. He has had an Atari since 1980.
DECEMBER A.M.A.L.O.Q. Computing
'^mr-*mw*amr*mm*'*mr*mr.^^*amj^mimm*im4i^^^^mtmmi^mM^^^mammmmmm t^m ^fi iiMi^f — ^— — ii— ■—— i^ i^^^«a^^^^^^>Mfc,WMfc'WB*^Mfc'^^,^M^'»w^<M^'^*^<»>^^*i»i^*^^wfc.'^M>tf?*>t^iMfc-''
ave Swr $^Vf ?he/4v^i4Sr i^S&SgQlft
-/ — A
ALL COLOR ISSUES
T o^LYsiaes
■S5***
4 GAME REVIEWS
1 • \arc\ade, ac\ti gju
^ S T^R A T E G Y G U l\p E S
• tIeCHN IC~/U R I PORTS
T"C 0 iVI f U Tit SOFTWARE
Yes!
UideoOames
And Computer Entertainment Magniine
P.O. BOX 16927, N. HOLLYWOOD, CA 91615
LJ I CO! Sign me up for 12 issues for only $19.95— I'll save over $15!
□ Payment Enclosed — Charge My □ VISA □ MC NAME
EXP_
SIGNATURE.
ADDRESS_ CITY
STATE.
ZIP.
Your first issue will arrive in 6 to 8 weeks. Money back on unused subscriptions if not satisfied! WATCH FOR IT!! Foreign — add $7 for postage. offer expires February 14,1990
Attention Programmers
SEND YOUR PROGRAMS
AND ARTICLES TO: ANALOG COMPUTING
P.O. BOX1413-M.O., MANCHESTER, CT 06040-1413
NEED
RELY ON TURBO ST!
Turbo ST turns your Atari ST into a speed demon. Check out Turbo ST at your local dealer or download our free demo from your favorite bulletin board. Upgrades to version 1.8 are only $5 with your original disk. For more information, call (407) 657-4611, or write to SofTrek, P.O. Box 5257, Winter Park, FL 32793.
|
i/l |
f#*j |
) 1 |
||||
|
I |
Huvifli |
'Gi |
r I |
|||
|
DON'T MISS |
||||||
|
A SINGLE ISSUE i |
||||||
|
Let us know your new ad- |
||||||
|
dress right away. |
Attach |
|||||
|
an old mailing label in the |
||||||
|
space provided below and |
||||||
|
print your new address |
||||||
|
where indicated. |
||||||
|
i_ ■ i 3 "O ■ CO |
||||||
|
c^- |
o « £ S >* o ci- |
|||||
|
O H Q_ QC O (/> |
ow: w 4 to 8 weeks for 3 include a current and proper extensi d to the U.S. and its |
ai E |
LO 1— CO < o |
|||
|
CD |
boxes be ease alio ed. n. Pleas* > prompt rate limite |
m D |
O 1 i I 3 1 _1 " |
|||
|
QC 1 |
propriate ription. P 0 be mail ubscriptio 1 to insure 8.00. This |
CO CO o o c |
0 1 X cTi ■ |
|||
|
Q. " *- W CO CM |
CO |
en ■ |
||||
|
H |
£|£««T |
g fi |
CO 1 |
|||
|
3 |
lis i. i |
o S "55 t w ^ co ™ |
X ' |
|||
|
o |
S •>-• C M CO ^02 o 2> 5. |
CO I |
||||
|
CD < |
gz £ CC -o r- §□ □ □ |
co O- □ |
6 I a: |
|||
|
z |
r- |
- — - |
-J |
|||
|
o |
W _ |
|||||
|
^■M |
° 1 |
|||||
|
1- |
£ ■ |
|||||
|
(/) |
co 1 |
|||||
|
LU |
1- 1 |
|||||
|
3 |
Q |
z ■ |
||||
|
o |
N |
UJ |
CO ■ LU |
|||
|
EC |
<r 1 |
|||||
|
< |
LU X |
o 1 a < ■ |
||||
|
LU |
a |
_l LU m |
a 1 _j o ■ |
|||
|
> |
co |
< |
i- ■ z |
|||
|
< |
X |
11 1 |
||||
|
X |
S | z |
|||||
|
3 |
< |
< ■ X | |
||||
|
o |
§ 1 |
|||||
|
>- |
U) |
— ■ |
||||
|
o |
CO ■D |
_1 1 LU CD _ |
||||
|
Q |
a |
3 1 a. M |
||||
|
E CO > |
||||||
|
Z |
& |
c |
CIRCLE #106 ON READER SERVICE CARD. DECEMBER A.IM.A.L.O.G. Computing
39
DELPHI
'■i'.W
Make the DELPHI connection
As a reader of ST-LOG, you are entitled to take advantage of a special DELPHI membership offer. For only $19.95, plus shipping and handling ($30 off the standard membership price!), you will receive a lifetime supscription to DELPHI, a copy of the 500-page DELPHI: The Official Guide by Michael A. Banks, and a credit equal to one free evening hour at standard connect rates. Almost anyone worldwide can access DELPHI (using Tymnet, Telenet or other networking services) via a local telephone call.
To Join DELPHI
1. Dial 617-576-0862 with any terminal or PC and modem (at 2400 bps, dial 576-2981).
2. At the Username prompt, type JOINDELPHI.
3. At the Password prompt, enter STLOG.
For more information, call DELPHI Member Services at 1-800-544-4005, or at 617-491-3393 from within Massachusetts
or from outside the U.S.
DELPHI is a service of General Videotex Corporation of Cambridge, Massachusetts.
DECEMBER A.IM.A.L.O.Q. CompuCing
DATABASE DELPHI
Speaking the Lingo: "Conference Code"
A Newcomer's Guide to
by Michael Banks
f you've participated in a real-time conference in the Atari ST SIG or Atari Users' Group (or anywhere else on DELPHI), you may well have . found yourself a bit confused by some odd words scrolling across your screen. "Btw," for instance, or "ga." While they may look like typographical errors, they really do have meaning in the special con- text of conference.
Hopefully, you didn't give up and leave because you didn't understand these cryp- tic words; but if you did, take heart— they're not that difficult to comprehend. In fact, most are merely acronyms ("btw" stands for "by the way," and "ga" stands for "go ahead"). The odd words (and symbols) have
evolved to accommodate faster communi- cation. (Some have been adapted from old telegraph or teletype communications con- ventions; "ga" is one.)
Here's a glossary of the "conference codes" you're likely to encounter:
BRB— "Be right back." Used when someone leaves his or her computer for a moment or enters Mail from Conference, so that others in the conference will not ex- pect responses from that person. Also used when one leaves a conference temporarily.
B7W-"By the way." Used as you would use it in conversation.
GA— "Go ahead." This is usually used after someone has typed several lines that continue a thought (using ". . .") to indicate that he or she has finished the thought. Also used by one or more conference participants when several people type at once, to defer to another person's comments.
IMHO (or /MO)— "In my humble opin- ion." (Watch out. Someone's dragging out a soapbox when IMHO prefaces a sentence!)
LOL— "Lots of laughter" or "Laughing out loud."
OTF— "On the floor." The ultimate in- dicator of laughter.
. . . (three periods)— Typed at the end of a line to indicate that the speaker will con- tinue his or her thought with the next line.
< GRIN >— Just what it says, but note that it is enclosed by greater-than/less-than symbols as sort of a cue that you should visualize what the symbols enclose.
<g>— Short for <GRIN>.
< SMILE >— (Same comments as for <GRIN>.)
In addition to the abbreviations, you'll also see some cryptic "symbols" that aren't acronyms. These are "ASCII graphics," used to represent facial expressions and thoughts. Here are the basic ones:
The first symbol represents a smile (turn the magazine one quarter-turn clockwise if you don't see it). The second is a smile with a wink. The third is a frown or a sad or dis- approving face.
Finally, people in a conference with two or more others will often use two dashes and a greater-than symbol (-->), or two greater-than symbols ( > > ) followed by a name to indicate that the comment that follows is directed to a specific person. For example, if I were online and wanted to di- rect a comment to someone named RES- NICK, I would type:
-> RESNICK followed by my comment.
And now you're an expert on the verbal shorthand used to make online real-time communication easier. Be aware, however, that new codes are popping up every month. Some catch on, and some don't— but don't be afraid to ask if you don't understand.
Just the FAX
There, I did it! I promised myself that I'd never use that cliche, but what the heck. (For those of you under age 30 or who don't watch reruns of old TV shows, "Just the FAX" is a takeoff on a favorite phrase used by Sgt. Joe Friday [Jack Webb] on the old Dragnet TV series; when investigating a case, Friday was frequently forced to shut down overly excited witnesses with the phrase, "Just the facts, ma'am.")
Now that I've satisfied the irresistible urge to use that cliche, let's talk about FAX. Have you been embarrassed by friends, clients or business associates asking you to "FAX it to me?" Have you thought about investing in a good FAX machine but can't justify it? Do you really want to clutter your desk with another piece of hardware?
If you have a computer and modem (and you do if you're on DELPHI), you don't have to worry about the answers to those questions, thanks to DELPHI'S FAX ser- vice. You can now send text-only documents to any Group 3 FAX machine in the world (which is to say, virtually any FAX ma- chine) as easily as you send E-mail.
FAX service is available on the DELPHI Mail menu (which is different from the Mail menu that you see if you type MAIL at the menu in the Atari Users' Group or Atari ST SIG. To reach the DELPHI Mail menu, type DELPHI at the SIG menu (or type MAIL at DELPHI'S main menu). This menu is displayed:
FAX Service | Mail (Electronic) Scan for Hew Messages SetMail Telex
Easylink Translation Services
Workspace
HELP
EXIT
As you can see, the menu also offers gateways to regular E-mail (the "Mail [Electronic]" selection) and other services.
DECEMBER A.IM.A.L.O.Q. Computing
DELPHI
What Kinds of FAX Messages Can I Send?
DELPHI'S FAX service is very accom- modating. You can send FAX messages that you compose online or documents that you've previously uploaded to your personal Workspace. (Being abie to send a Work- space file from Workspace means that you can also send the document as E-mail and/or a Telex— or resend it to other FAX machines later.)
FAX messages should be no wider than 80 columns. There is no limit on the size of a message (the number of lines it con- tains). Uploaded messages must be in 7-bit ASCII format to be sent. (Use your word processor's "print to disk" or ASCII-save function or a file-conversion utility to pro- duce 7-bit ASCII files.) You cannot send graphics or binary files of any kind.
If you want to insert page breaks in a mes- sage, type /PAGE on a line by itself at the beginning of the message and type /PAGE again wherever you want a page break. (Page breaks can be included in a message you are typing online or in a document you are creating with your word processor.)
How It's Done
All you have to do to send a FAX mes- sage is have the destination number(s) ready and upload the message to be sent to your Workspace (or know what you're going to type online). Then type FAX at the DEL- PHI Mail menu.
DELPHI guides you through the entire process with easy-to-follow prompts. You can send the same message to multiple FAX machines by entering multiple phone num- bers at the appropriate prompts. (FAX des- tination numbers must include the area code and phone number. In the case of messages outside the U.S., Canada and the Caribbe- an, you must include the country code, city code and telephone number.) You can abort the process at any time by entering AC.
What Does it Cost?
The rates for sending FAX messages are generally a lot less than you'll pay at a walk- in FAX service center (such as those found in some office supply and computer stores).
FAX messages are measured in pages and half-pages. A FAX page contains 2,500 characters; a half-page contains 1,250 characters. Messages are also billed by pages and half-pages, as shown in Table 1.
For FAX
messages sent to:
Cost Cost for each
additional half-page:
messages for the
sent to: first page:
United States $1.25 Canada $2.00
International $7.00
Table 1
number, multiply the total page/half-page charge for the message by the number of destination numbers.
How Do I Know if It Got There?
If you send a FAX message and it is not delivered, you will get an E-mail message automatically at no charge. If you want to be notified that a message did arrive, you can receive such notification for an extra charge of 40C per message (the notification will arrive in the form of an E-mail mes- sage, advising you of the date and time the FAX message was delivered).
Why Should I Use DELPHI for FAX Delivery?
If you send only text FAX messages, DELPHI'S FAX service is the way to go. The cost is reasonable— even attractive- considering the fact that you don't have to invest hundreds (or thousands) of dollars in a dedicated FAX machine. DELPHI
FAX also offers these advantage's:
* You don't have to print out and scan a message to send it; you can send it direct- ly from your computer.
* You can send the same message to one or more FAX, Telex and/or E-mail desti- nations.
* You don't have to learn how to use a FAX machine.
DELPHI FAX is equally attractive to those who need to send only occasional FAX messages as well as high-volume FAX senders.
Games, Games, Games
DELPHI'S real-time online games con- tinue to draw big crowds. Monday night is Fliplt! night. Each game played on Mon- day night builds a jackpot that is divided among the top finishers in each of three cat- egories: best on 8-by-8 board, best on 10-by-10 board and best overall. Type ENT FLIP to check it out and try your hand.
Thursday nights are poker nights. From 9 p.m. to 12 midnight, poker players take part in tournaments in which they can earn free time. All players start with $1,000 in poker "chips" and can use the money to play five-card and seven-card stud. The player with the biggest pot at the end of the last game wins $30 in free time on DELPHI. Other prizes are awarded as well. You can practice and hone your poker skills at any time by typing ENT POKER at the DELPHI Main Menu.
That's it for now. See you in conference! (Tuesday evening, 10:00 p.m., Eastern time. Be there, or be an obtuse rectangle!)
In addition to science-fiction novels and books on model rocketry and other topics, Michael A. Banks is the author of DEL- PHI: The Official Guide and The Modem Reference, both from Brady Books. You can write to him via E-mail on DELPHI to mem- bername KZIN.
DECEMBER A.IM.A.L.O.Q. Computii
REVIEWS
HISOFT BASIC
b
HiSoft BASIC ($79.95)
HiSoft BASIC Professional ($159.95)
MichTron Inc., 576 South Telegraph
Pontiac, Ml 48053
(313)334-5700
Reviewed by Ian Chadwick.
Desk File Search Options IMHiMI
I Line! 45 Col;
DM paints(Z)
FOR i=D to 2! road DATA 18,18,24
Junp to Error KJ Run Other
nenu$="l Desk I About ne,,,l[ File I Oult 1" I nenuS=nenuS+"[ Style I 10 point \ 18 point \ 24 point \(-
the neon title nenus I CONST file-title=4,stule.tltle=5, about=8, quit=17 pointl0=19 hold=pointlfl*4 outllne=bold*4
| nenu.pointer!l:FllnenuS(nenu$)
this piece of code Mould disable the desk accessories 'for 1=1B to 15
nenu.ienable nenu-pointerS, l,B
Depending on how you
look at it, this is either a great time for ST BASIC use.rs or a terrible time. It's great because there are so many options from which to choose, including ST BASIC, Fast BASIC, GFA BASIC 2.0 and 3.0, STOS and now HiSoft BASIC. You can pick the language style you prefer: Microsoft-like, structured, game-oriented, compiled, GEM or TOS based and so on. However, because of the proliferation of BASICs, it's unlikely one will become the de facto ST standard, and portability among the various products is limited. Trans- lation is all too often very difficult.
The latest entry into the arena is HiSoft BASIC (with its enhanced version, HiSoft BASIC Professional). Mich- Tron obviously hopes to capture the hearts and minds of the ST users with what is their replacement for the lost GFA BASIC. With the latter emerging as the most popular of the lot, it's natural to compare the two.
Since HiSoft has made a considerable impact in England, where it originated, MichTron must assume that it
should find a good following on this continent. But first they must undo the good job they did in selling GFA BASIC over the past two years. And it won't be easy.
HiSoft BASIC (referred to as HSB from here on) is a structured language based on the popular Microsoft QuickBASIC design, offering a high degree of code compatibility with Quick- BASIC 3.0. Note that QuickBASIC is already at Version 4.5 on the PC, a couple of generations beyond 3.0. By now, ST users should be accustomed to the lag between product levels.
While there's nothing unique in the commands and functions to set HSB apart from other BASICs, it does stand out from the rest in that it combines a text editor and a compiler into one package. The highlight of HSB is the "seamless" interface be- tween the two: When you write your code, you actually compile it to memory, then run it and return to the editor. This is a far cry from the cranky process of writing, exiting, compiling, testing, rewriting and so on that I complained about in a
recent lan's Quest column. Unlike GFA, you don't need to quit the program to go to the compiler.
The other side of the coin is that HSB lacks GFA's inter- active parsing and syntax- checking. With HSB, you dis- cover errors only at runtime or compilation. For the novice (or, like me, anyone who has trouble typing on the abysmal ST keyboard), this may not be a worthwhile . tradeoff. However, the error messages produced by HSB are clear enough and more informative than GFA's. If you choose not to continue your program when an error is found, the program halts at that line with the cursor on the problem.
The second major tradeoff is in simplicity. HSB is not as easy to use as GFA. The two (HSB and GFA 3.0) compare favorably when measuring functionality, but GFA comes out on the plus side with more features. GFA has some nice commands and func- tions, like PI, INP?(), TRUE, SGET and SPUT, BREAK and ON BREAK, array-swapping and sorting, plus full VT-52 terminal support that HSB lacks. On the plus side, HSB shows a considerable im-
provement in speed over GFA.
To its credit, HSB performs very well; the interface is fast and smooth. I haven't been able to crash it, something I cannot say for any GFA BASIC release. Compilation is equally fast, with the unfortunate caveat that you cannot change drive and path when compiling from the program, except through the inclusion of an SOPTION command within the code itself.
HSB supports the full range of GEM AES, DOS and VDI calls, as well as BIOS and XBIOS calls, in a manner similar to the standard C con- ventions— including the need to include the proper libraries for proper com- pilation and execution. This is where the simplicity prob-lem arises.There are no simplified com-mands available in GFA for creating alert boxes, handling menus or rnqst other GEM functions. HSB does have some more sophisti- cated window commands than GFA, but they require a little more effort to program.
HSB has one advantage for the user converting from
(CONTINUED ON PAGE 78)
DECEMBER A.N.A.U.O.Q. Computing
_8_
Named after an
18th-century French
monk, Truchet tiles
are being used by
Clifford A. Pickover
of IBM's Thomas J.
Watson Research
Center to transform
large masses of
binary data into
visual form. His object
is to determine the
relative randomness
of his data using a
quick, visual tool.
by Frank Kweder
Iruchet tiles were a topic of discus- sion in the "Computer Recreations" column of Scientific American (July 1989). Named after an 18th-century French monk, Truchet tiles are be- ing used by Clifford A. Pickover of IBM's Thomas J. Watson Research Center to trans- form large masses of binary data into visu- al form. His object is to determine the relative randomness of his data using a quick, visual tool,
There are two types of tiles (see Figure 1), each composed of two quarter-circle arcs whose centers are located at opposite corn- ers of a square. The radius of each circle is equal to half the length of the side of the square, thus, when tiled, the pattern is con- nected continuously. Tile #1 is the mirror image of Tile #0. Alternatively, you might think of Tile #1 as being rotated 90 degrees in either direction.
The program presented here has no scien- tific significance. It merely demonstrates some of the graphical design possibilities. When the program is first run, a preset pat- tern (Figure 2) is drawn using data state-
ments. The pattern contains three main figures: a large flower-like circular figure, a large "X" shape and a smaller circle.
Press the space bar and a new pattern will be drawn by random placement of the tiles (Figure 3). After running this many times, I have noticed that the flower and "X" pat- terns almost never appear. The small cir- cles, however, are common.
The larger patterns are created by a se- quence of tiles in a 4x4 grid. The "X" pat- tern requires a repeated sequence involving 16 tiles and the "flower" requires 12 tiles. The small circle uses only four tiles. There- fore, it's logical that the "X" is least likely to appear.
Another press of the space bar will plot another random pattern. This time the fig- ure is simplified by removing the lines defining the tile edges. The next press of the space bar will plot a full-screen pattern (Figure 4). ^^^.^k .
When the plotting is finished, you may replot it or print the plot using an Epson- compatible printer and the G: Device from ANALOG'S October '85 issue (and on this
Ti
month's disk). The file G.OBJ must be loaded before running Truchet Tiles. If G.OBJ is not loaded, an attempt to print will abort and the program will remind you to load it. Alternatively, you may want to add your own screen-dump or screen-save routine.
Try printing out some screens and fill- ing in the maze-like channels the pattern forms with different colored markers, highlighters or crayons. This is a great way to keep the kids occupied and not bad therapy for anyone who has been at the keyboard for too long!
Programming Notes
A display list interrupt (DLI) is used to show the title and the type of plot be- ing drawn. Within the DLI, I also used fine scrolling to present a caption or in- structions, and to draw your attention to the next operation.
The DLI sets Line 0 to Graphics 2 and Line 1 to Graphics 1. Line 1 also has its vertical-scroll bit set (+32). All you have
DECEMBER A.N.A.L.O.O. Computing
FIGURE 1
FIGURE 2
Tiles
to do is scroll the contents of Line 1 up eight bits while POKEing the bit number into 54277, the vertical-scroll register. Next, rewrite the contents of Line 1 and then scroll down eight bits, again POKE- ing the bit number into 54277. Check out the "Master Memory Map, Part IX" in the April '89 ANALOG Computing, where there is an excellent account of this interesting register.
I hope you enjoy Truchet Tiles. As for me, I must return to my copy of Scientif- ic American and try to figure out how to keep the Biomorphs from eating all the fractal popcorn! a
Frank Kweder, an owner of both a 130XE and an ST, reads his Scientific Americans in Ft. Myers, Florida.
(PROGRAM LISTINGS CONTINUED ON PAGE 96)
FIGURE 4
DECEMBER A.N.A.L.O.Q. Computing
by Karl E. Wiegers
We've been taking a close look at the different tasks involved in a modern software-development project from the perspective of contemporary software-engi- neering methodology (some may say "the- ology"). My thrust has been that a systemat- ic, structured approach to your software development efforts will pay off in a more durable, robust and maintainable product that more closely matches the customer's needs, compared to a traditional program- development approach. The ultimate defi- nition of successful software is that it is de- livered on time, comes in on budget and correctly satisfies the user's actual needs. I'm convinced that software engineering holds the promise of meeting these goals. So far, though, we've only considered one possible sequence of software-development tasks. The method I've been describing is sometimes called the "waterfall" method of software development. The waterfall meth- od is commonly used for the process- oriented systems I've described, such as my chemistry game, Reaction Time. However, it is by no means the only methodology available for creating a software application. Today I'd like to explore some alternative "models" or "paradigms" for software de- velopment.
These various development models are sometimes called "software life cycles," al- though these cycles aren't the same as plant and animal life cycles, in which birth leads to growth, to maturity, to birth again and finally to death. With software, the "birth again" step is generally omitted. And if you're too late delivering the goods, death may appear without the intervention of growth and maturity!
These different models do have some fea- tures in common. After all, software-sys- tems engineering must always involve some gathering of user requirements, design of the system to be constructed, construction, testing of the system and its components, and ongoing project management,
ENGINEERIN
DEVELOPMENT LIFE CYCLES
documentation and quality-assurance activi- ties. And it's a safe bet that any system, no matter how it was built, will require some level of maintenance and change during its lifetime. The paradigms differ mainly in the timing and repetition of these activities.
Pre-Software Engineering
In the olden days, a project often began with a rather fuzzy notion of the goal. Some time was spent on planning or design, and then a larger block of time was devoted to writing code. Coding was followed by an infinite loop of testing and debugging, test- ing and debugging. The testing phase gener- ally was declared to be over when the delivery deadline had come and gone and the customer was beating on the developer's door. We might summarize this historic ap- proach as a "code-and-fix" development technique.
There were some obvious deficiencies with this strategy. First, the customer's in- volvement was too frequently limited to an initial interview or two, followed (after a sizeable delay) by a presentation of the "fi- nal" product, which often bore little resem- blance to what he had in mind. Second, insufficient time devoted to system design at both the overview and detail levels meant that things often went awry during coding. The problems were amplified when more
than one person was involved with the ac- tual programming. Working without a mas- ter plan is a recipe for communication problems. Third, the ad hoc testing ap- proaches left a lot of bugs lurking in the sys- tem, awaiting discovery by irate users. And fourth, the lack of structure in the system design, combined with patches placed on code during debugging and the generally in- adequate documentation, made system maintenance a nightmare.
Figure 1 graphically illustrates one con- sequence of this classic life cycle. As time goes on, the developer's impression of what the user wants and the customer's actual ex- pectations tend to diverge. The bigger the gap, the lower the perceived quality of the final system by the user. More modern de- velopment methods are intended to reduce this expectation gap. The goals are to have faster and more accurate development of the correct software system.
The Waterfall Model
The waterfall model for software develop- ment is essentially a more disciplined var- iant of the classic life cycle. This is the development method I've been describing over the past several months. Basically, the waterfall model consists of several discrete phases, each of which has specific deliver- ables (products) that must be completed and
DECEMBER A.IM.A.L..O.O. Computing
expectation gap
-> time
FIGURE 1. EXPECTATION GAP FOR CLASSIC LIFE CYCLE DEVELOPMENT.
approved before proceeding to the next step. These phases go by various names; one set of labels is shown in Figure 2 (I've seen at least four published variants of this dia- gram, so I made up a fifth). Sometimes you'll hear of "system specification" instead of "requirements analysis," or "implemen- tation" instead of "coding," but the ideas are the same.
If you've been reading this software- engineering series all along, you'll recog- nize the pieces of the diagram in Figure 2. Notice that each phase involves some feed- back to the previous phase (the upward- flowing arrows). This reflects the fact that defects become detected as work goes on, and the defects usually are attributable to errors made in an earlier phase. The best way to handle these problems is to back- track to the source of the error and correct it there, rather than simply slapping a patch on it at the later stage when the problem showed up. For example, a single error at the requirements phase may lead to several problems during design, so your best bet is to go back and fix the underlying require- ments flaw before continuing with design. The waterfall method also differs from the classic life cycle by using a variety of techniques to improve quality and produc- tivity in each phase. Requirements-analysis benefits from the data-flow (DeMarco)
methods used for structured specification. Data-flow techniques also are valuable in high-level design (Yourdon, and Gane and Sarson methodologies). Module-level de- sign is facilitated using structured English (pseudocode) or action-diagram techniques, among other diagramming methods. Struc- tured programming methods lead to code that is readable and maintainable. Struc- tured testing procedures (both white-box and black-box) prevent many errors from seeping through. Quality-assurance activi- ties, such as structured walkthroughs, should be performed before proceeding to the subsequent phase. And many computer- aided software engineering (CASE) tools are available to automate some of these tasks. We've discussed all of these ideas in earlier articles in this series. The key word throughout is "structure."
From the quality perspective, managing a project being developed under the water- fall method poses particular challenges. Be- cause of the sequential flow of tasks, it's important to build in high quality from the very start. It's difficult to go back and retrofit quality after a program has been completed. The quality of the code depends upon that of the system design, which in turn depends upon the quality of the specifi- cations, and so on. One way to manage this is to break each phase of the project into
separate substeps, with a checkpoint qual- ity review scheduled at the end of each sub- step. You don't continue with the project until each subphase meets its goals. This subdivision is the basis for some software project management methodologies, which we'll discuss in a future installment.
One problem with the waterfall approach is that the customer doesn't see any usable products until near the end of the develop- ment effort. I've found it valuable to review the specifications and perhaps even the sys- tem design with the customers, but this isn't the same as letting the user get his grubby paws on a keyboard. A long time lag be- tween inspiration and delivery can reduce the customer's interest in, or need for, the system, as well as lead to a bigger gap be- tween what he wants and what he gets, as we saw in Figure 1.
Another drawback to the waterfall life cy- cle is the need to lock the system require- ments once the analysis phase is complete. Of course, in real life, it's rare that require- ments are truly frozen. However, due to the long sequence of steps between concept and completion, any changes requested by the customer, once design is under way, have repercussions throughout the system- development effort. It's difficult enough dealing with errors that are found at later stages of development, let alone coping with
DECEMBER A.IM.A.U.O.O. Computing
SOFT WA K E ENGINEERING
Feasibility Study
1
Requirements Analysis
t
Overview Design
t
Detail Design
t
Coding
t
Testing
t
System Integration
FIGURE 2. THE WATERFALL LIFE CYCLE OF SOFTWARE DEVELOPMENT.
t
Delivery and Maintenance
volatile requirements. This is a particular problem in dynamic technical environ- ments, such as the scientific research or- ganization I work in. Since system requirements often do change as time goes on, the software developer needs a better way to cope with this.
Iterative Prototyping
Iterative prototyping is an alternative software-development approach that aims to avoid some of the deficiencies of the water- fall method. This model addresses the prob- lem of having incomplete or uncertain specifications at the beginning of the pro- ject, as well as coping with anticipated changes in the specs during the time need- ed for development. Prototyping tends to be a user-driven development method, rather than the prespecified approach character- ized by the waterfall paradigm. Prototyp- ing is less formal and more dynamic, involving continuous incremental change as the user's needs become more precisely defined.
Human beings find it easier to critique
than to create. The idea behind software prototyping is to get something into the cus- tomer's hands quickly as a first cut, so the user can tell you whether or not this is what he has in mind. Revising the prototype leads to an interim product that more closely meets the user's needs. By repeating this prototype-review-modify cycle as many times as necessary, the divergence problem illustrated in Figure 1 is reduced to some- thing like that shown in Figure 3. I've found that frequent iteration with the customer is vital to success, even when I'm not follow- ing a true prototyping life cycle.
When the developer delivers something that closely matches what the user has in mind, the user's perception of system qual- ity is greatly increased. The prototype aids the effort by serving as a vehicle to help gather and refine the system requirements, as well as being a preview of things to come.
The main idea behind prototyping is speed. Users always change their percep- tions of what they want after using a new system for a while. If the new system can be constructed and modified quickly, we de-
velopers can do a better job of uncovering the ambiguities, inconsistencies, misunder- standings and omissions that plague conven- tional system-specification efforts.
A prototype can be either a mock-up or a working model of the ultimate system be- ing constructed. A mock-up consists of sample screens and reports, with limited functionality built in. You may write enough code to let the user move from screen to screen in a logical way and enter represen- tative data, but the brains behind the screens are either absent or faked. Such a system has been called a "vacuous prototype." It's valuable for simulating a user interface, but it doesn't do any useful work. For a system that is user-intensive, this can be a valua- ble way to help the user evaluate whether the "look-and-feel" of the system you pro- pose to build will suit his wishes.
A working-model prototype might con- sist of a full implementation of just part of the system. There may be just a few screens and one sample report, but with the code to convert inputs into outputs fully function- al for that limited subset of the system. This
DECEMBER A.M.A.L.D.Q. Computing
SOFT WARE ENGINEERING
kind of prototype will let the user see if he is comfortable with the approach you pro- pose, and since it actually does useful work, you may be able to incorporate the work- ing model into the final system.
Notice that this iterative method doesn't draw sharp lines between the development phases, as the waterfall method did. You can do a little requirements gathering, a little design, a little implementation, a little test- ing and a little delivery. Then, based on feedback from the customer, you do a little more requirements gathering, a little more design and so on. You continue with the iteration process until either: (a) you've reached a point where you can now write the actual, deliverable system quickly and accurately, or (b) the final prototype is the deliverable system.
Most computer systems don't have specif- ic tools to facilitate prototyping, although more are appearing all the time. A software- prototyping environment might include a screen painter, a report generator and some kind of interpreted language to let you hook the pieces together into a running system. The screen painter lets you quickly design screen displays and write enough code to let the user display them and move from one to another. The report generator can pro- duce printed reports or screen displays from specifications without writing huge amounts of line-by-line print-formatting statements. Often you can use default-printout formats to get some output quickly and let the user then fine-tune the layout for complete im- plementation at some later time.
The interpreted language lets you display screens, do some actual processing and pro- duce output. Interpreted languages often lack some of the rigor of their compiled brethren (like insistence on declaring all variables before using them), and they don't need the compile and link steps before ex- ecution. Hence, it's faster to write and try working code with an interpreter. Since computational efficiency is not paramount for a prototype, the fact that interpreted lan- guages execute more slowly than compiled
languages is not a concern. Also, interpret- ed languages often have excellent debugging facilities, which can facilitate quick turna- round in response to user complaints.
But what happens when you've reached the last iteration in the prototyping sequence and the customer is happy with the current status? You could simply say, "Okay, here it is; I'm done." But if you've written the code in an interpreted language, the perfor- mance at that stage may be inadequate for a production system. Also, you've proba- bly neglected code documentation since you've been working on "just a prototype." The customer may not recognize the differ- ence between a working model and a fin- ished product, which would contain all of the software quality-assurance characteris- tics that we build into our systems. A pro- totype may well have traded both quality and efficiency for the ability to quickly demonstrate desired system capabilities. If you don't redo the final prototype, you may wind up with these shortcomings as integral parts of the delivered software; this may or may not be a problem.
The alternative is to keep the screens, reports, user interface and algorithms from the prototype, but recode all the procedur- al routines in a more efficient language, such as C, COBOL or Pascal. Unfortunate- ly, programs in such languages often are more costly to maintain than the simpler code generated in a prototyping environ- ment. The choice depends on the applica- tion itself. It certainly can be aggravating to finally get the system just the way the user wants it, only to know that you have to re- write much of it in another language before you're done. The saving grace is that the iterative-prototyping process, emphasizing as it does user involvement, has done a good job of pinning down the user's precise sys- tem requirements, so the recoding step should go quite smoothly.
Unfortunately, GEM doesn't lend itself easily to the prototyping model. Atari BA- SIC did just fine, as long as you worked within its limitations. Getting an applica-
tion up and running in a full-screen win- dowing environment, like GEM or the Macintosh, takes quite a bit of effort; it's not something you throw together in a few hours just to see how your ideas might look and act. But software-engineering research- ers (yes, Virginia, there are some) are ac- tively pursuing the development of rapid prototyping tools for windowing environ- ments. Patience, please, for a few more years.
Incremental Development
Another software-development approach that can be effective is incremental develop- ment. In this scheme, you begin with the specifications for the first part of the target system and go ahead and develop it using whatever methodology is most appropriate. Placing a completed portion of the ultimate system into the hands of the users quickly provides them with some real functionali- ty while leaving everyone more time to re- fine the specifications for the rest of the system.
Incremental development breaks the de- velopment project into a series of small in- dividual projects that can be completed independently, each portion being append- ed to the parts you've already finished. The rapid turnaround between the customer's re- quest and delivery of something useful reduces the usual gap between initial expec- tations and those that would prevail much later when the complete system otherwise would be delivered. This method also can reduce the time-dependent evolution of sys- tem specifications, which always seems to be one step ahead of a traditional develop- ment effort.
Obviously, not every project lends itself to incremental development. Some systems really have to be done as a massive whole that is integrated all at once. Another con- cern is that each sequentially completed portion of the system must link up nicely with the parts already in place. I've found this method to work well if a first cut at the overall system specification has been com-
DECEMBER A.IM.A.L.O.Q. Computing
SOFTWARE ENGINEERING
enpectotion gap
-> time
FIGURE 3. EXPECTATION GAP FOR ITERATIVE PROTOTYPING DEVELOPMENT.
pleted, so that we can intelligently partition the system into chunks that can be im- plemented individually. The detailed design of the subsequent pieces can wait until the first section has been fully implemented. One danger with incremental develop- ment is that changes made in the specifica- tions for the later parts of the system can result in the portions completed initially needing major revision or even being scrapped. On the other hand, it may turn out that the latter sections don't even have to be completed, due to the customer's ex- perience with the part you finish first. It's hard to accurately predict how things will turn out with incremental development, but keep it in mind as an option for your next big project.
Fourth-Generation Languages
One other methodology for system de- velopment bypasses the traditional code- writing phase entirely, using what are re- ferred to as "fourth-generation languages," or 4GLs (sometimes more generally termed
"fourth-generation techniques," 4GTs).
You're used to the traditional software- development process using third-generation high-level languages like C, BASIC or FORTRAN. These "procedural" languages require the programmer to write in grim de- tail the instructions for each task performed in a program. We must individually mani- pulate each piece of data, handle all the screen-display interactions, define printout formats line by line, individually validate each user entry, handle the details of every file access and so on. The many lines of code required for all these functions lead to a major maintenance effort whenever a large system is enhanced or a bug eradicated.
Fourth-generation languages allow a "non-procedural" approach to certain do- mains of software development. A 4GL is often supplied as part of a relational data- base software package. (See the April '88 issue of ST-LOG for an informative in- troduction to relational databases by Frank Cohen.) Tools are provided to help imple- ment the user interface and printed-output designs, and some kind of high-level lan-
guage is available for communicating with the database. But you, both as developer and as user, are insulated from the nitty- gritty details of reading and writing files, performing basic arithmetic operations and writing all the code needed to handle com- plex screen displays.
At their best, 4GLs eliminate many of the tedious steps endured by the experienced ap- plications developer. But this pot of gold doesn't come free. The main drawbacks of contemporary 4GLs (of which there are many) are that they are CPU hogs (computer- ese for saying that they execute inefficient- ly) and that they can be applied only to limit- ed classes of fairly specialized applications. As I mentioned, these applications gener- ally center about information stored in rela- tional databases. Of course, a huge assort- ment of business applications fits in this very category, but the 4GL hasn't had much of an impact on scientific computing yet.
Not surprisingly, writing an application using a 4GL usually involves some pro- gramming, although at a higher level of ab- straction than you see with a 3GL. Many
DECEMBER A.IM.A.L.O.Q. Computing
SOFTWARE ENGINEERING
fewer lines of code may be needed to per- form a specific task using a 4GL. The most common language used for relational data- base accesses is called "Structured Query Language" or SQL (pronounced "sequel"). Rather than making you mess with open- ing files, reading records and so on, a que- ry language like SQL lets you tell the computer what you want to do in English- like sentences.
Let's consider a simple example. Rela- tional databases consist of two-dimensional tables containing rows and columns of in- formation. Suppose you have a table called MAGAZINES, which lists all the maga- zines to which you subscribe (maybe you're a library). When you set up this table, you created columns with names like TITLE, COST, EXPIRATION DATE and THEME. Each row you add to the table would con- tain information for a particular magazine. ANALOG might be entered with a title of (guess what) "ANALOG',' a cost of "$28," an expiration date of "8/90" and a theme of "Atari ST computing."
Imagine that you want to write a program to extract specific rows from this MAGA- ZINES table according to particular criter- ia, sort them in some way and display certain columns from the rows retrieved. Specifically, let's find the titles of all the magazines that contain the keyword "Atari" in the THEME column. You can probably imagine the many steps needed to do this in a language like BASIC. But in SQL, you'd write a concise program statement, such as: SELECT TITLE FROM MAGA- ZINES WHERE THEME CONTAINS "Atari." Note the close resemblance be- tween this SQL statement and the English description of what we want to do.
This is not a tutorial on SQL, so we won't pursue it further. The main idea is that a query language like SQL lets the developer or customer do the conceptual work, while the computer handles the low-level stuff. Just because a 4GL is nonprocedural, doesn't mean there isn't any programming involved; it's just done at a higher level of
abstraction. In fact, the SQL statements needed for elaborate queries from multiple tables in a large database can get horrify- ingly complex.
There's some overlap of system tools be- tween 4GL and prototyping environments. Both systems usually include a screen paint- er, which lets you quickly design a form on the screen to facilitate data entry by (or dis- play to) the user, along with easily handling data validation and displaying help screens. Both systems often include a report painter and report-generator capability to easily lay out and produce even sophisticated print- outs of information retrieved from the data- base. Some 4GLs involve a language for defining reports that looks suspiciously pro- cedural to me. And a smart 4GL can actu- ally generate the code automatically for many of the database accesses (queries and updates) you need to perform.
On the plus side, a 4GL environment can be a real asset for rapid system-development (for the right kind of system), and by remov- ing much of the detailed code-writing, the maintenance requirements for a system built using a 4GL can be much reduced from those for a comparable system based on a 3GL. However, designing complex cus- tomized screens or writing complex quer- ies can result in the same system developer's headaches we're used to from older tech- nologies. And sometimes your system re- quirements may involve capabilities beyond those of a 4GL, such as graphics or heavy- duty computations. Many 4GLs deal with this by providing ways to call a program written in a 3GL from within the 4GL en- vironment. Does this average out to a 3.5-generation language?
One other advantage touted for the 4GLs is the goal of having much of the simpler applications development performed by the end user, rather than by a professional soft- ware developer. This is certainly a worthy goal in light of the serious work backlogs plaguing many software-development shops. While this may be possible with some current 4GLs, at least one of the most
popular relational database systems avail- able has a 4GL so complex (but powerful) that it turns my hair white. This may all be a clever ploy to provide permanent job secu- rity for the professional software developer.
Looking Back
Today we've explored a variety of strate- gies for developing applications software packages, including some interesting alter- natives to the traditional waterfall method. These techniques are by no means mutual- ly exclusive. Often you can benefit from a hybrid approach: some initial analysis for a general picture of the problem, followed by a little prototyping to get something into the user's hands, then either incremental or full-blown waterfall development, depend- ing on how firm the requirements are when you're ready to start.
The goal of each of these development life cycles is to meet our definition of high- quality software as closely as possible. In case you've forgotten, high-quality software is delivered on time and on budget, and it meets the user's needs. The developer's challenge is to be able to share the cus- tomer's vision of the final system, then re- fine it (based on his own experience) for performance, ease of use and reliability. In future articles we'll talk more about soft- ware quality-assurance (making sure these goals are met) and software project- management (mechanisms for meeting the goals), h
Karl Wiegers, Ph.D., spent the 70s learn- ing how to be an organic chemist, then spent the '80s wrestling with computers. He is now a software engineer in the Eastman Kodak Company photographic research labs. He hasn't yet selected a career for the '90s.
DECEMBER A.M.A.U.O.Q. Computing
Computervisions
3257 KIFER ROAD
SANTA CLARA, CA 95051
(408)749-1003
(408) 749-9389 FAX
A
STORE HOURS TUE- FRI 10am - 6pm
SAT - 10am - 5pm CLOSED SUN - MON
$3.50
ASSEM REV. A BASIC REV. A MPU 6507 PIA 6532
$4.50 EACH: 1771 FDC 1050 ROM
$12.00 EACH: ASSEM REV.B VCS TIA 444 FREDDIE
8- BIT INTEGRATED CIRCUITS
EACH:
800 CPU 6502 RAM 6810 810 ROM C POKEY
800 ANTIC PIA 6502
OS ROMS (499B-599B)
XL CPU 14806 XL/XE MMU
XE GATE ARRAY BASIC REV C XL/XE OS
GTIA
XL DELAY
XL ANTIC 8 50 ROM E
NEW PRINTED CIRCUIT BOARDS WITH PARTS
800 MAIN/CHIPS ... 10.00 800
800 16K RAM 10.00 800
810 SIDE WITH D/S 15.00 800
810 ANALOG 10.00 810
10K 0/S . . POWER .... CPU W/GTIA POWER ....
10,
5.
10.
15,
00 00 00 00
JOYSTICKS
ATARI STANDARD(2) 12.00
EPYX 200 XJ 16.95
EPYX 500XJ 19. 95
SLICK STICK 9.95
TAC-2 12.99
TAC-3 14.95
WICO 3 -WAY .
WICO BAT HNDL POWER PLAYER ERGOSTICK . . . STARMASTER . . TAC-5
14
22. 29. 24. 14. 19.
,95
00 95 95 95 95
RUN MAC SOFTWARE ON YOUR ST!!
MAGIC SAC 59.95
SPECTRE 179. 95
TRANSLATOR ONE .. 279.95
DISCOVERY OPT.O 188.00
64K MAC ROMS . 9.9 5 128K MAC ROMS 159.9 5 MAC FINDER . . 44.9 5 DISC. OPT. 2 . . .266.00
8- BIT DISK DRIVES
ATARI 810
ATARI 810 WITH NO CASE
ATARI XF551
B&C 810
10 50 1050 1050 1050 INDUS
WITH SUPER ARCHIVER
WITH HAPPY ENHANCEMENT . . . WITH US DOUBLER INSTALLED
RECONDITIONED
GT
ASTRA 1001 WITH PRINTER INTERFACE
130 85 199 130, 250, 275. 225. 175. 175. 175.
00 00 95 00 00 00 00 00 00 00
POWER PACKS
65XE 12. 00
800/810/1050 ... 10.00
800XL/130XE .... 20.00
830/835 10.00
1030 10. 00
2600 5,
1027 29.
520 EXTERNAL ... 50.
520/1040 INTRNL 75.
ST DISK DRIVE . . 35.
00 95 00 00 00
HAPPY ENHANCEMENT 810 OR 1050 $99.95 1050 SUPER ARCHIVER CHIP $69.95
DE RE ATARI $10.00
ST INTEGRATED CIRCUITS
DISK CONTROLLER WD1772 PHOTO COUPLER PC900 . . .
YAMAHA SOUND CHIP
6850 ACIA
68000-8 CPU
KEYBOARD CHIP
DMA CONTROLLER
MMU
VIDEO SHIFTER
GLUE CHIP
BLITTER
25.
2.
10.
00 95
00
3.95 27.00
15
26
28.
26.
28.
39.
00 00 00 00 00 95
ATARI520/1040/lVfEGA ST SOFTWARE
ENTERTAINMENT
10TH FRAME BOWLING . 22.50
A DAY AT HE RACES .. 35.95
ADULT POKER 17.95
ALF'S FIRST ADVENTURE 13.50
ARTURA
AFTERBURNER
ALIEN SYNDROME
AXE OF RAGE
BACKGAMHON
BAL. OF POWER 1990
BARD'S TALE
BATMAN
BATTLE CHESS
BATTLEHAWKS 1942 . .
BISMARK
BLOCKBUSTER .......
BORODINO
35.95 35.95 35.95 44.95 31.50 44.95 17.95 35.95 44.95 44.95 3 5.95 44.96 53.95 CAPTAIN BLOOD 44.95
CARRIER COMMAND CENTERFOLD SQUARES .
COIOSSUS CHESS
DEJAVU
DEJAVU II
BATTLE TECH
DEATH BRINGER
DEAMON'S WINTER ....
DOUBLE DRAGON
DRAGONNINJA
DUNGEON MASTER
EMPIRE
FIG COMBAT PILOT ..
FALCON
FALCON HISSION 1 . . .
FIREZONE
GAUNTLET
GAUNTLET II
GOLDEN PATH
GUILD OF THIEVES . . . HEROES OF THE LANCE. HOSTAGE RESCUE HISS. HOLEIN-ONE HIN.GOLF HUNT FOR RED OCTOBER
IKARI WARRIORS
IMPOSSIBLE MISSION 2 INTERNATIONAL SOCCER INTO THE EAGLES NEXT
14.95 26.95 44.95 44.95 44.95 44.95 35.95 35.95 35.95 35.95 35.95 44.95 44.95 44.95 35.95 31. 50 44.95 44.95 4.95 9.95 35.95 40.50 26.95 44.95 35.95 17.95 35.95 35.95
JAWS
JET
JINXTER
JOKER POKER
KARATE KID II ... KENNEDY APPROACH KING OF CHICAGO .
KINGS OUEST
KINGS QUEST II . . KINGS QUEST III . KINGS QUEST IV . .
KNIGHT ORK
KULT
LAST DUEL
LEADERBOARD DUEL PACK 22 . 50
L.E.D. STORM 17.95
LEISURE SUIT LARRY .. 35.95 LEISURE SUIT LARRY II 44.95 LOST DUTCHMAN'S MINE 44.95
MANHUNTER
MARBLE MADNESS .
METROCROSS
MICROLEAGUE B BALL II
MOEBIUS
NINE PRINCESS AMBER
OBLITERATOR
OIDS
OFF SHORE WARRIOR . .
OPERATION WOLF
OUTRUN
PALADIN
PALADIN OUEST DISK .
PAWN
PIRATES
PLATOON
POLICE QUEST
POLICE QUEST 2
POWER PLAY
POPULOUS
PREDATOR
PSYCHO
ROBOCOP
RUNNING MAN
SCRABBLE
SENTRY
SHADOWGATE
SPACE QUEST
35.95 44.95
9.95 53.95 35.95 44.95 21.50 44.95 44.95 44.95 44.95
9.95 44.95 17.95
44.96 31.50 22.50 53.95 35.95 13.50 22.50 31.50 35.95 35.95 44.95 35.95 22.50
9.95 40.50 35.95 44.95 44.95 35.95 44.95 35.95 26.95 35.95 44.95 35.95
9.95 44.95 44.95
SPACE QUEST II
SPACE QUEST III ....
STARGLIDER
STRIP POKER II
SUPER HANG -ON
TANGLEWCOD
TASS TIMES TONE TOWN
TECHNOCOP
TEST DRIVE
TETRIS
TRACKER
TV SPORTS FOOTBALL. .
UMS
VEGAS CRAPS
VEGAS GAHBLER
WESTERN GAMES
WINTER GAMES
WAR IN MIDDLE EARTH
XYBOTS
ZAK MCKRACKEN
ZANY GOLF
ZERO GRAVITY
MULTI-GAME PACKS
ACTION ST
ARCADE FORCE FOUR . . AWSOHE ARCADE ACTION
COMPUTER HITS
COMPUTER HITS II ... FIVE STAR GAME PACK
MEGA PACK HI
MEGA PACK H2
TRIAD VOL. 1
PROGRAMMING
ASSEHPRO 5 3.95
C-BREEZE 44.95
DEVPACK 89 . 95
GFA BASIC 3.0 89.95
HISOFT BASIC 71.95
HISOFT C INTERPRETER 89.95
LASER C 179 .95
LASER CDB 62.95
LOGO ST 9.95
HARK WILLIAMS C .... 161.95
HARK W. C DEBUGGER . 62.95
TEMPUS II 62.95
44.95 44.95 14.95 35.95 35.95 35.95 35.95 44.95 35.95 26.95 9.95 44.95 14.95 31.50 31.50 26.95 35.95 44.95 35.95 40.50 17.95 26.95
35.95 44.95 44.95 53.95 35.95 44.95 35.95 35.95 53.95
UTILITY
BACKUP 35.95
COOEHEAD UTILITIES . 26.95
G+ PLUS 31.50
GOGOST 31.50
HOTWIRE 35.95
IB DISK UTILITIES .. 31.50
HULTIDESK 26 . 95
NEO DESK 2.0 44.95
PROCOPY 31.50
R.A.I.D 44.95
REVOLVER 44.95
TURBO ST 44.95
WERKS 40 . 50
PRODUCTIVITY
1ST WORD PLUS 89 . 95
ART fc FILM DIRECTOR 71.95
AWARD MAKER PLUS ... 35.95
BASE TWO 53.95
CAD 3D 2.0 80.95
CALAMUS .' . . . . 269 . 95
CALAMUS FONT EDITOR. 89.95
CERTIFICATE MAKER .. 26.95
COMPUTE YOUR ROOTS . 35.95
CYBER CONTROL 53.95
CYBER PAINT 71 . 95
CYBER TEXTURE 44.95
DATAMAMAGER ST 71.95
D.E.G.A.S. ELITE ... 53.95
EASYDRAW/SUPERCHARG 134.95
EASY TOOLS 44.95
EZ-SCORE PLUS 134.95
EZ-TRACK 58.50
EDIT TRACK 179.95
FLASH 26.95
HABACOMM 9.95
HABAVIEW 19.95
HI-TECH MAIL PRO ... 53.95
HI-TECH ACCTS PAYBLE 62.95
HI-TECH GEN. LEDGER 62.95
INTERLINK 35.95
INVENTORY MASTER ... 89.95
KEY MARK 13.40
LABEL HASTER ELITE . 40.50
LDW POWER 134.50
LOTTO- FILE 17.95
LOTTO LUCK 26.95
LODWIG 134.95
LOGISTIX JR. VERS .. 89.95
HICROSOFT WRITE .... 49.95
HIDISOFT STUDIO .... 89 . 95
HDSIC STUDIO 88 .... 53.95
NEOCHROME 35.95
OCP ART STUDIO 9 . 95
PAGE STREAM 179 . 95
PARTNER ST 44 . 50
PHASAR 80.95
PRINTMASTER PLUS ... 35.95
PUBLISHER ST 116 . 95
SHADOW 26.95
STOS 53.95
STOS COMPILER 31.50
STOS SPRITES 600 ... 26.95
STOS MAESTRO 44.95
SDPERBASE PERSONAL . 134.95
SWIFTCALC 71.95
TOUCHUP 161.95
WORDUP 71.95
WORD WRITER ST 71.95
WORD PERFECT 195.00
EDUCATION
FIRST SHAPES
FIRST LETTERS/WORDS
SPELLING BEE
MATH TALK
MATH BLASTER PLUS . . MAVIS BEACON TYPING
SKYPLOT
TBI PRE -CALCULUS . . .
TBI CALCULUS
TBI ALGEBRA I
UNICORN:
AESOP'S FABLES . . .
ALL ABOUT AMERICA.
ANIHAL KINGDOM . . .
ARIBIAN NIGHTS . . .
DECIMAL DUNGEON . .
FRACTION ACTION . .
HAGICAL HYTHS ....
READ 4 RHYHE
READARAHA
WORD HASTER
44.95 44.95 26.95 44.95 35.95 44.95 89.95 44.95 44.95 44.95
44.95 53.95 35.95 44.95 35.95 35.95 44.95 35.95 44.95 44.95
PRICES SUBJECT TO CHANGE WITHOUT NOTICE - ALL SALES ARE FINAL
ComputerVisions
3257 KIFER ROAD
SANTA CLARA, CA 95051
(408) 749-1003
(408) 749-9389 FAX
A
STORE HOURS TUE - FRI 10am - 6pm
SAT - 10am - 5pm CLOSED SUN - MON
SOO/ X l^/ X E software
ALL TITLES ON DISK
ENTERTAINMENT
12 ADAMS ADVENTURES . . 221B BAKER STREET ....
ALIANTS
ALT. REALITY CITY
ALT. REAL nUNGEON
ASSDLT FORCE 3D
AUTO DUEL
BEYOND CASTLE WOLF ....
BANDITS
BISHARK
BLOCK BUSTER
BORDINO:1812
BOULDERDASH CONSTR.SET
BRUCE LEE
CASTLE WOLFENSTEIN. . . . CHAMP. LODE RUNNER ... CONFLICT IN VIET NAM .
CONAN
COSMIC TUNNELS
CRUSADE IN EUROPE ....
D-BUG
DALLAS QUEST
DELUXE INVADERS
DECISION IN DESERT . . .
F-15 STRIKE EAGLE
FIGHT NIGHT
GAUNTLET (64K)
DEEPER DUNGEONS
GRAPHIC ADVENTURES 16
GUNSLINGER
HARD HAT MAC
INFILTRATOR
JAWBREAKER
KARATEKA
KNICKERBOCKERS
KENNEDY APPROACH
LAST V-8
L.A. SWAT/PANTHER
LEADERBOARD
LODE RUNNER
MICROLEAGUE BASEBALL..
NAPOLEON AT WATERLOO .
NEVER ENDING STORY . . .
MONTEZUMA'S REVENGE...
MOUSEOUEST
MOON SHUTTLE
NATO COMMANDER
NIBBLER
NINJA
OIL'S WELL
O'RILEY'S MINE
PENSATE
PIE MAN
PIRATES OF BARB. COAST
PITFALL/DEMON ATTACK .
PREPPIE I l II
ROME i THE BARBARIANS
SILENT SERVICE
SOLO FLIGHT
SPITFIRE 40
SPY VS. SPY I « II . . .
STARBASE HYPERION
STARFLEET I
STAR RAIDERS II
STOCKMARKET
STRIP POKER
SUMMER GAMES
TAX DODGE
TEMPLE OF APSHAI
THE HULK
THEATRE EUROPE
TOP GUNNER
TRAILBLAZER
ULTIMA II
ULTIMA III
14 .95
8.95
26.95
26.95
26.95
19.95
35.95
14.95
5.35
26.95
7.95
22.50
17.95
8.95
14.95
26.95
10.95
8.95
9.95
10.95
7.95
7.95
7.95
10.95
14.95
17.95
31.50
22.50
26.95
26.95
7.95
13.50
9.95
13.50
13.50
10.95
8.95
8.95
13.50
13.50
35.95
22.50
8.95
14.95
17.95
7.95
10.95
12.95
8.95
9.95
9.95
14.95
14.95
22.50
13.50
9.95
17.95
12.95
12.95
31.50
9.95
7.95
44.95
17.95
22.50
26.95
17.95
9.95
9.95
5.35
8.95
10.95
26.95
35.95
35.95
ULTIMA IV 53.95
UNIVERSE 44.95
WINTER CHALLENGE 13.50
ZAXXON (400/800) 13.50
PROGRAMMING
DOS 2.5 7.95
DOS XE 10. 00
DISK I/O 26.95
KYAN PASCAL 62 . 95
LIGHTSPEED C 35.95
PRODUCTIVITY
ANIMATION STATION .... 79.95
ATARIWRITER+/SPELLCHK 44 . 95 ATARIWRITER 80
REQUIRES XEP80 .... 44.95
ATARI BOOKKEEPER 14.95
AWARDWARE (1050) 13.50
BANK STREET WRITER.... 14.95
BLAZ I NG PADDLES 31.50
COMPUTE YOUR ROOTS ... 35.95
DATAHANAGER 8.95
ELECTRONIC CHECKBOOK . 8.95
FAMILY FINANCE 6.95
FORMS GENERATOR 21.50
HOME ACCOUNTANT 19.95
HOME FILING MANAGER. . 6.95
HOHEPAK 24.95
INVENTORY MASTER 80.95
LETTER WIZARD 29.95
MONEY MANAGER 8.95
MUSIC CONSTRUCTION SET 13.50
NEWSROOM (1050 - 64K) . 13.50
NEWS STATION 26.95
NEWS STA. COMPANION. . 26.95
PAGE DESIGNER 26.95
PAINT 12.95
PRINT POWER (1050).... 13.50
PRINTKIT (1050) 13.50
PRINTSHOP 34.95
P.S. COMPANION (64K) . 24.95
P.S.GRAPHICS LIBRARY 1 17.95
P.S.GRAPHICS LIBRARY 2 17.95
P.S.GRAPHICS LIBRARY 3 17.95
PROOF READER 17.95
PUBLISHING PRO 35.95
RUBBER STAMP 26.95
SYNTREND 14.95
SUPER MAILER 35.95
THE LOTTO PROGRAM .... 17.95
TIMEWISE 6.95
TURBOWORD 80 "44.95
TURBOFILE 80 «44.95
* REQUIRES XEP80
VIDEO TITLESHOP (64K). 26.95
VIRTUOSO 29.95
VISICALC 24.95
EDUCATION
BUZZWORD 22
FRACTIONS MULTPLY/DIV 7 GRANDMA'S HOUSE (-10) HEY DIDDLE (AGE 3-10), LINEAR EQUATIONS ..... LINKWORD: SPANISH ....
LINKWORD: GERMAN 22.50
LINKWORD: FRENCH 22.50
.95 9.95
9.95
7.95
22.50
LINKWORD: ITALIAN .... 22.50
MASTER TYPE 14.95
PRE SAT WORD ATTACK .. 14.95 SAT PRACTICE TESTS ... 19.95 SNOOPER TROOPS CASE HI 9.95 SNOOPER TROOPS CASE N2 9.95 STATES AND CAPITALS .. 9.95 SPELLING BEE (AG 5-10) 14.95
TOUCH TYPING 9.95
QUIZ MASTER CONSTR.... 8.95 QUIZ MSTR. USA CONSTR. 8.95
AH EX I CAM EDUCATION: A+ BIOLOGY G10+ , . .
A+ GERMAN
A+ GRAMHER G4+ . . . A+ READING COMP Gl" A+ SCIENCE Gi-4 ... A+ SCIENCE G5-6 . . . A+ SCIENCE G7-8 ...
A+ SPANISH
A+ SPELLING G2-8 . . A+ U.S. GOV. G10+ . A+ U.S. HIST. G5t . A+ VOCABULARY G4 + . . A+ WORLD GEOG. G8+ A + WORLD niST. G8+ (G = GRADE LEVEL)
ATAXI |
CONCENTRATION
DIVISION DRILL
GRAPHING
INSTRUCTIONAL COMPUT
PLAYER MAKER
PREFIXES
SCREEN MAKER
SECRET FORMULA INTERM
SECRET FORMULA ADVANC
SPELL IN CONTEXT 8. . BUY 2, GET ONE FREE! CBS (AGE 3-6) :
ASTROGROVER
BIG BIRD SPEC DEL1VE
ERNIE'S MAGIC SHAPE.
17.95 17.95 17.95 17.95 17.95 17.95 17.95 17.95 35.95 17.95 17.95 17.95 17.95 17.95
8.95 8.95 8.95
DE3I&IMAZE:
MATHMAZE (6-11) 26.95
MISSION ALGEBRA (13+)13.50 SPELLICOPTER (6-11). 26.95
-6):
Tint XOIK (AGE 4-
ABC'S
COUNT AND ADD
SMART THINKER
SPELLING
SUBTRACTION
THINKING SKILLS . . . ALL 6 TINK TONKS .
8.95 8.95 8.95 8.95 8.95 8.95 39.95
UBICOU I
10 LITTLE ROBOTS
(PRE-SCHOOL) 26.95
FUN BUNCH (6-ADULT) 26.95 RACECAR RITHMETIC
(AGE 6+) 26.95
MEEKLY XIADEK ( PRE ■ SCHOOL) :
STICKY BEAR SHAPES . 26.95
STICKY BEAR NUMBERS. 26.95
STICKY BEAR ABC'S .. 26.96
STICKY BEAR OPPOSITE 26.95
SB BASKET BOUNCE ... 26.95
STICKY BEAR BOP .... 26.95
RUN FOR IT 26.95
PIC BUILDER 26.95
saa/ X JL,/ X E SOFTWARE
ALL TITLES ON CARTRIDGE
ENTERTAINMENT
3D TIC-TAC-TOE 9 .95
AIRBALL (XL/XE) 24.95
ALIEN AMBUSH 9.95
ACE OF ACES .(XL/XE) . 24.95
ARCHON 14.95
ASTEROIDS 15.95
ASTRO CHASE 14 . 95
ATARI TENNIS 9.95
ATLANTIS 14.95
BALL BLAZER 14 . 95
BARNYARD BLASTER .... 24.95*
BASKETBALL 14 . 95
BATTLEZONE 19 . 95
BLUE MAX 19.95
BOULDERS t BOMBS .... 14.95
CAVERNS OF MARS 14.95
CENTIPEDE 14 . 95
CHICKEN 7.00
CHOPLIFTER 19.95
CLAIM JUMPER (400/800) 9.95
CLOUDBURST 9.95
CRIME BUSTER 24 . 95*
CROSSBOW 24.95*
CROSSFIRE 9.95
CRYSTAL CASTLES (XL/XE) 19.95
DARK CHAMBERS (XL/XE). 24.95
DAVIDS HIDNIGHT MAGIC 19.95
DEFENDER 9 . 95
DESERT FALCON 14.95
DIG DUG 19 . 95
DONKEY KONG 10 . 00
CART ONLY 5.00
DONKEY KONC JR 19.95
EASTERN FRONT (1941). 19.95
E.T. PHONE HOME 9.95
FIGHT NIGHT 19.95
FINAL LEGACY 19 . 95
FOOD FIGHT (XL/XE)... 19.95
FOOTBALL 14 . 95
FROGGER 14 . 95
GALAXIAN 9.95
GATO 24.95
GORF (400/800) 9.95
HARDBALL 19 . 95
INTO EAGLES NEST{ XL/XE) 19 . 95
JOUST
JUNGLE HUNT
KABOOM J
KARATEKA
KRAZY ANTICS
LODE RUNNER
MARIO BROS (XL/XE) . .
HEGAMANIA
MILLIPEDE
MISSILE COMMAND
MOON PATROL
MR. COOL
MS . PAC MAN
NECROMANCER
ONE ON ONE (XL/XE) . . PAC HAN {CART ONLY).
PENGO
PLATTERMANIA
POLE POSITION
POPEYE
Q-BERT
QIX
RESCUE ON FRACTALAS RETURN OF THE JEDI .
ROBOTRON:2084
SLIME (400/800)
SPRINGER
SPACE INVADERS
STAR RAIDERS
STAR RAIDERS II
19.95 12.95
24.95 19.95
9.95 10.00 19.95
9.95 19.95 19.95 19.95
5.00 19.95
9.95 19.95 14.95 14.95
9.95 19.95 14.95 14.95
7 .00
7.95 14.95
5.00 19.95
SUBMARINES COMMANDER SUMMER GAMES (XL/XE).
SUPER BREAKOUT
SUPER COBRA
THUNDERFOX
TURMOIL
14.95 24.95
9.95 14.95 19.95
9.95
PROGRAMMING
ACTIONI 71.95
ACTION! TOOLKIT-DISK . 26.95
BASIC XL 53.95
BASIC XL TOOLKIT DISK. 26.95
BASIC XE 71.95
DIAMOND (GEM O/S ) .... 69.95
LOGO 29 .95
MAC/65 71.95
MAC/65 TOOLKIT-DISK... 26.95
PILOT 19 .95
SPARTA DOS X 71.95
PRODUCTIVITY
ATARIWRITER 29.95
ATARIWRITER (CART ONLY)19.95
FUN WITH ART 14.95
HICROFILER 22.50
BESSK9S1
J
Etoaaa
*
Sagas
EDUCATION
ATARI LIGHT HODULE
(REQ. STARTER SET) . 9.95 HATH ENCO0NTERS 9 .95
FISHE1 PUCE (PRE SCHOOL):
DANCE FANTASY 8.95
LINKING LOGIC 8.95
LOGIC LEVELS 8.95
MEMORY MANOR 8.95
ALL 4 FOR ONLY .... 24.95
SFXHAKEZ (AGE 3-10):
ALF IN COLOR CAVES . 9.95
ALPHABET ZOO 9.95
DELTA DRAWING 9 .95
FACEHAKER 9.95
KIDS ON KEYS 9.95
KINDERCOMP 9.95
STORY MACHINE (XL/XE) 9.95
(AGE 7 - ADDLT):
ADV . CREATOR ( 400/BOO ) .9.95
FRACTION FEVER 9.95
(" - REO. LIGNT GDN)
Ifcf ■!" Tii )"iT
SPECIAL PRICE
ATARI
XE GAME MACHING
NOW ONLY
$99.95
LIMITED TIME ONLY LIGHTGUN 34.95
.S ZJF>ER S F*EC I A i »S
RECONDITIONED ATARI MERCHANDISE 30 DAY WARRANTY
*
800 (48K)
COMPUTER
$79.95
10 JO MODEM WITH EXPRESS!
$24.95
SPACE AGE JOYSTICK
$5.00.
ATARI TRACKBALL
$9.95
3- 1/2" DISKS AS LOW AS 75 CENTS
10 FOR SB. 95
100 FOR $80
1000 FOR $750
DOUBLE SIDED WITH
OLD DEMO SOFTWARE
1020 COLOR PRINTER/ PLOTTER
$19.95
(new in box) 40 COLUMNS WIDE
INC. PENS, PAPER, ETC.
«00XL COMPUTERS
64K - $64.95 16K - $49.95
ATARI
NUMERIC
KEYPAD $7.95
5-1/4" DISKETTES AS LOW AS 20 CENTS
10 FOR $4.00
100 FOR $29.95
1000 FOR $200
MOST ARE IINNOTCHED
WITH OLD SOFTWARE
subject to change.
Phone orders accepted TUESDAY THROUGH FRIDAY from 10:00 am to 6:00 pm PST. We carry a full line of ATARI products - large public domain library - write or call for free catalogue
PRICES SUBJECT TO CHANGE WITHOUT NOTICE - ALL SALES ARE FINAL
CIRCLE #109 ON READER SERVICE CARD.
by Arthur Leyenberger
I don't know. Maybe it's me. Regardless of how much I want Atari to be successful, something always happens with them that frustrates the heck out of me.
Maybe being an Atari user for so long has clouded my judgment. As an Atari user, the inner workings of Atari Corp. is really none of my business. Really. I'm also an IBM PC user. I don't get all excited when IBM does something I disagree with or something that appears to be stupid.
Atari appears to be getting their act to- gether. They promised that 1989 would see a renewed effort on their part to promote and sell the ST in the United States. It may not actually happen until the first half of 1990. That's okay with me— at least they are trying. But in the midst of this effort, the revolving door of Atari management has opened and closed once again.
Assistant vice-president of sales Joe Men- dolia is no longer with Atari. I don't know the details of his leaving. Whether he quit or was fired doesn't matter to me. It just in- dicates once again that the Tramiels are dif- ficult to work for.
In my column in the October ST-LOG I mentioned the new User Group Coordina- tor, Chris Roberts. He had big plans for uniting the users' groups across the coun- try via a special-interest group on a telecommunications service. Other plans in- cluded the publishing of a users' group newsletter by Atari to improve communi-
cations with Atari Corp. Now, before the ink has dried on the pages of ST-LOG, Chris is no longer with Atari Corp.
Atari has said many times that they are relying on users' groups to help spread the ST gospel. It's a two-way street. If they want the support of users' groups, they need to support the user groups.
Interface Wars: The Continuing Saga
I have written many times about the ab- surdity of the interface wars, otherwise known as the "look and feel" lawsuits that have plagued the microcomputer industry. It seems that Apple Computer has spent more money suing other companies with products that have allegedly infringed on the look and feel of the Macintosh Desktop than they have on research and development. You probably recall that Apple threatened to sue Digital Research because the GEM Desk- top looked too much like the Mac Desktop. As a result, DR modified the GEM Desk- top (for MS-DOS machines) so it now is less intuitive and more difficult to use. For- tunately, the GEM Desktop on the ST has not been affected.
Apple actually brought suit against Microsoft for their Windows product and Hewlett-Packard for their New Wave graphical user interface. Luckily, the courts put a stop to Apple's shenanigans. The court ruled that a prior agreement between Ap-
ple and Microsoft did indeed grant Microsoft broad rights to what Apple claims was theirs. In effect, the judge threw out the case.
Although Apple still has some sort of claim concerning icons and their manipu- lation and the concept of overlapping win- dows, this decision should put a stop to Apple's attempt to sue anybody with a graphical interface. Further, if this does happen, users will benefit from a more or less standard interface.
All graphical user interfaces have essen- tially the same elements: multiple windows, drop-down menus and icons. It's about time users need not have to relearn the basics of program operation. For example, in the MS-DOS world, the Fl function key is typi- cally used to invoke a help function. This has become standard practice and makes programs easier to use. ST software using the GEM interface is made easier to use be- cause program functions are accessed in a consistent manner. Although a user still has to learn the specific commands of a new program, the interface does not interfere with the learning process.
Perhaps the recent court decision against Apple Computers will send a signal to other companies that have been pursuing "look and feel" lawsuits. I hope it does. Programs are becoming more complex all the time, and anything that can help the user is much needed.
DECEMBER A.IM.A.L.O.Q. Computing
Something Old, Something New
At the June 1985 Consumer Electronics Show, the major Atari excitement centered around the CD-ROM player for the ST. As you may recall, it was shown together with Groliers Encyclopedia, a CD-ROM appli- cation. Atari announced that both would be available by the end of the year. Most of us assumed that it was going to be the end of that year, but since the Atari CD-ROM player has yet to materialize, we can't be sure which year Atari had in mind.
Also shown over four years ago were several products for the then-recently in- troduced 65XE and 130XE computers. One product, meant exclusively for the 130XE computer, was a Lotus 1-2-3 clone called The Professional. Developed by VIP Soft- ware, it too was going to be available by the end of the year and sell for under $100. What was interesting about The Profession- al was that it used windowing and pull- down menus similar to those found on the ST.
In order for The Professional to operate as promised, a graphical interface was need- ed for the 8-bit computers. Sure enough, Atari was demonstrating one of those too. Appropriately (if unimaginatively) called the GEM Desktop, the new Atari software was a GEM lookalike program that was said to run on all 8-bit Atari computers. You
guessed it, VIP Software was the developer. And, of course, the program was promised to be available by Christmas.
I don't mention these never-released 8-bit products to embarrass Atari. Instead, I want to show how the excitement over the ST (at the time) had carried over into the 8-bit world. It seemed feasible that, for the most part, what could be done on the ST could be duplicated on the 8 -bit computer with a little imagination and a lot of program- ming acumen.
Atari never did deliver on their promise to develop and market a GEM-like inter- face for the 8-bit computers. However, with- in the last year, two companies were each working on similar graphical interface products. Total Control Systems' Graphic Operating Environment (GOE) and Reeve Software's Graphical Operating System (GOS) were both scheduled to be out by now, but to date, only Diamond GOS from Reeve Software (29W 150 Old Farm Lane, Warrenville, IL 60555; 312-393-2317) has appeared.
The Diamond GOS package consists of a supercartridge containing the GOS and the desktop software, a disk containing various utilities for configuring the Diamond en- vironment, another disk with the Diamond Paint program and two manuals (Diamond GOS user manual and Diamond GOS programmer's manual). The cartridge is the piggyback type that allows you to insert an- other cartridge into the top of it. To use Dia- mond, you need a mouse (not included in the package). Although the product can work with joysticks, trackballs and touch tablets, the manual highly recommends the use of an ST mouse. So do I.
Diamond GOS is similar to the GEM Desktop. The initial configuration (which you can modify to suit your own system) consists of disk drive and trash can icons, one window in the center of the screen and four menu names (Desk, File, Disk and Op- tions). With the mouse plugged into Port 1 (the second joystick port), you have com- plete control over the desktop by pointing, clicking and dragging.
Only two windows can be opened at once on the desktop (compared to four on the ST). Interestingly, as you click on either of the two windows, the operating system re- reads the disk in the selected drive. Press- ing the escape key will update the window if you happen to change disks in the drive
that has the active window.
Another interesting difference between GOS and the ST GEM desktop is what hap- pens when you make a particular window active by clicking on it. The screen is repainted when you do this and the under- lying window information is lost. Like the GEM desktop, once you have configured your GOS desktop with particular windows and drive icons, you can save the desktop to disk. That way, whenever you boot your system with GOS, your familiar desktop configuration will be displayed.
As this is not a full review of Diamond GOS (see the September '89 ANALOG Computing), I won't describe all the fea- tures of the program. However, it is signifi- cant that someone (Reeve Software) has been able to create a graphical user inter- face for the 8-bit Atari computer. Since Dia- mond GOS works with most 8-bit disk-operating systems— Atari DOS 2.5, Atari DOS XE, Sparta DOS X, etc.— it can be thought of as an extension of DOS rath- er than a replacement.
Currently, only one program runs under Diamond GOS: the supplied paint program that comes with the package. Reeve Soft- ware states that they will be offering addi- tional programs in the near future, such as desk accessories, a word processor and a desktop-publishing program. If Diamond GOS catches on, perhaps other software suppliers will write programs to run under the system.
The cartridge version of Diamond GOS sells for $79.95. You'll have to add another $35 to the total price if you don't happen to have an ST mouse. There is no question that Diamond GOS brings a functional, modern graphical user interface to the 8-bit Atari. You'll have to decide if it is worth the price given the lack of additional soft- ware that is now available to work with it.
Arthur Leyenberger is a freelance writ- er who lives in beautiful New Jersey. He can be reached on CompuServe at 71266,46 or on Delphi as ARTL. r
DECEMBER A.IM.A.L.O.G. Computing
Ammwmwm w /mm mp m xmm m cm
•80 COLUMN EDITING
• EDTFABLE PRINTER DRIVER
• 30,000 WORD DICTIONARY •MAILMFRGF.
• ON 5K DISKETTE
$49;
• CONNECTS TO ANY COMPOSITE MONITOR 80 COL DISPLAY PRINTER INTERFACE
$79 i
PACKAGE
12" MONO MONITOR ATARI XEP 80 ATARrWRITRR 80
$179
EVEN; BETTER
• 12" MONO MONITOR •ATARIWRrTER80
• ATARI XF.P 80
• 102S PRINTER
$229
^1020
^^© $14.95
COLOR
PRINTER
PLOTTER
compi-etewitii:
• 2 PEN SETS •1 Rax PAPER
• POWER SUPPIY &. CABLE
EXTRA PEN SETS
COLOR $3.98 BLACK $.89
COMPLETE Willi:
POWER SUPPLY
l/OCABI.E
DOS 2.5 W/
MANUAL
MWES
ATARI 810 ATARI 1050
$129.00 $169.00
RECONDITIONED
1200XL 64K COMPUTER <C A ft 2S6 ' OU)KS CF /Z ft
J^t|" XEGS COMPATIBLE ^O^
IWA3 MATRIX
PRINTER
RECON- DITIONS
dS59
OAA48K 0«« MEMORY
COMPUTER
RECON <£ A Q DITIONP.D^P^Iy
|
p : |
THE BIST LIGHT GUN FOR YOUR 800/XL/XE |
|
$35 |
OR THE PACKAGE LIGHT GUN rri -4 t\ t\ CRIME BUSTERS *K 1 1 1 M CROSSBOW >J-7 A vf J BARNYARD BLASTER |
850 PRINTER INTERFACE $79.95
JOYSTICK EXT CABLES 10' $2.95
ATAR I TWO JOYSTICK SET $9.95
SPACE AGE JOYSTICK $14.95
WICO COMMAND JOYSTICK $14.95
WICO THE BOSS JOYSTICK $19.95
ATARI TRACKBALLS $9.95
ATARI SX212 MODEM $89.95
AVATEX 1200HC MODEM $89.95
DOS 2.5 W/ MANUAL $4.95
600XL (NO Transformed $19.95
400,800,850,1200XLTransfbmer $14.95
XL/XE Transformer $24.95
THE NEWSROOM Desktop Publisher By SmiNGBOARD
$15
BASIC CARTRIDGE $4.95
BASIC TUTOR (2 BOOKS) $4.95
01 X $4.95
TURMOIL $4.95
PAC-MAN (no bold $4.95
DONKEY KONG (no box) $4.95
GORF (400,800) $4.95
CHICKEN $4.95
SLIME (400,800) $4.95
O.AIM JUMPER $4.95
DEIJJXE INVADERS $4.95 JOURNEY TO Tl IE PLANETS $4.95
STAR RAIDERS $4.95
DEFENDER $4.95
FT $4.95
FACEMAKER $4.95
MATH ENCOUNTER $7.95
QMcnuGtiaBS wm the mmmmB
dance fantasy look: levels memory manor linking lock delta drawing hey diddle diddij- grandma's house fraction fever alphabet zoo
ALF
ASTRO CHASE
FROGGER
DIG DUG
MILLIPEDE
SKY WRITER
FOOTBALL
$8.95 ROBOTRON $19.95
$8.95 TENNIS $19.95
$8.95 FINAL LEGACY $19.95
$8.95 MARIO BROS $19.95
$9.95 DONKEY KONG JR $19.95
$9.95 JUNGLE HUNT $19.95
$9.95 MOON PATROL $19.95
$9.95 BATTLEZONE $19.95
$9.95 FOOD FIGHT $19.95
$9.95 HARDBALL $19.95
$14.95 FIGHT NIGHT $19.95
$14.95 ONE ON ONE BASKETBALL $19.95
$14.95 DESERT FALCON $19.95
$14.95 NECROMANCER $19.95
$14.95 RESCUE ON FRACTAUJS $19.95
$14.95 BAIXBLAZER $19.95
BLUE MAX $19.95
STAR RAIDERS II $19.95 DAVID'S MIDNIGHT MAGIC $19.95
ARCHON $19.95
KARATEKA $19.95
CHOPLIFTER $19.95
GATO $24.95
ACE OF ACES $24.95
LODE RUNNER $24.95 BARNYARD BI.ASTER (I-G) $24.95
DARK CHAMBERS $29.95
A1RBALL $29.95
SUMMER GAMES $29.95
CROSSBOW (LG) $29.95
EAGLES NEST $29.95
CRIME BUSTERS (IXJ) $29.95
MICROTI I EK (JaUha.se) $19.95
HSK SOFTWARE FOR TOE MtofflUXB
DAVID'S MIDNIGHT MAGIC $4.95
SPIDERMAN $4.95
CRYSTAL RAIDERS $4.95
REPTON $4.95
BANDITS (48K 400,800) $4.95
CLAIM JUMPER $4.95
DECISION IN THE DESERT $4.95
CRUSADE IN EUROPE $4.95
KENNEDY APPROACH $4.95
CONFLICT IN VIETNAM $4.95
NATO COMMANDER CROSSCHECK MISSION ASTEROID COMMBAT PREPPIE I THE COUNT FREAKY rACTORY LASER HAWK CRYSTAL RAIDERS ADVENTUREI.AND
$4.95 $4.95 $4.95 $4.95 $4.95 $4.95 $4.95 $4.95 $4.95 $4.95
SECRET MISSION
VOODOO CASTLE
STRANGE ODYSSEY
REPTON
HULK
AIJEN AMBUSH
JAWBREAKER
SPY VS SPY
$4.95 $4.95 $4.95 $4.95 $4.95 $4.95 $7.95 $9.95
TOP GUNNER COLLECTION
(3 GAMES) $9.95
SIUCONDREAMS0O5O) $9.95
JEWELS of DARKNESS(1050) $9.95 SILENT SERVICE $9.95
DISPATCH RIDER $9.95
SILICON DREAMS $9.95
F-15 STRIKE EAGLE $9.95
THE NEWSROOM(1050-64K) $15.00 BOOKKEEPER
W/ num keypad $29.95
HOME ACCOUTANT $29.95
SPECIALISE
NEW Ataumis
DECISION IN THE DESERT $4.95
CRUSADE IN EUROPE $4.95
KENNEDY APPROACH $4.95
CONFLICT IN VIETNAM $4.95
NATO COMMANDER $4.95
F-15 STRIKE EAGLE $9.95
SILENT SERVICE $9.95
SPY VS SPY $9.95
EIGHT SPEED C
DEVELOPMENT
KIT
$35.95
^
^m^
emmmm
SALE
ONLY $14.95
Reg. S29.95
fim rme mm smpptm
ON ALL GROUND ORDERS IN THE CONTINENTAL U.S. *
,J7>v,sfwr mm
3.5 BULK PACKS WITH LABELS
l-$.99 25 -$24.75 1000 -$750.00
3 TO CHOOSE FROM!
SM124 MONO MONITORS
$149
MEM0M WGilAmS,
TECH SPECIALTIES 2/4Meg $149.95
NEW WORLD UPGRADE 2/4Meg $139.95 ARCO BOARD l/2/4Meg $169.95
256K/lMeg CHIPS $CALL
SIT TOfcM) SMEW!!
J.AT.O.BOARD8/16Mhz $99
CMI PROCESSOR ACCELERATOR $299 Math Co-processor for CMI 12Mhz $99
Smm PRINTERS;
STAR NX1000
STAR NX1000 Rainbow
STAR NX2400 4 Fonts
9 Pin $199 9 Pin $299 24 Pin $399
mmAGE
$99
• 64K 8-bit COMPUTER
• 1020 COLOR PRINTER PLOTTER
• 1025 DOT MATRIX PRINTER (80 COL)
• PAC-MAN CARTRIDGE
• BASIC WITH TUTOR SET
Give the kids something else to play with besides your ST!
m- mm wm%Am
• SI. AGON '■<
• GOl.DRUNNER •JUPITER PROBE
• KARATE KID PART
$29
mL $$m OF FREE w SQFTmiE*
WITH PURCHASE OF ANY NEW ST!
YOU GET Knight Ore, Tracker*Advanced Art
Studio, Guild of Theives, The Pawn, Golden
Path, U.M.S., Jinxter Sent™ Starghder, Hit
Disk, Goldrunner II, The Grail, Invasion,
Soccer, Zero Gravity, Tetra Quest, Paint Pro,
Datatneve, Neocrome, Planetarium, Magical
Math, Spelling Bee
520ST W/SSDD Drive (USED) $299
520STFM W/DSDD Drive (NEW) $499 1040STFM W/DSDD Drive (NEW) $699
(NEW) $1199 (NEW) $1799
«s $650
Mega 2ST Computer Mega 4ST Computer JRI GENLOCK SYSTEM ST/IME MODULE
Battery Backed up Clock slw ' $59 IMG SCAN Printer Scanner $89
RC AEROCHOPPER
RC Flight Simul. w/Futaba control $199 WICO COMMAND JOYSTICKS $14.95
"WcrKs only wild TOS 10
We reserve the ricftt to make exchanges for out of stock items
ST HARD DRIVE
sMwm,
ATARI MEGAFILE 30 $529
AWESOME 60+ (60Meg 28ms) $799
AWESOME 80+ (80Meg 28ms) $999
peBomdi «4Q
l§feS101gl! Reg. $199.95
THE M BEST
MClJSE.
LACEMENT MOUSE FOR THE ST!
mmmm
"i"
Golden Path
Knight Ore
Tracker
Advanced Art Studio
Guild of Thieves
The Pawn
Jinxter
Sentry
StarGlider
Universal Military
Simulator Carrier Command
ALL ITEMS REG. $59.95
$4.95 $9.95 $9.95 $9.95 $9.95 $9.95 $9.95 $9.95 $9.95
$14.95 $29.95
$49.95
Sm€ML SOETmAME^ SALE CI
HIT DISK (4 games) GOI.DRUNNER II GRAIL INVASION SOCCER ZERO GRAVITY TETRA QUEST PAINT PRO DATA RETRIEVE II & DBASE Atari PIJVNARIUM
Reg $59.95 Reg $»95 Reg $19.95 Reg $29.95 Reg $»95 Reg $29.95 Reg $29.95 Reg $49.95 Reg $49.95 Reg $99.95 Reg $29.95
NOW! $29.95 NOW! $1995 NOW! $12.95 NOW! $19.95 NOW! $19.95 NOW! $19.95 NOW! $19.95 NOW! $19.95 NOW! $19.95 NOW! $19.95 NOW! $19.95
mg:
ElmJIiMiOR
EORwmm
MAGIC SAC PLUS
w/Roms $79.95
SPECTRE 128 V1.9 $169.95
MAC ROMS 64K $19.95
MAC ROMS 128K $129.95
SAN JOSE COMPUTER
THE A T A R
STORE
640 BLOSSOM HILL RD. SAN JOSE, CA 95123 STORE (408) 224-8575 • FAX (408) 224-8574
• SHIPPING: ADO $5.00 TO ALL ORDERS. AIR AND INTERNATIONAL SHIPPING EXTRA. THAT'S IT.
WARRANTY: 90 DAY WARRANTY ON ALL ITEMS. TAX CALIFORNIA RESIDENTS ADO 7% SALES TAX.
PREPAYMENT! USE VISA, MASTERCARD, MONEY ORDER, CASHIER'S CHECK OR PERSONAL CHECK. PERSONAL CI IECK MUST CLEAR PRIOR TO SHIPMENT. C.O.D.: CASH, CASHIER'S CHECK OR M.Q ONIY.
Prices subject to change without notice.
Brand and/or product names are trademarks or registered trademarks of their respective holders.
Ad produced on an ATARI ST using CAI j\MUS and printed on an ATARI SLM804 PostScript compatible laser printer.
CIRCLE #110 ON READER SERVICE CARD.
mcmship:
A Complete GEM Application, Part 5
by Clayton Walnum
Iast time, we added the code needed to create a new MicroCheck ST ac- count. Unfortunately, once the ac- count was created, we still weren't able to open it. This month we'll add the program segment that'll not only handle that task but also will enable us to modify the date shown in the date informa- tion box at the bottom of the MicroCheck ST screen.
Listing 1 is the new source code for this month. You should merge it with the com- bined source code from the previous
months and delete the open acct(), do
new mnthQ, save month () and get
new dateQ stubs from the previous
portion.
Now compile the program and run it. Start a new account. After that procedure is complete, a dialog box will appear, ask- ing for the month you want to work on. Se- lect the month. The account will be opened and the information boxes on the screen will be updated for that account.
Now choose the New Date option of the Utilities drop-down menu. Another dialog will appear. Type in a new date. When you select the dialog's OK button, the date you have typed will appear in the date- information box at the bottom of the screen. Let's take a look at the new functions.
Function open acct()
This function is called whenever the user wants to open an account or has just fin- ished creating one. It gets as input a point- er to the filename of the account the user wants to open. At the beginning of the func- tion, it attempts to open the .MCK file for the account. If it fails, an alert box warns the user, and no further processing is done.
If the fopenQ call is successful, we read in the information that's stored in the file. The file format is shown below. All of the information is in character format except the account balance, which is a long integer:
Bytes 1-26 Name
Bytes 27-52 Street Address
Bytes 53-68 City
Bytes 69-78 Unused
Bytes 79-81 Stale
Bytes 92-95 Account balance (long int)
As the data is read in, it's formatted the way it will appear in the check-entry dia- log box. After reading all the data, we close the file and plug the pointers to the name
and address string into the oh spec for
each of the appropriate fields in the check- entry dialog box.
cheek_addr[CHKNAME]. ob.spec = chkname; check_addr[CHKSTREET}. ob spec = chkstreet; check _addr[CHKNAME]. ob_spec » chkcity;
In the above, check addr is the address
of the check-entry dialog box; CHKNAME, CHKSTREET and CHKCITY are the names of string objects inside the dialog box; and
ob spec is the pointer to the string to be
displayed for that object.
After setting the dialog-box strings, we
call do new mnthQ, which gets the
month selection from the user and calls the functions necessary to actually open the files. If the account gets opened okay, the flag loaded will be TRUE, and we'll call
set menu entriesQ in order to enable and
disable the appropriate entries in the drop- down menu.
Function do new mnthQ
Here, we first set the title string of the month-selection dialog box to "NEW MONTH" by placing a pointer to the string (newm) into the object's ob spec field:
concdial_addr[CANC
GJ. ob_spec a newm;
Here, cancdial addr is the address of
the month-selection dialog box and CANCSTRG is a string object within the dialog box.
The integer value choice, the button on which the user clicked to exit the month- selection dialog box, is returned from a call
to get mohthQ, the function that handles
the dialog itself. If the user exited with the OK button, we save the current month's data if it needs to be (saved equals FALSE) and call open new month Q to open the files.
Function save month ()
In this function we first take the filename of the file to save (the pointer to which is passed into the function as file) and change the extension to "BAK." We then delete any backup file that may already exist for that month and rename the old data file as the new backup file. We then open a new file with the filename pointed to by file (warn- ing the user with an alert box if we get an error), after which we write that month's data out to the file.
The first two bytes written are the num- ber of transactions in the file (in integer form). Then, using a for loop, we call
save checkQ for each check record in the
check structure, writing the data to disk, af- ter which we close the file.
Now all we have to do is save the new account balance. Our call to fseekQ moves the file pointer 91 bytes from the beginning of the file, which is where the balance is stored. We save the balance and close the file.
Function open new monthQ
The first task here is to discover which month the user selected from the month- selection dialog box. We do that by using a for loop to scan through each of the but- ton objects in the dialog to see which one is selected. (Note that this technique will work only if the button objects were creat- ed in numerical order when the dialog was first designed.) Based on which button was selected, we set the integer mnth equal to a number from 0 to 12. The value 0 represents the Month 0 file, with the values 1 through 12 representing January through
DECEMBER A.IM.A.L.O.Q. Computing
ST
December, respectively. All that's left now
is a call to open monthQ to read in and
process the data for the new month selected.
Function open monthQ
Since we're now opening a new file, we set the flag saved to TRUE. This flag will remain TRUE until we modify the data somehow. Next, we initialize some varia- bles, then construct the filename for the month we'll be opening.
After opening the file, if we find that the transaction count is zero (by reading the first two bytes from the file), we ask the user if he'd like to start a new month. We have to do this because if the user has trans- actions entered into his . AUT file (automat- ic transactions), they will be added automatically to this month's file when it's opened. This gives the user a chance to change his mind before the transactions are entered.
If the user chooses to open the file, we
call load autoQ to load any automatic
transactions. If the user chooses not to open the file, we set everything back the way it was and exit the function.
Assuming we've opened the file, the flag do—it will be TRUE, so we clear the win- dow, set the loaded flag to TRUE, set up some strings for the display and store the current month into month. Using a while loop, we read in all the checks from the file, keeping a count on the number of deposits
and the number of checks as we do. Final- ly, we initialize some strings and variables, copy the account name and the string ":Edit Mode" into the window's title bar, close the file and vamoose.
Summing It Up
The rest of the functions presented this month, though they have important roles in the workings of MicroCheck ST, do not real- ly need much discussion. Most of the programming theory used in them has al- ready been covered, so I'll give you only a quick rundown on what they do:
load autoQ loads any automatic trans- actions that may be in the user's .AUT file.
save check() saves the data for a check
to disk.
read checkQ reads the data for a check
from the disk.
clear windowQ blanks out the pro- gram's window with a white rectangle.
get monthQ brings up the month- selection dialog box and retrieves the user's choice.
get new_dateQ allows the user to
change the program's displayed date via a dialog box.
chk dateQ simply makes sure the date
dialog box in get_new_dateQ was filled in correctly by the user.
updte buttons () places new data in the
information boxes on the bottom of the screen.
And Now, the Great Cop-Out
It's become apparent to me that to con- tinue on through the entire source code for MicroCheck ST would be forcing you to sit through a lot of boring repetition. The fact is that, in the code we've covered so far, we've looked at all the major topics I want- ed to discuss and seen how they work in a full-scale program. I say, "Enough is enough!"
So we're calling it quits. On this month's disk you will find not only the code for the functions we discussed here, but the entire source file for MicroCheck ST. Study it if you're really interested in all the minor details.
In the next C-manship, we'll find a brand- new topic for discussion. (And no, at this point I haven't the vaguest idea what it will be.)
Clayton Walnum is the Executive Edi- tor of ANALOG Computing as well as the Associate Editor of VIDEOGAMES & COMPUTER ENTERTAINMENT.
ATTENTION PROGRAMMERS !
ANALOG Computing is interested in programs, articles, and software review sub- missions dealing with the Atari home computers. If you feel that you can write as well as you can program, then submit those articles and reviews that have been floating around in your head, awaiting publication. This is your opportunity to share your knowl- edge with the growing family of Atari computer owners.
All submissions for publication, both program listings and text, should be provided in printed and magnetic form. Typed or printed copy of text is mandatory and should be in upper and lower case with double spacing. By submitting articles to ANALOG Computing, authors acknowledge that such materials, upon acceptance for publica- tion, become the exclusive property of ANALOG Computing. If not accepted for pub- lication, the articles and/or programs will remain the property of the author. If submissions are to be returned, please supply a self-addressed, stamped envelope. All submissions of any kind must be accompanied by the author's full address and telephone number.
Send your programs and articles to:
ANALOG COMPUTING
P.O. BOX 1413-M.O., Manchester, CT 06040-1413
Personal Publisher
The past few Personal Publisher columns have been hard-core how- to tips-and-tricks-type articles. While I have hardly scratched the surface of what can be done using the Atari 16-bit line of computers for per- sonal publishing, I'd like to take a break. Heck, the holidays are just around the cor- ner, and it's time to work on wish lists for Santa. I've been writing about the Atari ST for more than four years now, and most of my wishes have come true by getting an editor or a publisher to send me review copies of their software (and in a few cases, their hard- ware). I'm in a pretty good position to play Santa's helper in the area of ST electronic publishing, so I'd like to make some recom- mendations as well as belatedly introduce myself to ANALOG Computing readers. I caught the computer bug in Novem- ber 1985 when we purchased a 520 ST for my wife to use as a word processor. We bought a color monitor because we knew our children would eventually want to play with the computer (not to men- tion me, the big kid in our home). We also purchased an SG-10 dot-matrix printer at the same time. By the summer of 1986, we had upgraded the 520 to one mega- byte of RAM. I was using The FinalWord for word processing, while my wife Jes- sie had switched from 1st Word to ST Writ- er 1. 7, and I approached the now-defunct ST Applications with the idea of writing software reviews.
I worked as senior production editor for Contemporary Books, the largest trade
50
by Donovan Vicha
book publisher outside New York City, and was very interested in desktop pub- lishing. I saw no reason why the ST wasn't the perfect platform to learn elec- tronic layout and design. Unfortunately, there wasn't much available for the ma- chine at the time. But the next three years saw a lot of catching up by both Atari and third-party developers.
In April 1988, 1 quit my job and began floundering about as a freelance edi- tor/designer. And now I'm about to take a job with a big financial services pub- lisher as manager of composition services and will be working on getting the com- pany into desktop publishing. Our home office now boasts our original one- megabyte 520 with color monitor hooked up to the SG-10, Supra 2400 modem and an SH204 20-megabyte hard drive; a Mega 2 with mono monitor hooked up to an Astra drive, a Blaser Star HPLJII- compatible laser printer and an NEC LC-890 PostScript laser printer.
So what do / wish for from Santa? A Mega ST4. An SLM804 with UltraScript and all of its fonts. A SyQuest 44 removable-cartridge hard disk. And at the very top of an impossible list, a 19 ' Moni- term Viking monitor.
If your wish list looks like mine, this column will probably be of little interest. But if you've got your sights on more reasonable gifts, the suggestions below should help you tailor your list so that it includes exactly those products that fit your needs.
The High End
At the very high end are products much like those on my own wish list. I'll men- tion only one here. I've seen the SLM804 in action, and while I'm warned its instal- lation process is complicated, I still want it over the two excellent laser printers I have. 'Nuff said, right? With UltraScript, the Atari laser is a killer hardware pack- age. The lack of onboard RAM, rather than being a disadvantage, makes for su- perior speed in output, which is essen- tial for professional publishing projects. It may also be possible, someday, to con- vert the laser for higher dpi output (the LaserMaster card for HP lasers, boost- ing output to 600x400 dpi, is proof that it is possible), so let no one tell you the Atari laser printer will become obsolete in a few years.
There are four DTP packages current- ly available for the ST, five if you include Publishing Partner, which has been supremely upgraded to PageStream. The other three packages are Timeworks Desk- top Publisher ST, Calamus and Fleet Street Publisher 2.0. I can recommend Fleet Street only if you already have the other three and a yen to complete your collection. Fleet Street has great poten- tial with many excellent, albeit cumber- some, type-handling features; but it lacks the ability to print multiple-page docu- ments and to flow text from one page to the next and back— two functions the oth- er programs handle inpro forma fashion. Let me state here that all of the DTP
DECEMBER A.IM.A.L.O.Q. Computing
packages have their strengths and weak- nesses. You must realize that such is the nature of electronic layout and typeset- ting, that no software package is perfect. Even the top programs for the Macintosh and IBM suffer in one way or another. Nevertheless, Fleet Street Publisher is the weakest package in the lot due to the faults mentioned above.
PageStream is the must-have program for professional publishing and creative layout needs on the ST. With Version 1.6, PageStream handles design and layout su- perbly, with tagging, rotation of text or graphics, text wrapping and a growing li- brary of excellent fonts. With its power- ful toolbox and manipulation functions (duplication, macros, rotation and group- ing), you don't really need a drawing pro- gram for creating graphics separately. It handles color printing, as well as print- ing on just about every conceivable print- er, low-end to high-end. Memory management is not its greatest strength, but it is the least stingy program RAM- wise and in terms of disk space than the other programs, meaning you can get by with the minimum configuration of a 520 and a single-sided drive.
PageStream remains the most user- friendly interface when it comes to crea- tively using the multitude of powerful functions built into this program. That does not mean it is the simplest to use, but there is usually more than one way to achieve what you want to do. Also, un- like Calamus or Fleet Street, the interface does not break down into so many specialized modes that you become easi- ly confused. PageStream is the only DTP program I can recommend to both class- es of users, beginner and expert. While the learning curve for PageStream for new users may be longer than that of Desktop Publisher, it extends over a much larger number of powerful, creative functions than the Timeworks program.
Calamus is also powerful, but when compared to the size of PageStream in terms of code alone, I still have to ask, "Where's the beef?" {PageStream is half the size of Calamus.) Calamus falls short of PageStream in a couple of categories that may or may not be critical to you: It does not support color or PostScript, and, although Calamus handles such eso- teric functions as chapter numbering and footnoting {PageStream does not), it seems needlessly complex in its user in- terface, which requires a variety of frame types with their own idiosyncratic uses.
Calamus is a high-end product for
professional-level users rather than begin- ners with no training in traditional lay- out and design. Calamus' & Compu- Graphic fonts are expensive, but that is offset by its excellent, albeit also expen- sive, font editor. Unfortunately, the pres- ent CompuGraphic fonts do not compare