home *** CD-ROM | disk | FTP | other *** search
/ Fujiology Archive / fujiology_archive_v1_0.iso / !MAGS / STREPORT / STR060.ZIP / STR060.TXT < prev   
Encoding:
Text File  |  1988-11-12  |  54.1 KB  |  1,196 lines

  1.  
  2.                       ST REPORT WEEKLY ONLINE MAGAZINE
  3.                       --------------------------------
  4.                            Monday, NOV. 31, 1988
  5.                               Vol. II  No. 60
  6.  
  7. ==========================================================================
  8.  
  9.                        ST Report Online Magazine Inc.
  10.                        ------------------------------
  11.                           Post Office Box   6672
  12.                            Jacksonville, Florida
  13.                                32236    6672
  14.  
  15.                                 R.F. Mariano
  16.                              Publisher - Editor
  17.  
  18. ====================['The Original Online ST Magazine']===================
  19.  
  20.                         Headquarters Bulletin Boards
  21.                         ----------------------------
  22.      North                                                      South
  23.   201-343-1426                                              904-786-4176
  24.                    Central                       West
  25.                  216-784-0574                916-962-2566
  26.  
  27.   =======================================================================
  28.  
  29.                                  CONTENTS
  30.                                  ========
  31.   ~ From the Editor's Desk.............~ The Melting Pot Runneth Over..
  32.   ~ DC Atari FEST......................~ Pro GEM Windows #11...........
  33.   ~ The Archival Bit...................~ A New Blivitt!................
  34.   ~ ST REPORT CONFIDENTIAL ............~ PC Pursuit Help...............
  35.  
  36.  ========================================================================
  37.  AVAILABLE ON:     COMP-U-SERVE  ~  DELPHI  ~  GENIE  ~  THE SOURCE
  38.  ========================================================================
  39.  
  40.  
  41.  
  42. From the Editor's Desk;
  43.  
  44.       Some folks said, "you have too much editorial content in ST Report"
  45. and I tended to agree with them.  However, after reviewing the situation a
  46. number of times, this conclusion has been reached.  ST Report is looked to
  47. for hard hitting information.  Being up to date, as accurate as humanly
  48. possible and timely.  
  49.  
  50.       We are concerned mainly with the Atari ST market and just about 
  51. everything that occurs in that market.  Sure, we ARE critical of Atari
  52. when they obviously need it.  On the other hand, we are the first to pass
  53. out compliments when deserved.  We will not "sugar coat" any situation or
  54. soft peddle any issue.  ST Report pledges to bring you, the Atari user, 
  55. the most up to date, accurate, information possible.
  56.  
  57.       In another development, we at ST Report have heard that the userbase
  58. in general is an easily confused group of users.  We discovered that this
  59. is one of the totally inane reasons given by Atari, when asked, why they
  60. didn't incorporate more of the fine features seen in the UIS file selector
  61. in the new TOS 1.4.   After having stated this, they then come along with
  62. this as the second reason "There is absolutely no room"....they really do
  63. think we are idiots and boobs out here!  That is not an excuse, it is an 
  64. admission of incredible "tunnel vision"!  
  65.  
  66.       If one were to "look" at two locations in the TOS 1.4 code, one can
  67. find "room", ($FCF716 and $FD2404).  To selfishly consume valuable space 
  68. to "hide" love notes in TOS is the same to me as carving your initials in
  69. your desktop at 4th grade school.  Also, TOS could be converted to Machine
  70. Language (ML) it would then become (A) much faster, (B) much smaller in 
  71. size, thus allowing for further first class enhancements it so desperately
  72. needs.  
  73.  
  74.       Some have called UIS a kludge, I say that if Atari were to 
  75. incorporate it's DELUXE and needed features into TOS 1.4, it would be 
  76. called a STROKE OF GENIUS.
  77.  
  78.                                               Ralph.....
  79.  
  80.  
  81. As we approach another Christmas Holiday, Atari is prepared to miss the
  82. boat again.  No real quantities of ST product for sale in the USA.  What
  83. fantastic corporate leadership and planning!  And you thought that the
  84. Katzenjammer Kids were only cartoon characters.
  85.  
  86.  
  87.  
  88.  
  89. **************************************************************************
  90.  
  91.   NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
  92.  
  93.                           FOR A LIMITED TIME ONLY
  94.  
  95.     COMPUSERVE WILL PRESENT $15.00 WORTH OF COMPLIMENTARY ONLINE TIME
  96.  
  97.                               to the Readers
  98.  
  99.                    ST REPORT ONLINE ELECTRONIC MAGAZINE
  100.  
  101.                          NEW USERS SIGN UP TODAY!
  102.  
  103.             Call any of the St Report  Official BBS numbers 
  104.                     (Listed at the top of ST REPORT)
  105.                                     or
  106.             Leave E-mail to St Report, Ron Kovacs or Rex Reade
  107.  
  108.             Be sure to include your full mailing address so your 
  109.               Compuserve kit can be immediately mailed to you!
  110.  
  111.                             Expires 11-30-88
  112.  
  113.   NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
  114.  
  115. **************************************************************************
  116.  
  117.  
  118.  
  119.  
  120.         So, you'd like to tell that guy Rex Reade a thing or two Eh?
  121.                                  -------------
  122.      Spend an evening with ST Report, ask the questions you would like
  123.         answered, find out what motivates ST Report, become informed.
  124.  
  125.                           YOU WILL HAVE YOUR CHANCE!
  126.                           --------------------------
  127.  
  128.                    NOVEMBER 09, 1988 WEDNESDAY, 8 P.M. EST
  129.  
  130.  
  131.                         COMP-U-SERVE CONVENTION CENTER
  132.  
  133.                           All are invited to Attend
  134.  
  135.  
  136.  
  137.  
  138. --------------------------------------------------------------------------
  139.  
  140.  
  141.  
  142.  
  143.                          THE MELTING POT RUNNETH OVER
  144.                          ============================
  145.  
  146. by Rex Reade
  147.  
  148.  
  149.       This is the time of the year when speculation runs high and facts
  150. seem to become obscure amid the dreams and hopes for the future.  That is
  151. the limbo of the days prior to Fall Comdex every year.  Obvious by their
  152. absence in the Comdex Preview is Atari, Why? easy....they registered too
  153. late to make it into the preview, not even into the maps and directions on
  154. how to find an exhibitor.  Great planning at the corporate level,
  155. (outstanding guys).  You do know Atari had no plans to attend the Fall
  156. Comdex earlier this year.  It seems some voice in the distance said "Hey
  157. Atari, wake up the whole country is WATCHING you and what you do this
  158. year".
  159.  
  160.       Developers, Distributors, Dealers, Usergroups and Users have long
  161. been known to be the life blood of any company doing business directly 
  162. with the consumer.  Every major, well organized, corporation will readily
  163. admit that each is a vital component in the formula for success.  Does 
  164. Atari? Apparently not..
  165.           
  166.     Consider these latest moves:
  167.     ----------------------------
  168.       A) Atari routes a huge percentage of it's ST product to Europe thus
  169.          justifying Developer "dropout" in the USA.
  170.  
  171.       B) Atari drops the "Houston Project" thus indirectly confirming the
  172.          often percieved, "Lack of true corporate leadership and direction
  173.          in the USA."  I feel sorry for all the Houston Dealers who, in 
  174.          the past few months were "busy" singing the praises of Atari.
  175.  
  176.       This could go on and on, but that is not the point here, the point
  177. is this; Atari needs:
  178.  
  179.       A) A Professional Marketing Department.
  180.       B) A full National Sales Department.
  181.       C) A REAL National Service Organization.
  182.       D) Corporate Leaders, not the Katzenjammer Kids who appear to SEE
  183.          the company like its a HOBBY!
  184.       E) TO DEVELOP THE US MARKET PROPERLY
  185.       F) TO Recognize the signs, look at Atari in Europe and Canada, they
  186.          ARE successful WHY??.. the handwriting is on the wall guys..
  187.  
  188.                          GET PROFESSIONAL LEADERSHIP.
  189.  
  190. Nota Bene: 
  191. ---------
  192.       The "get even" attitude or the "suit" happy attitude is going to
  193. be the ruination of a good thing.  Any time a "for profit" venture falls 
  194. in the hands of the barristers, serious problems are afoot or in store for
  195. the future.  
  196.  
  197.       Atari DRAM supply is about to go down the tubes, remember when 
  198. everybody was gloating about the alledged upper hand had with Micron?  
  199. Remember the boasting about how the ST in Europe was kicking the a** of a
  200. certain computer in it's own backyard?  Read on Bunky, this is what hard 
  201. nosed legal beagle bargaining can get you......Amstrad has bought into 
  202. Micron Technologies on a rather heavy scale, guess who supplies DRAM to
  203. our favorite company.  What's that about; "Turn about is fair play???"
  204. ....When will Katzenjammer be controlled and real leadership LEAD?
  205.  
  206.  
  207.                                    as the Fuji turns...will continue
  208.  
  209.  
  210.  
  211.  
  212.  
  213. --------------------------------------------------------------------------
  214.  
  215.  
  216.  
  217.  
  218.  
  219.                                D.C. ATARIFEST
  220.                                ==============
  221.  
  222. by Bruce Hansford
  223. Editor, MVACE
  224.  
  225.      The Washington (DC) Area Atari Computer Enthusiasts, a cooperative 
  226. of several DC-area Atari user groups, sponsored their fourth annual 
  227. Atarifest on the 1st and 2nd of October... and WE WERE THERE.  The MVACE 
  228. caravan consisted of myself, Doug Hodson, Ken Lare, Dan Steffen, Boyd 
  229. Bradford, Ashish Ranpura, George Baker, Michael McHale, and Ray Hendrix, 
  230. traveling in two vehicles connected by walkie-talkies.  Whew! What a 
  231. trip!
  232.  
  233.      The Fest itself was not all that impressive.  I really expected 
  234. more; I think the Detroit Atarifest last year was better.  After talking 
  235. to the show's organizer, I began to realize why it wasn't so great.  One 
  236. reason was that they used a school and had to follow special rules 
  237. established by the city of Fairfax.  They also didn't allow enough time 
  238. for notification of dealers and developers.
  239.  
  240.      The best part of the show for me was the fact that David Small had 
  241. his newest product, SPECTRE 128, available for sale there, (I got mine!) 
  242. and the 128K Mac ROMs were available also (I got mine!).  Another aspect 
  243. that stands out was meeting Brian Sarrazin, Vice President of SoftLogik, 
  244. who was showing the "final release" version of Publishing Partner 
  245. Professional.  He said that they were just waiting for the documentation 
  246. to get back from the printers before sending out the upgrades and 
  247. releasing the package to distributors.
  248.  
  249.  
  250.  
  251.  
  252. --------------------------------------------------------------------------
  253.  
  254.  
  255.  
  256.  
  257.                            ANTIC PUBLISHING INC.
  258.                               COPYRIGHT 1988
  259.                           REPRINTED BY PERMISSION.
  260.  
  261.  
  262.  
  263.       PROFESSIONAL GEM  by Tim Oren
  264.       Column #11 - GEM Hooks and Hacks, An Insider's AES Tricks
  265.  
  266.  
  267.            Welcome  to  the  eleventh episode of ST PRO  GEM,  which  is
  268.       devoted to exploring some of the little documented,  but powerful,
  269.       features  of GEM.   Like the authors of most complex systems,  the
  270.       GEM  programmers left behind a set of "hooks",  powerful  features
  271.       which would aid them in enhancing the system later.  I am going to
  272.       lay  out  a number of these methods which have served me  well  in
  273.       making  creative use of the AES.   You will find that most of them
  274.       concern  the object and form libraries,  since I was most involved
  275.       in those parts of GEM.  There are probably many more useful tricks
  276.       waiting  to be found in other parts of GEM,  so if you happen onto
  277.       one, please let me know in the Feedback!
  278.  
  279.            POWERFUL   OBJECTS.    The  first  four  tricks  all  involve
  280.       augmenting  standard  AES  objects.   This is a powerful technique
  281.       for two reasons.  First, you can  take  advantage  of the  regular
  282.       AES  object  and  form  libraries  to draw and handle most of your
  283.       objects,  so that  your  program need only process the exceptions.
  284.       Second, you can use the RCS  to  copy  the  special  objects  into
  285.       multiple  dialogs  or resources.   These  four tricks are Extended
  286.       Object  Types,  User-defined  Objects,  TOUCHEXIT,  and  INDIRECT.
  287.       Let's look at each of them in turn.
  288.  
  289.            EXTENDED OBJECT TYPES.  If you look at the AES Object Library
  290.       documentation,  you  will  notice  that the values for the OB_TYPE
  291.       field in an object are  all 32 or less.   This means that a number
  292.       of bits are unused in  this  field.   In fact,  the AES completely
  293.       ignores the top byte of  the OB_TYPE field.   In addition, the RCS
  294.       ignores the top byte, but it  also  preserves  its  value  when an
  295.       object is read, written, or copied.
  296.  
  297.            This  gives  you one byte per object to use as you  see  fit.
  298.       Since  the  processing of an object or dialog is (so far)  in  the
  299.       hands of the AES,  the best uses of Extended Types are in flagging
  300.       methods for initializing an object or handling its value when  the
  301.       dialog  completes.
  302.  
  303.            For  example,  you  might  have  several  dialogs  containing
  304.       editable numeric fields.   The Extended Type of each numeric field
  305.       could be set to the index of the corresponding value in an  array.
  306.       Then your application's dialog initialization code could scan  the
  307.       object  tree  for  such objects,  pick up  the  appropriate  value
  308.       from the array and convert it to ASCII,  storing the result in the
  309.       resource's  string  area.   When the dialog was finished,  another
  310.       pass could be made to reconvert the ASCII to binary and store away
  311.       the results in the array.   (Note that the map_tree() utility from
  312.       column #5 will scan an entire resource tree.)
  313.  
  314.            Another  application  is  to assign  uniform  codes  to  exit
  315.       buttons  in  dialogs.   If you give every "OK" button an  Extended
  316.       Type  of one,  and every "Cancel" button an Extended Type of  two,
  317.       then  you  needn't  worry about naming every  exit  object.   Just
  318.       examine  the Extended Type of the object returned by form_do,  and
  319.       proceed accordingly.
  320.  
  321.            The catch, of course, is that you have to find a way to enter
  322.       the  Extended  Type code in the first place.   Version 1.0 of  the
  323.       RCS, as shipped with the Atari developer's kit, makes no provision
  324.       for this.  So you have your choice of two methods for creating the
  325.       first  object with each Extended Type code.
  326.  
  327.            First,  you can dump out a C source of a resource, insert the
  328.       new type code by hand,  and regenerate the resource with STCREATE.
  329.       Alternately,  you could carefully modify the binary resource using
  330.       SID.   You will probably want to reread the AES object manual,  ST
  331.       PRO GEM #4 and #5,  and use the C source as a guide when doing so.
  332.       In both cases, you should make things easy on yourself by creating
  333.       a  one  dialog resource with only a single object other  than  the
  334.       root.   Version  2.0  of  the RCS will let you directly  enter  an
  335.       Extended Type, but it has not yet been released for the ST by DRI.
  336.  
  337.            Once  you have created a prototype extended object by  either
  338.       method, you can use the RCS to propogate it.  The safest way is to
  339.       use the MERGE option to add the modified tree to the resource  you
  340.       are building.  Then copy the prototype object via the clipboard to
  341.       your dialog(s), deleting the extra tree when you are done.  If you
  342.       are  using several different extended objects,  you can use  MERGE
  343.       and clipboard copies to get them all into one tree which will then
  344.       become your own object library.
  345.  
  346.            The  second way of using RCS is easier,  but more  dangerous.
  347.       If you want to try the following technique,  BACK UP YOUR RCS DISK
  348.       FIRST!   Put  simply,  the RCS does not care what is in its dialog
  349.       partbox. It will make copies of anything that it finds there! This
  350.       gives you the option of using the RCS on ITS OWN RESOURCE in order
  351.       to add your customized objects to the partbox.
  352.  
  353.            To do this, open RCS.RSC from the RCS.  Since there is no DEF
  354.       file,  you will get a collection of question mark icons.   Use the
  355.       NAME option to make TREE5 into a DIALOG.    Open it,  and you will
  356.       see the dialog partbox.
  357.  
  358.            Now you can use the MERGE technique described above to insert
  359.       your  customized  objects.   Then SAVE the modified resource,  and
  360.       rerun the RCS.  Your new objects should now appear in the partbox.
  361.       If  you added several,  you may have to stretch the partbox to see
  362.       them  all.   You can now make copies of the new objects just  like
  363.       any other part.  (Note: DO NOT modify the alert or menu partboxes,
  364.       you will probably crash the RCS.)
  365.  
  366.            USER-DEFINED  OBJECTS.   The one type of object which was not
  367.       discussed in the  earlier articles  on  AES objects was G_USERDEF,
  368.       the programmer defined object.  This  is  the  hook  for  creating
  369.       objects  with  other  appearances  beyond  those  provided  by the
  370.       standard  AES.   By  the  way,  you should note that the G_PROGDEF
  371.       and APPLBLK mnemonics  used  in  the  AES documents are incorrect;
  372.       the actual  names  as  used  defined  OBDEFS.H  are  G_USERDEF and
  373.       USERBLK.
  374.  
  375.            The  RCS does not support the creation of G_USERDEF  objects,
  376.       since  it  has  no idea how they will be drawn  by  your  program.
  377.       Instead,  you  must insert a dummy object into your resource where
  378.       you  want  the  G_USERDEF  to appear,  and  patch  it  after  your
  379.       application performs its resource load.
  380.  
  381.            You   must  replace  the  object's  existing   OB_TYPE   with
  382.       G_USERDEF,  though you may still use the upper byte as an Extended
  383.       Type.   You  must  also  change the OB_SPEC field to be  a  32-bit
  384.       pointer  to  a USERBLK structure.   An USERBLK is simply two  LONG
  385.       (32-bit)  fields.   The  first is the address of the drawing  code
  386.       associated  with  the  user  defined object.   The  second  is  an
  387.       arbitrary 32-bit value assigned to the object by your application.
  388.  
  389.            You can designate objects for conversion to G_USERDEFs in the
  390.       normal fashion by assigning them names which are referenced one by
  391.       one in your initialization code.   You can also combine two tricks
  392.       by using the Extended Type field as a designator for objects to be
  393.       converted to G_USERDEF.  Each tree can then be scanned for objects
  394.       to  be converted.   There is a short code segment in the  download
  395.       which demonstrates this technique.
  396.  
  397.            My  usual  convention  is to define new  drawing  objects  as
  398.       variants  of  existing objects,  using the Extended Type field  to
  399.       designate the particular variation.   Thus an Extended Type of one
  400.       might designate a G_BUTTON with rounded corners,  while a value of
  401.       two  could  flag  a G_STRING of boldface text.   When  using  this
  402.       technique,  the  RCS can be used to build a rough facsimile of the
  403.       dialog  by inserting the basic object type as  placeholders.   The
  404.       existing  OB_SPEC  information can then be copied  to  the  second
  405.       position in the USERBLK when the object is initialized.
  406.  
  407.            One final note before moving on:  There is no reason that the
  408.       USERBLK  cannot be extended beyond two fields.   You might want to
  409.       add  extra words to store more information related to drawing  the
  410.       object, such as its original type.
  411.  
  412.            The  AES will call your drawing code whenever  the  G_USERDEF
  413.       needs  to be drawn.   This occurs when you make an objc_draw  call
  414.       for its tree,  or when an objc_change occurs for that object.   If
  415.       your user-defined object is in a menu drop-drop, then your drawing
  416.       code will be called any time the user exposes that menu.
  417.  
  418.            Before  getting  into the details of the AES  to  application
  419.       calling  sequence,  some  warnings are in order.   First,  remember
  420.       that your drawing code will execute in the AES' context, using its
  421.       stack.   Therefore,  be careful not to overuse the stack with deep
  422.       recursion, long parameter lists, or large dynamic arrays.  Second,
  423.       the  AES  is NOT re-entrant,  so you may not make ANY calls to  it
  424.       from within a G_USERDEF procedure.   You may,  of course, call the
  425.       VDI.   Finally,  realize  that drawing code associated with a menu
  426.       object may be called by the AES at any time.   Exercise great care
  427.       in  sharing  data  space between such code and  the  rest  of  the
  428.       application!
  429.  
  430.            When your drawing code is called by the AES, the stack is set
  431.       up  as if a normal procedure call had occured.   There will be one
  432.       parameter  on the stack:  a 32-bit pointer to a PARMBLK structure.
  433.       This structure lies in the AES' data space, so do not write beyond
  434.       its end!
  435.  
  436.            The  PARMBLK contains 15 words.   The first two are the  long
  437.       address of the object tree being drawn,  and the third word is the
  438.       number of the G_USERDEF object.   You may need these values if the
  439.       same  drawing  code is used for more than one object  at  a  time.
  440.       Words  four  and five contain the previous  and  current  OB_STATE
  441.       values of the object.  If these values are different, your drawing
  442.       code  is  being  called in response  to  an  objc_change  request.
  443.       Otherwise, the active AES call is an objc_draw.
  444.  
  445.            Words six through nine contain the object's rectangle on  the
  446.       screen.   Remember  that  you cannot call objc_offset  within  the
  447.       drawing code,  so you will need these values!  The next four words
  448.       contain the clipping rectangle specified in the active objc_change
  449.       or objc_draw call.   You should set the VDI clip rectangle to this
  450.       value before doing any output to the screen.
  451.  
  452.            The last two words in the PARMBLK contain a copy of the extra
  453.       32-bit parameter from the object's USERBLK.   If you have followed
  454.       the  method of copying an OB_SPEC into this location,  these words
  455.       will be your pointer to a string, or BITBLK, or whatever.
  456.  
  457.            When  your drawing routine is done,  it should return a  zero
  458.       value  to  the AES.   This is a "magic" value;  anything else will
  459.       stop the drawing operation.
  460.  
  461.            The download contains a sample drawing routine which  defines
  462.       one extended drawing object,  a rounded rectangle button.  You can
  463.       use  this procedure as a starting point for your own User  Defined
  464.       objects.
  465.  
  466.            PUT ANYTHING YOU WANT ON THE DESKTOP!    In ST PRO GEM #2,  I
  467.       described the use  of  the WF_NEWDESK wind_set  call to substitute
  468.       your own object tree for  the  normal  green  desktop  background.
  469.       If the tree you supply contains User Defined objects, you can draw
  470.       whatever you want on the  desktop!  Some  of  the things you might
  471.       try are free  hand  drawings  imported  in  metafile  format  from
  472.       EasyDraw,  or whole  screen bit images generated by Degas.  If you
  473.       do the latter, you will have to store  the entire image off screen
  474.       and blit parts of it to the display as requested.
  475.  
  476.            In  any case,  remember that your desktop drawing code can be
  477.       called any time that a window is moved,  so exercise the same care
  478.       as with a menu drawer.   Also, be aware that making the WF_NEWDESK
  479.       call  does  not force an immediate redraw of the desktop.   To  do
  480.       that, do a form_dial(3) call for the entire desktop rectangle.
  481.  
  482.            THE TOUCHEXIT FLAG. The TOUCHEXIT attribute is an alternative
  483.       to  the  more  usual  EXIT.   When  the TOUCHEXIT bit is set in an
  484.       object's OB_FLAG word,  the  form_do routine will exit immediately
  485.       when the mouse button is pressed with the cursor over the  object.
  486.       Your  code  can immediately take control of the mouse and display,
  487.       without  waiting  for  the release of the button.  This method  is
  488.       used  for  generating effects such as slider bars within otherwise
  489.       normal dialogs.
  490.  
  491.            The  easiest  way to code a TOUCHEXIT handler is to  place  a
  492.       loop  around the form_do call.   If the object number returned  is
  493.       TOUCHEXIT,  then the animation procedure is called,  followed by a
  494.       resumption   of  the  form_do  (WITHOUT  recalling  form_dial   or
  495.       objc_draw!).   If the object returned is a normal EXIT, the dialog
  496.       is  complete and control flows to the cleanup code.
  497.  
  498.            There is one idiosyncrasy of TOUCHEXIT which should be noted.
  499.       When the AES "notices" that the mouse button has been pressed over
  500.       a TOUCHEXIT,  it immediately retests the button state.   If it has
  501.       already  been  released,  it  waits to see if  a  double click  is
  502.       performed.  If so, the object number returned by form_do will have
  503.       its  high  bit set.   If you don't care about double clicks,  your
  504.       code should mask off this flag.   However, you may want to use the
  505.       double click to denote some enhanced action.  For example, the GEM
  506.       file selector uses a double click on one of the file name  objects
  507.       to indicate a selection plus immediate exit.
  508.  
  509.            THE INDIRECT FLAG.  If the INDIRECT bit is set in an object's
  510.       OB_STATE  word,  the  AES interprets the 32-bit OB_SPEC field as a
  511.       pointer to the memory  location  in which the ACTUAL OB_SPEC is to
  512.       be found.   Like  User  Defined  objects,  this  capability is not
  513.       supported by the RCS, so  you  have to set up the INDIRECT bit and
  514.       alter the OB_SPEC at run time.
  515.  
  516.            The value of INDIRECT is that you can use it to associate  an
  517.       AES  object with other data or code.   The general technique is to
  518.       set  up  a table with a spare 32-bit location  at  its  beginning.
  519.       Then,  when initializing the application's resource,  you move the
  520.       true  OB_SPEC  into  this location,  set the  INDIRECT  flag,  and
  521.       replace the OB_SPEC field with a pointer to the table.  The object
  522.       behaves normally during drawing and form handling. However, if you
  523.       receive  its  number  from  form_do  or  objc_find,  you  have  an
  524.       immediate  pointer to the associated table,  without having to  go
  525.       through a lookup procedure.
  526.  
  527.            This  technique works well in programs like the GEM  Desktop.
  528.       Each  G_ICON object is set up with INDIRECT.   Its OB_SPEC goes to
  529.       the  beginning of a data area defining the associated  file.   The
  530.       blank  location at the beginning of file table is filled  up  with
  531.       the former OB_SPEC, which points to a ICONBLK.
  532.  
  533.            You  can also combine INDIRECT with TOUCHEXIT  when  creating
  534.       objects  that  must change when they are clicked by a  user.   For
  535.       instance,  a  color  selection  box  might be linked  to  a  table
  536.       containing  the various OB_SPEC values through which  the  program
  537.       will cycle.   Each time the user clicked on the box, the TOUCHEXIT
  538.       routine would advance the table pointer,  copy the next value into
  539.       the  dummy OB_SPEC location at the front of the table,  and redraw
  540.       the object in its new appearance.
  541.  
  542.            A  programmer  who wanted to follow a  truly  object-oriented
  543.       "Smalltalkish" approach could use the INDIRECT method to bind  AES
  544.       drawing  object to tables of associated procedures  or  "methods".
  545.       For instance, one procedure could be flagged for use when the user
  546.       clicked  on the object,  one when the object was dragged,  one for
  547.       double-click,  and  so on.   If the table structure was capable of
  548.       indicating  that  the true method was stored in another  table,  a
  549.       rudimentary form of class inheritance could be obtained.
  550.  
  551.            INSTANT CO-ROUTINES.     We turn to the AES event and message
  552.       system for this  trick.    While  some  languages  like  Modula  2
  553.       provide a method for implementing co-routines,  there  is  no such
  554.       capability in C.  However, we can effectively fake it by using the
  555.       AES  event library.
  556.  
  557.            As  already  seen in an earlier column,  an  application  can
  558.       write a message to its own event queue using the appl_write  call.
  559.       Usually, this is a redraw message, but there is nothing to prevent
  560.       you from using this facility to send messages from one routine  in
  561.       your program to another.  To set up co-routines using this method,
  562.       they  would  be  coded  as separate  procedures  called  from  the
  563.       application's main event loop.
  564.  
  565.            When  one  of the co-routines wanted to call  the  other,  it
  566.       would  post  a message containing the request and  any  associated
  567.       parameters into the application's queue and then return.  The main
  568.       loop  would find the message and make the appropriate call to  the
  569.       second co-routine.  If it was necessary to then re-enter the first
  570.       co-routine  at  the  calling point,  the  original  message  could
  571.       contain an imbedded reply message to be sent back when the request
  572.       was  complete.   A  simple switch structure could then be used  to
  573.       resume at the appropriate point.
  574.  
  575.            There  are two potential problems in using this method.   The
  576.       first is the limited capacity of the application event queue.  The
  577.       queue  contains  eight entries.    While the AES  economizes  this
  578.       space  by  merging redraws and multiple events,  it  cannot  merge
  579.       messages.   Because  of this limit,  you must be extremely careful
  580.       when  one  message received has the potential to generate  two  or
  581.       more  messages sent.   Unless this situation is carefully managed,
  582.       you  can get a sort of "cancer" which will overflow the queue  and
  583.       probably crash your application.
  584.  
  585.            The second danger involves race conditions.   Message sent by
  586.       the  application  are posted to the end of the  queue.   If  other
  587.       events  have occurred,  such as mouse clicks or keyboard  presses,
  588.       they will be seen and processed ahead of the application generated
  589.       message.   This  implies  that you cannot use this method  if  the
  590.       program must complete its action before a new user generated event
  591.       can be processed.
  592.  
  593.            THAT'S ALL FOR NOW.   Hopefully  these hints  will  keep  you
  594.       profitably occupied for  a  while.   ST PRO GEM number twelve will
  595.       return to the topic of user interfaces.   Reaction  to  the  first
  596.       article on this  subject was mostly  positive,  but a lot of folks
  597.       wanted to see real code  as  well.   In response to your feedback,
  598.       there will also be code for implemented your own "mouse sensitive"
  599.       objects which highlight when the cursor touches  them.  This  will
  600.       be presented as part of an alternate form manager.
  601.  
  602.            UPDATE: ATARI ST.  I have recently gotten more information on
  603.      some topics mentioned in earlier articles.   These notes will bring
  604.      you up to date:
  605.  
  606.            A number of developers reported that they were unable to  get
  607.       the  self-redraw  technique described in ST PRO GEM  #2  to  work.
  608.       This is usually due to a bug in the appl_init binding in Alcyon C.
  609.       The  value  returned from the function,  which would  normally  be
  610.       assigned  to gl_apid,  is coming back as garbage.   To work around
  611.       the problem,  declare EXTERN WORD gl_apid;  in your program and DO
  612.       NOT  assign the value from appl_init.   The binding WILL make  the
  613.       assignment.  A tip of the hat to Russ Wetmore for this report.
  614.  
  615.            The   last  column  mentioned  that  turning  off  the   clip
  616.       rectangle  while drawing graphics text will speed things  up.   It
  617.       turns  out that the VDI will also run at the non-clipped speed  if
  618.       the  ENTIRE  string  to  be written is  within  the  current  clip
  619.       rectangle.  To compound the problem, there is a one-off bug in the
  620.       detection  algorithm  for  the right  edge.   That  is,  the  clip
  621.       rectangle  has to be one pixel BEYOND the right edge of  the  text
  622.       for the fast write to work.
  623.  
  624.            The Feedback in ST PRO GEM #10 mentioned that there are known
  625.       bugs  in  the  Alcyon C floating point  library.   In  fact,  this
  626.       library  has been replaced with a new,  debugged version in recent
  627.       shipments  of the Toolkit.   If you need to use floating point and
  628.       have  run into this bug,  you should be able to get an update from
  629.       Atari.   Also,  check  the  Atari  Developer's SIG (PCS-57) for  a
  630.       possible download.
  631.  
  632.            In addition, it turns out there is an undocumented feature in
  633.       Alcyon  C  which allows you to imbed assembly code  in-line.   Try
  634.       using:
  635.  
  636.            asm(".....");
  637.  
  638.       where the dots are replaced with an assembly instruction.  You get
  639.       one instruction per asm(),  one asm() per line.  Thanks to Leonard
  640.       Tramiel for both of the above tidbits.
  641.  
  642.  
  643.  
  644.  
  645. >>>>>>>>>>>>>>> Sample code for initializing User Objects <<<<<<<<<<<<<<<<
  646.  
  647. GLOBAL USERBLK extobjs[MAX_OBJS]; /* APPLBLK defined in OBDEFS.H */
  648. GLOBAL WORD n_extobjs; /* Set MAX_OBJS to total user   */
  649.                   /* objects in resource */
  650.  
  651. VOID
  652. obj_init()            /* Scan whole resource for user   */
  653. {                     /* objects.  Uses map_tree()      */
  654. LONG tree, obspec;    /* from GEMCL5.C                  */
  655. WORD itree, i, obj;
  656.  
  657.  n_extobjs = 0;       /* Replace TREE0 with your first  */
  658.                       /* tree, TREEN with the last      */
  659.  for (itree = TREE0; itree <= TREEN; itree++)
  660.   {
  661.   rsrc_gaddr(R_TREE, itree, &tree);
  662.   map_tree(tree, ROOT, NIL, fix_obj);
  663.   }
  664.  }
  665.  
  666.  WORD
  667. fix_obj(tree, obj)    /* COde to check and fix up */
  668.  LONG tree;           /* a user defined object    */
  669.  WORD obj;
  670.  {
  671.  WORD hibyte;
  672.  
  673.  hibyte = LWGET(OB_TYPE(obj)) & 0xff00;  /* check extended */
  674.  if (!hibyte)     /* type - if none */
  675.   return (TRUE);    /* ignore object  */
  676.  extobjs[n_extobjs].ub_code = dr_code;  /* set drawcode   */
  677.  extobjs[n_extobjs].ub_parm = LLGET(OB_SPEC(obj)); /* copy obspec  */
  678.  LLSET(OB_SPEC(obj), ADDR(&extobjs[n_extobjs]));   /* point obspec */
  679.  LWSET(OB_TYPE(obj), G_USERDEF | hibyte); /* to userblk &   */
  680.  n_extobjs++;     /* patch type     */
  681.  return (TRUE);
  682.  }
  683.  
  684.  
  685. >>>>>>>>>>>>>>>>>>>>>> Sample User Object Drawing Code <<<<<<<<<<<<<<<<<<
  686. >>>>>>>>>>>>>>>>>>>>>> Implements Rounded Box based    <<<<<<<<<<<<<<<<<<
  687. >>>>>>>>>>>>>>>>>>>>>> on G_BOX type                   <<<<<<<<<<<<<<<<<<
  688.  
  689.  WORD
  690. dr_code(pb)                    /* Sample user object drawing   */
  691.  PARMBLK *pb;                  /* code.  Caution: NOT portable */
  692.  {                             /* to Intel small data models   */
  693.  LONG tree, obspec;
  694.  WORD slct, flip, type, ext_type, flags;
  695.  WORD pxy[4];
  696.  WORD bgc, interior, style, bdc, width, chc;
  697.  
  698.  tree = pb->pb_tree;
  699.  obspec = LLGET(pb->pb_parm);  /* original obspec from USERBLK  */
  700.  ext_type = LHIBT(LWGET(OB_TYPE(pb->pb_obj)));
  701.  slct = SELECTED & pb->pb_currstate;
  702.  flip = SELECTED & (pb->pb_currstate ^ pb->pb_prevstate);
  703.  set_clip(TRUE, &pb->pb_xc);   /* These two routines in GEMCL9.C */
  704.  grect_to_array(&pb->pb_x, pxy); 
  705.  
  706.  switch (ext_type) {
  707.   case 1:                      /* Rounded box                    */
  708.                                /* Crack color word               */
  709.    get_colrwd(obspec, &bgc, &style, &interior,
  710.     &bdc, &width, &chc);
  711.                               /* For select effect, use char color */
  712.    if (slct)                  /* In place of background           */
  713.     bgc = chc;
  714.                               /* Fill in background               */
  715.    rr_fill(MD_REPLACE, (width? 0: 1), bgc, interior, 
  716.     style, pxy);
  717.                               /* Do perimeter if needed           */
  718.                               /* rr_perim is in GEMCL9.C          */
  719.    if (width && !flip)
  720.     {
  721.     pxy[0] -= width; pxy[2] += width; 
  722.     rr_perim(MD_REPLACE,bdc,FIS_SOLID,width,pxy);
  723.     }
  724.    break;
  725.   default:                    /* Add more types here              */
  726.    break;
  727.   }
  728.  return (0);
  729.  }
  730.  
  731.  VOID                        /* Cracks the obspec color word    */
  732. get_colrwd(obspec, bgc, style, interior, bdc, width, chc)
  733.  LONG obspec;
  734.  WORD *bgc, *style, *interior, *bdc, *width, *chc, *chmode;
  735.  {
  736.  WORD colorwd;
  737.  
  738.  colorwd = LLOWD(obspec);
  739.  *bgc = colorwd & 0xf;
  740.  *style = (colorwd & 0x70) >> 4;
  741.  if ( !(*style) )
  742.   *interior = 0;
  743.  else if (*style == 7)
  744.   *interior = 1;
  745.  else if (colorwd & 0x80)        /* HACK: Uses character writing mode */
  746.   *interior = 3;                 /* bit to select alternate interior  */
  747.  else                            /* styles!        */
  748.   *interior = 2;
  749.  *bdc = (colorwd & 0xf000) >> 12;
  750.  
  751.  *width = LHIWD(obspec) & 0xff;
  752.  if (*width > 127)
  753.   *width = 256 - *width;
  754.  
  755.  if (*width && !(*width & 0x1))  /* VDI only renders odd */
  756.   (*width)--;                    /* widths!  */
  757.  
  758.  *chc = (colorwd & 0x0f00) >> 8;  /* used for select effect */
  759.  }
  760.  
  761.  VOID                             /* Fill a rounded rectangle */
  762. rr_fill(mode, perim, color, interior, style, pxy)
  763.  WORD mode, perim, color, style, interior, *pxy;
  764.  {
  765.  vswr_mode(vdi_handle, mode);
  766.  vsf_color(vdi_handle, color);
  767.  vsf_style(vdi_handle, style);
  768.  vsf_interior(vdi_handle, interior);
  769.  vsf_perimeter(vdi_handle, perim);
  770.  v_rfbox(vdi_handle, pxy);
  771.  }
  772.  
  773.  
  774.  
  775.  
  776. --------------------------------------------------------------------------
  777.  
  778.  
  779.  
  780.  
  781.  
  782.                          ___________________________
  783.                          | SUPPORT YOUR LOCAL BBS  |
  784.                          ---------------------------
  785.  
  786.                     THE BUMPER STICKER FOR ALL BBS USERS!
  787.  
  788.                            3 1/2"      X       11"
  789.  
  790.                          Blue Letters on White Vinyl
  791.                          ---------------------------
  792.                           $3.75ea.  -   2 for $7.00
  793.                           postage and handling Incl.
  794.  
  795.                               Linda Woodworth
  796.                            4604 East 16th Street
  797.                            Cheyenne, WY.   82001
  798.  
  799.  
  800. --------------------------------------------------------------------------
  801.  
  802.  
  803.  
  804.  
  805.                              THE ARCHIVAL BIT
  806.                              ================
  807.  
  808.       As a service to our readers we include here a grouping of statements
  809. made by the President of Atari Sam Tramiel, at the CIS Presidential
  810. Conference a few weeks ago....
  811.  
  812.       We present these as a "record" for all to use as reference to see if
  813. in fact, these things come to pass or just pass on.  
  814.  
  815.       Also, we took the liberty to comment where we felt it appropriate.
  816.  
  817.  
  818.       "At present I think that we are shipping all the models (shown at 
  819. the fall COMDEX last year) in Europe, even the Abaq, to developers.  We 
  820. will start shipping in earnest to the US market in early 1989, including 
  821. the ST and the line of PC compatibles and our new members of the ST 
  822. family. The Abaq is now called the ATW (ATari Work station)."
  823.  
  824. STR NOTE:  You "THINK", aren't you SURE?
  825.  
  826.      "We just signed a major deal with a big Dram supplier and the 
  827. situation will get better I hope in early 1989."
  828.  
  829.      "We have already published the details of new TOS (ver 1.4) to 
  830. developers and will do so for the rest of the users when it is released.  
  831. We are working on the TT (the 68030 system), and hope to show it in early
  832. '89.  Until then, no further comments on the TT... but it will knock your
  833. socks off!  :-) "
  834.  
  835.      "We feel that advertising without product availability is helpful 
  836. in selling our competitors' machines and therefore, will just waste 
  837. money.  As far as a national computer chain is concerned, we are already 
  838. diverting machines to the US and ship them to our few but loyal ST 
  839. dealers."
  840.  
  841. STR NOTE: Advertise the software available and display the machines at 
  842. the same time, thus keeping the interest level high.  Show support to the 
  843. developers of software for the ST..thats the kind of advertising you 
  844. could be doing at this time.  Stop suffering from the CHEAPS!
  845.  
  846.      "We agree that the Atari 8-bit line is the best available.  
  847. However, the US market seems to want more powerful machines.  We are 
  848. selling many tens of thousands of the XE/XL line in Europe, and in the 
  849. middle east, and in Latin America.  We are trying to push the XE Game 
  850. System in the US as a computer and a game for the same price as the 
  851. Nintendo with an exercise mat. (i.e. $149)"
  852.  
  853.      "By the way, there is now a fifty dollar rebate on the XE Game 
  854. machine."
  855.  
  856.      {Portable ST - Fact or Fiction}  "Fact.  We are working on it, and 
  857. will ship it as soon as it is ready."
  858.  
  859.      "...we plan for Atari to be number two or number three in the world 
  860. personal computer market and we hope to make the ST one of the standard 
  861. machines in the US during 1989.  I would prefer not to comment on 
  862. details of future ST or TT machines at present."
  863.  
  864.      "I appreciate the support of all of you, and I really hope that in 
  865. 1989, you will not be such a minority in the US personal computer world.  
  866. It is a pleasure to see Atari so successful in Europe and I'm sure that 
  867. with more DRAM as we expect in '89, we will be able to be successful in 
  868. the US as well.  Good night." 
  869.  
  870.    NOTE: Then we all woke up and saw the real questions go unanswered!
  871.  
  872.       We purposely left out the part where Sam told the US Developers to
  873. go sell their products in Europe.  That "GEM" was just too revolting to
  874. bring up again.  Better he should get product on the US Dealer shelves
  875. instead of trying to sway the developers to turn to Europe.
  876.  
  877. Hey Sam, read YOUR address at least once a day, it SEZ:  "U.S.A.!"
  878.                                                           ------
  879.  
  880.  
  881.  
  882.  
  883. -------------------------------------------------------------------------
  884.  
  885.  
  886.  
  887.  
  888.  
  889.                           ABCO COMPUTER ELECTRONICS INC.
  890.                                   P.O. Box 6672
  891.                        Jacksonville, Florida   32236-6672
  892.  
  893.                                    904-783-3319
  894.  
  895.                       HARD DISK SYSTEMS TO FIT EVERY BUDGET
  896.                       -------------------------------------
  897.  
  898.            20mb #SG20510  519.00                30mb #SG32610   649.00
  899.            40mb #SG44710  789.00                65mb #SG60101   949.00
  900.            80mb #SG840110 1019.00              130mb #SG3A1210 1449.00
  901.  
  902.                 larger units are available - (special order only)
  903.  
  904.                  ***  Available for ST - Amiga - Mac - IBM   ***
  905.  
  906.                               6 month Guarantee 
  907.                                  followed by
  908.                        6 month Parts & Labor Warranty
  909.  
  910.                             (under normal usage)
  911.  
  912.                               --------------
  913.  
  914.  
  915.  
  916.  
  917. -------------------------------------------------------------------------
  918.  
  919.  
  920.  
  921.  
  922.                               A NEW BLIVITT!
  923.                               ==============
  924.  
  925.  
  926. From "Computer & Software News" 
  927. Dated: Oct. 1988
  928.  
  929.      "It looks like ATARI may bring out a 68030-based computer at COMDEX.
  930. The base unit of the system, aimed at getting the company into the 
  931. workstation business, will have a price tag of about $2,000, and will be 
  932. targeted at the education, scientific and engineering markets, a la Steve
  933. Jobs' Next. The ATARI machine reportedly will feature a 1280-by-960 pixel
  934. screen with 8-bit gray-scale, a Motorola 56000 digital processor for up to
  935. eight channels of 16-bit sound, and a 1.44-Mbyte, 3.5-in. floppy disk 
  936. drive.  It will also have four VME expansion slots which will allow it to
  937. accomodate add-in boards that fit in Apollo and Sun workstations, sources
  938. explained."
  939.  
  940.  
  941.  
  942.  
  943. --------------------------------------------------------------------------
  944.  
  945.  
  946.  
  947.  
  948. ST REPORT CONFIDENTIAL
  949. ======================
  950.  
  951.  
  952. Sunnyvale, CA         The real hope for Atari lies in the first and second
  953. -------------         quarters of 1989, with the real push on for the
  954.                       second quarter.
  955.  
  956. NYC, NY               Amstrad has bought into MICRON which means after the
  957. -------               initial committment to Atari is fullfilled, there 
  958.                       will be NO MORE Dram chips for Atari from them.
  959.  
  960. Phoenix, AZ           Atari is once again BACK ORDERED ON SC1224 and you
  961. -----------           can forget getting ANY 1040 STs!  It is suggested
  962.                       that you use the Magnovox monitor as it is the
  963.                       closest to SC1224 performance. Dealers are being
  964.                       forced to upgrade 520stfm units to 1mb in the field.
  965.  
  966. Las Vegas, NV         Will Comdex be the shot that's heard 'round the
  967. -------------         world?  According to some informed sources if Poppa
  968.                       Jack holds the KATZENJAMMER KIDS in check, Atari 
  969.                       could quite possibly do well in the Public 
  970.                       Relations Dep't. 
  971.  
  972. Sunnyvale, CA         "Rumor" has it, that the centerpiece of Atari's
  973. -------------         Comdex show will be the Laptop, also an elaborate
  974.                       Desktop Publishing Display will be in action.  
  975.  
  976. NYC, NY               Insiders at the "market" are very skeptical of the
  977. -------               remark: "Watch Atari in the first 2 quarters of 
  978.                       1989".  We have heard all that before.  they said.
  979.  
  980. St. Louis, MO         Page Stream, the "new" name for Publishing Partner
  981. -------------         Professional has been released.  As always, with
  982.                       "new" programs, it is experiencing some slight
  983.                       problems.  According to one reviewer, the 20 some 
  984.                       odd "listed" quirks (bugs) are soon to be hit with
  985.                       raid and "all" will be ok.  This is a DTP program
  986.                       that, if it's problems are ironed out, will be the
  987.                       top US DTP program.  
  988.  
  989. Los Angeles, CA       FEDERATED, the ATARI owned and operated chain of
  990. ---------------       stores west of the Mississippi, has more Commodore
  991.                       AMIGA 500s is their stores than they do of Atari
  992.                       computers is this another "coup" for ATARI? 
  993.  
  994.  
  995.  
  996.  
  997. -------------------------------------------------------------------------
  998.  
  999.  
  1000.  
  1001.  
  1002.                             Atari ST GFA-BASIC 3.1
  1003.                             ======================
  1004.  
  1005.     The original version of  GFA BASIC was released in June of 1986 to 
  1006. rave reviews in all the major computer publications.  Even the often 
  1007. cynical programmers were impressed by the speed of this new language,
  1008. the command vocabulary  and the structured programming.  At last a way for
  1009. every owner to unleash the powerof their ST!
  1010.  
  1011.     Early in 1987: The GFA BASIC Compiler became available.  The already
  1012. fast programs became even faster.  The compiled source code made 
  1013. professional software development a possibility, and several products,
  1014. ranging from game programs to productivity utilities were introduced by 
  1015. professional programmers.
  1016.  
  1017.     Version 2.0 of GFA BASIC implemented compiler commands, and was 
  1018. delivered in October of 1986.
  1019.  
  1020.     During the past two years, over 50,000 copies of the GFA BASIC
  1021. Interpreter, and 20,000 copies of the GFA BASIC Compiler have been 
  1022. purchased world wide.
  1023.  
  1024.                              A New Standard
  1025.  
  1026.     GFA BASIC, Version 3.0 was first shown to the general public at CeBIT
  1027. the world's largest consumer computer show, in West Germany.  Again, GFA 
  1028. BASIC has astounded the computer world.
  1029.  
  1030.     With over three hundred new commands and an enormous increase in 
  1031. speed.  Tests have indicated speed increases ranging between 40 and 60 
  1032. percent over the previous version of GFA BASIC.  Once again GFA BASIC is 
  1033. setting new standards!
  1034.  
  1035.                               Compatibility
  1036.  
  1037.     Even more important to the many present user's of GFA BASIC, Version
  1038. 3.0 remains compatible.  You can still use all of the existing 
  1039. GFA- BASIC programs and books.  The huge library of public domain GFA 
  1040. BASIC programs has just been improved!   ALL programs will benefit from
  1041. the improvements in the latest version of GFA BASIC.
  1042.  
  1043.                                 New Editor
  1044.  
  1045.     The editor in the previous version of GFA BASIC has been highly 
  1046. praised.  Automatic syntax checking, and the interactive programming 
  1047. environment made program development a snap.
  1048.  
  1049.               But, even something this good can be improved.
  1050.  
  1051.     One of the more impressive features is the ability to "hide" 
  1052. procedures.  Once a procedure has been debugged, the programmercan "hide"
  1053. it.  Only the procedure name is shown in the listing.  This makes your 
  1054. visible code more readable.  No longer will it be necessary page through 
  1055. screen after screen of procedures.  Just view the names, expanding them  
  1056. as needed to review the contents.
  1057.  
  1058.     There's also more help in editing your programs. Now with just a key 
  1059. stroke, characters above the normal ASCII-Code can be input into your 
  1060. program.  The new GFA-BASIC Editor also includes a larger number of 
  1061. keyboard implemented commands.
  1062.  
  1063.     Other useful new features include: a clock in the menu field, up to 
  1064. 10 editor-marks may be placed in your program, and a line counter is 
  1065. included.
  1066.  
  1067.                                 More Power!
  1068.  
  1069.     There isn't enough room here to list all the possibilities of GFA 
  1070. BASIC 3.0, but here are a few of the new functions:
  1071.  
  1072.           -- All AES functions have been implemented
  1073.           -- Additional functions for management and handling of objects
  1074.           -- Structures
  1075.           -- Line-A commands are now supported
  1076.           -- Joystick commands
  1077.           -- Case distinction (SELECT-CASE and ELSE-IF)
  1078.           -- Multiple line functions in addition to assigned parameters
  1079.           -- Variable parameters are also possible-
  1080.           -- Many bit operations have been implemented
  1081.              (move, rotate, bit test, erase, set, change)
  1082.           -- Fast Integer operations
  1083.           -- And much more!
  1084.  
  1085.                         Atari ST GFA-BASIC 3.1
  1086.  
  1087.                       For ALL Atari ST Computers
  1088.  
  1089.                           By Frank Ostrowski
  1090.  
  1091.                              MICHTRON, Inc.
  1092.                            576 S. Telegraph
  1093.                           Pontiac, Mi. 48053
  1094.  
  1095.                          Phone (313) 334-5700
  1096.  
  1097.  
  1098.  
  1099.  
  1100. -------------------------------------------------------------------------
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.                         INTERLINK PC Pursuit Help
  1107.  
  1108. By: Randy Mears
  1109.  
  1110.  
  1111.  
  1112. Until INTERLINK ST is upgraded to contain a script language (and it will
  1113. be so upgraded) you can get around quite well in PC Pursuit without one.
  1114.  
  1115. The first thing you need to do is create a special Phone File for your
  1116. PC Pursuit dialing.  The primary difference between this file and a normal
  1117. Phone File is that the Modem Parameters are changed to disable the Hang-Up
  1118. and increase the timeout values.  This will allow you to use the standard 
  1119. dialer buttons to dial numbers within a given area.  You can even use the
  1120. group dialing capability to check multiple numbers within that area.
  1121.  
  1122. In addition, function key definitions that will allow you to disconnect 
  1123. from your current area and connect to a new area need to be defined so 
  1124. that you can easily move from one area to another.
  1125.  
  1126. And, finally, a recording that will allow you to continuously retry area
  1127. dialing until you get a CONNECT rather than those all too familiar BUSY's.
  1128.  
  1129. Enclosed in this archive is a sample PC Pursuit Dial File (PCDIAL.DAT).
  1130. You can load it into INTERLINK as a Phone File and create your own 
  1131. function keys using the model contained in the Control/F10 Function. 
  1132. Just insert the desired area code and your userid and password.  If you 
  1133. desire automatic retry keys add this string to the end of your area call
  1134. function        ````^nn 
  1135. where nn is the function number (1-20) of the key being defined.  This 
  1136. will cause the key to be repeated after a 12 second pause.  When you get
  1137. connected you can break out of this loop by pressing a function key that
  1138. has nothing defined (I use ALT/F2).  You can break out of this loop 
  1139. manually or, you can use the enclosed recording to do it automatically.
  1140. In versions of INTERLINK below 1.74 you must start the recording after
  1141. you initiate function key processing (sorry about that bug), in later
  1142. versions you can start the recording and then press the function key you
  1143. desire or change to another function key mid-stream.  Don't forget to save
  1144. this new Phone File with some other name than your normal one!   
  1145.  
  1146. The recording is called PCCOD.REC.  It waits forever for a CONNECT from
  1147. PC Pursuit and, upon getting one, breaks the Function Key loop by pressing
  1148. ALT/F2 (important that you leave it blank) and sending ATZ<cr> to PC 
  1149. Pursuit.  It plays the completion tone to let you know that you have
  1150. connected.   
  1151.  
  1152. I use this technique constantly on PC Pursuit and find that I can move
  1153. around quickly and find lots of Boards to connect to.  It is convenient
  1154. to add the required Area Code for a given board to its NAME description
  1155. in the dialer window.  This way you know what area is needed for a given
  1156. board.  You may just want to make a different Phone File for each area
  1157. but I tend to put about 4 areas per Phone File and have about 6 such
  1158. files descriptively named.
  1159.  
  1160. Hope the enclosed files and information have been of help in your PC
  1161. Pursuits.  If you would like further information or clarification please
  1162. feel free to call our BBS at (813)924-4590.  It will be a long distance
  1163. call for most of you so we try to answer your questions within 24 hrs.
  1164.  
  1165.  
  1166.  
  1167.  
  1168. --------------------------------------------------------------------------
  1169.  
  1170.  
  1171.  
  1172.  
  1173. THIS WEEK'S QUOTABLE QUOTE
  1174. ==========================
  1175.  
  1176.  
  1177.  
  1178.       BUG-A-BOO
  1179.       ---------
  1180.            In any collection of data, the figures that are obviously
  1181.            correct beyond all need of checking, contain all the errors!
  1182.            
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  ------------------------------------------------------------------------
  1188.  ST-REPORT Issue #60                                    November 07, 1988
  1189.                    ALL RIGHTS RESERVED (c)copywrite STR Inc.
  1190.  ------------------------------------------------------------------------
  1191.      Any reprint must include ST-Report and the author in the credits.
  1192.   Views Presented herein are not necessarily those of STR Inc. or APEInc.
  1193.          COMMERCIAL ONLINE SERVICES MUST HAVE WRITTEN PERMISSION 
  1194.            to offer ANY APEInc. REPORT and/or ZMAG in any form.
  1195. -------------------------------------------------------------------------
  1196.