As already described here http://prizm.cemetech.net/index.php/G3A_File_Format#eActivity g3a files headers can be set to 0x01 at address 0x012B to enable add-ins for eActivity strips, which as far as I could see was discovered by gbl08ma.

I started experimenting with the same and turns out besides 0x01 and 0x00 to respectively enable and disable this functionality this address can be also set to 0x02 and 0x03 values respectively enabling total of 2 and 3 eActivity strips. I got this idea from Simon Lothar's legacy documentation.

I'm proposing to update Wiki in the following way in the relevant sections:

Quote:
0x012B

Set to 0x01, 0x02 or 0x03 for add-ins with respectively 1, 2 or 3 eActivity strips, otherwise set to 0x00.


Quote:
0x0170, 0x05D0 and 0x0A30

eActivity name of add-in's 1st, 2nd and 3rd strips (English).

0x0194, 0x05F4 and 0x0A54

eActivity name of add-in's 1st, 2nd and 3rd strips (Spanish).

0x01B8, 0x0618 and 0x0A78

eActivity name of add-in's 1st, 2nd and 3rd strips (German).

0x01DC, 0x063c and 0x0A9C

eActivity name of add-in's 1st, 2nd and 3rd strips (French).

0x0200, 0x0660 and 0x0AC0

eActivity name of add-in's 1st, 2nd and 3rd strips (Portuguese).

0x0224, 0x0684 and 0x0AE4

eActivity name of add-in's 1st, 2nd and 3rd strips (Chinese).

0x0248, 0x06A8 and 0x0B08

eActivity name of add-in's 1st, 2nd and 3rd strips, probably reserved for future languages. Set to the same value as English by default.

0x026C, 0x06CC and 0x0B2C

eActivity name of add-in's 1st, 2nd and 3rd strips, probably reserved for future languages. Set to the same value as English by default.

0x0290, 0x06F0 and 0x0B50

eActivity strip icon. The icon is 64x24 pixels large, with each pixel represented by one nibble. This means that the icon is 0x0300 bytes long.


So far I am however lost how an add-in distinguishes between different strips - I tried looking at EACT1 in MCS while running it from eActivities and sometimes I thought I could detect unique values but when I rerun the same strips from a different eActivity file those observations did not hold. If someone finds the way please let me know. Has someone figured it out on the legacy systems before Prizm?

So in meantime the above header additions can only provide esthetic value by giving you extra strip names and icons to choose from in addition to the one we had till now.

I still would love it if Tari could incorporated this into his mkg3a tool perhaps including some decoding of the eActivity icons into 8 colour nibbles. Also extra options for two reserved localized names for each strip and add-in itself would be great - I sometimes use basic name different to English and would like to set the other names separately.
amazonka wrote:
So far I am however lost how an add-in distinguishes between different strips - I tried looking at EACT1 in MCS while running it from eActivities and sometimes I thought I could detect unique values but when I rerun the same strips from a different eActivity file those observations did not hold. If someone finds the way please let me know. Has someone figured it out on the legacy systems before Prizm?

It seems the CASIO 9860 SDK has support for it. The default.c (SDK sample) contains following:

Code:
//****************************************************************************
//  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)
{
    unsigned int key;

    Bdisp_AllClr_DDVRAM();

    locate(1,4);
    Print((unsigned char*)"This application is");
    locate(1,5);
    Print((unsigned char*)" sample Add-In.");

    while(1){
        GetKey(&key);
    }

    return 1;
}
MPoupe wrote:
It seems the CASIO 9860 SDK has support for it. The default.c (SDK sample) contains following:

Code:
//****************************************************************************
//  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)
{
    unsigned int key;

    Bdisp_AllClr_DDVRAM();

    locate(1,4);
    Print((unsigned char*)"This application is");
    locate(1,5);
    Print((unsigned char*)" sample Add-In.");

    while(1){
        GetKey(&key);
    }

    return 1;
}

thanks for this. i tried compiling this but Prizm libraries seem to not support it - not sure if it can be fixed or if there is some other workaround...

Code:
C:/Users/Myself/OneDrive/PrizmSDK/lib\libfxcg.a(crt0.o): In function `main':
(.pretext+0x50): undefined reference to `_main'
collect2: ld returned 1 exit status
make[1]: *** [C:/Users/Myself/OneDrive/PrizmSDK/examples/TEST/TEST.bin] Error 1
make: *** [build] Error 2
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement