Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.
The Utilities add-in enhances your Casio Prizm calculator by providing functionality not originally found in the OS, or by providing enhanced alternatives to existing functionality.
Download links are after the screenshots, on the "Download" section.



Features

See here: https://github.com/gbl08ma/utilities#features

Some remarks:
- Weights less than 185 KiB, saving space on your Prizm's storage memory and speeding up its transfer between calculators.
- Really fast to start up - it's usually even faster than the built-in app Run-Mat!
- It's open source (GitHub)

Download
Download g3a directly (simpler, you can even download directly to the calculator drive)
Download ZIP archive with Read-Me

Download ZIP archive for the PicoC edition - Information about PicoC

If you are planning on hosting Utilities on calculator software archives, please use the unmodified ZIP file which has the Read-Me and license files.
Still, I would appreciate you didn't host it yourself, and just linked to the above links. It makes updating easier and also lets me count the downloads better.
For sending directly to your friends' calculators, you don't need to send the Read-Me or the license.

Installation instructions
To install, connect the Prizm calculator to the computer with a miniUSB<->USB cable. On the calculator, press F1 when a pop-up appears on the screen. Wait for the USB connection to be established. When it's finished, your Prizm will appear on your computer as if it were a pendisk.

Copy "utilities.g3a" to the root folder of the pendisk (i.e., out of any folders but inside the pendisk) and safely remove it. Wait for the calculator to finish "updating the Main Memory". When it does, you should notice a new Menu item, with a Clock icon, called "Utilities".

The first time you run Utilities you'll be presented with the tny. internet media group logo and then a screen with some important notes about the add-in. You should definitely read them. You will then be guided to adjust the clock, something you'll have to do every time you take the batteries off. Don't worry, Utilities will remind and guide you through the process.

Update instructions
Copy the new utilities.g3a over the old one. Refer to the installation instructions for more details. If you used a version of Utilities older than Beta 9, see here.

Usage instructions
Everything should be pretty much self-explanatory - Utilities is made to dispense the Read-Me Smile. Because of that, only less obvious things will be detailed here. To open the settings menu, press Shift+Menu while Utilities is running.

The calculator lock function will guide you through the process of setting a password, the first time you use it. You can contact gbl08ma if for some reason you wish to disable this function (be prepared to follow instructions in a very exact way).

The Add-In Manager only becomes available when the "Show advanced tools" setting is enabled. It is still unstable and may cause system errors. If you see a System Error, you should try pressing Menu and then 1 to try to dismiss it, or you can press EXIT to reboot the calculator. 99% of the times no data is lost or serious damage is done in the event of System Errors.

Checking for updates
Starting with the v1.2 release, Utilities includes a little function that, assuming the calculator's clock is adjusted, will remind you to check for updates after a certain date in the future. However, you do not need to wait for that message to appear. You should check for updates to Utilities periodically, to ensure you have the greatest feature pack and the most stable version. To check for new versions, you should visit this thread or the following page:
http://gbl08ma.com/casio-prizm-software/

License
The add-in is available under the GNU GPL version 2. The license text is available online at https://www.gnu.org/licenses/gpl-2.0.html

Last words
Utilities is the result of over four years of research, work and extensive testing. That said, we can't guarantee you will have no problems using the add-in or that everything will work as described. You are welcome to report problems to the contacts above, as well as modify the source code to your needs as long as you respect the license.

We hope you enjoy using Utilities as much as we did developing it. And if this add-in ever becomes useful, you just found a secret feature Wink

---
Original post for historical purposes: http://pastebin.com/un8i1YS9
Aha, so this is the secret project that you have been teasing us about! It looks very nice, and also very OS-y. How did you make that tiniest font; is that documented in our existing syscall documentation, is it something new, or is it bitmaps? I don't have anything to suggest adding to this yet, but it seems like you're well on your way to a spiffy add-in.
Well, I posted a screenshot of the main screen on SAX yesterday or two days ago, but I don't think anyone has seen it. I've also been ranting around that I must code a stopwatch and timer using Prizm's RTC, but again, nobody seemed to hear me.

I tried to keep it in the OS style while making it look great and not too mean like some things in the OS UI. Basically I added my own touch. I'm also very happy I got scroll-able menus with scrollbars to work in a more or less reusable way (most of the scrolling engine works just by providing the number of items in the menu and the number of lines to show at once).

