Hubbry Logo
search
logo

Action! (programming language)

logo
Community Hub0 Subscribers
Write something...
Be the first to start a discussion here.
Be the first to start a discussion here.
See all
Action! (programming language)

Action! is a procedural programming language and integrated development environment written by Clinton Parker for the Atari 8-bit computers. The language, similar to ALGOL, maps cleanly to the MOS Technology 6502 of the Atari computer without complex compiler optimizations. Fast execution speed of the resulting programs was a key selling point.

Parker, working with Henry Baker, had previously developed Micro-SPL, a systems programming language for the Xerox Alto. Action! is largely a port of Micro-SPL concepts to the Atari with changes to support the 6502 processor and the addition of an integrated fullscreen editor and debugger.

Action! was distributed on ROM cartridge by Optimized Systems Software starting in 1983. It was one of the company's first bank-switched 16 kB "Super Cartridges". The runtime library is stored in the cartridge; to make a standalone application requires the Action! Toolkit which was sold separately by OSS.

Action! was used to develop at least two commercial products—the HomePak productivity suite and Games Computers Play client program—and numerous programs in ANALOG Computing and Antic magazines. The editor inspired the PaperClip word processor. The language was not ported to other platforms.

The assembly language source code for Action! was made available under the GNU General Public License by the author in 2015.

Action! is one of the earlier examples of the OSS SuperCartridge format. Although ROM cartridges for the Atari could support 16 kB, OSS opted for bank-switching 16 kB, organized as four 4 kB blocks, mapped onto 8kB of address space. The lower 4 kB did not change, and system could bank switch between the other three blocks by changing the value in address $AFFF. This allowed for more RAM available for user programs.

Action! used this design by breaking the system into four sections, the editor, the compiler, a monitor for testing code and switching between the editor and compiler, and the run-time library. The run-time library is stored in the cartridge itself. To distribute standalone applications requires a separate run-time package which was sold by OSS as the Action! Toolkit.

Action! constructs were designed to map cleanly to 6502 opcodes, to provide high performance without needing complex optimizations in the one-pass compiler. For example, local variables are assigned fixed addresses in memory, instead of being allocated on a stack of activation records. This eliminates the significant overhead associated with stack management, which is especially difficult in the case of the 6502's 256-byte stack. However, this precludes the use of recursion.

See all
User Avatar
No comments yet.