For a side TI-Basic project I am working on (a basic implementation of compression algorithms, if I ever manage to do it, that is) I'd need an Asm library that:
1) Is as small as possible - I don't want to use Celtic, because it does not quite match my needs (read below), and I don't want to use DCS because it is far too big for what I need,
2) Can read binary data from any TI-OS var to Ans and write from Ans to any TI-OS file (I guess Ans, actually whatever variable would be fine, if I can access it from Basic. Best would be a buffer where I could access any bit.),
3) Can perform operations on binary data so that I can control it on the bit-level, nibble-level and byte-level, meaning reading or changing these individually - here's why a buffer would be ideal, one can just have the data there without any hassle with it in TI-OS vars like Ans or a string, plus it allows for easier control, as it is known where exactly this data is, and
4) Can convert a TI-OS real and/or string holding a decimal number to the binary data equivalent, and vice versa.

The features I'd need are sorted, from top to bottom, by importance, from high to low. Having such a tool would allow me to control any TI-OS var and thus be able to compress it using RLE, Huffmann Encoding or whatever.

Firstly, of course, if there is such a program, I'd use it (Note however I mentioned Celtic III and DCS as not what I need). If there is none, I'd ask how hard it would be to modify Celtic III to fit my needs and use it. If that would be harder than make one from scratch, lastly, I'd ask how hard it is to make one from scratch.

Now, if it isn't too hard to make, someone is willing to guide and correct me, and later optimize and make it safe to use, I could try give it a shot. To whatever volunteers, though, I warn you, that I have NO experience in Asm, and very little knowledge about the low levels of computing.

Of course I would prefer if some experienced coder would like to implement that, because I don't feel like I am ready to learn Asm yet. Certainly, one day, but really not now. Another option would be Axe, I am, well, more ready, to do that.

If my request is just hard to do and not worth your time or just the effort, just tell me so directly. I understand and it's not a big deal. I probably could even try to do it with a combination of existing libs.

Thanks a lot in advance!
Let's try to answer this. I've honestly no idea if such program exists. If yes, you are lucky. If no: the program is big enough that no one write it 'in an evening': you really need to spend time to make such program, and to be honest, I doubt anyone will do it. Maybe you could do it your own, but if you have no ASM experience it would be hard, I fear. Maybe your best try is either ask people to write small routines for each task you described, and that someone (you) put it all together. Another try would be to learn ASM yourself, and keep a "Nik's ASM questions" topic to put all your questions in. I'm sure many people would love to answer them, if possible, and that way, you could make your own lib. Goodluck! Smile
Why do you want such a small library? Smaller code tends to be less efficient as it relies more on loops and conditionals in algorithms. If you want good performance and robustness, you will want a regular-sized library.
Nik wrote:
1) Is as small as possible - I don't want to use Celtic, because it does not quite match my needs (read below), and I don't want to use DCS because it is far too big for what I need,
The main problem with that logic is that if you assume your users already have Doors CS on their calculators, then you get the functions you need at a memory cost of exactly 0, whereas adding another library will incur a positive memory cost. Smile
oldmud0 wrote:
Why do you want such a small library? Smaller code tends to be less efficient as it relies more on loops and conditionals in algorithms. If you want good performance and robustness, you will want a regular-sized library.
Well, let me correct myself... As small as reasonably possible.
I need no good performance, but my program is supposed to be saving memory, not taking it up... So, if it doesn't make the code like many times slower, I'd prefer to save a few bytes than to have slightly faster performance.

KermMartian wrote:
The main problem with that logic is that if you assume your users already have Doors CS on their calculators, then you get the functions you need at a memory cost of exactly 0, whereas adding another library will incur a positive memory cost. Smile
That's the thing, I do not want it to depend on DCS. I may of course add a DCS version of it, but I'd like to make it as standalone as possible. I think you misunderstood my question about how hard it would be to modify Celtic III - I mean the older program version, not the app.

To clarify myself on my intentions, I just wanted a program that would be able to be ran overnight or whatever to compress a selection of files with the most efficient algorithm for the particular file. I hope to achieve very good picture compression (RLE, I hope for a 50% size reduction on average), and reasonable program and other data compression (Presumably Huffman Encoding in this case, perhaps in combination with RLE). I will look into more algorithms too.

But most importantly, it is supposed to free up space and thus should use as little memory as possible. And performance is not as important, because I can not make it fast enough to be "real time" anyway. A user would leave the calc alone for some time anyway, at least, so may aswell take an hour or two for compression.
And decompression would be comparatively fast, I expect a few minutes tops.
  
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