Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.
merthsoft wrote:
Ok, I also need some opinions. Should the Lanthanides and Actinides be treated like their own little table when navigating? Like, right now, if you're on 68, and press up, it goes to 100. Should it instead go to 113? I'm not sure which is the more intuitive way to handle that.


I mean, I'd probably have to try it out to make a fair opinion, but treating them like their own table sounds slightly more intuitive.
Alright, I had some friends try it out, and the more intuitive way is the visual way, which is to have it not its own little sub-table. So if you're on 56 and press right, you go to 71, and if you're on 5 and press up you go to 100. I've also gotten an input thing in there. It's using Simon's edit string stuff, and it works for now, but I'll want to change it. If you type "23", it tries to go to element 230, instead of element 23. You need to type "023" to get to 23. So that's a little weird. Anyway, here's a screen shot:

I also need to figure out what license I need to release this under. I stole the atoi implementation from SDCC, and it's GPL, and I don't want to GPL all my code, so I'll need to go find a different implementation before release.
Newlib is mostly BSD and some LGPL and if I go with BSD for libfxcg there shouldn't be any issues with statically linking with it. If you need other routines I can look at including them for you, or you could just write your own implementation for use. And even if you do directly use the code from newlib its not an issue as long as you follow the 3-clause BSD license they used.
A nice little optimized C atoi() implementation might be a fun project for me, not to mention helping you avoid needing the initial zero. Smile Looking great, as expected.
KermMartian wrote:
A nice little optimized C atoi() implementation might be a fun project for me, not to mention helping you avoid needing the initial zero. Smile Looking great, as expected.
The needing the initial zero isn't a problem with the atio(), it was a problem with the input routine. I've since modified it so that's no longer an issue. Also, Casio has release a new OS version, and it adds support for a new add-in, which is a periodic table. I'll keep working on this one, though, for four reasons:
1) Their add-in requires the OS update, which I'm currently unable to install.
2) Their add-in is 1.71 MB, mine is 142 KB.
3) The code might be useful to people for other things.
4) I want to.
So, at the very least, mine'll be useful if you're low on memory, and as a learning tool. So, once Jonimus makes a build of his thing that has an atoi() implementation is it so I don't need it in my code, I think this thing'll be ready for release Wink
I have FINALLY uploaded this.

Download
Prizm Periodic Table of the Elements
Already on my Prizm Smile simple, elegant, small -- this will stay on my calc for quite some time. Nice work!
Since Merth didn't post them in this topic, screenshots!



An absolutely stupendous job, Merth!
Heh, I didn't post the screen shots in this topic because I saved them from this topic, they're just on the other pages. But thanks! Hope this is useful to someone.
merthsoft wrote:
Heh, I didn't post the screen shots in this topic because I saved them from this topic, they're just on the other pages. But thanks! Hope this is useful to someone.
A very good point, and yet another derp for me. Smile I'm sure it will be useful to someone, and I'm happy that we're continuing to expand our Prizm program library.

Merth: did I mention how much I like your blue-bordered popup boxes? Did you make those yourself, or is there a syscall for that?
KermMartian wrote:
Merth: did I mention how much I like your blue-bordered popup boxes? Did you make those yourself, or is there a syscall for that?
The code's included Wink. Here's the F1 handler:

Code:
         case KEY_CTRL_F1:
            MsgBoxPush(6);

            locate_OS(3, 2);
            Print((unsigned char*)concat("Group: ", (char*)(currentElement.group)));
            locate_OS(3, 3);
            Print((unsigned char*)concat("Period: ", (char*)(currentElement.period)));
            locate_OS(3, 4);
            Print((unsigned char*)concat("AMU: ", (char*)(currentElement.weight)));
            locate_OS(3, 5);
            Print((unsigned char*)concat("g/cc: ", (char*)(currentElement.density)));
            locate_OS(3, 6);
            Print((unsigned char*)concat("Melt (K): ", (char*)(currentElement.melt)));
            locate_OS(3, 7);
            Print((unsigned char*)concat("Boil (K): ", (char*)(currentElement.boil)));

            Bdisp_PutDisp_DD();
            GetKey(&key);
            MsgBoxPop();
            break;
Merth, I think your table could use more colors Smiling Cat
What would you suggest?
Cyan! \o/
Haha, ok, but where? Grouping by colors can be done a few ways with the table, do you have any reference image?
Front page news posted for this! Sorry that it took me so long, Shaun. Sad
I'm not sure. Maybe you could have a user defined 'favorites' list which highlights certain elements?
Hey, looks great! You use the Prizm's large resolution perfectly Smile
Deep Thought wrote:
Hey, looks great! You use the Prizm's large resolution perfectly Smile
Hehe, agreed, well-said. Smile I was just wondering what if anything else this might be extended to.
TI-Nspire CX? TI already released a periodic table program for that. It was the first known TI-Nspire Lua program, and it was actually very well-designed: http://www.techpoweredmath.com/wp-content/uploads/2011/04/nspire-periodic-table.jpg
  
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 4 of 5
» All times are GMT - 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