Skip to content

Release 4.0

Compare
Choose a tag to compare
@informedcitizenry informedcitizenry released this 21 Apr 13:04
· 61 commits to master since this release

Release 4.0

Features

  • Enhanced the type system. Now all types have a minimum number of instance member methods, most notable toString(). Previously standalone functions for arrays and strings are now implemented as methods on instances of those types. See the documentation on expressions for more details.
  • Added the tuple type, functionally equivalent to arrays except their members can be heterogenous types.
  • String literals can have explicit encodings via the prefices: u, U and u8.
  • Support included for .Net style interpolated strings, e.g. $"3+2={3+2}", including value formatting support.
  • The command-line option --vice-labels used with -L can output label listings as VICE format.
  • The ^^ prefix operator extracts the high word of a numeric expression.
  • A lightweight diassembler is now available with the --disassemble option. The --disassembly-start and --dissembly-offset options control disassembly. See the documentation for more details.
  • Pseudo-ops accept array and tuple expressions as operands
  • The range function generates an integer array from given arguments.

Changes

  • The command-line options -E and --ignore-colons has been removed.
  • The --createconfig option is now a flag that will generate a config file called 'config.json' from the passed options.
  • The macro string literal substitution of the form @"{macro_param}" has been removed. String interpolation is now supported as a replacement capable of full stringifying full expressions.
  • The following built-in functions have been removed (see above): concat, filter, len, map, reduce, and sort.
  • The poke function now returns the value of the poked value.
  • The preprocessing directives .macro, .binclude and .include are now affected by the -C option.
  • Parsing grammar simplification.
  • Further improvements to error highlighting.
  • The core assembler functionality has been packaged into its own project as a separated library called Sixty502DotNet.Shared.

Fixes

  • Fixed certain 6809 cwai and certain indexed instructions.
  • The --config option had a defect that occasionally prevented the JSON schema from validating.
  • Certain values caused problems for the cbmflt and cbmfltp functionality (both the pseudo-op directives and related functions)