The Mandelbrot fractal is quite a sight.
Such wonder and amazement that can be found while viewing the Mandelbrot fractal can now be had on the Casio Prizm graphing calculator.
In addition this program can also be compiled for the PC assuming SDL is installed.
Just run make and it will be up and running.
There is very little difference in function between the PC version and the casio prizm version, the resolution is higher but that is it.

The controls are
Left, right, up, down moves the window in that direction
Menu key or ESC on the PC, exits to the menu or exits the program (PC)
F1 sets maximum iterations to 65535
F2 sets the maximum iterations to 224 (this is the default upon starting the program)
F3 toggles deep mode which is on by default. This means you can zoom in deeper with a slight performance hit.
I do not notice the difference
1 subtracts one from the maximum iterations
2 adds one to the maximum iterations
3 subtracts ten from the maximum iterations
4 adds ten to the maximum iterations
5 subtracts 100 from the maximum iterations
6 adds 100 to the maximum iterations
Shift zooms in
Alpha (ALT on PC) zooms out
Source code
Screen shots (from the PC version which gets very similar output differing only in resolution).

Anyway if you have any bug report(s), feature request(s), pull request(s), patch(es) or whatever relates to this I would be happy to hear about them.
I have to say these shots look really cool. I need to dump this on my Prizm and check it out Very Happy
Yes just a tip, to get those nice deep blue colors I pressed F1, which increases the maximum iterations and also affects color. Also your post suggests that you don't have your prizm handy. You can also run this on your PC to get a feel for what you will get on the casio prizm.
This program has been updated to support the CG-50. The link to download is the same:

Note that this is untested. Let me know if it works.
ProgrammerNerd wrote:
This program has been updated to support the CG-50. The link to download is the same:

Note that this is untested. Let me know if it works.

All that I get is a white screen on a CG50
This is my fault.
In my linker script I had


        ram (rwx) : o = 0x88160000, l = 512k

Which works on the CG-10/20 but not on the CG-50.


        ram (rwx) : o = 0x08100000, l = 512k

should work on both models.

Please re-download and let me know if this fixed the issue.
I now get a black screen with a white border of about 6 pixels.
RobC wrote:
I now get a black screen with a white border of about 6 pixels.
same for me unfortunately on fx-cg50 hardware
I recompiled it with the latest version of GCC. Maybe it will work now.

It works on my CG10.
I tried on the CG50. Smile
It stops at the black screen in a white frame.
It is possible to return to MENU without freezing. Question
Here is my latest attempt of getting it working on the fx-CG50. I could not see anything in the code that would cause that issue and given that I don't own a fx-CG50 the best I could do was recompile with the latest version of GCC and Binutils and hope for the best:
This is display.h is not fx-CG 50-compatible.

#define VRAM_ADDRESS 0xA8000000

On the fx-CG 50 the RAM starts at 0c000000 in the physical address space. I can see you use the syscall to get it, but both VRAM_ADDR and VRAM_ADDRESS are used interchangeably in main.c.

I tried to test it (I'm very confident it would work immediately) but I've got an ld internal error and I don't want to debug it right now. If you can make another build I'll be happy to try it Smile
Sorry for missing that. I resolved the issue and I've updated the G3A. The link is the same. Please try again.
It works now! This program is nuts. I once made a prototype that could draw the whole fractal decently fast (0.3 ms?) but I never thought of doing progressive detailing, which helps a lot keeping the thing fluid at deeper levels. Surprised
Thank you for testing. I'm glad it's now working on the fx-CG50.

Also what unit is that for the time? If it's milliseconds that would be over 3333 fps (1000 / .3). Would it perhaps be 0.3 seconds (1 / .3 = 3.3... fps)?
Yes it was 0.3 seconds, 3000 FPS is straight up impossible lol. Good catch. I was using 32-bit fixed point for the outer region (as low precision is sufficient) with hand-written assembler and the whole 396x224 image rendered in 311 ms. I thought it was not bad, even though 32-bit reaches its limits rather quickly.

I would probably have expanded it into a whole viewer on a rainy Sunday eventually, but now that I've seen your program it wouldn't be as interesting. ^^
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