Jump to content
IGNORED

OSS ACTION! programming language


Gury

Recommended Posts

Does anybody know (maybe you, Carsten?) if there are any copyright issues to use ACTION! language as development tool? Of course, for non-commercial use. This is excellent programming language, nearly as fast as assembly language, in some instances even with same speed. It is structured (procedures, functions), has Pascal and C style statements and also assembler can be used inline. I like integrated editor, but you can also use any PC text editor for source code and import listings in Action! editor with it's load command. I just miss CASE (as many IFs can lead to confusion) statement and floating point arithmetics.

 

There are many links for this amazing tool:

http://www.strotmann.de/twiki/bin/view/APG/LangACTION

http://joyfulcoder.net/atari/action/

http://retrobits.net/atari/actanalogreview1.shtml

http://retrobits.net/atari/actanticreview1.shtml

http://en.wikipedia.org/wiki/Action_programming_language

http://www.atarimagazines.com/hi-res/v1n4/action.php

http://retrobits.net/atari/action.shtml

Link to comment
Share on other sites

Stand-alone programs = no issue.

 

If I remember correctly, they also had the runtime libs licenced to be freely included with commercial software too.

 

In any case, it's a non-issue due to the fact it's been considered Abandonware for almost 15 years by now.

Link to comment
Share on other sites

Does anybody know (maybe you, Carsten?) if there are any copyright issues to use ACTION! language as development tool? Of course, for non-commercial use. This is excellent programming language, nearly as fast as assembly language, in some instances even with same speed. It is structured (procedures, functions), has Pascal and C style statements and also assembler can be used inline. I like integrated editor, but you can also use any PC text editor for source code and import listings in Action! editor with it's load command. I just miss CASE (as many IFs can lead to confusion) statement and floating point arithmetics.

 

IANAL, but I think there is no Copyright issue to create programms with the ACTION! Cart. It is still not allowed to reproduce the ACTION! Carts, although it is abandonware. For the original runtime libararies, there are also free replacements.

 

It should also be possible to recreate the ACTION! language using a different compiler (a new, clean room approach, withou looking on disassebly from the cards compiler). For example it would be nice to have an ACTION! compiler for PC.

 

If you take a look on the ML output of the ACTION! compiler, you will see that the quality of the compiler is amazing. It's the fastest and smallest I've seen so far.

 

Sidenote: I have a similar Compiler for MS-DOS for a language called FAST (Shareware from 1990) written by Peter Campbell. That is of similar quality as ACTION!. If someone wnats a copy, send me an E-Mail/PN.

 

As for the missing "CASE", you can have something similar to "CASE" using IF and ELSEIF.

 

BYTE ch = $2FC

IF		  ch = 1 THEN .....
 ELSEIF ch = 2 THEN .....
 ELSEIF ch = 3 THEN .....
 ELSE		 		..... (default branch)
FI

 

or (high level hacking), use function/procedure pointer in an array (fast, but more obscure).

 

Carsten

Edited by cas
Link to comment
Share on other sites

Stand-alone programs = no issue.

 

If I remember correctly, they also had the runtime libs licenced to be freely included with commercial software too.

 

In any case, it's a non-issue due to the fact it's been considered Abandonware for almost 15 years by now.

Thanks for info Rybags, I am really glad that's so. Yes, I tested two runtime libraries for including with ACTION! It is possible to shrink the resulting exe code by eliminating some of core routines, but you must be careful to not remove too much functionality as it might not work correctly anymore unless you replace existing routines with alternative ones, which probably work even better.

Link to comment
Share on other sites

IANAL, but I think there is no Copyright issue to create programms with the ACTION! Cart. It is still not allowed to reproduce the ACTION! Carts, although it is abandonware. For the original runtime libararies, there are also free replacements.

 

It should also be possible to recreate the ACTION! language using a different compiler (a new, clean room approach, withou looking on disassebly from the cards compiler). For example it would be nice to have an ACTION! compiler for PC.

 

