 By: amin heidari  2026 clicks  this program calculate adjoint of matrix even if itself determinant=0
*******
new feature: in this version you can select that matrix you want calculate adjoint
*******
caution: for this version you must update OS to version 2.0
this version need 'str' function that available in OS V2.0
for update see:http://edu.casio.com
***********************************************************
run ADJOINT(Menu\PRGM\ADJOINT)
after run this message is show==>'source:'
you must input name of matrix that you want calculate adjoint
for example: Mat A  Mat B ... Mat Ans
***********************************************************
caution: 1 for input 'Mat'==> OPTN\F2\F1
2 for input 'Ans'==> SHIFT\()
***********************************************************
source matrix must be a square Matrix.
***********************************************************
always adjoint of source matrix save into Mat J except:
1if Mat J set source matrix then adjoint save into Mat K
***********************************************************
caution: if Mat Ans set source matrix after run program; Mat Ans is clear
***********************************************************
you dont need remember that where adjoint of source matrix is save
because program in the end help you   
  By: oxinabox  946 clicks  angle converter
converts degrees to radians, radians to degrees, also expresses radians in terms of pi.   
  By: Toussis Manolis  571 clicks  BeamFrame Structural Analysis for Casio 9860SDK version 0.1 Copyright (C) 2011 Toussis Manolis (koppermind at gmail.com)
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 021101301, USA.
This program solves a 2d frame with stiffness method.
 Nodes input:
You enter the number of nodes.
For each node you enter X,Y coordinates. The next 3 columns are the three constraints x,y,theta. If you enter 1.0 it is a constraint otherwise is a free joint.
On each free degree of freedom you can enter a nodal load ux,uz,rt on the next 3 columns.
If there is a constraint in the same degree of freedom then these 3 columns count as prescribed displacements.
Notice: Both nodal loads and prescribed displacements comfront with these signs (clockwise moment):
^ Uy __
 / Uz
  >
.> Ux
 Elements input:
n1: first node n2: second node E: Elasticity constant (default 1.0)
A: Area of section (default 1.0)
I: Inertia of section (default 1.0)
Loads input:
El: the element number where load is placed 1P.1q: type of load enter 1 for concetrated Load P=b at distance x=a enter 2 for uniform load q=b
Notice1: FAULT INPUT DATA MAY CRASH THE PROGRAM, AS I HAVEN'T DONE ANY CHECKIN OF THE DATA.
Notice2. The full source code is given with the program. mylib.c is a lib I made with many common functions that can be helpfull and on other software, please feel free to use it on your software (notice the GPL license). Exploring the main program beam.c with be much help on understanding the usage of mylib.c
I have finished the program in 2 weekends so there is plenty of room for new versions.
Please feel free to ask any question/comments, or If you have time to continue programming it. (A load/save feature, or more load types could be great)
Toussis Manolis,Greece koppermind at yahoo.com   
  By: amin heidari  561 clicks  this program calculate Real Roots with Bisection Method
and display table of calculations of Bisection Method

run BISEC(Menu\PRGM\BISEC)
*after run this message is show==>'Input f(x)=0?'
you must input equation with 'x' variable
for example: x^21
*after this step this message is show==>'Input x1?'
you must Input lower limit
for example(for x^21): 0
*after this step this message is show==>'Input x2?'
you must Input upper limit
for example(for x^21): 1
*after this step this message is show==>'Input Error?'
you must Input Error
for example: 0.1 or 0.01 or 0.001 or ...
***********************************************************
caution: Error can't set 0
***********************************************************
after this step x3 is show
x3 is real root that found between x1 & x2
***********************************************************
caution:if don't found real roots between x1 & x2 then this
Error is show:'No Real Roots Found Between x1 & x2'
***********************************************************
for see table of calculations of Bisection Method
goto: MENU\STAT
""PERSIAN GULF""
""Mir Hossein Moussavi""   
  By: amin heidari  654 clicks 
Extra Information: http://www.casiocalc.org/?showtopic=6600
this program Plot Bode Diagram.
this program contain 2 programs. you must transfer both into your calculator.
NUM2STR BODE

run the program by follow (MENU\PRGM\BODE) and hit EXE key.
after that you will see a menu that contain:
1:G(jw) ==> for Magnitude plot of Bode Diagram 2:<G(jw) ==> for Phase plot of Bode Diagram 2:View Window ==> for change Auto & Manual View settings 3:Setting ==> for change Log Space or Axes or Grid setting

if you select View Window then you will see a submenu that contain:
1:Auto ==> for turn on or off automatic scaling(default=on)
2:Manual ==> for change view window settings(Manual scaling)
if you select Manual then automatic scaling set to off 3:<<< ==> for return to previous menu

if you in this submenu(Bode\View Window) select Auto then you will see another submenu that contain:
1:on ==> for turn automatic scaling on 2:off ==> for turn automatic scaling off

if you in this submenu(Bode\View Window) select Manual then you will see another submenu that contain:
1:Xmin ==> for change lower limit of X axis(default=1)
2:Xmax ==> for change upper limit of X axis(default=1)
3:Ymin ==> for change lower limit of Y axis(default=60)
4:Ymax ==> for change upper limit of Y axis(default=60)
5:<<< ==> for return to previous menu
if you turn on automatic scaling then these values are skipped

if you come back to main menu and select Setting then you will see another submenu that contain:
1:Log Space ==> Log Space(d1, d2 ,n) generates a row vector of n(number of points) logarithmically equally spaced points between decades 10^d1 and 10^d2 2:Axes ==> for turn on or off axes(default=off)
3:Grid ==> for turn on or off grid(default=on)
Axes & Grid can not set to on simultaneously in other words if you select Axes to on then Grid set to off automatically and vice versa 4:<<< ==> for return to previous menu

if you in this submenu(Bode\Setting) select Log space then you will see another submenu that contain:
1:Start d1 ==> for change start point of Log Space function(default=1)
2:End d2 ==> for change end point of Log Space function(default=1)
3:Point n ==> for change number of point of Log Space function(default=50)
4:<<< ==> for return to previous menu
float number can used in the Start d1 &
End d2 but if you input a float number for Point n then it automatically converted to integer
if automatic scaling=on then Xmin=Start d1 Xmax=End d2

if you in this submenu(Bode\Setting) select Axes then you will see another submenu that contain:
1:on ==> for turn axes on 2:off ==> for turn axes off
Axes & Grid can not set to on simultaneously in other words if you select Axes to on then Grid set to off automatically and vice versa

if you in this submenu(Bode\Setting) select Grid then you will see another submenu that contain:
1:on ==> for turn grid on 2:off ==> for turn grid off
Grid & Axes can not set to on simultaneously in other words if you select Grid to on then Axes set to off automatically and vice versa

if you come back to main menu then select G(jw)
(for Magnitude plot)
then you will see below message:
"Input G(S)?"
you must input openloop transfer function with S variable for example:
(e^(0.5S))/(S+1) or (10(S+3))/(S(S+2)(S^2+S+2))
after this plotting of Bode Diagram will started
if you want see Phase plot too you must run program again but this time select <G(jw) and repeat above instructions

notes:
1greater value for Point n == increase precision of graph
== longer time process
2if automatic scaling=on then you do'nt need adjust view window setting manually; you need only adjust Log Space values(d1,d2,n)
i think 50 point is enough for the n(number of point)
therefore you may need adjust d1 & d2
3X axis in Magnitude plot & Phase plot is (rad/sec)
4if you want guess X coordinate from plotted graph you must read X from the graph and calculate 10^X (rad/sec)
5Y axis in Magnitude plot is dB(decibel)
and in the Phase plot is Deg(degree)
""PERSIAN GULF""
""Mir Hossein Moussavi""   
  By: Babak  621 clicks  hello
