==========================================================================

               *---=== ST REPORT WEEKLY ONLINE MAGAZINE ===---*

                      "The Original Online ST Magazine"
                       ------------------------------- 

December 12, 1988                  Monday                 Volume II  No.65

==========================================================================


                         ST Report Online Magazine 
                       ------------------------------
                          Post Office Box   6672
                           Jacksonville, Florida
                               32236    6672
                                R.F. Mariano
                             Publisher - Editor
                 _________________________________________

                       Headquarters Bulletin Boards
                       ----------------------------
     North                                                      South
  201-247-8252                                              904-786-4176
                   Central                       West
                 216-784-0574                916-962-2566

--------------------------------------------------------------------------

                                 Highlights
                                 ==========
  ~ From the Editor's Desk.............~ Spectre and Discovery.........
  ~ Living in Atari World..............~ NEW on GEnie..................
  ~ Pro GEM Windows #16................~ ST REPORT CONFIDENTIAL........
                              and....much more!

 ========================================================================
 AVAILABLE ON:     COMP-U-SERVE  ~  DELPHI  ~  GENIE  ~  THE SOURCE
 ========================================================================


From the Editor's Desk:
-----------------------


    "What????  My St is going to be a GAME MACHINE?  The nerve!"  Have any
of you heard this remark or ones similar to it?  Seems a little foolish to
me to hear folks who know and love their ST to say such pompous tripe. 
Think over what I just said before you go off on a tirade about this.

      Don't you think that Atari is entitled to make a handsome PROFIT on
