[net.micro.atari] Action Programming

bob@imsvax.UUCP (Bob Burch) (12/17/85)

   Action is a fantastic programming language.	It is similiar to Pascal
and c.	It runs under a cartridge environment having its own editor and
compiler.  The Action compiler is extremely fast.  It can compile source
code from memory, disk, or both.  The compiled code is true 6502 machine
language; not interpreted P-code like so many other "compilers".

   The reason that Action-written programs must run in the cartridge
environment is that all Action internal routines (i.e. Graphics, Print,
Locate, etc.) are linked to the corresponding cartridge address for those
routines.  O.S.S. provides a *Non-Commercial Run-Time Library* that is
simply the source code for each of the Action internal routines.  Compiling
your program with the Run-Time Library *included* will produce object code
that will execute in the Atari native environment without need of the
Action cartridge.  The Non-Commercial Run-Time Library can only be obtained
by directly contacting OSS.  (approx. $30.00 on last check).  With the
Run-Time Library, you can write Action programs and "give" them to your
friends or distribute in the Public Domain.  P.D. is a pre-condition OSS
places on the Non-commercial Run-Time Library.	For developers wishing to
market Action based software, OSS has a Commercial Run-Time Library
License available.

   The Action cartridge supports integer arithmetic having single byte
and double byte, signed and unsigned, variable types.  The Action cartridge
does NOT support REAL variable types.  This is a real BOO! (or should I say
an integer BOO!!).  To compensate, OSS offers an Action Tool-Kit ($19 from
Software Discounters of America,Antic 1/86).  The Tool-Kit has, among other
things, a set of routines supporting REAL variable types.  The routines merely
provide the hooks into the Atari OS to perform real number computations.  They
do not constitute a differing representation or implementation of real numbers.
As such, they are a definite *kluge*.  For example, one cannot say:

    CIRC = DIAM * 3.14159

One has to say:   (syntax may not be perfect)

    RealAssign("3.14159",rpi)
    RealMult(DIAM,rpi,CIRC)

Obviously, one cannot readily compute complex equations in this manner.

   Action does support a great RECORD and POINTER implementation.  Almost
anything that can be done in Pascal or C with pointers can be done in
Action.  A bit of a warning, pointers can go flying off into never-never
land since Action has no bounds checking.

   I purchased my Action system (cartridge, tool-kit, and run-time library)
about a year ago.  Since then, my Atari has become a NEW machine.  Previous
to this purchase, I had not so much as turned-on my Atari for over 2 years.
I had been bored by the slowness of Basic, and frustrated by the tedium of
assembly.  Action solves both problems

-- Bob Burch

P.S.  A Basic program randomly displaying 1,000 asterisks in Gr.0 takes
      about 2 minutes to display.  With Action the same program takes
      7 seconds.