Author Topic: Features Wishlist  (Read 690304 times)

0 Members and 2 Guests are viewing this topic.

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: Features Wishlist
« Reply #1755 on: January 09, 2011, 05:34:39 pm »
How is this interrupt friendly?  Don't interrupts use af', or am I missing something?  Can you explain it to me?  I sense some clever coding. ;D  TIA Runer (or anyone who beats him).

Offline AngelFish

  • Is this my custom title?
  • Administrator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3242
  • Rating: +270/-27
  • I'm a Fishbot
    • View Profile
Re: Features Wishlist
« Reply #1756 on: January 09, 2011, 05:42:26 pm »
First of all, the most you can save by making a call inline is 4 bytes.  3 For the call, and 1 for the ret.  But many of the routines are better optimized with conditional returns and so you would often save even less than that if you were able to save anything at all.  It's a little too small of a savings to justify the complexity of another pass I think.

Okay.
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Features Wishlist
« Reply #1757 on: January 09, 2011, 05:54:37 pm »
Before I begin, let me clarify something about shadow registers, because I was a bit confused about this myself for a while. When exchanging registers with shadow registers, the processor doesn't move values from the active registers into the shadow registers and vice versa. There is not one specified set of "active" registers and one specified set of "shadow" registers. Instead, the processor uses a mux to simply flip its definition of which set is the active set and which set is the shadow set. So when an interrupt activates, the processor simply designates the set of registers it wasn't previously using as the set that the interrupt will use.

Anyways, the reason the grayscale routines cause problems is because they require both sets of the af register pair. When not inside an interrupt this is fine, because nothing else was using the second af register pair. But during an interrupt, the af register pair that was being used before the interrupt probably has data in it that we don't want to destroy. However, because the grayscale routine uses both of the af register pairs, this saved value for af will be destroyed. My solution was to back up the saved af register which we don't want destroyed by putting it onto the stack at the start of the routine. At the end of the routine, it is then taken off the stack and put it back into the inactive af register to live to see another day.
« Last Edit: January 09, 2011, 06:02:41 pm by Runer112 »

Offline Happybobjr

  • James Oldiges
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2325
  • Rating: +128/-20
  • Howdy :)
    • View Profile
Re: Features Wishlist
« Reply #1758 on: January 09, 2011, 06:05:36 pm »
Feature request:  Could you make it so you could delete a label from a program by Delvar"lbl"  ?

I remember this was in earlier versions of axe but it was then removed because of lack of use.
Could this be added again, even if it has different syntax?
It would be extremely helpful in combining games into a gamepack (to save on size and excuse making it an app).
School: East Central High School
 
Axe: 1.0.0
TI-84 +SE  ||| OS: 2.53 MP (patched) ||| Version: "M"
TI-Nspire    |||  Lent out, and never returned
____________________________________________________________

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: Features Wishlist
« Reply #1759 on: January 09, 2011, 07:57:37 pm »
Runer, my custom interrupts don't use the shadow registers for af.  They push and pop af instead specifically for the purpose of making the grayscale routines compatible inside interrupts. :)
« Last Edit: January 09, 2011, 08:00:46 pm by Quigibo »
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Features Wishlist
« Reply #1760 on: January 09, 2011, 08:39:18 pm »
Oh lol. Nevermind then! ;) But why is DispGraphrr listed as incompatible with interrupts in the Commands.htm file?
« Last Edit: January 09, 2011, 08:39:53 pm by Runer112 »

Offline FinaleTI

  • Believe in the pony that believes in you!
  • CoT Emeritus
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1830
  • Rating: +121/-2
  • Believe in the pony that believes in you!
    • View Profile
    • dmuckerman.tumblr.com
Re: Features Wishlist
« Reply #1761 on: January 09, 2011, 08:43:47 pm »
Mayhaps it wasn't updated?
It only became compatible with interrupts a few versions ago. I think 0.4.5, but I could be wrong.


Spoiler For Projects:

My projects haven't been worked on in a while, so they're all on hiatus for the time being. I do hope to eventually return to them in some form or another...

Spoiler For Pokemon TI:
Axe port of Pokemon Red/Blue to the 83+/84+ family. On hold.

Spoiler For Nostalgia:
My big personal project, an original RPG about dimensional travel and a few heroes tasked with saving the world.
Coding-wise, on hold, but I am re-working the story.