the fruits of it's labors?  Consider that fact that when they had the
multi-million dollar market of game machines all to themselves we at least
knew they would come out with something new REGULARLY.  Now, we don't know
what is coming next, (mainly because they don't), realistically speaking,
I hope they blow all the home video game companies right out of the water
with the STGS (ST Game System).  That'll provide the cushion of funds 
needed to get Federated running properly and for the needed R&D for the 
ST computer market.

      Federated Stores could very easily become a very strong factor in
the resurgence of Atari US.  Give this some serious thought, we have been
told the major reason Atari bailed out of the mail order scheme of things
was because they had no control over the pricing.  For example, a dealer
in N.J. is selling a 1040 ST color system for list price or even 10% off
list.  The average consumer in the USA is accustomed to receiving the
benefit of a discount and it usually is a GOOD discount.  What Atari has
done is open the flood gates of GOUGE by removing the stabilizing factor
on prices the mail order houses provided.

      We propose this, use the facilities of the Federated Stores for a
National Mail Order Operation, build in a discount that takes into
consideration that there is no heavy after purchase support.  Allow a
better than 90 day warranty on the high end items.  By using the Federated
Chain as your mail order outlets you will [a] have a strong control on
pricing of ALL Atari products (both mail order and Dealer retail levels)
thus eliminating the rip off now taking place. [b] Have an avenue of supply
to those areas in the country that are not serviced by a conveniently
located dealer.  [c] Atari will, in effect, have a more direct and
positive relationship with the customer base it is attempting to build.

      In the coming months we hope to see some of the wrongs so strongly
in evidence be corrected.  Atari.. IS our computer by CHOICE.



                                                Ralph.....



PLEASE, Don't drink and Drive....



*************************************************************************




IMPORTANT NOTICE!
-----------------
As a reader of ST Report Magazine, you are entitled to take advantage of
a special DELPHI membership offer.  For only $29.95 ($20 off the standard
membership price!), you will receive a lifetime subscription to DELPHI, a
copy of the 500-page "DELPHI: The Official Guide," and a credit equal to
one free evening hour at standard connect rates.

Signing up with DELPHI
----------------------
Using a personal computer and modem, members worldwide access DELPHI
services via a local phone call.

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

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.




**************************************************************************





                           SPECTRE and DISCOVERY
                           =====================


by R.F. Mariano

      Almost all items provided for mankind's convenience and use have a
downside, if we are to look for only the 'downside' these items will
indeed appear to be detrimental.  I read all the strings and found a great
many injustices on both sides of the issue and statements made by folks
who were, by the way they said things, one sided and unfair.  I propose 
that the Discovery Cart be used in conjunction with the Spectre Cart and 
that both manufacturers come to terms on that point and agree.  We cannot
and will not condone 'bootlegging' ROM chips or any other illegitimate 
practice.

      Last week's release from HCP pertaining to Discovery and Spectre 
was, in our opinion, inflammatory and suggestive and it could have been 
altered or not released at all..but, in the same vein, we saw where the
"groupies" on a certain service saw fit to tear apart the Discovery Cart
with every possible and impossible accusation they could come up with.
To me, and (by the large quantity of mail received) a good many readers
took exception with this unfair display.  In fact, that is the major
reason the information was published in the first place to allow the users
to see that NOT ALL avenues of information were caught up in the "Down
with Discovery" nonsense and that we at ST Report have faith in the
userbase to choose right from wrong..  Now, since all this is water under
the bridge, we look to the future and hope the entire picture for Atari 
matures and develops into a very strong upward growth pattern as it has in
Europe.

      We respectfully request of both David Small and Richard Adams...
"Both of you have provided magnificent products to the ST marketplace.  
The shame is, that you two must be bitter with each other.  Our only wish 
is that the two of you get over your differences and make your products 
totally compatible."  Actually, the only real victims in this, hopefully
reversible, conflict is the userbase, each and every owner of an ST and
every potential owner...

      I followed the directions listed in last week's item and now am able
to use the Discovery Cart and Spectre together, no more do I see myself
wearing out the PCB trace at my cart port on the mega4 by installing
either one or the other cartridge continually.  Now, all I need do is
power down, flip a switch and power up.  The Discovery Cart is plugged into 
the mega4 cart port and my Spectre 128 Cart is inserted into the port on 
the Discovery Cart.  It works perfectly.


      Spectre 128 and Discovery are both very well designed and engineered
products and without the slightest hesitation we highly reccommend BOTH
products to all users who are interested in emulation and ease of
operation.





--------------------------------------------------------------------------





                           Living in the World of Atari
                           ============================

         Up until  about a  year ago last December, I was a happy-go-lucky
         IBMer. What's an IBMer?  That's usually  someone who  works for a
         big company  and uses whatever computer his boss tells him to. In
         this case, though, I was the boss who chose IBM.  I was convinced
         that  Ventura  Publisher  was  the best Desktop Publishing system
         available and it only runs on IBM PCs. I'd been using Ventura for
         about  a  year  and  was  also using Lotus Freelance, Publisher's
         Paintbrush, Displaywrite/4 and several  other  products  that ran
         chiefly on IBM.

         One  of  my  favorites  was  SPF/PC,  from  CTC.  It is virtually
         identical to the SPF resident on IBM mainframes  as part  of TSO.
         By the  way, I've  worked with  mainframes since  I began writing
         books  about  them  back  in  1974.  I  also  did  my   share  of
         big-company  systems   analysis,  and  some  programming  with  a
         language  called  SAS.  I  wrote  a  lot  of  formatters,  index-
         generators, and  other programs  related to producing programming
         manuals using the mainframe like a great big typewriter.

         Like so many IBMers, when I  had finally  saved enough  money and
         psyched  myself  up  into  a  spending  mood, I was thinking IBM.
         You've heard it before  -- get  a home  computer that  will be as
         much  as  possible  like  the  one  in  the  office. They call it
         compatibility.

         So I called my friendly neighborhood discount dealer and got some
         prices and specs. For just a little under $3,000.00, he could fix
         me up with a computer a lot like the one I had at work only not a
         true IBM. That sounded fine and so I called my friend Ron to tell
         him all about the computer I planned to buy.

         "But", said Ron, (Atarians say that a lot),  "before you actually
         plunk down  any money, you might take a look at the Atari ST." It
         can run IBM and MacIntosh programs as well as its own.

         Now I pride myself on being an open-minded  fellow but  Atari? It
         just didn't  seem quite  possible. I called Virgil. He sided with
         Ron!

         The next thing I knew, I  was  over  at  Randall's  Home Computer
         Store  with  a  copies  of  SPF/PC and PC/DOS under one arm. Sure
         enough,  they  ran  just  fine  on  the  Atari  using  a software
         environment set  up by  a product called PC Ditto. (A week or two
         later, I saw a demonstration of a product  called Magic  Sac that
         allowed  MacIntosh    software  such  as  MacPaint and MacDraw to
         operate on the Atari.) 

         "So what about some Atari software,"  I said,  just to  be sure I
         could say later that I had seen a full demonstration. You see, at
         that point, I was  just being  polite really  to appease  Ron and
         Virgil.  "is there any publishing software in the Atari world?"

         That's when I first saw Publishing Partner. I couldn't get over a
         $69 program that could do so  very many  of the  same things that
         Ventura Publisher did. It not only did them easily -- it did them
         in far less time. For example, paging from page one to page 55 in
         a Ventura  document takes several minutes. In Publishing Partner,
         it took several seconds! I was hooked.

         A few days later, I went to a meeting of the ACE  St. Louis club.
         Matt  Ratcliffe,  the  outgoing  president, at that time had just
         sold his Atari because it was too slow  when doing  PC emulation.
         He nearly  talked me out of buying an Atari. I was worried. I got
         some reassurance from Ron and Virgil and Tom  W. that  I probably
         wouldn't be  troubled as  much as  Matt because he had been doing
         things that  I didn't  have to  worry about.  Matt was absolutely
         right and  I know that now. The Atari is too slow in that mode to
         be of any real use over any extended period of  time. That's just
         one of those things, -- at the time, I didn't know who to believe
         for sure.

         So I went back to Randall's and bought it. I bought the  Mega ST2
         because I  liked the feel of its keyboard so much better than the
         one on the 1040. I also  bought a  hard drive,  extra 5  1/4 inch
         drive (for PC Ditto use), and a copy of Publishing Partner. Since
         then I've added many more software products. All are Atari rather
         than IBM.

         Little by  little, people  found out  that I had bought an Atari.
         "Of  course,"  they  said,  "no  doubt  because  of  its  musical
         capabilities." 

         "No," I  said, "I  bought it  to publish with." What's this about
         musical capabilities?" 

         "Oh sure, a lot of big rock stars use them." 

         You just can't imagine how confusing and troublesome that became.
         I've worked in electronics, computers, and technology since 1957.
         I've been a musician even longer than that. So how did I miss all
         this? How  did a  complete technology  with its own language, its
         own rules, its own  separate culture  grow up  without me knowing
         about it?  More important,  how come I didn't understand a single
         word printed in "Music Technology" magazine? Okay, I'll  tell you
         how. I  was living  in an  IBM world. All work and no play. I was
         playing good old fashioned  music  to  get  away  from  all that.
         Perhaps, I got a little too far away.

         Luckily, there  was and  is a  special interest  group for people
         interested in Atari's musical abilities. I've been to quite a few
         of their  meetings by  now and  soon I  hope to  be able to speak
         their language.  

         But was Ron satisfied? Did the fact that I spent all my  money on
         Atari-related hardware  and software  get him off my back? If you
         know Ron, you know better. As I write this, I am looking  over at
         a Magic Sac that Ron insisted on lending me over the long weekend
         so I could try it out first hand. I suppose  he thinks  that once
         I've used  MacDraw, SuperPaint and a few other MacIntosh programs
         on my Atari, I won't be able to  rest until  I've bought  a Magic
         Sac of my own.

         Ha!  It's  only  two-o'clock  in  the  morning  and  some  of the
         excitement is beginning to wear off  already. I'll  bet in  a few
         hours, I'll  be able  to rest  easily on my decision not to buy a
         Magic Sac.

         But you know something, I was  browsing through  the latest issue
         of PC  Magazine yesterday  and noticed that there's a new version
         of Ventura Publisher now. I wonder if I've become as close-minded
         about IBM  as I  once was about Atari. I have no desire at all to
         try out the new Ventura.





--------------------------------------------------------------------------





         PRICE REDUCTION ON VIDEOKEY,  THE RGB TO COMPOSITE ENCODER

                          FROM PRACTICAL SOLUTIONS!

      VideoKey has been on the market long enough to pay off some of the
expensive manufacturing setup costs. Thus we are happy to announce a price
reduction!

VideoKey debuted for $119.95 earlier thus year. Effective immediately, the
price has been reduced to $99.95, making it more affordable than ever. 
There are some ads out with the old price since advertising has to be done
so far in advance, but we and our dealers are honoring the new pricing.

For those of you not familiar with the VideoKey......... 

      a description follows:

The VideoKey converts the RGB output of the ST into color composite video.
We have put a lot of effort into making the colors brilliant and true, the
picture excellent in low resolution. You now have the ability to record 
the fantastic graphics of the ST. Games take a new dimension when watched
on your television or big screen TV!

The VideoKey has several nice features as well:

1.   The exclusive Colorlock(tm) circuitry locks the color burst to the
ST's system timing with no modification needed to the ST, so that there
is no color flickering or crawl on sharp vertical edges. 

2.   The Auto power circuit detects when the ST is on, and in color mode,
and powers up the VideoKey as needed. No power supply required!

3.   A 13 pin din socket is supplied (just like the monitor port 
on the ST) so that a RGB monitor can be connected to the VideoKey 
at the same time. Perfect for doing all of your work on the RGB 
monitor, and viewing the composite monitor or TV for final 
product! This causes no signal loss to the RGB monitor. In addition,
VideoKey is compatible with Monitor Master, our monitor switch box. You can
still switch between your monitors with ease.


VideoKey is compatible with all low resolution software, and comes 
with a limited 90 day warranty.    

Call Practical Solutions, or write for further details (or better yet, 
order!):

                            Practical Solutions
                              1930 E. Grant Rd.
                              Tucson Az, 85719
                               (602) 884-9612

                          Mark Sloatman 74206,356




--------------------------------------------------------------------------





           MACINTOSH DISK READING AND WRITING WITH ATARI DRIVES
           ====================================================


THE SIMPLE TRUTH
----------------

NOTE:  You  may find this article is a bit too  technical for you.
----   Please don't miss out on the conclusions I have formulated.


Atari really has only one requirement for their 3.5" microfloppy  drive
system.  This requirement is that it can accurately read and write  the
MFM 250K bits per second data,  which is the standard form of recording
used by the ST computer system.

Along  comes  MACINTOSH.  They  use a  completely  different  recording
system,  which is GCR.  The MACINTOSH always uses a constant data rate.
All GCR bits recorded on the disk wind up being spaced either 2,  4, or
6usec apart.  However, the MACINTOSH uses 5 different drive speeds, one
for each of the 5 groups of 16 tracks (cylinders). The MACINTOSH drives
vary the drive speed from about 400 RPM to 600 RPM.  This gives the MAC
disk  a different quantity of bytes available in each of the 5  groups.
It  also lets the MAC record a higher density than the ATARI's  on  the
outer  tracks,  and  a lower density on the  inner  tracks.  The  whole
purpose of this is to try and maintain the bit density between  groups,
since the circumference decreases for each track going toward the  disk
center.

The Atari drive does not vary the speed.  It does its best to keep  the
speed at 300 RPM. A MACINTOSH disk inserted in an Atari drive will read
back  as  5  different data rates.  So,  the MAC keeps  the  data  rate
constant  and  varies the speed,  and a MAC disk inserted in  an  Atari
drive  will  read  as varying data rates,  since  the  drive  speed  is
constant.

A  standard MFM format disk in an Atari drive needs to read  and  write
disk data bits that are spaced 4, 6, and 8 usec apart. A MACINTOSH disk
inserted in an Atari drive needs a disk formatter circuit that can read
and write data bits that are at various spacings between about 2.6  and
12 usec apart.

Some specialized hardware device must be added to the Atari to read and
write these varying data rates. Currently, the Translator One from Data
Pacific, and the Discovery Cartridge from Happy Computers are available
to accomplish this job.  Gadgets by Small has also been hinting about a
forthcoming product for this purpose.

In  addition to a special hardware device for reading and  writing  the
larger range of data bit spacings, the drive mechanism must also permit
this  wider range of spacings to be read from and written to  the  disk
media's surface.

Regardless of the unique characteristics of the particular  specialized
hardware  device,  all  of these devices will require  that  the  drive
mechanism,  and  all other associated disk drive  interface  circuitry,
will  permit the  larger bandwidth needed for emulating  the  MACINTOSH
disk format.

How does this compare with Atari's drive requirement?  It  doesn't!  We
are not aware of any intention on Atari's part to supply drives for  ST
computers that can accommodate this wider bandwidth.  There will  always
be  some uncertainty whether a particular drive will allow  this  wider
bandwidth,  since  the  drives  are  not required  to  do  this.  If  a
particular drive can do this, it is only a pleasant coincidence!

Now  wait  a  minute,  didn't HAPPY COMPUTERS say  that  the  DISCOVERY
CARTRIDGE  will  allow standard Atari drives to read and write  in  the
MACINTOSH  format?  Yes we did,  but as stated in our May 1988  product
literature- "It is conceivable that a particular drive may have trouble
reading or writing in the MACINTOSH format."

Between  HAPPY COMPUTERS and our customers,  thousands of  drives  have
been  tested.  We  do not have the test results  for  each  drive.  Our
statistics,  based on a sample of about 200 units,  is that 92% of  the
drives  will properly read and write in the MACINTOSH format  with  the
DISCOVERY  CARTRIDGE.  This  is subject to change.  Atari  could  begin
shipping a bunch of drives where none could read MAC disks, even though
they  worked  perfectly for normal  MFM  reading.  Again,  reading  and
writing the increased bandwidth for MACINTOSH emulation has not been  a
requirement for the drives shipped by Atari.

Some of the after market drive suppliers will take the hint. There is a
marketplace need for drives that can handle the extra  bandwidth.  This
may become a major selling point for some aftermarket drives.

The  fact is that this whole business of reading and writing  MACINTOSH
disks  with  Atari drives is an extension beyond  the  original  design
criteria  for the system.  Regardless  of the high quality disk  signal
processing  done  by  the  Discovery  Cartridge,  there  must  be  some
uncertainty about the ability of the other elements of the disk  system
to effect the reading and writing of MAC format disks.

CONCLUSIONS:

In  effect,  the  MFM disk format used by the standard  Atari  ST  will
ultimately be more reliable than any system which emulates the variable
density MAC disk reading.  Still,  there is the need to read and  write
MAC disks. Since this process is less reliable, it should be the second
choice when you have a choice. Therefore, even if your MAC disk reading
device can operate online with the MAC emulation device, you are better
off  using the native "MAGIC" or "SPECTRE" format,  when you  can  make
this choice.

                                   Richard Adams, chief designer 
                                         HAPPY COMPUTERS, Inc.





--------------------------------------------------------------------------





                               NEW ON GEnie
                               ============

                      New Library Join/Ignore Command
                      -------------------------------

We are testing out a new option that will soon be deployed in all of the
Genie Roundtables. You can now join or ignore libraries of YOUR choice by
using option 12 on page 476. Follow the menus below to see how the option
works.

GEnie                         Page 476
      Atari ST Software Library       
        Library: All Libraries        <-- Be sure to be set to ALL
                                          libraries

 1. Description of this Library
 2. Directory of files
 3. Search File Directory
 4. Browse through files
 5. Upload a new file
 6. Download a file
 7. Delete a file you own
 8. Set Software Library
 9. Save Current Software Library
10. Instructions for Software Exchange
11. Directory of New Files
12. Join/Ignore Library Category     <<<-- This is the new option.

Item #, or <RETURN> for more?12      <<<-- Select this option

Please stand by...
Change access to what library #      <<<-- You will see this display
Enter <D>isplay to display status?d  <<<-- Select D to display libraries
                                           and the status. Once you know
                                           this, you can bypass the
                                           display by just entering the #
                                           of the library you want to 
                                           change instead of D for display

 1. Genie Help Files        -J  2. Utilities               -J 
 3. Language/Programming    -J  4. Graphic Animation       -J 
 5. Graphics & Art          -J  6. Business                -J 
 7. Telecomputing           -J  8. Games                   -J 
 9. Educational             -J 10. Demos                   -J 
11. Music                   -J 12. Adult Library           -J 
13. Atari Archives          -J 14. Product Support         -J 
15. User Group Newsletters &-J 16. OS-9/68000 for the ST   -J 
17. Digitized Sounds        -J 18. Desktop Publishing      -J 
19. ST-REPORT               -J 20. Printer Drivers         -J 
21. T.O.S (The Other Stuff) -J 22. ICD Product Support     -J 
23. ST-LOG                  -J 24. ST-Profile              -J 
25. ST-PROFILE Articles (P) -J 

Change access to what library #
Enter <D>isplay to display status?12 <<-- Select the number of the library
                                          you want your status changed on
                                         


Library: 12 - Adult Library - ignored  <<-- You will receive the message
                                            ignored if you did not 
                                            previously ignore this
                                            library.

Please stand by...
GEnie                         Page 476
      Atari ST Software Library       
        Library: All Libraries        

 1. Description of this Library
 2. Directory of files
 3. Search File Directory
 4. Browse through files
 5. Upload a new file
 6. Download a file
 7. Delete a file you own
 8. Set Software Library
 9. Save Current Software Library
10. Instructions for Software Exchange
11. Directory of New Files
12. Join/Ignore Library Category

Item #, or <RETURN> for more?12  <-- Select 12 to change to join again

Please stand by...
Change access to what library #
Enter <D>isplay to display status?d <-- Check notations above on this
                                        option on how to reduce time

 1. Genie Help Files        -J      2. Utilities               -J 
 3. Language/Programming    -J      4. Graphic Animation       -J 
 5. Graphics & Art          -J      6. Business                -J 
 7. Telecomputing           -J      8. Games                   -J 
 9. Educational             -J     10. Demos                   -J 
11. Music                   -J     12. Adult Library           -I 
13. Atari Archives          -J     14. Product Support         -J 
15. User Group Newsletters &-J     16. OS-9/68000 for the ST   -J 
17. Digitized Sounds        -J     18. Desktop Publishing      -J 
19. ST-REPORT               -J     20. Printer Drivers         -J 
21. T.O.S (The Other Stuff) -J     22. ICD Product Support     -J 
23. ST-LOG                  -J     24. ST-Profile              -J 
25. ST-PROFILE Articles (P) -J 

<<--as shown above, you will receive a display when selecting
    this option that will show you which libraries you are 
    presently ignoring and which you have not ignored. 

<<-- -I above means you have presently ignored the library.
<<-- -J above means you have joined this library.

Change access to what library #
Enter <D>isplay to display status?12

Library: 12 - Adult Library - joined  <-- notice you rejoined

After joining and ignoring the libraries, you can use option 2 "Directory
of Files" or Option 4 "Browse the files" to see ONLY the files of the
libraries you chose.

Be aware that you can continue to select libraries or push your return
key to end your session of selections as shown below:

Please stand by...
Change access to what library #
Enter <D>isplay to display status?12

Library: 12 - Adult Library - joined

Change access to what library #
Enter <D>isplay to display status?  <<-- Push return here if you are
                                         finished selecting or enter an
                                         additional library number
                                         selection.


Be aware that we have private libraries and the capabilities of such.
Please contact DARLAH for admittance if appropriate as well as for
installation/details on how you as a company can use a private library.





-------------------------------------------------------------------------





                           ANTIC PUBLISHING INC.
                              COPYRIGHT 1988
                          REPRINTED BY PERMISSION.




                 ** Professional GEM 16 ** - by Tim Oren **

                        - Interface Potpourri #1 -


    This  issue  of ST PRO GEM, number 16 in the series, presents code
    implementing   several   user   interface   techniques:   progress
    indicators, rubber boxes, and draggable boxes with mouse sensitive
    targets.   The  code  also  includes  some  utility  routines  for
    handling resources, event calls, and VDI line drawing.

    The  downloads for this column are available on DL3 of the ATARI16
    SIG: PCS-58.  Note the plural - in addition to the usual C sources
    stored  in  GMCL16.C,  the files GMCL16.RSC, GMCL16.DFN, GMCL16.H,
    and  GMCL16.RSH  are  a  template  resource  for building progress
    boxes.   GMCL16.RSC  is  the  resource binary, and GMCL16.H is its
    symbol  binding file, to be used with GMCL16.C.  The RSH file is a
    C  image  of  the resource - you would need STCREATE to regenerate
    it.

    GMCL16.DFN  is  the binary symbol file for the resource.  It is in
    the  format  used by the NEW ST Resource Construction Set.  If you
    are  a developer, you should download this new version from DL7 of
    PCS-57.   It  fixes  a  number of bugs, and has a much faster user
    interface.

    MAKING PROGRESS

    The  need  for feedback in interface designs has been discussed in
    previous  columns.   One  instance which is often necessary is the
    so-called  progress  indicator.  A progress indicator is used when
    your  application  is  doing  a long operation.  It shows that the
    function  is continuing satisfactorily, and is not hung in a loop.
    When  possible, it also gives an indication of the fraction of the
    operation  which  has been completed.  The thermometer bars on the
    Desktop format and copy operations are examples.

    The  sample  code shows two types of progress indicator.  Both are
    built  within  the structure of a dialog resource.  The first type
    uses  a  variable  line  of  text  to  describe  each  phase of an
    operation as it occurs.  The rewriting of the text provides action
    on  the  screen;  the  fact  that  it is different each time gives
    reassurance  that  the  program  is  not hung.  The second type of
    indicator  is  the  thermometer bar.  This is more useful when the
    operation  is  uniform,  allowing  you  to  estimate  the fraction
    completed.  Let's look at the code.

    The  routines  beg_prog()  and  end_prog()  are  common to the two
    types.   The  code is very similar to the standard dialog handling
    procedure,  but is broken into two parts.  Beg_prog() assumes that
    the  progress  indicator  box  is  defined  by a dialog tree named
    PROGRESS.   Such  a  tree  is  provided in GMCL16.RSC.  Beg_prog()
    makes  the  usual calls to center and draw the box.  The rectangle
    computed  in the centering operation is stored via a GRECT pointer
    passed  in  the  parameter.   This  rectangle  compensates for the
    outline  around  the  box, and must be supplied to end_prog() when
    the operation is complete.

    The  first  version  of  set_prog() in the download implements the
    changing  text  progress  indicator.   It looks in a tree labelled
    STRINGS  for the object number which is passed as a parameter.  It
    is assumed that this object is a G_STRING.  The address of the new
    text  is  loaded from the object's ob_spec field.  (For those with
    the  new  RCS,  it would be easy to alter this routine to use free
    strings.     Simply    replace   the   first   two   lines   with:
    rsrc_gaddr(R_STRING,  strno,  &saddr); and supply parameters which
    are the names of strings in a FRSTR box.)

    Once  the  new  text is found, the set_text() utility is called to
    update  the TEDINFO attached to object PLINE in the PROGRESS tree.
    Set_text()  will  insert the new text address in te_ptext, and the
    new  text  length in te_txtlen.  Disp_obj() is then used to redraw
    only the rectangle belonging to PLINE.

    PLINE  must  be  defined  as a G_BOXTEXT object with a solid white
    background,  and  with the CENTERED attribute set.  It must extend
    entirely  across  the  progress  box.   This  guarantees  that the
    previous  text  will  be  covered  over,  and the new text will be
    centered in the box.

    The  second  version  of set_prog() implements the thermometer bar
    progress  indicator.   The  PROGRESS  tree also includes an object
    PROBOX  which  defines  the  outline  of the thermometer.  It is a
    G_BOX  object  with  a  solid  white background, and a one-outside
    border.   The  object  PROBAR  is  nested inside it, with the left
    edges  matching.   PROBAR  is  also  a  G_BOX,  with  a  solid red
    background  and  a one-outside border as well.  Set_prog() creates
    the thermometer effect by growing and redrawing PROBAR.

    Set_prog()  requires  two  parameters.  Maxc is an estimate of the
    total duration of the operation, in arbitrary units.  Value is the
    (new)  amount completed, in the same units.  Set_prog performs two
    operations.   First, it computes the fraction value/maxc, and sets
    PROBAR  to  that  fraction  of  the  width  of PROBOX.  Second, it
    computes the rectangle which is the difference between the old and
    new  widths  of PROBAR, and redraws only that part of the progress
    box.   This  prevents  an  annoying  flash  on the screen when the
    indicator is updated.

    These  two  types  of  progress  indicators have been presented in
    separate  routines for convenience in explanation.  You can easily
    combine  them  in  a  single procedure to create an indicator with
    both effects.

    The final progress indicator routine is called esc_prog().  During
    many lengthy operations is desirable to provide an abort option to
    the user.  Esc_prog() lets you do this by polling the keyboard for
    an  escape  (ESC)  character.   A  zero  timer  value  is  used to
    guarantee   an   immediate  return  if  no  character  is  found.
    Characters other than escape are ignored.

    Esc_prog() returns TRUE if an abort is requested, and FALSE if the
    operation  is  to  continue.   In your application, you can either
    pair  calls  to set_prog() and esc_prog(), or recode set_prog() to
    automatically  make  the abort check.  In any case, you should add
    an  information line to the progress box, telling the user how the
    operation may be halted.

    Of  course, this type of progress indicator is not the only option
    available  on the ST.  Other ideas such as changing window titles,
    or  displaying  a succession of differing icons are equally valid.
    Sometimes  the nature of your application may suggest an alternate
    metaphor.    For   instance,   the  progress  of  recalculating  a
    spreadsheet  might be indicated by darkening successive columns in
    a  miniature  image  of  the  sheet.   Occasionally, the computing
    operation  is  visual  itself,  and  will  not require an explicit
    indicator.   An  example  is  redisplaying  objects  in a 2D or 3D
    drawing program.

    BOXED IN

    The  second  part  of  the  download  implements two types of user
    interaction  using the mouse.  The first creates a "rubber box" on
    the  screen, that is, a box whose size is controlled by moving the
    mouse.  This is similar to the AES graf_rubberbox call, but allows
    the  box  to  move in any direction from its origin, while the GEM
    function only allows movement to the lower right.

    The  second technique allows the user to drag the outline of a box
    around  the screen using the mouse.  Again, this is similar to the
    AES  graf_dragbox  call,  but  this version is augmented with code
    which "hotspots" selectable objects when the mouse and object pass
    over  them.   These routines are another illustration of the usage
    of  the  evnt_multi function, and its combination with VDI drawing
    to create new interaction techniques.

    The   "rubber   box"  subroutine  is  called  fourway_box().   Its
    parameters  are the current VDI handle (NOT a window handle!), and
    two  GRECT  pointers.   The  first GRECT must have its g_x and g_y
    initialized  with  the  fixed point of the rubber box.  The second
    GRECT contains an outer bound box for the stretching action.

    Fourway_box()  begins  by setting the VDI drawing mode and color.
    The  exclusive  or,  black combination guarantees that redrawing a
    figure  twice  in  the same location will exactly erase it.  Next,
    the routine asserts the mouse control flag.  This stops the window
    manager  from  tracking the mouse, with the effect that menus will
    not drop down during the operation.

    The fixed coordinates are saved in the variables ox and oy, and an
    initial  mouse  reading  is  obtained  with graf_mkstate.  At this
    point, the event loop is entered.

    At each iteration, the loop finds the upper left most of the fixed
    vertex  and  the  current mouse position, and updates the tracking
    GRECT  accordingly.   A call to the utility rc_intersect() is used
    to  restrict  the  size  of  the  rubber box to the given limiting
    rectangle.  Note that if you need a lower limit to the size of the
    rubber  box,  it  can  be achieved by adding another GRECT pointer
    "lower"  to the parameter list, and using the call rc_union(lower,
    rubber); This works because the union operation selects the larger
    of two rectangles if they are nested.

    Rub_wait() will be described in detail below.  Its returns are the
    new  mouse position, and an indication of the current mouse button
    state.   If the button remains down, the loop continues.  When the
    button  is  released,  the  rubber  box  terminates, since it is a
    "spring-loaded"  modal  operation.   Before  ending, fourway_box()
    returns  mouse control to the window manager.  The return from the
    routine  is  found in the rubber GRECT, and is the final extent of
    the box.

    Rub_wait()  is a utility used by both box techniques.  Its purpose
    is  to  do  one  step  of  the box animation, and wait for a mouse
    movement,  or the release of the button.  Rub_wait() preserves the
    state of the screen.

    The  first action is to draw an exclusive or'ed dotted line box at
    the  given  rectangle.   Next, rub_wait() calls evnt_multi to wait
    for the mouse button to come up, or the mouse to move out of a one
    pixel  rectangle.   When  the  event is detected, the same code is
    used  to remove the box.  A value of TRUE is returned if the mouse
    button   is  still  down;  the  curious  logical  construction  is
    necessary since BOTH events could occur at once.

    A  short examination of the vdi_xbox() code is also useful.  After
    converting  the  rectangle  to  polyline  format,  the vdi_xline()
    routine  is  called.   Vdi_xline draws a dotted line, but does not
    use the VDI line style attribute.  This is avoided because the VDI
    has  problems  with corner points when drawing styled lines in XOR
    mode.   Instead,  a  selection  is made from a set of user defined
    line  styles,  based  on  the  direction  of  the  stroke, and the
    odd/evenness  of the starting horizontal pixel.  This assures that
    the figure will be exactly erasable.

    HOT STUFF

    The  drag  box  routine  is more subtle, because care is needed to
    correctly  synchronize  the  movement  of the mouse cursor and the
    box,  and  the  highlighting  of  target  objects.  The parameters
    vdi_handle and limit are identical to those in fourway_box().  The
    GRECT  pointed  to  by  box  contains  the width and height of the
    movable  box  when  hot_dragbox()  is  entered.   On  exit it also
    contains  the  last x,y coordinates of the box.  The variable tree
    is a pointer to the root of a resource tree defining the hot spots
    for  the  drag  operation.   Only  objects  tagged  SELECTABLE are
    hotspotted.  Hot_dragbox() returns the number of such an object if
    the box is "dropped" on it, otherwise a NIL is returned.

    Initialization  proceeds  as  above, until the graf_mkstate call.
    Here  is the first potential synchronization problem.  If the user
    moves  the  mouse  very  quickly after initiating the drag, it may
    already  be  outside  the box by the time graf_mkstate samples the
    position.   The  min/max  operations  given  lock the box onto the
    cursor, no matter where it has strayed.  The mouse/box offsets, ox
    and oy, will remain constant for the rest of the operation.

    Hover_obj will contain the number of the object which is currently
    highlighted.   It  is  initialized to NIL, indicating no object is
    currently   marked.    Hot_dragbox()   now   enters  a  loop  with
    termination conditions identical to the rubber box.

    The current desired position of the box is computed by subtracting
    the  box/mouse  offset  from  the  current  mouse  position.   The
    rc_constrain()  call  ensures  that  the  box  will  not leave the
    bounding  rectangle.  Note that rc_intersect would not work here -
    it  would  alter  the  size  of  the  draggable  box,  rather than
    "nudging" it back into the bounds.

    Upon  return  from  rub_wait(),  a  number  of  conditions must be
    checked  to  determine  the  correct object to highlight, if any.
    First,  we  must  make  sure that the mouse is actually within the
    legal  bounds.   If not, there may be an ambiguous selection, with
    the  mouse over one object and the box over another.  We choose to
    do  nothing  in this case, and set hover_obj to NIL.  If the mouse
    is in bounds, objc_find looks for a target object.  If one exists,
    it must be SELECTABLE, or it is forced to NIL.

    Next  the  new  object,  stored in ret_obj, is compared to the old
    highlighted object, in hover_obj.  If they are different, a switch
    must  be  made.   Since  either could be NIL, a check is necessary
    before  calling  obj_toggle to invert/reinvert the screen image of
    the  object.   When  the  loop is complete, the final hover_obj is
    returned to normal state before its number is returned.

    You  may  notice  that  this  method  of  highlighting  objects is
    different  from the incremental tree descent and rectangles method
    presented  in  column  13.   While not as efficient, the objc_find
    technique  is  simpler to code and may be adequate for many uses.
    If  your  program  will make heavy use of the drag box routine, or
    will have large trees of target objects, you may wish to integrate
    the  incremental  hotspotting  algorithm with hot_dragbox().  This
    would  be  simple  to  do;  just  use  evnt_multi's  second  mouse
    rectangle  for  the  states associated with the hot- spotter.  The
    single pixel rectangles would have to remain, in order to maintain
    the animation effects.

    A FEW CHANGES

    The  observant  may  have noticed that the promised code for popup
    menus  did  not make it into this column.  Instead, it will appear
    in  column  18  along  with more "graphics potpourri" and feedback
    replies.  The intervening installment, number 17, will present and
    document  the  source  code  for a complete IBM/Atari GEM Resource
    conversion  program.   This  will  appear  concurrently  with Mark
    Skapinker's  article on IBM/ST GEM conversions in the second issue
    of  START.   While  this  program  will be of direct use to only a
    minority  of ST developers, it will contain utility code useful to
    all, as well as demonstrations of dialog handling and the internal
    structure of resources.

    Finally, you may also notice that the so-called portability macros
    have  disappeared  from  the  download.  Indeed, they are gone for
    good.   Since  the  beginning of this column, the growth of the ST
    GEM  developer  community  has  outstripped that on the PC.  It no
    longer  seems  appropriate  to  inconvenience  ST  developers  and
    violate  standard  C syntax for the sake of Intel's design flaws.
    Those  who  still need compatibility with the PC may achieve it by
    compiling  under Intel large model, or by writing "sed" scripts to
    translate   (tree+obj)->ob_spec   and  the  like  to  their  macro
    equivalents.  On is the same as the Open entry in the "File" menu.





