Author Topic: Axe Parser  (Read 565533 times)

0 Members and 2 Guests are viewing this topic.

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 #1560 on: November 30, 2010, 11:25:32 pm »
Hah yeah i remember thinking that i was never ever going to use Delvar to delete labels and symbols ;D I like its new use better ^^

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 #1561 on: December 01, 2010, 04:15:26 am »
I also like how it can delete archived stuff, too.

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 #1562 on: December 01, 2010, 06:32:26 pm »
Hah yeah i remember thinking that i was never ever going to use Delvar to delete labels and symbols ;D I like its new use better ^^

Same here. Deleting pointers got a bit confusing after a while, too (two different pieces of data with the same name).




Offline JustCause

  • CoT Emeritus
  • LV8 Addict (Next: 1000)
  • *
  • Posts: 810
  • Rating: +115/-5
    • View Profile
Re: Axe Parser
« Reply #1563 on: December 01, 2010, 06:35:48 pm »
Axe Parser
Delta 0.4.6

Static data can be stored to variable pointer
Thanks for bringing this to my attention: this helps a lot for MFQT

EDIT: formatting fail
« Last Edit: December 01, 2010, 06:36:19 pm by JustCause »
See you, space cowboy...

Offline lookitsan00b

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 173
  • Rating: +37/-3
    • View Profile
Re: Axe Parser
« Reply #1564 on: December 10, 2010, 05:54:54 pm »
just wondering: is it safe to embed random Asm(E5)'s and Asm(E1)'s into an axe program? (I mean other than the obvious problems of the stack not exiting the same as it entered)

I mean, can I push data onto the stack and count on axe to leave it all intact and contiguous? (except when using inside parentheses, I know that)

btw,  E5 and E1 are 'push hl' and 'pop hl', respectively

