Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > Converting 64Tass 1.45 sources to 1.xx
2016-06-22 09:07
Angel of Death

Registered: Apr 2008
Posts: 211
Converting 64Tass 1.45 sources to 1.xx

Hello,
Just me being a lazy person I want to start using a newer version of 64tass as I'm still using 1.45.
However, it turns out that none of my macros are working anymore.
For example this one suddenly gives a "constant too large" error:
basicstart	.macro
		*=	$0801
		.word nd,2015
		.byte 0,^2015
		.null $9e,^\1
nd		.word 0
basicend
		.endm

And with all the other ones I get all sorts of "...not defined" errors.
I tried using a version as old as 1.46 with no result and I can't find anything in the documentation, so far, that says something regarding that functionality has changed.
What am I not seeing here?
2016-06-22 09:32
iAN CooG

Registered: May 2002
Posts: 3193
.byte 0,^2015
seems useless here and also the message is clear, you're trying to define ^2015 as a byte while it's text. just remove it
basicstart  .macro
        *=  $0801
        .word nd,2015
        .null $9e,^\1
nd      .word 0
basicend
        .endm

        basicstart start
        *=$80d
start
        inc $d020
        rts


dox at http://tass64.sourceforge.net/ (even linked in the csdb entry)
2016-06-22 10:09
Angel of Death

Registered: Apr 2008
Posts: 211
It's an old trick to hide the "sys" command and I solved that one in the meantime as it was indeed a bit of bad coding and probably worked by accident.
But that still left me with the other thing of the "...not defined" errors.
And while writing this I got a hunch and found where the problem lies. Browsing through the binaries in Sourceforge it turned out that somewhere between 1.46r38 and 1.46r191 the .macro directive was changed to NOT except outside access of labels anymore and the .segment directive was added to accomodate.
Since it was not in the release notes but only in the manual entry for the .macro directive it took a while to find it.
But thanks a lot for your quick, if unhelpful, answer anyway.
2016-06-22 21:07
soci

Registered: Sep 2003
Posts: 480
Yes, scoping of .macro was fixed in r86, from there on the .segment directive is equivalent to the old behaviour. This change fixed a long mismatch to C64 TASM.

As for .byte vs. .text, only the second accepts strings in newer versions. This is to enforce the intended range checking of .byte the same way as .word and others.

Traditionally the two directives were equivalent (and still are in some other assemblers), but this was not the case on C64 TASM either.

Another thing which might trip you is that the arguments of .binary, .include and .cpu need to be quoted for a while now (was optional before). This was changed to allow variables as arguments.

That's what I remember now, there might be other "minor" differences.

There was a period after 1.46 where I thought commit messages are enough (no, they're usually not). So mentioning that .macro change fell through the cracks.

But for many years now I picked up the habit of creating news entries about what might break, was fixed or added. (https://sourceforge.net/p/tass64/news/)
2016-06-22 21:47
Angel of Death

Registered: Apr 2008
Posts: 211
Thanks for the answer Soci.
It turned out I kinda exploited the quirks of the old version much more than I thought.
It gave me a huge compatibility problem which I am fixing as we speak. :)
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
acrouzet/G★P
csabanw
Bitbreaker/Performers
CopAss/Leader
theK/ATL
algorithm
Mr. Commodore/UCF/Un..
Guests online: 121
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 No Listen  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Original Suppliers
1 Derbyshire Ram  (9.7)
2 Fungus  (9.3)
3 Black Beard  (9.2)
4 Baracuda  (9.2)
5 hedning  (9.1)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.039 sec.