February 1990 MAGazine Volume 6 Number 2

Table Of Contents


Saturday, February 10, 1990 - 1:00 PM - the General Meeting will be held in a room to be selected prior to the meeting. The meeting room is in the Parrish Building on the campus of State Technical Institute of Memphis. We will discuss topics of general interest to the group.


By Todd Rooks

Greetings to everyone reading this newsletter. As many of you know, this article is my first, so I want to thank each member for the opportunity to serve in this position. I believe the Amiga family of computers are fast becoming an established standard by which other personal computers are measured. No longer are users satisfied with bland graphics, cryptic operating systems, and all at outrageous price tags. It is because the Amiga is coming of age that I am enthusiastic about the Memphis Amiga Group. I have many ideas for the group, some of which I touched on at the last general meeting. For the sake of those who weren't there, I'll mention some of them now. First, I believe we should realize the importance of new members. Too often the question is asked by new members, "What do I do now?", I have an idea of presenting each new member with an information packet. The packet should contain a price list of products and services provided by MAG, an Amiga survival disk, and a MAG newsletter. Another idea I have is to begin recording our software reviews on a standard form. This would provide a common measure by which to compare programs. Please call me if you have any contributions to these or other ideas.

In closing, I wish to emphasize that MAG is not a one man show. I am here to provide guidance. Only YOU will make things happen in this group. Stand up and be counted as having contributed to your own knowledge as well as the knowledge of others!

Memphis Amiga Group
Box 17426
Memphis, TN 38187

MAGazine is published monthly by the Memphis Amiga Group (MAG), a nonprofit organisation offering assistance to fellow Aniga owners and those interested in Amiga. Membership in the Memphis Amiga Group is available for an anual fee of $20 per family. Memphis Amiga Group officers for 1989 are:

Broadus Weatherall
(901) 767-9239

Todd Rooks
(901) 373-0198

Charles Williams
(501) 655-8777

Bill Bowers
(910) 360-0003

Sean & John Kiss
(901) 365-1244

New Officers

By Sean Kiss

At last month's meeting new officers for 1990 were elected. Here is the list and a brief description of their duties according to the By-Laws.

PRESIDENT - Todd Rooks

The President is responsible for all group activities and shall preside over the meetings of the group and the executive committee.

VICE-PRES - Brian Akey

The Vice-President will act for the president in his absence and act as a coordinator of SIG's and activities with other user groups

SEC/TREAS - Keith Burns

The Secretary/Treasurer will keep a record of group activities and finances as well as a list of addresses and phone numbers of the group's active members.

LIBRARIAN - Bill Bowers

The Librarian shall organize and maintain a library of reference materials, PD software, and hardware, available to all active members.

EDITOR - David Bath

The Newsletter Editor shall prepare and publish a regular newsletter, including group and special announcements as necessary.


Submitted by: The Midnight Reviewer

Watcher.c  -  A  silly   little   program   inspired  by  a
second-hand description of a probably just as silly program
on Sun workstations.

Author   : Andrew Folkins
(CIS: 72060.740  UUCP : ...!alberta!edm!cuenews!andrew)

Date     : March 22, 1989

Version  : 0.1
Language : Lattice C 5.02 - complied with -Lt -v
Legalese : Public Domain.  Permission  is hereby granted to
bend, fold spindle or mutilate this code in any way you see

If you feel ambitious, here's a few things you can try:

   - Make the movement smoother.  The big problem right now
is erasing the previous  rendering,  which allows the white
background to flash through.  The  proper way to do this is
to render everythingoff screen  then BltBitMapRastPort() or

   - Add  eyelids.   The  watcher  should  go  to  sleep if
nothing happens for a while.  Of course, he might also peek
through one eye every now and then to see what's going on.

   - Get rid of the window border, and make the system
gadgets invisible.

Modified by Mike Topf to add sleep  with non activity. Also
removed part of the border.

#include <exec/types.h>
#include <graphics/rastport.h>
#include <graphics/gfxmacros.h>
#include <intuition/intuition.h>
#include <intuition/preferences.h>
#include <intuition/intuitionbase.h>
#include <proto/intuition.h>
#include <proto/graphics.h>
#include <proto/exec.h>

static char *ForHexDumpers = "Watcher 0.1 by Andrew Folkins
(Public Domain)":

extern struct IntuitionBase *IntuitionBase:
extern struct GfxBase *GfxBase:

#define WIDTH 105
#define HEIGHT 32