-------------------------------------------------------------------------





ST REPORT CONFIDENTIAL
======================


NYC,NY                Consumer Reports, in it's latest issue picks the ST
------                over the "other" computer.

London, UK            European Developers are becoming 'antsy' over all
----------            the different troubles they are seeing in certain
                      areas of the US ST marketplace.

Sunnyvale, CA         Atari is working feverishly to make the new TOS work
-------------         properly in partitions larger than 16mb.  They
                      expect to have the situation under control shortly.

NYC, NY               DR. RUTH in your CPU? yep! Intimate Software is fast
-------               becoming a very popular medium.  No game here folks,
                      this is a sincere and serious effort.  
                      Call: 718-768-1427

Wheat Ridge, CO       A company here has introduced a car seat for your
---------------       laptop!  Now it can go anywhere with you safely.
                      call Zirco Car Seat: 303-421-2013

Sunnyvale, CA         John Townsend, was queried by this reporter seeking
-------------         assistance about MS Write, he did not know who I was
                      until I announced myself, he was quite professional
                      and extremely courteous and HELPFUL.  

Los Angeles, CA       A number of area developers have expressed hopes
---------------       that as a result of the upcoming developer's
                      conference a National Atari Developer Association is
                      formed that will have some strength and real input
                      to the company.





-------------------------------------------------------------------------





                              A SysOp's Lot
                              =============


