Author Topic: Axe Parser  (Read 550334 times)

0 Members and 1 Guest are viewing this topic.

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 #285 on: March 21, 2010, 06:39:56 pm »
oh it sounds different on wabbit? I guess maybe I should just try on calc if I can find my adapter then x.x


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 #286 on: March 21, 2010, 06:45:38 pm »
This is a really awesome update!  I can't wait to put this on my calc and try it! ;D

I really like the tone command! :D

Offline Eeems

  • Mr. Dictator
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6266
  • Rating: +318/-36
  • little oof
    • View Profile
    • Eeems
Re: Axe Parser
« Reply #287 on: March 21, 2010, 06:49:37 pm »
The sound will go well with what I am working on :P
thanks for the update! can't wait to get it on my calc.
/e

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 #288 on: March 21, 2010, 06:53:40 pm »
Yesssss!  Loove the sound addition, can't wait to test it on calc, although it might take me a while to get my alligator clips out :D i don't have any adapter so i have to make one :P.  Love all the new commands, the 2 bit manipulation is especially awesome.

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 #289 on: March 21, 2010, 06:55:58 pm »
One thing I wonder and will have to test: For sounds that lasts for an extremly short while, would the quality still be tolerable? If so, I am curious if actual chords could be done (quickly alternating between 3 pitches)...

SirCmpwn

  • Guest
Re: Axe Parser
« Reply #290 on: March 21, 2010, 07:09:54 pm »
++!
The 16 bit storage will make Half Life 2 so much easier.  Plus sound!  Ooo, now the title screen won't just look pretty for a couple seconds, now it will make that one sound that is played in Source games when the Valve logo is displayed.

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 #291 on: March 21, 2010, 08:57:01 pm »
yeah pretty interesting indeed and seems not too hard to use. It will be very useful in some games

_player1537

  • Guest
Re: Axe Parser
« Reply #292 on: March 21, 2010, 10:11:49 pm »
Can anyone help please?

