I’m experimenting writing a program for reverse ngineering z-machine files (think txd and infoobj). I don’t know if anything will ever come out of it but I wonder a bit about the dictionary format for Inform6 (both grammar versions). Below is and example output (grammar version 2):
2478: 68 A5 14 A5 94 A5 80 00 00 u <noun>
2481: 6A 68 53 6A DC A5 41 E8 00 uncover <verb>, Verb#=232
248A: 6A 69 2A E5 94 A5 08 00 00 under <adj>
2493: 6A 69 50 A5 94 A5 80 00 00 undo <noun>
249C: 6A 71 51 10 94 A5 C1 D3 00 unlock <noun>+<verb>, Verb#=211
24A5: 6A 78 22 EA F0 A5 41 D4 00 unscrew <verb>, Verb#=212
24AE: 6A 7C 5C D5 94 A5 41 E8 00 unwrap <verb>, Verb#=232
24B7: 6A A5 14 A5 94 A5 88 00 00 up <noun>+<adj>
24C0: 6A B8 39 2A 94 A5 08 00 00 upside <adj>
24C9: 6A B8 39 2A A6 9C 08 00 00 upsidedow <adj>
24D2: 6D 57 1E 98 A8 A5 43 AF 00 verbose <meta>+<verb>, Verb#=175
You may notice that on verbs both bit 6 & bit 1 are set on the flag byte (second to last number on each row). When I look in the Inform Technical Manual, Chapter 8 it has this to say:
These are the so-called "dictionary parameters" dict_par1, 2 and 3. Inform's
pleasure is to write into them as follows:
dict_par1: flags
dict_par2: verb number (counting downwards from 255)
dict_par3: preposition number (counting downwards from 255) in
grammar version 1; not used in grammar version 2
The flags are given as follows:
bit: 7 6 5 4 3 2 1 0
<noun> <adj> <plural> <meta> <verb>
The bits <verb>, <noun> and <adj> are set if the word can be used in the
context of a verb, noun and/or preposition (all three can be simultaneously
set). The <meta> bit indicates that the English verb is "meta", that is,
is a command to the program and not a request in the game.
Do the bit 6 have any meaning, and/or are always bit 6 and bit 1 set in pair (seems so in the files I examined)?
Is there anything I’m missing and I’m a looking at the wrong place in the documentation?