I've used both the 2500AD assembler and the Universal Cross-Assemblers C32 assember. Both run on PCs and put out .hex files with a choice of formats, .err (error) files, and .lst (list) files. Both allow extensive use of macros, which are essential for structured, readable assembly programming that doesn't leave you lost in your own maze with too many bugs to ever find your way out. Both allow really, really long names for labels, variables, constants, etc..
The C32 was less expensive at about $195, but is good for dozens of different processors, so you don't have to buy more than one assembler. This means you can use the same assembler for 65c02 and 65816, plus any other processors you use, simply by using different instruction-table files (like 65816.tbl). It also allows you to make up your own instruction set if you have a processor that it doesn't already cover, or if you want to add new instructions and op codes to an older processor that didn't have them at the time the assembler software was done.
Both assemblers allow multiple source files which can be nested several levels deep. The 2500AD adds linking and libraries. The 2500AD is generally better, but the C32 was able to do a couple of things I wanted that 2500AD couldn't do, like a bit-wise OR of a couple of values and put the result in the operand for an LDA#, for example. The C32 has a couple of minor bugs which may have been fixed since I bought mine. One is that if there's a comma in a quoted string in the list of macro input parameters, it forgets that it's inside the quoted string and thinks that the comma is the delimiter to the next macro input parameter. A nice feature of the 2500AD is that you don't have to provide an input for every macro input parameter. For a simple example, this is nice if you want to use a single program line to zero-out a bunch of variables without being locked into an exact number of variables that the macro wants to handle each time.
I know there are several other good 65-family assemblers, and Western Design Center's website can direct you to them; but the two mentioned here are the ones I have plenty of experience with. I would not hesitate to recommend either one. They will seem absolutely wonderful to anyone who has only worked with the very limited assemblers that ran on things like the C64 and Apple II. It's a night-and-day difference. I can't begin to do it justice here in a few paragraphs. Unfortunately, the price of most good assemblers seems to be what keeps a lot of people on this list from ever doing any serious programming. I, too, would be delighted to find such a good shareware or freeware assembler.
If you have more questions about the details of these assemblers, I don't mind if you E-mail me directly.
Garth
_________________ http://WilsonMinesCo.com/ lots of 6502 resources The "second front page" is http://wilsonminesco.com/links.html . What's an additional VIA among friends, anyhow?
|