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 > DASM Questions...
2014-05-13 20:58
Fix

Registered: Feb 2003
Posts: 54
DASM Questions...

I'm testing out DASM assembler and wonder if you can do the following.

org $5000
...
...

org $1000
...
...

Q: I get errors on this, complains about reverse indexing.
I've tried to use -F2, but I can get it to work.
The "..." just some code :-)

Or I need to have all parts in low/high, to get it to work.

- - -

Q: Is there a way to split the output file into two or more files, see below. Or is there any cross-assembler that can handle this ? ( !to is a Acme command... )....


org $1000
!to "file"

....
....

org $2000
!to "file2"
....
....
2014-05-14 05:49
soci

Registered: Sep 2003
Posts: 480
A1. dasm a.asm -f2 works. But you have to split out the segments yourself. If you do this then you could go with almost anything able to handle random segment ordering.

A2. DreamAss comes to mind right now, or Kick Assembler V3.13 (or newer?) with -mbfiles option.
2014-05-14 15:48
Count Zero

Registered: Jan 2003
Posts: 1932
DreamAss indeed handles this nicely.

Baccy just moved it to https://github.com/docbacardi/dreamass

When toying with flexible segment ordering I tested dasm, acme and KickAss as well. All of them seem to have serious problems in this field. While dasm next to DreamAss also allows unlimited passes to resolve forward references the several versions I found produced different code and crashes. DreamAss wasn't that much better when using pseudo-opcodes "wrongly" but works as expected once I figured it out.
KickAss - well, I know many use this thing but I don't see the reason. A simple forward reference in an included file doesnt work - even with gigs of RAM. Uff.
2014-05-14 16:02
chatGPZ

Registered: Dec 2001
Posts: 11386
Quote:
the several versions I found produced different code and crashes.

that sums up my experiences with DASM pretty accurately too =)

that said, ca65 can do this stuff nicely as well - its not everyones cup of tea though, due to the way it deals with linking.
2014-05-14 16:56
Count Zero

Registered: Jan 2003
Posts: 1932
Reminds me - also don't waste time on "XA". While "dxa" is useful as disassembler at times "xa" is painful to use.
2014-05-14 17:30
soci

Registered: Sep 2003
Posts: 480
Quoting Count Zero
When toying with flexible segment ordering I tested dasm, acme and KickAss as well. All of them seem to have serious problems in this field. While dasm next to DreamAss also allows unlimited passes to resolve forward references the several versions I found produced different code and crashes. DreamAss wasn't that much better when using pseudo-opcodes "wrongly" but works as expected once I figured it out.
KickAss - well, I know many use this thing but I don't see the reason. A simple forward reference in an included file doesnt work - even with gigs of RAM. Uff.

Hmm, sounds interesting. Could you share a few examples what sort of flexible segment ordering you've tried to do? Things like aligning code so that it end exactly somewhere, for example?
2014-05-14 17:44
chatGPZ

Registered: Dec 2001
Posts: 11386
Quote:
also don't waste time on "XA".

hihi, xa must be one of the weirdest assemblers i used... while its pretty stable and solid, the syntax is really unlike every other assembler :)
2014-05-14 17:47
Testicle
Account closed

Registered: Sep 2002
Posts: 131
Quoting Count Zero
KickAss - well, I know many use this thing but I don't see the reason.

I'm not sure about other assemblers since I have been away from asm-coding for years, but are there other assemblers as well that have such an elaborated scripting language like Kick Assembler? Just wondering...

Oh, and it runs on Windows, Linux and OS X out of the box. I don't like (or better: I'm not able to) compiling from source to use an assembler on OS X.
2014-05-14 19:40
soci

Registered: Sep 2003
Posts: 480
Quoting Testicle
I'm not sure about other assemblers since I have been away from asm-coding for years, but are there other assemblers as well that have such an elaborated scripting language like Kick Assembler? Just wondering...