by R.F.Mariano

      What is a SysOp?  ...probably the most harried and ignored
person in the world.  Most sysops are almost never highly visible on the
systems they care for.  The reasons are many for the less than visible
posture, but perhaps one of the most important reasons falls into three
critical sub-topics.

            a: Service to the Users of the System

            b: Preserving Integrity of the Libraries

            c: Keeping apart from any and all issues on the system 

      To go deeper into the reasons service to the users comes in many
forms; a 'good' sysop is concerned for all the users, not just a "favored
few", (which easily happens), also, keeping an eye out for potential "hot
spots", this means, arguments, emotional issues etc....a 'good' sysop makes
honest attempts to stabilize and set the example for all to keep a
discussion lively, yet respectful after all, the users are only human and
all sysops are superhuman right?.  Well, expected to be anyway. <grin>  

      Most folks feel the sysop has luxurious "powers" on a system, well,
the EXACT opposite is true!  When one becomes a sysop, the responsibility
assumed is awesome and a great many, "taken for granted freedoms", must be
voluntarily given up.  "An outspoken sysop is a disaster going someplace
to happen."                ---------

      Another point to be made for the 'good' sysop is;  in most cases 
he/she is usually the person saddled with the job of acquainting the new 
user with his equipment and the ways to best use it and pointing out the
usergroups local to that person.

      Libraries are very important part of any information system and the
