diff --git a/README.md b/README.md index 48c5674..ceb4dd0 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,7 @@ Primarily tested with personal archive of sources written for Kick assmebler, DA * irp (indefinite repeat) **FIXED** +* Merlin macro parameters are not required on the MAC line, scope braces ('{', '}') can be used in the first column in Merlin. * First line of a Merlin macro was sometimes ignored, two sequential subtractions were ignored in expressions. * Pushing source contexts (macro, rept, include etc.) will always increment the scope depth. * Fixed REPT / LUP to not destroy local symbols in the scope it was used in while also destroying local symbols within the repeating block correctly diff --git a/x65.cpp b/x65.cpp index 840f28e..44daeaa 100644 --- a/x65.cpp +++ b/x65.cpp @@ -5700,7 +5700,7 @@ StatusCode Asm::BuildLine(strref line) line.trim_whitespace(); bool force_label = charE==':' || charE=='$'; if (!force_label && Merlin() && (line || operation)) // MERLIN fixes and PoP does some naughty stuff like 'and = 0' - force_label = !strref::is_ws(char0) || char1==']' || charE=='?'; + force_label = (!strref::is_ws(char0) && char0!='{' && char0!='}') || char1==']' || charE=='?'; else if (!Merlin() && line[0]==':') force_label = true; if (!operation && !force_label) {