Changelog

Source code for all releases can be found at code.benbridle.com/torque-asm.

Version 3.0.0

  • Allowed label references to be used in pinned addresses and the predicates of conditional blocks
  • Allowed macros to be invoked before they’re defined
  • Allowed multiple macros to be defined with the same name but different argument counts
  • Allowed list values to be used in expressions
  • Changed the string data type into a more general list data type
  • Changed the "name" string-style argument syntax to a [name] list-style syntax
  • Added a list literal syntax for creating lists of integers
  • Added specific error message for nested macro definitions
  • Added a <dbg> expression operator for printing the expression stack
  • Added a <fnd> expression operator for finding the index of an element in a list
  • Added a <nth> expression operator for extracting the nth element of a list
  • Renamed <tal> expression operator to <sum>
  • Fixed crashes caused by a divide-by-zero in an expression
  • Increased maximum recursion depth to 1024, with a descriptive error message if the limit is exceeded

Version 2.5.0

  • Added the <abs> expression operator
  • Fixed coloured output on Windows

Version 2.4.0

  • Allowed label references in expressions for pinned addresses
  • Added first-class string values to the language
  • Added the <tal> expression operator
  • Added rust-toolchain.toml to simplify the build process

Version 2.3.0

  • Added the ability for a macro to recursively invoke itself
  • Added the <len> expression operator

Version 2.2.0

  • Added octal literals (prefixed with 0o)

Version 2.1.0

  • Added support for the CMD format used by CP/M executable files
  • Added negative integer literals
  • Fixed incorrect width calculation for negative integers

Version 2.0.2

  • Added reporting of all symbols involved in a cyclic dependency error
  • Fixed issue with nonexistent cyclic dependency errors being reported

Version 2.0.1

  • Changed [extension] positional argument to the --extension named switch
  • Improved the text shown with --help
  • Fixed issue with incorrect source context being shown in symbol resolution errors

Version 2.0.0

  • Added less-than-equal, greater-than-equal, multiply, divide, modulo, and exponent operators to expressions
  • Added conditional blocks (declared with ?)
  • Added character literals (enclosed with ')
  • Added binary literals (prefixed with 0b)
  • Added the ability to pack negative values into word templates
  • Added optional _ separator characters to integer literals
  • Added --help switch that displays usage information
  • Added --width switch that enforced a fixed word width
  • Changed expressions to accept nested expressions and invocations with arguments
  • Changed pinned addresses to accept invocations and expressions
  • Changed behaviour of string arguments to repeat the whole invocation, not just the words inside the invocation
  • Improved error reports
  • Improved density of inhx and inhx32 output formats when pinned addresses are used

Version 1.2.0

  • Renamed binary from torque-asm to tq

Version 1.1.1

  • Fixed issue with compiling under rust 1.87.0

Version 1.1.0

  • Added string literals
  • Added INHX output format

Version 1.0.0

  • Initial version