IFNDEF SAVMQ <
*10
SAVMQ, 0
TESTME=1
IFNDEF EMTEST <
EMTEST=1 / WE USE EMTEST STAND ALONE
>
>
The idea is that, since SAVMQ hasn't been defined, we define it ourselves, and
turn on the assembler-conditional TESTME for stand-alone operation and
EMTEST to turn on the testing of the emulator against the EAE.
Note that the EMTEST code is used BOTH by stand-alone operation and runtime
testing when embedded in U/W FOCAL.
Here's my problem. I see that I define a constant 7764 (-14 octal) to count
the steps through emulation of MUY and DVI. U/W FOCAL already has such a
constant, M14 that it defines.
However whenever I add the definition of M14 in the above block that should
get assembled for stand-alone operation, the actual constant doesn't get
established.
In the source listing of stand-alone 8NFIO, I see this:
IFNDEF SAVMQ <
*10
SAVMQ, 0
TESTME=1
IFNDEF EMTEST <
EMTEST=1 / WE USE EMTEST STAND ALONE
>
>
I would expect to see:
00010 0000 SAVMQ, 0
So I think there is something funky going on here. The only reason why
SAVMQ actually works is that I always DCA into location 10. But the code
I expect would define my stand-alone M14 never actually defines it.
I'd very much like to save a precious word, and reuse FOCAL's M14 if I could.
Q2: What's going on here? How do I most correctly conditionalize use of
SAVMQ and M14 inside FOCAL, but define it for myself stand-alone?
3. Hiding conditionally assembled code.