./cross/64tass, Cross-assembler for 6502-like processors

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.60.3243, Package name: 64tass-1.60.3243, Maintainer: pkgsrc-users

64tass is cross assembler targeting the 65xx series of micro processors.

Features:
- Open source portable C with minimal dependencies
- Familiar syntax to Omicron TASS and TASM
- Supports 6502, 65C02, R65C02, W65C02, 65CE02, 65816, DTV, 65EL02, 4510
- Arbitrary-precision integers and bit strings, double precision floating point
numbers
- Character and byte strings, array arithmetic
- Handles UTF-8, UTF-16 and 8 bit RAW encoded source files, Unicode character
strings
- Supports Unicode identifiers with compatibility normalization and optional
case insensitivity
- Built-in "linker" with section support
- Various memory models, binary targets and text output formats (also
Hex/S-record)
- Assembly and label listings available for debugging or exporting
- Conditional compilation, macros, structures, unions, scopes


Master sites:

Filesize: 753.892 KB

Version history: (Expand)


CVS history: (Expand)


   2025-05-10 15:45:20 by Olaf Seibert | Files touched by this commit (2) | Package updated
Log message:
cross/64tass: update to 1.60.3243.

Changes (taken from https://csdb.dk/release/?id=252813&show=notes#notes):

r3243 (2025-05-10)
==================

Time to make another release as it'd be good to get the fixes out.

**Fixes**

* Rename memalign function
  Caused compilation failures if such function existed in standard library
* Struct members offsets were still addresses sometimes
  This could cause wrong diagnostic messages (#71)
* Improve indirect alignment directives
  In some cases they failed even if the alignment was doable
* Wrong value in addressing limit messages
  The full address mode was displayed while only the address value is relevant
* Typo causing various issues on win32
  Especially on newer versions. (#75)
* Listing file error got lost
  If an error occurred on creation of a listing file it wasn't reported
* Original definition note message even when location was not known
  Without the location it's useless, so it's avoided now.
* BBR and BBS long branches
  These broke at some point but are working now again.

**Changes**

* pow() now the same as power operator
  This also means powers of integers remain integer now if possible
* .from not limited to namespaces
  Symbols can come from dictionaries as well
* More specific error messages for some unlikely corner cases
  Out of memory errors were replaced with better fitting (and less fatal) messages.
* Improve first parameter of regular for loops
  Can be a compound assignment now, not just an assignment.
* hypot(a, b, c)
  Not restricted to two dimensions anymore
* log(v, base)
  The base of the logarithm can be specified now as an optional parameter
* Long branches can return now
  If the destination is a return then that'll be used instead of a jump.
* Hint on .enc and .cpu quoting
  There's a hint now that the argument needs to be quoted
* -X applies on s-record now
  Can be used to avoid S19 and force output to be at least S28.
* Searched in global scope note was removed
  Wasn't really useful as there's no source location it could point to.

**New**

* Symbol type
  Not all that new but it got a built-in name and can be converted from string
* Dictionaries from separate keys and values. dict(.(a, b, c), (1,2,3))
  This allows easier creation of enumerations from ranges of values
* Column oriented iterator .for loop
  For parallel iteration of several lists without indexing.
* PSH and PUL (RSH, RUL)
  Pseudo instructions for generic pushing and pulling (mostly registers)
* LDR, STR
  Pseudo instructions for generic load and store based on register parameter
* New cpu type 45gs02
  For mega65 projects. Please read the manual for mnemonics.
* --ctag-labels
  Some editors support it for jump to definition functionality.
* --cody-bin
  Simple output format used by Cody.
* --wdc-bin
  Output format used by WDC.

**Possible incompatibilities**

* Column oriented iterator for loop syntax
  Before the column oriented for loop one could get away with 'in [1,2],[3,4]'
  as an equivalent of 'in ([1,2],[3,4])'. As the former coma separated
  version is now the column oriented syntax the tuple must be explicitly
  written out. The latter version is backwards compatible.
* New pseudo instructions vs labels
  The new pseudo instructions might conflict with existing labels without
  colons. Please add colons in such cases.
* Long branch and always taken branch pseudo instruction changes
  The resulting binary might differ due to improvements. The main reason is
  that these might use returns now in some cases and branch merging got
  more conservative now.
   2023-09-26 23:20:32 by Thomas Klausner | Files touched by this commit (4)
Log message:
cross/64tass: import 64tass-1.59.3120

Packaged for wip by Olaf Seibert and myself.

64tass is cross assembler targeting the 65xx series of micro processors.

Features:
- Open source portable C with minimal dependencies
- Familiar syntax to Omicron TASS and TASM
- Supports 6502, 65C02, R65C02, W65C02, 65CE02, 65816, DTV, 65EL02, 4510
- Arbitrary-precision integers and bit strings, double precision floating point
  numbers
- Character and byte strings, array arithmetic
- Handles UTF-8, UTF-16 and 8 bit RAW encoded source files, Unicode character
  strings
- Supports Unicode identifiers with compatibility normalization and optional
  case insensitivity
- Built-in "linker" with section support
- Various memory models, binary targets and text output formats (also
  Hex/S-record)
- Assembly and label listings available for debugging or exporting
- Conditional compilation, macros, structures, unions, scopes