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 > Popular (cross)assemblers
2005-04-29 11:22
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....
 
2005-04-29 19:42
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.
2005-04-29 19:52
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.
2005-04-30 01:21
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.
2005-04-30 08:37
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
2005-04-30 12:44
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.
2005-05-02 02:47
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
2005-05-02 06:22
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
2005-06-22 13:51
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, ...).
2005-06-22 14:14
Krill

Registered: Apr 2002
Posts: 2855
CA65 is teh shit for me =)
2005-06-23 07:48
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
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
Sentinel/Excess/TREX
t0m3000/HF^BOOM!^IBX
A3/AFL
lA-sTYLe/Quantum
CA$H/TRiAD
Mr. Spock/T'Pau
Guests online: 97
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.7)
5 Edge of Disgrace  (9.7)
6 No Bounds  (9.6)
7 Aliens in Wonderland  (9.6)
8 Comaland 100%  (9.6)
9 Uncensored  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 Cubic Dream  (9.6)
3 Party Elk 2  (9.6)
4 Copper Booze  (9.6)
5 TRSAC, Gabber & Pebe..  (9.5)
6 Rainbow Connection  (9.5)
7 Dawnfall V1.1  (9.5)
8 It's More Fun to Com..  (9.5)
9 Daah, Those Acid Pil..  (9.5)
10 Birth of a Flower  (9.5)
Top Groups
1 Nostalgia  (9.4)
2 Oxyron  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 SHAPE  (9.3)
Top Original Suppliers
1 Black Beard  (9.7)
2 Derbyshire Ram  (9.5)
3 hedning  (9.2)
4 Baracuda  (9.1)
5 Jazzcat  (8.6)

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