• Axe Parser 5 1
Currently:

### Author Topic: Axe Parser  (Read 433067 times)

0 Members and 1 Guest are viewing this topic.

#### trevmeister66

• LV9 Veteran (Next: 1337)
• Posts: 1009
• Rating: +14/-5
##### Re: Axe Parser
« Reply #495 on: April 24, 2010, 06:30:34 pm »
1 byte = 8 bits.
Projects:    nameless RPG: 1.0%  |  Reverse Snake v1.5: 100%  |  Secret Project: 5%  |  DUNGEON: 70%

My MW2 Blog <-- Please visit

#### 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...
##### Re: Axe Parser
« Reply #496 on: April 24, 2010, 06:32:30 pm »
Same as the difference between Hex and decimal, its just the way you write the number

For instance, the number "99" can be written

Hex: 63
Decimal: 99
Binary: 01100011

Binary mostly helps when you have a lot of Boolean variables (true/false) that you want to store into a single byte to save space since you can hold 8 of them per byte.
___Axe_Parser___
Today the calculator, tomorrow the world!

#### Runer112

• Project Author
• LV11 Super Veteran (Next: 3000)
• Posts: 2289
• Rating: +639/-31
##### Re: Axe Parser
« Reply #497 on: April 24, 2010, 06:33:06 pm »
What is the difference between bytes and bits? I've never really understood that.

A bit = 0 or 1
A byte = 8 bits

#### Runer112

• Project Author
• LV11 Super Veteran (Next: 3000)
• Posts: 2289
• Rating: +639/-31
##### Re: Axe Parser
« Reply #498 on: April 24, 2010, 06:37:25 pm »
I was wondering Quigibo because I plan on making a project in which tiles will appear in groups of 16 at a time, with each tile being either white or black. This works out very well using rand to generate 16 tiles at once, but it is then somewhat difficult to extract the 16 individual bits.

#### meishe91

• Super Ninja
• LV11 Super Veteran (Next: 3000)
• Posts: 2946
• Rating: +115/-11
##### Re: Axe Parser
« Reply #499 on: April 24, 2010, 06:42:09 pm »
Ah ok. I think I get that a little now. Thanks guys
Spoiler For Spoiler:

For the 51st time, that is not my card! (Magic Joke)

#### 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...
##### Re: Axe Parser
« Reply #500 on: April 24, 2010, 06:55:51 pm »
Actually, there is a little trick you can use extract them.  Try this:

Input: X is the 16-bit variable

:X->B
:For(A,1,16)
:If B^2
:<What to do if the Nth bit from the right is 1>
:End
:B/2->B
:End

It will iterate and read all the bits.

If you just want a specific bit, the Nth bit on the right, then do this:

Input: X is the 16-bit variable
Input: N is which bit (in range 0-15):
Output: Returns the value of the bit.

:X->B
:For(A,1,N)
:B/2->B
:End
:B^2
« Last Edit: April 24, 2010, 06:57:04 pm by Quigibo »
___Axe_Parser___
Today the calculator, tomorrow the world!

#### Runer112

• Project Author
• LV11 Super Veteran (Next: 3000)
• Posts: 2289
• Rating: +639/-31
##### Re: Axe Parser
« Reply #501 on: April 24, 2010, 09:12:57 pm »
Actually, there is a little trick you can use extract them.  Try this:

:X->B
:For(A,1,N)
:B/2->B
:End
:B^2

Yes, that's almost exactly what I did character for character. But I'm guessing there are much cleaner and faster methods that can be built-in, yes?

#### 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...
##### Re: Axe Parser
« Reply #502 on: April 24, 2010, 09:41:03 pm »
Yes.  Actually, I think that would be pretty easy to add.  There would have to be one for setting a bit, resting a bit, reading a bit, and possibly flipping a bit.  The problem is that I can't seem to find any intuitive tokens for it.  Maybe binomcdf()?  But there's only 2 of those and its kind of a long one...

EDIT: Also, I should say that these will only work with a CONSTANT as the bit#.  So you can't have the Xth bit with X being a variable.  Otherwise, the routine you wrote is pretty efficient for it.
« Last Edit: April 24, 2010, 09:43:18 pm by Quigibo »
___Axe_Parser___
Today the calculator, tomorrow the world!

#### DJ Omnimaga