Spoiler For Finale's Super Insane Tunnel Pack of Doom:
I will be combining Blur and Collision Course into a single gamepack. On hold.

Spoiler For Nostalgia Origins: Sky's Story:
Prequel to Nostalgia. On hold, especially while the story is re-worked.

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: Features Wishlist
« Reply #1762 on: January 09, 2011, 09:14:08 pm »
Oops, you're right, I forgot to update that.  Fixed.
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline squidgetx

  • Food.
  • CoT Emeritus
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1881
  • Rating: +503/-17
  • rawr.
    • View Profile
Re: Features Wishlist
« Reply #1763 on: January 10, 2011, 06:25:03 pm »
Feature request: Backing up programs from archive?

Offline Broseph Radson

  • LV5 Advanced (Next: 300)
  • *****
  • Posts: 295
  • Rating: +20/-1
  • Its 0x1A4 somewhere
    • View Profile
Re: Features Wishlist
« Reply #1764 on: January 11, 2011, 02:25:58 pm »
Like i accidentally said in the wrong thread (facepalm). I think something like Parse(srcProg, DestProg) would be cool. It should require that Axe be installed (like xLib) for the command to work. This would allow people to create their own guis for the parser or incorporate the parser into a shell (like axe terminal).

Offline Munchor

  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6199
  • Rating: +295/-121
  • Code Recycler
    • View Profile
Re: Features Wishlist
« Reply #1765 on: January 11, 2011, 04:49:22 pm »
I know this has been requested before, but today I really needed it, huh. break and continue functions. This topic is >117 pages long and can't check'em'all, but did Quigibo said anything about implementing them or not?
« Last Edit: January 11, 2011, 04:49:42 pm by ScoutDavid »

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: Features Wishlist
« Reply #1766 on: January 11, 2011, 04:58:03 pm »
There is actually a pretty easy way to do break and continue.  You can put your loop in a subroutine and then call it from the program.  Using Return then acts like a break and using a goto to the subroutine acts like a continue.

Code: [Select]
While A
 While B
  If C
   Break
  End
  If D
   Continue
  End
 End
End


.The above can become:

While A
 sub(LOP)
End

Lbl LOP
While B
 ReturnIf C
 If D
  Goto LOP
 End
End
« Last Edit: January 11, 2011, 04:58:54 pm by Quigibo »
___Axe_Parser___
Today the calculator, tomorrow the world!

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: Features Wishlist
« Reply #1767 on: January 11, 2011, 05:11:30 pm »
Before I begin, let me clarify something about shadow registers, because I was a bit confused about this myself for a while. When exchanging registers with shadow registers, the processor doesn't move values from the active registers into the shadow registers and vice versa. There is not one specified set of "active" registers and one specified set of "shadow" registers. Instead, the processor uses a mux to simply flip its definition of which set is the active set and which set is the shadow set. So when an interrupt activates, the processor simply designates the set of registers it wasn't previously using as the set that the interrupt will use.
Thank you so much for this explanation!  Runer  :love:  ;D

Offline Munchor

  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 6199
  • Rating: +295/-121
  • Code Recycler
    • View Profile
Re: Features Wishlist
« Reply #1768 on: January 12, 2011, 01:14:36 pm »
Hello, I was trying to make a Pause screenie that made Shade (10) for a while. After that it made shade 45.

However, I want it to make Shade the same number as it was when the program ran, so the user's original shade. I don't see how to do this.

If I can, how?
If not, could a GetShade() like command be implemented?

Offline Ikkerens

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 378
  • Rating: +28/-9
  • JavaScript Magician
    • View Profile
    • Walotech
Re: Features Wishlist
« Reply #1769 on: January 12, 2011, 01:51:58 pm »
Hello, I was trying to make a Pause screenie that made Shade (10) for a while. After that it made shade 45.

However, I want it to make Shade the same number as it was when the program ran, so the user's original shade. I don't see how to do this.

If I can, how?
If not, could a GetShade() like command be implemented?

Seconded on this one.
I refuse to update the user's contract without resetting it after use ;)

And, FFth post ;)

Splut for Android [----------]
Paused/halted indefinitely, might be abandoned, our graphic designer quit and the rest of us simply doesn't have the time to work on it...