Author Topic: Features Wishlist  (Read 690132 times)

0 Members and 3 Guests are viewing this topic.

_player1537

  • Guest
Re: Features Wishlist
« Reply #600 on: May 14, 2010, 10:25:50 pm »
sorry, but what do you mean by single character operators?  and the main reason I'd want to change the syntax is because otherwise I'd have to change a ton of source for my program, and its harder to get to the new and/or/xor characters

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 #601 on: May 15, 2010, 12:16:59 am »
By the way, the standard and/or/xor still work as bitwise functions as long as the numbers you're dealing with are both single bytes.  Only the double byte numbers require the new syntax.

What I meant by single characters is that it is more readable to write: "A*B" than it is to do "A times B"
Similarly, "A&B" is easier to read than "A and B" (the ampersand is not the actual symbol, I'm just demonstrating)
___Axe_Parser___
Today the calculator, tomorrow the world!

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 #602 on: May 15, 2010, 10:18:19 pm »
Just a thought:

IIRC, Axe compiles all the code and skips all the data on the first pass. Then, on the second pass, it appends all the data to the end of the compiled program, creating space as it sees fit. What if these commands were made:

FnOn -  Activate BASIC command mode.
FnOff - Deactivate BASIC command mode.

Here's where my idea comes in.
What if Axe made three passes? The first pass would check to see if there are any FnOn or FnOff commands in the program, skipping everything else. The second and third passes would be the normal Axe compilation.

For example:

First Pass:
Check for any FnOn and FnOff commands. If so, save that line and skip over all code until the end of the program is reached or the FnOff command is reached.

Second Pass:
Compile programs.

Third Pass:
Append data.

So, penultimately, the program code is the ASM version of this.

Code: [Select]
:Asm(prgmAXE1
:<TI-BASIC code>
:Asm(prgmAXE2
 

tl;dr: Axe should compile subroutines and insert them into a large ASM program if BASIC commands are possible.

Of course, all of this is useless if Quigibo figures out a way to reuse commands for different purposes.
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 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 #603 on: May 15, 2010, 10:43:08 pm »
I doubt I'm going to have a "Basic Mode".  Its more likely that BASIC programs will be token data just like strings are text data and sprites are hex data and then there will be a command to execute that data.

fnOn and fnOff are the enable and disable interrupts commands since there is also the fnInt command and they just go together so perfectly for this.
___Axe_Parser___
Today the calculator, tomorrow the world!

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 #604 on: May 15, 2010, 10:48:10 pm »
Interesting.
How will hybrid programs be handled?
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 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 #605 on: May 15, 2010, 10:49:31 pm »
I don't even know if its possible yet, so we'll see what happens when I get to that.
___Axe_Parser___
Today the calculator, tomorrow the world!

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 #606 on: May 16, 2010, 10:27:23 pm »
Also...

The idea of custom fonts was brought up. [Personally, I think it would be very memory-intensive.]

This as well as the idea of sprite rotation by any angle. [I think that was brought up before...]

Also, SortA(), SortA()r, SortD(), SortD()r.
« Last Edit: May 18, 2010, 07:03:48 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 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 #607 on: May 18, 2010, 08:06:34 pm »
Sort command would be nice

Something like

SortA(Pointer,Bytes

For example, if you did SortA(L1,27), it would sort the first 27 bytes of pointer L1 from lowest to highest number.

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 #608 on: May 19, 2010, 12:00:19 am »
Yeah, I've got that working already now, except there's a really weird bug I'm trying to fix.  The actual sort routine is very small and fast, its only 21 bytes and sorts a 256 element list in about 1/4 of a second in 6MHz mode.  I'll probably make it larger though to handle sizes greater than 256.  I'm using insertion sort.

By the way, the main focus of the next version will be on variables.  I already have Ans saving and loading working, I expect to have strings, real variables, Picture files, and other things like that all readable and writable.  And I'm also going to add the ability to create programs.  It's possible some existing syntax might change but that seems unlikely at the moment.
« Last Edit: May 19, 2010, 12:02:40 am 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: Features Wishlist
« Reply #609 on: May 19, 2010, 12:06:57 am »
Wow that's quite fast. The TI-BASIC Sort( commands takes two seconds to sort 100 elements on a regular 83+ and one second on a 83+SE/84+

And glad to see you're planning on adding Ans support. It will be very useful for people who make Axe games divided into multiple programs or libs for BASIC programmers.

Keep up the good work!

Btw next version will be 2 pages, right? I noticed the previous version was getting pretty close

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 #610 on: May 19, 2010, 12:19:02 am »
Don't know yet, but I haven't started optimizing the parser itself, so I think I can make it small enough to fit on one page, at least for the next couple updates.  Probably 0.3 will be the time when I switch to a 2 page app.  However, the parser will not be larger than 2 pages at any point.  If I want to add a suite of helper programs, I will add it as a separate optional app.
___Axe_Parser___
Today the calculator, tomorrow the world!

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 #611 on: May 19, 2010, 06:13:41 am »
Strings?
You plan on putting restrictions of the static pointers?
Or are you making entirely new variables?
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 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 #612 on: May 19, 2010, 07:24:02 am »
The TI-Basic variables, if I understand it correctly
"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 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 #613 on: May 19, 2010, 07:34:50 am »
Yeah, but the static pointers already take up the namespace for the variables.
How will he implement them?
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 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 #614 on: May 19, 2010, 07:42:22 am »
Probably the same way appvars are: with storage into strings.
You'll have to ask quigibo for how he actually plans to do it, but it seems you'd have something like:
"Str8"->Str1
If GetCalc(Str1)->X
{X-2}r->S
X+S-1->E
For(A,X,E
Disp {A}->Frac
End
End
Disp i
Which would display Str8's contents on the homescreen, or nothing if non-existent/archived.
"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.