Omnimaga

Omnimaga => News => Topic started by: squidgetx on November 22, 2012, 09:02:50 pm

Title: Axe Omega 1.2.0 released
Post by: squidgetx on November 22, 2012, 09:02:50 pm
Happy Thanksgiving! (if you're into that)

It's been over six months since the last Axe update. Quigibo's activity began to decline, and soon Axe development seemed to have ground to a halt. However, management of the project has been temporarily passed to Runer112, an extremely proficient assembly and Axe coder and responsible for many of the optimizations now thought standard by the community and for many of the speedy routines you can find in Axe 1.1.2.

After a lot of work, Runer112 has released a fresh update. The original post can be found here (http://ourl.ca/4060/325065).

Axe Parser
Omega 1.2.0



It's Thanksgiving, and this year, we can all give thanks for Axe living on! Just temporarily under new management. :)

New Features:
  • Have the need for speed? Using #ExprOn will request that all following code and called Axe routines be optimized for speed instead of size! Using #ExprOff does the reverse. Currently this only affects a few Axe routines (*, Pt-On(), Pt-Change(), DrawInv, Horizontal+/-, >Hex), but more will come! Axe Fusion always uses the fastest Axe routines available.
  • Continuing with the speed theme, DispGraphRecallPic has been added! It's the same as DispGraph and then RecallPic, but it's almost as fast as DispGraph alone.
  • Fixed point division! Syntax is: /*
  • Fixed point square! Syntax is: ²r
  • Labels and constant names can be up to 13 characters long!
  • No longer corrputs the OS when unlocking flash!
  • Even shinier commands list! BIG thanks to jacobly! I'm also trying to add size and speed data for everything; it's a work in progress, so please excuse errors/missing values for now.
  • Full support for big endian variables.
  • Signed min() and max(): just throw on an r.

Changed:
  • Better string parsing, including spelling out multi-character tokens, more reliable "var", and "grp" (w) is now "tmp"; these arbitrary-size variables will be automatically deleted on exiting.
  • Optimized most DispGraph variants: all but 4-level DispGraphClrDraw are smaller, which is larger because...
  • 4-level DispGraphClrDraw is about 15% faster. Also, 4-level DispGraph is about 5% faster.
  • Optimized >Hex, stdDev(), Horizontal-(EXPR), getKey(EXPR), -1, interrupts, and all archived variable routines slightly.
  • Optimized more stuff that I forgot.
  • nib{}r now always reads from the half of memory your code exists in.
  • inData(0,DATA) now returns 0, so no more adding 1 to all your key checks!
  • ln(0) now returns -1, it seems slightly more proper than 255.
  • Disp >Tok accepts the same argument type as Text >Tok.
  • Added "signed" equal and not equal operators.
  • Added optimizations for ^10, //0, and //-1, not that the latter two will ever be needed.
  • The A-theta variables have been moved, so L1 is now 768 bytes long by default.
  • When pointed into a variable in RAM, the Y1T and Y2T variables will be updated automatically if the variable is moved.
  • The X1T and X2T variables will act similarly when pointed into a VAT entry.
  • The X4T-Y6T variables have been added.
  • Slightly larger but faster multiplications by some large powers of 2.
  • Fixed a bug when a string displayed in an app went offscreen.
  • Fixed drawing sprites to arbitrary buffers.
  • Fixed rectangle clipping.
  • Fixed the size of the stdDev() subroutine.
  • Fixed some Axe fusion-related bugs.
  • Fixed some bugs with the token hook.
  • Fixed some bugs with comments.
  • Fixed some peephole optimization bugs.
  • Fixed a silly typo in an error message.
  • Fixed many errors in the command list.
  • Fixed many other bugs that I forgot about.
  • And probably introduced some bugs!

Title: Re: Axe Omega 1.2.0 released
Post by: Juju on November 22, 2012, 10:23:23 pm
Yay \o/
Title: Re: Axe Omega 1.2.0 released
Post by: epic7 on November 22, 2012, 10:47:06 pm
Nice, Runer! /me feels like he should do some more z80 programming
Title: Re: Axe Omega 1.2.0 released
Post by: Streetwalrus on November 23, 2012, 02:02:28 am
:w00t:
Title: Re: Axe Omega 1.2.0 released
Post by: aeTIos on November 23, 2012, 02:03:13 am
Yay :D Only problem... I can't send stuff to calc anymore. Did the syntax change a lot?
Title: Re: Axe Omega 1.2.0 released
Post by: Matrefeytontias on November 23, 2012, 02:33:53 am
Also, did the app format change ? If so, I'll need to reprogram my PageSwap axiom.
Title: Re: Axe Omega 1.2.0 released
Post by: Builderboy on November 23, 2012, 02:51:10 am
I seem to be having strange problems with an Invalid-Token error that pops up randomly D:
Title: Re: Axe Omega 1.2.0 released
Post by: Eiyeron on November 23, 2012, 08:41:29 am
Yay! :D... BUilderboyd? D:
Title: Re: Axe Omega 1.2.0 released
Post by: Runer112 on November 23, 2012, 10:59:28 am
Yay :D Only problem... I can't send stuff to calc anymore. Did the syntax change a lot?

What can't you send to your calc any more? And what linking software do you use? I was a little worried about the ability to send Axe itself because I changed it's header, but I checked and it still seemed to work fine for me with TI-Connect. I'm a little surprised that it has prevented you from sending other things to your calculator.


I seem to be having strange problems with an Invalid-Token error that pops up randomly D:

Is there any of discernible pattern at all? Fixing an error that pops up entirely randomly is nigh impossible, unfortunately. If it happens frequently when compiling one program, perhaps send it to me and I'll try compiling it over and over to reproduce (and hopefully fix) the error.




Anyways, I hope you guys like the new version of Axe! It did require a good amount of work, and a good amount of staring at existing code, but it seems that for the most part I could add a decent array of new features, and hopefully I successfully removed more bugs than I added! As for more updates down the road, I can't make any guarantees, but I hope that the next update will be a lot less than nine months after 1.2.0. :)

And remember, the Bug Reports (http://ourl.ca/4072) thread exists for a reason. :P
Title: Re: Axe Omega 1.2.0 released
Post by: shmibs on November 23, 2012, 12:06:00 pm
the Invalid-Token thing has been happening for quite some time, and there doesn't seem to be any discernible pattern. trying to compile something could lead to the error popping up twice in a row and then finally compiling successfully on the third try, for example.

oh, i did notice one thing that i've never seen before, though. trying to compile an app that already exists on the calculator usually just overwrites the old one successfully. however, this last time i tried it crashed immediately after "defragmenting".
Title: Re: Axe Omega 1.2.0 released
Post by: Keoni29 on November 23, 2012, 01:53:39 pm
Yay some speed improvements. I really hope that you guys will be able to port all of this goodness to the new color model! We really need a C SE emulator though.
Title: Re: Axe Omega 1.2.0 released
Post by: Eeems on November 23, 2012, 02:00:34 pm
We need more information on the C SE before we can even make an emulator for it ;)
Title: Re: Axe Omega 1.2.0 released
Post by: apcalc on November 23, 2012, 03:49:48 pm
Nice to see a new release!  Axe is great! :)
Title: Re: Axe Omega 1.2.0 released
Post by: Runer112 on November 23, 2012, 04:43:55 pm
oh, i did notice one thing that i've never seen before, though. trying to compile an app that already exists on the calculator usually just overwrites the old one successfully. however, this last time i tried it crashed immediately after "defragmenting".

I couldn't replicate this issue on either my 83+BE or my 84+SE, both through Wabbitemu and on real hardware. Can you try this again to make sure it wasn't just a one-time thing? If it happens again, I might suggest resending the operating system (yeah I know it's a drag), and if it still happens again, then we know we've got a real bug on our hands.
Title: Re: Axe Omega 1.2.0 released
Post by: shmibs on November 23, 2012, 05:05:04 pm
i can't replicate it either, so one time error it is, i suppose.
Title: Re: Axe Omega 1.2.0 released
Post by: nikitouzz on November 24, 2012, 04:21:54 am
it's very cool tahnks more runer112 :)

do you coorect the bug on function : pt-get() ?
Title: Re: Axe Omega 1.2.0 released
Post by: Keoni29 on November 24, 2012, 07:23:39 am
We need more information on the C SE before we can even make an emulator for it ;)
Indeed: an OS dump and info on the asic.
Title: Re: Axe Omega 1.2.0 released
Post by: Runer112 on November 24, 2012, 11:49:21 am
it's very cool tahnks more runer112 :)

do you coorect the bug on function : pt-get() ?

Erm... what bug with pt-Get()?
/me hopes he didn't completely forget to fix a reported bug
Title: Re: Axe Omega 1.2.0 released
Post by: DJ Omnimaga on November 24, 2012, 04:04:53 pm
Thanks Runer and Quigibo for all your work on Axe :)