| |
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.... |
| |
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? |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
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 |
| |
Krill
Registered: Apr 2002 Posts: 2980 |
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. :) |
| |
Peacemaker
Registered: Sep 2004 Posts: 275 |
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. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
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) |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
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 |
| |
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. |
| |
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. |
| |
Krill
Registered: Apr 2002 Posts: 2980 |
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 |
| |
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 |