Releases: z00m128/sjasmplus
Releases · z00m128/sjasmplus
sjasmplus v1.22.0
- Added substitution glue operator
_to concatenate substitution results - Added string literals concatenating operator
.. - Added
DP(aliasDEFP) 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
--cleanonerrorto remove binary outputs upon any error (as output may be corrupted) BPLISTsupports now also FUSESETBPhas optional string argument for "conditional" breakpoints (depends on bplist type)DEVICEZX-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
BPLISTsupports now also MAMESAVENEX CLOSEcan append multiple files- numeric constants can separate/group digits also by underscore
- JR and DJNZ added to "smart" SMC offset instructions:
abc+*: jr $ SLDOPTextended 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
SAVETAPloader - 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
- C++17 standard is now required minimum (to compile sjasmplus sources) (GCC9 for example)
INCBIN,INCHOBandINCTRDsupport now include paths priority (angle <filename> vs "filename")- also
SAVENEXwill 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, --inccan take path from next CLI argument (new recommended syntax) - option
--fullpathhas now three states including full absolute paths - added Amstrad CPC device AMSTRADCPCPLUS - by Laurent Carlier
- added Amstrad CPC+
SAVECPRto save CPR cartridge - by Laurent Carlier - ZX Next CSpect emulator v2.19.9.1:
breakopcode changed toFD 00 - ZX Next CSpect emulator v3.0.1.5b: new opcodes
setbrkandclrbrk - 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
- added alias
--definefor-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
- added optional second argument for
DUPto have index variable - option
--expwill create file even when noEXPORTis 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
- 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
DEFDEVICEto define custom devices - Makefile cleanup
sjasmplus v1.20.0
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
absin expressions --color=autowill stay no-color when env.var.NO_COLORis 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
- 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
_band_f, enabling them for all expressions - fix
--longptrmode to keep 32b address whenDS 0is 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
- added
--colorto enable/disable ANSI coloring of errors/warnings - added
--syntax=smode to disable sub-word substitutions of DEFINEs - added at-sign prefix for macro local labels to act as non-macro local label
SAVETRDaccepts names containing dot ("z.x.B" is "z.x" with extension "B") - by Dart AlverSAVETRDhas optional argument to save BASIC with variables (length_minus_variables)- minor bugfixes (conditional block parser)
sjasmplus v1.18.2
- [may break old sources] new exist operator to check label existence
- the
--syntax=imode makes now also register parsing case insensitive - minor bugfixes (predefined values, savenex BMP loader less strict about "colors used" content)