Author Topic: Axe Parser  (Read 552561 times)

0 Members and 7 Guests are viewing this topic.

Offline guy6020665

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 481
  • Rating: +7/-1
    • View Profile
Re: Axe Parser
« Reply #660 on: May 27, 2010, 07:41:58 pm »
Is there a way to have Axe programs stay the same speed when transfered from an 83+ to 83+SE or 84+/SE?

Offline Eeems

  • Mr. Dictator
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6268
  • Rating: +318/-36
  • little oof
    • View Profile
    • Eeems
Re: Axe Parser
« Reply #661 on: May 27, 2010, 07:43:15 pm »
Yes, do not put the Full command in the code and it will always run at 6MHz
/e

Offline guy6020665

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 481
  • Rating: +7/-1
    • View Profile
Re: Axe Parser
« Reply #662 on: May 27, 2010, 07:46:40 pm »
I don't have the Full command anywhere in my code, but now that I actually think about it, my Archive space is nearly full would that maybe have something to do with it? Because I sent it to another 83+ and it ran faster on her calc.

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Axe Parser
« Reply #663 on: May 27, 2010, 08:00:04 pm »
You need the prefix "v" in the Str1.

That means it should show this:

Code: [Select]
"vS"->Str1
The v is question is [2nd]+[8].

Ah yes, right.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Axe Parser
« Reply #664 on: May 27, 2010, 11:48:16 pm »
I don't have the Full command anywhere in my code, but now that I actually think about it, my Archive space is nearly full would that maybe have something to do with it? Because I sent it to another 83+ and it ran faster on her calc.
Strange, this shouldn't be happening. What is the person's OS? If it's a TI-Nspire, then this is why, though (because the Nspire won't emulate 84+ ASM programs at the right speed)

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 #665 on: May 28, 2010, 12:02:29 am »
Archiving and unarchiving things in your program can change speed depending on the number and size of all the programs in the calculator ram and flash.  Other than that, everything should be the same on regular, non-emulator hardware assuming you didn't use full speed mode.

Also, I highly doubt it, but is it possible she overclocked her calc?
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Axe Parser
« Reply #666 on: May 28, 2010, 12:15:48 am »
When the calc is set to 6 MHz, is it set specifically to 6 MHz directly or is it set to 2.5x lower than its regular speed? (example, if the calc is 15 MHz, it will be set to 6. If it's 20, then it will be set to 8. Is it how it works for overclocked calcs?)

If she didn't overclock it, maybe she got it from someone who did, too.

Offline Galandros

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1140
  • Rating: +42/-10
    • View Profile
Re: Axe Parser
« Reply #667 on: May 28, 2010, 04:03:44 pm »
Congratulations for the feature and news topic in ticalc.org.

You have strong possibilities of winning a POTY or at least gain many votes. :)
Hobbing in calculator projects.

SirCmpwn

  • Guest
Re: Axe Parser
« Reply #668 on: May 28, 2010, 05:36:05 pm »
^
That feature is a bit overdue, but its definitely deserved.

Offline TIfanx1999

  • ಠ_ಠ ( ͡° ͜ʖ ͡°)
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 6173
  • Rating: +191/-9
    • View Profile
Re: Axe Parser
« Reply #669 on: May 28, 2010, 07:12:17 pm »
Hey congratz!  =D

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 #670 on: May 28, 2010, 08:07:13 pm »
Congratulations on the feature!  Axe is still highest rated program i see :] and with 15 votes thats not too shabby! In fact that it excelent!  Especialy for a 9.88 rated review!  Go Quigibo! :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 #671 on: May 28, 2010, 08:13:30 pm »
Hey thanks! I just noticed it now :)  Its especially cool they put the tribute video up there too.
___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 #672 on: May 28, 2010, 08:14:33 pm »
I think that might be what convinced them to feature it actualy.  Props to Dj too! :D

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Axe Parser
« Reply #673 on: May 28, 2010, 11:13:13 pm »
Congrats ^^

Now I hope more cool programs are made with it ^^

Offline rvw

  • LV0 Newcomer (Next: 5)
  • Posts: 2
  • Rating: +0/-0
    • View Profile
Re: Axe Parser
« Reply #674 on: May 29, 2010, 09:25:33 pm »
Hello,

I just saw Axe on ticalc.org. At the moment I don't have a physical calculator to test with, nor do I have a ROM dump on this machine. My comments are based only on the text in "Documentation.pdf". Here's some feedback on it:

Pointers (page 9)
"The 0th byte has the address 0, the 1st byte has the address 1, all the way up to the last byte with the address 65536."

Minor nit-picking:
Actually, there's no such thing as "the zeroth item"; the correct way to say this would be "the first byte has address zero, the second byte has address one". Not exactly intuitive, I know. If you don't want to change this I can understand.

Actual error:
The last byte has address 65535.

Data & Arrays (page 11)

"Disp {A+GDB1},i"
It might be easier to understand to write "GDB1+A" (assuming that Axe understands this; I didn't check, but assume it does). I understand the current notation is not so much wrong, but it could be unclear for beginning programmers.
Since you are very consistent about this notation, I assume there's a reason for it... performance? Can Axe optimize "A+GDB1" better than it optimizes "GDB1+A"? If so, maybe you should explicitely state both are valid, but "A+GDB1" is slightly faster.

"We use the curly brackets to indicate that we want the byte that's at the address of the pointer, not the the value of the pointer itself."
From reading your code samples:
Disp Str1        Displays the contents of the (probably zero-terminated) string starting at the address in Str1.
Disp {A+GDB1}    Displays the value of the single byte at base address GDB1 incremented with offset A.

That's quite a difference from what you're saying in the documentation...

Data & Arrays (page 11)

The comments for one of the pieces of sample code say "BAISC", oops...

An Example Program (page 14)

You're already using the "optimized dual-store":
0->S-1->D
This hasn't been explained yet and is hardly standard notation. Putting a note "see page 17 for details" would be helpful.

Optimization tricks (page 17)

"Evaluate all constant expressions before compiling."
It would be very awesome if you could teach Axe to recognize expressions working on two constants and automatically decide to pre-compute them...

"If the last line of your program is Return, then remove it. Even if it was part of a subroutine, the return is automatically added at the end for you so there's no need to have 2 returns at the end. Saves 1 byte."
Uhm, that saves 1 byte in the source, not in the executable, right?

And about commands.htm:
Fix CODE: Changes how text is drawn. Code must be a constant.
Wouldn't it make more sense to make CODE consist of flags? That way you can set multiple values at once. Especially useful if you want to reset everything at the end of your code.

ReturnIf EXP
Is there a special reason to include this? It seems to be equivalent to If EXP Return End.


Cool project!