This page (revision-270) was last changed on 26-Mar-2023 02:03 by Administrator 

This page was created on 20-Feb-2010 19:16 by Carsten Strotmann

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
270 26-Mar-2023 02:03 17 KB Administrator to previous
269 26-Mar-2023 02:02 17 KB Administrator to previous | to last
268 26-Mar-2023 02:01 17 KB Administrator to previous | to last
267 26-Mar-2023 02:00 17 KB Administrator to previous | to last ACTION Source Code ==> Action Source Code
266 26-Mar-2023 01:59 17 KB Administrator to previous | to last
265 26-Mar-2023 01:58 17 KB Administrator to previous | to last
264 26-Mar-2023 01:56 17 KB Administrator to previous | to last Remove links to delete manual pages
263 26-Mar-2023 01:22 17 KB Administrator to previous | to last Fix SF links
262 26-Mar-2023 01:21 17 KB Administrator to previous | to last
261 26-Mar-2023 01:18 17 KB Administrator to previous | to last Move manuals to Sourceforge

Page References

Incoming links Outgoing links
Action

Version management

Difference between version and

At line 4 changed one line
Action! uses a greatly cut-down version of the ALGOL68 syntax, and thus bears strong similarities with Pascal and C. Like those languages, Action! is procedural, with programs essentially being a large collection of functions that call each other. It lacked encapsulation or data hiding, but that is not a serious concern in the limited program size available on an 8-bit machine. Syntactically it looks very similar to Pascal, with the exception that it uses DO/OD style braketting rather than Pascal's BEGIN/END.
Action! uses a greatly cut-down version of the ALGOL syntax, and thus bears strong similarities with Pascal and C. Like those languages, Action! is procedural, with programs essentially being a large collection of functions that call each other. It lacked encapsulation or data hiding, but that is not a serious concern in the limited program size available on an 8-bit machine. Syntactically it looks very similar to Pascal, with the exception that it uses ALGOL68 DO/OD style bracketing rather than Pascal's BEGIN/END.
At line 6 changed one line
Action! included a number of features specifically intended to make it run as fast as possible. Notably, it's main data types were BYTE, INT and CARD, 8-bit and 16-bit signed and unsigned values, respectively. These map directly onto the basic 6502-types, and the language also included a simple syntax to directly refer to these objects in memory so they could be mapped into hardware registers. For instance, one could set a variable to "BYTE RTCLOK=20" which defined the 8-bit value at hex 20 to be the value of the real-time clock. The user could then read that register using the name "RTCLOK".
Action! included a number of features specifically to make it run as fast as possible. Notably, it's main data types were BYTE, INT and CARD, 8-bit and 16-bit signed and unsigned values, respectively. These map directly onto the basic 6502-types. The language also included a syntax to directly refer to these objects in memory so they could be mapped into hardware registers. For instance, one could set a variable to "BYTE RTCLOK=20" which defined the 8-bit value at hex 20 to be the value of the real-time clock. The user could then read that register using the name "RTCLOK".
At line 8 changed one line
Curiously, Action! did not include support for floating point types, although such support is built into the machine's OS ROM (see Atari BASIC for details) and available to any programming language. This is a significant limitation in some roles, although perhaps not for its target market. It also lacked most string handling, but made up for this somewhat with a PRINTF command that made formatted output easy.
Curiously, Action! did not include support for floating point types, although such support is built into the machine's OS ROM (see [Atari BASIC] for details) and available to any programming language. This is a significant limitation in some roles, although perhaps not for its target market. It also lacked most string handling, but made up for this somewhat with a PRINTF command that made formatted output easy.
At line 10 changed one line
''Editor's note: A version of Action! with support for a FLOAT type and a replacement floating point library like the ones in Fastchip or Turbo-Basic would be a very interesting project.''
Generally, Action! programs had performance on-par with reasonable-quality [assembler], while being much easier to program. In one review, it ran Byte's Sieve of Eratosthenes 219 times faster than Atari BASIC, while being only slightly longer than BASIC in source form, about a page. In comparison, the assembler version ran on for several pages. Such performance, combined with terse code and library functions to access much of the platform's hardware, made it suitable for action games while still having a simple format suitable for type-in programs. It deserved to be much more popular, and may have been had it been released earlier, or by Atari itself.
At line 12 removed 2 lines
Generally, Action! programs had performance on-par with reasonable-quality assembler, while being much easier to program. In one review, it ran Byte's Sieve of Eratosthenes 219 times faster than Atari BASIC, while being only slightly longer than BASIC in source form, about a page, compared to several pages of assembler. Such performance, combined with terse code and library functions to access much of the platform's hardware, made it suitable for action games while still having a simple format suitable for type-in programs. It deserved to be much more popular and may have been had it been released earlier, or by Atari itself.
At line 14 added 2 lines
''Editor's note:'' A version of Action! with support for a FLOAT type and a replacement floating point library like the one in [TURBO-BASIC XL] would be a ''very'' interesting project. A STRING type would also be useful!