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 > Assembler preferences.
2016-02-09 06:03
ChristopherJam

Registered: Aug 2004
Posts: 1378
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....
 
2016-05-01 08:03
Slammer

Registered: Feb 2004
Posts: 416
Sorry for picking your brains, but I find this intersting. As I understand it the memory management of the linker seem to have 3 levels:
   File<-Memory<-Segment
(I know the file level is not that explicit as its an argument for memory)

I completely buy that segments are good, but how much do you use the memory level. Wouldn't it be simpler and just as good to do:
   File<-segment
Also, I get the destinction between bss and other segments. But do you use the difference between ro and rw, and wasn't it better placing it (only) at the memory level?
2016-05-01 08:59
JackAsser

Registered: Jun 2002
Posts: 1989
The Memory directive is used to emit bytes to different files. In Booze I have two memories. One from 200-1fff where init, decrucher, loader and music i located. This is emmitted to main.bin. The rest goes into code.bin. The final product is a concatenation of the two, smack on a load addy and cruch it. When it goes into the final disk linked with the rest I only feed it code.bin
2016-05-01 09:40
Krill

Registered: Apr 2002
Posts: 2839
What Jackasser said, and multiple memories/output files can also be used for the overlays i keep mentioning. You relocate/switch banks/load files to overlapping memory regions at different times. And sometimes you do have actual different distinctive memory, e.g., in cartridges and drive code.

The access directives may be somewhat more logical when applied to memories rather than segments, but they are more practical for segments. Think of things like linker errors/warnings when it detects a write attempt to a read-only segment. Though i have never encountered that with ld65. I might have just never done this, neither purposely nor by accident. :)
2016-05-01 10:48
Peacemaker

Registered: Sep 2004
Posts: 243
Indeed, multiple memories/output files for be very useful to make some things easier.. Himen (e.g. $e000-$ff40) output file along with the "main" bin (e.g. $2000-$abcd) output file.
2016-05-01 12:47
chatGPZ

Registered: Dec 2001
Posts: 11113
Quote:
Also, I get the destinction between bss and other segments. But do you use the difference between ro and rw, and wasn't it better placing it (only) at the memory level?

the file level is needed for overlays, think of stuff that gets loaded from disk (eg: demoparts). if you use this consequently through the entire demo, you can just link together everything without the need of header/include files that keep all the addresses/labels for common functions (loader/music/framework).
the ro/rw stuff is needed when you have ROM - like a cartridge image. (the linker can produce warnings or even errors when you try to write to memory that is in a readonly section, thus saving you a lot of WTF)
2016-05-01 14:33
JackAsser

Registered: Jun 2002
Posts: 1989
I also used it both in the EotB preview and in the c128 3d engine for emitting code to the upper memory block and then load it from disk
2016-05-02 06:05
Slammer

Registered: Feb 2004
Posts: 416
Thanks guys. More questions arises, but I will take it for at testdrive to figure out the details.

Peacemaker: I dont know if you have already seen it, but you can get multiple outputfiles using the -mbfiles switch. It will save one file per memory block using the blocks name as filename.
2016-05-02 07:27
Firehawk

Registered: Aug 2011
Posts: 31
+1 for KickAssembler (KickAssembler, xemacs and gmake), mostly because it was the first one I found when searching for a C64 assembler at my return to C64-coding (around 2010) - but I found that it suits me just fine. Don't use scripting too much, as I found its better to preprocess graphics using C++ instead.

I think this boils down to questions like "what is the best programming language?" - the anwser is not C, C++ or Python etc, but "the one you are best at".

Try claiming that opinions are subjective in this forum :-D.
2016-05-02 07:40
Krill

Registered: Apr 2002
Posts: 2839
Quoting Firehawk
"what is the best programming language?" - the anwser is not C, C++ or Python etc, but "the one you are best at".
To be honest, this is one of the answers i DON'T want to hear in job interviews. :D
2016-05-02 07:50
Firehawk

Registered: Aug 2011
Posts: 31
Krill: Well it's not a question that should be asked in a job interview, or? You should be asking about skills, not opinions.
Previous - 1 | ... | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | ... | 22 - 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
FABS/HF
cba
Apollyon/ALD
zscs
Krill/Plush
Ddw/Deja Vu
Guests online: 159
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 No Bounds  (9.6)
7 Uncensored  (9.6)
8 Wonderland XIV  (9.6)
9 Bromance  (9.6)
10 Memento Mori  (9.6)
Top onefile Demos
1 It's More Fun to Com..  (9.7)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 TRSAC, Gabber & Pebe..  (9.5)
6 Rainbow Connection  (9.5)
7 Onscreen 5k  (9.5)
8 Wafer Demo  (9.5)
9 Dawnfall V1.1  (9.5)
10 Quadrants  (9.5)
Top Groups
1 Oxyron  (9.3)
2 Nostalgia  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Fullscreen Graphicians
1 Carrion  (9.8)
2 Joe  (9.8)
3 Duce  (9.8)
4 Mirage  (9.7)
5 Facet  (9.7)

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