Register

Addin Restart routine

Discuss issues related to the fx-9860G Software Development Kit
Member
User avatar
Posts: 23
Joined: Fri Apr 20, 2012 6:13 am

Addin Restart routine

Postby Eiyeron » Mon May 07, 2012 10:34 pm

I got aroutine in CK that give restart acces directly from main menu without getting by an ohter app, but I miss one funtion :"OSVersionAsInt". where could I get it?
Code: Select all
short*APP_EnableRestart(){
    short*pEnableRestartFlag;
      switch ( OSVersionAsInt() ){
            case 0x01020000: case 0x01030000: pEnableRestartFlag =  (short*)0x88006970; break;
            case 0x01040000: case 0x01050000: case 0x01051000: pEnableRestartFlag =  (short*)0x88006974; break;
            case 0x01100000: case 0x01110000: pEnableRestartFlag =  (short*)0x88006CC4; break;
            case 0x02000000: pEnableRestartFlag =  (short*)0x8800773C; break;
            default : pEnableRestartFlag = 0;
      }
      if ( pEnableRestartFlag ) *pEnableRestartFlag = 1;
      return pEnableRestartFlag;
}

I know that i's was on CK, I got it there, but I miss these routine specially
ImageImageImage
ImageImage

Senior Member
User avatar
Posts: 605
Joined: Sat Sep 15, 2012 6:59 am
Location: Krautland ****
Calculators: Casio fx-7400GII, Casio fx-7400GII (SH4), Casio fx-9750GII, Casio fx-9750GII (SH4), Casio fx-9860G, Casio fx-9860G SD, Casio fx-9860G Slim, Casio fx-9860GII SD, Casio fx-9860GII SD Power Graphic 2, Casio Classpad 330 plus, Casio fx-CG20, Casio fx-CG50, Casio Classpad fx-CP400

OSVersionAsInt

Postby SimonLothar » Tue May 08, 2012 6:14 am

Code: Select all
//
int OSVersionAsInt( void ){
unsigned char mainversion;
unsigned char minorversion;
unsigned short release;
unsigned short build;
  GlibGetOSVersionInfo( &mainversion, &minorversion, &release, &build );
  return ( ( mainversion << 24 ) & 0xFF000000 ) | ( ( minorversion << 16 ) & 0x00FF0000 ) | ( release & 0x0000FFFF );
}


