Releases: z00m128/sjasmplus
Releases · z00m128/sjasmplus
sjasmplus v1.13.2
OPT
has now alsolistoff
andliston
commands- added to
--syntax
option: case insensitive instructions,bBw
added/changed - new macro examples, minor fixes and refactoring
SAVETRD
implementation refactored (more checks, less bugs, "replace" file feature)- operators
{address}
and{b address}
are now official and documented
sjasmplus v1.13.1
- added
--syntax
command line option - added
OPT
directive (modifies some command line options) - added way to use structure at designed address
MACRO
can be now named through label (optional syntax)- added
DEFARRAY+
directive (for splitting long list of DEFARRAY values) - added
CSPECTMAP
directive for MAP files for CSpect emulator - added support for
SJASMPLUSOPTS
environment variable - Z80N new variants of syntax, now also "mul de : mul : pixelad hl : pixeldn hl" works
- minor bugfixes, improvements and internal refactorings (error reporting)
- updated syntax-highlight file for KDE5 editors (Kate)
sjasmplus v1.13.0
- [may break old sources] DEVICE: each assembling pass resets also
"device". To work with "device" memory (savesna/savetap/...) you
must select the device (and slot and pages) before producing machine
code which you want to work with (SAVESNA/SAVETAP/...).
If only single DEVICE is used in whole source batch, then the setting
is "global" and will be applied to all lines of source (in 2nd+ pass). - [may break old sources] ZXSPECTRUM128 based devices map into slots
by default banks {7, 5, 2, 0}. (was {0, 5, 2, 7} in older versions) - [may break old sources] ZXSPECTRUM128 based devices have sysvars and
stack set up as in "USR 0" mode (ZXSPECTRUM48 system variables and
default stack content). - [may break old sources] MAP+FIELD directives removed (STRUCT is better and working)
- MMU directive (fusing SLOT + PAGE and extending them)
- SAVEDEV directive (similar to SAVEBIN)
- SAVENEX directive (for ZX Spectrum Next)
- INCBIN: support for negative offset/length values, support for MMU wrapping
- INCBIN: support for file chunks of 64+ki size (usable with MMU)
- Fixed: INCTRD offset, binary STDOUT on windows, SAVETRD/SAVEHOB filenames
- Fixed: LUA used inside macros, LUA get_word, LUA error reporting
- parser: added C++(like) numeric literals
- ZXSPECTRUMNEXT device added
- refactoring of label/define implementation = less memory leaks, more correct
"label.mem_page" values, "Unreal" labels dump is more correct too - docs: now the CSS file is actually used, and default style modified a bit
- new MACRO examples, syntax-highlight file for KDE5 editors (Kate)
sjasmplus v1.12.0
- Fixed parsing of expressions starting with string literal
- Fixed listing of DS directive with negative values, added value check warning
- Fixed possible wrong indexing of some arrays internally
- Fixed parsing of single-word instructions in colon-packed-no-space macros
- Making macro arguments substitution a bit more aggressive, to work also with
DEFINE/IFDEF/IFNDEF/DEFARRAY directives inside macro (this gives the coder
more macro power and freedom, but the error reporting may get lot more confused) - Refactoring substring substitution for macro-arguments and defines, now it
should work always. To prohibit some macro/define to substitute into middle
of the string, start its name with underscore, like "_VERSION". - THIS MAY BREAK SOME OLDER SOURCES, SORRY. Also the rules for substitutions
will be in the future further modified and documented, to make them more
intuitive and predictable, so there may be more breakage even later. - Adding fake instructions break and exit for CSpect emulator (--zxnext=cspect)
sjasmplus v1.11.1
- Fixed global labels in MACRO and in IFUSED/IFNUSED
- Fixed nested IF-DUP-IF
- Fixed local labels fail when amount of lines did change between passes
- Fixed Makefile to build when path to project contains space
- Added macro-example: turn "DJNZ ." into "DJNZ $" (to fix Zeus syntax source)
- Added --msg=lst and --msg=lstlab options to produce listing file to STDERR
- Added options to read input file from STDIN and output "raw" binary to STDOUT
sjasmplus v1.11.0
- Added ZX Spectrum Next instructions support
- Added --msg option, directives DG and DH
- Changed listing layout to fixed-width type
- Errors, Warnings and similar are now channeled to STDERR
- Fixed string literal parser, added two apostrophes and escaped zero
- Fixed docs templates (HTML is now more valid)
- Fixed nesting DUP issue
- Fixed CRLF handling in parser
- Fixed -D option for multiple asm files
- Fixed address display when the 64kB limit exceeded
- Fixed lost code when current memory leaves device slot in "disp" mode
- Fixed IF inside MACRO, DUP and REPT
- Fixed ALIGN behavior and docs wording
- Fixed INCHOB/INCBIN (offset / length)
- Fixed INCLUDE/INCLUDELUA system path priority ("" vs <>)
- Fixed END behavior
- Fixed DEFARRAY to work as documented
- Fixed and refactored WORD/DWORD/D24
- Fixed and extended STRUCT
- Multiple bugfixes in listing generation
- Multiple bugfixes of internal code
- Refactored options parser, instruction parser and Warning/Error system
- C++14 standard is now required minimum (to compile sjasmplus sources)
- Added automated-testing scripts, with 50+ tests
- GitHub connected with Cirrus Continuous Integration service
sjasmplus v1.10.4
Bytes lost
error reworked (and changed to warning)- Error/warning messages are displayed in last pass only (where possible)
- Fixed 64k limit warnings
- BinIncFile reworked
sjasmplus v1.10.3
- Fixed macro issue with commas inside quotes
- Fixed
IFUSED
andIFNUSED
directives - Fixed
STRUCT
directive - Added support of register operands for operators
HIGH
andLOW
sjasmplus v1.10.2
-
Fixed
UNDEFINE
behavior and line wrapping -
removed obsolete and unimportant comments
-
removed forgotten debug/trace printouts
sjasmplus v1.10.1
OUTPUT
directive was bugfixedTAPOUT
,TAPEND
,OUTEND
directives were implemented