Zasio is my second attempt at writing a graphics calculator for a hand held device that I own. My first was Newtsio which was writen for the Newton. The first program I wrote while I was in college. At the time I was lugging around a Casio calculator, a Frankland spell checker, paper based calendar, and about a houndred notes jotted down on scraps of paper. To say the least I was in need of a PDA. My goal was to get a pda and write programs that would allow me to carry just one device. Today, my needs have changed, but I still find it quite nice to have a programable graphics calculator at hand and when I got a Zaurus I just could not resist writing a calculator for it. With that modivation, I started my second calculator.
Zasio can be downloaded in many different ways depending on your needs. Most people can use the Java Web Start version which will download and install Zasio for you. Mac users can download a version packages to take advantage of the Mac UI. I also have a Zaurus installer for users of that system. Finaly, I have a jar file which cantains all the files needed to run Zasio for those who want a more direct access to the code. All versions have the same requirements, Java 1.1 or better and access to the local system (file system and network).
Commands can be inputed into Zasio in three ways, buttons, editor tab, or file. The button layout is set up in such a way to make it easy for users of a Casio calculator (this is really the only thing Zasio shares with Casio). The second way to input commands is to use the editor tab. In this tab is a large text edit area where you can type very complicated formulas and or programs that you want to executed. When ready, you can execute your commands with the press of the EXE button at the bottom. The third way to input commands is by file. Files can be loaded (and saved) from the edit tab. This allows you to write programs and formulas in an external editor and load them into Zasio.
Buttons fall into three catagories. Buttons that have one use, buttons that have up to three uses, and the F keys. Most of the one use buttons are on the first row under the F keys but a few others are closer to the bottom. These buttons are the shift, ALPHA, EXIT, Menu, Arrow keys, DEL, AC, and the EXE key. The shift and ALPHA key are used to change the multi use keys into other keys. EXIT we will get into when I explain F keys. Menu is not used at this time as are the left are right arrow keys. The up and down arrow keys are used to recall previous calculations (scroll up or down). The DEL key will remove the last letter from the calculation (it's a delete key). AC is the clear button which will clear the text line or the graph screen depending on which is displayed. Finaly EXE is the execute key. That should wrap up the the single use keys.

The majority of the other keys in Zasio are of the second kind. The up to three uses kind. These keys are like most graphic calculator buttons where the buttons have a normal action, a shifted action and an alpha action. Most of these keys are for entering functions (such as sin or sq) and shift just gives you more options so Zasio does not have to have twice the buttons on the screen. Alpha lets you enter in letters and other such charecters needed for variable access.

F keys take a bit more to understand. Some keys when shifted will allow you to access an F menu that you can navigate through the F keys. One example is the MATH menu. Press SHIFT and then MATH and you should notice a change to the F keys. These keys when pressed will either enter the function they represent into the calculation or take you to more choices in the F keys. To go back, use the EXIT key. So in our example, you can press the Num F key and then abs to get the int function in your calculation.

Zasio works the same as most graphic calculators. You enter your formual in and press the execute key. To run a calculation like 2+2 you would need to press the buttons 2, +, 2, and then EXE. The EXE button takes the formula and turns it into a short program which returns 2 as a result. While this was a very simple formula, even complicated formulas are entered the same way. Take (sin Pi/2)*2. To do this calculation you would press (, sin, shift, Pi, /, 2, ), *, 2, EXE. Calculations can use variables A to Z, radius, and theta to store results from previous calculations. These variables can also be used in other calculations. To do this, simply use the variable name and the equals (=) button like this: A=(sin Pi/2)*2. You would use A like this: cos(A).
Graphing is done by passing forumals to the s.graph() function which contain the variable x (not to confuse with the storage variable X). To graph a simple function like sin x you would enter in s.graph(s.sin(x)). After pressing EXE, Zasio will change to the graph screen to display the rusults of your function. To get back to the text screen, press the T<->G. I should point out now that the clear button (AC) only clears the active screen, so pressing it while in the viewing the text screen will not clear out the gragh screen. You can also display graphs in different colors by setting the color you want in the Color F menu.
If you hava a need to run the same equations over and over, or if the calculations you want to solve are of a more complex nature, then this section is for you. I will try to explain everything you will need to know to start creating your own Zasio programs.
Zasio uses Java as a programming language. Don't worry, you will not need to earn a degree in programing to figure this out. Full Java programs are not needed to get Zasio to do the calculations you want. In fact, all calculations (even 2+2) are turned into a short Java program that are run for you. All you need to know to get started is a few basic instructions (like "if" and "for") and a description of the built in objects.

I have included two objects for use by Zasio calculation writers. The main object is the system object which is named s. This object contains all the mathmatical functions that Zasio knows how to calculate. Many of these you will know if you have used Zasio and notices that every function has a s. at the begining. To run a function, type the objects name (s, then a dot and the name of the function you want such as this: s.random() All functions have () after the name. If the function takes a parameter ( think y=ƒ(x) ) then it will be inside the () like this: s.sin(45) which will return the value of sin 45. If more than one parameter are needed, they get seperated with a comma. Mind the order, this is important. Constants can be accessed much in the same way as functions. s.PI will get you the value of π

The other object included in Zasio is the memory object named m. This object mimics the way Casio handles memory. For those who don't know or never read the manual, Casio has a common memory model where you can access any variable from the point of view of another variable. Or, to put this another way, arrays that can access other arrays. Givein the variables A to Z, you can access variable A by simply calling it by name. You call all the other variables the same way. However, these variables are really arrays. So, you can call A[0] and get A but if you call A[1], you get B. If you call B[0], you get B and B[-1] is A. This behaure extends all the way to Z. You also have the ability to access more memory than just A to Z. To do this, you simply call Z[1]. This is an interesting access modle that lets you input a mass of variables with a loop but allows you to work with them as individual values when you need to. (Stack operations are much easier to empliment.) Now that you have seen the therory, I can show you how I have implimented this object. To access A, enter in m.a(). Access B from A like this: m.a(1) and A from B like this: m.b(-1). To set a value you must use the "set" function which is the same letter as the get functions, but in upper case. To set A call m.A(3.1452).

For a full brake down of all the function is Zasio, please check the function page.

In programing terms, most calculation are very linear. By this I mean that calculations don't have branches in how they are solved. You start from one end and work you way to the other till the calculation is solved. Programs can work this way to, but any program of intrest will have if statments and for loops which can cause some blocks of code to not be executed at all, or to be executed more than once. The closest thing calculations have is Σ.

An if stantment works by evaluating a boolean value. If the value is true, then the code in the braces is executed. if(A<45){B=s.sin(A);} will only assign the sin of A to B if A is less then 45.

for loops will run code for a set number of times and have three parameters. Here is an example: for(A=0; A<10; a++){B += A;} The first parameter is the inital value which sets A to 0. The second parameter is the continuation condition which checks to see if A is still less than 10. The last parameter is the post execution statment. The for loop is going to run over and over untill A no longer meets the continuation condition. After each "loop", the post execution statment is run which in this example adds one to A which means that after 10 loops, A will no longer be less then 10 and thus the loop will stop. Each time the loop runs, A is added to B, so you get B=0+0, B=0+1, B=1+2, B=3+3, B=6+4, B=10+5, B=15+6, B=21+7, B=28+8, B=36+9, and finaly B=45 when the loop stops, provide that B was equal to 0 when the loop started of course.

Save these programs to a text file and load them in the editor tab.
Find Prime Numbers //find primes
String ret = "";
//look at each number from 3 to max
for (int current=3; current<M; current++)
{ //look at each number between 0 and current
P = 1;
for (int i=2; i<current; i++)
if (current%i==0)
P = 0;
if (P==1){ret += current + " is a prime. ";}
System.out.println(ret); ret;
At this time, Zasio is in beta and I allow use of it as a preview. When I get the kinks worked out I plan to charge $15 under two different licenses.
Thomas Cherry
3 E. Hamburg St.
Baltimore, Md 21230
jceaser at mac dot com
Zasio is my program and it is my wish that it be protected with all rights entitled to me as it's creator. I own the name and the code and do not allow any one to decompile the application. Use of Zasio is at the users expense. Don't blame me if something goes wrong. I make all the best effort to correct all bugs but I do not guarenty that Zasio is perfect. No human desinged system is perfect. Errors will happen so use at your own risk.