Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - z80man

Pages: [1] 2
Casio Calculators / Casio Archives
« on: November 15, 2011, 12:52:58 am »
One thing that the Casio community currently lacks and I believe is holding it back is an archive system similar to Other Casio hosting sites, are often anti-gaming, nearly dead, or rarely frequented. Although the Omnimaga archives are great they aren't as open to the public as other systems are. What I was wondering was if it would be possible to host a site dedicated to maintaining archives of programs developed for Casio calcs. There are certainly many cost considerations as hosting a site isn't free and it would also need to be structured in a way so that it wouldn't compete with existing calculator based sites. Would anyone else support a similar venture? 

Casio Calculators / Prizm developer code of ethics
« on: October 30, 2011, 07:12:41 pm »
Here is a list of rules and suggestions that I believe those who develop for the Prizm should keep in mind for their apps. Many of these apply to all platforms whether it be other calculators or computers but a few are more targeted at the Prizm.

  • Treat the user's calculator with respect. Don't use any code that will put THEIR calculator at risk! Test your programs extensively and remove any holes that could potentially cause a major error. Even if you're not liable for damage, these types of incidents can tear apart communities.
  • Applications need to be free. I shouldn't have to even say this one because it rare to happen on a calculator and no good distribution method currently exists. Do note that if you choose to follow this path, few if any people will buy your apps.
  • I can't force you to do this, but open source really is a good idea. Source stealing is very rare these days and you really shouldn't care too much if someone borrows a routine. Yes, they should credit you but it's not like your losing any money by their doing so. These are free apps, by the way, so any sharing is only benefiting the common good and remember that our goal is not to please ourselves but to please our users.
  • If you choose to follow an open-source approach, keep your code very clean and well commented. Explain what each function does and how the more complicated algorithms work. Additionally, you should provide documentation for the user on how to compile the application or, better yet, provide a shell script and makefile.
  • Do everything you can to remove bugs. The best way to find bugs is to try to purposely break your programs to see how they respond to odd conditions. If a program asks a user to enter in how much money they would like to bet, enter a negative number and see what happens and if needed fix the resulting bug or glitch. Another good way to test for bugs is to release alpha and beta versions of your apps because others may find issues you never knew existed.
  • Provide a line of communication for your users. Not everyone has an account on Omnimaga or Cemetech, so you need to provide an email, not only so you can provide the occasional help but also so users can report those all-important bugs.
  • Your distribution file should include a readme. This should contain usage instructions, compilation directions, and how you can be contacted. Make it easy for the user to find what they're looking for and don't make it too long.
  • Value user friendliness over extreme optimization. I'm not condemning optimization—in fact, every program should be extensively optimized—but what I'm warning against is overdoing it. You should always program in extensive exception handlers to prevent the user from breaking your apps. Graphical appearance should also be focused upon. Most users would prefer a sharp UI over an additional frame per second.
  • If this is an ongoing project, updates should be regularly released and easily available. Even if an update only fixes a few minor bugs it is still worth it to release.
  • Maintain a project topic on a calculator forum. It is recommended that the first post contain all of the most recent updates, screenshots, and information as it is easiest to find in that format. It is also a good idea to have a change log there or in your readme file as it provides a full development history.
  • Remember to credit everyone who helped with development of your project. This includes programming, graphics, ideas, music, etc. This should be done in the readme, the project topic, and if possible within the application itself.
  • Design your programs to have full forward compatibility and, unless it would hinder application development, full backward compatibility. Don't assume that Casio will never modify the Prizm in the future because chances are that we will see some major changes just like we've seen with every other calculator in history. How you do this is up to you, but one way to do this to make effective use of syscalls as they are pretty well written in stone; a well designed program or routine will also stand the test of time.
  • Keep a common user interface. Just like most Windows, Mac, or Linux apps have a similar feel within their own OS we ought to do the same. The best way to keep the look and feel of apps the same is to use either OS or shell calls to draw windows and other UI elements.
  • Keep backups of your projects! This cannot be stressed enough. Store updates frequently on multiple computers, on flash drives, online, or in that cloud thing. One thing I recommend is forming an account on GitHub ( You can keep your projects in an online repository and it can also make distribution easier too. Many major open source projects are also stored here including the Linux Kernel which it was originally designed for.

Miscellaneous / Notable Alumni
« on: September 20, 2011, 01:07:16 am »
For those of you who are in or were in high school/university (the vast majority of us) are there any very well known or successful people who used to attend your school? Such examples of notable alumni's are actors, athletes, politicians, and CEO's. At my school our best known alumni are for their athletic achievements, they are:

*Carson Palmer: Who played on our football team, attended USC, won the Heisman Trophy (now on display in our athletic building), and is now the Cincinnati Bengals starting quarterback.
*Mark Sanchez: Not actually an alumni but played for our team in his frosh/soph years and now  is the starting quarterback for the New York Jets.
*Amy Rodriguez: A member of the US Women's National Soccer Team and a 2008 Beijing Olympics gold medal winner.

Miscellaneous / Blender
« on: August 14, 2011, 01:42:51 am »
So yesterday I downloaded Blender cause my sister wanted to add some cgi effects to her stop motion movie that she's been working on. Pretty soon I was checking out the tutorials on Blender's website and made the balloon image. I thought of how I could do more and so I made it an animation. It's pretty simple but I think it turned out pretty well. Creation of the scene took me around 7 hours cause i was still a beginner and rendering to an additional 7 hours cause I was using my laptop. What do you guys think and who else uses Blender? Feel free to showcase your work here. I also highly recommend watching this video in HD

Casio Calculators / Casio Prizm Facebook Page
« on: August 02, 2011, 10:29:30 pm »
The Prizm is now on Facebook!!!  ;D I created a page a few days back and it can be found here
I've been keeping the wall updated lately with important announcements regarding the Prizm. The info page still needs some work on though. Over the next few weeks I'll be expanding on it to make things more interesting. The focus will not only be on games and programs but also education and promotions as it is a general Prizm page and targeted at anyone who is interested in or uses the device. Please stop by and like the page

Walnut / gxp file format
« on: July 08, 2011, 08:19:17 pm »
For the Walnut shell all machine executable programs will use the gxp format which is named after the popular 8xp extension used on the 83+. The packet design was originally designed by Qwerty.55 for use in a Prizm shell and has it's advantages in a variable size header that can be modified in the future with ease. The layout is in packets with each holding a different category. All are optional except for the first one which holds important information such as the name of the program. Other data such as the icon and advanced start up options are available in different packets. This is the current packet layout for the first version of Walnut. It is not set in stone and also keep in mind that the Walnut SDK will fill out these fields.

Code: (gxp header) [Select]

//all packets must be long word aligned

packet 0: required
word: identifier 0x0000
word: SDK version
long: Walnut identifier "wnut"
long: file offset to main
long: checksum of entire file excluding this
long: size of entire file
long: size of main
char: null terminated program name
char: null terminated description
//end of packet 0

packet 1: start-up info
word: identifier 0x0001
word: execution mode (0x0000: from flash in virtual memory, 0x0001: from ram in virtual memory, 0x0002: from flash in the p1 sector, 0x0003: from ram in the p1 sector, 0x0004: from flash in the p2 sector, 0x0005: from ram in the p2 sector)
long: requested origin (should be set to 0xffffffff in most cases for the default origin based off the previous mode choice)
long: value to be written to the FRQCR  0xffffffff for don't modify
//end of packet 1

packet 2: author info
word: identifier 0x0002
word: blank for alignment
long: author's 4 initial identifier eg "z80m"
char: null terminated author name
char: author logo compression mode (0x00: no image, 0x01: monochrome, 0x02: 8 color, 0x03: 256 color using Walnut's palatte, 0x04: 256 color with included palatte, 0x05: 16 bit bitmap, 0x06: 16 bit dxt)
image data: all author icons are 16x16 pixels
char: null terminated author name
//end of packet 2

packet 3: program icon
word: identifier 0x0003
word: height
word: width
char: icon compression mode (0x00: no image, 0x01: monochrome, 0x02: 8 color, 0x03: 256 color using Walnut's palatte, 0x04: 256 color with included palatte, 0x05: 16 bit bitmap, 0x06: 16 bit dxt)
image data:
//end of packet 3

Walnut / Walnut Shell
« on: July 03, 2011, 02:32:53 pm »
Walnut Shell
For the Casio Prizm
Introducing the start of the Walnut shell for the Casio Prizm, fx-cg10/20. Walnut is primarily a shell designed to run executable programs written in assembly, C, C++, and any other compatible compiled language. The goal is to make life easier for both the developer and the user.

For the developer:
No longer will you have to deal with the complicated g3a app format which not only limits your application's run time but also imposes heavy security and an over sized header. Instead you now have the gxp format which is far more flexible and smaller. The layout of the header is based off the packet design by Qwerty.55 which allows for changes to be easily made in the future along with allowing the developer to include only what is relevant to their program. The gxp format includes many optional fields that affect the way the program is ran such as physical/virtual execution and flash/ram execution. You can even set the program's origin and the designated cpu, memory, and peripheral clock before running too. With Walnut being heavily based off of popular computer OS's such as Windows, Linux, and Macintosh, commands in the shell are based off a terminal/command line. This terminal is normally invisible for the users sake but allows for many options on data being passed to a program. To allow the efficient development of programs a Walnut SDK is currently being built. It will be paired with the gcc compiler/assembler and will include a program to convert binary files to the gxp format. Later on this will become a gui based program that will easily manage everything from compilation to distribution. To make programs more efficient Walnut will heavily manage the virtual memory for the program. What this will mean is that because of the virtual layout, programs' executable data will lie on a continuous space while the data has its own space which will make the operand and instruction cache faster. Lastly Walnut provides a large number of built in routines that will cover everything from flash to usb and from sound to data compression. There is even a simple syntax for including and calling external libraries which will have the extension of gll.

For the user:
Although Walnut is primarily designed for running programs it also excels at opening many files too. An example is that whenever a picture file is selected, it is automatically sent to the default picture viewer/editor. Or by right clicking you will get a list of programs registered to open that file. If you're used to any major computer platform you will already know how to navigate Walnut and will find that many operations are the same. Selecting files and folders can be done from a simplistic terminal or from a customizable gui. Loading new programs couldn't be easier due to Casio's built in FAT and usb support. Walnut makes use of the FAT format allowing programs and files to be easily stored in folders. Because the Prizm is a calculator and is limited on memory, compression is very important. Over time Walnut will support a variety of mainstream compression techniques to allow the user to keep all their favorite programs at once. Lastly Walnut will help manage organization by storing the proper files in their proper folders. An example would be that a new bmp image would be automatically sent to the pictures folder.

ASM / flag register question (solved)
« on: June 07, 2011, 12:46:16 pm »
As many can tell from my avatar I'm working on an 83+/84+ emulator for the Prizm. I did have one question when it came to the half-carry flag. Can it be OR'd with bit 4 of the result byte or do I have to process the lower nibble of the operands and check for a half-carry there. Because the SuperH does not use flag registers testing for these conditions can be difficult so I'm hoping that I can just OR the bit, but if not I will have to add many cycles to the emulator to get the proper result.

Casio Calculators / MOVED: Manager Plus is a real Emulator
« on: May 18, 2011, 02:45:35 am »
This topic has been moved to News.

News / Manager Plus is a real Emulator
« on: May 18, 2011, 02:15:29 am »
I was playing around on Casio's Manager Plus free trial for the Prizm when I noticed some new functions. When exploring the memory management app I came across an option to import and export files from your computer. Curious as ever I took the latest build of Insight and sent it to the emulator. To my surprise it showed up on the main menu correctly and even more surprising it ran somewhat correctly. This is significant because it was previously believed that this emulator was of the OS only and not the actual hardware. There were a few discrepancies such as during the transparency test when a picture is supposed to be loaded and a few other minor glitches. One thing to note is that it is not a perfect emulation in that it is obvious that Casio modified the original OS to work for this emulator. Functions such as the battery are disabled. Most functions are around the same speed as the real Prizm with a few being faster such as screen drawing.

Issues that I did have with it was that multiple key presses are not supported which led the gif clip I took to end because I could not press the on button and 0 at the same time. Other things is that not being a full emulator means that we cannot upload new OS's the same way, but that could be possible via changing the data files. Interesting things that this provides us is a file called CPU73050.dll which contains the emulation code for the undocumented Super H CPU being used in the Prizm. It is essential now that we do are best to dissemble the code and document as much as we can. I do want to note that my Prizm emulator project Spectrum has not died as there is much to be improved upon, but it is not my top priority right now. This will though provide a good testing bed for the time being.

Steps to run emulator (No Prizm needed, but you do need a PC or wine)
1. Go to and download Manager Plus
2. Install the Manager Plus free trial
3. Download the latest build of Insight provided at the bottom of this post courtesy of Simon Lothar
4. Run the Manager Plus
5. Using the arrow keys navigate to Memory app or just press alpha F
6. Press F3 to import and export files
7. Press F1 to import
8. Find Insight.g3a on the new explorer window and press OK
9. Press F1 to save
10. Press exit to exit (duh)
11. Press menu to return to the main menu
12. Find the Insight app then press EXE
13. Do whatever you want here (I advise not going into the keyboard ports function as that requires multiple key presses to exit from. I would suggest playing around with the DD and VRAM demos along with WriteGraph. Syscalls is locked by default and can only be unlocked by building the Inisight code with removed comments.
14. Use this to play Prizm games if you don't have a Prizm  ;D

Steps for creating animated GIF's in calc capture
1. Start up calcCapture
2. Press Configuration
3. Select New
4. Type Prizm as the name of the emulator
5. Start the Manager Plus software
6. Select FX-CG10/20 MANAGER PLUS (90 DAY TRIAL) - [EMULATOR MODE] - KEYLOG1 as the window title or something similar to this
7. Press Capture
8. set width as 384, height as 216, top as 217, and bottom as 54, adjust as necessary based off the bottom window
9. back on the original screen select no borders and 256 colors
10. Select capture type as animation
11. write an image file name
12. Press activate then capture to begin
13. Upload your screenies ;D

Miscellaneous / Model UN
« on: May 12, 2011, 02:35:51 am »
Does anyone else here have a Model UN aka MUN program at their school. What it is is that you are assigned a country and a UN committee and you must research its policy for that committee's topic(s). Often you will have to write a policy paper ahead of time and submit that to the chairs. The chairs are students who run each committee. An MUN conference will be hosted by a school and many other schools will attend. In committee you debate policy and write resolutions. In the end everyone votes on the resolutions. At the closing ceremonies awards are given to the delegates who showed good skills. The awards from least to greatest are Commendation, Outstanding, and only one Gavel for the best delegate. Now these rules vary from conference to conference, but for the most part is the same. I quite enjoy doing MUN and it can be very rewarding. Next year I will be traveling to the Royal Russel Conference in the UK.

A picture of me dressed up for a conference can be found here

Humour and Jokes / Crysis on Prizm
« on: May 11, 2011, 02:13:28 am »
I didn't think this was worthy of a legitimate thread, but I got a cool Crysis icon set up for the Prizm. The code though causes some crashes :P

My favorite part is just the menu icons which conform exactly with the rest of Prizm apps courtesy of JosJuice

Humour and Jokes / TI employees
« on: April 20, 2011, 01:50:41 am »
Yeah so basically the idea is to post the requirements for working at TI on either the nspire or the 83+ series.

1. Optimizations are key. When adding 9 or 15 use bcall_HLplus9 or bcall_HLplus15 instead of their unoptimized add counterparts.
2. You must know less than 10 asm instructions. If you know more than that then you might try to optimize the code :P
3. f**k user friendliness. We're here to prevent those d**n programmers from playing their games.
4. The teacher is your boss.
5. A certificate of high school dropout is necessary to become one of our coders.
6. When quoting our inspiration for the CX's color screen say, "There was none, we were the original creators" then hide the Prizm you were playing minesweeper on :P

Miscellaneous / assembler directives
« on: April 08, 2011, 03:46:12 am »
As some might know I'm currently working on an SH3 assembler designed primarily around the Prizm. I do need to make sure that I have included all common assembler directives that you use whether it is in computer or calc coding. Here is a list of what I currently have.

Code: (directives) [Select]
What I think I'm missing is some of the conditional pre-compiler directives which I will need to add. The other I'm looking for is the symbol used to indicate a new line. I know in C/C++ it is the ; but that is the comment in asm.   Also anything else I'm missing would be good to know.  

Khavi / Khavi: Java on the Prizm
« on: April 04, 2011, 12:34:23 am »
Many of you here have requested a java virtual machine for the Prizm. (most notably Ashbad  ;)) Well I have been studying my java bytecode and I believe that this is quite possible. If you did not know, java bytecode is a stack oriented language in which the Prizm excels at. Now I did not find any of the jazelle extensions that the arm has, but it doesn't mean that java is impossible. What can be done is code the proper functions for each of the instructions, some of which would only take 1 SH3 instruction. The other thing to do is remove all of those fancy, but unnecessary features of the JVM. Stuff like malicious code testing and maybe partial garbage collecting. So right now I'm kind of busy with about 4 other Prizm projects that I'm working on, but during the summer or maybe after the AP exams, I will have time to get started on this.

EDIT: Changed topic title to include the project name

Pages: [1] 2