I know it is impossible to prevent a calc from sending a program to another calc (or maybe it is), but is it possible to not allow a program to be run on a different calc?

I had an idea where the program is coded to store a bunch of 0's to a variable, and then checks to see if that variable is set to all 0's. If it is, then the program finds some data unique to the device that it's running on, and alters itself to write that to the variable instead of a bunch of 0's. If it's not set to a bunch of 0's then it checks to see if this device's unique data is the same as the coded one to make sure it's the same calculator. If it's not, the program has been transferred from someone else.

I can't find a good tutorial on altering memory with ICE, and don't know if there is a value in the memory that is different for every device, or if you can even edit a program while it's running. Just wanted to know if it was possible.

My idea might be stupid, I don't know much about the calcs other than TI-BASIC and most ICE commands, but nothing dealing with memory. If there's any other ways that might do the same thing, it would be cool to know, I have a TI 84+ CE if you didn't imply that already
In general if you wanted to hardware-lock, the information you'd have to use is the calculator ID. You can retrieve that with syscall 000340.

To edit a program while it's running, you're asking for what we usually refer to as "writeback" where changes to a program in RAM are saved when it exits. I found an old topic about implementing SMC on the CE, which seems to conclude that it works basically the same as on the monochrome calculators.

As for how to do that in ICE.. I don't know nearly enough about ICE to be able to say how, but it's probably doable since it's fairly easy to do in an assembly or C program.
Tari wrote:
In general if you wanted to hardware-lock, the information you'd have to use is the calculator ID. You can retrieve that with syscall 000340.

I knew there had to be something unique to all devices, this would work.

Tari wrote:
To edit a program while it's running, you're asking for what we usually refer to as "writeback" where changes to a program in RAM are saved when it exits. I found an old topic about implementing SMC on the CE, which seems to conclude that it works basically the same as on the monochrome calculators.

Ok, and this doesn't brick the calculator or anything if you do it right, correct?

Tari wrote:
As for how to do that in ICE.. I don't know nearly enough about ICE to be able to say how, but it's probably doable since it's fairly easy to do in an assembly or C program.

Yeah, I need to figure out how to use the memory functions with ICE. Thanks, this helped a lot!
Just so you are aware, using the product ID isn't a bullet proof method since a user can change it to whatever they want using CERMASTR: https://tiplanet.org/forum/archives_voir.php?id=1581757
  
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 1
» 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