If you take a look on the ML output of the ACTION! compiler, you will see that the quality of the compiler is amazing. It's the fastest and smallest I've seen so far.

 

Sidenote: I have a similar Compiler for MS-DOS for a language called FAST (Shareware from 1990) written by Peter Campbell. That is of similar quality as ACTION!. If someone wnats a copy, send me an E-Mail/PN.

 

As for the missing "CASE", you can have something similar to "CASE" using IF and ELSEIF.

 

Carsten

O, thanks to you too Carsten :) It is truely amazing tool, yes. You site is excellent and ACTION! topics are really good linked with all those additional routines for including with ACTION! I really appreciate your work. I think ACTION! is programming language of my choice now :)

Link to comment
Share on other sites

Yeah, that's my memory of it too, though I haven't programmed in Action in 10 years. There is probably a statement to that effect in the Action docs. I have all my Atari stuff pulled out of the closet in preparation for an impending move, so I'll check it when I get home.

 

Stand-alone programs = no issue.

 

If I remember correctly, they also had the runtime libs licenced to be freely included with commercial software too.

 

In any case, it's a non-issue due to the fact it's been considered Abandonware for almost 15 years by now.

Link to comment
Share on other sites

We all Know Action! is a great language for Atari 8bit. But, everything has cons, and I never heard something negative with Action. What could be the cons about this language? i.e. could create projects using aditional 130XE memory?

 

Maybe, im wrong, but never I've seen a rich, arcade and complex game written with Action! , What are the best commercial examples? I only remember games like ROTO.

Edited by Allas
Link to comment
Share on other sites

We all Know Action! is a great language for Atari 8bit. But, everything has cons, and I never heard something negative with Action. What could be the cons about this language? i.e. could create projects using aditional 130XE memory?

 

Maybe, im wrong, but never I've seen a rich, arcade and complex game written with Action! , What are the best commercial examples? I only remember games like ROTO.

 

I've seen a lot of utilties written in ACTION!, even big ones (like C-Kermit, BBS-Systems). Catapill is an unfinished game in ACTION!. I think everything that is possible in pure Assembler can also be done in ACTION!, including access to 130XE extended Memory via Bankswitching. However, as with Assembler, the Programmer needs to know what he/she is doing.

 

Some of the MHS-Games (published in Germany) are written in ACTION!

see Atarimania List of MHS Games

 

Best regards

 

Carsten

Link to comment
Share on other sites

And finally, for the Action! popularity is necesary to get the manual. Im sure many people have the original manual, but there is not a electronic copy in the web. The links added in this post are very interesting, but only the manual could revealed the complete posibilities.

Link to comment
Share on other sites

And finally, for the Action! popularity is necesary to get the manual. Im sure many people have the original manual, but there is not a electronic copy in the web. The links added in this post are very interesting, but only the manual could revealed the complete posibilities.

I posted ACTION! manual some time ago in this thread:

http://www.atariage.com/forums/index.php?showtopic=89725

Link to comment
Share on other sites

And finally, for the Action! popularity is necesary to get the manual. Im sure many people have the original manual, but there is not a electronic copy in the web. The links added in this post are very interesting, but only the manual could revealed the complete posibilities.

 

ABBUC has an authorized german translation of the ACTION! Manual available online. The german translation is also still available in print

 

German ACTION! Manual

Link to comment
Share on other sites

How do I check free memory in ACTION!? I tried memory address 106 and get 96 free memory pages. Is this location of any use in ACTION!? If not, what alternative do I have? I mean... like ? FRE(0) in ATARI BASIC. I think for larger project it is better to compile listings directly from disk, but anyway.

Link to comment
Share on other sites

APPMHI ($E,$F) should contain the highest address used by an application. It has to be maintained by the application, and checked against the required DList base when a screen is opened.

 

MEMTOP ($2E5,$2E6) should contain the highest free RAM address (usually the byte before the start of Display List). It is set by the OS when a screen is opened.

Link to comment
Share on other sites

