EnG
A few years ago, a BASIC programmer asked me to make a utility with a certain set of features (mostly graphics based). After creating a few concept programs and planning things out, I finally found time to devote to this project over the summer. Right now, it is not finished, but it is getting there. Here are some of the cool features it offers, now:

  • If you have a TI-83+ with no extra RAM pages, you have access to 3 drawing buffers. Any model with at least one extra RAM page (so all TI-83+SE, TI-84+, TI-84+SE models) have 10 buffers to use. This includes using drawing functions provided by EnG, swapping buffers, displaying buffers, and copying buffers.
  • Non of the extra buffers use user RAM
  • Any model with extra RAM pages (whether it is 1 extra or 6) will be able to use commands that let them store data there.
  • Strings, sprites, pictures, and other types of data can be backed up to this extra RAM (ranging from almost 9000 bytes to >90 000 bytes of extra RAM)


Since my other big project, Grammer, is planned to give access to all the RAM available on the calculator, the code used here will probably go into Grammer as well. Currently, it has a working file system with data storage and retrieval Smile

Here is a screenie to see how EnG an be used:

As a note, the variables STRING0 and STRING1 are stored as strings because of the .1, not because of their names. I could name a string "GUYScheckTh1sOwt.It's a string!" When it returns 1, it means it was stored successfully, when it returns 5, it means the variable already exists.

For anybody that wants to give it a try, you can click the link below. This is still in planning and development, so things can change. In otherwords, not all the commands are set in stone, so don't go relying on EnG for your awesome games just yet Razz
Download
Looks pretty awesome there Very Happy Can't wait to see more Smile
I think this is great, and a good use of the often-entirely-fallow extra RAM. As I think I mentioned on IRC when you first discussed this project, I have one specific concern. Namely, I know that some Apps assume the extra memory, except what the TI-OS uses for MathPrint and for USB, is fair game. Doors CS, for instance, rampages over a bit of the extra RAM for buffers for Direct USB globalCALCnet. I recommend that you do something clever to make sure that nothing has corrupted the data you store in the extra RAM. Do you store the table of extra variables in normal or extended RAM? If in normal RAM, then you should store a two-byte CRC of each variable, and when retrieving variables, make sure the CRC still matches. If not, you know the variable has been corrupted by some other program using the same RAM. For bonus points, your program could try to learn which areas other programs tend to use, and avoid those areas, but that sounds like a bit of a headache.
I will note in future releases that this is an issue. Usually, though, the extra RAM will be used temporarily for in game use. For example, if somebody has some really intense graphics, they can draw them out and back up the bitmaps, tilesets, or sprites or do whatever else they need. Mainly, though, I think this program will be used to back up variables.
Xeda112358 wrote:
I will note in future releases that this is an issue. Usually, though, the extra RAM will be used temporarily for in game use. For example, if somebody has some really intense graphics, they can draw them out and back up the bitmaps, tilesets, or sprites or do whatever else they need. Mainly, though, I think this program will be used to back up variables.
For temporary use, I of course have no concerns. My only nervousness was with more long-term storage. Out of curiosity, do you know if anyone has tried this out for their own test programs yet, despite your warning that it's not quite ready for prime time? Smile
If I am not mistaken, Chris Human has been testing it out with one of his projects. I don't believe that he is part of any forums, though, and doesn't have a TICalc.org account. I have, however, gotten to see his project and he has asked that I not share it with anybody else until it is finished. I will say that he is using EnG mostly for the graphics. He has also provided a good portion of the planning for commands and organisation which has been great Smile

Basically, the commands will stay the same unless one of us finds a better organisation scheme or a better way to pass arguments.
Sounds reasonable enough, and I'm glad that you have a tester. Now to find out where this person is so I can lead him with a carrot to posting this cool project here. Wink
Haha, I don't know if he'll take the byte Razz

(pun intended, but originally accidental)
  
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
EnG
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