Replies: 18 comments 43 replies
|
First of all, thanks for your interest in this project. It's pretty rare to see others here. Also, I'm not very familiar with Prime G1 since I don't own one and reversing the G1 firmware isn't really my priority. The priority was always running code on Besta dictionaries, since they have a less restrictive OS with official ways to load external binaries without reflashing boot (ROM) and system (DAT) partitions, unlike G1. AFAIK almost all of the Prime G1 firmware logic resides in That being said, I'm not sure how beneficial this would really be comparing to something similar to ripem, but with a less janky port of an off-the-shelf OS instead (like FreeRTOS or a heavily trimmed Linux kernel), since AFAIK S3C2416 is pretty well documented. |
|
Also to answer your question on the title:
No, at least not at the moment. You'd need to modify that image yourself. AFAIK it only has 1 section (also being a FAT16 filesystem that you can mount read/write and write to it, so it should be pretty easy) |
|
Switching to another OS is far out of reach for me. In addition, there is a risk to brick the device. I believe that modifying PRIME_APP.DAT is much more secure, if the device fails to boot, it's certainly possible to do a reset while keeping the Symb key pressed and reflash it with HP connectivity kit. |
|
After doing some hexedit, it seems there is a header of size 0x2000 that does not change between different firmware versions, then the remaining part of the file can be mounted with -t msdos. |
|
Yes. It's (mostly) in standard Besta data partition image format and there's a header that you need to either skip or cut out before you mount and edit the filesystem itself. The fact that the partition image has only 1 section made it a lot easier to edit as well. |
|
Once the fat16 partition is mounted, ls returns bestabfs.ind is empty. appslist.md5 is a list of MD5 signature. hexedit /a/appslist.inf has references to BESTAFIR.ROM/bestafir.exe, ARMFIR.ROM/armfir.elf, ARMFIRDB/armfir.dat, HELLO.ROM/hello.exe, ARMHELLO.ROM/armhello.elf, ARMHELLODB.ROM/armhello.dat, DIAGNOSE.ROM/diagnose.exe, appslist.map is a binary file, it begins by 7, which is the number of references above. I don't know what follows, but I'm afraid it should be modified if the partition is modified. ls /a/programs/ It is perhaps possible to add an elf file in /programs/misc that is already referenced, e.g. armhello.elf, and replace armfir.rom with armhello.rom in firstrun.ini. This might be better than replacing armfir.elf, because maybe one can load armfir.elf later from hello, if the user want to run the calculator firmware. |
|
Commandline to get the partition from PRIME_APP.DAT |
|
Getting the header |
|
I'll move this to discussions since it's not directly related to the tools themselves. |
|
In fact I just rediscovered what was already known 11 years ago, and there is an easier way to modify the fat16 partition I still have no idea what PRIME_MASTER.DAT is. Is it a part of besta OS that would not fit in 1Mo of PRIME_OS.ROM? |
|
Actually I wonder if Peanut-GB runs on Prime G1. It requires the Besta RTOS file select screen which I'm not completely sure whether or not it's compiled in. You would need to rename it to something that doesn't require LFN (like You might also want to use the |
|
Everything is now installed, thanks! And congratulations for your toolchain! |
|
I just tried 4., using the same compilation script, and elf2bestape return me a test.exe |
|
I tried to detect keycodes, but I got nothing with uievent.keycode0 (always 0 except when you press shift-ON where a 45 appears) nor with keycode1. |
|
From my experiences, I can say that mutekix_console_printf is not raising the crash, because I have the delay of 5s before calling it. The crash happens either at load time, at init time or in one of these calls |
|
I don't understand what happened, probably I made some bad manipulation, because now all is working: I changed crt0.c to then compile/install, tried again with #if 0, all the test programs are now working, including yours, it shows heap head at 0x30100000 and end at 0x31cffffc Now, the event structure does not detect the keyboard, except OFF. Besta has certainly an extended event structure, that handles the multitouch screen as well as simultaneous keys. On your devices, I guess you do not have mouse-like and multi-keys events? |
|
In fact, it seems to be 3 unsigned per "single event" (12 bytes) For the key 1 input In other words, the event structure could report up to 8 simultaneous "single events", and the first value of the table primeg1 is the number of simultaneous single events (2 for 2 fingers on the touch screen, 1 for 1 keypressed) |
|
The keycode returned for a keypress corresponds to the alphabetic key written in orange if present. It's a 2 bytes integer, the 2 last bytes are 0000. ON: does ON or OFF, like the Power key on the Numworks calculator. |





Uh oh!
There was an error while loading. Please reload this page.
Your project looks like very promising, I'd be very interested to know if it is possible to build KhiCAS for the Prime G1 using your tools, like ExistOS does for the hp39gii.
This would bring up some welcome enhancements on the G1 wrt the builtin CAS including:
That way the Prime G1 would match other ports of KhiCAS on the Casio fxcg50, Numworks N0110/N0115/N0120 and TI Nspire.
All reactions