- MicroPro, Casimo, naib864 and 2 others like this

- Universal Casio Forum
- → Most Liked Content

# Most Liked Content

### #56005 We Have Been Hacked

Posted by flyingfisch on 19 November 2012 - 10:49 AM

### #55057 آموزش Cplua

Posted by MicroPro on 22 June 2012 - 09:36 AM

x = tonumber( input() ) if x > 0 then print("Positive") else print("Negative") end print("Program finished")

x = tonumber( input() ) if x > 0 then print("Positive") elseif x == 0 then print("Zero") else print("Negative") end print("Program finished")

x = tonumber(input()) if 0 < x and x <= 10 then print "Fail" elseif 10 < x and x <= 15 then print "Bad" elseif 15 < x and x <= 20 then print "Good" else print "Error" end

**Ù†Ù…ÛŒØªÙˆÙ†ÛŒÙ…**Ø¨Ù†ÙˆÛŒØ³ÛŒÙ…. Ø¨Ù„Ú©Ù‡ Ø¨Ø§ÛŒØ¯ Ù…Ø«Ù„ Ø¨Ø§Ù„Ø§ if 0 < x and x <= 10 Ø¨Ù†ÙˆÛŒØ³ÛŒÙ… (Ú©Ù‡ then Ø¯Ø±Ø³ØªØ´ Ù‡Ù… ØªÙˆÛŒ Ø±ÛŒØ§Ø¶ÛŒØ§Øª Ù‡Ù…ÛŒÙ† Ù‡Ø³Øª).

name = input() if name=="ali" or name=="jack" then print "Male" else if name=="sara" or name=="mary" print "Female" else print "I don't know" end

if name == "ali" or "jack" then ...

**Ú©Ø§Ù…Ù„Ø§Ù‹ Ø§Ø´ØªØ¨Ø§Ù‡ Ù‡Ø³Øª!**Ø§Ú¯Ø± Ú©Ø³ÛŒ Ù…ÛŒØ®ÙˆØ§Ø¯ Ø¨Ø¯ÙˆÙ†Ù‡ Ø¨Ú¯Ù‡ ÙˆÙ„ÛŒ Ø¯Ø± ØØ§Ù„Øª Ø¹Ø§Ø¯ÛŒ ØªÙˆØ¶ÛŒØ Ù†Ù…ÛŒØ¯Ù… Ú©Ù‡ Ú†Ø±Ø§ Ø§Ø´ØªØ¨Ø§Ù‡Ù‡ Ú†ÙˆÙ† Ø§Ú¯Ù‡ Ø¨Ø®ÙˆØ§Ù… Ø¨Ú¯Ù… Ø§ØØªÙ…Ø§Ù„Ø§ Ù…Ø«Ù„ Ù‚Ø¨Ù„ Ù¾Ù†Ø¬ ØªØ§ Ù¾Ø§Ø±Ø§Ú¯Ø±Ø§Ù ØªÙˆØ¶ÛŒØ Ù…ÛŒÙ†ÙˆÛŒØ³Ù… ÙˆÙ„ÛŒ Ù‡Ù…Ù‡Ø´ Ù…Ø¨Ù‡Ù… Ø¨Ù†Ø§Ø¨Ø±Ø§ÛŒÙ†...

== Ù…Ø³Ø§ÙˆÛŒ > Ø¨Ø²Ø±Ú¯ØªØ± < Ú©ÙˆÚ†Ú©ØªØ± >= Ø¨Ø²Ø±Ú¯ØªØ± ÛŒØ§ Ù…Ø³Ø§ÙˆÛŒ <= Ú©ÙˆÚ†Ú©ØªØ± ÛŒØ§ Ù…Ø³Ø§ÙˆÛŒ ~= Ù†Ø§ Ù…Ø³Ø§ÙˆÛŒ

**ØªÙˆØ¯Ø±ØªÙˆ**Ú©Ø±Ø¯. Ù…Ø«Ø§Ù„ Ù¾ÛŒÚ†ÛŒØ¯Ù‡: ÙØ±Ø¶ Ú©Ù†ÛŒØ¯ ÛŒÙ‡ Ø§Ø³ØªØ§Ø¯ Ø¯Ø§Ù†Ø´Ú¯Ø§Ù‡ Ù…ÛŒØ®ÙˆØ§Ø¯ Ù†Ù…Ø±Ù‡â€ŒÙ‡Ø§ÛŒ Ù¾Ø§ÛŒØ§Ù† ØªØ±Ù… Ø¯Ø§Ù†Ø´Ø¬ÙˆÙ‡Ø§Ø´Ùˆ Ø±Ø¯ Ú©Ù†Ù‡. Ø§Ú¯Ø± Ø¯Ø§Ù†Ø´Ø¬ÙˆÛŒÛŒ Ù‚Ø¨ÙˆÙ„ Ø´Ø¯Ù‡ Ø¨Ø§Ø´Ù‡ Ø§Ø³ØªØ§Ø¯ 2 Ù†Ù…Ø±Ù‡ Ø§Ø¶Ø§ÙÛŒ Ø¨Ù‡Ø´ Ù…ÛŒØ¯Ù‡ØŒ Ø§Ù…Ø§ Ø§Ú¯Ø± Ø¯Ø§Ù†Ø´Ø¬ÙˆÛŒÛŒ Ø±Ø¯ Ø´Ø¯Ù‡ Ø¨Ø§Ø´Ù‡ Ø¯Ø± ØµÙˆØ±ØªÛŒ Ú©Ù‡ Ø§ÙˆÙ† Ø¯Ø§Ù†Ø´Ø¬Ùˆ Ø§Ø² Ø¯Ø§Ù†Ø´Ø¬ÙˆÙ‡Ø§ÛŒ Ù…ÙˆØ±Ø¯ Ø¹Ù„Ø§Ù‚Ù‡ Ø§Ø³ØªØ§Ø¯ ÛŒØ¹Ù†ÛŒ ali Ùˆ sara Ø¨Ø§Ø´Ù‡ Ø¨Ù‡Ø´ 5 Ù†Ù…Ø±Ù‡ Ø§Ø±ÙØ§Ù‚ Ø¨Ú©Ù†Ù‡ ÙˆÙ„ÛŒ Ø§Ø² Ø¨Ù‚ÛŒÙ‡ 2 Ù†Ù…Ø±Ù‡ Ú©Ù… Ú©Ù†Ù‡! Ø§ÛŒÙ† Ø¨Ø±Ù†Ø§Ù…Ù‡ Ø¨Ø§ÛŒØ¯ Ø§Ø³Ù… Ø¯Ø§Ù†Ø´Ø¬Ùˆ Ùˆ Ù†Ù…Ø±Ù‡ Ø´Ùˆ Ø¨Ú¯ÛŒØ±Ù‡ Ùˆ Ù†Ù…Ø±Ù‡ Ù†Ù‡Ø§ÛŒÛŒ Ø±Ùˆ Ù¾Ø±ÛŒÙ†Øª Ú©Ù†Ù‡

name = input("Student name:") grade = tonumber(input("Student grade:")) if grade > 10 then grade = grade + 2 else if name=="ali" or name=="sara" then grade = grade + 5 else grade = grade - 2 end end print("Final grade is ", grade)

**Ùˆ Ø§Ù…Ø§ ØªÙ…Ø±ÛŒÙ† ØªÙˆÛŒ Ø®ÙˆÙ†Ù‡!**Ø¨Ø±Ù†Ø§Ù…Ù‡ Ø§ÛŒ Ø¨Ù†ÙˆÛŒØ³ÛŒØ¯ Ú©Ù‡ Ù…Ù‚Ø¯Ø§Ø± a Ùˆ b Ùˆ c ÛŒÚ© Ù…Ø¹Ø§Ø¯Ù„Ù‡ Ø¯Ø±Ø¬Ù‡ Ø¯ÙˆÙ… Ø¨Ù‡ ÙØ±Ù… ax

^{2}+bx+c=0 Ø±Ùˆ Ø¨Ú¯ÛŒØ±Ù‡ØŒ Ø±ÛŒØ´Ù‡â€ŒÙ‡Ø§ÛŒ Ø§ÙˆÙ† Ø±Ùˆ Ù…ØØ§Ø³Ø¨Ù‡ Ùˆ Ú†Ø§Ù¾ Ú©Ù†Ù‡!

- saeed511, Ata.H.D, farahmand and 1 other like this

### #63162 Vintage 1976 Casio fx-102 Scientific calculator review

Posted by MJim on 26 February 2020 - 04:59 AM

**INTRODUCTION**

I don't have that many truly old scientific calculators, and none using the old VFD display technology, so I was pretty interested to check out this old Casio Scientific fx-102 from 1976. Accordingly this is one of the very first consumer calculators that had built in fraction support, which came as a bit of a surprise since I thought the fraction feature was something that came about well after the introduction of LCD based scientific calculators.

One price quoted for the fx-102 in 1976 is £23, which in todays 2020 money would equate to nearly ~£149 pounds. This was pretty cheap for a scientific calculator back then (the programmable fx-201P was £60 in 1976 which is about the cost of a fairly high end smartphone at ~£388).

**BUILD QUALITY**

Well considering the age of this machine and the condition that it is in, top marks all around. It doesn't look too far off from being new despite it's age of 40+ years.

It is however very big and bulky, and much larger than my fx-82 which was released only half a decade later. With TN LCD displays already being in production at the time, offering lower power consumption and a smaller size, it isn't surprising that VFD displays eventually disappeared.**Front of the fx-102:**

**Rear of the fx-102:**

**POWER CONSUMPTION**

The devices uses 4xAA batteries, and a power consumption figure of 0.4W is printed on the calculator. However I did do a few tests using a fluke multimeter:__Power on current draw peak__: **~43mA**

__Power off current draw peak:__ **~100mA** (not sure why, switching off seems to draw more current).

__Idle (Radians mode) displaying 0 average:__ **39.98mA** (Min: 37.76mA, Max: 44.72mA)__Idle (Radians mode) displaying 8888 8888 88 average:__ **46.68mA** (Min: 40.26mA, Max: 50.02mA)__Calculation current peak:__ **~50mA** (Hard to measure without a function that works continuously).__Calculation voltage average:__ **5.72V** (Min: 5.64V, Max: 5.95V)__Calculated peak power:__ 5.95V * 0.05A = **0.30W**

Switching between different modes (Rad->Deg->Grad->SD) did not effect the current draw.

So I guess the 0.4W figure is fairly honest. I can't locate a manual for the fx-102, but the fx-101 which has a 0.45W drain states a lifespan of 25 hours for alkaline batteries, but with the measured figures and the battery specs (Varta AA longlife alkaline) 30-40 hours doesn't seem all that unrealistic if the fx-102 can make use of all of the available battery capacity.**DIGITS/PRECISION**

It is a 12 digit VFD, but it never seems to use the left most digit. Normally, this calculator seems to handle up to 10 digits for both entry and accuracy. This also means that for numbers big/small enough to require an exponent you actually only have 8 digits of precision, so a good deal of precision is lost once a number transitions to scientific notation, as the last 2 digits are lost in order to display the exponent.

Below is a list of the precision of different functions that I worked out from trial and error (the last digit will be +/-1 in most cases):**10 digits for independent memory** (including M+ and M- operation)**10 digits for basic arithmetic (+,-,*,/)****10 digits for 1/x
10 digits for fractions
10 digits for DMS -> Decimal conversion**

**10 digits for pi constant (3.141592654)**

**10 digits for statistics functions**

**9 digits for square root****8 digits for base10 log, natural log, natural exponential, base10 exponent** (Hidden 9th digit for rounding)**8 digits for trig functions: sin, cos, tan, arcsin, arccos, arctan** (Hidden 9th digit for rounding)**8 digits for x^y function** (2 steps, finds natural log of x, multiplies by y then finds e^(y*ln(x)) - Hidden 9th digit for rounding).

Having functions calculate with less precision than the displayable 10 digits does cause problems however. For example, with the [x^y] function 2^32 should equal 4,294,967,296; which can also fit on the display of the fx-102 without any issue, but since only 8 digits are used, the last 2 digits are truncated returning 2^32 = 4,294,967,200. One way to work around these problems is to avoid using x^y for any numbers greater than 8 digits, but this is rather inconvenient. You could also break it down into smaller parts 2^24 * 2^8, but this requires not only doing the same equation twice over, but also storing the result in memory for each part and then finally multiplying the result at the end.

**CONSTANT CALCULATION MODE**

You can multiply or divide by a constant by either pressing the multiplication/division key twice in succession.

This isn't quite as developed as later Casio models like the D-series (eg fx-100D, fx-115D, fx-991D), where you can also use add and subtract for constants (both real and complex) in addition to using [x^y] and [x^1/y] as constant functions (you specify y, and once set as constant, you can automatically execute these functions by entering for the x-value followed by [=]). It still can be useful however:

For example if you were looking to find circumference of several circles with radius's of 1, 3 & 7.9 metres:

2Ã—[pi] Ã—Ã— {enter radius}

6.283 185 308

1[=]

6.283 185 308

3[=]

18.84955592

7[.]9[=]

49.63716393

Likewise, if you wished to find the radius from a given circumference of 6, 1, & pi metres:

2Ã—[pi] Ã·Ã· {enter circumference}

6.283 185 308

6[=]

0.954 929 658

1[=]

0.159154943

[pi]

0.5

Only the [1/x], [Ab/c] and memory storage keys ( [MC], [MR], [M-], [M+]) can be used while remaining in constant mode. Be aware though that if you want to store the result from a constant calculation, you need to enter the number and then press [M+] or [M-] key instead of pressing [=] then [M+]/[M-]. This saves an extra step, showing you the result in addition to storing it, but carries the disadvantage of not seeing the result first before storing it.**TIPS AND TRICKS****Use the [x^y] button instead of ln button for natural logs**

The x^y function is odd in that it returns the natural log of the value for x you enter first, before you enter the value for y to complete the function. However the natural log returned after entering x's value is of a higher 10 digit precision then the built in ln button! Since you can interrupt this calculation, use [x^y] instead of ln. **Use the multiplication constant function for squares**

Unfortunately the fx-102 is missing the squared function, and so squaring numbers is cumbersome, for example, 5^2: 5[x^y]2[=]. You can also use the constant function for multiplication and division instead: 5^2: 5Ã—Ã—[=].

Now it's just as many key-presses to use [x^y], so you might ask why. A good reason is that the [x^y] function has at best 8 digits of precision, while basic arithmetic operations including constant mode have 10 digits of precision (+/- 1 digit), so you get a more precise result for the same number of presses.**Alternatively, use statistics mode for squares**

Switch to S.D mode, and then take advantage of the sum squared function:

5^2: 5[=][M+]

This has the advantage of requiring just 3 button presses, but since you need to switch to statistics mode, it isn't particularly practical.

If however you are doing pythagorus type equations, statistics mode can actually save a bit of work, for example:

*"The main tent pole in a conical tent is 3 metres high, and the radius of tent floor is 5 metres. What is the length of the tent fabric stretching from from the tent pole to the floor?"*

d = sqrt(3^2 + 5^2)**{switch to statistics mode}**

3[=] 5[=] [M+]

34**{switch to any other mode, GRAD being closest}**

[sqrt]

5.83095189**8 steps required**

If we performed this in any other mode:

3[x^y]2[=][M+] 5[x^y]2[=][M+] [MR][sqrt]

5.83095189**12 steps required****FRACTION FEATURE**

I was already aware that Casio's fraction feature has 2 implementations, old and new. The older version as found on my fx-100D (c1992) is only able to display fractions while all calculations are also in fraction form. The newer version as found on my fx-991W (c1998) adds the ability to convert decimals to fractions (as long as the number of digits that make up the fraction including fraction marks don't exceed 10).

The Casio fx-102 is using a version of the older implementation, although it is restricted to only using 3 digits for each component of the fraction. Furthermore, it is also limited to 10 digits total, including fraction marks, eg 123+45/678 (which will simplify to 123+15/226). It does work pretty well however, so you can happily continue to add/subtract/multiply/divide in fraction form as long as doing so doesn't exceed 3 digits for any value and 8 digits total for improper fractions.

Unfortunately, this feature comes with a pretty big downside, and that is that any calculation involving fractions can not be stored in memory. As long as any calculation has at one time made use of the fraction feature, you are unable to store that number, even if the fraction was used several calculations ago. Since there are no brackets (or stack), this can make working with fractions problematic, as at no time can you store part of the result of an equation temporarily; for example for the equation 1/2*sin(30) + 1/4*sin(60), it is actually impossible to solve using fractions since you are unable to store the answer to the first part (1/2*sin(30)) before working on the second part.**QUICK TEARDOWN**

For the age of the calculator I thought the soldering and traces were relatively neat. There are two, single-sided PCB's, one for most of the important electronics the other for the keyboard. Both boards are connected by several flat, copper wires. I've opened this calculator up twice now, and these types of connectors make me rather nervous (I trashed my old SH3 fx-9750G2 by breaking something similar). **Overhead view of the two PCB's:**

Unfortunately while I know some basics, I'm not particular knowledgable on electronic circuits. I don't know how VFD's (Vacuum fluorescent display) work, but a quick google suggests they need 2 different voltages, A lower voltage (3V) for the filament (heater) and a higher voltage (12V to 30V) for the segments themselves. Since this works off 4xAA batteries I'm guessing that there is some sort of DC-DC voltage booster. While looking at the photograph of the motherboard I noticed that there was actually a 3rd PCB just to the left of the Hitachi HD36130 CPU, my guess here would be that this is the DC-DC convertor that provides the higher voltage for the VFD display.

**Main board:**

They keyboard PCB looks fairly neatly soldered as well, although it's not hard to spot the repair that was done at some time in the past. Pressing a button looks to short that button to ground. There are 4 separate metal plates for the buttons, each with tabs that contact one of the 5 flat copper pads seen on the front of the keyboard PCB. The 5th copper pad appears to connect to a metal spring which connect the metal face on the calculator to ground. I've always wondered why older Casio calculators do this, would be interesting to get some insight.

**Keyboard PCB rear:**

**Keyboard PCB front:**

**Keyboard & Front cover inside:**

**Keyboard buttons and springs:**

**CONCLUSION**Realistically this isn't the sort of scientific calculator I can see myself using in the modern age. The next oldest calculator I have is the original Casio fx-82 from 1982 (6 years later), which is far more compact, much more energy efficient (0.4W vs 0.0007W, or nearly 600 times less power!) as well as adding much needed stacks in the form of parenthesis, rectangular to polar and polar to rectangular conversions, more constant operations and other functionality. It doesn't however have the fraction key and it is slower, but considering the rate of progress with calculator technology today, it must of been crazy to witness the changes from the late 1970's to early 1980's.

While the fx-102 may not have much utility in modern times, it does still however provide an interesting insight into the evolution of some of the core Casio features that are standard on later models. It has the same direct entry system and the early independent memory works much the same way even in modern calculators (M+/M-). The core fraction entry and display is pretty much unchanged, though the fraction button will toggle between fraction and decimal display, rather than remaining stuck in decimal display. The exponential button is pretty much unchanged, and the Sexagesmial conversion just added the ability to convert from Decimal back to DMS. Finally the constant function would get a few enhancements and stick around for a little over 20 years, when it was finally mothballed with the introduction of the W-series S-VPAM models in 1998.

- Tritonio, secutor and Hlib2 like this

### #60412 FX-82/-83GT/-115/-991ES PLUS Hacking

Posted by SopaXorzTaker on 21 August 2016 - 05:27 PM

The following list was written by user202729 and serves as the guide to this forum thread.

Tutorial about ROP.

Javascript code to help with writing hackstring.

Character map image. Alternative version. Also available in the Javascript code above.

Scrolling text demonstration with video.

Calculator font.

How to enter a hackstring (991ES+) (less detailed version)

Hackstring used to dump the ROM. No longer needed now as we already have the ROM.

Datasheet contains some information about the hardware.

Hardware description: Part 1, part 2.

* KI/KO ports (keyboard).

* Timer: Part 1, part 2.

* LCD screen.

Variable byte representation (no English translation this time).

High-level functions:

* getkey

There are some outdated information about "real address" and "emulator address". Now we had the real ROM of the calculator that is not necessary.

- flyingfisch, Viliami and anon34 like this

### #60381 Casio Fx-9860G Sdk Tutorials (2016 Avaiable)

Posted by Viliami on 09 August 2016 - 06:55 AM

The Fx-9860gii SDK uses C by default (it also supports C++, SH4A and SH3 ASM), the SDK just uses the standard C with some extra functions for I/O and drawing.

In the "fxlib.h" header file, there are a bunch of Bdisp functions, these functions deal with drawing pixels to the screen and clearing them.

e.g Bdisp_PutDisp_DD() is the function used to draw a pixel to the screen and Bdisp_AllClr_DD() is the function used to clear all the pixels from the screen.

There is a good tutorial created by Fez and reformatted by Helder7 about the Bdisp functions and basic I/O over here: http://www.casiopeia...php?f=20&t=1420

You can also download the official Casio docs on the fxlib library over here: http://edu.casio.com...greement.html#2

Here is a hello world program, most of this is auto-generated by the SDK when you create a new project:

