So.... I'm a little confused by this entry point. From what I can tell it does the following: 1) Compares the 2nd and 3rd bytes of the the currently loaded help hook with the value 1802h 2) If it matches, it makes a 16bit number out of the 4th and 5th bytes of the currently loaded help hook. 3) It subtracts from 0214h that previously read 16bit value. 4) It returns, restoring all registers other than F.
1802 is jr $+4, which is enough to skip over the value that's being compared to 0214. So it seems like it's checking the help hook for a certain ID. Why, and what installs the help hook that this routine is looking for is a mystery to me though. If anyone has any more info please add.
(In case it wasn't obvious - this requires 2.30 minimum OS version)
Note: It's not the catalog help app's hook. --Dan Englender 00:39, 20 May 2005 (PDT)
- I haven't looked at the Catalog Help hook at all -- but given that it was written by the same people who wrote the localizers, I wouldn't be at all surprised if it crashed when asked to give help on the new 84+ functions. So perhaps putting this signature in your hook identifies it as 84+-compliant? Note that 14h = 20d; so this could be interpreted as 'this hook is fully compliant with OS 2.20.' FloppusMaximus 10:49, 20 May 2005 (PDT)
- Good thinking. I looked closer into the OS, and it does in fact use this as a version check. If the hook reports a version of at least 2.20 then it accepts the hook automatically. If not, then it only passes data to the hook if it is pre 2.20 compatible. Guess that means I have to type this up into a real page now... --Dan Englender 11:17, 20 May 2005 (PDT)