Author Topic: Axe Parser  (Read 492071 times)

0 Members and 1 Guest are viewing this topic.

Offline Quigibo

  • The Executioner
  • CoT Emeritus
  • LV11 Super Veteran (Next: 3000)
  • *
  • Posts: 2031
  • Rating: +1075/-24
  • I wish real life had a "Save" and "Load" button...
    • View Profile
Re: Axe Parser
« Reply #525 on: April 30, 2010, 03:41:13 pm »
I had the file renamed in the update, so I think it reset the stats.
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55941
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Axe Parser
« Reply #526 on: April 30, 2010, 04:35:14 pm »
Strange x.x, cuz it says "Updated", not "Added". Maybe ticalc thought you meant this as an update and merged both Axe versions and it resetted the count x.x

Oh well, hopefully if it remains updated regulary, it may eventually convince them to feature it. I think if people here starts releasing their Axe game on ticalc.org too it might help. In my case I am waiting until Monday to see if I re-add Illusiat, ROL and Reuben series, Zelda DLQ, XXR and Metroid II Expansion at ticalc. Since a recent event, I was not sure yet about re-adding my files, but if this event never involves more than one or two person, I'll re-add them (they were initially removed after a major peak of such event involving a dozen of people).
« Last Edit: April 30, 2010, 04:40:21 pm by DJ Omnimaga »

Offline TravisE

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 182
  • Rating: +33/-0
    • View Profile
    • ticalc.org
Re: Axe Parser
« Reply #527 on: April 30, 2010, 08:17:10 pm »
Oh yeah, I think renaming a file on ticalc.org causes the number of downloads for that current week to be reset for whatever reason. I think that it says that somewhere in the FAQ, but I often forget about that myself.

When someone updates a file and wants it renamed, my usual procedure is to rename it, approve it, merge it with the old file that had the old filename, then manually mark it as an update. That's why it shows up as an update on the front page. (There's no way to automatically update and rename a file at the same time; it has to be done like that.)
« Last Edit: April 30, 2010, 08:20:59 pm by TravisE »
ticalc.org staff member—http://www.ticalc.org/

Offline Quigibo

  • The Executioner
  • CoT Emeritus
  • LV11 Super Veteran (Next: 3000)
  • *
  • Posts: 2031
  • Rating: +1075/-24
  • I wish real life had a "Save" and "Load" button...
    • View Profile
Re: Axe Parser
« Reply #528 on: May 02, 2010, 07:24:32 pm »
I finally finished rewriting the entire math engine.  The code was getting way too messy and especially with the addition of signed and unsigned versions of math operations.  It was making it way too complicated to optimize the code.  The parser code is now a lot more organized, smaller, faster, and uses fewer variables.  In addition, nearly all of my example programs became a few bytes smaller from my increased auto-opt list.  In my game of life example, it actually shrunk by 9 bytes (1.3% reduction) without changing any code, simply by compiling with the newer version!  Everyone will most likely see small drops in the executable sizes.  These aren't the big optimizations though.  Those will eventually come when I get to look-ahead parsing.

I'm going to focus on some new commands now.  I might have it ready by late tonight, but I'm not sure.  Don't expect too many new things, I spent most of my time swatting bugs and cleaning the code so that future versions will be easier to write.
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline Raylin

  • Godslayer
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1392
  • Rating: +83/-25
  • I am a certifiable squirrel ninja.
    • View Profile
    • Ray M. Perry
Re: Axe Parser
« Reply #529 on: May 02, 2010, 07:32:07 pm »
Very cool.

On a side note, I never really understood what an auto-opt was.
I read optimizations and that little table...

But, I think I missed the point of it.
Bug me about my book.

Sarah: TI-83 Plus Silver Edition [OS 1.19]
Cassie: TI-86 [OS 1.XX]
Elizabeth: TI-81 [OS 1.XX]
Jehuty: TI-83 Plus Silver Edition [OS 1.19]
Tesla: CASIO Prizm







Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55941
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Axe Parser
« Reply #530 on: May 02, 2010, 07:42:12 pm »
I finally finished rewriting the entire math engine.  The code was getting way too messy and especially with the addition of signed and unsigned versions of math operations.  It was making it way too complicated to optimize the code.  The parser code is now a lot more organized, smaller, faster, and uses fewer variables.  In addition, nearly all of my example programs became a few bytes smaller from my increased auto-opt list.  In my game of life example, it actually shrunk by 9 bytes (1.3% reduction) without changing any code, simply by compiling with the newer version!  Everyone will most likely see small drops in the executable sizes.  These aren't the big optimizations though.  Those will eventually come when I get to look-ahead parsing.

I'm going to focus on some new commands now.  I might have it ready by late tonight, but I'm not sure.  Don't expect too many new things, I spent most of my time swatting bugs and cleaning the code so that future versions will be easier to write.
cool! Glad to hear!

Do you think tile exporting (from pics) will be ready soon?

@Raylin: yeah same here. I asked Quigibo in the Axe Pages topic and he replied the following:

http://ourl.ca/4573/88037

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Axe Parser
« Reply #531 on: May 02, 2010, 07:49:53 pm »
I'm going to focus on some new commands now.

