| |
Compyx
Registered: Jan 2005 Posts: 631 |
Popular (cross)assemblers
I was wondering what the most popular (cross-)assemblers are for programming the C64. Turbo Assembler obviously, but what other assemblers are used?
I'm planning a complete rewrite of my old cross-assembler and I'd like to make it compatible with the popular assemblers out there..
So any comments on assemblers used by coders would be very helpful..
|
|
... 21 posts hidden. Click here to view all posts.... |
| |
Ninja
Registered: Jan 2002 Posts: 407 |
@cyberbrain: matter of taste, i guess. i add a comment in the production notes of AAY when a new version arrives. but nothing worth starting a flame ;)
@magervalp: maybe we don't need one, but he might do so.
|
| |
Cruzer
Registered: Dec 2001 Posts: 1048 |
I'm using MXass, which lets you define local labels by prefixing them with + or -, depending on whether they're supposed to be referred to from above or below in the code.
E.g.
-loop
inc $d020
jmp -loop
or
lda something
beq +label
rts
+label
You can also just simply write + or - w/o any label name...
lda something
beq +
rts
+
This is a really nifty way of doing local labels I think, since it saves you the trouble of coming up with meaningful label names all the time. Don't know if there are other assemblers with this system. |
| |
Stryyker
Registered: Dec 2001 Posts: 465 |
I'm sure there is a C64 assembler that does that. Commodore World by CMD had some source using the same feature.
I think it too is rather nifty. They also used ++ to go down 2 labels or -- to go back 2 etc. I'm not sure how far it could go though. |
| |
JackAsser
Registered: Jun 2002 Posts: 1995 |
Same features in CA65, for instance:
:
lda $d012
bpl :+
sta $d020
jmp :-
:
inc $d021
jmp :--
Or defining local label scopes using:
.proc main
loop:
inc $d020
jmp loop
.endproc
.proc irq
loop:
ind $d021
jmp loop
.endproc
These scopes can also be nested.
You can also have temporary variables that gets inivsible once the assembler reaches a permanent variable like:
@loop:
inc $d020
jmp @loop
coolRoutine:
@loop: ; same name, but different variable here
inc $d021
jmp @loop
All the goddies for making unreadable and nasty label mayhem are there. :D |
| |
Cruzer
Registered: Dec 2001 Posts: 1048 |
I actually think the code becomes MORE readable with +/- labels, since you know whether to look up or down in the code to find them. |
| |
Eyeth Account closed
Registered: Apr 2002 Posts: 98 |
Hello.
The temp (+/-) labels were introduced in the Buddy assembler. CMD also uses the Buddy assembler for all of their source code files.
The +/- labels can be nested up to three deep, i.e., +++/--- and I do like them; they make the code much more easier to read and is intuitive.
Enjoy.
-Todd Elliott |
| |
Wanderer Account closed
Registered: Apr 2003 Posts: 478 |
PAL Assembler by Brad Tempelton. I think this is one of the first assemblers out. It supports labels...
a inc d020
inx
cpx #100;bne a
lda #<txt:sta 2
lda #>txt:sta 3
rts
txt .asc "this is my scroll text";.byte 0
I sure wish I'd have kept my demos and source code. I would have released the full code if I'd known this day would come. As my need for disk space grew, I wiped out my old stuff. (sigh)
Also PAL will allow you to compile different routines in different areas of memory at once.
Ex:
*= $8000
jmp $ffe4
*= $c000
lda #$00:sta $d020
jsr $8000
rts
Brad's been a long time c64 programmer, he even has a webpage somewhere out there and he's Canadian :)
In all my time on the c64, I was the only one I knew who used PAL. Maybe others like me are out there??? lol |
| |
Roger Account closed
Registered: Mar 2004 Posts: 2 |
My fav is DreamAss. Major thing I miss: easy local label usage and a repeat function (lda $0401, sta $0400, ...). |
| |
Krill
Registered: Apr 2002 Posts: 2855 |
CA65 is teh shit for me =) |
| |
Burn
Registered: Jun 2005 Posts: 12 |
I'm using the PDS (Programers Development System) written by Andrew Glaister. I think it was the first Cross Assembler and runs on PC using an own parallel I/O Card. It has all the features one need including macros, debugger, conditional assembling, local and global labels and can be used to develop c64, z80, sinclair, etc... |
Previous - 1 | 2 | 3 | 4 - Next |