struct NewWindow newwindow = (
   100, 10, WIDTH, HEIGHT,
   -1, -1,
   NULL,         /* Gadget list */
   NULL,         /* Checkmark   */
   NULL,         /* Title       */
   NULL,         /* Screen      */
   NULL,         /* Bitmap      */
   0, 0, 0, 0,   /* minwidth, minheight, maxwidth, maxheight */

struct Window *window;
short PrefsX, PrefsY,    /*  Offset of the pointer hotspot */
      OfsX, OfsY,        /*  Approximate distance from eye to pointer */
/* Yow! Area fills! Warning - the magic numbers may not be quite right */
WORD buffer[75];
struct AreaInfo AreaInfo;
struct TmpRas TmpRas;

#define RASWIDTH   80
#define RASHEIGHT  40
PLANEPTR raster;

void CloseStuff()
   if (raster) FreeRaster(raster, RASWIDTH, RASHEIGHT);
   if (window) CloseWindow(window);
   if (GfxBase) CloseLibrary((struct Library *)GfxBase);
   if    (IntuitionBase)    CloseLibrary((struct    Library *)IntuituonBase);

void OpenStuff()
   struct Preferences pref;
   IntuitionBase       =        (struct IntuitionBase *)OpenLibrary("intuition.library", 0);
   if (!IntuitionBase) CloseStuff();
   GfxBase            =           (struct     GfxBase *)OpenLibrary("graphics.library", 0);
   if (!GfxBase) CloseStuff();
   window = OpenWindow(&newwindow);
   if (!window) CloseStuff();
   raster = AllocRaster(RASWIDTH, RASHEIGHT);
   if (!raster) CloseStuff();

   /* Get the offset of the pointer's 'hot spot'. */
   GetPrefs(&pref, sizeof(struct Preferences));
   PrefsX = pref.XOffset;
   PrefsY = pref.YOffset;

   window->RPort->TmpRas  =   InitTmpRas(&TmpRas,   raster,

   /* Pick a semi-random eye color */
   /* I changed it to  a  constant  colour  since  the long
pupil looked better */
   EyeColor = 3;

/* From "Assembler Language Programming  S/370", 2nd Ed, by
Struble, pg 341 */
long sqrt(n)
long n;
   long x0, x1;

   x0 = (1 + n) / 2;
   for (;;) {          /* A vaguely Newton-ish iteration */
      x1 = x0 + ((n / x0) - x0) / 2;
      if (x1 >= x0) return(x1);
      x0 = x1;

/* Store previous position */



By Sean Kiss

The Executive Board Meetings which were begun with the 1989 administration were an excellent idea. They allowed the officers to get ideas in mind for the up-coming meeting and to share any problems they were having with fulfilling the responsibilities of their office. It also allows them to focus in on subjects which would be impossible to do during a General meeting and to discuss hardware purchases and other matters user to increase the attractiveness of the group to outsiders.

It seems as though the new President, Todd Rooks, plans to continue this practice and also to open it to the general membership. This would allow you to be present and discuss any subjects brought up in the Officer's Meeting. However, they will still have the last vote, but your presence and comments may be able to persuade or delay an important decision.

As Todd stated in his article, "Only YOU will make things happen...Stand up an be counted as having contributed..."


All of us from the Memphis Amiga Group wish to welcome the following new member:

David G. Plunk


Publisher: Sega
Type: Arcade Shoot-em-up
Cost: $35-$40
Copy Protected

Get your joystick ready, sit down in your favorite chair, and hold on cause this game is non-stop action. Your mission, if there really is one, is just to shoot down the enemy. And everything you see is the ENEMY, there just isn't any friendliness on this mission.

According to the instructions you have an F-14 Thundercat?. no not Tomcat, and it is armed with all the weapons you could or should ever want. You have a Vulcan 20mm Cannon with as far as I can tell unlimited ammunition, and a whole bunch of air-to-air missiles. You can fire missiles and/or the cannon at the bad guys, and there are plenty of bad guys.

This is a pure shoot-em-up, not even a hint of flight simulator, in other words no thinking required. The first time I played it I was a little disappointed, however this game begins to grow on you. The game speed is fast, and the speed at which your jet reacts is just as fast. Game play is mindless, but sometimes it is nice not having to think, and just shoot. The graphics are OK but not spectacular, typical of all Sega games, but then, when nothing stays on the screen more than two seconds who notices details. There are several levels with different or at least slightly different scenery. Although I never made it through all the levels, this is simple. If you are into fast action shoot-em-ups this if for you, if not leave it on shelf.

Speed -90- very fast
Playability -80- simple
Graphics -75- I would like to have seen nicer backgrounds
Docs -70- Docs? What Docs?
Sound -85- Nice Sound Track, and plays during game play.

Overall Midnight Rating *80*