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.