OK!
Here is a [BASIC] program for your fx9860, for drawing pictures.
I like to do it with SDK but I dont know c++.
I am trying to learn it.
first you must run SETUP file => it greates som pictures to use in program GUI then run Cdraw file   
  By: Menno  476 clicks  This program calculates the concentration of water vapour using the wet and dry bulb method. All calculations according to ITS90 standards. A small help file is included in the program . All you need is a temperature sensor, a wet white cotton thing to cover your temp sensor and a barometer. The program asks for atmospherical pressure in hPa, thats the same as mBar, the static pressure will almost always be 0 Pa (except when measuring in a duct with a different pressure then atmospheric).
Wet bulb cannot be higher then 100 degrees C or the dry bulb temperature
Water vapour concentration is given in relative and absolute percentages and in grams per normal cubic metre.
http://en.wikipedia.org/wiki/Wetbulb_temperature> Wiki Info
http://www.thunderscientific.com/tech_info/reflibrary/its90formulas.pdf> used literature ITS90 (pdf)
(btw only water vapour over water is considred in this program, water vapour over ice is not included)   
  By: Kelli  1954 clicks  Two player cannon game on one calculator.
It has fully generated landscapes and the places of cannons are generated randomly.
There are also three different weapons, which you can use to beat your friends.
  
  By: Menno de Bes  1447 clicks  Attention this version has been superseeded with the casio patience addin
way faster gameplay
please try that one
Menno
Casio Patience DeLuxe beta 3
I'd like to present my newest game, Casio Patience Deluxe.
A copy of windows patience. It is operated with the arrow keys, exe and exit
You select cards with the arrow keys and hit enter. The card(s) will be cut and be shown in the card memory. Use arrows to select paste location, hit exe to paste cards.
When you hit exe on a card marked with an ? it will be turned. Hitting exe on the drawing stock draws three new cards which will be shown below the drawing stock. If you select a draw card and hit exe the card will be cut. Paste card on suited position. Next to the drawing stocks there are four empty stocks. Here you can place aces followed with there successive cards
You can select more then one card when they have been turned already, You do this by selecting the appropriate stock en push the arrow up. The selection box will extend and below in the screen the name of the last card will appear. If you hit exe now you cut all selected cards. The last card (lowest in value) will be shown in the card memory
After every cut action you can undo the cut action by hitting the exit key.
Beta 2 27nov2006
Fixed Bugs:
* Game would crash when going with an extended selection box to the drawingstock or aces stocks
* In version 1 you could only paste on an ace stock, now you can cut from them too.
* There was no winning screen, now there is, don't hold your breath
Unfixed issues
* Bulkyness in code and matrix usage
Beta 3 09dec2006 Fixed Bug:
* Winscreen didn't work, now it does
Added functions:
* Options menu
* Quit sequence that clears all matrices to save memory
* Pause sequence to enable the continue option
* Possibility to change number of cards that are drawn
Changes:
* New startscreen with casiokingdom advertisement
Unfixed issues:
* Bulkyness in code and matrix usage
Code is free to use, passwords are the names of the programs
:D
   
  By: Menno de Bes  1861 clicks  The aim of the game is to pocket all the balls. You have three 'white balls' en every time you pocket one 'white ball' you are free to place it, like in real pool. You win when you have pocketed 6 balls, you loose when you have pocketed three 'white balls'.
There are six balls to play of the table
When the game starts it asks if you want to trace all the balls or just the white ball or none, I advise option 2
In screen 2 you can place the white ball along a vertical line. Use the arrow keys to place the cross (ball centre) where you like it.
Hit EXE when done
Now you enter a screen where you aim the cue, aiming is done with the arrow keys. Up and down de or increment the angle with 1/200 of a circle, left and right de or increment with 1/8 of a circle.
Use + or  to in or decrease the applied force.
Hit exe when done
The ball(s) start rolling. On the right side you see three bars, the top, short bar represents your white balls (3, inclusive the one you're playing with). The bar underneath represents the pocketed balls, 0 to begin with, 6 at max. The last bar represents the applied force.
  
  By: Menno  1199 clicks  Casio Yahtzee,
For 1 to 4 players Version: 1.1
Intelligent score counting system, clear menu structure for scores. Standard rules. Version 1.1 supports bonus. Score: Yahtzee, Full straight, Small straight, Full house, Carré, Three of a kind, Chance, Ones, Two's, Three's, Fours, Fives and Sixes.
Each dice can be locked, except for the first throw. You dont need to throw three times, by clicking 'take' (f6) you can collect your score. To throw click exe, after three times you are prompted to click exe again.
You will be presented a menu to collect your score. With the arrow keys you can position the score marker, hitting exe collects the score, you can choose zero, but when there is no score presented that possibility is allready taken. (it is impossible to choose this selection)
In the score menu one can only select free position, for example, when you have allready chosen to score full straight you can't do that again.
After a throw the next player is prompted to throw the dices. Now you can view your score list to see which throw would be best (press menu). When everyone has played 13 throws the final scores are presented.
Casio Yahtzee Update:
17112006 Version 1.1
Bugfix:
 Last score was not added in total scores (fixed)
New Features:
 Continue a game.
 Bonus scores
 New score board with bonus points
Bonus score:
When you score more then 0 points for every option in the first list you get 100 points bonus When you score more then 63 points as the sum of list 2 you get 35 points bonus
Please tell me if you like it, my email is in the start screen :)
  
  By: Bismar_Paucara_Ramos  313 clicks  Hola amigos aqui les presento una version demo de codigo de resistores para ejecutar el programa presione la tecla "exe"
y seleccione con el cursor el color que desea. presionando "exe"
suerte......   
  By: ZweiLynx  343 clicks  COSTSELL  Cost, Sell, Margin
Field: Finance, Accounting
v1.02
Bug fix. In v1.00, when two values are entered for the same option the program would still give a result, and that could be misinterpreted as an actual correct result. This version fixes that.
v1.00
This program calculates Cost, Sell Price, Gross Margin, Mark Up, and Profit. Two values are required, and the program calculates the other three. Common financial calculators only make calculations between Cost, Sell, and Margin.
The program works this way: Select the number of the option you're going to introduce a value for. Introduce the value. Select the second option you're going to use. Introduce the value. Results are immediately calculated and displayed. Press EXE to repeat, AC/on to break and exit.   
  By: amin heidari  238 clicks  this program find Natural and Clamped Cubic Spline polynomial's ;
Si(x)'s with interpolation
first you must input xi's into List 1 and f(xi)'s into List 2
***********************************************************************
note: if we assume that number of points(nodes) equal to n then this method produce n1 piecewise polynomials of order 3
***********************************************************************
then run CUBIC program.
after run you must select one of the following functions:
1Natural : to produce Natural Cubic Spline
2Clamped : to produce Clamped Cubic Spline
//Clamped Spline is more accurate than Natural SplineÖÖ
***********************************************************************
caution:
1always dimension of List 1 and List 2 must be same
2if you want to use Clamped function you must input derivative for the endpoint's ( f'(x0) & f'(xn) )
too
***********************************************************************
Remember: Si(x)'s would save into Mat S
***********************************************************************
after finish execute; go to MENUÖSTAT for see constant coefficients of Cubic Spline polynomial that insert in the below definition to produce each S(x):
Si(x) = ai + bi(xxi) + ci(xxi)Ü2 + di(xxi)Ü3 i= 1,2,...,n1
""PERSIAN GULF""
""Mir Hossein Moussavi""   
  By: MTool  174 clicks  Distributions calculation for Graph 25+Pro and FX7400GII:
These are programs to calculate probability, cumulative probability, inverse cumulative probability of:
 Binomial distribution
 Geometric distribution
 Hypergeometric distribution
 Normal distribution
 Poisson distribution   
  By: James L. Dean  437 clicks  "Mines" lets you explore mines. The mine you explore is determined by a mine number specified at the beginning of a game.
