Releases: informedcitizenry/6502.Net
Version 5.0
The Big Five-Oh! Release
Version 4.4.1
Fixed several defects
- Several instructions in the 65xx family as well as a few in the Z80 instruction set.
- A bug in how constants were evaluated in subsequent passes.
- Several undocumented/illegal Z80 opcodes should now disassemble properly.
- When a
.relocateinstruction before a.page/.endpageblock but the.endrelocateinstruction within it, a more helpful error will emit if a page boundary is crossed.
Version 4.3.2
Made small improvements to diagnostics for disassembler mode. Ignored options are now reported individually. In addition, some other options, such as --quiet, --Werror and --error now work as they would in assembler mode.
Version 4.3.1
Version 4.3.1
- Added support for escape codes of special Commodore keys in string and character literals, e.g.,
"{CLR}{HOME}"for Commodore-specific encodings. - Symbol names can include registers.
- Some error message improvements.
- Other minor bug fixes.
Version 4.2.2
Version 4.2.2
This release mostly focused on improved error messages.
Release 4.2
Changes
Support for the Sharp LR35902, the z80-flavored CPU powering the Nintendo Game Boy.
Release 4.1
Minor bugfix release
Release 4.0
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,Uandu8. - Support included for .Net style interpolated strings, e.g.
$"3+2={3+2}", including value formatting support. - The command-line option
--vice-labelsused with-Lcan 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
--disassembleoption. The--disassembly-startand--dissembly-offsetoptions control disassembly. See the documentation for more details. - Pseudo-ops accept array and tuple expressions as operands
- The
rangefunction generates an integer array from given arguments.
Changes
- The command-line options
-Eand--ignore-colonshas been removed. - The
--createconfigoption 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, andsort. - The
pokefunction now returns the value of the poked value. - The preprocessing directives
.macro,.bincludeand.includeare now affected by the-Coption. - 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
cwaiand certain indexed instructions. - The
--configoption had a defect that occasionally prevented the JSON schema from validating. - Certain values caused problems for the
cbmfltandcbmfltpfunctionality (both the pseudo-op directives and related functions)
Release 3.2
Release 3.2
Features
Functions
New functional support for array, with the following functions:
concat: Concatenate two arrays or stringsfilter: Filter array or string elements according to the specified predicatemap: Map array elements to new values according to the specified transform functionreduce: Reduce array elements to a new value according to the specified reducer functionsort: Sort the array or string
The function, or arrow, expression idiom has been added to the assembler syntax to support many of the above built-in functions. Function expressions work like callbacks and lambdas in other programming languages. See the wiki for usage and examples.
The .stringify directive
To generate string byte output from non-string values, ordinarily the format function would be used. A new directive .stringify allows the same in a compact format.
Release 3.1
Release 3.1
Changes
- Loosened equality/comparison rules for doubles.
- Minor refactoring of evaluation code.