From f5e54fd7007e255e0f129bf90f280de111e5fef2 Mon Sep 17 00:00:00 2001 From: Adam Sampson Date: Mon, 23 Apr 2018 16:45:40 +0100 Subject: [PATCH] Define the right symbol at the start of a CONSTANTS area. Linking Muddle showed 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 defines this symbol as .; however, it was defining it with the wrong name. There's a special case in RPWRD1 to output references to 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. Make it output the squoze instead. --- src/mudsys/midas.324 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mudsys/midas.324 b/src/mudsys/midas.324 index 7f80ec74..5131d1b4 100644 --- a/src/mudsys/midas.324 +++ b/src/mudsys/midas.324 @@ -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