Hello everyone!
I am working on 3 projects right now: 2D Minecraft CE, Launcher for 2D Minecraft CE, and finally, a NEW PROJECT... Advanced Calc CE!!!

Written in TI-BASIC, Advanced Calc CE is a new calculator-based program. Based from one of my older projects, Advanced Calc CE is a new calculator she’ll, with better improvements than the older project!

You can open a built-in command line, run any program, plot, graph, and draw on the stock graph screen or a full graph screen (written in ICE). You can solve word problems too!
I plan on basically making this a better way to solve any kind of calculation you might see or thing of! What’s even better? Advanced Calc also features a built-in File Manager (written in ICE as well), which allows you to edit and copy any variable’s data to another variable, given they’re both the same type of variable. Fortunately, you CAN copy/convert Lists to Matrices or Matrices to Lists! There’s even a dark theme option, thanks to TheLastMillenial!!!
There will be MANY MORE features to come!

Currently in alpha version 1.3.6, no release yet.

Already added features:
- Standard calculations, including variable calculations.
- Command Line added, but advanced commands are not added yet, except “execASMhex”, which can run assembly hex codes.

Features still being added:
- “execASMhex” command in the Command Line.
- “open.<built-in app or program>” command in the standard calculator mode
- Word problem solver/built-in calculator
- Pythagorean Theorem solver
- Advanced Calc help menus (one for the calculator commands and one for commands for the Command Line)
- A few more features not listed

*NOTE: Many of the features not available with TI-BASIC code, both planned ones and implemented ones, may either be programmed in ICE or Assembly. Both ice and asm are compiled programs and are executed within Advanced Calc CE!

Please help me by giving me ideas for features and commands you think I should add! I’d appreciate asm hex codes not listed in the Hex Codes List already created.

But I have a question: Is there an asm hex code I can use to open a program easily, where it’s name is saved in ans?
Sounds cool! I think the fact that it has math features built-in will make it really useful, so you don't need to switch back to ti-os to do a calculation.

I'm really curious how you are planning on writing a word problem solver. Are you just going to include options for different kinds of word problems, where you fill in blanks, or are you actually going to read the whole problem and solve it?

If it's within your abilities, I think it could be nice if you were to add some basic CAS functionality into it. Just a thought Wink.
CamelCode wrote:
Sounds cool! I think the fact that it has math features built-in will make it really useful, so you don't need to switch back to ti-os to do a calculation.

I'm really curious how you are planning on writing a word problem solver. Are you just going to include options for different kinds of word problems, where you fill in blanks, or are you actually going to read the whole problem and solve it?

If it's within your abilities, I think it could be nice if you were to add some basic CAS functionality into it. Just a thought Wink.


About the word problem solver...
You type a word problem you see, as you see it, and it will solve it for you. When I finish it, when it’s dinished, you can type the problem as you see it. It won’t have anything like fill in the blank or anything, but it solves a word problem, as you see it in your math book, for example.
Like if the problem is “What is 482*7?”, you type “What is 482*7?” in the solver.
It doesn’t YET function, I’ve been adding a pythagorean theorem equation solver feature in Advanced Calc. But it’s about finished! Then I’ll start adding basic functions to the word problem solver!

About the CAS equation/math solver and/or CAS functionality:
Tell me some of the CAS functions and I’ll add them! What I mean is, give me a few examples of CAS math equations or functions, so I can make Advanced Calc CE understand the basic CAS math and functions.

This is to everyone who’s interested in Advanced Calc:
If you have a request for any kind of feature in which you think I should add, you can post it in this forum and I’ll get back with you soon after! I always check this forum at least 1 time every day, but it’s normally more than that!
Thanks to you all for requests, questions, and hopefully future community support
Quote:
Like if the problem is “What is 482*7?”, you type “What is 482*7?” in the solver.

Is this second-grade level math? What purpose does this serve.
MateoConLechuga wrote:
Quote:
Like if the problem is “What is 482*7?”, you type “What is 482*7?” in the solver.

