VICE is the best by such a commanding margin that you really needn't look elsewhere. Open source and has the largest community.
However, other options are:
- CCS64, Lots of features, but I found it to be painfully slow. Shareware.
- Hoxs64. Decent, but not as full-featured as VICE. The ML monitor seems nice.
- Frodo is pretty outdated and the author admits as much.
- micro64 seems promising but incomplete.
Books and Magazines
- DLH's Commodore Archive has a massive selection of scanned books and magazines.
- Internet Archive has tons of books viewable online.
- Project 64 has many books and manuals transcribed into text files.
- Commodore 64 User's Guide [text] - Getting started and basic programming tutorials.
- Commodore 64 Programmer's Reference [text] - In depth programming reference for C64, covering Basic, Machine Language, Graphics, Sound, and I/O.
- Commodore 1541 Disk Drive User's Guide [text] - User's guide for the disk drive.
- Commodore 64 Service Manual [text] - Schematics, parts list, troubleshooting guide and more.
- Machine Language for the Commodore 64 by Jim Butterfield [text] - Nice quick intro to programming in 6502 assembly language on the Commodore 64 by the late reknowned Jim Butterfield.
- Mapping the Commodore 64 by Sheldon Leemon [text] - Covers every important memory location in the C64 in detail.
- Programming the Commodore 64: The Definitive Guide by Raeto Collin West - Good overview; covers much the same material as the Programmer's Reference but with a bit more of a tutorial style.
- Programming the 6502 by Rodnay Zaks - The seminal work on the 6502. In-depth information on the chip and low-level programming theory. Not specifically geared to the C64.
- Inside Commodore DOS - In-depth information on the disk drive.
Commodore 64 Programming Languages and Operating Systems has comprehensive catalog of commodore programming tools and operating systems with manuals. Mostly seems to focus on older tools.
Some of the tools that seem to be still maintained and/or still widely used:
- 64tass - My favorite so far. Uses the standard Turbo Assembler syntax but extends it with many advanced features. Powerful data structures and macro capabilities. Nice documentation.
- TMPx - Cross assembler that aims for strict compatibility with Turbo Macro Pro. A good place to start before you graduate to 64tass.
- acme - Seems to be very popular but I found it to be poorly documented, and had to build Windows binaries myself.
- KickAssembler - Seems to have a huge following and very well documented. Has a powerful but non-standard scripting langauge. Syntax seems a lot different than the others.
- DreamAss - Supported by Relaunch64 I don't see any reason to prefer it to others.
- dasm - Also supported by Relaunch64 but again, very basic and I don't see a reason to prefer it over others.
- cc65/ca65 - A C compiler with accompanying assembler. Very powerful linker, but a bit complex to get started with. I found the assembler's macros to be a bit finnicky.
- CBM prg Studio - Integrated Basic and Assembly development environment with sprite and character editors. Looks really slick but seemed kind of buggy. Closed Source.
- C64 Studio - Similar to CBM prg Studio but open source. Not as polished GUI-wise but maybe a bit more stable.
- Relaunch64 - Java-based editor that supports many different assembler backends. I found the UI a bit clunky and ended up switching to VIM.