The object of a game is to visit all of the rooms and return all of the treasures to the entrance without making too many moves.
In a mine, the passages are straight. So, for example, if you go North to leave a room, you can go South to reenter it. The rooms are not evenly spaced. However, the distance between adjacent rooms is always a multiple of the minimum distance between adjacent rooms.
Commands in the game are "N", "E", "S", "W", "U", and "D" to move North, East, South, West, Up, or Down, respectively. Other commands are "C" to carry things, "I" to inventory what you are carrying, "L" to leave treasures, "P" to get the points you've scored, "O" for help getting out of the mine, "F" to change the font, "H" for help, and "Q" to quit. The game has been written so you don't have to press the SHIFT key before typing a letter.
To install "Mines", use FA124 to copy MINES.G1A to your Casio fx9860g, following the instructions in http://casiokingdom.org/Installing_Addin.pdf.
The command "F" was added in this version to let you switch between the small and large fonts.   
  By: Scratty  573 clicks  FXGL 2.0.2
FX Graphics Library.
The FX9860G backend implementation.
Total size: < 2640 B.
This is an attempt to make a user friendly API/library for programming graphics, 3D graphics in particular.
Emphasis has been on making the geometry stage and rendering stage as quick as possible.
The text file contains three examples to make you aquainted with this API.
With this API, making 3D games should be fairly simple (although they will inevitably be slow).
This software bundle also contains:
* Tutorial on making an FPS engine
* Tutorial that compares OpenGL drawing modes with the FXGL counterpart for achiving the same thing.
Note that additional functionalities such as primitives and object manipulations etc are available in the separate API FXGLUT. This API only offers the basic graphics functionalities.
Not all functions/programs are necessary. Only upload those that you think you'll need.
Converted to 9860 format by: LordNPS
Simply converted into the right format for user convinience. Removed some color features.
News: Fixed typos.   
  By: B. Rasmus Anthin  393 clicks  FXGL and FXGLUT Examples 1.1
The FX9860G backend implementation.
Required APIs: FXGL (and for some programs FXGLUT).
Total size: ~ 4641 B.
This collection contains programs to demonstrate different ways to make use of FXGL and FXGLUT.
Not all functions/programs are necessary. Only transfer those that you think you'll need.
Thanks to LordNPS for porting these programs to the FX9860G platform.   
  By: B. Rasmus Anthin  429 clicks  FXGLUT 1.0.1
FX Graphics Library Utility Toolkit.
The FX9860G backend implementation.
Required API: FXGL.
Total size: < 4246 B.
FX Graphics Library Utility Toolkit is intended to be an API similar to GLUT.
It features routines for creating geometric primitives and other useful CG tools.
You will need FXGL in order to make FXGLUT work. FXGLUT works as an extra API layer on top of FXGL.
Not all functions/programs are necessary. Only transfer those that you think you'll need.
This library is indeed different from the CFX counterpart. Thanks to LordNPS for making a support for the FX9860G platform.   
  By: ZweiLynx  273 clicks  GENRAND  Generate a random variable
Field: Statistics, Simulation.
v1.20
CRITICAL FIX. In v1.00, option [7] does not generate a LogNormal distributed variable. The procedure is incorrect. This version generates a LogNormal variable correctly.
v1.00
This program generates random numbers that follow a distribution with the specified parameters. The options are Continuous Uniform, Discrete Uniform, Triangular, Exponential, Bernoulli, Normal, and LogNormal. To generate a sequence keep pressing EXE.   
  By: kucalc  3126 clicks  RevolutionFX is a open source library created to provide programmers using the CASIO fx9860 SDK to create better addins. It's a musthave for anyone serious in doing some rad programming for the fx9860G and compatibles. RevolutionFX allows you to:
* Create possible calctocalc gaming with access to the serial port
* Create cool graphics with grayscales (upto 8 colors)
* Gather user input and place it into a string
* Fast routines for drawing graphics or sprites to either buffers or to the screen with transparency
* Access the RTC (Real time clock) to either store or retrieve the time
* Change the speed of your CPU by making it faster
* Reset_Calc() eliminates the hassle of having to run another addin just after running one
* Text display with new fonts
* Fast keyboard routines
Plus it's now optimized for speed!
RevolutionFX comes packaged in a setup program eliminating the hassle of having to configure your SDK to detect the library. Download it and try it out. :D   
  By: amin heidari  233 clicks  this program find Hermite polynomial H(x) with interpolation
