When building MUDDLE, I was seeing various unresolved symbols of the
form "$ 42". These are used by MIDAS when it wants to refer to
something in a CONSTANTS area, but doesn't know the location at assembly
time (for example, because it's the other side of a LOC X where X is a
global). At the start of a CONSTANTS area, MIDAS should define this
symbol as .; however, it was defining it with the wrong name.
There's a special case in RPWRD1 to output these symbols as squoze
rather than symbol table numbers -- but the code in CNST2 that defines
the symbol was using PDEFPT, which always outputs the number.
Modify it to output the squoze instead.
MOVE SYM,(T) ;GET NAME OF AREA
TLC SYM,400000#LCUDF ;CLEAR LCUDF, SET HALF-KILL
TRNE FF,FRGLOL
- PUSHJ P,PDEFPT ;DEFINE SYM FOR BEGINNING OF CONSTANTS AREA
+ JRST [ MOVEI A,CDEFPT ;Define sym for beginning of constants area
+ PUSHJ P,P7X
+ PUSHJ P,OUTSM ;As PDEFPT but punch squoze (see RPWRD1)
+ JRST .+1]
MOVE A,CONTBA
CNSTH: CAML A,PLIM
JRST CNSTA ;THRU