| |
AKA :
6502/65C02/R65C02/W65C02/65CE02/65816/DTV/65EL02 Turbo Assembler
Website :
https://sourceforge.net/projects/tass64/
Credits :
Download :
Look for downloads on external sites:
Pokefinder.org
Production Info Submitted by soci on 28 March 2020
r2176 (2020-03-23)
==================
There were quite many changes in trunk so it's time to release another version.
**Changes**
* Removed -Wtype-mixing
It was a transitional warning just in case someone relied on an undocumented
tuple/list mixing which changed earlier.
* Floor rounding is used by default now, added -Wfloat-round
The old method was to truncate but it was not consistent with the integer
division and was problematic when using floating point to represent
fixed point numbers. The difference only shows for negative numbers.
Just to be on the safe side there's a new warning now for cases where
the programmer could use one of the rounding functions explicitly to avoid
a rounding ambiguity.
* Handling of address space wraps in calculations
There are various address space wraps depending on the CPU. As an example the
zero page may wrap or may not with indexed addressing. 64tass now tries to
wrap when an offset is applied to an address to keep it in the same address
space. E.g. a label at $10 in the expression lda label-$20,x results in
lda $f0,x for a 6502 but lda $fffff0,x for a 65816. In all cases there are
warnings issued for such an ambiguity. If it's intentional it may be
suppressed but usually it's not.
* -Wmem-wrap and -Wpc-wrap renamed now to -Wwrap-mem and -Wwrap-pc
To make them in line with the other bunch of new -Wwrap-something switches.
Please update your build scripts. They won't fail just yet but may in future.
* Only --export-labels references labels
Listing labels incorrectly referenced .proc blocks and so just by doing a
label list unused .proc blocks got suddenly compiled in. This is unexpected
and should not happen for a simple label list therefore it won't any more. If
otherwise unused .proc blocks are needed in the label listing please add the
new --export-labels option to get them listed and compiled.
* Star is finally a label now
Before it was only a number but as the theory goes it should be the
memory location at the beginning of the line. This means label = \* + 1
constructs are now correctly referring to memory locations.
* Variables are not listed in VICE label list any more
They are ambiguous as may be assigned multiple times and usually don't refer
to memory locations
* Dictionaries are order preserving and iterable now
Earlier order was undefined.
* I/O error messages or in C locale now
As the rest of the messages aren't localized either.
**New**
* Add -Wmacro-prefix
Warns about macro calls without any prefix in front
* Add WDM opcode
It was requested for 65816
* Added .while and .bwhile
Could be done with .for before but it's cleaner this way
* Add .breakif and .continueif
Simplifies .if .break .fi and .if .continue .fi sequences
* Functions got a namespace
The function itself can hold symbols now so there's no need for an
additional label just to store data across invocations. That is
"functionname.stuff := 4" works now.
* Lists can be used as keys in dictionaries
On query they need to be put into a list of course
* CPA alias was added for CMP
For consistency with CPX and CPY.
* Added --macro-caret-diag
Normally the diagnostic message is displayed along with the line causing it.
There was an option to suppress the line display for those who don't want
this but that makes debugging of macro expansions hard as the source file only
contains the unexpanded macro. This option is a middle ground to display
faulty lines only for macros.
* Added --vice-labels-numeric
Normally only memory locations are included to avoid numeric constant
definitions in the listing but if you have a lot of label = $3000 style
definitions this is for you.
* Dictionaries are concatenable now
There was hack to add entries by using the splat feature but the simpler
{1:2}..{2:3} works now too.
* Dictionaries are sortable
Now that the order is preserved and they are iterable this makes sense
* Multiple output files can be generated now
By using multiple "--output" parameters. The output format and the section used
may be varied of course.
* Broadcast works with format() as well
It's now possible to format values in a list and the result is a list of
formatted values
* Added --make-phony command line option
This is useful for automatic dependency generation purposes for Makefiles.
* Added .with/.endwith
This allows to access symbols of another namespace without changing the
current one. Unlike .namespace/.endn which does that.
**Fixes**
* Now @b and @w works for branches
It can be used to prevent automatic long branches where it'd be bad
* Fix AHX/SHA mode
Wrong addressing mode was used
* Leading zeros warning message suppression was corrected
Due to a copy mistake it was -Wimmediate instead of -Wleading-zeros
* Improve double definition error handling
It worked before as well but caused so additional errors
* The "Too early to reference" error is gone now
Now nothing is to early to reference
* Listing now contains returned values
The results of function return values are in the listing now
* Unused .proc labels not in listing any more
If unused technically the don't exists and should not be there
* Improved macro diagnostic message position for macros
In many cases now the diagnostic messages are issued at the macro invocation
instead in the macro body. At least when it seems like the problem is due to
wrong parametrization.
* Addressing mode and size messages improved
They display the opcode now which can't have that addressing mode or size
* Diagnostic backtrace now omitted for trivial cases
This cuts back on the useless clutter for diagnostic messages in a multi file
project
* Inverse command line options added for consistency
For example there was a --quiet but no --no-quiet.
* VICE label lists omit duplicate entries now
The monitor can only display one of them
* Various diagnostic message location improvements
Some diagnostic messages pointed to the directive instead of it's parameter
* Functions may be created anywhere
There were limitations on where functions may be defined but it's sorted now.
* Struct offsets are numbers now
Of course they are but they were addresses earlier which caused -Wimmediate
to not trigger on them.
* In some cases a missing .ends was not reported
Now it is
|
|
|
|
| Search CSDb |
| Navigate | |
|
| Detailed Info | |
|
| Fun Stuff | |
· Goofs · Hidden Parts · Trivia
|
|
| Forum | |
|
| Support CSDb | |
|
| |
|