I have this line of code:
Code: [Select]
For({Pic99+3},0,{Pic99+2}
This line compiles fine, but if I add an "End" later then the compiler gives me a "Block" error.  I was able to use Pic99 before this part, and it is 4 bytes long
« Last Edit: March 21, 2010, 10:12:54 pm by _player1537 »

Offline calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2912
  • Rating: +471/-17
    • View Profile
    • TI-Boy CE
Re: Axe Parser
« Reply #293 on: March 21, 2010, 10:19:23 pm »
Can anyone help please?

I have this line of code:
Code: [Select]
For({Pic99+3},0,{Pic99+2}
This line compiles fine, but if I add an "End" later then the compiler gives me a "Block" error.  I was able to use Pic99 before this part, and it is 4 bytes long
I think the first argument is required to be a variable, not a memory location.
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

_player1537

  • Guest
Re: Axe Parser
« Reply #294 on: March 21, 2010, 10:20:27 pm »
Thanks, I switched in a variable instead, and it worked.
« Last Edit: March 21, 2010, 10:22:20 pm by _player1537 »

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 #295 on: March 21, 2010, 10:26:52 pm »
Yeah, I'm not really sure if pointers can work this way x.x

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 #296 on: March 22, 2010, 01:48:29 pm »
You *could* use a memory location, but I don't support that right now.  I'm surprised that compiled, I should fix that so it gives an error.
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline Gale

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 115
  • Rating: +1/-0
  • Ti-84+ Silver Edition
    • View Profile
Re: Axe Parser
« Reply #297 on: March 23, 2010, 04:56:17 pm »
is this text command supposed to have text on the home screen rather than the graph screen?

remember me as a time of day...

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 #298 on: March 23, 2010, 08:46:22 pm »
Question Quigibo:

Can Axe compiled programs run into problems if the executable code (minus the data) is over 8000 bytes?

Quote from: #omnimaga IRC channel
[20:32:26] <@calc84> DJ_Omni: I think the larger executable sizes is fine because it's still less than a 16KB app that has to be packaged with it :)
[20:33:13] * Tribal ([email protected]) has joined #omnimaga
[20:33:14] * Netbot45 sets mode: +o Tribal
[20:33:14] <@Netbot45> [Tribal] If you are near to the dark, I will tell you 'bout the sun...
[20:34:56] * Jarvis_ ([email protected]) has joined #omnimaga
[20:34:56] * Tribal sets mode: +v Jarvis_
[20:35:44] <@Tribal> !uptime
[20:35:44] <+Jarvis_> I have been awake for 1min 1sec
[20:35:49] <@Tribal> rrawr
[20:35:55] <@DJ_Omni> calc84 what are you replying to?
[20:36:11] <@DJ_Omni> !uptime
[20:36:11] <+Jarvis_> I have been awake for 1min 27secs
[20:36:16] <@DJ_Omni> oh
[20:36:47] <@calc84> just general discussion
[20:36:55] * @HAL ([email protected]) Quit (Ping timeout: 360 seconds)
[20:36:57] <@calc84> since we have talked about this before
[20:37:02] <@DJ_Omni> but idk what you are talking about calc84 x.x
[20:37:05] <@calc84> Axe
[20:37:09] <@DJ_Omni> could you give me the context?
[20:37:19] * HAL ([email protected]) has joined #omnimaga
[20:37:20] * Tribal sets mode: +v HAL
[20:37:27] <@DJ_Omni> the post in particular, preferably
[20:37:28] * Netbot45 sets mode: +o HAL
[20:37:41] <@calc84> like, you were talking about how big the compiled programs were compared to the source
[20:37:59] <@DJ_Omni> oh ok
[20:37:59] <@DJ_Omni> but
[20:38:09] <@DJ_Omni> what if a prog is larger than 24389 bytes
[20:38:19] <@DJ_Omni> how will ion/mirage unarchive it to run it
[20:38:35] <@DJ_Omni> axe cannot compile into flash app atm
[20:39:06] * @Jarvis ([email protected]) Quit (Ping timeout: 493 seconds)
[20:39:11] <@Netham45> The calc can't run anything bigger than 16384 bytes, iirc.
[20:39:15] <+Iambian> You mean, what happens if the executable portion is over number a little over 8000?
[20:39:29] <+Iambian> The execution boundary is at $C000
[20:39:36] <@calc84> hmm, true, Iambian
[20:39:40] <+Iambian> You start at $9D95
[20:39:46] <@DJ_Omni> i was talking about the program size
[20:39:48] <@DJ_Omni> i mean
[20:39:50] <@DJ_Omni> in ram
[20:39:52] <@DJ_Omni> before running
[20:39:59] <@calc84> so most of the program would be data if you have 24K size
[20:40:04] <@DJ_Omni> if you have a 8xp file that is 65536 bytes
[20:40:08] <@DJ_Omni> er
[20:40:10] <@DJ_Omni> 65535
[20:40:23] <+Iambian> The linker wouldn't accept it.
[20:40:23] <@Netham45> oh
[20:40:23] <@DJ_Omni> how do you run such program in ion?
[20:40:30] <@DJ_Omni> ion will not even be able to unarchive it
[20:40:31] <@Netham45> knowing the OS, it'd just do a RAM reset.
[20:40:43] <@DJ_Omni> ion must unarchive stuff before running it
[20:40:49] <@DJ_Omni> it wont run programs directly from archive
[20:40:53] <@calc84> and at some point, external appvars will be supported
[20:40:54] <+Iambian> I *have* sent a 65500 byte program before. The OS *will* accept it into FlashROM
[20:41:07] <@calc84> asm programs have this size problem too
[20:41:08] <@Netham45> Iambian, what happened when you unarchived it?
[20:41:16] <+Iambian> The OS *will* give the memory error.
[20:41:21] <+Iambian> If you try to unarchive it.
[20:41:22] <@DJ_Omni> maybe in the future, if axe produces a much larger than allowed program, it could simply split the data in another file?
[20:41:23] <@calc84> but it doesn't really happen for most games/programs
[20:41:32] <+Iambian> Still.
[20:41:49] <@DJ_Omni> also about the 8000 byte limit
[20:41:52] <+Iambian> Doesn't Axe refuse to generate programs that are above known limits? Isn't that something that every ASM programmer should know?
[20:41:58] <@DJ_Omni> does it means if my axe program compiled code ends up larger
[20:42:05] <@DJ_Omni> that my program will not run properly?
[20:42:11] <@DJ_Omni> i mean just the code, not the data
[20:42:16] <@calc84> if the code section is larger, correct
[20:42:20] <+Iambian> DJ_Omni: That truly depends on how Axe assembles that program.
[20:42:22] <@DJ_Omni> ouch x.x
[20:42:27] <@DJ_Omni> that might pose a problem
[20:42:35] <@Netham45> we could all just get 73's and use the hacked 83 OS on them
[20:42:37] <@DJ_Omni> maybe an asm expert should ask quigibo if he thought about that
[20:42:41] <+Iambian> If data is attached at the end of the program, then it'll be fine as long as the executable portion is below address $C000

This 8 KB executable limit is something that hasn't been discussed much in the TI community in the past 4 years, because most game programmers uses Flash APPs now, which aren't hit by this limit.

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 #299 on: March 23, 2010, 09:57:52 pm »
I actually ran into this exact problem when I made Pyoro.  That's the main reason I turned it into an app.

However!  I am pretty sure that mirageOS and other shells CAN read files larger than 8kb, so you would just be forced to use a shell if you needed the extra room.  Another alternative is to split the program into multiple subprograms and then read them all with GetCalc() which is a command not implemented yet.

EDIT: and yes, data is attached to the end of the program.
Currently, the structure is this:

Header - Program And Subs - Data

But in the future, there will probably be a third pass for extra efficiency and the new order will be:

Header - Program - Subroutines - Data

Right now, no checks are done, but I wouldn't recommend making an 8000+ byte program until the parser is finished anyway.
« Last Edit: March 23, 2010, 10:07:18 pm by Quigibo »
___Axe_Parser___
Today the calculator, tomorrow the world!