From e477f7bd80e975a34fc0635a631f23cfbc78a396 Mon Sep 17 00:00:00 2001 From: Olaf Seibert Date: Sat, 9 May 2015 15:45:00 +0200 Subject: [PATCH] The manual differs from the implementation... at least the one of RSX M+ 4.6. Inconsistent flags given to .PSECT seem to be simply combined, with nothing special done after pass 1 when re-reading for 2. The situation at the end of pass 2 wins. --- assemble.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/assemble.c b/assemble.c index afb9261..0345ad1 100644 --- a/assemble.c +++ b/assemble.c @@ -974,8 +974,20 @@ static int assemble( * See page 6-38 of AA-KX10A-TC_PDP-11_MACRO-11_Reference_Manual_May88.pdf . */ if (old_flags != ~0 && sect->flags != old_flags) { + /* The manual also says that any different + * flags are ignored, and an error issued. + * Apparently, that isn't true. + * Kermit seems to do this in k11cmd.mac: + * .psect $pdata ,ro,d,lcl,rel,con + * ; k11mac.mac, first pass only + * .psect $pdata ; line 16 + * .psect $PDATA ,D ; line 1083 + */ + + /* sect->flags = old_flags; report(stack->top, "Program section flags not identical\n"); + */ } }