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 > Looking for 64 bit version of ACME
2010-02-03 10:35
Majikeyric

Registered: Sep 2002
Posts: 83
Looking for 64 bit version of ACME

Hello all,
Did someone compile a x64 version of the ACME cross-assembler compatible for windows seven ?
Many thanks

Bye

Majikeyric
2010-02-03 11:29
Devia

Registered: Oct 2004
Posts: 401
Not necessary as Windows x64 OS's are 32bit compatible.

Just get the Win32 version, not the DOS 16bit version from http://www.esw-heim.tu-clausthal.de/~marco/smorbrod/acme/

yeah, not the latest, but do you REALLY need that?
2010-02-05 20:49
doynax
Account closed

Registered: Oct 2004
Posts: 212
Either that or compile the latest version on your own.
With GCC it's as easy as letting make do its thing. Unfortunately MinGW (the Windows port of GCC) doesn't support 64-bit targets yet, so if your projects are starting to run up against the two-gigabyte address space limit then you'll need to tweak one or two problematic lines to get ACME to compile in MSVC.
2010-02-06 04:13
gregg
Account closed

Registered: Apr 2005
Posts: 56
I'd really like to see a C64 assembler project that breaks this memory barrier.
2010-02-06 06:23
Adam

Registered: Jul 2009
Posts: 321
I was just wondering which memory barrier you were referring to... I've been using dasm since I started coding 6510 two years ago and never encounter any probs. Not sure if it works under Win7 yet as I don't have a copy yet :)

I agree 100% that a new assembler for 65xx series of cpu's, would be a huge benefit for many people but I'd say not for others who are quite comfortable and used to using acme or dasm, even turboasm.. All great programs by the way. :))

..Adam/Onslaught/SIDwave
2010-02-06 10:40
doynax
Account closed

Registered: Oct 2004
Posts: 212
Quoting Adam
I was just wondering which memory barrier you were referring to... I've been using dasm since I started coding 6510 two years ago and never encounter any probs. Not sure if it works under Win7 yet as I don't have a copy yet :)
Sorry, I was being facetious. You're never going to get anywhere close to that limit.

For the record Win32 executables have a 32-bit address space, which it divides equally (unless you use the /3GB switch) into two user and kernel portions. This limitation was the motivation for switching to 64-bit processors and means that without tricky bank-switching schemes your programs can't store more than two gigabytes in memory at once, a limit which large server applications and such have been known to reach.

Quoting Adam
I agree 100% that a new assembler for 65xx series of cpu's, would be a huge benefit for many people but I'd say not for others who are quite comfortable and used to using acme or dasm, even turboasm.. All great programs by the way. :))
Err.. Who said we needed a new one?

I do agree that all current assemblers their limitations, lately I've been frustrated by the lack of a proper object file format and linker for ACME for instance, but for the most part the answer ought to be to tweak the ones we have.
2010-02-06 19:08
chatGPZ

Registered: Dec 2001
Posts: 11136
Quote:
proper object file format and linker

ca65 ftw! \o/
2010-02-06 19:28
Oswald

Registered: Apr 2002
Posts: 5025
. o O ( acme ) . o O ( ca65 ) . o O ( dasm)



2010-02-07 07:29
Martin Piper

Registered: Nov 2007
Posts: 644
Quote: Hello all,
Did someone compile a x64 version of the ACME cross-assembler compatible for windows seven ?
Many thanks

Bye

Majikeyric


You can get updated ACME sources that have had some fixes applied from here: http://codebase64.org/doku.php?id=base:emulation
You don't need 64 bit versions, win32 exes will run just as well.
2010-02-07 09:29
Ninja

Registered: Jan 2002
Posts: 406
Those looking for new assemblers might also have a peek at DreamAss. No, I won't do marketing and exploit that it was largely used for Edge of Disgrace. Oops, too late... ;)
2010-02-07 12:07
chatGPZ

Registered: Dec 2001
Posts: 11136
its also beeing used for the Retro Replay ROM :)
2010-02-07 13:08
Ninja

Registered: Jan 2002
Posts: 406
To be very precise, it was originally developed for the Retro Replay ROM :) The other assemblers couldn't cope with the required bank-switching. (Now, this would make a nice trivia entry...)
2010-02-07 19:28
Majikeyric

Registered: Sep 2002
Posts: 83
Many thanks everybody.
First I was believing that I was already using the Win32 version which crashed under Seven.
But I was using the DOS one \0/
The Win32 .exe works fine.
Many thanks Martin for your link to this improved version ;-)
2010-02-07 23:05
Count Zero

