Author Topic: Progress  (Read 22195 times)

0 Members and 2 Guests 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: Progress
« Reply #45 on: November 22, 2010, 05:24:38 pm »
Okay, I think I can do it:  Select(CONST) will be able to set where you want the variables in an Axe program from that point on in the program.  You can use it multiple times in the same program to swap back and forth between different buffers to effectively increase the number of variables available to the programmer.  The command is a compiler instruction and thus takes no memory in the executable so there is never a penalty to using it.  Also, the variables will from now on be at the end of L1 by default instead of the beginning.  That way, if you do move the variables, you will be able to use the full 768 byte L1 buffer by simply using L1 instead of having to use L1-56.  Future optimizations might also be possible in the future if the variables are kept within that range.

EDIT: 1337th post! ;D
« Last Edit: November 22, 2010, 05:25:59 pm by Quigibo »
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline Deep Toaster

  • So much to do, so much time, so little motivation
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 8217
  • Rating: +758/-15
    • View Profile
    • ClrHome
Re: Progress
« Reply #46 on: November 22, 2010, 05:25:41 pm »
Okay, I think I can do it:  Select(CONST) will be able to set where you want the variables in an Axe program from that point on in the program.  You can use it multiple times in the same program to swap back and forth between different buffers to effectively increase the number of variables available to the programmer.  The command is a compiler instruction and thus takes no memory in the executable so there is never a penalty to using it.  Also, the variables will from now on be at the end of L1 by default instead of the beginning.  That way, if you do move the variables, you will be able to use the full 768 byte L1 buffer by simply using L1 instead of having to use L1-56.  Future optimizations might also be possible in the future if the variables are kept within that range.

YES! That is awesome! And I assume we can do something like Select(GDB0) as well? This is really convenient for me :D




Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Progress
« Reply #47 on: November 22, 2010, 05:28:39 pm »
Sweet!  That is amazingly awesome!  I can't wait to use it! ;D

Offline calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2912
  • Rating: +471/-17
    • View Profile
    • TI-Boy CE
Re: Progress
« Reply #48 on: November 22, 2010, 05:33:48 pm »
Okay, I think I can do it:  Select(CONST) will be able to set where you want the variables in an Axe program from that point on in the program.  You can use it multiple times in the same program to swap back and forth between different buffers to effectively increase the number of variables available to the programmer.  The command is a compiler instruction and thus takes no memory in the executable so there is never a penalty to using it.  Also, the variables will from now on be at the end of L1 by default instead of the beginning.  That way, if you do move the variables, you will be able to use the full 768 byte L1 buffer by simply using L1 instead of having to use L1-56.  Future optimizations might also be possible in the future if the variables are kept within that range.

EDIT: 1337th post! ;D
Nice! Are you going to add a constant that refers to the default location of the variables? I know they aren't going to be L1-56 any more, might they be L1+712 or something?
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

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: Progress
« Reply #49 on: November 22, 2010, 05:36:52 pm »
Okay, I think I can do it:  Select(CONST) will be able to set where you want the variables in an Axe program from that point on in the program.  You can use it multiple times in the same program to swap back and forth between different buffers to effectively increase the number of variables available to the programmer.  The command is a compiler instruction and thus takes no memory in the executable so there is never a penalty to using it.  Also, the variables will from now on be at the end of L1 by default instead of the beginning.  That way, if you do move the variables, you will be able to use the full 768 byte L1 buffer by simply using L1 instead of having to use L1-56.  Future optimizations might also be possible in the future if the variables are kept within that range.

YES! That is awesome! And I assume we can do something like Select(GDB0) as well? This is really convenient for me :D
Yes, anything that can be evaluated as a constant (something that was defined already in the program) can be used.  Also things like L2, or1 or E8000 can also be acceptable.  Just be VERY VERY careful.  You need to make sure you actually have 56 bytes to work with and you need to be absolutely sure you aren't accidentally sharing the same variable space with some other memory that needs it.  Also, using dereferencing like oA will automatically adapt to the current space you are working with.

EDIT: Good idea calc84maniac!  I might do that.
« Last Edit: November 22, 2010, 05:39:10 pm by Quigibo »
___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: Progress
« Reply #50 on: November 22, 2010, 05:39:37 pm »
Hmmmmm so then since these are compiler commands, certain things will not work, am i correct?  Like:

If A=3
Select(L2)
Else
Select(L3)
End

Would not work correct?

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: Progress
« Reply #51 on: November 22, 2010, 05:45:23 pm »
Yeah, that would not work.  It would select L2 and then L3 so by the end of that command, it would be at L3.

I might tack on a hash to the front of the token to indicate it is a compiler instruction rather than a language one to make it less confusing.  When I get to adding custom icons, I can also do it the same way:

#Select()
#Icon[]
« Last Edit: November 22, 2010, 05:45:53 pm by Quigibo »
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline Deep Toaster

  • So much to do, so much time, so little motivation
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 8217
  • Rating: +758/-15
    • View Profile
    • ClrHome
Re: Progress
« Reply #52 on: November 22, 2010, 06:35:37 pm »
Yeah, that would not work.  It would select L2 and then L3 so by the end of that command, it would be at L3.

I might tack on a hash to the front of the token to indicate it is a compiler instruction rather than a language one to make it less confusing.  When I get to adding custom icons, I can also do it the same way:

#Select()
#Icon[]

That's a good idea. #include for prgm, maybe? Just an idea, doesn't really matter :D

By the way, will the default A-Z and θ locations be moved to the end of L2?

And nice 1337 ;D
« Last Edit: November 22, 2010, 06:35:57 pm by Deep Thought »




Offline Munchor

  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6199
  • Rating: +295/-121
  • Code Recycler
    • View Profile
Re: Progress
« Reply #53 on: November 22, 2010, 06:52:59 pm »
By the way, I love Quigibo's signature:

"Axe Parser 1.0.0
[=====-----] 50%" :D 50% means half is done (you may say half to do, but I'm optimist!)

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: Progress
« Reply #54 on: November 23, 2010, 01:44:58 am »
Yeah true. I hope later he'll be able to find more time to work on it regularly again. :P (after the next beta arrives)

Offline ztrumpet

  • The Rarely Active One
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5712
  • Rating: +364/-4
  • If you see this, send me a PM. Just for fun.
    • View Profile
Re: Progress
« Reply #55 on: November 23, 2010, 04:41:40 pm »
Awesome!  I can't wait for Select()! ;D