Weird txd output

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 7/3.

Thanks for any pointers!

Dictionary word 'all', I think.

1 Like

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.

1 Like

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>
					      ,W?ALL>>

(ZIL uses W? to refer to “the pointer to the vocabulary entry for name”.)