Is this second-grade level math? What purpose does this serve.


It’s an example Mateo, it will hopefully be able to solve any word problem you throw at it, but I was just stating an example. And yes, that example IS second grade math, but it was simply an example.
I think the point you are missing here is relevance and usefulness. Many of the features you are planning in your shell are redundant of features available in full assembly shells that already exist (or in the OS itself). Said shells have their history behind them, community support, are proven stable, and have been around longer. If you intend to compete with these shells, you will lose, especially considering the inherent drawbacks of TI-Basic, relative to assembly. Here is a list of the features you indicate and what they are redundant of:

- “execASMhex” command in the Command Line. (This is redundant of the Asm() token, which is easier to use)
- “open.<built-in app or program>” command in the standard calculator mode (Redundant of the general [PGRM][Run] method of running stuff)
- Word problem solver/built-in calculator (A built in calculator, inside a built in calculator?)
- Pythagorean Theorem solver (This one isn't a bad idea)
- Advanced Calc help menus (one for the calculator commands and one for commands for the Command Line) (There's many different apps that provide this)
- A few more features not listed (well, don't hold back)

A program usually does well, or garners more community support, if it offers something that hasn't been done before, or something that is fun to play with but not necessarily useful (like my BlastFIS program, for instance, which is totally useless but fun to try to goof off with). Since mathematics is the biggest saving grace among your proposed features, and the most unique, I would strongly suggest making a mathematics shell, and focus on that.
ACagliano wrote:
I think the point you are missing here is relevance and usefulness. Many of the features you are planning in your shell are redundant of features available in full assembly shells that already exist (or in the OS itself). Said shells have their history behind them, community support, are proven stable, and have been around longer. If you intend to compete with these shells, you will lose, especially considering the inherent drawbacks of TI-Basic, relative to assembly. Here is a list of the features you indicate and what they are redundant of:

- “execASMhex” command in the Command Line. (This is redundant of the Asm() token, which is easier to use)
- “open.<built-in app or program>” command in the standard calculator mode (Redundant of the general [PGRM][Run] method of running stuff)
- Word problem solver/built-in calculator (A built in calculator, inside a built in calculator?)
- Pythagorean Theorem solver (This one isn't a bad idea)
- Advanced Calc help menus (one for the calculator commands and one for commands for the Command Line) (There's many different apps that provide this)
- A few more features not listed (well, don't hold back)

A program usually does well, or garners more community support, if it offers something that hasn't been done before, or something that is fun to play with but not necessarily useful (like my BlastFIS program, for instance, which is totally useless but fun to try to goof off with). Since mathematics is the biggest saving grace among your proposed features, and the most unique, I would strongly suggest making a mathematics shell, and focus on that.


I know what you are saying, and I understand that. I understand what other fellow programmers think too. Advanced Calc seems like a bad idea... I mean, it’s in BASIC, it can take a while to make calculations the more code that’s added, and some errors and incorrect answers can occur if i it’s code isn’t thoroughly tested. Many of the features are in the calculator itself... I understand that, but you all should think about the students in schools who moght have to use a TI-84 CE. It can be hard for them to learn how to perform math problems.
I mean, it was hard for me when I first used a graphing calculator, like it was extremely hard. I couldn’t understand what my teacher was meaning by all the problems and how to solve them by using key shortcuts.
You all need to see how useful it would be to younger kids who are in school. I’m making it for them, so it wouldn’t be hard on them like it was for me. I think about other people, you know... and I try to make SOMETHING useful for them to use.
I want this to be my first full success, since every other program/game I make is either not finished, has bugs, or is unstable or unusable. It’s hard for me to make anything that someone... anyone.... would use. I’m only 17. I don’t know about all the other languages. I’m not as good as all of you... it’s hard knowing that I can’t make anything useful...
Oh my goodness please don't be so sad! Your programs are amazing, a couple of bugs can't hide the awesomeness of them! Being 17 doesn't make you worse or seem less dedicated, in fact it reveals the opposite. It shows that you are truly interested and dedicated enough in something to pursue it this far and be willing to do all this hard work to make the lives of others who want to try it better! Not knowing many languages or not having as much experience is completely ok, you just need to hang in there and keep going until you do understand things. Learning is the best part of coding, you get to feel the rush of excitement when you figure something out for the first time or do something right. My real point here is: don't give up because you feel weak, but let that fuel you to become stronger.
Argus is absolutely right; your programs are awesome!

I'm still very interested in your word problem solver. It seems like there are so many different kinds of problems that could be typed in so many ways... I absolutely don't doubt you can do it though.

I might structure the solver to have certain types of problems programmed in, and use different keywords to identify what kind of problem was entered. Then I would find all of the numbers in the input, and using their context, figure out what part of the problem each one is. Then obviously just solve whatever the problem is.

I really hope you do go through with this project, and I can't wait to see where it goes!

Edit: I hope I didn't discourage you Unsure, I really hope you finish this!
TimmyTurner62 wrote:

I know what you are saying, and I understand that. I understand what other fellow programmers think too. Advanced Calc seems like a bad idea...

No, it's not a bad idea, but I personally do think it's a bit far-flung. You've got a math tool mixed with with a Terminal, mixed with a RunProg clone, mixed with a shell.. My suggestion is not to abandon your project or to discourage you, but moreover to *encourage* you to reframe it on a more concentrated basis and focus more on its selling points. You've got like 4 different programs you could make in there, and you're lumping it all into one.

TimmyTurner62 wrote:
I mean, it’s in BASIC, it can take a while to make calculations the more code that’s added, and some errors and incorrect answers can occur if i it’s code isn’t thoroughly tested.

TI-Basic is incredibly limiting in that regard, yes. I would encourage you to spend some time learning C or ICE and implement it in that.

TimmyTurner62 wrote:
Many of the features are in the calculator itself... I understand that, but you all should think about the students in schools who moght have to use a TI-84 CE. It can be hard for them to learn how to perform math problems.

This is the one thing I'll encourage you against, because it amps up the uselessness factor. It's a safe bet that anyone using a calculator can use it effectively to do basic math. For more complex math, like symbol interpretation or a word problem solver... that's a different animal. Those things... complex math... are what I personally would focus your program on. There aren't too many all-purpose math tools around that are well made. And if you'll notice... that's the thing that's got the most people interested on this thread.

TimmyTurner62 wrote:

I mean, it was hard for me when I first used a graphing calculator, like it was extremely hard. I couldn’t understand what my teacher was meaning by all the problems and how to solve them by using key shortcuts.
You all need to see how useful it would be to younger kids who are in school. I’m making it for them, so it wouldn’t be hard on them like it was for me. I think about other people, you know... and I try to make SOMETHING useful for them to use.

It's commendable, and I can relate, just keep in mind that if you make something overly complicated, you defeat your own purpose.

TimmyTurner62 wrote:
I want this to be my first full success, since every other program/game I make is either not finished, has bugs, or is unstable or unusable. It’s hard for me to make anything that someone... anyone.... would use. I’m only 17. I don’t know about all the other languages. I’m not as good as all of you... it’s hard knowing that I can’t make anything useful...

Once again, I can relate. And, I'll share a personal anecdote. My first contact with the Cemetech community (and calc community in general) was making the radical claim that I was going to make a Zelda game, an assembler for the calculator, and then an antivirus program. One of the first pieces of advice I got was to start small. I credit KermMartian for that one, although it didn't sink in immediately. Time and time again, I tried to start projects and failed because I did not have the skill to complete them. Eventually, I decided to take Kerm (and the community's advice) and work on a few smaller programs... a basic math utility, a few science programs, and then a Yahtzee game. Fast forward a few years, *actually taking people's advice* and I have finally now pushed out that antivirus I talked about (it's pretty stable mind you), and am back on a certain other project I teased a few years ago that's a bit... out in space... and while I do have the assistance of other people on aspects of it I am unfamiliar with, the vast majority of the calc-side programming I am now capable of doing.

The subliminal message here is that the community is not giving you advice to hurt you or put you down. We want you to succeed. But we also know that trying and failing is far more discouraging than being discouraged from overreaching yourself before you have the skill level! Take our advice, it's meant to help you.
TimmyTurner62 wrote:
MateoConLechuga wrote:
Quote:
Like if the problem is “What is 482*7?”, you type “What is 482*7?” in the solver.

Is this second-grade level math? What purpose does this serve.


It’s an example Mateo, it will hopefully be able to solve any word problem you throw at it, but I was just stating an example. And yes, that example IS second grade math, but it was simply an example.


I totally agree with ACagliano. With that being said, explore different ideas that are new and useful, cutting down on time other methods take to solve it. Asking the calculator "what is 482*7" is going to take a lot longer than to type than simply inputting "482*7" on the homescreen. Even typing "evaluate the derivative of (e^x)ln(x)/cot(e^(-x)+x^2) at x=3" is going to take longer typing that beast out than actually solving it by hand. Try to aim for efficiency and convenience when taking on a project like this. And if this can't be accomplished, add something to it that's original or fun. But through my experience in two years of calculus, there aren't many ways to make a math problem "fun" Very Happy
Thank you all for the advice and help!
I’ve finally made a pythagorean theorem solver *test*. It’s kind of fast, but i think making it in ice and running it when its needed is a better idea.
I tested it, and it works. You could type “64^2+?^2=18^2”, where you type in what you know, and put an “?” where it needs to find that value... and it’ll solve it for you!
Thank goodness it works! I’ll try uploading screenshots hopefully soon... Smile

EDIT 1:
I’m gonna try to post some screenshots here, from a phone... i hope this works...

Food for your eyes (earlier version’s screenshots)


Looks good, so far, I like the dark mode. If you’re programming this all oncalc, I would recommend backing up now, either by making a copy of the program with rcl and archiving it, or backing up the whole calc on your computer with TI-Connect, as this seems like a good deal of progress.
epsilon5 wrote:
Looks good, so far, I like the dark mode. If you’re programming this all oncalc, I would recommend backing up now, either by making a copy of the program with rcl and archiving it, or backing up the whole calc on your computer with TI-Connect, as this seems like a good deal of progress.


Yeah I learned to back it up so if it resets I can restore it. I cant afford to lose this like I did with my Launcher for 2D Minecraft CE project Sad

But yeah, I always try to back it up on-calc.

Anyways, thanks for the support, and I wanted to say Advanced Calc is making fairly quick progress. Let’s just hope it doesn’t have any bugs or problems when it’s done...
epsilon5 wrote:
Looks good, so far, I like the dark mode. If you’re programming this all oncalc, I would recommend backing up now, either by making a copy of the program with rcl and archiving it, or backing up the whole calc on your computer with TI-Connect, as this seems like a good deal of progress.

Or use the Snapshot feature of Blast TI File Integrity. http://clrhome.org/blastav/snapshots.php
ACagliano wrote:
epsilon5 wrote:
Looks good, so far, I like the dark mode. If you’re programming this all oncalc, I would recommend backing up now, either by making a copy of the program with rcl and archiving it, or backing up the whole calc on your computer with TI-Connect, as this seems like a good deal of progress.

Or use the Snapshot feature of Blast TI File Integrity. http://clrhome.org/blastav/snapshots.php


Ok. When I get a usb cable and a pc, I’ll get it.
I can usually use a school MacBook in my 7th period class when we have a substitute, so the pc part I can work around. And about the usb cable... I had one at one time, but it was about 2-3 years old so it broke. Luckily, I know how to temporarily splice cables, so they’d work until they’re pulled apart, but I don’t have anything, like electrical tape, to keep them together and keep the different wires separated.
But at this point, I’m about to go CRAZY!!! I’ve seen sooo many new and cool stuff for a CE being released or updated, and I don’t have a cable, and rarely get access to a pc.
So I’m almost determined to look all throughout my house for another usb cable!

Anyways, thanks for the help, and I’ll definitely get Blast File Integrity Software on my CE!
Progress Update:
Since this is in TI-BASIC, it’s obviously slower than the other languages available for the TI-84 Plus CE, but as I’m adding code, like a new feature or calculation routine, I always make sure it still is almost as fast as it was before adding the code. I’ve never had to wait over 2-3 seconds for it to make some basic calculations, as well as more-advanced form of calculations.

iPhoenix has been so kind as to pming me about trying to learn asm. I want to learn, but I can never find a SIMPLE list of the hexadecimal codes and their simple explanations, like “C9 is Done. It quits the code and returns”, or whatever. I mean, C9 is literally the only one I know what it is and how to use it.
If ANYONE knows of a simple document about asm hex codes, please tell me the link or give me the document. OR...
If ANYONE is so kind as to making a simple document covering asm hex codes (as I said above), would you be kind enough to make me one so I can use? It would be useful to me and to others as well!
I APPRECIATE ALL THE SUPPORT!!!!
Thanks!

Code:
I can never find a SIMPLE list of the hexadecimal codes and their simple explanations, like “C9 is Done. It quits the code and returns”, or whatever.


Commands start on page 79:
http://www.zilog.com/force_download.php?filepath=YUhSMGNEb3ZMM2QzZHk1NmFXeHZaeTVqYjIwdlpHOWpjeTlWVFRBd056Y3VjR1Jt
In asm, you use mnemonics to make it easier to code. For example, the mnemonic for C9 would be "ret" since it resets the program counter to the initial value, effectively terminating the program. Hex opcodes are just what the mnemonics actually represent. Since its impossible for someone to remember the entire instruction set and memory locations for all the calls, (which is what you would need to do in order to program exclusively in hex) you should look into coding with actual mnemonics and an assembler. This page explains how to set it all up. You can find the instruction set here. Its for the Z80, but it should do the trick.
You should also take a look at this include file which contains a whole bunch of romcalls.
If you're not really interested in learning any asm and you just want some opcodes to play with, you can take a look at the list on tibasicdev, although its a little messy because some were written for the CSE and others for the CE. The monochrome section of the site also contains some good stuff, but you will generally need to tweak the code and re-assemble it to get it to run on the CE.
If you want to learn assembly, I recommend learning the mnemonics and using an assembler rather than typing hex codes on-calc. This isn't just because it's harder to remember hex codes, but because using an assembler can handle labels for you. In order to have your code run more than once, or execute conditionally (that is, in order to use the equivalents of the If, For, While, Repeat, and Goto commands), you need to specify the location of the code you want to go to. However, the exact location of the code you want to jump to moves around as you add more code to your program, so each time you added a new hex code you would have to change the addresses of every jump instruction in your code. This is obviously very error-prone, as it's easy to miss one jump if you have a large amount in your code. Hex codes are also much more difficult to read than mnemonics.

If you are limited to on-calc programming, I think someone was working on an on-calc assembler at some point, but I can't seem to find the link right now.

However, I would strongly recommend using a computer for this. If you don't have one, you could pick up a Raspberry Pi Zero W for $10-$20, and log in to it using your phone. Also, you could write assembly programs in SourceCoder, and then turn the output program into hex codes to type on a calculator.

If you are absolutely sure that you want to learn machine code opcodes, the closest thing to a simple list that I could find is Runerbot's config file: https://github.com/runer112/RunerBot/blob/master/omni/ez80/ops.txt
That only gives the binary representation of each opcode, which you can convert to hex. It also gives a basic explanation of each opcode, but it might be more confusing than the file Mateo linked, which goes into more detail about each one. Mateo's also has a list of all mnemonics and their opcodes on page 384.
The reason that no "simple" hex code list exists is that most programmers work with mnemonics until the very last step, so it makes more sense to document things based on the mnemonic than the numerical representation.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 2
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement