Inspired by gbl08ma tips from OS 2.00 topic I managed to create a language add-in template which is available now in archive here: https://www.cemetech.net/programs/index.php?mode=file&id=1434


Code:
Similar to Russian g3l add-in but this one in English and covers the whole of currently known range of messages and due to not being in Cyrillic is easier to read in hex editors. Also included file structure description in read me file to make it easier for developers to add new languages to Prizm.

While being similar to g3a file structures most of the file structure of language add ins does not appears to be strictly enforced any way.

Differences are first 8 bytes reading "Ly755 " if inverted, FF FF at 0x0016, 04 01 at 0x0024, how executable size is computed at 0x0036 and so on as per read me file in the archive but from the header only "04" at 0x0024 and file size at 0x005C seem to be actually checked by the OS.

File name (case sensitive) including g3l extension at address 0x0EBC seems to be used by the OS too upon loading. 0x0E9C holds Language name 0x0EAC Language salutation (both 00 terminated) which will appear in the settings list.


Please refer to the read me in Archive above for the description of the executable part of the file.

Removing padding at the end of the file seems to be fine too if you want to reduce the size of the file but remember to leave end of file checksum to match the one at 0x0020 and to adjust the value with the total file size too.

Just to demonstrate how system messages can be changed here is the snapshot of my Lock http://www.cemetech.net/programs/index.php?mode=file&id=1212 add-in's screen from the emulator using OS2.00 but with the ECON app name from OS2.02:
Hi,

Thanks for the reverse-engineering and the notes. Even though I only have a Graph 35+USB (no Prizm), I am making a library which, I hope, will be able to parse (and write, but that will be later) every format that CASIO calculators are able to read (which have what Simon Lothar calls a "StandardHeader") ; I called it `libg1m`, and the sources are there : https://forge.touhey.fr/lib/libg1m

Just wanted to thank you for your README.txt, I am able to parse your `English.g3l` and the `Russian.g3l` I found on TI-Planet (https://tiplanet.org/forum/archives_voir.php?id=22482).
(originally, I wrote this message because of a problem I got, but I solved it as I was about to send the previous version of this message)

Little question by the way : does the calculator really doesn't check when the checksum is zero, or was it for the example ?

EDIT: libg1m now has its own topic: https://www.cemetech.net/forum/viewtopic.php?t=13587
Happy to help and thanks for work and interest in this.

Checksum set to zero worked fine on emulators and all the os versions on real hardware I tried, but it may be enforced on future OS updates
  
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