Author Topic: Features Wishlist  (Read 694379 times)

0 Members and 5 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: Features Wishlist
« Reply #3090 on: December 08, 2012, 04:29:59 pm »
The problem is, is that the z80 is a 16bit processor by nature, and consequently doing anything with a bit length greater than 16 require a lot more custom code. 

Offline Freyaday

  • The One And Only Serial Time Killing Catboy-Capoeirista-Ballerino
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1970
  • Rating: +128/-15
  • I put on my robe and pixel hat...
    • View Profile
Re: Features Wishlist
« Reply #3091 on: December 10, 2012, 11:01:04 am »
I know jacobly made some pretty fast floats.
You can get the Axiom here.
« Last Edit: December 10, 2012, 11:03:24 am by Freyaday »
In other news, Frey continues kicking unprecedented levels of ass.
Proud member of LF#N--Lolis For #9678B6 Names


I'm a performer at heart; I stole it last week.
My Artwork!

Offline squidgetx

  • Food.
  • CoT Emeritus
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1881
  • Rating: +503/-17
  • rawr.
    • View Profile
Re: Features Wishlist
« Reply #3092 on: December 10, 2012, 11:26:51 pm »
Feature request: ouput symbol table? It's a little obscure, but I don't think it'd be too hard to implement; right? (One use could be for calling app routines from an external program.) As an option, the compiler could (after compilation) output as axe source named constants/variables all the label address offsets and static pointer locations. I know there's not a lot of room left in the app but...

Offline Freyaday

  • The One And Only Serial Time Killing Catboy-Capoeirista-Ballerino
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1970
  • Rating: +128/-15
  • I put on my robe and pixel hat...
    • View Profile
Re: Features Wishlist
« Reply #3093 on: December 11, 2012, 10:57:33 am »
What's an output symbol table?
In other news, Frey continues kicking unprecedented levels of ass.
Proud member of LF#N--Lolis For #9678B6 Names


I'm a performer at heart; I stole it last week.
My Artwork!

Offline squidgetx

  • Food.
  • CoT Emeritus
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1881
  • Rating: +503/-17
  • rawr.
    • View Profile
Re: Features Wishlist
« Reply #3094 on: December 11, 2012, 11:23:33 am »
It's more of a compiler feature than a programming feature. Basically, I'm asking for the option to be able to see the addresses of all the symbols in the source (that is, labels and static pointers like GDB1). The compiler already has to keep track of them all, so I'm hoping it's not too hard to finagle an output file somehow (or even display in the compilation screen).

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Features Wishlist
« Reply #3095 on: December 11, 2012, 11:49:04 am »
iIs there any particular reason this would really be needed? The main reason I can think of is if you want an application to have routines that can be called from an external program, but in that case you should really be using a jump table anyways, and I think it's simple enough to figure out where that would start in an application.

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Features Wishlist
« Reply #3096 on: December 11, 2012, 12:22:25 pm »
The main reason I can think of is if you want an application to have routines that can be called from an external program, but in that case you should really be using a jump table anyways, and I think it's simple enough to figure out where that would start in an application.
Or he can use this :P
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline squidgetx

  • Food.
  • CoT Emeritus
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1881
  • Rating: +503/-17
  • rawr.
    • View Profile
Re: Features Wishlist
« Reply #3097 on: December 11, 2012, 12:41:19 pm »
Yeah, those would also work. They're just less direct, and I feel like it'd be useful for all kinds of interfacing with asm code, although I guess if you're adding the ability to inline constants in Asm() then it's not really needed.

Offline Sorunome

  • Fox Fox Fox Fox Fox Fox Fox!
  • Support Staff
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 7920
  • Rating: +374/-13
  • Derpy Hooves
    • View Profile
    • My website! (You might lose the game)
Re: Features Wishlist
« Reply #3098 on: December 13, 2012, 07:03:47 pm »
i know, this is bumping a old feature wish, but i'm doing it as it is now back into development (axe)
so
Multi-page apps!
Everything is stored into page one
exept
[DATA]->nGDB1 is stored in page n, if n is not specified it stores on page 1, so the other pages are only data, do you get what i mean? :D

THE GAME
Also, check out my website
If OmnomIRC is screwed up, blame me!
Click here to give me an internet!

Offline jo-thijs

  • LV1 Newcomer (Next: 20)
  • *
  • Posts: 19
  • Rating: +1/-0
    • View Profile
Re: Features Wishlist
« Reply #3099 on: December 19, 2012, 09:16:50 am »
I'm new here and I've got 3 feature requests:
1) a compile mode (some sort of debug mode) in which axe adds before every possible function that can result in a loop, like goto, while, repeat, for, sub, ... a code that terminates the program if a specific button is pressed. I know this is something I can build in my program myself very easily, but it is annoying to remove it afterwards in my finished version.
2) someway to test multiplayer games with 1 grm and optional a computer. I've got no idea how this could be realised, mayby by making a small program on the pc that sends a byte predefined byte when you press a key on the keyboard? The thing is, my friends don't want to play my games until I've tested them and so I can never play multiplayer games.
3) making the function-name-changing thing that axe does optional, it is a great feature, but I've noticed that it slows down scrolling through a program a lot, so I clear my ram always after compiling a game to spead it up again.

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 #3100 on: December 20, 2012, 12:33:22 am »
Heya and welcome here :D

And yeah about 2 this can be difficult to test multiplayer games. I myself am lucky because I know one person IRL that was into calc stuff at one point and actually frequents the forums here, but otherwise that can be hard. However this might be kinda hard to implement D:

I have one suggestion for future Axe versions too by the way (even though I don't code anymore): An option to disable progress bars when compiling. Since they were added, Axe seems to take an incredibly long while to compile anything (like 5 times longer).

Supersonic Ball:
Axe 1.1.0: 6 seconds (final version with no progress bar)
Axe 1.1.2: 9 seconds
Axe 1.2.1a: 8 seconds (Note that I tried this version after writing this post and noticed the slight speed improvement)


EDIT: It turns out that the speed was improved by 1 seconds at least in the latest version and that most of the speed decrease was due to Axe compiling being more and more complex. Because Axe 0.2.6 compiles Supersonic Ball in 1 second. O.O
« Last Edit: December 20, 2012, 01:03:00 am by DJ_O »

Offline Runer112

  • Project Author
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Features Wishlist
« Reply #3101 on: December 20, 2012, 01:12:14 am »
I'm new here and I've got 3 feature requests:
1) a compile mode (some sort of debug mode) in which axe adds before every possible function that can result in a loop, like goto, while, repeat, for, sub, ... a code that terminates the program if a specific button is pressed. I know this is something I can build in my program myself very easily, but it is annoying to remove it afterwards in my finished version.
2) someway to test multiplayer games with 1 grm and optional a computer. I've got no idea how this could be realised, mayby by making a small program on the pc that sends a byte predefined byte when you press a key on the keyboard? The thing is, my friends don't want to play my games until I've tested them and so I can never play multiplayer games.
3) making the function-name-changing thing that axe does optional, it is a great feature, but I've noticed that it slows down scrolling through a program a lot, so I clear my ram always after compiling a game to spead it up again.

Hello, new person! I hope Axe has been useful for you, but let's see if we can't make it better:

1) I have plans to eventually add some sort of safety mode in which pressing ON during execution of an Axe program will immediately exit it. I think this should cover what you wanted.

2) Performing arbitrary linking between a computer and a calculator is extremely difficult. Also Axe uses the serial port for linking, and I'm not even sure it's possible to reprogram a silverlink cable to work with that. So unfortunately I don't think this feature will ever be added. If you want to test linking, I suggest loading up more than one virtual calculator in an emulator that supports virtual linking.

3) I agree that it should be optional, although I would disagree that it slows down scrolling by *a lot*. I'll add both an on/off toggle and speed improvement to my to-do list.

Offline 133794m3r

  • LV2 Member (Next: 40)
  • **
  • Posts: 21
  • Rating: +1/-3
    • View Profile
