That is, ZZ is first made absolute (1234), then relocatable (FOO) but it actually stays absolute so the word in memory (100) is the value of FOO taken as absolute. If ZZ is expunged between assignments it behaves as expected.
I also tested MIDAS 458 at it's ok there, but clearly older versions of MIDAS also treated this correctly so it would be nice to find out what's happening.
This is needed for the macros used by old versions of LISP. Simple example:
BAR 1:
FOO 1:
Build like this:
If you then load and examine FOO BIN you get:
That is, ZZ is first made absolute (1234), then relocatable (FOO) but it actually stays absolute so the word in memory (100) is the value of FOO taken as absolute. If ZZ is expunged between assignments it behaves as expected.
I also tested MIDAS 458 at it's ok there, but clearly older versions of MIDAS also treated this correctly so it would be nice to find out what's happening.