first you must input xi's into List 1 and f(xi)'s into List 2
and f`(xi)'s (derivative) into List 3
for this hit this key: MENU\2(STAT)
for example input below data:
List 1 =[1.3, 1.6, 1.9] & List 2 =[0.6200860, 0.4554022, 0.2818186]
& List 3 =[0.5220232, 0.5698959, 0.5811571]
after input data you must run HERMITE program by following below address:
MENU\PRGM\HERMITE
and hit EXE key.
after run; you must select one of the following functions:
1Interpolate : to start interpolation and calculate H(X)
2Substitution : to evaluate constructed polynomial H(x) by X value
***********************************************************************
caution: for use Substitution function you must at least run Interpolate function one time to produce H(X)
***********************************************************************
after run Interpolate function you must input degree of polynomial that you want
for example(for mentioned data): 2
***********************************************************************
note: if we symbolize input degree with N then Hermite method produce polynomial with order 2N+1
***********************************************************************
caution:
1 always input degree must be lower(<) than number of data(dimension List 1 or List 2)
2 always dimension of List 1 and List 2 must be same
***********************************************************************
after input degree; Li(x)'s will showed.
Li(x) = coefficients of lagrange interpolating polynomial
for mentioned example :
L0(x) = [5.55, 19.44, 16.88] that represent 5.55x^219.44x+16.88
L1(x) = [11.11, 35.55, 27.44] that represent 11.11x^2+35.55x27.44
L2(x) = [5.55, 16.11, 11.55] that represent 5.55x^216.11x+11.55
***********************************************************************
caution: none of Li(x)'s can not be accessible after end of execution
***********************************************************************
after this step; coefficients of Hermite polynomial H(x); will showed.
for mentioned example :
H(x) = [0.0027, 0.024, 0.014, 0.235, 8.229, 1.0019] that represent
0.0027x^5+0.024x^40.014x^30.235x^28.229x+1.0019
after this step; you can run Substitution function because H(x)
is produced.
for example if we want calculate H(1.5) for mentioned data we must follow below steps:
after finish execution of Interpolate function you must run HERMITE again but this time select Substitution function and input your wish value of X you can repeat these steps for another value of X
Remember:
if you want evaluate produced H(x) for multiple value of X it's better that you run Interpolate function only one time and then run Substitution function for each value of X
for mentioned data we have:
H(1.5) = 0.5118277
***********************************************************************
note : polynomial H(x) will saved into List 4(MENU\STAT\List 4)
""PERSIAN GULF""
""Mir Hossein Moussavi""   
  By: amin heidari  214 clicks  this program calculate Hessenberg Reduction of square matrix

input your matrix in matrix A(Menu\RUN.MAT\F1\Mat A)
matrix A must be a square.
caution: if Matrix A is'nt square then program give error message.
then run HESS(Menu\PRGM\HESS)
after this Hessenberg Reduction of Mat A display

Hessenberg Reduction of Mat A saved into Mat H

you can access with this in Mat H ((Menu\RUN.MAT\F1\Mat H))

for example:
Mat A= [[i 2+i 3+i][5 6 1][4 8 2]]
you see that Mat A is square
after run program(HESS) we have:
Mat H= [[i 3.431.4i 1.090.15i][6.4 7.85 5.68][0 3.31 0.14]]
""Mir Hossein Moussavi""
""PERSIAN GULF""   
  By: amin heidari  206 clicks  this program calculate Householder transformation of a square symmetric matrix
The Householder transformation converts a symmetric matrix into a similar symmetric tridiagonal matrix

input your matrix in matrix A(Menu\RUN.MAT\F1\Mat A)
matrix A must be a square & Symmetric Matrix.
caution: if Matrix A is'nt square or Symmetric then program give error message
then run HOUS~TRA(Menu\PRGM\HOUS~TRA)
after this Householder form of Mat A display

Householder form of Mat A saved into Mat H

you can access with this in Mat H ((Menu\RUN.MAT\F1\Mat H))

for example:
Mat A=[[2,1,1,4][1,2,1,1][1,1,2,2][4,1,2,3]]
you see that Mat A is square & symmetric
after run program(HOUS~TRA) we have:
Mat H=[[2,4.2426,0,0][4.2426,1.6666,1.7795,0][0,1.7795,4.0292,0.9882][0,0,0.9882,1.3040]]
""Mir Hossein Moussavi""
""PERSIAN GULF""   
  By: flyingfisch  218 clicks  Requires luaFX:
screenshot: http://img.removedfromgame.com/imgs/0screen.bmp
Press EXE to unlock calc.
Press AC/on to turn on calc. Slide finger across fkeys to unlock. If it doesnt work, try sliding your finger across one more time.   
  By: Benjamin I.  960 clicks  JETS BETA (CASIO FX9860)
=========================
Jets is a very simple space invaders type game which I made in my spare time . It is also my first game that I made. It is a beta and will possibly be expanded in the future . This little read me covers the majority of the important bits for the game .
NOTE : This game should work on Casio CFX9850 , however I would assume it would be too slow.
How to play
===========
Initially you will be greeted by the difficulty selection screen . The difficulties range from 1 (Very Easy) to 5 ( Very Hard). The levels affect how much damage each of the enemy jets can take before it is destroyed.
Controls :
During the game :
[MENU] Press once to view the stats screen , press again to enter the game shop , where extra ammo and fuel can be purchased.
Direction Keys : Control the movement of the ship (up , down )
[ALPHA] : Fires the standard gun
[SHIFT] : Fires the Destroyer gun , which needs to be purchased first
[F1] : Deploys a bomb , which instantly destroys the enemy jet .
Gameplay
========
When the game starts an enemy jet will appear on the right of the screen . The jets will not fire at you however after a certain time they will move 1 unit closer to your ship . The game ends if an enemy ship goes past your own ship. The speed at which the jets approach you slowly increases.
Shooting
========
At the start of the game you are given 5000 bullets and 5 bombs . The bullets are expanded every time you shoot at the enemy jets . Also the player starts off with a full fuel tank which will slowly get used up during the game . When either the ammo or the fuel gets low , a warning will pop up at the top of the screen .
Money
=====
Each time a ship is destroyed a player earns $100 . Player also earns money for each individual hit . Player can access the shop at any time by pressing the MENU key . This will allow for the purchase of extra ammo , fuel and the destroyer gun .
Destroyer Gun
=============
The destroyer gun can be purchased from the shop . It allows for a greater hit damage , however it is pricy and uses up more bullets than the standard gun . This gun needs only to be purchased once.
Bombs
=====
Player starts off with 5 of these initially . These cannot be replaced or purchased so use them wisely .   
  By: amin heidari  161 clicks  this program calculate Kronecker tensor product of Mat A & Mat B Mat K = kron(Mat A,Mat B) returns the Kronecker tensor product of Mat A and Mat B. The result is a large array formed by taking all possible products between the elements of Mat A and those of Mat B. If Mat A is mbyn and Mat B is pbyq, then Mat K = kron(Mat A,Mat B) is m*pbyn*q.

input first matrix in Mat A and second matrix in Mat B then run KRON(Menu\PRGM\KRON)
***********************************************************
after this step kron(Mat A,Mat B) will be displayed

note: result(Kronecker tensor product of Mat A & Mat B)
will saved into Mat K
""PERSIAN GULF""
""Mir Hossein Moussavi""   
  By: amin heidari  421 clicks  Substitution function added in new version(0.15)
***********************************************************************
this program find lagrange polynomial P(x) with interpolation
first you must input xi's into List 1 and f(xi)'s into List 2
for this hit this key: MENU\2(STAT)
for example input below data:
List 1 =[2, 2.5, 4] & List 2 =[0.5, 0.4, 0.25]
after input data you must run LAGRANGE program by following below address:
MENU\PRGM\LAGRANGE
and hit EXE key.
after run; you must select one of the following functions:
1Interpolate : to start interpolation and calculate P(X)
2Substitution : to evaluate constructed polynomial P(x) by X value
***********************************************************************
caution: for use Substitution function you must at least run Interpolate function one time to produce P(X)
***********************************************************************
after run Interpolate function you must input degree of polynomial that you want
for example(for mentioned data): 2
***********************************************************************
caution:
1 always input degree must be lower(<) than number of data(dimension List 1 or List 2)
2 always dimension of List 1 and List 2 must be same
***********************************************************************
after input degree; Li(x)'s will showed.
Li(x) = coefficients of lagrange interpolating polynomial
for mentioned example :
L0(x) = [1, 6.5, 10] that represent x^26.5x+10
L1(x) = [1.333, 8, 10.667] that represent 1.333x^2+8x10.667
L2(x) = [0.333, 1.5, 1.667] that represent 0.333x^21.5x+1.667
***********************************************************************
caution: none of Li(x)'s can not be accessible after end of execution
***********************************************************************
after this step; coefficients of lagrange polynomial P(x); will showed.
for mentioned example :
P(x) = [0.05, 0.425, 1.15] that represent 0.05x^20.425x+1.15
after this step; you can run Substitution function because P(x)
is produced.
for example if we want calculate P(3) for mentioned data we must follow below steps:
after finish execution of Interpolate function you must run LAGRANGE again but this time select Substitution function and input your wish value of X you can repeat these steps for another value of X
Remember:
if you want evaluate produced P(x) for multiple value of X it's better that you run Interpolate function only one time and then run Substitution function for each value of X
for mentioned data we have:
P(3) = 0.325
***********************************************************************
note : polynomial P(x) will saved into List 3(MENU\STAT\List 3)
""PERSIAN GULF""
""Mir Hossein Moussavi""   
  By: Roy F.A. Maclean  787 clicks  Laguerre's Method is an iterative method to get approximate solutions for polynomials.
It can be used for polynomials of any degree and even ones with complex coefficients.
This program uses synthetic division after each solution to reduce the degree of the polynomial and then applies Laguerre's Method again to get the next soln, until all the solutions are found.   
  By: amin heidari  257 clicks  ***********************************************************
caution: for this version you must update OS to version 2.0
this version need 'str' function that available in OS V2.0
***********************************************************
this program move your string from right to left

run LCD~SHIF(Menu\PRGM\LCD~SHIF)
after run this message is show==>'Input String:?'
you must input your wish string
for example: 'YOUR NAME'
***********************************************************
caution: 1 for input String==> SHIFT\ALPHA
***********************************************************
after this step:
this message is show==>'Input Wait:?'
you must input the delay of movement
for example: 175 or 200
***********************************************************
increase delay= decrease speed
decrease delay= increase speed
***********************************************************
caution: maximum length of your input string is 21 character   
  By: Bismar_Paucara_Ramos  382 clicks  Es una pequeña aplicasion para circuitos electricos de la ley de Ohm suerte..   
  By: amin heidari  484 clicks  this program calculate LU decomposition
caution: this version need OS Version 2.00
******************************************************
older version(0.1) have a lot of bug & calculated incorrectly
and if determinant of matrix A(Mat A) equal zero then
can't calculate LU. all fixed in new version(0.5)
******************************************************
input your matrix in matrix A(Menu\RUN.MAT\F1\Mat A)
matrix A must be a square Matrix.
then run LU(Menu\PRGM\LU)
after this you should choice Method:
Crout Method Doolittle Method Cholesky Method Thomas Algorithm
1. If Uii = 1 for i = 1, 2, . . . , n in matrix U, then the method is called the Crout method.
2. If Lii = 1 for i = 1, 2, . . . , n in matrix L, then the method is called the Doolittle method.
3. If U = Transpose(L) for the positivedefinite matrix A, then the method is called the Cholesky method.(if Matrix A is'nt positivedefinite then program give error message)
4. The Thomas algorithm is a special adaptation of the Crout method when A is a tridiagonal matrix.(LU decomposition of this; is similar to Crout method)
after this Mat L and Mat U display
**
Mat A= Mat L * Mat U
Mat L is a lower triangular matrix
Mat U is a upper triangular matrix
**
you can access with them in Mat L & Mat U((Menu\RUN.MAT\F1\Mat L & Mat U))
""Mir Hossein Moussavi""
""PERSIAN GULF""   
  By: alias4399  3219 clicks  This is the same great mario game for the cfx 'tweaked' for the 9860.
There are only a few more things that need to be done, and i thought a beta release was in order...
So, here it is!
(No screenshots at the moment)
Mario 2.0 Beta 3 for 9860 by Alias4399 Enjoy!
** This version includes Animated sprites!!! **, unfortunately i only put 1 in the whole game,
you can edit the level data program to add more, only 1 per level:
14: Dancing flower (cool!)
15: 'Traffic light' (not really working)
16: Moving car (not tested with 9860)
There is now an options menu, however it has not yet been implemented into the game.
Fixes include:
=) No more lines across the screen
Still happens:
=) Objects disappear when you walk over them   
  By: MTool  218 clicks  Complete matrix calculation for Graph 25+Pro and FX7400GII:
Invert Raise to higher power Multiplication Determinant Gaussian elimination (REF)
Gauss–Jordan elimination (RREF)
Input of matrices in then lists of the STATapplication, calculation in PRGMapplication, result again in STATapplication.   
   By: Olli Lahtinen (Kelli)  1298 clicks 
Classic minesweeper game.
Includes all three classic difficulty modes:
Easy : size 9x9, mines 10
Medium : size 16x16, mines 40
Hard : size 30x16, mines 99
Best times are saved.
Controls:
Arrow keys: Move cursor Shift : Clear square Alpha : Mark mine / Add question mark
Hope you like it!   
  By: Sean Tan  1053 clicks  A multiplayer game in which you play against up to two other friends in a challenging competition, involving your math skills, memory and reaction speeds. Also features one player mode, where you can attempt to master the mini games by yourself.
Update 13/12/06: Version 2 released. Two original mini games have been replaced by Indy and Pong. All games have been optimised for the fx9860G AU calculator.
For more details, visit the games homepage at http://casiokingdom.org   
  By: Menno  366 clicks  This is the collision model I use for my Pool Simulator
Please use, comment or alter the code
:)   
  By: amin heidari  267 clicks  this program get value x and find f(x) with neville's interpolation
first you must input xi's into List 1 and f(xi)'s into List 2
for this hit this key: MENU\2(STAT)
for example input below data:
List 1 =[1, 1.3, 1.6, 1.9, 2.2]
List 2 =[0.7651977, 0.6200860, 0.4554022, 0.2818186, 0.1103623]
after input data you must run NEVILLE program by following below address:
MENU\PRGM\NEVILLE
and hit EXE key.
after run; this message will showed "Input X?"
in this step you must input vlaue of x to calculate f(x)
for example(for mentioned data): 1.5
*********************************************************************
caution: always dimension of List 1 and List 2 must be same
*********************************************************************
after input x; f(x) will showed.
for example(for mentioned data): f(x) = 0.5118199942
*********************************************************************
note : you can see table of neville's interpolation in the below address :
MENU\STAT
""PERSIAN GULF""
""Mir Hossein Moussavi""   
  By: amin heidari  503 clicks  bug fixed in Substitution function in new version(0.15)
***********************************************************************
this program find newton polynomial P(x) with interpolation
first you must input xi's into List 1 and f(xi)'s into List 2
for this hit this key: MENU\2(STAT)
for example input below data:
List 1 =[1, 1.3, 1.6, 1.9, 2.2]
List 2 =[0.7651977, 0.6200860, 0.4554022, 0.2818186, 0.1103623]
after input data you must run NEW~POLY program by following below address:
MENU\PRGM\NEW~POLY
and hit EXE key.
after run; you must select one of the following functions:
1Interpolate : to start interpolation and calculate P(X)
2Substitution : to evaluate constructed polynomial P(x) by X value
***********************************************************************
caution: for use Substitution function you must at least run Interpolate function one time to produce P(X)
***********************************************************************
after run Interpolate function you must input degree of polynomial that you want
for example(for mentioned data): 4
***********************************************************************
caution:
1 always input degree must be lower(<) than number of data(dimension List 1 or List 2)
2 always dimension of List 1 and List 2 must be same
***********************************************************************
after input degree; P(x) will showed.
for mentioned example :
[0.0018251, 0.0552927, 0.3430466, 0.0733913, 0.977735]
that represent:
P(x)= 0.0018251x^4 + 0.0552927x^3  0.3430466x^2 + 0.0733913x + 0.977735
***********************************************************************
after this step; you can run Substitution function because P(x)
is produced.
for example if we want calculate P(1.5) or P(1.1) or P(2) for mentioned data we must follow below steps:
after finish execution of Interpolate function you must run NEW~POLY again but this time select Substitution function and input your wish value of X you can repeat these steps for another value of X
Remember:
if you want evaluate produced P(x) for multiple value of X it's better that you run Interpolate function only one time and then run Substitution function for each value of X
for mentioned data we have:
P(1.5) = 0.51182
P(1.1) = 0.719646
P(2) = 0.223875
***********************************************************************
notes :
1 polynomial P(x) will saved into List 22(MENU\STAT\List 22)
2 for see table of divided difference follow (MENU\STAT)
""PERSIAN GULF""
""Mir Hossein Moussavi""   
  By: amin heidari  544 clicks  this program calculate Real Roots with Newton Raphson Method
and display table of calculations

run NEW~RAP(Menu\PRGM\NEW~RAP)
*after run this message is show==>'Input f(x)=0?'
you must input equation with 'x' variable
for example: x^3x^22
*after this step this message is show==>'Input x0?'
you must Input initial point
for example: 10
*after this step this message is show==>'Input Error?'
you must Input Error
for example: 0.1 or 0.01 or 0.001 or ...
decrease error ==increase precision x1(real root that found)==long time process
***********************************************************
caution: Error can't set 0
***********************************************************
after this step x1 is show
x1 is real root that found
***********************************************************
caution:if don't found real roots then this
Error is show:'No Real Roots Found'
***********************************************************
for see table of calculations of Newton Raphson Method
goto: MENU\STAT
""Mir Hossein Moussavi""
""PERSIAN GULF""   
  By: amin heidari  376 clicks 
this program Plot Nichols Diagram.
this program contain 4 programs. you must transfer all of them into your calculator.
NICCHART NICGRID NICHOLS NUM2STR

run the program by follow (MENU\PRGM\NICHOLS) and hit EXE key.
after that you will see a menu that contain:
1:Plot ==> for plot Nichols Diagram 2:View Window ==> for change Auto & Manual View settings 3:Setting ==> for change Log Space or Axes or Grid setting

if you select View Window then you will see a submenu that contain:
1:Auto ==> for turn on or off automatic scaling(default=on)
2:Manual ==> for change view window settings(Manual scaling)
if you select Manual then automatic scaling set to off 3:<<< ==> for return to previous menu

if you in this submenu(Nichols\View Window) select Auto then you will see another submenu that contain:
1:on ==> for turn automatic scaling on 2:off ==> for turn automatic scaling off

if you in this submenu(Nichols\View Window) select Manual then you will see another submenu that contain:
1:Xmin ==> for change lower limit of X axis(default=180)
2:Xmax ==> for change upper limit of X axis(default=90)
3:Ymin ==> for change lower limit of Y axis(default=10)
4:Ymax ==> for change upper limit of Y axis(default=10)
5:<<< ==> for return to previous menu
if you turn on automatic scaling then these values are skipped

if you come back to main menu and select Setting then you will see another submenu that contain:
1:Log Space ==> Log Space(d1, d2 ,n) generates a row vector of n(number of points) logarithmically equally spaced points between decades 10^d1 and 10^d2 2:Grid ==> for turn on or off grid(default=off)
3:Axes ==> for turn on or off axes(default=off)
4:<<< ==> for return to previous menu

if you in this submenu(Nichols\Setting) select Log space then you will see another submenu that contain:
1:Start d1 ==> for change start point of Log Space function(default=2)
2:End d2 ==> for change end point of Log Space function(default=2)
3:Point n ==> for change number of point of Log Space function(default=50)
4:<<< ==> for return to previous menu
float number can used in the Start d1 &
End d2 but if you input a float number for Point n then it automatically converted to integer

if you in this submenu(Nichols\Setting) select Grid then you will see another submenu that contain:
1:on ==> for turn grid on 2:off ==> for turn grid off
for execute grid this program need at least 20 kb free Main Memory(after finishing of process this space will be released) therefore "Memory Error"
warning will be happened if you do'nt have enough free Main Memory execute of grid cause longer time process

if you in this submenu(Nichols\Setting) select Axes then you will see another submenu that contain:
1:on ==> for turn axes on 2:off ==> for turn axes off

if you come back to main menu then select Plot then you will see below message:
"Input G(S)?"
you must input openloop transfer function with S variable for example:
(4S^4+48S^318S^2+250S+600)/(S^4+30S^3+282S^2+525S+60)
after this plotting of Nichols Diagram will be started
after plotting of Nichols Diagram if Grid=on then plotting of grid will be started too

notes:
1greater value for Point n == increase precision of graph
== longer time process
2if automatic scaling=on then you do'nt need adjust view window setting manually; you need only adjust Log Space values(d1,d2,n)
i think 50 point is enough for the n(number of point)
therefore you may need adjust d1 & d2
3X axis in is Deg(degree)
4Y axis is dB(decibel)
""PERSIAN GULF""
""Mir Hossein Moussavi""   
  By: Babak  359 clicks  Create the NOKIA logo
you can cheng the mat A and create your own logos   
  By: amin heidari  261 clicks  this program Returns:
1Frobenius norm: claclulate Frobenius norm of matrix
2rowNorm: calculates the sums of the absolute values of the elements of each row of a matrix,
and returns the maximum value of the sums
3colNorm: calculates the sums of the absolute values of the elements of each column of a matrix,
and returns the maximum value of the sums

input your matrix in matrix A(Menu\RUN.MAT\F1\Mat A)
then run NORM(Menu\PRGM\NORM)
after this you must select one of the:
1Frobenius norm 2rowNorm 3colNorm
""Mir Hossein Moussavi""
""PERSIAN GULF""   
  By: amin heidari  246 clicks  this program convert real or complex number to equivalent string
caution:this program need Str function that available in OS version 2.0
for example convert 20.0012150.0023i to "20.0012150.0023i"

this program can used by programmers to write better program
first you must get number and put into N variable
for example: 20.0012150.0023i=>N
in the programing you can show message and get this from user
for example(in the programing): "Input Number"?=>N

note:
1for input " character hit :
ALPHA\EXP
2for input ? character hit :
SHIFT\VARS(PRGM)\F4(?)
3for input i command hit :
SHIFT\0

after this step you must run NUM2STR by two method
1(for the users) go to (Menu\PRGM\NUM2STR) and hit EXE key
2(for the programmers) write in your program below command
Prog "NUM2STR"

note: for input Prog command hit:
SHIFT\VARS(PRGM)\F2(CTL)\F1(Prog)

after run; output(converted number to string) saved into Str 4

note: for input Str 4 hit this key:
VARS\F6\F5(Str)\4
""Mir Hossein Moussavi""
""PERSIAN GULF""   
  By: amin heidari  474 clicks 
this program Plot Nyquist Diagram.
this program contain 2 programs. you must transfer both into your calculator.
NUM2STR Nyquist

run the program by follow (MENU\PRGM\NYQUIST) and hit EXE key.
after that you will see a menu that contain:
1:Plot ==> for plot Nyquist Diagram 2:View Window ==> for change Auto & Manual View settings 3:Setting ==> for change Log Space or Inverse or Axes setting

if you select View Window then you will see a submenu that contain:
1:Auto ==> for turn on or off automatic scaling(default=on)
2:Manual ==> for change view window settings(Manual scaling)
if you select Manual then automatic scaling set to off 3:<<< ==> for return to previous menu

if you in this submenu(Nyquist\View Window) select Auto then you will see another submenu that contain:
1:on ==> for turn automatic scaling on 2:off ==> for turn automatic scaling off

if you in this submenu(Nyquist\View Window) select Manual then you will see another submenu that contain:
1:Xmin ==> for change lower limit of X axis(default=2)
2:Xmax ==> for change upper limit of X axis(default=2)
3:Ymin ==> for change lower limit of Y axis(default=2)
4:Ymax ==> for change upper limit of Y axis(default=2)
5:<<< ==> for return to previous menu
if you turn on automatic scaling then these values are skipped

if you come back to main menu and select Setting then you will see another submenu that contain:
1:Log Space ==> Log Space(d1, d2 ,n) generates a row vector of n(number of points) logarithmically equally spaced points between decades 10^d1 and 10^d2 2:Inverse ==> for for turn on or off inverse(default=on)
3:Axes ==> for turn on or off axes(default=off)
4:<<< ==> for return to previous menu
with Inverse=On Nyquist Diagram plotted for inf<w<+inf and with Inverse=Off plotted for 0<w<+inf w=desire frequency inf=infinite

if you in this submenu(Nyquist\Setting) select Log space then you will see another submenu that contain:
1:Start d1 ==> for change start point of Log Space function(default=2)
2:End d2 ==> for change end point of Log Space function(default=2)
3:Point n ==> for change number of point of Log Space function(default=100)
4:<<< ==> for return to previous menu
float number can used in the Start d1 &
End d2 but if you input a float number for Point n then it automatically converted to integer

if you in this submenu(Nyquist\Setting) select Inverse then you will see another submenu that contain:
1:on ==> for turn Inverse on 2:off ==> for turn Inverse off
with Inverse=On Nyquist Diagram plotted for inf<w<+inf and with Inverse=Off plotted for 0<w<+inf w=desire frequency inf=infinite

if you in this submenu(Nyquist\Setting) select Axes then you will see another submenu that contain:
1:on ==> for turn axes on 2:off ==> for turn axes off

if you come back to main menu then select Plot then you will see below message:
"Input G(S)?"
you must input openloop transfer function with S variable for example:
(e^(S))/(S+1) or (2S^2+5S+1)/(S^2+2S+3)
after this plotting of Nyquist Diagram will started and you can see growth the Nyquist Diagram from inf to zero
(if Inverse=On) and then from zero to +inf

notes:
1greater value for Point n == increase precision of graph
== longer time process
2if automatic scaling=on then you do'nt need adjust view window setting manually; you need only adjust Log Space values(d1,d2,n)
i think 100 point is enough for the n(number of point)
therefore you may need adjust d1 & d2
3X axis is Real Axis
4Y axis is Imaginary Axis
""PERSIAN GULF""
""Mir Hossein Moussavi""   
  By: amin heidari & Roy F.A. Maclean  405 clicks  bug fixed in PolyDiff function in new version (0.25)
*********************************************************************
list of poly functions and descriptions:
*********************************************************************
1PolyMult:
description: this function return polynomial multiplication of 2 poly vector
syntax: input first poly vector in List 1(MENU\STAT\List 1)
and input second poly vector in List 2(MENU\STAT\List 2)
result: saved into List 3
example: if List 1 = [1 0 2 5] and List 2 = [2 3 1 1]
then result is [2 3 5 15 13 3 5]
_____________________________________________________________________
2PolyPow:
description: this function return nth power of a polynomial
syntax: input poly vector in List 1(MENU\STAT\List 1)
after run you must input power(n)
result: saved into List 2
example: for computing (x+1)^10 you must input [1 1]
in List 1 and input 10 for n after run result is:
[1 10 45 120 210 252 210 120 45 10 1]
that represent:
x^10+10x^9+45x^8+120x^7+210x^6+252x^5+210x^4+120x^3+45x^2+10x+1
notes: if power(n) less than(<) zero then program show error message
if power(n) is not integer then program convert it to largest integer that is not greater than itself
(use Intg command that located in OPTN\F6(>)\F4(NUM)\F5(Intg))
_____________________________________________________________________
3PolyDiv:
description: this function return quotient and remainder of a polynomial division
syntax: assume you want calculate quotient and remainder of B/A
(that B & A are polynomial) for this you must input coefficient of polynomial B in List 1(MENU\STAT\List 1)
and coefficient of polynomial A in List 2(MENU\STAT\List 2)
result: quotient saved into List 3 and remainder saved into List 4
example: for calculate quotient and remainder of below division
(x^3+2x^2+3x+4)/(2x^2+3x+3)
you must input [1 2 3 4] into List 1 and
[2 3 3] into List 2 after run result is:
quotient=List3=[0.5 0.25]
remainder=List4=[0 0 0.75 3.25]
notes: if first coefficient of polynomial A(denominator) be zero then program show error message _____________________________________________________________________
4PolyDiff:
description: this function return polynomial derivative of a poly vector
syntax: input poly vector in List 1(MENU\STAT\List 1)
result: saved into List 2
example: if List 1 = [1 0 2 5] then result is [3 0 2]
_____________________________________________________________________
5PolyInt:
description: this function return polynomial integral of a poly vector
syntax: input poly vector in List 1(MENU\STAT\List 1)
result: saved into List 2
example: if List 1 = [1 0 2 5] then result is [0.25 0 1 5 0]
_____________________________________________________________________
6PolyVal:
description: this function return polynomial evaluation of a poly vector
syntax: input poly vector in List 1(MENU\STAT\List 1)
after run you must input X
result: saved into List 2
example: if List 1 = [1 0 2 5] and X=3 then result is 16 _____________________________________________________________________
7PolyFit:
description: this function return polynomial curve fitting of 2 poly vector(x,y)
syntax: input first poly vector(x) in List 1(MENU\STAT\List 1)
and input second poly vector(y) in List 2(MENU\STAT\List 2)
after run you must input degree(n)
result: saved into List 3
example: if List 1 = [1 0 2 5] and List 2 = [2 3 1 1]
and n=3(degree) then result is [0.2556 1.2556 0.5111 3]
notes: if length of 2 poly vector(List 1 & List 2) are not the same then program show error message
if n(degree) >= number of data(length List 1 or List 2)
then polynomial is not unique and program show warning message

note: real and complex number can be used in all of functions
""PERSIAN GULF""
""Mir Hossein Moussavi""   
  By: Oxinabox  4715 clicks  The ultimate one player pong.
Will only work on the fx9860G due to some character noncompatability.
(I have reuploaded it in the esier to add .g1r format)
Features
````````
Better paddle and ball.
Adjustable speed.
Pause running score and speed.
Advanced high score system (3 highscores with 3 letter names attached)   
  By: amin heidari  238 clicks  this program Returns QR decomposition of a square matrix

input your matrix in matrix A(Menu\RUN.MAT\F1\Mat A)
matrix A must be a square
caution: if Matrix A is'nt square then program give error message
then run QR(Menu\PRGM\QR)
after this Mat Q and Mat R display

Matrix Q is unitary matrix &
Matrix R is upper triangular matrix

Mat Q * Mat R= Mat A

you can access with them in Mat Q & Mat R((Menu\RUN.MAT\F1\Mat Q & Mat R))

for example:
Mat A=[[1,2][3,4]]
after run program we have:
Mat Q=[[0.3162,0.9486][0.9486,0.3162]]
Mat R=[[3.1622,4.4271][0,0.6324]]
""Mir Hossein Moussavi""
""PERSIAN GULF""   
  By: amin heidari  371 clicks  ***********************************************************
caution: for this version you must update OS to version 2.0
this version need 'str' & 'Rref' function that available in OS V2.0
***********************************************************
this program calculate Rank of matrix

run RANK(Menu\PRGM\RANK)
after run this message is show==>'source:'
you must input name of matrix that you want calculate Rank
for example: Mat A  Mat B ... Mat Ans
***********************************************************
caution: 1 for input 'Mat'==> OPTN\F2\F1
2 for input 'Ans'==> SHIFT\()
***********************************************************   
  By: amin heidari  306 clicks  this program calculate Real Roots with Regula Falsi Method(or False Position Method)
and display table of calculations of Regula Falsi Method

run REGULA(Menu\PRGM\REGULA)
*after run this message is show==>'Input f(x)=0?'
you must input equation with 'x' variable
for example: x^3+x^2+x+1
*after this step this message is show==>'Input x1?'
you must Input lower confine
for example(for x^3+x^2+x+1): 3
*after this step this message is show==>'Input x2?'
you must Input upper confine
for example(for x^3+x^2+x+1): 3
*after this step this message is show==>'Input Error?'
you must Input Error
for example: 0.1 or 0.01 or 0.001 or ...
decrease error ==increase precision x3(real root that found between x1 & x2)==long time process
***********************************************************
caution: Error can't set 0
***********************************************************
after this step x3 is show
x3 is real root that found between x1 & x2
***********************************************************
caution:if don't found real roots between x1 & x2 then this
Error is show:'No Real Roots Found Between x1 & x2'
***********************************************************
for see table of calculations of Regula Falsi Method
goto: MENU\STAT
""PERSIAN GULF""   
  By: amin heidari & Roy F.A. Maclean  620 clicks 
new features:
1 automatic scaling added 2 wait bar added
***********************************************************
this program Plot Root Locus.
this program contain 4 programs. you must transfer all of them into your calculator.
DIFFPOLY EVALPOLY NUM2STR RLOCUS

run the program by follow (MENU\PRGM\RLOCUS) and hit EXE key.
after that you will see a menu that contain:
1:Plot ==> for plot root locus 2:View Window ==> for change Auto & Manual View settings 3:Setting ==> for change Line or Axes setting

if you select View Window then you will see a submenu that contain:
1:Auto ==> for turn on or off automatic scaling(default=on)
2:Manual ==> for change view window settings(Manual scaling)
if you select Manual then automatic scaling set to off 3:<<< ==> for return to previous menu

if you in this submenu(Root\View Window) select Auto then you will see another submenu that contain:
1:on ==> for turn automatic scaling on 2:off ==> for turn automatic scaling off

if you in this submenu(Root\View Window) select Manual then you will see another submenu that contain:
1:Xmin ==> for change lower limit of X axis(default=10)
2:Xmax ==> for change upper limit of X axis(default=10)
3:Ymin ==> for change lower limit of Y axis(default=10)
4:Ymax ==> for change upper limit of Y axis(default=10)
5:<<< ==> for return to previous menu
if you turn on automatic scaling then these values are skipped

if you come back to main menu and select Setting then you will see another submenu that contain:
1:Line Space ==> Line Space(P1, P2, n) generates n points equally spaced between P1 and P2 for changes of K(gain) variable 2:Axes ==> for turn on or off axes 3:<<< ==> for return to previous menu

if you in this submenu(Root\Setting) select Line Space then you will see another submenu that contain:
1:Start P1 ==> for change start point of Line Space function(default=0)
2:End P2 ==> for change end point of Line Space function(default=20)
3:Point n ==> for change number of point of Line Space function(default=41)
4:<<< ==> for return to previous menu
note: with default value; root locus plotted for K>0 and K changed like this:
0.00,0.50,1.00,1.50, ... ,20.00
if you want plot root locus for K<0 change Start and End values like this(for example): Start P1=20 & End P2=0
& Point n=41 with these values K changed like this:
20.00,19.50,19.00,18.50. ... , 0.00

if you in this submenu(Root\Setting) select Axes(default=off)
then you will see another submenu that contain:
1:on ==> for turn axes on 2:off ==> for turn axes off
note: i recommend to you turn axes off because in that case you can see plotted points on the real axis

if you come back to main menu then select Plot then you will see below message:
"Input Sys(S)?"
you must input openloop SISO model Sys with S variable this function can be applied to any of the following negative feedback loops by setting Sys appropriately
(read help for extra information)
Example:
Sys=(S^2+S+0.5)/(S^3(S+4))
after input Sys(S); plotting of root locus will started and you can see growth of root locus!!!

notes:
1greater value for Point n == increase precision of graph
== longer time process
2if automatic scaling=on then you dont need adjust view window setting manually; you need only adjust Line Space values(P1,P2,n)
i think 41 points is enough for the n(number of point)
therefore you may need adjust P1 & P2
""PERSIAN GULF""
""Mir Hossein Moussavi""   
  By: Babak  308 clicks  Hello!
This Program Creates the Beautifull picture of rose.   
  By: amin heidari  352 clicks  bug fixed in new version(V0.15)
***********************************************************
this program calculate the table of routh hurwitz even if first element Or all elements equals with zero

input coefficient of equation(poly) into List 1(MENU\STAT\List 1)
for example if you want calculate table of below equation
s^6+s^5+3s^4+3s^3+3s^2+2s+1
you must input below vector in List 1
[1 1 3 3 3 2 1]
after input poly equation in List 1 you must follow below address:
MENU\PRGM\ROUTH
and hit EXE key. after run program goto:
MENU\STAT for see table of routh hurwitz

notes:
1in the table +9999999 means +infinite and 9999999 means infinite
2that List Labeled with ALL=0 show where all element zero happened with number 1
3that List Labeled with 1ST=0 show where first element zero happened with number 1
4if your poly equation have zero roots then program factor this roots. for example if you input [1 1 3 3 3 2 1 0 0]
(that have dual zero roots) then program continue progress with [1 1 3 3 3 2 1]
5maximum length of input vector(poly equation) is 38 in other words maximum degree of equation is 37(s^37+...)
6since table of routh hurwitz showed from List 1 therefore progam copy the elements of List 1 into List 26 and clear List 1.after run program you can access with your poly equation in List 26
7if length of input vector less than 3 then below error will showed and runing of program stopped
Error:
Equation Is Very Simple

caution: for input new equation clear all List with ClrList command first
for input ClrList command hit these keys:
SHIFT\VARS(PRGM)\F6(>)\F1(CLR)\F3(List)
""PERSIAN GULF""
""Mir Hossein Moussavi""   
  By: amin heidari  355 clicks  this program calculate Real Roots with Secant Method
and display table of calculations

run SECANT(Menu\PRGM\SECANT)
*after run this message is show==>'Input f(x)=0?'
you must input equation with 'x' variable
for example: x^3+2x^2x+1
*after this step this message is show==>'Input x1?'
you must Input lower confine
for example: 4
*after this step this message is show==>'Input x2?'
you must Input upper confine
for example: 4
*after this step this message is show==>'Input Error?'
you must Input Error
for example: 0.1 or 0.01 or 0.001 or ...
decrease Error ==increase precision x(real root that found)==long time process
***********************************************************
caution: Error can't set 0
***********************************************************
after this step x is show
x is real root that found between x1 & x2
***********************************************************
caution:if don't found real roots between x1 & x2 then this
Error is show:'No Real Roots Found Between x1 & x2'
***********************************************************
for see table of calculations of Secant Method
goto: MENU\STAT
""Mir Hossein Moussavi""
""PERSIAN GULF""   
  By: amin heidari  583 clicks  this program use Simplex algorithm for optimization
***********************************************************
input Right coefficients & left coefficients in "Mat A"
for example for below optimization question:
max Z= 2x+3y+4z
3x+2y+z<=10
2x+5y+3z<=15
"Mat A" must be:
[1 2 3 4 0 0 0;
0 3 2 1 1 0 10;
0 2 5 3 0 1 15]
for more information about this question go to below link:
http://en.wikipedia.org/wiki/Simplex_algorithm
***********************************************************
after this step run SIMPLEX(Menu\PRGM\SIMPLEX)
after run; program start optimization
this program do optimization step by step and inside of each
step display number of pivot column & pivot row
***********************************************************
optimization stopped automatically and in the end display
this message: "End Of Optimization"
***********************************************************
caution: all changes saved into "Mat A"   
  By: that_guy  398 clicks  Program to find slope of a line off of two points and graph it. The 'Lbl r' is there for no real reason, just left over from an earlier version. Have fun.
that_guy   
  By: Oxinabox  3097 clicks  This is snake (like trhe mobile game) for the fx9860, it has some character noncompatabilitiy (once again) with the older calculator but this is easy to change.
this time it works, silly bug, (uploaded wrong file)   
  By: Sean Tan  858 clicks  Your aim is to restore peace to the galaxy. Receive and take on missions from the Jedi council. Battle in space or fight with a lightsaber. New areas are unlocked as you progress. Challenge Darth Maul, Count Dooku, Jango Fett, Darth Sidious and the Trade Federation army. Game includes tons of enemies and options. Includes loan sharks, shipyard, Jedi Temple, credit union, Kamino clone factory and more. Great addictive fun!
Completely optimized for the fx9860G calculator.
For more details, visit the games homepage at http://casiokingdom.org   
  By: amin heidari  280 clicks  new features:
1 it can expand equation with or without complex number 2 coefficients can be complex or not 3 it support unsorted polynomial 4 it support repeated terms
***********************************************************
caution:this program need Str function that available in OS version 2.0
this program convert string to poly(coefficients of equation)
for example convert
"(Xi)(X+i)(12i)X^2+(X+i)^3+(X1)^2+2X2X+(X1)(X2)+i"
to
[1 9+4i 8 4]

this program can used by programmers to write better program
first you must get string and saved into Str 1
for example:
"(Xi)(X+i)(12i)X^2+(X+i)^3+(X+1)^2+2X2X+i" => Str 1
and then you must put the variable's name that you want extract itself coefficients into Str 2 for mention example :
"X" => Str 2

cautions:
1 all variable's name can be set into Str 2 from A to Z and r and theta 2 you can input constant variables into Str 1 too but only those that have not changed in the while of execute of program(read help for extra information)

note: for input Str command hit this keys:
VARS\F6\F5(Str)

in the programing you can show message and get this from user
for example(in the programing): "Input String"?=>Str 1

note:
1for input " character hit :
ALPHA\EXP
2for input ? character hit :
SHIFT\VARS(PRGM)\F4(?)

after this step you must run STR2POLY by two method
1(for the users) go to (Menu\PRGM\STR2POLY) and hit EXE key
2(for the programmers) write in your program below command
Prog "STR2POLY"

note: for input Prog command hit:
SHIFT\VARS(PRGM)\F2(CTL)\F1(Prog)

after run; output(poly state of input string) saved into List 1
users can see output by follow under address:
MENU\STAT\List 1
and programers can access elements of List 1 by type:
List 1[1],List 1[2],...

note:for input List command hit this key:
OPTN\F1(LIST)\F1(List)

Vuvuzela Is Ugly & Noisy Horn !!!
""Mir Hossein Moussavi""
For My Mother
""PERSIAN GULF""   
  By: ZweiLynx  247 clicks  TRANRAND  Transform a random variable U(0,1) to another distribution (inverse cumulative)
Field: Statistics, Simulation.
This program transforms a continuous uniform (standard) distributed variable to another distribution, with the specified parameters. The random numbers U(0,1) MUST be stored in List 1 before running the program. The program asks for the required parameters, and stores the results in List 2. These results are the values for the inverse cumulative distribution, to the effects of inverse transform sampling.
The options to make the transformation are Continuous Uniform, Discrete Uniform, Triangular, Exponential, and Bernoulli. Version 2.00 (in the works) will add Normal and LogNormal distribution options.   
  By: BISMAR PAUCARA  303 clicks  Es una pequeña aplicasion del triangulo de ohm para circuitos electricos.   