Re: Features Wishlist
« Reply #3102 on: December 20, 2012, 10:57:03 pm »
I'm probably a crazy person. so please ignore this if I am one of those. The first pass I guess is where it converts it into assembler, and then the second is optimizations? Something I'd like is for it do another pass of peephole optimizations, but make it non-default so that if someone's crazy/really needs whatever additional  little things it can do, it'd be added, by holding some button, like Mode when compiling to make it do another round of optimizing/shrinking. Other than that, that's all that I can think of right now as far as my "would like to see" list. Also, I imagine that Axe is already using the "full" 15mhz on the ti-84s, but if it isn't, I'd love for it to start using it. I imagine it is(as the compile times are rather quick, for everything I've tested/wrote), but if not I'd love for it to be there.

One other thing that I'd love to have is for it to have the subroutines be able to return a value as the built in functions of the calculator/axe ones do. As this'd help make my code a tad bit more clean, there's already the option of giving subroutines variables, but being able to return one would be uber-awesome. I'm not even talking about passing around ptrs with mass amounts of memory, just some way to return a 2byte value would be uber-awesome/useful for people like me who are used to c.

Offline Sorunome

  • Fox Fox Fox Fox Fox Fox Fox!
  • Support Staff
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 7920
  • Rating: +374/-13
  • Derpy Hooves
    • View Profile
    • My website! (You might lose the game)
Re: Features Wishlist
« Reply #3103 on: December 20, 2012, 11:06:11 pm »
For using full use the token 'Full' to enable full speed mode
and to return a value for a subroutine, just have the last line of it be like A+B and then you can do MYFUNC()+3->VARIABLE

And IIRC there is already such a thing - for without peephole-optimizations hit ZOOM instead of ENTER when compiling
« Last Edit: December 20, 2012, 11:07:40 pm by Sorunome »

THE GAME
Also, check out my website
If OmnomIRC is screwed up, blame me!
Click here to give me an internet!

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Features Wishlist
« Reply #3104 on: December 21, 2012, 01:23:03 am »
I'm probably a crazy person. so please ignore this if I am one of those. The first pass I guess is where it converts it into assembler, and then the second is optimizations? Something I'd like is for it do another pass of peephole optimizations, but make it non-default so that if someone's crazy/really needs whatever additional  little things it can do, it'd be added, by holding some button, like Mode when compiling to make it do another round of optimizing/shrinking. Other than that, that's all that I can think of right now as far as my "would like to see" list. Also, I imagine that Axe is already using the "full" 15mhz on the ti-84s, but if it isn't, I'd love for it to start using it. I imagine it is(as the compile times are rather quick, for everything I've tested/wrote), but if not I'd love for it to be there.
As Sorunome said, there is already a peephole optimizer. There is also the function #ExprOn if you really want to save space.
Axe uses 15 MHz when compiling on capable models, and if you want to use it in your progs, use Full.

One other thing that I'd love to have is for it to have the subroutines be able to return a value as the built in functions of the calculator/axe ones do. As this'd help make my code a tad bit more clean, there's already the option of giving subroutines variables, but being able to return one would be uber-awesome. I'm not even talking about passing around ptrs with mass amounts of memory, just some way to return a 2byte value would be uber-awesome/useful for people like me who are used to c.
Your routines always return a value but you don't know that. In short, they return the value of the last calculus.
Example, try writing this:
1
+2
→A
*2
→B

Then, you have 1+2 in A and A*2 in B, because this is in fact like this:
1
Ans+2
Ans→A
Ans*2
Ans→B

where "Ans" is the 16 bit register hl (and you can compress your code to 1+2→A*2→B).

So if you want your routine to return a value, just do something like that:

.code here
Routine()
→A
.code here

Lbl Routine
.code here
B
Return


Then your routine will return the value of B. Of course, instead of B, you can put r1*2+4 or 8, and instead of →A after the routine, you can put *4→F or i don't know, but what you asked for is already possible.
« Last Edit: December 21, 2012, 01:24:12 am by Hayleia »
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s