Author Topic: Features Wishlist  (Read 691208 times)

0 Members and 5 Guests are viewing this topic.

Offline calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2912
  • Rating: +471/-17
    • View Profile
    • TI-Boy CE
Re: Features Wishlist
« Reply #1245 on: September 25, 2010, 02:35:03 pm »
EDIT: @Nemo
Yeah, *2 is shift left and /2 is shift right.  They automatically optimize to the bit-shift instead of the multiplication.
What about arbitrary shifts? That should be as simple as "ld b,shiftamount \ call shift_right", etc.
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

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 #1246 on: September 25, 2010, 02:41:28 pm »
It will be a set of extra parenthesis:

Goto A       Jumps to label A
Goto (A)     Jumps to the address that the Variable A holds

EDIT: @calc84
That's actually exactly what the multiplications do with multiples of 2 so left shifting is already optimized this way.  Right shifting however I am not currently doing this becasue it takes 8 bytes whereas it only takes 6 to call the division with an argument.  Do you thinking that I should optimize this for speed instead of size?
« Last Edit: September 25, 2010, 02:46:55 pm by Quigibo »
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2912
  • Rating: +471/-17
    • View Profile
    • TI-Boy CE
Re: Features Wishlist
« Reply #1247 on: September 25, 2010, 02:42:42 pm »
It will be a set of extra parenthesis:

Goto A       Jumps to label A
Goto (A)     Jumps to the address that the Variable A holds
Does this work with sub() too?
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

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: Features Wishlist
« Reply #1248 on: September 25, 2010, 02:44:09 pm »
Mhmm could you explain expression valued label jumping? In your code example I see no "Lbl". Could you post a more visual way explaining it? (maybe a screenshot of it in action or something) because I really don't get what you mean despite the explanation :/

Offline calcdude84se

  • Needs Motivation
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2272
  • Rating: +78/-13
  • Wondering where their free time went...
    • View Profile
Re: Features Wishlist
« Reply #1249 on: September 25, 2010, 02:49:02 pm »
It will be a set of extra parenthesis:

Goto A       Jumps to label A
Goto (A)     Jumps to the address that the Variable A holds
My main question was "If I have a label A, how do I get its address?" ;D
Also, couldn't it be {A} to be more consistent? (Also, will, say, (using brackets, not parentheses) {L1} jump to the beginning of the L1 saferam area, and will {{L1}} jump to the address at {L1}?)
"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 calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2912
  • Rating: +471/-17
    • View Profile
    • TI-Boy CE
Re: Features Wishlist
« Reply #1250 on: September 25, 2010, 02:51:23 pm »
Also, couldn't it be {A} to be more consistent?
That implies a memory read from the pointer stored in A, which is not consistent. The official z80 syntax makes this mistake too, naming an instruction jp (hl) instead of jp hl
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

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 #1251 on: September 25, 2010, 02:53:54 pm »
It should work with sub(), but I'm not sure if it will work with the recursive sub().  By the way, is this the best way to do it to have a subroutine that is simply "jp (hl)" and then just call that subroutine whenever I want to "call hl"?

I haven't started adding this feature yet so I can't really give any screenshots or visualizations, but I will provide an example when its released.  Its a fairly complicated and rarely used feature so don't worry too much about it.
« Last Edit: September 25, 2010, 02:55:11 pm by Quigibo »
___Axe_Parser___
Today the calculator, tomorrow the world!

Offline calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2912
  • Rating: +471/-17
    • View Profile
    • TI-Boy CE
Re: Features Wishlist
« Reply #1252 on: September 25, 2010, 02:54:44 pm »
By the way, is this the best way to do it to have a subroutine that is simply "jp (hl)" and then just call that subroutine whenever I want to "call hl"?
You are correct.
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

Offline calcdude84se

  • Needs Motivation
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2272
  • Rating: +78/-13
  • Wondering where their free time went...
    • View Profile
Re: Features Wishlist
« Reply #1253 on: September 25, 2010, 02:57:33 pm »
Also, couldn't it be {A} to be more consistent?
That implies a memory read from the pointer stored in A, which is not consistent. The official z80 syntax makes this mistake too, naming an instruction jp (hl) instead of jp hl
Ah, right, my bad. My questions about {L1} and {{L1}} become about (L1) and ({L1}), then :)
Quigibo, that seems about the best way to do it short of SMC.
Edit: Ninja'd with respect to Quigibo's question.
"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 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: Features Wishlist
« Reply #1254 on: September 25, 2010, 02:59:39 pm »
It should work with sub(), but I'm not sure if it will work with the recursive sub().  By the way, is this the best way to do it to have a subroutine that is simply "jp (hl)" and then just call that subroutine whenever I want to "call hl"?

I haven't started adding this feature yet so I can't really give any screenshots or visualizations, but I will provide an example when its released.  Its a fairly complicated and rarely used feature so don't worry too much about it.
Oh ok.

I think in the final doc there should be some examples of most functions that are more complicated like in the TI-83 Plus manual. It might help a lot.

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 #1255 on: September 25, 2010, 04:44:22 pm »
Is there a way to use the NOT() function in Axe? I've come across situations a few times where I want to test for a non zero value and a zero value in a conditional.

For example:

Code: [Select]
:If A and Not(B)
:Conditional code
:End

I can't figure out how I would do it in Axe, so I end up using
Code: [Select]
:If A
:!If B
:Conditional code
:End
:End
which would appear to be less efficient.

Basically, if there isn't a NOT() function for expressions in Axe already, it'd be nice to have one. Even if the function isn't more efficient, sometimes the End statements get a bit messy and it'd be nice to eliminate as many as possible.
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

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: Features Wishlist
« Reply #1256 on: September 25, 2010, 05:05:09 pm »
This is the wrong topic for that but you'd just:
Code: [Select]
:If A and (B<>EXP2)
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 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 #1257 on: September 25, 2010, 05:08:19 pm »
Sorry about the topic , but wouldn't B<>EXP2 be false for all B≠EXP2. I see how that would work.
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Features Wishlist
« Reply #1258 on: September 25, 2010, 05:19:11 pm »
Wow the conditional routine jumping sounds really cool :D it does sound very confusing though, might have to take a while before its completely understood.  Does this mean that we are finally able to use labels as addresses?

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 #1259 on: September 25, 2010, 10:44:28 pm »
Wow, sounds awesome!  I can't wait for the new release! ;D