Author Topic: Axe Parser  (Read 545184 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 #1005 on: July 19, 2010, 01:25:18 am »
So if we want to include these commands in our games, should we turn off interups before these commands and then turn them back on? 

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 #1006 on: July 19, 2010, 01:33:57 am »
No, they disable them fine on their own, you only need to re-enable them after the command.  Adding that extra FnOn is only an extra byte so not a big deal really.
___Axe_Parser___
Today the calculator, tomorrow the world!

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 #1007 on: July 19, 2010, 02:09:21 am »
Ah, thats true ;D good to know

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Axe Parser
« Reply #1008 on: July 19, 2010, 03:08:42 pm »
So if we can't use DispGraphrr in interrupts, does anyone have any tips about ways to ensure that grayscale screen updating runs constantly and smoothly? Perhaps some trick to activate the screen update using an interrupt but not actually performing the update inside the interrupt?

Offline Magic Banana

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 371
  • Rating: +77/-1
  • It's not an apple, it's a ... magic banana.
    • View Profile
Re: Axe Parser
« Reply #1009 on: July 19, 2010, 06:48:42 pm »
I believe that it was mentioned before, but just in case, Using a timer as an interrupt and utilizing the counter to update the screen in steady intervals.
I do sprites and stuff, so yeah.

Quote from: yunhua98
i'M NOT SURE WHAT A SWORD SKILL IS BUT HERE'S THE SWORD ANIMATION FROM THE TWO SPRITES ON PG 13

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 #1010 on: July 20, 2010, 08:15:11 pm »
As a side note, I moved all the game-related projects that had their own topics outside the Axe sub-forum, because half of the games were posted inside the Axe sub-forum while the other half was posted under Other calculator projects and ideas. I thought it would be best to keep things consistent, and moving all Axe projects inside the Axe sub-forum would have cluttered it too much. I've left non-game projects inside the Axe Parser section, though (as well as the Your Projects, Post and Critique).
« Last Edit: July 20, 2010, 08:15:35 pm by DJ Omnimaga »

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 #1011 on: July 23, 2010, 01:40:00 pm »
This is just a general warning because I didn't realize how badly I screwed up the text command in the past.

I completely rewrote all of the Text( commands.  They now have the exact same syntax as Output( meaning you can display more than one thing per use like Text(2,3,"Hello"," World:",A>Dec) for instance.  It also means you can define just the coordinates Text(2,3) or a compressed coordinate Text(3*256+2).  The only problem is that I had to redefine the existing "draw text here" command because that was formatted the same way, but it was a relatively new command so hopefully no one has gotten too comfortable with it.  To replace it, I will add a new command called "Text " with a space and it will act exactly like "Disp " but for small text.  So to reiterate;

Disp     <=> Text
Output() <=> Text()


They can be used interchangeably and have exactly the same syntax.

The thing I was talking about when I said the old text routines were screwed up is that they were very inefficient and I had 2 sets of routines, one for text anywhere and one for text at the current pen location.  Also, the actual coding of the text parsing was quite messy.  I combined everything to a single, smaller routine and organized the code and commands to make it more readable.  I was using ztrumpet's spider game as an example and it shrunk by almost 100 bytes and text wasn't even a part of that game.

Hopefully I will get one more major optimization before the next release because I had a revelation yesterday.  I got to thinking, what's the difference between data and subroutines?  There isn't any!  So I can mix in all the subroutines with the data as if it was data without having to make a 3rd pass which can save a lot of bytes in the executable.  The only side effect to this is that if you are defining 2 blocks of data that are split by a command that uses a subroutine, then the 2 pieces of data are no longer consecutive in memory.  I doubt anyone will have a problem with this though because its always good practice to define consecutive data together without interruptions and I've never seen anyone do it wrong in their code.

Anyway, this will be the first Axe release since the 0.2.x versions that features major optimizations that will reduce the size of just about ALL programs.
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline calcdude84se

  • Needs Motivation
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2272
  • Rating: +78/-13
  • Wondering where their free time went...
    • View Profile
Re: Axe Parser
« Reply #1012 on: July 23, 2010, 01:43:53 pm »
Cool, nice to hear you found major optimizations!
Can't wait till tomorrow! :D
"People think computers will keep them from making mistakes. They're wrong. With computers you make mistakes faster."
-Adam Osborne
Spoiler For "PartesOS links":
I'll put it online when it does something.

Offline Galandros

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1140
  • Rating: +42/-10
    • View Profile
Re: Axe Parser
« Reply #1013 on: July 23, 2010, 01:59:21 pm »
Hopefully I will get one more major optimization before the next release because I had a revelation yesterday.  I got to thinking, what's the difference between data and subroutines?  There isn't any!  So I can mix in all the subroutines with the data as if it was data without having to make a 3rd pass which can save a lot of bytes in the executable.  The only side effect to this is that if you are defining 2 blocks of data that are split by a command that uses a subroutine, then the 2 pieces of data are no longer consecutive in memory.  I doubt anyone will have a problem with this though because its always good practice to define consecutive data together without interruptions and I've never seen anyone do it wrong in their code.
Great work Quigibo.

It affects somewhat disassembly but will be rare someone hand optimize Axe Parser. Maybe some curious will like to learn a bit of assembly from Axe Parser like some guys do with C and assembly.
Hobbing in calculator projects.

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 #1014 on: July 23, 2010, 04:43:35 pm »
Nice!  Those major optimizations sound like they are really awesome!  I had no idea the Text command was so unoptimized :O Thats cool to see how much smaller it will make programs :]

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 #1015 on: July 23, 2010, 05:03:15 pm »
That's cool!  Thanks for everything Quigibo, and I can't wait for the next update of Axe! ;D

Offline Hot_Dog

  • CoT Emeritus
  • LV12 Extreme Poster (Next: 5000)
  • *
  • Posts: 3006
  • Rating: +445/-10
    • View Profile
Re: Axe Parser
« Reply #1016 on: July 23, 2010, 07:54:22 pm »
Quote
Features major optimizations that will reduce the size of just about ALL programs.

Quigibo, excellent work! 
* Hot Dog pays his respects and a slip of gold-pressed latnium

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 #1017 on: July 24, 2010, 11:46:03 am »
Does 0.4.0 contain any syntax changes that would render old programs useless?
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 ACagliano

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 919
  • Rating: +32/-2
    • View Profile
    • ClrHome Productions
Re: Axe Parser
« Reply #1018 on: July 24, 2010, 12:12:27 pm »
Can someone please post in a forum (maybe my Star Trek progress thread) the key codes for Axe. My computer's downloader is not working so I can not download the file, then open the keycodes. I can only view it on a web page or forum. Sorry about the inconvenience.

Offline Magic Banana

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 371
  • Rating: +77/-1
  • It's not an apple, it's a ... magic banana.
    • View Profile
Re: Axe Parser
« Reply #1019 on: July 24, 2010, 12:17:24 pm »
Here. I think he uses this exact picture in the zip as well. It's the same as the xlib and Celtic keycodes.
I do sprites and stuff, so yeah.

Quote from: yunhua98
i'M NOT SURE WHAT A SWORD SKILL IS BUT HERE'S THE SWORD ANIMATION FROM THE TWO SPRITES ON PG 13