• Clacualters are teh gr33t
• CoT Emeritus
• LV15 Omnimagician (Next: --)
• Posts: 55936
• Rating: +3153/-232
• CodeWalrus founder & retired Omnimaga founder
##### Re: Axe Parser
« Reply #503 on: April 24, 2010, 10:04:07 pm »
Mhmm Binomcdf/pdf names are so close to each others, it might get some ppl confused

The bit manipulation functions would be really handy since it makes it would save a lot of space for storing data such as treasure chests open/closed status, if you obtained an item/magic spell, etc

#### Runer112

• Project Author
• LV11 Super Veteran (Next: 3000)
• Posts: 2289
• Rating: +639/-31
##### Re: Axe Parser
« Reply #504 on: April 24, 2010, 11:17:56 pm »
Ok, here's a problem I'm getting close (about 1KB) to running into:

How do you compile a program that is large enough to not leave enough free RAM for both itself and the compiled program?

#### DJ Omnimaga

• Clacualters are teh gr33t
• CoT Emeritus
• LV15 Omnimagician (Next: --)
• Posts: 55936
• Rating: +3153/-232
• CodeWalrus founder & retired Omnimaga founder
##### Re: Axe Parser
« Reply #505 on: April 24, 2010, 11:19:40 pm »
Can you archive the source file before compiling it?

#### Runer112

• Project Author
• LV11 Super Veteran (Next: 3000)
• Posts: 2289
• Rating: +639/-31
##### Re: Axe Parser
« Reply #506 on: April 24, 2010, 11:44:12 pm »
Can you archive the source file before compiling it?

Oh wow you can, didn't realize you could

#### Runer112

• Project Author
• LV11 Super Veteran (Next: 3000)
• Posts: 2289
• Rating: +639/-31
##### Re: Axe Parser
« Reply #507 on: April 25, 2010, 12:22:12 am »
I'm having a bit of trouble getting GetCalc(PTR) to locate things. Is it possible to find the pointer of a previously defined piece of data like GDB01? And if so, why does something apparently straightforward like this not work:

Code: [Select]
:[FF]→GDB01:"GDB01"→Str01:Disp GetCalc(Str01)►Dec
Does this possibly have something to do with the fact that GDB0 is a two-byte token? When I display Str01, it doesn't display "GDB01", it displays "a{1". It looks like it's breaking the two-byte GDB0 token into one-byte characters.

EDIT: On closer inspection, it appears this command was meant for AppVars, so this approach probably doesn't make sense anyways. However, my question from the second sentence still stands: How can I get the pointer of a previously defined piece of data such as GDB01, but without actually saying GDB01→something? It would be nice to be able to get the pointer of a piece of data with a variable ID, such as GDBA, where A=01.

ANOTHER EDIT: Just a quick question, would GDB1 and GDB10 be the same thing?

Why do I keep not realizing I'm about to double-post until it's too late

« Last Edit: April 25, 2010, 01:05:14 am by Runer112 »

#### meishe91

• Super Ninja
• LV11 Super Veteran (Next: 3000)
• Posts: 2946
• Rating: +115/-11
##### Re: Axe Parser
« Reply #508 on: April 25, 2010, 12:50:40 am »
Just letting you know, I would watch the double posting. Use the modify button unless Rule #3 doesn't apply in a certain circumstance.

As for you're code and issues with it. I'm afraid I can't help very much. All I can tell is that there are issues with it, just not how to fix it and such.

For the GDB# thing. I don't think there is a GDB10, only GDB0 to GDB9. Could be wrong though, please correct me if I'm wrong.
« Last Edit: April 25, 2010, 12:52:39 am by meishe91 »
Spoiler For Spoiler:

For the 51st time, that is not my card! (Magic Joke)

#### Runer112

• Project Author
• LV11 Super Veteran (Next: 3000)
• Posts: 2289
• Rating: +639/-31
##### Re: Axe Parser
« Reply #509 on: April 25, 2010, 01:03:03 am »
Yeah I'm used to forums where double-posting is just fine, so sometimes I don't think to check here. But once I look down at my post(s) and see two in a row I instantly realize

But anyways...

For the GDB# thing. I don't think there is a GDB10, only GDB0 to GDB9. Could be wrong though, please correct me if I'm wrong.

From the documentation:

Quote
Another thing is that Axe allows you to name everything with up to 2 numbers/letters instead of just a single number. The following are all valid names:
 Str1Pic0GDB4 Str1APic9ZGDB45 Str66Pic8CGDB3X
« Last Edit: April 25, 2010, 01:10:47 am by Runer112 »