Skip to content

Commit

Permalink
Have MIDAS define the right constant area start symbol.
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
atsampson committed Apr 21, 2018
1 parent 7b28732 commit 8bfd916
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion <mdl.int>/midas.323
Original file line number Diff line number Diff line change
Expand Up @@ -3857,7 +3857,10 @@ CNST2: MOVEI D,(T) ;STE IDX IN D FOR OUTSM0
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
Expand Down

0 comments on commit 8bfd916

Please sign in to comment.