Bit getting/setting? ;D

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55941
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Axe Parser
« Reply #532 on: May 02, 2010, 08:13:21 pm »
I'm going to focus on some new commands now.

Bit getting/setting? ;D
I,m confused at what you mean, could you clarify ???

Offline Quigibo

  • The Executioner
  • CoT Emeritus
  • LV11 Super Veteran (Next: 3000)
  • *
  • Posts: 2031
  • Rating: +1075/-24
  • I wish real life had a "Save" and "Load" button...
    • View Profile
Re: Axe Parser
« Reply #533 on: May 02, 2010, 09:04:03 pm »
He means the native binary/bit support.  I'll see if I have time.  Probably not though, or it might only be partially ready.

The optimizations list has a list of how many bytes each math operation takes up.  Doing A+5 for instance, the plus 5 is not on the list, so it takes the +CONST default size which is 4 bytes.  If you did A+1 instead, the operation would actually be only 1 byte since  adding 1 to a number is very efficient in assembly.  Other things like testing if a number equals 2 used to be a 10 byte command, but its now only a 9 byte command in the new version.

If you ever have the option, always try to use the auto-opt commands.  Like if you're calculating a score or something and you are using X*30 as part of the equation, you might want to consider X*32 instead just becasue it will be smaller if it makes no difference otherwise.
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55941
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Axe Parser
« Reply #534 on: May 02, 2010, 09:14:16 pm »
True, and sometimes in some games, the score or numbers won't need to be exactly how you desire. For example, if you want max damage to be rand/1024+LV*30 (just an example), why not use *32 instead? In some cases it's not possible, though.

Also for scores, if your game is set so you get 100 points multiples, why not have it so you get one point instead then add the two additional zeros manually? (doing that might actually increase file size, though, in some cases, but it will be easier to work around the 65536 range.

Can't wait for next version of Axe ^^

Also could you awnser my question regarding tile exporting from pics? :D

Offline Quigibo

  • The Executioner
  • CoT Emeritus
  • LV11 Super Veteran (Next: 3000)
  • *
  • Posts: 2031
  • Rating: +1075/-24
  • I wish real life had a "Save" and "Load" button...
    • View Profile
Re: Axe Parser
« Reply #535 on: May 04, 2010, 03:44:13 am »
Yup, 0.2.2 is here.

Want to clarify some details.  Although there weren't that many new features, I spent a lot of time on other things instead like bugs, optimizations, and more templated parsing.  Also, as far as the tile map absorber, the 8x8 tiles are added from left to right, then top to bottom.
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55941
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Axe Parser
« Reply #536 on: May 04, 2010, 04:39:21 am »
YAY! Finally, the wait was worth it IMHO :)

Glad to see all that stuff in now

Good job

I will probably update my calc later after I finished compiling the screenshots for the video later

Thanks a lot for this btw :)

Offline ACagliano

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 919
  • Rating: +32/-2
    • View Profile
    • ClrHome Productions
Re: Axe Parser
« Reply #537 on: May 04, 2010, 11:02:29 am »
Will you eventually include support for bcalls? Like maybe use "Z-Test(X)", where X is the bcall number? And how about asm flags?

Offline Quigibo

  • The Executioner
  • CoT Emeritus
  • LV11 Super Veteran (Next: 3000)
  • *
  • Posts: 2031
  • Rating: +1075/-24
  • I wish real life had a "Save" and "Load" button...
    • View Profile
Re: Axe Parser
« Reply #538 on: May 04, 2010, 12:08:23 pm »
The "Fix CODE" commands are Asm flags.  I only have 3 controllable flags right now, but I can always add more.  bcalls are way too low level since they often require registers for input, so you will have to do those with Asm(EFxxxx) where xxxx is the hex code (little endian).

EDIT:
MAJOR MINOR REVISION COMING SOON

I'm announcing this before the next version becasue there is going to be a very big change to how a lot of the commands work and I want to let everyone know if they need to modify their code to accommodate the change.  Let me first explain my reasoning:

Lets say you wrote "If A=5" (assume that A is 5 at this point).  What happens, is first, A is compared to 5.  If they are equal, it returns 1.  Then, it checks to see if the expressions is true, that is to say, that it is not zero.  So it checks if 1 = 0 which it is not, so it will execute the If block.  Now you might see a redundancy here.  A has to be compared to 5 and then the result has to be compared to 0.

EDIT:
I found out that I can not do this, its already pretty efficient here.  However, I do realize that 99% of the time, the logical "and" "or" and "xor" commands are used as Boolean "xor" "or" and "and".  Therefore, I will change them to this (3 bytes less).

Commands this will affect:
If
ReturnIf
While
Repeat

or
and
xor

What you have to change:

EDIT:
Nothing.  The only time you would ever have to modify your code is if you were using the "and" "or" or "xor" commands as low level byte operations instead of logical operations.  If you still need to do bit logic, I will be adding new commands for that.
« Last Edit: May 28, 2010, 04:37:58 am by DJ Omnimaga »
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Axe Parser
« Reply #539 on: May 05, 2010, 06:31:50 pm »
Hey thats pretty cool! :) The speed gain will be definetaly a great and happy gain with PortalX, as so much of my code is if statements and conditionals :O