Skip to content

Releases: z00m128/sjasmplus

sjasmplus v1.22.0

16 Mar 20:14
9ee89d1

Choose a tag to compare

  • Added substitution glue operator _ to concatenate substitution results
  • Added string literals concatenating operator ..
  • Added DP (alias DEFP) directive to define Pascal strings
  • BLOCK (DS) can take set of values for init (like DB)
  • > can be used to indent labels
  • Intel HEX output format added: SAVEHEX, HEXOUT, HEXEND, --hex
  • Added option --cleanonerror to remove binary outputs upon any error (as output may be corrupted)
  • BPLIST supports now also FUSE
  • SETBP has optional string argument for "conditional" breakpoints (depends on bplist type)
  • DEVICE ZX-like devices can now init with all-zeroed memory by using RAMTOP -1
  • CI: you can download executables from recent builds (windows, macos, freebsd, linux), for testing
  • refactored: relocation example has more size-optimized relocator code
  • docs: added new chapter Assembling Process
  • docs: minor fixes/extensions

sjasmplus v1.21.1

16 Jan 18:20
691a820

Choose a tag to compare

  • BPLIST supports now also MAME
  • SAVENEX CLOSE can append multiple files
  • numeric constants can separate/group digits also by underscore
  • JR and DJNZ added to "smart" SMC offset instructions: abc+*: jr $
  • SLDOPT extended with swapon/swapoff command to adjust SLD files
  • Lua: version upgrade to 5.5.0 (from 5.4.7)
  • Lua: minor extensions and modifications to API
  • refactored: temporary labels must match flow only in last pass (earlier passes can differ)
  • refactored: macros now handle large amount of macros defined better (like 64ki of macros)
  • fix invalid BASIC line length in SAVETAP loader
  • fix local labels inside macros in modules
  • fix local-label struct name usage
  • warnings: added -Wfileorg when ORG is used to jump addresses while file output is active
  • docs: minor fixes/extensions

sjasmplus v1.21.0

16 Mar 22:26
13da016

Choose a tag to compare

  • C++17 standard is now required minimum (to compile sjasmplus sources) (GCC9 for example)
  • INCBIN, INCHOB and INCTRD support now include paths priority (angle <filename> vs "filename")
  • also SAVENEX will respect include paths for source files (BMP, append)
  • include paths which can't be opened before assembling are now reported in error message
  • include paths which start with literal tilde '~' are reported in error message
  • include options -i, -I, --inc can take path from next CLI argument (new recommended syntax)
  • option --fullpath has now three states including full absolute paths
  • added Amstrad CPC device AMSTRADCPCPLUS - by Laurent Carlier
  • added Amstrad CPC+ SAVECPR to save CPR cartridge - by Laurent Carlier
  • ZX Next CSpect emulator v2.19.9.1: break opcode changed to FD 00
  • ZX Next CSpect emulator v3.0.1.5b: new opcodes setbrk and clrbrk
  • fix: windows cmd.exe console state after running sjasmplus.exe
  • Lua: fix sj.insert_label to apply current namespace to name
  • Lua: new sj.get_modules to get current modules namespace
  • Lua: minor version upgrade to 5.4.7 (from 5.4.6)
  • Lua: bundled Lua is now built and linked as C++ code (fixes memory leaks in edge cases)
  • minor bugfixes in specific edge cases
  • refactored lot of code related to file names and manipulation (to use C++17 filesystem library)

sjasmplus v1.20.3

27 Jun 23:31

Choose a tag to compare

  • added alias --define for -D
  • added string-literals suffixes Z and C to add zero or set high bit of last char
  • end of line backslash continues source line (limited support, not recommended)
  • Lua: minor version upgrade to 5.4.6 (from 5.4.4)
  • minor updates to Makefile

sjasmplus v1.20.2

16 Feb 21:31
4e299aa

Choose a tag to compare

  • added optional second argument for DUP to have index variable
  • option --exp will create file even when no EXPORT is used
  • fixing variable name-clash when compiling against musl-clib
  • LuaBridge updated, CMake and Makefile updated a bit
  • minor bugfixes/improvements in parser in specific edge cases

sjasmplus v1.20.1

29 Jul 11:36
d2d2889

Choose a tag to compare

  • parse decimal numeric constants with warning (for easier Lua 5.4 life)
  • added SAVEAMSDOS (like SAVEBIN with AMSDOS header)
  • added "smart" SMC offset syntax for self-modify-code labels: abc+*: or 123
  • added DEFDEVICE to define custom devices
  • Makefile cleanup

sjasmplus v1.20.0

14 Jun 16:51
a7e5824

Choose a tag to compare

1.20.0 - 13.6.2022

  • Lua: upgrade to 5.4, replacing tolua++ bindings with LuaBridge2.6 library, extending some bindings
  • Lua: bindings slightly modified (required by upgrade), refreshed docs, added test coverage
  • Lua: the 3rd party extensions (BTW not working for many years) are obsolete in 5.4 and removed
  • Lua: more accurate errors/warning location reported even in complex cases
  • warnings: added -Wall, --help=warnings shows on/off status, rdlow off by default
  • Added HIGH mode to relocation data generator (MSB-only relocation mode)
  • many open-file "fatal" errors become "non-fatal", assembling will continue
  • deprecated features removed: --syntax=m, label abs in expressions
  • --color=auto will stay no-color when env.var. NO_COLOR is defined
  • refactorings, improving some error messages and parsing, small fixes in parsing logic
  • fix listing of Lua's sj.parse_code (eol-comments), minor memory leaks fixed
  • fix relocation of temporary labels in expressions
  • invalid CLI options are reported as regular errors (also changing exit code)
  • errors are colored similarly to gcc (only keyword has color), console input name is <stdin>

sjasmplus v1.19.0

29 Mar 17:52
8726e06

Choose a tag to compare

  • added Amstrad CPC devices (AMSTRADCPC464, AMSTRADCPC6128) - by Oli Wilkinson
  • added Amstrad CPC save snapshot and CDT (SAVECPCSNA, SAVECDT) - by Oli Wilkinson
  • added SAVE3DOS (like SAVEBIN with +3DOS header)
  • the deprecated "ok" warning suppression is removed, use "<warning-id>-ok" comment or -Wno-...
  • new temporary label suffix syntax _b and _f, enabling them for all expressions
  • fix --longptr mode to keep 32b address when DS 0 is used
  • added fake instructions adc|add|sbc|sub de,bc|de|hl|sp
  • dec|inc|pop|push will accept also single-comma multiarg in --syntax=a mode
  • DUP/REPT will now accept also zero count (skipping the block)
  • DEFL labels can be defined even as late as in last pass
  • bugfixes (macros, listing, file names in errors, SLD reversepop data)

sjasmplus v1.18.3

29 Aug 18:20
89e42fe

Choose a tag to compare

  • added --color to enable/disable ANSI coloring of errors/warnings
  • added --syntax=s mode to disable sub-word substitutions of DEFINEs
  • added at-sign prefix for macro local labels to act as non-macro local label
  • SAVETRD accepts names containing dot ("z.x.B" is "z.x" with extension "B") - by Dart Alver
  • SAVETRD has optional argument to save BASIC with variables (length_minus_variables)
  • minor bugfixes (conditional block parser)

sjasmplus v1.18.2

19 Feb 18:10
f70cd88

Choose a tag to compare

  • [may break old sources] new exist operator to check label existence
  • the --syntax=i mode makes now also register parsing case insensitive
  • minor bugfixes (predefined values, savenex BMP loader less strict about "colors used" content)