Omnimaga

Omnimaga => News => Topic started by: DJ Omnimaga on March 11, 2010, 05:27:13 am

Title: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: DJ Omnimaga on March 11, 2010, 05:27:13 am
(http://www.omnimaga.org/images/screenshots/axe_13.gif)(http://www.omnimaga.org/images/screenshots/axe_14.gif)

Those who are active on Omnimaga forums are probably alerady aware of this, but for those who aren't, Kevin Horowitz A.K.A. Quigibo, who made ticalc front page with Pyoro for the TI-83 Plus (http://www.ticalc.org/archives/news/articles/14/145/145740.html) 2 months ago, has been working on a new programming language for the same calculator platform: Axe.

Axe is a programming language that is similar to TI-BASIC, but oriented for arcade game development. Unlike TI-BASIC, however, the language is compiled into z80 ASM using the Axe Parser, which is a flash APP where you select the program you want to compile. While it is not as fast as straight assembly, it runs much faster than TI-BASIC. The only current downside is that the compiled programs are larger than the source (unless it contains mostly sprite data). To write your programs, you simply use the TI-83 Plus BASIC editor like if you edited a regular TI-BASIC program. Once you're done, you back up your progress in case you did errors, archive your source (as for today, the parser can compile archived programs), run Axe.8xk, then select your program to compile. Compiling is done very fast. Then you run Asm(prgmLOL. In later versions you will obviously be able to name the compiled file yourself. This is one advantage of Axe: it can be programmed directly on the calculator, and because it uses the TI-BASIC editor, not a custom one, you can even use TI-Graph Link or another PC program editor to edit your code. This also means that you can open your source code in Cemetech's SourceCoder (http://www.cemetech.net/projects/basicelite/sourcecoder2.php), for easy posting on internet forums.

Another big advantage of this new language is that for a TI-BASIC programmer, the learning curve is quasi-nonexistent. The language main features are so similar to TI-BASIC that in some cases, you may be able to compile a pure BASIC game with Axe without even having to modify a single line of code! That's unless, of course, you venture in the more advanced features, such as sprites, pointers and inline assembly support. There are also differences such as the "Then" instruction not being needed (if present, a compiling error will be thrown), coordinates being inverted for Pxl-On/Off/Change/Test and Text commands and the language supporting 2 bytes integers rather than floating points (which means numbers within a 65536 range with no decimals, but takes less memory and processing power). It is recommended that you know TI-BASIC before learning this language, then read the documentation included with the download.

The other advantage, while not matching the power of pure assembly programming, is the speed. In some cases, your compiled games will run 100 times faster than if they were done in pure-BASIC or with xLIB/CelticIII. The animated screenshots below shows Axe programs in action (most runs at much higher framerate than shown in the animated gifs). Some are animations but most show games in action (that are avaliable for download if you look carefully in the Axe project sub-forum). The framerate is much higher on emulators and on a real calculator.

(http://www.omnimaga.org/images/screenshots/axe_5.gif) (http://www.omnimaga.org/images/screenshots/axe_6.gif)

(http://www.omnimaga.org/images/screenshots/axe_7.gif) (http://www.omnimaga.org/images/screenshots/axe_8.gif)

(http://www.omnimaga.org/images/screenshots/axe_9.gif) (http://www.omnimaga.org/images/screenshots/axe_10.gif)

(http://www.omnimaga.org/images/screenshots/axe_11.gif) (http://www.omnimaga.org/images/screenshots/axe_12.gif)

(http://www.omnimaga.org/images/screenshots/axe_1.gif) (http://www.omnimaga.org/images/screenshots/axe_2.gif) (http://www.omnimaga.org/images/screenshots/axe_3.gif)

In the following screenshot, a TI-BASIC program is ran normally, then the code is edited slightly to be compilable with the Axe Parser. After errors are fixed, the program is finally compiled, then the ASM file ran with the Asm() command. Notice the drastic speed difference!
(http://www.omnimaga.org/images/screenshots/axe_4.gif)

As for downloads, this project has been advancing at a rapid rate compared to many similar projects in the past (such as the defunct MLC (http://ourl.ca/2617)) and there are alerady several builds that have been released to public. The latest version, at the time of writing this news article, is 0.1.1, and can be downloaded right here (http://www.omnimaga.org/index.php?action=dlattach;topic=1463.0;attach=844)! It includes Axe.8xk, some sample programs including a clone of Game Of Life (shown above), all supported commands list, optimizing tutorials and information about the advanced features. All past, present and future versions can be downloaded in the following topic:

http://ourl.ca/4060/78770#new


The entire project discussion, which started only a month ago but grew at an insane rate and even spawned interest outside Omnimaga, can be found here:

http://www.omnimaga.org/index.php?board=71.0

In the link above you will also be able to find plenty of game demos by the Omnimaga community, including our staff, avaliable for download, lot of help, support and routines. Bug reports are also done there.

Builderboy has started working on a 2D clone of the popular Portal game, but this time in Axe language. His version is called Portal X and can alerady be seen in the screenshots above (3rd row, 1st column). His sub-forum can be found here (http://www.omnimaga.org/index.php?board=87.0)!

Check for more updates soon and don't hesitate to give Axe Parser a try!
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: mapar007 on March 11, 2010, 10:33:35 am
Do I see a CGOL program there?

A w e s o m e. Absolutely. Great!
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: Radical Pi on March 11, 2010, 12:50:37 pm
I'll never cease to be amazed with the things you people can do with a graphing calculator. If this is what we can do ten years after the 83+ came out, what kinds of things will we be doing after twenty years?
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: DJ Omnimaga on March 11, 2010, 01:35:09 pm
Do I see a CGOL program there?
Yep
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: Quigibo on March 11, 2010, 03:55:09 pm
And to think I was going to work on this in secret until I finished a final version... I thought no one would be interested in an unfinished programming language because everyone would just complain about lack of features until the final version anyway.  I was really wrong about that.  I think giving mini releases has helped me get really good feedback and keeps me motivated.

Thanks for the news feature on this!  I hope to have a stabler beta release in a few weeks, as opposed to just an alpha.
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: Builderboy on March 11, 2010, 05:25:48 pm
Yay!  I can't wait for a stable version to be releases to TiCalc.  The comunity will explode with awesomeness!!

* Builderboy Glomps Quigibo *
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: {AP} on March 11, 2010, 05:34:24 pm
xD
I just noticed you used Builderboy's and my logos for the article. Nice~
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: trevmeister66 on March 11, 2010, 06:15:24 pm
axe is simply amazing... The possibilities are endless, and it's only the early stages. I cant wait to see a beta release!
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: ztrumpet on March 11, 2010, 07:02:42 pm
Axe is awesome.  It's really fast and easy to code with.  Also, if this is only an Alpha, then imagine what the full version will have...
Oh, and once you're done imagining, post your ideas here: http://ourl.ca/4057 ;D
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: SirCmpwn on March 11, 2010, 07:28:49 pm
*clap* *clap* *clap* *clap*
This is amazing.  You have done a fine service to the community.
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: Ranman on March 11, 2010, 10:08:51 pm
This is an amazing project!

I hope to see people using this very soon.  :)
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: AaroneusTheGreat on March 11, 2010, 10:57:45 pm
Man I'm beyond glad to see something like this. I've been wanting to program more for the z80 calculators (again), and this may be the deciding factor of getting back into it. I've always loved the basic programming language because of it's ease of programming, and I used it for a while, but when I discovered the speed of ASM I more or less abandoned my TI-Basic career (this was before any of the ASM libraries for BASIC came out (I know I'm a dinosaur aren't I?)). (Wow lots of parentheses in this post.)

What this reminds me of is a usable, fast, and simple version of Visual Basic, except for the 83+ series. Also you beat VB because you have a program that makes a single executable file, not a folder of a bunch of objects and crap that you have to sift through to find your executable, or set a setting to make a single file. Excellent work.
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: DJ Omnimaga on March 12, 2010, 12:30:54 am
And to think I was going to work on this in secret until I finished a final version... I thought no one would be interested in an unfinished programming language because everyone would just complain about lack of features until the final version anyway.  I was really wrong about that.  I think giving mini releases has helped me get really good feedback and keeps me motivated.

Thanks for the news feature on this!  I hope to have a stabler beta release in a few weeks, as opposed to just an alpha.

Well, to be fair, when I first looked at your ticalc profile and saw in your bio that you were working on a project like this, I was very skeptical, because I have been part of the TI community for almost a decade now and I saw how all these projects turned out. Usually, people were just too ambitious and didn't realise how much work it is to work on such thing, so they caused lot of hype on forums and ticalc, announcing a new language for z80 calcs that everyone has been dreaming of, but these people did not even put a single line of code yet! In other cases, the person or one of the team member lost interest halfway through dev (such as with MLC) and the language never took off. As for MLC, on the Casio calcs you can alerady do amazing games, but on TI calcs the language never made it further than a title screen.

In other cases, the language was fully functional and builds were released, but the language, which was advertised as easy as BASIC, was not even easy at all. In some cases (such as TI Power, EZAsm and FastRPL), you still needed ASM knowledge to use them. It completly defeats their point. Notice how we barely see any game made with these on Ticalc.org either (altough maybe there are more and the author didn't give credits).

For BBC Basic, the language is easy, but the editor throws people away. BBC Basic is apparently quite easy to learn and program, though. That's a big plus it has.


Because of all this, when I IM'ed you about Pyoro in January/Feb, I did not really talk much about your language. However, as you talked about it, it became more and more interesting and after noticing you started small then gradually increased the complexity of the project, still making sure you can do it, I became more and more confident something functional and very useful would come out soon. I was happy that you announced the project on forums, since you can get suggestions and it is even easier for people to help in general (like bug reports).

Also, as said, I've been part of the community for almost a decade (specifically 8 years and 8 months, now) and I never saw any previous 3rd party language for the 83+ get this much attention and even hardcore ASM programmers praising it. I guess your language is really what BASIC programmers wanted since the beginning and you finally awnsered their wishes.

It is also the first TI language that attracted me that much so far.

BBC Basic is still quite cool, though. That's another example of language project that was well planned. I guess it probably just miss a syntax similar to TI-BASIC and/or a user-friendly on-calc editor
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: ACagliano on March 14, 2010, 03:52:43 pm
In Axe version 0.1.1, is there support for linking commands? Or if not, when will it be incorporated.
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: Builderboy on March 14, 2010, 04:35:43 pm
Not yet, although there is talk about implementing it in later versions.  It will not be for a while however.

welcome to Omnimaga too! :)
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: ACagliano on March 14, 2010, 05:59:07 pm
Thanks.

This is slightly off topic, but since linking is not in this, I need some advice. I am working on a Star Trek game, player v. player, over the link, where two players face each other's "ship". I need the two calcs to constantly get data from each other, like damage level, shields, position, any weapons fire, ect. I can't use the Get( or Send( commands because they require a pause or something to send data. The getting of the data must not interrupt the flow of the game. Any suggestions, besides write it in assembly, because the only thing I can do in assembly is crash my calc?
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: Quigibo on March 14, 2010, 06:49:11 pm
You can use some pre-made assembly routine so you don't actually have to write it yourself.
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: DJ Omnimaga on March 14, 2010, 06:56:01 pm
Heya and welcome here.

I think the ASM lib in question is that one:

http://www.ticalc.org/archives/files/fileinfo/368/36828.html

But there are several versions and spin-offs on ticalc, so idk which works better. I recommend using lists and sending the entire data stored in the list in one command instead of individual variables. Asm( command takes a while to process, so it has to be used as less often as possible in BASIC programs.
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: ACagliano on March 15, 2010, 10:10:11 am
Yeah. I have that on my calc. Thanks. One day, when I learn asm, or when Axe can do linking, I'll rewrite it.
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: SirCmpwn on March 15, 2010, 08:00:54 pm
I think the ASM lib in question is that one:

http://www.ticalc.org/archives/files/fileinfo/368/36828.html

I have to admit, that is a great library.  It's the best of its kind.  However, I wish they didn't lock you into using resource or whatever.  I wish they told you what needed to happen in terms of archive/unarchive and such so that you could use your favorite asm utility, and then told you one possible way, instead of only telling you their way.
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: ACagliano on March 15, 2010, 08:36:19 pm
I'm way off topic. Sorry guys. I'll open a new thread for this.
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: DJ Omnimaga on March 15, 2010, 08:43:45 pm
Well it is generally ok if the post is related to Axe in a certain way for example, but for help requests, they can sometimes easily be missed if asked in an existing topic or at the wrong location, especially during high activity periods or when few people visits the board (like in July or October)
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: Galandros on March 20, 2010, 04:14:19 pm
It is not even in the final release and already has attention on it.

The success now only depends in quality of the final Axe Parser and people releasing great projects with it. This is almost assured I think.
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: ACagliano on March 20, 2010, 04:43:49 pm
Axe is a great idea. I definitely will have use for it. And, once its in its final release, I plan on remaking my game with it.

I look forward to its final release.
How far off is that, by the way?
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: Quigibo on March 20, 2010, 05:07:12 pm
I think the final syntactical release of 1.0 will be around late May.  From that point on, the syntax will be locked and any further changes will just be to the GUI.  There are a lot of features I would really like to add like scrolling the source code to where the error is like how BASIC does it, but that involves key hooks and some really tricky coding.  Also things like editing archived programs, clearing ram from within an app, and running asm programs from within an app I eventually need.  I'll have to get a lot of help from some hardcore asm programmers and I'm not sure where to turn for that.  I could always try the chats and stuff I guess.
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: DJ Omnimaga on March 20, 2010, 11:06:59 pm
That sounds cool, just make sure to not add way too much either nor change way too much stuff, I mean, especially the old commands that are similar to TI-BASIC. Else, what I would suggest is an Axe Parser Lite and a regular Axe Parser, the former only including what fits in a 16 KB APP page and the later having more at the expense of memory requirements
Title: Re: Axe: a new TI-BASIC-like language for the TI-83+ and 84+
Post by: ztrumpet on March 21, 2010, 10:32:29 am
That's a good idea.  Quigibo, how much space is used in 0.1.2? :)