Skip to content

Releases: michaelkamprath/bespokeasm

Named Label Scopes + Vim Syntax Highlighting

04 Oct 22:37
e6f1bbe

Choose a tag to compare

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 #print preprocessor 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

27 Jul 17:22
585a073

Choose a tag to compare

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

26 Jul 20:18
e11a022

Choose a tag to compare

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 bespokeasm to 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

27 Apr 05:59
8219b4d

Choose a tag to compare

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

29 Jul 19:43
1f1b1ca

Choose a tag to compare

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

22 Apr 16:41
501e8b6

Choose a tag to compare

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

28 Mar 03:38
a3b8083

Choose a tag to compare

What's Changed

Full Changelog: v0.3.2...v0.3.3