However, as I examine the dictionary of a game file, I find that some words (all verbs maybe?) have bit 6 set. Is there more up to date documentation on the compiler? Can someone tell me what flags are used nowadays?
This usage (setting bit 6 for verbs) goes back at least to Inform 5. It might have been relevant to an even older version of the library (Inform 1-4), but it’s not needed by the I5 or I6 library.
This is because if that bit is set, then the verb number (dict_par2) is also set, so you can just look at that.
It appears in the Inform 6.12 library (parser.h) as DICT_X654.
That line of code removes all but bits 6, 5, and 4. But the following code only cares about bit 3, so it’s another leftover complication which no longer matters.
with this layout (i find it often in really old asm code and formats), the two most frequent cases are easily checked via l/r rotating thru carry and branching on carry, but the acorn Archimedes (the machine on which Inform was developed) used a 32 bit RISC microprocessor (the ARM 1), so is an interesting detail…
Acorn architecture isn’t relevant. These fields are for use on the Z-machine, which has no “rotate through carry” or “branch on carry” instructions. Inform games always use the @and opcode to extract one bit.
oops. wrong perspective. I was thinking compiler-side instead of library/source-side. My apologies.
(I got inform 5.4 DOS in a bundle with all doc and raif/rgif faqs from a shareware CD, circa 1995, was my very first contact with this very community… Back then, I have a very highly optimised 386sx/20, I tried 8086 inform only once, then stick to inform 386… hence my high Respect to the Archimedes and ARM 1)