Xa: Open-source 6502 cross assembler
floodgap.com
floodgap.com
In 1979 I was 19 years old and had just started studying CS in community college. Through a lucky break I got a job at a consulting company and my first assignment was to write a 6502 macro assembler from scratch, in 6502 assembly language. At that point I had written less than 100 lines of 6502 code on my Apple ][, but I was fairly good with 8080 and IBM-370 assembly.
My mentor / manager outlined the basic model for the assembler and I wrote the entire thing myself, quickly getting it to the point where it could self-assemble, and adding features from there. I was making about $7 / hour when I started. However, I wrote a FORTRAN simulation of the hashing algorithm that I was asked to use, shared it with my manager, and got a raise to $8-something an hour.
I had macros, a very fancy listing format that showed all of the hex codes generated by the macros in neat rows, and a lot more. The entire thing fit on two tracks of the 8" floppy disks that we were using -- definitely less than 8000 bytes.
For anyone interested, there is a transistor level simulator for the 6502 CPU called Visual6502: http://www.visual6502.org/JSSim/expert.html
https://floooh.github.io/visual6502remix/
There's also a Z80 version:
https://floooh.github.io/visualz80remix/
And a contributed Ricoh 2A03 version:
https://floooh.github.io/visual2a03remix/
(check "Help => About" for credits, there's a lot of 3rd party code in there)
My reasoning was I had more free time because my company switched to WFH, so I could study it. And no, I still haven't finish it :p
Having modern macro assemblers, linkers, and editors available made 6502 development fast & easy easy. (A debugger, too!)
Aph could have made a killer entry into the PC market with a 6502 machine, but it apparently never occurred to Aph, as we mistakenly thought a 6502 general purpose computer wasn't a worthy idea.
And so we missed becoming billionaires!
What I liked best about it is the portability, the scoping, and the preprocessor, which I prefer in particular to how many other assemblers do macros, and that's why I ended up taking it over (though Andre still did a lot of the code in this release too). The linking is not something I personally use much but other people do, and the O65 binary object format it uses covers a lot of use cases.
Now, I don't think anyone would blink at constantly rebuilding 100K lines of assembly. It takes seconds on modern hardware. We even see that in the C world with large utilities shipped as a ".h" file.
There are so many, I don't even know which "tass" you are asking about. 64tass?
https://sourceforge.net/projects/tass64/
64tass looks really good as it supports 6502, 65C02, R65C02, W65C02, 65CE02, 65816, DTV, 65EL02, 4510. I use Merlin32 which supports 65816, but I pretty much stick to 6502. I do use xa from time to time. Others have mentioned ca65 which is popular and can support macros and lots of other things that make it incompatible with other assemblers.
Advantages for no 6502 assembler in particular because there are so many available!
* compatibility, ease of use, ease of install, ease of building from source, portability, size, speed, lack of dependencies, vintage, hack-ability, written in $MY_PROGRAMMING_LANGUAGE ...
Yes, that the one.
I'll have to investigate the others you've mentioned.
As long as the license is open source proper, I am interested in tools that run in several platforms (i.e. ISO C better than POSIX, in turn better than Linux-specific) and have good syntax, documentation and error messages.
https://news.ycombinator.com/newsguidelines.html
"On-Topic: Anything that good hackers would find interesting. That includes more than hacking and startups. If you had to reduce it to a sentence, the answer might be: anything that gratifies one's intellectual curiosity."
It's not really about being "newsworthy", but what tickles your grey matter's fancy.
> Version 2.4.0 (18 November 2023)