manner in which a sysop approaches taking care of the library is always
reflected in the ease of which files are found, run and serve a useful
purpose to the userbase of the system.  In addition, the sysop is expected
to know how to implement 'every' item in the library and be able to teach
same to anyone.

      A sysop who gets involved in the issues that 'percolate' up from 
time to time is courting disaster.  Why?  Easy....Most users look for some
sign from the 'powers to be' when embarking on a 'mission of purpose'
..the sign is taken from any input from the sysop that appears to "join",
"condone" or agree with one side or the other in an issue.  Most issues
have a tendency to get old in a hurry but....some get bad, so bad that
things are said and done that are regrettably seen as dumb after the fact. 
Sadly though, many of the hot statements and such leave scars that never
disappear.  A sysop who takes sides in this sort of thing is worse than 
the loudest rabble rouser because by becoming involved, the sysop
"endorses" the issue and spurs the clique on.

      For a SysOp to be directly involved in ANY such melee is flirting 
with disaster, the "combatants" usually come to terms but the unfortunate
sysop who "took" sides is left with the choice of either an apology to 
the "unfavored side" or having to continue a cold attitude toward that 
side.

      Anytime a sysop shows any partiality or, in fact, makes statements
pro or con in an issue they indirectly sway the body of the users in that
system..and give a green light to the more vocal users to continue the
fray with renewed vigor.  The proper situation is that the sysop remain
virtually transparent to the users except in severe rule breaking, 
moderating live functions online or in the performance of routine operator
functions.

      Hopefully, those sysops who find that this group of observations are