How do I check free memory in ACTION!? I tried memory address 106 and get 96 free memory pages. Is this location of any use in ACTION!? If not, what alternative do I have? I mean... like ? FRE(0) in ATARI BASIC. I think for larger project it is better to compile listings directly from disk, but anyway.

 

Check out this little utility, a must have for ACTION! Programmers :)

http://www.strotmann.de/twiki/bin/view/APG/ActionInfoLine

 

It's open source, the you can take a look on the source to see how to get info on the Memory the ACTION! Programm is using.

 

Carsten

Link to comment
Share on other sites

That's what I wanted, InfoLine is really nice tool, thanks.

 

I noticed when using runtime library for stand-alone programs, you can remove unused functions and procedure, resulting in smaller executables. But you must be very careful not to remove to much functionality as program could not compile or work any more.

Link to comment
Share on other sites

  • 1 month later...

Carsten, can you give me some short explanation? In SPACE newsletter ACTION! tutorial, http://space.atari.org/news9508.html, author explains what you must be aware of when making program without the

need of cartridge installed.

 

I am aware runtime library replaces cartridge library, but he indicates you MUST not use any multiplication or division. For this there are replacement routines in runtime library, but that means no use of *, /? The shift routines have similar issues, with no more than 4 shifts at a time. He also states that you can't use routines with more than 2 parameters, he advices using array where all necessary values can be retrieved by function.

 

I made some examples, using graphics routines of my own with more than 2 parameters (4, more exactly), and the program worked without any problems. It appears your alternate runtime fixes this problem? I also noticed the use of =*, which simply means ACTION! parameters are maintained directly from the Accumulator and X register. This is great feature.

 

Thanks for any reply,

Gury

Link to comment
Share on other sites

Carsten, can you give me some short explanation? In SPACE newsletter ACTION! tutorial, http://space.atari.org/news9508.html, author explains what you must be aware of when making program without the

need of cartridge installed.

 

I am aware runtime library replaces cartridge library, but he indicates you MUST not use any multiplication or division. For this there are replacement routines in runtime library, but that means no use of *, /? The shift routines have similar issues, with no more than 4 shifts at a time. He also states that you can't use routines with more than 2 parameters, he advices using array where all necessary values can be retrieved by function.

 

I made some examples, using graphics routines of my own with more than 2 parameters (4, more exactly), and the program worked without any problems. It appears your alternate runtime fixes this problem? I also noticed the use of =*, which simply means ACTION! parameters are maintained directly from the Accumulator and X register. This is great feature.

 

Thanks for any reply,

Gury

 

Hi Gury, I have seen this information somewhere else. I'm pretty sure it is a description of how to write Action! code that does not need the cartridge nor a runtime library, which is why it mentions avoiding library calls and multiplication. If you look back at Larry Seflaten's tutorial it states to limit parameters to two BYTES, not two PARAMETERS.

 

To change the subject (a little), I was recently informed, by a good friend, that there is a bug in the Action multiplication routine. It involves CARD types. If the result, final or intermediate, of a multiplication operation should result in a number greater than 32767, then that value will be erroneous. (See technical note page 63 of version 3.6 Action Ref. Manual),

 

This error applies to the multiply function built into the Action cartridge and may or may not have been corrected in one or more of the runtime libraries.

 

- Steve Sheppard

Link to comment
Share on other sites

You are right, a8isa1. To multiply two numbers (when creating independent code without cartridge), it's better to use your own routine or that in one of alternate runtime libraries, such as MultiplyBy or something. One of them is taken from the book Atari Roots. On the issue of parameters... So, in the procedure calls, you can use any number of parameters, each limited max. to 2 bytes. I thought he means the total of all parameters must be 2 bytes. That would be horrible :twisted:

Link to comment
Share on other sites

Definitely it is necessary to test and be aware all possible traps in making independent Action! executables. I tested it and for now with good success. If parameters were the issue, arrays passed to procedures are another solution to this as Larry suggests.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...