Author Topic: Axe Parser  (Read 562287 times)

0 Members and 3 Guests are viewing this topic.

Offline kindermoumoute

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 836
  • Rating: +54/-3
    • View Profile
Re: Axe Parser
« Reply #585 on: May 15, 2010, 12:31:13 pm »
Just one question, how do I reuse an image acquired by the program?
I read and I re-read the PDF, I do not understand everything (it would require a translation: p)
Projects :

Worms armageddon z80 :
- smoothscrolling Pixelmapping : 100%
- Map editor : 80%
- Game System : 0%

Tutoriel français sur l'Axe Parser
- 1ère partie : en ligne.
- 2ème partie : en ligne.
- 3ème partie : en ligne.
- 4ème partie : 10%
- Annexe : 100%

Offline Raylin

  • Godslayer
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1392
  • Rating: +83/-25
  • I am a certifiable squirrel ninja.
    • View Profile
    • Ray M. Perry
Re: Axe Parser
« Reply #586 on: May 15, 2010, 12:34:35 pm »
I believe that you store that data into another variable.
Then, use that variable normally.

Code: [Select]
[Pic1]->GDB1
EDIT: Also, does anyone know what DATA→NAME does? Use? Practical application?
« Last Edit: May 15, 2010, 12:38:01 pm by Raylin »
Bug me about my book.

Sarah: TI-83 Plus Silver Edition [OS 1.19]
Cassie: TI-86 [OS 1.XX]
Elizabeth: TI-81 [OS 1.XX]
Jehuty: TI-83 Plus Silver Edition [OS 1.19]
Tesla: CASIO Prizm







Offline kindermoumoute

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 836
  • Rating: +54/-3
    • View Profile
Re: Axe Parser
« Reply #587 on: May 15, 2010, 12:37:30 pm »
And how to show next?
Projects :

Worms armageddon z80 :
- smoothscrolling Pixelmapping : 100%
- Map editor : 80%
- Game System : 0%

Tutoriel français sur l'Axe Parser
- 1ère partie : en ligne.
- 2ème partie : en ligne.
- 3ème partie : en ligne.
- 4ème partie : 10%
- Annexe : 100%

Offline Silver Shadow

  • Beta Tester
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 817
  • Rating: +27/-7
    • View Profile
Re: Axe Parser
« Reply #588 on: May 15, 2010, 12:45:40 pm »
Talking about translations, I can make a french version of the PDF. Is it OK with you, Quigibo?
I can also make it in russian, but I doubt that it will be useful... :P
Former Coder of Tomorrow


Offline kindermoumoute

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 836
  • Rating: +54/-3
    • View Profile
Re: Axe Parser
« Reply #589 on: May 15, 2010, 12:48:29 pm »
There are many TI in russia? :p
Projects :

Worms armageddon z80 :
- smoothscrolling Pixelmapping : 100%
- Map editor : 80%
- Game System : 0%

Tutoriel français sur l'Axe Parser
- 1ère partie : en ligne.
- 2ème partie : en ligne.
- 3ème partie : en ligne.
- 4ème partie : 10%
- Annexe : 100%

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 #590 on: May 15, 2010, 01:45:44 pm »
I believe that you store that data into another variable.
Then, use that variable normally.

Code: [Select]
[Pic1]->GDB1
EDIT: Also, does anyone know what DATA→NAME does? Use? Practical application?
You just used exactly what you're asking about in that example.  [Pic1] is the "DATA" and GDB1 is the "NAME".

The problem with using an image in Axe is that unfortunately, the picture files only have 96x63 pixels, so it misses the last row.  Usually what you want to do is just add 12 bytes of white pixels to the bottom or top.  Here is how you display an image right now.  I think I will automate this in the future:

Code: [Select]
:[Pic1]->Pic1        ;Store the picture in memory call it Pic1
:det(12)             ;Add 12 zeros (96 pixels) to the bottom
:conj(Pic1,L6,768)   ;Copy all 768 bytes to the graph buffer
:DispGraph           ;Draw the buffer onto the screen

By the way, there is an even easier way to do it in 0.2.4 (not out yet) that I came up with.  You can draw any buffer to the screen directly without having to copy it to the main buffer first by doing this:

Code: [Select]
:[Pic1]->Pic1        ;Store the picture in memory call it Pic1
:det(12)             ;Add 12 zeros (96 pixels) to the bottom
:Pic1->DispGraph     ;Draw the picture directly onto the screen

EDIT: If anyone wants to do translations of any of the files that's fine.  But they aren't done yet, so they would have to be re-translated in the future so keep that in mind.
« Last Edit: May 15, 2010, 01:50:39 pm by Quigibo »
___Axe_Parser___
Today the calculator, tomorrow the world!

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 #591 on: May 15, 2010, 05:24:57 pm »
I agree about translation, it might come useful as long as they're updated too. I personally am unsure if I can take on such large project, though, especially that I do not know the french terms for ASM stuff.

Offline kindermoumoute

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 836
  • Rating: +54/-3
    • View Profile
Re: Axe Parser
« Reply #592 on: May 15, 2010, 05:42:58 pm »
Thank you, Quigibo
Where could I find native assembly code written in hexadecimal?
Projects :

Worms armageddon z80 :
- smoothscrolling Pixelmapping : 100%
- Map editor : 80%
- Game System : 0%

Tutoriel français sur l'Axe Parser
- 1ère partie : en ligne.
- 2ème partie : en ligne.
- 3ème partie : en ligne.
- 4ème partie : 10%
- Annexe : 100%

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 #593 on: May 15, 2010, 05:59:41 pm »
There are a few of them here:
http://tibasicdev.wikidot.com/hexcodes

But most of those you can already do without needing assembly.  Usually, you would compile some asm yourself and just read off the hex code.  Its mostly if you want to make an Axe/Asm hybrid for improved speed/size/capabilities but still have the ease of use and on-calc programability.
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline meishe91

  • Super Ninja
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2946
  • Rating: +115/-11
    • View Profile
    • DeviantArt
Re: Axe Parser
« Reply #594 on: May 15, 2010, 06:06:28 pm »
So to make those codes on TIDB someone just wrote a program for them (in assembly) and then compiled them into hex?
Spoiler For Spoiler:



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

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 #595 on: May 15, 2010, 06:57:35 pm »
There is an online hex disassembler by Galandros on http://asmtools.omnimaga.org/asmunsquisher/ . Take a 8xp program then it will give you the HEX data. Just make sure to remove the header and unnecessary stuff, though.

There are also other hex routines on WikiTI http://wikiti.brandonw.net/index.php?title=83Plus:Basic:Tricks_ExecAsm

Offline meishe91

  • Super Ninja
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2946
  • Rating: +115/-11
    • View Profile
    • DeviantArt
Re: Axe Parser
« Reply #596 on: May 15, 2010, 07:14:07 pm »
Doesn't the .8xp file have to already be written in assembly?
Spoiler For Spoiler:



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

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 #597 on: May 15, 2010, 07:18:37 pm »
yeah, you compile your z80 code with the assembler of your choice, create 8xp file, then extract the HEX code with Galandros hex disassembler

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 #598 on: May 16, 2010, 03:41:14 am »
Copying all those grayscale sprites took as long as writing the update almost x.x

Even though grayscale was the main focus of the release, I've found that I've significantly decreased program size with the look-ahead parsing, it was surprisingly simple to write.  I also found a part that was supposed to be optimized but never was in the previous versions and just went unnoticed.  Well, I fixed that too.

Just an explanation for look ahead... there is a situation that you will never be in, but you might think its a bug if you try it.  Its intentional.  Whenever you add or subtract a constant to a pointer like: L1+5, it automatically groups this into a single pointer (L1+5) to minimize runtime calculations.  Constant + Constant = Constant so now it just replaces the number with what it should be before it compiles.  But, that changes the order of operations if you were to do some other operation on the left of the pointer.  Like 2*L1+5 is actually 2*(L1+5).  But you'll never end up doing that really becasue the only operation you ever do to pointers is addition and subtraction anyway.

As an example, Builderboy's Portal X code shrunk by about 6% (almost 500 bytes) with these optimizations alone.
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline Galandros

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1140
  • Rating: +42/-10
    • View Profile
Re: Axe Parser
« Reply #599 on: May 16, 2010, 05:02:51 am »
Amazing work, Quigibo. That was a impressive optimization.  ;)
Is there any main optimizations like that left? ;D
Hobbing in calculator projects.