It depends what you want to do. I usually prefer other (scripting) languages for doing complicated conversions, tables or special speed code and such. These things are slow to compute, and once generated they're changed rarely, unlike the assembly code.

So for me most of it's selling point about scripting is gone. The other part is lost on the syntax, but that's personal preference again.

It's probably still the most capable assembler for scripting, though. For assembling I'd disagree, it falls short in surprising ways sometimes.

Quoting Testicle
Oh, and it runs on Windows, Linux and OS X out of the box. I don't like (or better: I'm not able to) compiling from source to use an assembler on OS X.

The problem with OS X is that it's not really an option to cross compile native code to it without owning the hardware.

Otherwise you have to jump through hoops (in theory there're somewhere hacked VM versions around), but understandably not everyone wants to do that.

I don't have that many friends with the hardware, the OS and a willing/understanding to install Xcode and cross compile or debug stuff for me.

If I release windows binaries beyond the source code it's because that's only a matter of quick cross compiling with mingw. If it would require a native environment using MSVC for example, then it wouldn't happen either.

So it's not that I have anything against supporting OS X with precompiled versions, just the bar is too high.

You did it right with java - much less worries on portability - but I better like to play with the low level stuff most of the time.

Ok, that's enough for now, way too much off-topic stuff already ;)
2014-05-16 20:04
tlr

Registered: Sep 2003
Posts: 1790
Quote: Quote:
the several versions I found produced different code and crashes.

that sums up my experiences with DASM pretty accurately too =)

that said, ca65 can do this stuff nicely as well - its not everyones cup of tea though, due to the way it deals with linking.


For what it's worth: I haven't had these problems with dasm although I found it necessary to improve it (dasm-2.20.11-r323-20090221-tlr) to achieve what I wanted.
Error reporting is below par but I find my self returning to it because I'm used to it and that some others mentioned here (notably kickasm) aren't good enough at resolving forward references.
I use external programs in perl and c extensively for code generation.

If I were to pick from scratch today I would probably pick 64tass.
2014-05-16 20:07
chatGPZ

Registered: Dec 2001
Posts: 11386
Quote:
I found it necessary to improve it

thats another "nice" dasm feature - everyone produced his own fork with its own unique bugs^H^H^H^Hfeatures =)
2014-05-16 20:13
tlr

Registered: Sep 2003
Posts: 1790
Quote: Quote:
I found it necessary to improve it

thats another "nice" dasm feature - everyone produced his own fork with its own unique bugs^H^H^H^Hfeatures =)


Indeed, although it might be expected since the original version dates back to 1988.
2014-05-16 20:21
chatGPZ

Registered: Dec 2001
Posts: 11386
afaik there has even been some "official" one established again recently. at least a decade too late though :)
2014-05-16 20:30
tlr

Registered: Sep 2003
Posts: 1790
Quote: afaik there has even been some "official" one established again recently. at least a decade too late though :)

You are thinking of: http://dasm-dillon.sourceforge.net/

I tried submitting my patches there but to no avail. Recently Andrew Davie took control of it again so maybe I'll try again.
2014-05-17 12:05
AüMTRöN

Registered: Sep 2003
Posts: 44
Ian Coog made some nice mods to DASM: http://iancoog.altervista.org/C/dasm2.20.07-iAN_Rev_L.rar

Supports out of order ORGs (after initial lowest address is ORGed first), afair.
2014-05-17 14:20
Endurion

Registered: Mar 2007
Posts: 73
Just for kicks there's also preliminary support for DASM in C64-Studio.
2014-05-19 18:04
enthusi

Registered: May 2004
Posts: 677
Oh, I use XA for some time now and find it quite handy ;-)
Though I tend to use as few assembler-specific commands as possible/reasonable.
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
Brittle/Dentifrice^(?)
Guests online: 85
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 No Listen  (9.6)
2 Layers  (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.055 sec.