If not, I'm pulling out Mimas...
« Last Edit: December 10, 2010, 06:01:38 pm by lookitsan00b »
My TI-94+SE is broken.  I used some flawed existential conditioning on it, and it crashed. :(

Activity level:
{====______}

Spoiler For Securite:
{=========_}

A couple security flaws
Need a good backdoor short of reinstalling the OS
Completely immobilized and invalidated by Zstart. And rendered incompatible.
Spoiler For FFTATIA:
{====______}

framework: mostly done
graphics engine: undergoing complete rewrite
still need character and enemy sprites!!! :P

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 #1565 on: December 10, 2010, 05:59:57 pm »
just wondering: is it safe to embed random Asm(E5)'s and Asm(E1)'s into an axe program? (I mean other than the obvious problems of the stack not exiting the same as it entered)

btw,  E5 and E1 are 'push hl' and 'pop hl', respectively

If not, I'm pulling out Mimas...

its definitely not safe to do it at random, but if you do it in a way that ensures you are not popping HL's to overwrite crucial data (since Axe uses HL as a kind of Ans), and if you ensure that you don't do it across calls (since Axe pushes the address to return too), and if you ensure that the stack is the same size and content as when it started, you should be able to avoid a crash

Offline lookitsan00b

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 173
  • Rating: +37/-3
    • View Profile
Re: Axe Parser
« Reply #1566 on: December 10, 2010, 06:05:04 pm »
ok I can avoid using it in calls (or just use 'pop de/pop hl/push de' etc), and using it to store/recall the Ans is exactly what I'm using it for.
Also, I'll have a counter so that I know how many items are in the stack at a given time. Also gotta avoid using it in the middle of routines. like no Output(0,0,Asm(E1)>Dec), that'll probably cause an error

EDIT: also, while I'm here, "Str1" is sufficient for a GetCalc( filename, right?
« Last Edit: December 10, 2010, 06:06:58 pm by lookitsan00b »
My TI-94+SE is broken.  I used some flawed existential conditioning on it, and it crashed. :(

Activity level:
{====______}

Spoiler For Securite:
{=========_}

A couple security flaws
Need a good backdoor short of reinstalling the OS
Completely immobilized and invalidated by Zstart. And rendered incompatible.
Spoiler For FFTATIA:
{====______}

framework: mostly done
graphics engine: undergoing complete rewrite
still need character and enemy sprites!!! :P

Offline nemo

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1203
  • Rating: +95/-11
    • View Profile
Re: Axe Parser
« Reply #1567 on: December 10, 2010, 06:29:36 pm »
ok I can avoid using it in calls (or just use 'pop de/pop hl/push de' etc), and using it to store/recall the Ans is exactly what I'm using it for.
Also, I'll have a counter so that I know how many items are in the stack at a given time. Also gotta avoid using it in the middle of routines. like no Output(0,0,Asm(E1)>Dec), that'll probably cause an error

EDIT: also, while I'm here, "Str1" is sufficient for a GetCalc( filename, right?

yes, Str1 is free game.


Offline lookitsan00b

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 173
  • Rating: +37/-3
    • View Profile
Re: Axe Parser
« Reply #1568 on: December 10, 2010, 07:35:46 pm »
how about parsing them tokens? how do I do that? ???
The main problem is the variable token size... and that I need to check for tokens of both sizes.
My TI-94+SE is broken.  I used some flawed existential conditioning on it, and it crashed. :(

Activity level:
{====______}

Spoiler For Securite:
{=========_}

A couple security flaws
Need a good backdoor short of reinstalling the OS
Completely immobilized and invalidated by Zstart. And rendered incompatible.
Spoiler For FFTATIA:
{====______}

framework: mostly done
graphics engine: undergoing complete rewrite
still need character and enemy sprites!!! :P

Offline nemo

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1203
  • Rating: +95/-11
    • View Profile
Re: Axe Parser
« Reply #1569 on: December 10, 2010, 07:39:00 pm »
i'm confused... from what source? a string? a program? and parsing them so you can.. display them? store their integer equivalents into a free ram area?


Offline lookitsan00b

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 173
  • Rating: +37/-3
    • View Profile
Re: Axe Parser
« Reply #1570 on: December 10, 2010, 07:44:26 pm »
From a string, and so that I can interpret them.

as in:


If A=T+
Goto PL
End
If A=T-
Goto SB
End
...

Except not all of my symbols I need to check are 1 byte tokens.
« Last Edit: December 10, 2010, 07:45:43 pm by lookitsan00b »
My TI-94+SE is broken.  I used some flawed existential conditioning on it, and it crashed. :(

Activity level:
{====______}

Spoiler For Securite:
{=========_}

A couple security flaws
Need a good backdoor short of reinstalling the OS
Completely immobilized and invalidated by Zstart. And rendered incompatible.
Spoiler For FFTATIA:
{====______}

framework: mostly done
graphics engine: undergoing complete rewrite
still need character and enemy sprites!!! :P

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 #1571 on: December 10, 2010, 07:46:31 pm »
ok I can avoid using it in calls (or just use 'pop de/pop hl/push de' etc), and using it to store/recall the Ans is exactly what I'm using it for.

I don't think any routines suddenly ret back from where it's called, so it should be all right if you restore it...




Offline nemo

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1203
  • Rating: +95/-11
    • View Profile
Re: Axe Parser
« Reply #1572 on: December 10, 2010, 07:51:07 pm »
i've probably linked to this page 100 times this week. this'll help you decide what tokens are two-byte tokens. store your token into {L1}, and if {L1} is one of the numbers that is indicates a two-byte token, read the next byte into {L1+1} and go through your checks from {L1}r. i'm not 100% sure this will work though, it is on the right track, since i've never done this before.
« Last Edit: December 10, 2010, 07:51:18 pm by nemo »


Offline lookitsan00b

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 173
  • Rating: +37/-3
    • View Profile
Re: Axe Parser
« Reply #1573 on: December 10, 2010, 07:53:06 pm »
On second thought, I could just check a 1-byte value against all my 1-byte tokens, and then, if i got no hits, load the second byte and check all the two-byte tokens...

But I don't want to have to look all my tokens up in a table... ah well... tibasicdev has a good table.
My TI-94+SE is broken.  I used some flawed existential conditioning on it, and it crashed. :(

Activity level:
{====______}

Spoiler For Securite:
{=========_}

A couple security flaws
Need a good backdoor short of reinstalling the OS
Completely immobilized and invalidated by Zstart. And rendered incompatible.
Spoiler For FFTATIA:
{====______}

framework: mostly done
graphics engine: undergoing complete rewrite
still need character and enemy sprites!!! :P

Offline nemo

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1203
  • Rating: +95/-11
    • View Profile
Re: Axe Parser
« Reply #1574 on: December 10, 2010, 07:54:24 pm »
On second thought, I could just check a 1-byte value against all my 1-byte tokens, and then, if i got no hits, load the second byte and check all the two-byte tokens...

But I don't want to have to look all my tokens up in a table... ah well... tibasicdev has a good table.

you don't have to look up all your tokens in a table, i don't think... use t on a two byte token will work just as well as it will on a one byte.