BASIC XL / programming / commercial

From: Michael Current (aa700@cleveland.Freenet.Edu)
Date: 01/18/92-12:39:26 PM Z


From: aa700@cleveland.Freenet.Edu (Michael Current)
Subject: BASIC XL / programming / commercial
Date: Sat Jan 18 12:39:26 1992


Reprinted from A.C.E.C. BBS (614)-471-8559

     Software Review -- BASIC XL
     by Dr. Warren G. Lieuallen
      Reprinted from Fuji Facts
the newsletter of the Atari Computer
       Enthusiasts of Columbus

    At one point or another, most
Atari owners end up delving into
Atari BASIC for the purpose of
writing a program to accomplish a
certain task.  Some of them become
quite good, almost professional,
while others barely get past the
first few chapters of whichever book
they happened to pick up.

    Here in Columbus, we are rather
lucky, because Charles Brown is
teaching Atari BASIC to a devoted
group at each SIG meeting.  This
makes learning BASIC much less
painful.  But, as Charles himself
will tell you, there is a better way.

    There is another dialect of Atari
BASIC, available from OSS, Inc.,
called BASIC XL.  This version is
specifically for the 800 XL computer;
another modification called BASIC XE
is available for the 130 XE.  As has
been stated in reviews in several of
the popular magazines, BASIC XL is
the language which should have been
built into our machines in the first
place.  Why such high praise?  Read
on and see.

    As a program, and the programmer
with it, develops, certain functions
are thought of as an entire
subroutine, rather than the
individual commands.  In Atari BASIC,
there are a number of instances where
to accomplish what seems like a
simple operation requires a
subroutine composed of several lines
of complicated and confusing code.
BASIC XL solves this problem, mostly
by expanding the number and range of
available commands.

    Ever tried to use player/missle
graphics?  I did, once.  Although
there are several good sources for
learning how to correctly set all the
memory locations, and appropriately
use the players and missles, it is
overly disorganized and
"user-unfriendly".  In BASIC XL,
however, there are extra commands to
take all the work out of it, such as:
PMGRAPHICS to automatically perform
all of the mystic POKE's required,
and set aside the necessary memory
space; PMMOVE to easily move the
player to any desired location (and
quickly, too), which is a programming
feat unto itself in Atari BASIC; and
others, such as MOVE, or BGET to
simplify the definition of the shape
of the player, and BUMP to detect
collisions.

    Related to the use of
player/missles is the use of the
joysticks.  While the series of
numbers needed in Atari BASIC to
determine the position of the
joystick aren't that bad, wouldn't it
be simpler to just use a command like
IF HSTICK=1, or IF VSTICK=0?  There
is also built-in support of the light
pen via the PEN() command.

    Tired of typing all of those line
numbers (and often making mistakes
along the way!)?  BASIC XL will
automatically generate the line
numbers for you, as well as providing
other commands to renumber part or
all of the program.  Defined blocks
of the program can also be deleted,
which can be a real time-saver.

    Going crazy trying to format your
screen output correctly and
aesthetically?  BASIC XL supports the
powerful PRINT USING command, with
which pre-defined "masks" are used to
characterize the type of printing to
be done.  A wide variety of both
numeric and string definitions are
possible, again allowing for maximum
flexibility.  A full-featured TAB
command is also provided, adding to
the usefulness of this system.

    How about those frequent needs to
return to DOS for a little disk
maintenance?  Many of the DOS
commands are included as BASIC
statements, including:  RENAME,
PROTECT and UNPROTECT, DIR, and ERASE
(Delete).  Now there's no reason to
bother with MEM.SAV, and you don't
have to worry about saving your
creation every time you exit to DOS,
because now you won't have to exit
nearly as much.

    And let's not forget the feeling
of frustration when we realize that
our masterpiece contains at least one
bug (and almost always more!).
Debugging is never pleasant, but with
BASIC XL, it's less painful.
Commands such as TRACE, to trace the
program's path through the execution
of each and every line allows
specific localization of errors (By
the way, the error messages are in
English, rather than the cryptic
"ERROR 83".).  In addition, the LVAR
command will produce a list of all
the variables used in a program, and
the lines where each variable is
used.  This command alone has been
sold as a complete debugging utility
program.  If that weren't enough, the
listings produced are also easier to
read, due to indentation of
structured statements such as
FOR/NEXT, or IF...ELSE...ENDIF.

    There are many more commands in
BASIC XL which make programming more
enjoyable and understandable.  But
there are two more features which I
would like to mention, which deal
less with programming, and more with
using programs.

    Unlike some other supplementary
BASIC's for the Atari, BASIC XL is
compatible with Atari BASIC.  So all
of the programs which you already are
using will run under BASIC XL.  There
is even a specific command to insure
this compatibility.  So, the programs
which you currently have can be used
and improved easily.

    The final feature which I would
like to present is one of the more
exciting.  There is a command which
seems rather bland on the surface,
but which is surprisingly valuable.
This command is FAST.  As you might
guess, it acts to speed up the
running of BASIC XL programs.  It
does this by "remembering" the
location of each line number by doing
a quick pre-compilation of the code.
What this really means is that each
time there is a GOTO, GOSUB or
FOR/NEXT statement executed, it is
not necessary to start from line 1
and search all the way through to the
finish, thereby cutting the time
required to execute all GOSUBs and
GOTOs to a bare minimum.  This
feature, combined with all the
others, makes BASIC XL an excellent
value and a "must" for anyone
interested in serious BASIC
programming.

    Since this article's writing,
Turbo BASIC has appeared.  While
limited to XL and XE machines, Turbo
BASIC, while different, is just as
fantastic as BASIC XL.  And the price
just can't be beat (it's on
CompuServe in DL 3, and on an ACEC Disk of the Month!).


-- 
 Michael Current, Cleveland Free-Net 8-bit Atari SIGOp   -->>  go atari8  <<--
   The Cleveland Free-Net Atari SIG is the Central Atari Information Network
      Internet: currentm@carleton.edu / UUCP: ...!umn-cs!ccnfld!currentm
      BITNET: currentm%carleton.edu@interbit / Cleveland Free-Net: aa700


-----------------------------------------
Return to message index