Author Topic: Axe Parser  (Read 563118 times)

0 Members and 3 Guests are viewing this topic.

Offline Binder News

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 785
  • Rating: +46/-3
  • Zombie of Tomorrow
    • View Profile
Re: Axe Parser
« Reply #1680 on: January 22, 2011, 10:01:51 am »
Runer already made an Axiom for that. But I would still like to see your version. Who knows, yours may be better.
Spoiler For userbars:







Hacker-in-training!   Z80 Assembly Programmer     Axe Programmer
C++ H4X0R             Java Coder                           I <3 Python!

Perdidisti ludum     Cerebrum non habes

"We are humans first, no matter what."
"Fame is a vapor, popularity an accident, and riches take wings. Only one thing endures, and that is character."
Spoiler For Test Results:





Offline Michael_Lee

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1019
  • Rating: +124/-9
    • View Profile
Re: Axe Parser
« Reply #1681 on: January 23, 2011, 03:09:41 pm »
Quick question - let's say that I'm using L1 to hold a lot of data, but occasionally I would want to store lots of more data - more then L1 can hold.
Is there a way to 'chain' memory spaces, so that if I were to overflow L1, I would write my data to an appvar or other buffer instead?
Effectively, it would treat L1 and an appvar as one huge block of memory.
My website: Currently boring.

Projects:
Axe Interpreter
   > Core: Done
   > Memory: Need write code to add constants.
   > Graphics: Rewritten.  Needs to integrate sprites with constants.
   > IO: GetKey done.  Need to add mostly homescreen IO stuff.
Croquette:
   > Stomping bugs
   > Internet version: On hold until I can make my website less boring/broken.

Ashbad

  • Guest
Re: Axe Parser
« Reply #1682 on: January 23, 2011, 03:16:16 pm »
yeah, to do that you would have already created an appvar witha  pointer to it, and know the size of the buffer you're using (I'll use appbackupscreen for now because I most definately know that offset) At L3 and a pointer to your appvar at P:

EDIT: and btw this is just to read code one byte at a time, with X as your offset:

Code: [Select]
{L3+X+((L3+X>L3+767)*(P-L3+767))} -> Y
Disp Y >Dec

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: Axe Parser
« Reply #1683 on: January 23, 2011, 06:32:46 pm »
Quigibo, can you have the parser check Axioms first and then check the actual Axe code?  This would allow redefinition of various Axe functions and allow different behavior.  For instance, if you were writing some BrainFck in Axe and had an Axiom for it, you could use + in the way BrainFck requires it to be used in. :)

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 #1684 on: January 25, 2011, 05:08:47 pm »
I am pleased to announce that I have finished the Axioms finally.  I will be distributing pre-release versions to a few people later today after I do more testing with them.  They are extremely powerful right now.  New features include: recursive axiom chain calling, distinct commands using identical tokens but based on different arguments, r modifiers, store arrows, and shells; native axe routine calling, relative and absolute referencing for any 2-byte immediate instruction, including calls, jumps, and loads; easily add data tables to aid your axioms, new tokens specifically for axioms, and a lot of other features I'm probably forgetting.

Basically, you have nearly complete control with the new commands.  I'm looking forward to some really great libraries ;D  I'm also going to make a mode7 example program using the new library since I haven't done any example programs for a while.

Quigibo, can you have the parser check Axioms first and then check the actual Axe code?  This would allow redefinition of various Axe functions and allow different behavior.  For instance, if you were writing some BrainFck in Axe and had an Axiom for it, you could use + in the way BrainFck requires it to be used in. :)

I don't want to look through the axioms first or else the parsing will be slower since it will have to scan every single axiom before it starts looking at the regular commands.  Also, I don't have axiom support for operators since they require a lot of special form stuff like auto-optimizations and operation on parenthesis.
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline Happybobjr

  • James Oldiges
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2325
  • Rating: +128/-20
  • Howdy :)
    • View Profile
Re: Axe Parser
« Reply #1685 on: January 25, 2011, 05:24:28 pm »
Can't wait!
School: East Central High School
 
Axe: 1.0.0
TI-84 +SE  ||| OS: 2.53 MP (patched) ||| Version: "M"
TI-Nspire    |||  Lent out, and never returned
____________________________________________________________

Offline Michael_Lee

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1019
  • Rating: +124/-9
    • View Profile
Re: Axe Parser
« Reply #1686 on: January 25, 2011, 08:53:00 pm »
Fantastic!  I can't wait to see some of these Axioms!
My website: Currently boring.

Projects:
Axe Interpreter
   > Core: Done
   > Memory: Need write code to add constants.
   > Graphics: Rewritten.  Needs to integrate sprites with constants.
   > IO: GetKey done.  Need to add mostly homescreen IO stuff.
Croquette:
   > Stomping bugs
   > Internet version: On hold until I can make my website less boring/broken.

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: Axe Parser
« Reply #1687 on: January 25, 2011, 08:55:07 pm »
Wow! Can't wait for this new Axiom stuff to come out!
* Deep Thought has ideas already :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 #1688 on: January 28, 2011, 10:49:11 pm »
That's great Quigibo! I can't wait to see the Mode 7 engine too. I wonder if Runer112 will release his raycaster Axiom soon afterward too. :P

Offline Darl181

  • «Yo buddy, you still alive?»
  • CoT Emeritus
  • LV12 Extreme Poster (Next: 5000)
  • *
  • Posts: 3408
  • Rating: +305/-13
  • VGhlIEdhbWU=
    • View Profile
    • darl181.webuda.com
Re: Axe Parser
« Reply #1689 on: January 31, 2011, 08:31:57 pm »
Is there a way to store a TIOS picvar, say, Pic1, to a buffer without using dispgraph?
Vy'o'us pleorsdti thl'e gjaemue

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: Axe Parser
« Reply #1690 on: January 31, 2011, 08:33:09 pm »
Yes, you can use the Copy() command to take the data from the OS var and place it wherever you like. :)

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: Axe Parser
« Reply #1691 on: January 31, 2011, 11:13:03 pm »
Yep, remember that the buffer is just L6 and that the back-buffer is just L6. So Copy(POINTER,L6,768) should work :)
« Last Edit: January 31, 2011, 11:13:14 pm by Deep Thought »




Offline Darl181

  • «Yo buddy, you still alive?»
  • CoT Emeritus
  • LV12 Extreme Poster (Next: 5000)
  • *
  • Posts: 3408
  • Rating: +305/-13
  • VGhlIEdhbWU=
    • View Profile
    • darl181.webuda.com
Re: Axe Parser
« Reply #1692 on: February 01, 2011, 02:20:26 am »
Would the picvar be required for the executable to run, or just to compile?

Another thing.  You know how {E8447}+24 is the contrast level?  What points to the Ans variable?
« Last Edit: February 01, 2011, 02:22:09 am by Darl181 »
Vy'o'us pleorsdti thl'e gjaemue

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: Axe Parser
« Reply #1693 on: February 01, 2011, 09:13:11 am »
Would the picvar be required for the executable to run, or just to compile?

If you're accessing it during runtime, it's required to run.

Another thing.  You know how {E8447}+24 is the contrast level?  What points to the Ans variable?

Ans is just like any other variable: it could be anywhere in user mem. You have to find it with GetCalc() (or store to it/recall it with Axe's built-in routine).
« Last Edit: February 01, 2011, 09:13:38 am by Deep Thought »




Offline Darl181

  • «Yo buddy, you still alive?»
  • CoT Emeritus
  • LV12 Extreme Poster (Next: 5000)
  • *
  • Posts: 3408
  • Rating: +305/-13
  • VGhlIEdhbWU=
    • View Profile
    • darl181.webuda.com
Re: Axe Parser
« Reply #1694 on: February 01, 2011, 10:25:06 am »
So, that would be like Getcalc(Ans)?  The goal is to store a token, either two-byte or one-byte, into ans.
Vy'o'us pleorsdti thl'e gjaemue