Intenal Object format - Printable Version +- HP Forums (https://www.hpmuseum.org/forum) +-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html) +--- Forum: HP Prime (/forum-5.html) +--- Thread: Intenal Object format (/thread-17287.html) |
Intenal Object format - devin122 - 07-27-2021 08:57 PM Has any work been done on determining the internal object format that the Prime uses? I started poking around for fun, but I thought I'd check to make sure I wasn't wasting my time on something that has already been solved. RE: Intenal Object format - devin122 - 07-30-2021 03:24 PM I'll take the silence to mean no. So for the record here is what I have so far. Note that there is the in-memory layout and the serialized layout on disk. Differences are pointed out where relevant. Data is stored on disk in little-endian format The basic layout for all objects is: Code:
In the serialized format, reference count values of 0xFFFF and 0xFFFE sometimes act as special indicators, but I haven't figured them all out yet. Reals: Code:
For sign_stuff 0 = NaN, 1 = normal, 2 = +Inf, -1 = -normal, and -2 = -Inf. Also it lookes like only the top 56 bits of the mantissa are looked at, but I haven't done much digging. Ints: Code:
Strings: Code:
On disk if the ref count = 0xFFFF, or in memory, TSize = uint32_t. On disk if the ref count != 0xFFFF, TSize =uint16_t. Func Calls: This info applies to in-memory format only I haven't looked too much at the serialized format Code:
RE: Intenal Object format - jfelten - 08-02-2021 05:15 PM where did you get this information? RE: Intenal Object format - rprosperi - 08-02-2021 10:43 PM Unlike all previous HP models, Prime was designed from the get-go for use in schools systems and includes systemic features built-in (Exam mode) to preserve the integrity of the system, also allowing the instructor to control which features are/are not available to the student when in restricted modes. Not providing free memory access, "peek" like instructions, details on internals, etc. was probably done in that spirit, to help preserve said system integrity. Doing things to make it easier for users to hack the system and possibly circumvent these safeguards could be met with even more draconian limitations and/or system changes to 'fight back'. Exam mode integrity seems to be of paramount importance to the success of the Prime. Given the limited resources that seem to be available, it would be a shame if they had to waste effort in those areas. So, while I'd never (ever!) suggest you should not explore and document this stuff, I can say you should not be surprised if the current details and access methods change as a result. Just something to think about. RE: Intenal Object format - devin122 - 08-04-2021 06:45 PM (08-02-2021 05:15 PM)jfelten Wrote: where did you get this information? Most of it was obtained by reverse engineering the firmware / using AFiles() to save and reload objects. A couple of the more obscure tag values I got from Cyrilles HPCC presentation (08-02-2021 10:43 PM)rprosperi Wrote: So, while I'd never (ever!) suggest you should not explore and document this stuff, I can say you should not be surprised if the current details and access methods change as a result. I have very much been keeping that in mind, as I would hate to see more restrictions put on the calculator. In fact, I have picked up some details about exam mode which I have no intention of sharing for the reason that it would really not serve any purpose other than defeating the exam mode. This info however I felt might be interesting to some people, and the risk of abuse seems relatively low. Plus, in order to use this info for nefarious purposes would require a level of skill which means you could figure it out on your own. RE: Intenal Object format - rprosperi - 08-04-2021 07:24 PM (08-04-2021 06:45 PM)devin122 Wrote:(08-02-2021 05:15 PM)jfelten Wrote: where did you get this information? I wondered at the time if anyone was examining the code seen in screen while he was showing some stuff. Good eyes! (08-04-2021 06:45 PM)devin122 Wrote:(08-02-2021 10:43 PM)rprosperi Wrote: So, while I'd never (ever!) suggest you should not explore and document this stuff, I can say you should not be surprised if the current details and access methods change as a result. Got it. As you say, most folks that can use such info have no need to cheat Exam Mode, but it is probably best to not simply post such info, as those who do need it, may well have associates who could use it.... Thanks. RE: Intenal Object format - Tim Wessman - 08-04-2021 11:58 PM (08-04-2021 06:45 PM)devin122 Wrote: I have very much been keeping that in mind, as I would hate to see more restrictions put on the calculator. In fact, I have picked up some details about exam mode which I have no intention of sharing for the reason that it would really not serve any purpose other than defeating the exam mode. This info however I felt might be interesting to some people, and the risk of abuse seems relatively low. Plus, in order to use this info for nefarious purposes would require a level of skill which means you could figure it out on your own. Thanks. Most object types are quite straight forward. If there is any specific info you want go ahead and ask and if can will provide. However looks like you already are able to get what you want pretty easily so far so... |