| |
ChristopherJam
Registered: Aug 2004 Posts: 1409 |
Assembler preferences.
Two questions:
- what's everyone using these days?
- on large productions, do groups tend to enforce a single assembler for the entire project, or is the code base a bit heterogenous?
I'd like to keep this discussion purely focussed on assemblers; please leave code generators, loader toolchains etc for that other thread.
(as for me, I'm still using xa65 for most projects) |
|
... 204 posts hidden. Click here to view all posts.... |
| |
CSixx
Registered: Jan 2013 Posts: 12 |
Kickass, does what I need and is in java so I use the same executable everywhere (win, linux, etc..) |
| |
soci
Registered: Sep 2003 Posts: 480 |
Fungus: Yes, I've mentioned that I'm using it a few posts ago. Btw, sometime soon there should be another snapshot with the fixes/corrections done since 1.51.992.
I could try push it as the next best thing since sliced bread, but there's no point. Especially that I know which areas could be improved and lacking currently. But for the stuff I use it surely beats the others ;) Or else I would have given up on it long ago (almost happened around 1.4x). |
| |
algorithm
Registered: May 2002 Posts: 705 |
Quote: If it is just about typing in assembler it doesn't matter much which assembler you use, but there are things that can annoy with other assemblers. Therefore ACME is capable of:
- it handles labels without that additional colon, i hate that extra typing work
- it supports short labels like +/- (even though you can fuck yourself really hard if you overlook one of those small labels and then branch too far), as well as *+x as we know them from old tass times, right?
- macros with references
- support of local labels, be it per macro or zone
- supports all illegal menomonics, so noa ugly macro/!byte workarounds
Also as Peiselulli already stated, ACME is still actively maintained and it is fast.
Also, i don't see any problem at all to integrate a multitude of different assemblers with scripts/Makefiles as long as they are called via some commandline. No need to fall back into stoneage and receiving binary blobs. There's repositories we can use in a group and you can still hand out readymade .d64 images to those who are unable to build the whole project. At least all coders can build it (and even more), that is sufficient.
+the useful !pseudopc feature that is rather useful for code transferred and running in other area's (e.g zeropage) |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
64tass can do all of that. and I bet all the others. anyways I find myself most of the time using just very basic assembler features.
the most complex thing is usually a for loop to calculate a table of a number multiplied. |
| |
enthusi
Registered: May 2004 Posts: 677 |
I switched to xa since at the time, acme had no defines. it does now. xa also has .( and .) for local label space. It knows ascii, petscii and petscreen. also *= sets the pc. just that. No automated filling and shit *g*. |
| |
Fungus
Registered: Sep 2002 Posts: 686 |
soci: kewl, look forward to the update. Did you add a pseudopc function that can also return the length of the code somehow? Useful for disk stuff and relocating routines at runtime. |
| |
soci
Registered: Sep 2003 Posts: 480 |
Fungus: I'm not sure what you mean, at least what I think of is quite old. Unless I misunderstood the question.
The built-in "size()" function returns the length. The .logical/.here (pseudo pc stuff) is a "transparent" code block. You can access this block by defining a label at it's start, and it's size is probably what you're looking for.
stuff .logical $300
nop
.here
.word size(stuff) ; length of .logical/.here
ldx #size(stuff)
It's also mentioned in the "Usage tips" section of the manual in an example for copying zeropage code to it's final place. |
| |
TheRyk
Registered: Mar 2009 Posts: 2244 |
@enthusi: I think you should give current ACME a chance, as most (or even all) of what you complain about has been realised inbetween. Of course you might need to "learn" a few tokens.
As for
Quote:automated filling and shit *g*
there is
!fill,<no. of bytes>,<fillbyte>
to determine yourself which range to fill with what
plus, there is
!initmem
to make clear how "empty" areas not specified via !fill are supposed to be filled (zero by default if you do not use !initmem)
I can only tell you, ask Mac Bacon, whenever sth is unclear or you want sth to be improved. My experience is, he's a true genius but also a really nice and helpful guy, who always replies quickly or - if you convince him sth is worth improving - even updates ACME in next to no time. |
| |
enthusi
Registered: May 2004 Posts: 677 |
yes, I believe all of that :) While back then I had a reason to change, I do not have one now, though. XA feels more 'raw' which is what I prefer in fact. |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
so what does initmem do ? why should the assembler know how memory looks like ? I dont get it |
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ... | 22 - Next |