/*****************************************************************/ /* */ /* CASIO fx-9860G SDK Library */ /* */ /* File name : [ProjectName].c */ /* */ /* Copyright (c) 2006 CASIO COMPUTER CO., LTD. */ /* */ /*****************************************************************/ #include "fxlib.h" //**************************************************************************** // AddIn_main (Sample program main function) // // param : isAppli : 1 = This application is launched by MAIN MENU. // : 0 = This application is launched by a strip in eACT application. // // OptionNum : Strip number (0~3) // (This parameter is only used when isAppli parameter is 0.) // // retval : 1 = No error / 0 = Error // //**************************************************************************** int AddIn_main(int isAppli, unsigned short OptionNum) { Bdisp_AllClr_DDVRAM(); // clear screen PrintXY(1,1,"Hello World!",0); // print "Hello World!" to the VRAM Bdisp_PutDisp_DD(); // copy pixels from the VRAM to the actual display return 1; } //**************************************************************************** //************** **************** //************** Notice! **************** //************** **************** //************** Please do not change the following source. **************** //************** **************** //**************************************************************************** #pragma section _BR_Size unsigned long BR_Size; #pragma section #pragma section _TOP //**************************************************************************** // InitializeSystem // // param : isAppli : 1 = Application / 0 = eActivity // OptionNum : Option Number (only eActivity) // // retval : 1 = No error / 0 = Error // //**************************************************************************** int InitializeSystem(int isAppli, unsigned short OptionNum) { return INIT_ADDIN_APPLICATION(isAppli, OptionNum); } #pragma section

As you can see from above, there is no main() function, unlike standard C our entry point to the program isn't the main() function, it is the AddIn_Main() function.

- flyingfisch, frankmar98 and saeedgolabli like this

### #59479 Casio Prizm Mandelbrot Explorer

Posted by ProgrammerNerd on 11 September 2014 - 11:41 PM

The Mandelbrot fractal is quite a sight.

Such wonder and amazement that can be found while viewing the Mandelbrot fractal can now be had on the Casio Prizm graphing calculator.

In addition this program can also be compiled for the PC assuming SDL is installed.

Just run make and it will be up and running.

There is very little difference in function between the PC version and the casio prizm version, the resolution is higher but that is it.

The controls are

Left, right, up, down moves the window in that direction

Menu key or ESC on the PC, exits to the menu or exits the program (PC)

F1 sets maximum iterations to 65535

F2 sets the maximum iterations to 224 (this is the default upon starting the program)

F3 toggles deep mode which is on by default. This means you can zoom in deeper with a slight performance hit.

I do not notice the difference

1 subtracts one from the maximum iterations

2 adds one to the maximum iterations

3 subtracts ten from the maximum iterations

4 adds ten to the maximum iterations

5 subtracts 100 from the maximum iterations

6 adds 100 to the maximum iterations

Shift zooms in

Alpha (ALT on PC) zooms out

Source code https://github.com/C...-Prizm-Explorer

Binary https://github.com/C.../mandelbrot.g3a

Screen shots (from the PC version which gets very similar output differing only in resolution).

Anyways if you have any bug report(s), feature request(s), pull request(s), patch(es) or whatever relates to this I would be happy to hear about them.

- MicroPro, flyingfisch and Viliami like this

### #57683 Using The Sdk

Posted by preb on 10 February 2013 - 06:26 PM

- MicroPro, flyingfisch and abdelrahmanmostafa like this

### #57532 Introduce Yourself

Posted by flyingfisch on 04 February 2013 - 10:32 PM

Name: Daniel, just call me Hyuji.

Birthday: 15 Feb

Age: 17(For now...)

Hobbies: Biking, Video Games (RPGs), Anime & Manga, Mathematics, Computers, Music(Rap)

Where you got your username: I'm lazy so I just took some grouped letters on the keyboard, that made sense, into a username. If you look on a QWERTY keyboard, you will see the letter H-Y-U-J-I all grouped together for easy typing. My password follows a similar principal.

O.o You sure you want to say that much about your password?

Anyway, welcome to UCF!

Hope you enjoy your stay. In the meantime, Ice Cream!

- MicroPro, Casimo and naib864 like this

### #57387 Like Own Post

Posted by Casimo on 31 January 2013 - 04:39 PM

- Casimo, naib864 and CalcLoverHK like this

### #63278 OS Syscall disassembler

Posted by hejsotnoss on 26 March 2020 - 06:30 PM

Hi everyone,

I want to release a syscall disassembler that I wrote recently.

I put the code on my github page: https://github.com/h...ll-disassembler.

You can build with: gcc -Wall -Wextra -O2 syscall.c disassemble.c

The usage is: [binary OS file] [syscall]

For syscall strlen you can do:

./a.out 2_04_0200_sh4.fls AD6

and the program would return:

Syscall offset table: 0x801C7D88 Syscall offset: 0x80197670 Offset: Code: Instruction: ... 80197670: A001 bra 0x001 80197672: E500 mov #0x00,R5 80197674: 7501 add #0x01,R5 80197676: 6643 mov R4,R6 80197678: 6260 mov.b @R6,R2 8019767A: 2228 tst R2,R2 8019767C: 8FFA bf/s 0xFA 8019767E: 7401 add #0x01,R4 80197680: 000B rts 80197682: 6053 mov R5,R0 80197684: 7FF4 add #0xF4,R15 80197686: 1F51 mov.l R5,@(0x1,R15) 80197688: 6543 mov R4,R5 8019768A: 1F62 mov.l R6,@(0x2,R15) 8019768C: 51F1 mov.l @(0x1,R15),R1 8019768E: A001 bra 0x001 80197690: 2F42 mov.l R4,@R15 80197692: 7501 add #0x01,R5 80197694: 6250 mov.b @R5,R2 80197696: 2228 tst R2,R2 80197698: 8BFB bf 0xFB 8019769A: A007 bra 0x007 8019769C: E400 mov #0x00,R4 8019769E: 6214 mov.b @R1+,R2 801976A0: 6653 mov R5,R6 801976A2: 7501 add #0x01,R5 801976A4: 2228 tst R2,R2 801976A6: 8D04 bt/s 0x04 801976A8: 2620 mov.b R2,@R6 801976AA: 7401 add #0x01,R4 801976AC: 57F2 mov.l @(0x2,R15),R7 801976AE: 3472 cmp/hs R7,R4 801976B0: 8BF5 bf 0xF5 801976B2: 51F2 mov.l @(0x2,R15),R1 801976B4: 3412 cmp/hs R1,R4 801976B6: 8B01 bf 0x01 801976B8: E200 mov #0x00,R2 801976BA: 2520 mov.b R2,@R5 801976BC: 60F2 mov.l @R15,R0 801976BE: 000B rts ...

I can also release the code I wrote to generate the disassembler if anyone is interested.

I hope someone can find this useful

Thank you for reading,

hejsotnoss

- TBit and jakiki6 like this

### #63065 C.Basic - International Release

Posted by sentaro21 on 24 January 2020 - 11:32 AM

- CalcLoverHK and Hlib2 like this

### #63040 C.Basic - International Release

Posted by Hlib2 on 15 January 2020 - 09:00 PM

- piu58 and CalcLoverHK like this

### #60400 Casio Fx-9860G Sdk Tutorials (2016 Avaiable)

Posted by Viliami on 13 August 2016 - 12:22 AM

I just use the sprintf function, (which is in the stdio.h lib, also sidenote: the printXY function is from the fxlib.h lib) to convert the float into a char array and then print it to the screen.

Here is an example function:

void printFloat(int x, int y, float f){ unsigned char buffer[9]; sprintf(buffer, "%f", f); PrintXY(x,y, buffer, 0); }

and here it is in use:

int AddIn_main(int isAppli, unsigned short OptionNum) { float pi = 3.141593; //the float we're going to print Bdisp_AllClr_DDVRAM(); //clear screen printFloat(1,1,pi); //call the function to print the float Bdisp_PutDisp_DD(); //put pixels from VRAM onto the screen while(1){} return 1; }

- frankmar98 and saeedgolabli like this

### #60090 Getting Grayscale Pixels On Sh4

Posted by Viliami on 29 November 2015 - 08:17 AM

Does anybody know how to get gray-scale pixels on SH4-type fx-9860gii model calculators.

I've read that Kucalc got it working back in 2007 but that only for sh3. I know C and C++ but I don't know how to write assembly.

The Casio fx-9860 model series only has a monochrome LCD, therefore it can only display pixels in black and white, but a lot of people found ways to emulate tones of gray(gray-scale) on the LCDs.

You have to switch the pixels on and off at a high frequency to trick our eyes to see gray. A darker gray can be achieved by displaying the black pixels for a little while longer.

I've already tried doing this in C, but the flicker speed is not even close to the speed needed to achieve a gray looking pixel.

I know it's possible because people have already done it for the 9860G, and they also achieved gray-scale on the TI-83+ using the same technique.

I've seen it used in Doodle Jump and Mario Land CE and it looks awesome. Games look so much better with gray-scale.

Please reply if you have any information/comments about gray-scale on the SH4-type CPUs.

- frankmar98 and imyxh like this

### #59215 Complex Numbers Calculations

Posted by PsySc0rpi0n on 22 March 2014 - 01:00 PM

Calculator automatically converts negative angles in their complementary values, meaning -102.7 = 257.3-360

- MicroPro and flyingfisch like this

### #58486 Introduce Yourself

Posted by flyingfisch on 06 May 2013 - 01:03 AM

Do you know any programming languages already?

Here is a good tutorial to start you out with programming on casio calcs: http://community.cas...1798#entry31798

And for news and help, feel free browse the forums or check out my blog, which has some helpful resources and a budding tutorials section.

- Casimo and Thief_Of_Heart like this

### #57986 Beam V0.2

Posted by hayzel on 02 March 2013 - 07:41 PM

It can be used to write your own programs for casio 9860.

mylib tries to simplify things in C, like string manipulation, dynamic structures, and gui elements. It is designed for simplicity in mind, and not speed, so many of the functions contained maybe suboptimal at best.

The description of the functions can be found in the command in mylib.h, and the example application named MYLIBT.c can be very helpful in understanding the mylib usage.

The library contains, debugging functions, screen dumping, information functions, dynamic Strings, StringLists,Dialogs with 2 simple callback mechanisms, DialogItems structs, display functions like Menus,questionBoxes,messageBoxes,multipleChoiceBoxes.

A new View struct that can be used to draw graphics or print text in double real coordinates.

obsolete to be upgraded functions:

matrixEditor,matrixDisplay

mylib version fixes info and download file with the example casio 9860 sdk project can be found here:

http://www.casiopeia...detail&df_id=86

- MicroPro and Viliami like this

### #56675 [Project Idea] Fastbasic

Posted by Casimo on 06 January 2013 - 04:34 PM

I'm planning to make a faster basic-interpreter for the fx-series in c.

The idea: The interpreter uses the same code like the Casiobasic-interpreter. But instead of slow, useless functions I want to use fast ones, for example from Monochromelib or Revolutionfx. I also want to interpret the Send/Receive commands, so they would work.

That means we would play the same basic games like before - but faster and with better quality and new functions.

I already have some good ideas.

But I do not want to program this alone: I want it to be a team project.

So, who wants to join the project?

- MicroPro and naib864 like this

### #55173 Electronic Interpret (Serial And Parallel)

Posted by sebest on 03 July 2012 - 01:08 AM

Run the program: "EC'ELECT"

load the impedances, for example

if you want to solve: [10//10//(8*2)]+10 put:

(10,10,8*2)+10

and solve 13.809

or 2//[((10+10)//50)+2] put:

(2,(10+10,50)+10)

solve = 1.8478

The program solve de parallel separete by "," and then sover the rest.

This program use the NUM2STR program (thanx for this to every body).

http://theview.57o9.org/OP%27PARAL.g1m

And very thanx to Forty-Two for help me, and host the file!!!!

- MicroPro and flyingfisch like this

### #53518 New G2 Models Arriving

Posted by noname11 on 23 December 2011 - 06:03 PM

Because it's already in the SDK (used by GetKeyWait()), but no interface has been provided so far.The announcement also mentions a new supported function "Bkey_GetKeyWait", but I see the version is still 1.00. How can that be?

Here's a batch script that lets you extract Bkey_GetKeyWait() from the fx-9860G library:

@echo off set "shc_lib=%programfiles%\casio\fx-9860g sdk\os" set "sh_lnk=%shc_lib%\sh\bin\optlnk.exe" set "fxlib=%shc_lib%\fx\lib\fx9860G_library.lib" "%sh_lnk%" -library="%fxlib%" -list=modules.txt -form=library -output=temp.lib "%sh_lnk%" -library="%fxlib%" -extract=_Bkey_GetKeyWait -form=object -output=Bkey_GetKeyWait.obj del temp.lib pause > nulIf you analyze this file with a disassembler then:

.section P, CODE .export _Bkey_GetKeyWait _Bkey_GetKeyWait: mov.l #h'80010070, r2 mov.l #h'247, r0 jmp @r2 nop dword_8: .data.l h'80010070 dword_C: .data.l h'247You'll see that Bkey_GetKeyWait() just makes a syscall (0x247) and that it has global scope (.export keyword).

So it should be sufficient to just add the function prototype to an include file:

int Bkey_GetKeyWait(int *code1, int *code2, int wait_type, int time, int menu, short *unused);

- MicroPro and Casimo like this

- Universal Casio Forum
- → Most Liked Content
- Privacy Policy
- Forum Rules ·