The format is based on Keep a Changelog
- Version 20190306.1++WiP
- Redefinition of
DEFINEs andDEFARRAYs is now a warning, not an error.
ENDwas not terminating parsing if there were more lines in the buffer- Nested
STRUCTs now work as documented - If a
STRUCT's leading offset is defined it no longer overwrites existing output ALIGNinsideSTRUCTwas brokenDEFARRAYarguments are now parsed as documented
- Version 20190306.1
- Fix some problems with
MACROarguments parsing
- Version 20190306
SAVETAP: zero-fill allocated memory buffer before using it- Fix a crash in
EDUP
- Version 20190304.3
- Spaces in
MACROarguments caused trouble SAVETAP: Fix tape header tag
- Version 20190304.2
- Trailing whitespace after
EDUPetc. was breaking things
- Version 20190304.1
SNA: SetBC=PCto match ZX Basic'sUSRbehavior- Condition codes were not entirely case-insensitive
- Version 20190304
- New option:
--output-dir - Smart positioning of stack in 128K
.snasnapshots --rawoption without a parameter enables generation of default*.outfiles--lstand--symnow also work as expected without parameters- New option
--target=i8080to restrict instruction set to be compatible with i8080 --labelsto dump UnrealSpeccy-compatible labels without polluting the source code with external file names (via the existing directive)
RST 10hcalls in 128K .sna snapshots- Writing to address
0xFFFFwas broken ORGwas broken ifDISPwas active- No more "Forward reference" error messages in
EQU/DEFL - Fixed
.(expression)prefix (acts likeDUP/REPTfor a single line) - Fixed include search order, including angle bracketed includes as documented
- Fixed infinite recursion in macro expansion when a parameter and substitution are the same
HIGH(expr)/LOW(expr)/NOT(expr)now do not require the argument to be separated by whitespace- INCBIN, INCTRD, INCHOB & INCLUDELUA now use the same file path resolution mechanism as INCLUDE
- Fixed per file output of exports by default (unless overriden by
--exp)
- Version 20170311
- Merged updates from https://github.com/vitamin-caig/sjasmplus
- New version scheme: YYYYMMDD
- Switch to CMake
- CR+LF line-endings processing
2008-04-03 Aprisobal [email protected]
- VERSION 1.07 Stable
- New SAVETAP pseudo-op. Supports up to 1024kb ZX-Spectrum's RAM.
- New --nofakes commandline parameter.
2008-04-02 Aprisobal [email protected]
- VERSION: 1.07 RC7
- New UNDEFINE pseudo-op.
- New IFUSED/IFNUSED pseudo-ops for labels (such IFDEF for defines).
- Another fix of 48k SNA snapshots saving routine.
- Fixed labels list dump rountine (--lstlab command line parameter).
2008-03-29 Aprisobal [email protected]
- VERSION: 1.07 RC6
- Added missing INF instruction.
- Applied bugfix patches for SAVEHOB/SAVETRD pseudo-ops by Breeze.
- Fixed memory leak in line parsing routine.
- Fixed 48k SNA snapshots saving routine.
- Fixed code parser's invalid addressing of temporary labels in macros.
2007-05-31 Aprisobal [email protected]
- VERSION: 1.07 RC5bf
- Added yet another sample for built-in LUA engine. See end of this file.
- Added sources of CosmoCubes demo to the "examples" directory.
- Bugfix patches by Ric Hohne.
- Important bugfix of memory leak.
- Bugfix of strange crashes at several machines.
2007-05-13 Aprisobal [email protected]
- VERSION: 1.07 RC5
- ALIGN has new optional parameter.
- Corrected bug of RAM sizing.
- Corrected bug of structures naming.
2006-12-02 Aprisobal [email protected]
- VERSION: 1.07 RC4bf
- Corrected important bug in code generation functions of SjASMPlus.
2006-11-28 Aprisobal [email protected]
- VERSION: 1.07 RC4
- Corrected bug with SAVEBIN, SAVETRD and possible SAVESNA.
- Add Makefile to build under Linux, FreeBSD etc.
2006-10-12 Aprisobal [email protected]
- VERSION: 1.07 RC3
- SAVESNA can save 48kb snapshots
- Corrected DEFINE's bug.
- Corrected bug of incorrect line numbering.
2006-09-28 Aprisobal [email protected]
- VERSION: 1.07 RC2
- SAVESNA now works also with device ZXSPECTRUM48
- Added new device PENTAGON128
- In ZXSPECTRUM48 device and others attributes has black ink and white paper by default.
2006-09-23 Aprisobal [email protected]
- VERSION: 1.07 RC1bf
- Added error message, when SHELLEXEC program execution failed
- Corrected bug with _ERRORS and _WARNINGS constants
2006-09-18 Aprisobal [email protected]
- VERSION: 1.07 RC1
- Built-in Lua scripting engine
- New directives: DEVICE, SLOT, SHELLEXEC
- New predefined constants: _SJASMPLUS=1, _ERRORS and other
- 3-pass design
- Changed command line keys
- Documentation converted to HTML.
- Changed output log format.
- And many many more.
- VERSION: 1.06 Stable
- ? "Проект теперь размещается на SourceForge.net."
- VERSION: 1.06 RC3
- особых доработок нет, но исправлен ряд жестких багов.
- VERSION: 1.06 RC2
- Исправлены некоторые ошибки в директивах STRUCT/ENDS
- Применены изменения к SjASMPlus от новой версии SjASM 0.39g, а именно:
- ENDMAP directive.
- DEFM and DM synonyms for BYTE. (уже было)
- Some bug fixes:
- file size is reset when a new output file is opened. (уже было)
- 'bytes lost' warning fixed.
And thanks to Konami Man:
- PHASE and DEPHASE directives as synonyms of TEXTAREA and ENDT. (уже было)
- FPOS directive.
- Expanded OUTPUT directive.
- The possibility to generate a symbol file.
- VERSION: 1.06 RC1
- ВНИМАНИЕ! Чтобы изначально увеличить совместимость ассемблера с другими, ключ -B теперь включает(а не выкл. как раньше) возможность записи директив с начала строки
- Исправлена ошибка с обработкой символов, номер в таблице ascii которых больше 127
- Исправлена ошибка с обработкой директив DISP/ENT
- Добавлена директива DEFM/DM как синоним директивам DEFB/DB/BYTE
- DEFL(новая директива) и LABEL=... можно переназначать.
- Исправлен баг с невозможностью использования числовых меток в DUP/REPT
- Новая директива DEFARRAY, для создания массивов DEFINE'ов
- VERSION: 1.05 Stable
- Исправлен глюк при обработке имен подключаемых файлов (thx 2 A.Ragozini)
- У исполнимого файла компилятора появилась иконка
- (!)В состав программы включена версия под FreeBSD
- Исправлена ошибка, когда "END" нельзя было использовать в качестве метки
- Исправлена ошибка, когда директива повтора .число работала и в начале строки (thx 2 A.Ragozini)
- Добавлен новый ключ -B, отключающий возможность написания директив с начала строки
- VERSION: 1.05 RC3
- Исправлен небольшой глюк с ENDM, добавлена поддержка скобок {..} и записи любых команд через запятую(INC A,B,C,A).
- VERSION: 1.05 RС2
- В этой версии появилась возможность писать команды через запятую типа LD A,B,H,L,A,0 и т.п. Пока это только для LD,INC,DEC,CALL,DJNZ,JP,JR. А что делать с AND,CP,XOR,OR и др., в которых поддерживается запись вида XOR A,B (XOR B) или OR A,C (OR C)? Ведь если написать XOR A,B,A,C,A,D, то получим XOR B,C,D, а должно быть XOR A,B,A,C,A,D как в спековских асмах.
- VERSION: 1.05 RC1
- ? (added zx basic system variables?)
- VERSION: 1.05
- В ней переписана процедура чтения файлов, добавлено множество полезных директив и пр. Подробнее см. первый пост темы. Также поддерживается запись директив с начала строки. Если программа будет ругаться на ваш исходник, из-за того, что метка==директива, то прошу пинать не меня, а Сергея Бульбу
- VERSION: 1.04
- Ассемблер был ускорен ещё в два раза, добавлена возможность перекодировки строк WIN->DOS. Подробнее см. первый пост темы. Также перекомпилировал его с помощью MinGW. Размер файла увеличился в 1.5 раза, но зато ассемблер ускорился примерно на 10%.
- VERSION: 1.03
- ? ("См. первый пост темы")
- VERSION: 1.02
- Сильно ускорено время компиляции. 250000 различных строк кода компилируется за 2.5 секунды вместо 7 секунд (!) и кушает памяти в 3 раза меньше. Остальные изменения см. в первом посте.
- Также в проекте стал принимать участие Kurles^HS^CPU (добавил директивы DISP и ENT и оказал помощь в добавлении поддержки памяти спекки).