helpful, will try to use them. (regardless of the source).  For those who
snub these ideas, well...'guess they 'know it all' or will eventually
experience the "rude awakening"...... -----------

      To all the caring, conscientious SysOps running fine BBS systems
across this country I wish to extend to you a positive note of thanks for
a job well done!  I care not what program you are using, only that you are
using the program you like correctly.  

      To all of you I wish you a very......

              MERRY CHRISTMAS and a HAPPY an PROSPEROUS NEW YEAR.

                                   -=****=-





-------------------------------------------------------------------------




THIS WEEK'S QUOTABLE QUOTE
==========================

      

      THE LAW OF THE "CLIQUE"
      -----------------------

     There are two sides to every argument or discussion, unless a member
       of the "clique" is involved, in which case, it becomes one side!




                 *** Happy Holidays to all our Friends ***

 ------------------------------------------------------------------------
 ST-REPORT Issue #65                                    December 12, 1988
                   ALL RIGHTS RESERVED  (c)copyright 1988
 ------------------------------------------------------------------------
     ALL reprints must include ST-Report and the author in the credits.
         Views Presented herein are not necessarily those of STR 
         COMMERCIAL ONLINE SERVICES MUST HAVE WRITTEN PERMISSION 
       to offer ST REPORT for download and/or display in any form.
-------------------------------------------------------------------------