The tiniest font is PrintMiniMini and it's well documented on Simon's docs, even though I didn't get bold text to work (AHelper already did in his updated Calendar add-in which isn't released yet); looks like I need to do another PrizmWiki marathon in order to add some more syscalls to it.
I also need to bug AHelper to see if he gives me the fixed Calendar drawing code, that is, if he doesn't mind me using it (with proper credit, which is already being given in the About screen anyway). I'd really like not to waste time reinventing the wheel, that is, coding what other people already coded.

Currently the roadmap is:
- Add calendar (with month/year jumping and selection)
- Add timers (probably 6 timers; it's going to be easier than the stopwatch because it won't have 1/100s precision, only second) precision)
- Add stopwatch(es) (with the same precision as the 128 Hz tick allows, and depending on how fast the screen updates with all them running, I may add one or more stopwatches).
- Add task list
- Add calendar events (still very doubtful about this one)
Very cool. Why is it so doubtful that you will be able to get events to work? Doesn't prizm have a well documented file lib?
I tried it, and I like it! Keep up the goood work. Also, making this into a shell would be good. I hate being the only shell for PRIZM out there. Razz
The timers part is now more complete than ever (even before I got to the calendar!), and the biggest difficulty now is storing the giant time values (Unix format) in main memory so that the timers keep "running" after the add-in is closed.
The add-ins keep "running" because their value is based on the time difference between when were put to run/last paused and the current system time. This way, in theory, the timers will still run right even if you take off the batteries, then set the RTC accordingly before accessing the timers feature.

The stopwatches will have more or less the same principle, based on time differences (I must think of a way to store milliseconds, though).

Have a sneak peek of the timers UI (it also supports showing more than 24 hours, i.e. days):


EDIT:
public development preview release 2 is out, download it at the same URL: http://tny.im/hP

This new version features working timers (six timers) which work independently from each other and have second precision. Each timer can be paused and resumed (and everything is stored using just four variables per timer!). The timers keep running (or keep paused) after the add-in is closed and/or the calculator is turned off (just make sure not to change the RTC time and not to reset the main memory/delete the @UTILS folder).

Stopwatches will use more or less the same work principles, except that their value increases and hopefully they'll have 1/128 second precision.

In order to see the "timer finished" message once a timer gets to zero, you'll need to be either in the home screen of the add-in or in the timers screen. Otherwise, you'll only see the message once you enter one of these screens (you see, the OS has no such thing as background processes or notifications).

Tell me what you think Smile
Very, very nice. I love how I can run other addins and still have the timer run. I already know of several things I could use this for, thanks so much. If you could get a calendar with events to work, this would definitely be an addin that won't come of my calc for a long time. Smile

One thing I would add is a way to set the RTC time Wink

BTW, why don't you think you'll be able to get events to work?
Way to set RTC time? You clearly haven't read the first post.

"set these on the settings menu, accessible when you press Shift+Menu (Setup) on the home screen"...

I'm going to add the calendar probably even before the stopwatch. I don't promise anything about the events though - storage is a problem if you want both main memory and the storage memory to be used.
gbl08ma wrote:
Way to set RTC time? You clearly haven't read the first post.

"set these on the settings menu, accessible when you press Shift+Menu (Setup) on the home screen"...

I'm going to add the calendar probably even before the stopwatch. I don't promise anything about the events though - storage is a problem if you want both main memory and the storage memory to be used.


Yeah, sorry, I guess I wasn't paying attention.

Just wanted to let you know that the when I choose brown for the color light, it looks like a dark magenta. Is this just my screen?
Brown looks fine on the emulator. On the screen, the colors that use the red channel are always off (see the tny.im logo on the about screen, and the logo at http://i.tny.im/img/small-logo.png : the orange on your computer screen is most likely much bright, and yet on the Prizm screen it's exactly the same color converted to RGB565).

Similarly, IMO red is a bit too pink on the calculator's screen.
I can't say that the screen on my Prizm ever seems to misrepresent colors as other colors; if anything, my complaint is that the colors are far too washed out / greyish compared to the screenshots I take from the same images. Anyway, this looks great, and I think the timer solution you came up with is probably the optimal one for this situation.
The "washed out/grayish" you see is, I think, due mostly to the shift in the red on the calculator's screen. It may be a "feature" of RGB565, I don't know.

New version, with in-development calendar and calendar events support, is out for download at http://tny.im/hP . Make sure to try the text input when adding a new event; I worked hard on it and it's awesome (I also got symbols input to work, and I now understand how lowercase letters are inserted).

For now the calendar is saved in a storage memory folder called @TESTCAL, in the future this folder will change, but the calendar format will stay the same. You can start adding events, because you'll be able to migrate later simply by moving the files to another folder (the storage file format is complete and works very well).

Please make me aware of any crashes. Sometimes the event management code seems to crash the emulator, causing it to reboot without a system error message (note to self: may have something to do with file handles).
Also, don't forget this is the time for feature requests (I don't promise I'll implement all them, though) Smile
Bugs:

1) when the timer screen flashes and you hit MENU when the backlight is off, the addin fails to revert it.
2) if you have no text for location or description, it is set to "UUUUUUUUUUUU..."

