I’m working on an interpreter (again) and I’m trying to match my terp’s output to txd’s to make sure my instruction decoder is accurate. However, on A Mind Forever Voyaging’s disassembly there’s a line that reads:
cedc: c1 8f 00 8c b4 00 4e JE (SP)+,"all" [FALSE] cf2f
Where does the
"all" come from here? I’m using txd version
Thanks for any pointers!
'all', I think.
The 44th entry in the dictionary is
all, yes. How can txd now that this opcode is comparing to it?
I guess it checks it the value is for a value dictionary entry address. Ok, thanks for pointing me in the right direction!
As you say, it’s guessing. The number is a valid dictionary address, so it makes sense to guess that’s what’s meant. It could also be a packed routine or string address or just a general number, but that’s less likely.
It seems to correspond to this bit of ZIL code, so as far as I can tell you’re absolutely correct. I guess it’s the bit where it determines if it should print the object’s name as a prefix before performing the action.
<COND (<OR <G? .NUM 1>
<EQUAL? <GET <GET ,P-ITBL ,P-NC1> 0>
(ZIL uses W? to refer to “the pointer to the vocabulary entry for name”.)