From 462eaeccf654b9c7b3f7e78640c87d69ad7d261b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl-Henrik=20Sk=C3=A5rstedt?= Date: Mon, 15 Feb 2016 21:11:10 -0800 Subject: [PATCH] Fixed bad fix (INCSYM was not properly fixed) --- README.md | 13 +++++++------ x65.cpp | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index d21979e..f1f0d27 100644 --- a/README.md +++ b/README.md @@ -19,20 +19,21 @@ Noteworthy features: * C style scoping within '{' and '}' with local and pool labels respecting scopes. * Conditional assembly with if/ifdef/else etc. +* Recursible macro support * Assembler directives representing a variety of features. * Local labels can be defined in a number of ways, such as leading period (.label) or leading at-sign (@label) or terminating - dollar sign (label$). + dollar sign (label$), and leading colon for merlin (:label). * String Symbols system allows building user expressions and macros during assembly. * Reassignment of symbols and labels by default. * No indentation required for instructions, meaning that labels can't - be mnemonics, macros or directives. + be mnemonics, macros or directives (merlin requires indentation). * Supporting the syntax of other 6502 assemblers (Merlin syntax requires command line argument, -endm adds support for sources using macro/endmacro and repeat/endrepeat combos rather than scoeps). -* Apple II GS executable output. +* Apple II GS executable output (relocatable executable). ## Features @@ -100,10 +101,10 @@ Primarily tested with personal archive of sources written for Kick assmebler, DA * irp (indefinite repeat) **FIXED** -* INCSYM failed with local labels +* INCSYM failed with local labels, this is now properly handled. (fixed again..) * INCBIN and IMPORT BINARY always failed (force 0 bytes length) -* Using more than 16 bytes of Pool labels was flawed -* Fixed STRUCT directive (failed if contained line was empty) +* Using more than 16 bytes of Pool labels was flawed as byte 15 and 16 would be the same address. +* Fixed STRUCT directive (failed if contained line was empty). * Adding x65macro.i * Vice symbols will generate breakpoints whenever label 'debugbreak' is encountered * Evaluating '==' was broken diff --git a/x65.cpp b/x65.cpp index 61b9aab..3884522 100644 --- a/x65.cpp +++ b/x65.cpp @@ -4155,7 +4155,7 @@ StatusCode Asm::IncludeSymbols(strref line) strref symstart = symfile; if (strref symline = symfile.line()) { int scope_start = symline.find('{'); - if (scope_start > 0) { + if (scope_start != 0) { strref symdef = symline.get_substr(0, scope_start); symdef.clip_trailing_whitespace(); strref symtype = symdef.split_token(' ');