Make sure you release the code for the calendar renderer Razz
About 1), I know about it; tell me of a way to detect when the Menu key is pressed, and I'll fix it.

2) Is most likely a buffer that isn't being initialized/cleared, I'll look into it.

For now, the calendar rendering code is exactly the same as yours, with PrintMiniFix replaced with PrintMini in some cases, and an if condition to check if the month starts on a Sunday, and if yes, disables the gray numbers printing for the previous month's days.
I'll publish the source when the add-in is more complete.
Could you put your pin code lock into this addin?
gbl08ma wrote:
The "washed out/grayish" you see is, I think, due mostly to the shift in the red on the calculator's screen. It may be a "feature" of RGB565, I don't know.
That's an interesting hypothesis. I will try to do a more scientific comparison between a color gamut displayed on the Prizm and on a computer at some point.
KermMartian wrote:
gbl08ma wrote:
The "washed out/grayish" you see is, I think, due mostly to the shift in the red on the calculator's screen. It may be a "feature" of RGB565, I don't know.
That's an interesting hypothesis. I will try to do a more scientific comparison between a color gamut displayed on the Prizm and on a computer at some point.


Yeah, I have noticed that. I like the way colors output on the real calc better than on the emulator. The emulator's colors are much too bright IMO.
I may include some sort of calculator lock on this add-in, but it won't work exactly like the existing one now that I know how text input works Smile

The emulator's colors are very bright because you're seeing the true 8-bit colors, which look less bright on the Prizm screen and so they don't look so annoying.

Some colors really go off, look for example at the orange and brown of the "color light" feature of my add-in, both on the emulator and on the calc. There's a huge difference...

EDIT: forget that bit in my previous posts where I say the calendar format is done... the last field now ends with one \x1E instead of \x1D\x1E, for the sake of using better string manipulation routines (which hopefully are also much safer now).
The bug AHelper reported about the empty description and location now seems to be fixed, but I still need to confirm.
EDIT 2: Actually, looks like my code is able to handle the old calendar format without problems (it seems it's great enough to ignore the last 0x1D). The bug seems really fixed, but I'm yet to test on a real Prizm. The "moody calculator reboot on event insert" is not fixed but I have some clues. Very Happy
New version is up. Changelog:

- Added specific event deletion. This is quite buggy, and sometimes it somehow results in an empty file with 8 bytes set to 0. The code tries to detect this unfortunate event, and warn you about a possible "data corruption", allowing you to try saving again, which most likely does nothing and just results in another data corruption warning; in conclusion, when you see the data corruption warning, that means you've lost all events for that day. Sometimes it also happens it detects no corruption but you're still left with a single empty event (result of an empty 8-bytes file).

- Calendar events are now stored in a folder called "@CALNDAR"; the file format has also changed a bit but the old files are still perfectly readable, so just move them off @TESTCAL and into this folder.

- Viewing calendar events is now much better: you have line breaking for the location and description, along with scrolling (the scrolling math, for displaying the scrollbar correctly and for the scrolling to stop at the bottom and top of the content, took me about six hours).

- Many memory management bugs solved, and others introduced: for some reason, when you have a big file (>7KB) with some big events, you may get System Errors when viewing these big events (you'll notice the description has overflown into the location and title); viewing the smaller events on a big file is fine, as is viewing big events on a small file.

- The bug AHelper reported about empty description and/or location is now also fixed, as is the bug about the Menu-key-on-flashing screen not setting the brightness properly (for the latter, I just made Menu not be handled by the system when on a flashing screen).

Download here: http://tny.im/hP
Please don't forget to report any bugs or give suggestions.
Nice changelog; you certainly got a lot of progress done in a short amount of time! I'm intrigued by this >7KB file error you're reporting; do you suspect that your own code or the MCS functions are at fault here?
  
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 12
» 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

 

Advertisement