Registered: Jan 2003
Posts: 1825
Quote: Those looking for new assemblers might also have a peek at DreamAss. No, I won't do marketing and exploit that it was largely used for Edge of Disgrace. Oops, too late... ;)

I 2nd this attention whoring! :)

Not to make up a flame war on which assembler to use but rather to check all options for given projects.
Unfortunately there is no place dedicated to comparison of features and limitations. One of the better starting points would be http://codebase64.org/doku.php?id=links:start currently I suppose.

l8r
Count Zero/CyberpunX/SCS*TRC
2010-02-10 04:49
Martin Piper

Registered: Nov 2007
Posts: 644
Quote: To be very precise, it was originally developed for the Retro Replay ROM :) The other assemblers couldn't cope with the required bank-switching. (Now, this would make a nice trivia entry...)

What exactly do you mean?
I can produce CRT files with bank-switching in ACME.
2010-02-10 09:25
Frantic

Registered: Mar 2003
Posts: 1628
I think he refers to the following dreamass function:

.banknumbyte (labelpointingtomysubroutine)

This can be used to automatically produce jumptables that keeps track of which bank a certain routine resides in. It is also possible to redefine labels, which is handy if you want to include the same bankswitching code file in each ROM-bank, using the same labels (that should be accessible in the global scope). Redefining labels is possible in ACME too, though, if I remember correctly and I guess you may be able to "emulate" the "banknumbyte" thing too, somehow. Apart from these things I am not sure what exactly makes dreamass more suitable for generation of banked code.
2010-02-10 12:23
doynax
Account closed

Registered: Oct 2004
Posts: 212
Quoting Frantic
I think he refers to the following dreamass function:

.banknumbyte (labelpointingtomysubroutine)

This can be used to automatically produce jumptables that keeps track of which bank a certain routine resides in. It is also possible to redefine labels, which is handy if you want to include the same bankswitching code file in each ROM-bank, using the same labels (that should be accessible in the global scope). Redefining labels is possible in ACME too, though, if I remember correctly and I guess you may be able to "emulate" the "banknumbyte" thing too, somehow. Apart from these things I am not sure what exactly makes dreamass more suitable for generation of banked code.
ACME can do both of those things. The unary ^ operator is used to get the bank byte. However I would probably avoid redefining jump tables entries in multiple banks and simply set them to their 16-bit mapping address instead.

ACME can't produce ROMs larger than 64 kB however but I suspect that limitation would be simple enough to remove. I've never tried to use banking myself so there might well be other complications.

2010-02-10 12:38
chatGPZ

Registered: Dec 2001
Posts: 11136
acme (and any other assembler i have tried) is very simple compared to dreamass when it comes to banked code ... for example dreamass can take your functions and arrange them in several banks for best fit.
2010-02-10 14:11
Frantic

Registered: Mar 2003
Posts: 1628
@Groepaz: When I asked Doc Bacardi a few months ago about such automatic distribution of code to various banks in dreamass he replied:

"This feature is not finished yet, sorry! And I don't know when I will find the motivation to do it. :)"

So... :)

@Doynax: What do you mean with "16bit mapping adress"?
2010-02-10 18:20
doynax
Account closed

Registered: Oct 2004
Posts: 212
Quoting Frantic
What do you mean with "16bit mapping adress"?
Err.. I had a bit of trouble finding an appropriate term.

What I meant was simply that the shared code must be placed at the same address within each bank for the fall-through to work properly anyway. So why not place them within an effective address block at the location within the 6502's address space at which the blocks will be is mapped in?

  ;Replicated bank-switching code
  !pseudopc (* & $FFFF) {
switch:
     .
     .
     .
  }

As a bonus ACME will then verify that the "switch" label, and any other global labels within the block, truly are placed at a common address.
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
Bieno/Commodore Plus
Fungus/Nostalgia
Peacemaker/CENSOR/Hi..
Fred/Channel 4
MaD ][/Starship
Airwolf/F4CG
Paul Bearer
Guests online: 136
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 Memento Mori  (9.6)
10 Bromance  (9.5)
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 Dawnfall V1.1  (9.5)
8 Quadrants  (9.5)
9 Daah, Those Acid Pil..  (9.5)
10 Birth of a Flower  (9.5)
Top Groups
1 Nostalgia  (9.3)
2 Oxyron  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Organizers
1 Burglar  (9.9)
2 Sixx  (9.8)
3 hedning  (9.7)
4 Irata  (9.7)
5 MWS  (9.6)

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