Jump to content
IGNORED

OSS Action!


andylama

Recommended Posts

Ahoy CodeMonsters!

 

I want to revive my 6502 coding career, so I'm soliciting opinions:

 

- How does OSS Action! stack up as a programming language?

- Is it worthy?

- Fast?

- I've never seen it, so what does the general syntax & structure look like? (comparable to any other high-level language I'd recognize?)

- Anyone know where I might find a cart of it? ...what about the book(s)?

 

Thanks much!

 

andy

Link to comment
Share on other sites

Well, it all depends. Action! is a good procedural language, and is sort of a mix of BASIC and C (it sort of reminds me of GFA BASIC on the ST). The problem is, if you're wanting to write high-performance code, you'll always go back to ML. Without it, you just don't have the precise control needed for more than basic animation, and the size overhead of a compiled language may be a barrier. Also, Action! requires that the cartridge be in place to run your compiled code (unless you have the license ($) disk that has the run-time libraries). I think this was a major barrier to Action! being used on a large scale.

 

On the other hand, if I needed to code a quick app, or any low animation game on the 8-bit, I would seriously look at Action!. It does some things nearly as fast as ML, and is easier to debug.

 

Here's what it looks like (prime-number benchmark shamelessly ripped from an Action! review by Leo G. Laporte):


DEFINE	size "8190",

      ON = "1",

      OFF = "0"



BYTE ARRAY flags(size+1)



CARD count, i, k, prime, jifs



BYTE	secs, hunds,

    iter,

    tick = 20,

    tock = 19



PROC Prime seive()

  tick = 0

  tock = 0

  FOR iter = 1 to 10

     DO

     count = 0

     SetBlock (flags, size, ON)

     FOR i = 0 to size

        DO

        IF flags(i) THEN

           prime = i+i+3

           k = prime + 1

           WHILE k < = size

              DO

              flags(k) = OFF

              k = = + prime

              OD

           count = = + 1

        FI

        OD

     OD

  jifs = tick + 256*tock

  secs = jifs/60

  hunds = ((jifs MOD 60)*100)/60

  PrintF("%U.%U secs", secs, hunds)



RETURN

 

My verdict:

 

Almost anyone planning on coding on the 8-bit today is doing so to produce impressive software. 6502 ML is easy to learn, and working in other languages will just keep you from becoming a 6502 master. Growing up with the Atari, I did the same thing. I used different programming languages because I considered the learning curve on ML to be too steep (granted, there wasn't as much reference material available then). Only recently have I gone back and started working in pure 6502. Finally, everything about the machine makes perfect sense to me, and I'm hoping to crank out some game software soon.

 

Also... use an Emulator! Atari800WinPlus supports almost every hardware trick. I wanted to use MESS at first, because the debugger is SOOO good! (If anyone is listening... PLEASE incorporate a MAME-style real-time debugger into A800W+) but MESS is a mess, and it breaks easily. So, I use A800W+ and put a $02 byte in (locks up the CPU) when I want a breakpoint. :)

 

Anyway... I'm rambling. Best wishes for your programming career!

 

-Bry

Link to comment
Share on other sites

Thanks Bry!

 

Exactly the kind of review I was hoping for!

 

The syntax looks dead simple, but needing a runtime license in lieu of the actual cart?! Totally impractical! Fuhgetabowtit!

 

Looks like my best bet is going to be sticking to assembly. Ok with me.

 

Bry, do you do your coding in a PC emulator also? What assembler environment do you prefer? I read Russ Wetmore's old article and it sounds like he prefers Atari Macro Assembler.

 

Opinions?

 

Thanks again!

 

andy

Link to comment
Share on other sites

I personally like cc65 for programming trivial stuff on the Atari 8-bit. For one, it's ANSI C which is the programming language I know best, and you can mix C and assembly language object code easily.

 

It's a cross compiler, which means you write your code on the PC (windows or Linux) and you can debug it on the emulator if you want.

 

http://www.cc65.org/

 

If you are looking at programming in pure assembly you could do that in cc65 too, but there are other cross assembler packages out there like XASM and ATASM. I think its much easier to do all your programming on the PC, debug as much as you can in the emulator and then go to real hardware at the last.

Link to comment
Share on other sites

Thanks Bry!

 

Exactly the kind of review I was hoping for!

Glad to help.

The syntax looks dead simple, but needing a runtime license in lieu of the actual cart?!  Totally impractical!  Fuhgetabowtit!

Who knows.. maybe FTE put it in the PD like Sparta DOS. I dunno. Action! does isolate you from most other Atari programmers, though.

Looks like my best bet is going to be sticking to assembly.  Ok with me.

 

Bry, do you do your coding in a PC emulator also?  What assembler environment do you prefer?  I read Russ Wetmore's old article and it sounds like he prefers Atari Macro Assembler.

 

Opinions?

 

Thanks again!

 

andy

A lot of people seem to be using XASM on the PC. If you read the way back beginnings of the mailing list (okay, not really so far back), you'll see how popular it is. I'm currently using TextPad to edit, and TASM to assemble. Both are PC programs.

 

I've made an atari.h file with all the hardware equates, and a syntax coloring file for TextPad. I may look into other choices in the future.

 

Anyway, I have TextPad open with all my sources, and a DOS window open so I can assemble the project at will (a batch file allows me to do it with a one-letter command). Then I hit Alt-B in A800W+ and select the executable, and away it goes. I also have a Parallel-port to Joystick adapter I use to send the file to the 8-bit in a hurry.

 

I use OSS BASIC XE on the Atari from time to time to crank out a quick utility, but other languages might be better for this.

 

-Bry

Link to comment
Share on other sites

Hi Andylama,

 

I read, that the Action needs a active module, or a license disc.

 

If you want to have a easy and powerful language, why not try out QUICK? It´s as easy as Basic, but thanks it´s a compiler langauge like Action, you´ll get fast programmes just like in assembler.

 

But unlike Action, you´ll allways get a running programme. The runtime is merged to your file :)

 

If you want some examples of the Quick power, you can visit ma website (sorry for the German texts) and download some of our STARSOFT Magazines (or ECS or CCB). The whole menu programmes are written in QUICK. Also the TIF-to-PIC Converter is written in that Langauge.

 

There are some sources too available - in German "Quelltext" ;)

 

my Site

 

For some games in QUICK have a look at the site of MadButcher/Foundation Two, who has written some in Quick: Foundation Two

 

Also there will be a QUICK programme (or better Intro) on the next ABBUC-Magazine.

 

QUICK was given by ABBUC on the last "Sonderdisk"[/url]

 

If you want some help in this language, be free to contact me :D

Link to comment
Share on other sites

I remember playing a game or two that was writting in Action! back in the day... it didn't require a special disc for me to play it. I was under the impression that the runtime was free to distribute with any program you made with Action!, as long as you owned a legal copy, that is (yes, there is a disc based version out there... I had a copy myself).

 

If you do end up using Action!, the runtime is going to be the least of your problems. The bigger problem is using a language that only existed on one machine, and is now effectively dead. At least 6502 assembly was pretty widespread (Atari, Commodore, Apple, NES), and it's easy to find tons of references for it. You can even find the 6502 still being used today in the embeded market.

 

Personally, I would learn 6502 assembly if I was you, and maybe get a copy of Action! for your personal collection. But don't spend too much time on it :)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

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