GlibGetOSVersionInfo is legacy syscall 0x0015 (http://www.casiopeia.net/forum/downloads.php?view=detail&df_id=72).

But APP_EnableRestart has to be updated related to OSes 2.01+. I'll have a look this afternoon.
I'll be back!

Senior Member
User avatar
Posts: 605
Joined: Sat Sep 15, 2012 6:59 am
Location: Krautland ****
Calculators: Casio fx-7400GII, Casio fx-7400GII (SH4), Casio fx-9750GII, Casio fx-9750GII (SH4), Casio fx-9860G, Casio fx-9860G SD, Casio fx-9860G Slim, Casio fx-9860GII SD, Casio fx-9860GII SD Power Graphic 2, Casio Classpad 330 plus, Casio fx-CG20, Casio fx-CG50, Casio Classpad fx-CP400

APP_EnableRestart()

Postby SimonLothar » Tue May 08, 2012 4:57 pm

An OS-independent implementation for the legacy OSes up to 2.01 would be:

Code: Select all
short*APP_EnableRestart(){
unsigned int ea;
unsigned int j;
short*pEnableRestartFlag;
  if ( OSVersionAsInt() < 0x02020000 ){
    ea = *(unsigned int*)0x8001007C;
    ea += 0x0490*4;
    ea = *(unsigned int*)( ea );
    j = *(unsigned char*)( ea + 1 );
    j *= 4;
    j = ( ea + j + 4 ) & 0xFFFFFFFC;
    pEnableRestartFlag = (short*)(*( unsigned int*)( j ) + 8 );
  }else{
    pEnableRestartFlag = 0;
  }
  if ( pEnableRestartFlag ) *pEnableRestartFlag = 1;
  return pEnableRestartFlag;
}
I'll be back!

Member
User avatar
Posts: 23
Joined: Fri Apr 20, 2012 6:13 am

Postby Eiyeron » Thu May 10, 2012 6:23 pm

Great, thanks!
ImageImageImage
ImageImage

Senior Member
User avatar
Posts: 113
Joined: Sun Dec 16, 2012 2:59 pm
Calculators: None

Re: Addin Restart routine

Postby Casimo » Sun Feb 17, 2013 2:53 pm

Any ideas for a workaround for Os 2.02?
I use GetKey and PutKey but I have to reset all variables then...
Image

Senior Member
User avatar
Posts: 605
Joined: Sat Sep 15, 2012 6:59 am
Location: Krautland ****
Calculators: Casio fx-7400GII, Casio fx-7400GII (SH4), Casio fx-9750GII, Casio fx-9750GII (SH4), Casio fx-9860G, Casio fx-9860G SD, Casio fx-9860G Slim, Casio fx-9860GII SD, Casio fx-9860GII SD Power Graphic 2, Casio Classpad 330 plus, Casio fx-CG20, Casio fx-CG50, Casio Classpad fx-CP400

Re: Addin Restart routine

Postby SimonLothar » Tue Feb 19, 2013 4:52 pm

Casimo wrote:Any ideas for a workaround for Os 2.02?
No workaround! Just a straightthrough. Meanwhile I verified, that the scheme works for 2.02 as well.

You can omit the os-check-if.
Though, I added a few security-checks.

Code: Select all
//
short*APP_EnableRestart(){
unsigned int ea;
unsigned int j;
short*pEnableRestartFlag;
   ea = *(unsigned int*)0x8001007C;
   ea += 0x0490*4;
   if ( ea < 0x8001007C ) return 0;
   if ( ea > 0x81000000 ) return 0;
   ea = *(unsigned int*)( ea );
   if ( ea < 0x8001007C ) return 0;
   if ( ea > 0x81000000 ) return 0;
   j = *(unsigned char*)( ea + 1 );
   j *= 4;
   ea = ( ea + j + 4 ) & 0xFFFFFFFC;
   if ( ea < 0x8001007C ) return 0;
   if ( ea > 0x81000000 ) return 0;
   pEnableRestartFlag = (short*)(*( unsigned int*)( ea ) + 8 );
   if ( ( (unsigned int)pEnableRestartFlag & 0xFF000000 ) != 0x88000000 ) return 0;
   if ( pEnableRestartFlag ) *pEnableRestartFlag = 1;
   return pEnableRestartFlag;
}
I'll be back!

Senior Member
User avatar
Posts: 113
Joined: Sun Dec 16, 2012 2:59 pm
Calculators: None

Re: Addin Restart routine

Postby Casimo » Tue Feb 19, 2013 5:54 pm

Cool, that works! But is it normal that on the emulator 0 is returned?
Image

Senior Member
User avatar
Posts: 605
Joined: Sat Sep 15, 2012 6:59 am
Location: Krautland ****
Calculators: Casio fx-7400GII, Casio fx-7400GII (SH4), Casio fx-9750GII, Casio fx-9750GII (SH4), Casio fx-9860G, Casio fx-9860G SD, Casio fx-9860G Slim, Casio fx-9860GII SD, Casio fx-9860GII SD Power Graphic 2, Casio Classpad 330 plus, Casio fx-CG20, Casio fx-CG50, Casio Classpad fx-CP400

Re: Addin Restart routine

Postby SimonLothar » Wed Feb 20, 2013 7:13 am

Casimo wrote:But is it normal that on the emulator 0 is returned?
At least I am not surprised. APP_EnableRestart() is not normal either.
I'll be back!

Senior Member
User avatar
Posts: 113
Joined: Sun Dec 16, 2012 2:59 pm
Calculators: None

Re: Addin Restart routine

Postby Casimo » Wed Mar 20, 2013 7:43 pm

flyingfisch wrote:Hmm... for some reason my calc freezes when I exit the game, and I have to restart it with the reset button.

(calculator: modded fx9750)
What's wrong with APP_EnableRestart()?
Image

Senior Member
User avatar
Posts: 113
Joined: Sun Dec 16, 2012 2:59 pm
Calculators: None

Re: Addin Restart routine

Postby Casimo » Mon Mar 25, 2013 5:51 pm

Bump.
The same thing on a fx9860.
Image

Next

Return to Casio fx-9860 SDK

Who is online

Users browsing this forum: No registered users and 4 guests