Releases: michaelkamprath/bespokeasm
Named Label Scopes + Vim Syntax Highlighting
This release adds a number of minor features to improve large project management:
- Added support for instruction aliases: you can now specify an aliases field (a list of alternative mnemonics) in an instruction's configuration
- Added
#printpreprocessor directive for compile-time messages - Added named label scopes feature: Create custom symbol namespaces with user-defined prefixes that can be shared across files.
- Added Vim syntax highlighting generator via
bespokeasm generate-extension vim
Also fixed some bugs:
- Fixed a bug where #include directives were not properly processed when they were inside a conditional block.
- Fixed a test isolation issue where instruction pattern caching caused pytest failures when different ISA configurations were used across test files.
v0.5.1: Configurable String Packing
On top of the v0.5.0 release of enabling adjustable data word sizes, this release makes configurable the methodology for packing string bytes into larger words.
v0.5.0: Arbitrary Data Word Size
This release adds support for different data word sizes in the assembler, expanding beyond the traditional 8-bit words to support variable word sizes including 4-bit, 16-bit, 32-bit, and other configurations. The changes introduce flexible endianness handling at both the intra-word and multi-word levels, enabling more sophisticated processor architectures.
Key changes include:
- Introduction of addressing at differing data word sizes (4-bit, 8-bit, 126-bit, etc).
- Enhanced endianness support with separate intra-word and multi-word configurations
- Made the 'compile' command optional when using
bespokeasmto compile code. - Added a command line subcommand that helps user update ISA configuration files if the format BespokeASM expects changes.
- Many bug fixes and improved unit test coverage.
- Python v3.11 now required
v0.4.2
This is a rather large change that enables several assembly syntax features to support the Minimal 64x4 Home Computer. The major changes are:
- address operand type that support bit slicing when needed for things like local jumps and zero page addressing.
- .align directive to adjust current address to next configurable page boundary
- Support for embedded strings, which which are essentially .cstr data types without the .cstr directive.
- #mute and #unmute preprocessor directive to control the emission of byte code.
- Complete list of changes is in the CHANGELOG.
Also created the ISA configuration and sample code for the Minimal 64x4 Home Computer.
v0.4.1 - Preprocessor Improvements and Bug Fixes
This version improves on the preprocessor feature set by addressing various bugs and adding support for negative integers in both preprocessor and compile time labels. A number of bugs in compile error message improvements were addressed too. Finally, added an example for The Minimal 64 Home Computer.
Preprocessor Macros and Compilation Control
This is a major feature upgrade that enables preprocessor macro definitions using the #define <symbol> <value> syntax and compilation control using preprocessor #if / #elif / #else / #endif directives. See documentation for more information.
Also added several minor features documented in the CHANGELOG.
v0.3.3
What's Changed
- Listing Pretty Print Format by @michaelkamprath in #21
Full Changelog: v0.3.2...v0.3.3